diff options
189 files changed, 2377 insertions, 1340 deletions
diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java b/apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java index b9b825c9f75c..a0634f0e74eb 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java @@ -62,6 +62,7 @@ import com.android.internal.app.IBatteryStats; import com.android.internal.app.procstats.ProcessStats; import com.android.internal.util.MemInfoReader; import com.android.internal.util.StatLogger; +import com.android.modules.expresslog.Histogram; import com.android.server.AppSchedulingModuleThread; import com.android.server.LocalServices; import com.android.server.job.controllers.JobStatus; @@ -471,6 +472,13 @@ class JobConcurrencyManager { private final Consumer<PackageStats> mPackageStatsStagingCountClearer = PackageStats::resetStagedCount; + private static final Histogram sConcurrencyHistogramLogger = new Histogram( + "job_scheduler.value_hist_job_concurrency", + // Create a histogram that expects values in the range [0, 99]. + // Include more buckets than MAX_CONCURRENCY_LIMIT to account for/identify the cases + // where we may create additional slots for TOP-started EJs and UIJs + new Histogram.UniformOptions(100, 0, 99)); + private final StatLogger mStatLogger = new StatLogger(new String[]{ "assignJobsToContexts", "refreshSystemState", @@ -1433,6 +1441,7 @@ class JobConcurrencyManager { mService.mJobPackageTracker.noteConcurrency(mRunningJobs.size(), // TODO: log per type instead of only TOP mWorkCountTracker.getRunningJobCount(WORK_TYPE_TOP)); + sConcurrencyHistogramLogger.logSample(mActiveServices.size()); } @GuardedBy("mLock") diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobNotificationCoordinator.java b/apex/jobscheduler/service/java/com/android/server/job/JobNotificationCoordinator.java index d94674b5cab0..8a5d09404ebb 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobNotificationCoordinator.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobNotificationCoordinator.java @@ -33,6 +33,7 @@ import android.util.SparseArrayMap; import android.util.SparseSetArray; import com.android.internal.annotations.GuardedBy; +import com.android.modules.expresslog.Counter; import com.android.server.LocalServices; import com.android.server.job.controllers.JobStatus; import com.android.server.notification.NotificationManagerInternal; @@ -114,11 +115,39 @@ class JobNotificationCoordinator { @JobService.JobEndNotificationPolicy int jobEndNotificationPolicy) { validateNotification(packageName, callingUid, notification, jobEndNotificationPolicy); final JobStatus jobStatus = hostingContext.getRunningJobLocked(); + if (jobStatus == null) { + Slog.wtfStack(TAG, "enqueueNotification called with no running job"); + return; + } final NotificationDetails oldDetails = mNotificationDetails.get(hostingContext); - if (oldDetails != null && oldDetails.notificationId != notificationId) { - // App is switching notification IDs. Remove association with the old one. - removeNotificationAssociation(hostingContext, JobParameters.STOP_REASON_UNDEFINED, - jobStatus); + if (oldDetails == null) { + if (jobStatus.startedAsUserInitiatedJob) { + Counter.logIncrementWithUid( + "job_scheduler.value_cntr_w_uid_initial_setNotification_call_required", + jobStatus.getUid()); + } else { + Counter.logIncrementWithUid( + "job_scheduler.value_cntr_w_uid_initial_setNotification_call_optional", + jobStatus.getUid()); + } + } else { + if (jobStatus.startedAsUserInitiatedJob) { + Counter.logIncrementWithUid( + "job_scheduler.value_cntr_w_uid_subsequent_setNotification_call_required", + jobStatus.getUid()); + } else { + Counter.logIncrementWithUid( + "job_scheduler.value_cntr_w_uid_subsequent_setNotification_call_optional", + jobStatus.getUid()); + } + if (oldDetails.notificationId != notificationId) { + // App is switching notification IDs. Remove association with the old one. + removeNotificationAssociation(hostingContext, JobParameters.STOP_REASON_UNDEFINED, + jobStatus); + Counter.logIncrementWithUid( + "job_scheduler.value_cntr_w_uid_setNotification_changed_notification_ids", + jobStatus.getUid()); + } } final int userId = UserHandle.getUserId(callingUid); if (jobStatus != null && jobStatus.startedAsUserInitiatedJob) { diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java index 8a4b4647f94b..72e66450d339 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java @@ -106,6 +106,8 @@ import com.android.internal.os.SomeArgs; import com.android.internal.util.ArrayUtils; import com.android.internal.util.DumpUtils; import com.android.internal.util.FrameworkStatsLog; +import com.android.modules.expresslog.Counter; +import com.android.modules.expresslog.Histogram; import com.android.server.AppSchedulingModuleThread; import com.android.server.AppStateTracker; import com.android.server.AppStateTrackerImpl; @@ -378,6 +380,28 @@ public class JobSchedulerService extends com.android.server.SystemService private final long[] mLastCancelledJobTimeElapsed = new long[DEBUG ? NUM_COMPLETED_JOB_HISTORY : 0]; + private static final Histogram sEnqueuedJwiHighWaterMarkLogger = new Histogram( + "job_scheduler.value_hist_w_uid_enqueued_work_items_high_water_mark", + new Histogram.ScaledRangeOptions(25, 0, 5, 1.4f)); + private static final Histogram sInitialJobEstimatedNetworkDownloadKBLogger = new Histogram( + "job_scheduler.value_hist_initial_job_estimated_network_download_kilobytes", + new Histogram.ScaledRangeOptions(50, 0, 32 /* 32 KB */, 1.31f)); + private static final Histogram sInitialJwiEstimatedNetworkDownloadKBLogger = new Histogram( + "job_scheduler.value_hist_initial_jwi_estimated_network_download_kilobytes", + new Histogram.ScaledRangeOptions(50, 0, 32 /* 32 KB */, 1.31f)); + private static final Histogram sInitialJobEstimatedNetworkUploadKBLogger = new Histogram( + "job_scheduler.value_hist_initial_job_estimated_network_upload_kilobytes", + new Histogram.ScaledRangeOptions(50, 0, 32 /* 32 KB */, 1.31f)); + private static final Histogram sInitialJwiEstimatedNetworkUploadKBLogger = new Histogram( + "job_scheduler.value_hist_initial_jwi_estimated_network_upload_kilobytes", + new Histogram.ScaledRangeOptions(50, 0, 32 /* 32 KB */, 1.31f)); + private static final Histogram sJobMinimumChunkKBLogger = new Histogram( + "job_scheduler.value_hist_w_uid_job_minimum_chunk_kilobytes", + new Histogram.ScaledRangeOptions(25, 0, 5 /* 5 KB */, 1.76f)); + private static final Histogram sJwiMinimumChunkKBLogger = new Histogram( + "job_scheduler.value_hist_w_uid_jwi_minimum_chunk_kilobytes", + new Histogram.ScaledRangeOptions(25, 0, 5 /* 5 KB */, 1.76f)); + /** * A mapping of which uids are currently in the foreground to their effective bias. */ @@ -1422,6 +1446,32 @@ public class JobSchedulerService extends com.android.server.SystemService return JobScheduler.RESULT_FAILURE; } + if (job.getRequiredNetwork() != null) { + sInitialJobEstimatedNetworkDownloadKBLogger.logSample( + safelyScaleBytesToKBForHistogram( + job.getEstimatedNetworkDownloadBytes())); + sInitialJobEstimatedNetworkUploadKBLogger.logSample( + safelyScaleBytesToKBForHistogram(job.getEstimatedNetworkUploadBytes())); + sJobMinimumChunkKBLogger.logSampleWithUid(uId, + safelyScaleBytesToKBForHistogram(job.getMinimumNetworkChunkBytes())); + if (work != null) { + sInitialJwiEstimatedNetworkDownloadKBLogger.logSample( + safelyScaleBytesToKBForHistogram( + work.getEstimatedNetworkDownloadBytes())); + sInitialJwiEstimatedNetworkUploadKBLogger.logSample( + safelyScaleBytesToKBForHistogram( + work.getEstimatedNetworkUploadBytes())); + sJwiMinimumChunkKBLogger.logSampleWithUid(uId, + safelyScaleBytesToKBForHistogram( + work.getMinimumNetworkChunkBytes())); + } + } + + if (work != null) { + Counter.logIncrementWithUid( + "job_scheduler.value_cntr_w_uid_job_work_items_enqueued", uId); + } + synchronized (mLock) { final JobStatus toCancel = mJobs.getJobByUidAndJobId(uId, namespace, job.getId()); @@ -1451,6 +1501,7 @@ public class JobSchedulerService extends com.android.server.SystemService toCancel.enqueueWorkLocked(work); mJobs.touchJob(toCancel); + sEnqueuedJwiHighWaterMarkLogger.logSampleWithUid(uId, toCancel.getWorkCount()); // If any of work item is enqueued when the source is in the foreground, // exempt the entire job. @@ -1483,6 +1534,8 @@ public class JobSchedulerService extends com.android.server.SystemService if (packageName == null) { if (mJobs.countJobsForUid(uId) > MAX_JOBS_PER_APP) { Slog.w(TAG, "Too many jobs for uid " + uId); + Counter.logIncrementWithUid( + "job_scheduler.value_cntr_w_uid_max_scheduling_limit_hit", uId); throw new IllegalStateException("Apps may not schedule more than " + MAX_JOBS_PER_APP + " distinct jobs"); } @@ -1522,6 +1575,7 @@ public class JobSchedulerService extends com.android.server.SystemService if (work != null) { // If work has been supplied, enqueue it into the new job. jobStatus.enqueueWorkLocked(work); + sEnqueuedJwiHighWaterMarkLogger.logSampleWithUid(uId, jobStatus.getWorkCount()); } FrameworkStatsLog.write_non_chained(FrameworkStatsLog.SCHEDULED_JOB_STATE_CHANGED, @@ -3834,6 +3888,18 @@ public class JobSchedulerService extends com.android.server.SystemService return bucket; } + static int safelyScaleBytesToKBForHistogram(long bytes) { + long kilobytes = bytes / 1000; + // Anything over Integer.MAX_VALUE or under Integer.MIN_VALUE isn't expected and will + // be put into the overflow buckets. + if (kilobytes > Integer.MAX_VALUE) { + return Integer.MAX_VALUE; + } else if (kilobytes < Integer.MIN_VALUE) { + return Integer.MIN_VALUE; + } + return (int) kilobytes; + } + private class CloudProviderChangeListener implements StorageManagerInternal.CloudProviderChangeListener { diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java b/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java index f95df4471c29..2944095ec8db 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java @@ -20,6 +20,7 @@ import static android.app.job.JobInfo.getPriorityString; import static com.android.server.job.JobConcurrencyManager.WORK_TYPE_NONE; import static com.android.server.job.JobSchedulerService.sElapsedRealtimeClock; +import static com.android.server.job.JobSchedulerService.safelyScaleBytesToKBForHistogram; import android.Manifest; import android.annotation.BytesLong; @@ -66,6 +67,8 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.app.IBatteryStats; import com.android.internal.os.TimeoutRecord; import com.android.internal.util.FrameworkStatsLog; +import com.android.modules.expresslog.Counter; +import com.android.modules.expresslog.Histogram; import com.android.server.EventLogTags; import com.android.server.LocalServices; import com.android.server.job.controllers.JobStatus; @@ -111,6 +114,22 @@ public final class JobServiceContext implements ServiceConnection { private static final long NOTIFICATION_TIMEOUT_MILLIS = 10_000L * Build.HW_TIMEOUT_MULTIPLIER; private static final long EXECUTION_DURATION_STAMP_PERIOD_MILLIS = 5 * 60_000L; + private static final Histogram sEnqueuedJwiAtJobStart = new Histogram( + "job_scheduler.value_hist_w_uid_enqueued_work_items_at_job_start", + new Histogram.ScaledRangeOptions(20, 1, 3, 1.4f)); + private static final Histogram sTransferredNetworkDownloadKBHighWaterMarkLogger = new Histogram( + "job_scheduler.value_hist_transferred_network_download_kilobytes_high_water_mark", + new Histogram.ScaledRangeOptions(50, 0, 32 /* 32 KB */, 1.31f)); + private static final Histogram sTransferredNetworkUploadKBHighWaterMarkLogger = new Histogram( + "job_scheduler.value_hist_transferred_network_upload_kilobytes_high_water_mark", + new Histogram.ScaledRangeOptions(50, 0, 32 /* 32 KB */, 1.31f)); + private static final Histogram sUpdatedEstimatedNetworkDownloadKBLogger = new Histogram( + "job_scheduler.value_hist_updated_estimated_network_download_kilobytes", + new Histogram.ScaledRangeOptions(50, 0, 32 /* 32 KB */, 1.31f)); + private static final Histogram sUpdatedEstimatedNetworkUploadKBLogger = new Histogram( + "job_scheduler.value_hist_updated_estimated_network_upload_kilobytes", + new Histogram.ScaledRangeOptions(50, 0, 32 /* 32 KB */, 1.31f)); + private static final String[] VERB_STRINGS = { "VERB_BINDING", "VERB_STARTING", "VERB_EXECUTING", "VERB_STOPPING", "VERB_FINISHED" }; @@ -350,6 +369,7 @@ public final class JobServiceContext implements ServiceConnection { job.shouldTreatAsUserInitiatedJob(), triggeredUris, triggeredAuthorities, passedNetwork); mExecutionStartTimeElapsed = sElapsedRealtimeClock.millis(); + mLastExecutionDurationStampTimeElapsed = mExecutionStartTimeElapsed; mMinExecutionGuaranteeMillis = mService.getMinJobExecutionGuaranteeMs(job); mMaxExecutionTimeMillis = Math.max(mService.getMaxJobExecutionTimeMs(job), mMinExecutionGuaranteeMillis); @@ -479,6 +499,7 @@ public final class JobServiceContext implements ServiceConnection { job.getEstimatedNetworkUploadBytes(), job.getWorkCount(), ActivityManager.processStateAmToProto(mService.getUidProcState(job.getUid()))); + sEnqueuedJwiAtJobStart.logSampleWithUid(job.getUid(), job.getWorkCount()); final String sourcePackage = job.getSourcePackageName(); if (Trace.isTagEnabled(Trace.TRACE_TAG_SYSTEM_SERVER)) { final String componentPackage = job.getServiceComponent().getPackageName(); @@ -815,6 +836,41 @@ public final class JobServiceContext implements ServiceConnection { if (!verifyCallerLocked(cb)) { return; } + Counter.logIncrementWithUid( + "job_scheduler.value_cntr_w_uid_estimated_network_bytes_updated", + mRunningJob.getUid()); + sUpdatedEstimatedNetworkDownloadKBLogger.logSample( + safelyScaleBytesToKBForHistogram(downloadBytes)); + sUpdatedEstimatedNetworkUploadKBLogger.logSample( + safelyScaleBytesToKBForHistogram(uploadBytes)); + if (mEstimatedDownloadBytes != JobInfo.NETWORK_BYTES_UNKNOWN + && downloadBytes != JobInfo.NETWORK_BYTES_UNKNOWN) { + if (mEstimatedDownloadBytes < downloadBytes) { + Counter.logIncrementWithUid( + "job_scheduler." + + "value_cntr_w_uid_estimated_network_download_bytes_increased", + mRunningJob.getUid()); + } else if (mEstimatedDownloadBytes > downloadBytes) { + Counter.logIncrementWithUid( + "job_scheduler." + + "value_cntr_w_uid_estimated_network_download_bytes_decreased", + mRunningJob.getUid()); + } + } + if (mEstimatedUploadBytes != JobInfo.NETWORK_BYTES_UNKNOWN + && uploadBytes != JobInfo.NETWORK_BYTES_UNKNOWN) { + if (mEstimatedUploadBytes < uploadBytes) { + Counter.logIncrementWithUid( + "job_scheduler" + + ".value_cntr_w_uid_estimated_network_upload_bytes_increased", + mRunningJob.getUid()); + } else if (mEstimatedUploadBytes > uploadBytes) { + Counter.logIncrementWithUid( + "job_scheduler" + + ".value_cntr_w_uid_estimated_network_upload_bytes_decreased", + mRunningJob.getUid()); + } + } mEstimatedDownloadBytes = downloadBytes; mEstimatedUploadBytes = uploadBytes; } @@ -827,6 +883,41 @@ public final class JobServiceContext implements ServiceConnection { if (!verifyCallerLocked(cb)) { return; } + Counter.logIncrementWithUid( + "job_scheduler.value_cntr_w_uid_transferred_network_bytes_updated", + mRunningJob.getUid()); + sTransferredNetworkDownloadKBHighWaterMarkLogger.logSample( + safelyScaleBytesToKBForHistogram(downloadBytes)); + sTransferredNetworkUploadKBHighWaterMarkLogger.logSample( + safelyScaleBytesToKBForHistogram(uploadBytes)); + if (mTransferredDownloadBytes != JobInfo.NETWORK_BYTES_UNKNOWN + && downloadBytes != JobInfo.NETWORK_BYTES_UNKNOWN) { + if (mTransferredDownloadBytes < downloadBytes) { + Counter.logIncrementWithUid( + "job_scheduler." + + "value_cntr_w_uid_transferred_network_download_bytes_increased", + mRunningJob.getUid()); + } else if (mTransferredDownloadBytes > downloadBytes) { + Counter.logIncrementWithUid( + "job_scheduler." + + "value_cntr_w_uid_transferred_network_download_bytes_decreased", + mRunningJob.getUid()); + } + } + if (mTransferredUploadBytes != JobInfo.NETWORK_BYTES_UNKNOWN + && uploadBytes != JobInfo.NETWORK_BYTES_UNKNOWN) { + if (mTransferredUploadBytes < uploadBytes) { + Counter.logIncrementWithUid( + "job_scheduler." + + "value_cntr_w_uid_transferred_network_upload_bytes_increased", + mRunningJob.getUid()); + } else if (mTransferredUploadBytes > uploadBytes) { + Counter.logIncrementWithUid( + "job_scheduler." + + "value_cntr_w_uid_transferred_network_upload_bytes_decreased", + mRunningJob.getUid()); + } + } mTransferredDownloadBytes = downloadBytes; mTransferredUploadBytes = uploadBytes; } @@ -897,6 +988,11 @@ public final class JobServiceContext implements ServiceConnection { // Use that as the stop reason for logging/debugging purposes. mParams.setStopReason( mDeathMarkStopReason, mDeathMarkInternalStopReason, mDeathMarkDebugReason); + } else if (mRunningJob != null) { + Counter.logIncrementWithUid( + "job_scheduler.value_cntr_w_uid_unexpected_service_disconnects", + // Use the calling UID since that's the one this context was connected to. + mRunningJob.getUid()); } closeAndCleanupJobLocked(true /* needsReschedule */, "unexpectedly disconnected"); } @@ -1223,6 +1319,8 @@ public final class JobServiceContext implements ServiceConnection { switch (mVerb) { case VERB_BINDING: onSlowAppResponseLocked(/* reschedule */ false, /* updateStopReasons */ true, + /* texCounterMetricId */ + "job_scheduler.value_cntr_w_uid_slow_app_response_binding", /* debugReason */ "timed out while binding", /* anrMessage */ "Timed out while trying to bind", CompatChanges.isChangeEnabled(ANR_PRE_UDC_APIS_ON_SLOW_RESPONSES, @@ -1233,6 +1331,8 @@ public final class JobServiceContext implements ServiceConnection { // know what happened so let's log it and notify the JobScheduler // FINISHED/NO-RETRY. onSlowAppResponseLocked(/* reschedule */ false, /* updateStopReasons */ true, + /* texCounterMetricId */ + "job_scheduler.value_cntr_w_uid_slow_app_response_onStartJob", /* debugReason */ "timed out while starting", /* anrMessage */ "No response to onStartJob", CompatChanges.isChangeEnabled(ANR_PRE_UDC_APIS_ON_SLOW_RESPONSES, @@ -1243,6 +1343,8 @@ public final class JobServiceContext implements ServiceConnection { // Don't update the stop reasons since we were already stopping the job for some // other reason. onSlowAppResponseLocked(/* reschedule */ true, /* updateStopReasons */ false, + /* texCounterMetricId */ + "job_scheduler.value_cntr_w_uid_slow_app_response_onStopJob", /* debugReason */ "timed out while stopping", /* anrMessage */ "No response to onStopJob", CompatChanges.isChangeEnabled(ANR_PRE_UDC_APIS_ON_SLOW_RESPONSES, @@ -1298,6 +1400,8 @@ public final class JobServiceContext implements ServiceConnection { } } else if (mAwaitingNotification) { onSlowAppResponseLocked(/* reschedule */ true, /* updateStopReasons */ true, + /* texCounterMetricId */ + "job_scheduler.value_cntr_w_uid_slow_app_response_setNotification", /* debugReason */ "timed out while stopping", /* anrMessage */ "required notification not provided", /* triggerAnr */ true); @@ -1347,8 +1451,11 @@ public final class JobServiceContext implements ServiceConnection { @GuardedBy("mLock") private void onSlowAppResponseLocked(boolean reschedule, boolean updateStopReasons, + @NonNull String texCounterMetricId, @NonNull String debugReason, @NonNull String anrMessage, boolean triggerAnr) { Slog.w(TAG, anrMessage + " for " + getRunningJobNameLocked()); + // Use the calling UID since that's the one this context was connected to. + Counter.logIncrementWithUid(texCounterMetricId, mRunningJob.getUid()); if (updateStopReasons) { mParams.setStopReason( JobParameters.STOP_REASON_UNDEFINED, diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/TimeController.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/TimeController.java index ba62e96b2a32..c272af00f040 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/controllers/TimeController.java +++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/TimeController.java @@ -90,6 +90,7 @@ public final class TimeController extends StateController { final long nowElapsedMillis = sElapsedRealtimeClock.millis(); if (job.hasDeadlineConstraint() && evaluateDeadlineConstraint(job, nowElapsedMillis)) { // We're intentionally excluding jobs whose deadlines have passed + // from the job_scheduler.value_job_scheduler_job_deadline_expired_counter count // (mostly like deadlines of 0) when the job was scheduled. return; } else if (job.hasTimingDelayConstraint() && evaluateTimingDelayConstraint(job, diff --git a/core/api/test-current.txt b/core/api/test-current.txt index d97f71847592..934622305a05 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -2037,6 +2037,7 @@ package android.media.metrics { package android.media.soundtrigger { public final class SoundTriggerInstrumentation { + method public void setInPhoneCallState(boolean); method public void setResourceContention(boolean); method public void triggerOnResourcesAvailable(); method public void triggerRestart(); diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 29e135f8b0e9..4c90d7b225a5 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -34,6 +34,7 @@ import static android.view.Display.INVALID_DISPLAY; import static android.window.ConfigurationHelper.freeTextLayoutCachesIfNeeded; import static android.window.ConfigurationHelper.isDifferentDisplay; import static android.window.ConfigurationHelper.shouldUpdateResources; +import static android.window.ConfigurationHelper.shouldUpdateWindowMetricsBounds; import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE; import static com.android.internal.os.SafeZipPathValidatorCallback.VALIDATE_ZIP_PATH_FOR_PATH_TRAVERSAL; @@ -6116,6 +6117,11 @@ public final class ActivityThread extends ClientTransactionHandler public static boolean shouldReportChange(@Nullable Configuration currentConfig, @NonNull Configuration newConfig, @Nullable SizeConfigurationBuckets sizeBuckets, int handledConfigChanges, boolean alwaysReportChange) { + // Always report changes in window configuration bounds + if (shouldUpdateWindowMetricsBounds(currentConfig, newConfig)) { + return true; + } + final int publicDiff = currentConfig.diffPublicOnly(newConfig); // Don't report the change if there's no public diff between current and new config. if (publicDiff == 0) { diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index 67226d0f2228..e53680f23a9f 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -2886,6 +2886,17 @@ public class Notification implements Parcelable if (person != null) { visitor.accept(person.getIconUri()); } + + final RemoteInputHistoryItem[] history = (RemoteInputHistoryItem[]) + extras.getParcelableArray(Notification.EXTRA_REMOTE_INPUT_HISTORY_ITEMS); + if (history != null) { + for (int i = 0; i < history.length; i++) { + RemoteInputHistoryItem item = history[i]; + if (item.getUri() != null) { + visitor.accept(item.getUri()); + } + } + } } if (isStyle(MessagingStyle.class) && extras != null) { diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index e0364cbe1d69..e59901b24a65 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -8716,6 +8716,7 @@ public class DevicePolicyManager { */ @RequiresPermission(value = SET_TIME, conditional = true) public void setAutoTimeEnabled(@Nullable ComponentName admin, boolean enabled) { + throwIfParentInstance("setAutoTimeEnabled"); if (mService != null) { try { mService.setAutoTimeEnabled(admin, mContext.getPackageName(), enabled); @@ -16938,6 +16939,7 @@ public class DevicePolicyManager { * android.app.role.RoleManager.ROLE_SYSTEM_SUPERVISION. */ public boolean isDeviceFinanced() { + throwIfParentInstance("isDeviceFinanced"); if (mService != null) { try { return mService.isDeviceFinanced(mContext.getPackageName()); diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index eb3d37d6e14f..7f198975db05 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -764,6 +764,7 @@ public abstract class PackageManager { MATCH_DISABLED_UNTIL_USED_COMPONENTS, MATCH_SYSTEM_ONLY, MATCH_FACTORY_ONLY, + MATCH_ANY_USER, MATCH_DEBUG_TRIAGED_MISSING, MATCH_INSTANT, MATCH_APEX, diff --git a/core/java/android/service/autofill/FillRequest.java b/core/java/android/service/autofill/FillRequest.java index 8afae74735e2..7ec14830b0af 100644 --- a/core/java/android/service/autofill/FillRequest.java +++ b/core/java/android/service/autofill/FillRequest.java @@ -121,6 +121,12 @@ public final class FillRequest implements Parcelable { */ public static final @RequestFlags int FLAG_PCC_DETECTION = 0x200; + /** + * Indicate whether the screen has credman field + * @hide + */ + public static final @RequestFlags int FLAG_SCREEN_HAS_CREDMAN_FIELD = 0x400; + /** @hide */ public static final int INVALID_REQUEST_ID = Integer.MIN_VALUE; @@ -234,7 +240,8 @@ public final class FillRequest implements Parcelable { FLAG_SUPPORTS_FILL_DIALOG, FLAG_IME_SHOWING, FLAG_RESET_FILL_DIALOG_STATE, - FLAG_PCC_DETECTION + FLAG_PCC_DETECTION, + FLAG_SCREEN_HAS_CREDMAN_FIELD }) @Retention(RetentionPolicy.SOURCE) @DataClass.Generated.Member @@ -266,6 +273,8 @@ public final class FillRequest implements Parcelable { return "FLAG_RESET_FILL_DIALOG_STATE"; case FLAG_PCC_DETECTION: return "FLAG_PCC_DETECTION"; + case FLAG_SCREEN_HAS_CREDMAN_FIELD: + return "FLAG_SCREEN_HAS_CREDMAN_FIELD"; default: return Integer.toHexString(value); } } @@ -282,10 +291,15 @@ public final class FillRequest implements Parcelable { * include contexts from requests whose {@link SaveInfo} had the * {@link SaveInfo#FLAG_DELAY_SAVE} flag. * @param hints - * Autofill Provider should return data for the autofill hints requested here, + * Sends a list of datatypes for the Autofill Provider. + * + * If this is populated, Autofill Provider should return data + * for the autofill hints requested here, * even though the Autofill Provider may not have detected these types. * The hints would be part of HintConstants: * https://developer.android.com/reference/androidx/autofill/HintConstants + * + * This is populated if the platform's field detection is enabled. * @param clientState * Gets the latest client state bundle set by the service in a * {@link FillResponse.Builder#setClientState(Bundle) fill response}. @@ -353,7 +367,8 @@ public final class FillRequest implements Parcelable { | FLAG_SUPPORTS_FILL_DIALOG | FLAG_IME_SHOWING | FLAG_RESET_FILL_DIALOG_STATE - | FLAG_PCC_DETECTION); + | FLAG_PCC_DETECTION + | FLAG_SCREEN_HAS_CREDMAN_FIELD); this.mInlineSuggestionsRequest = inlineSuggestionsRequest; this.mDelayedFillIntentSender = delayedFillIntentSender; @@ -381,10 +396,15 @@ public final class FillRequest implements Parcelable { } /** - * Autofill Provider should return data for the autofill hints requested here, + * Sends a list of datatypes for the Autofill Provider. + * + * If this is populated, Autofill Provider should return data + * for the autofill hints requested here, * even though the Autofill Provider may not have detected these types. * The hints would be part of HintConstants: * https://developer.android.com/reference/androidx/autofill/HintConstants + * + * This is populated if the platform's field detection is enabled. */ @DataClass.Generated.Member public @NonNull List<String> getHints() { @@ -534,7 +554,8 @@ public final class FillRequest implements Parcelable { | FLAG_SUPPORTS_FILL_DIALOG | FLAG_IME_SHOWING | FLAG_RESET_FILL_DIALOG_STATE - | FLAG_PCC_DETECTION); + | FLAG_PCC_DETECTION + | FLAG_SCREEN_HAS_CREDMAN_FIELD); this.mInlineSuggestionsRequest = inlineSuggestionsRequest; this.mDelayedFillIntentSender = delayedFillIntentSender; @@ -556,10 +577,10 @@ public final class FillRequest implements Parcelable { }; @DataClass.Generated( - time = 1675711417112L, + time = 1682097266850L, codegenVersion = "1.0.23", sourceFile = "frameworks/base/core/java/android/service/autofill/FillRequest.java", - inputSignatures = "public static final @android.service.autofill.FillRequest.RequestFlags int FLAG_MANUAL_REQUEST\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_COMPATIBILITY_MODE_REQUEST\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_PASSWORD_INPUT_TYPE\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_VIEW_NOT_FOCUSED\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_SUPPORTS_FILL_DIALOG\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_IME_SHOWING\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_RESET_FILL_DIALOG_STATE\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_PCC_DETECTION\npublic static final int INVALID_REQUEST_ID\nprivate final int mId\nprivate final @android.annotation.NonNull java.util.List<android.service.autofill.FillContext> mFillContexts\nprivate final @android.annotation.NonNull java.util.List<java.lang.String> mHints\nprivate final @android.annotation.Nullable android.os.Bundle mClientState\nprivate final @android.service.autofill.FillRequest.RequestFlags int mFlags\nprivate final @android.annotation.Nullable android.view.inputmethod.InlineSuggestionsRequest mInlineSuggestionsRequest\nprivate final @android.annotation.Nullable android.content.IntentSender mDelayedFillIntentSender\nprivate void onConstructed()\nclass FillRequest extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genHiddenConstructor=true, genHiddenConstDefs=true)") + inputSignatures = "public static final @android.service.autofill.FillRequest.RequestFlags int FLAG_MANUAL_REQUEST\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_COMPATIBILITY_MODE_REQUEST\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_PASSWORD_INPUT_TYPE\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_VIEW_NOT_FOCUSED\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_SUPPORTS_FILL_DIALOG\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_IME_SHOWING\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_RESET_FILL_DIALOG_STATE\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_PCC_DETECTION\npublic static final @android.service.autofill.FillRequest.RequestFlags int FLAG_SCREEN_HAS_CREDMAN_FIELD\npublic static final int INVALID_REQUEST_ID\nprivate final int mId\nprivate final @android.annotation.NonNull java.util.List<android.service.autofill.FillContext> mFillContexts\nprivate final @android.annotation.NonNull java.util.List<java.lang.String> mHints\nprivate final @android.annotation.Nullable android.os.Bundle mClientState\nprivate final @android.service.autofill.FillRequest.RequestFlags int mFlags\nprivate final @android.annotation.Nullable android.view.inputmethod.InlineSuggestionsRequest mInlineSuggestionsRequest\nprivate final @android.annotation.Nullable android.content.IntentSender mDelayedFillIntentSender\nprivate void onConstructed()\nclass FillRequest extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genHiddenConstructor=true, genHiddenConstDefs=true)") @Deprecated private void __metadata() {} diff --git a/core/java/android/service/voice/AlwaysOnHotwordDetector.java b/core/java/android/service/voice/AlwaysOnHotwordDetector.java index 91c350aa9aba..17d54b9c34b5 100644 --- a/core/java/android/service/voice/AlwaysOnHotwordDetector.java +++ b/core/java/android/service/voice/AlwaysOnHotwordDetector.java @@ -30,6 +30,8 @@ import android.annotation.SystemApi; import android.annotation.TestApi; import android.app.ActivityThread; import android.app.compat.CompatChanges; +import android.compat.annotation.ChangeId; +import android.compat.annotation.EnabledSince; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.content.Intent; @@ -258,6 +260,16 @@ public class AlwaysOnHotwordDetector extends AbstractDetector { public @interface ModelParams {} /** + * Gates returning {@code IllegalStateException} in {@link #initialize( + * PersistableBundle, SharedMemory, SoundTrigger.ModuleProperties)} when no DSP module + * is available. If the change is not enabled, the existing behavior of not throwing an + * exception and delivering {@link STATE_HARDWARE_UNAVAILABLE} is retained. + */ + @ChangeId + @EnabledSince(targetSdkVersion = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + static final long THROW_ON_INITIALIZE_IF_NO_DSP = 269165460L; + + /** * Controls the sensitivity threshold adjustment factor for a given model. * Negative value corresponds to less sensitive model (high threshold) and * a positive value corresponds to a more sensitive model (low threshold). @@ -870,8 +882,10 @@ public class AlwaysOnHotwordDetector extends AbstractDetector { .equals(SoundTrigger.FAKE_HAL_ARCH)) .findFirst() .orElse(null); - // (@atneya) intentionally let a null moduleProperties through until - // all CTS tests are fixed + if (CompatChanges.isChangeEnabled(THROW_ON_INITIALIZE_IF_NO_DSP) && + moduleProperties == null) { + throw new IllegalStateException("No DSP module available to attach to"); + } } mSoundTriggerSession = mModelManagementService.createSoundTriggerSessionAsOriginator( @@ -1753,17 +1767,19 @@ public class AlwaysOnHotwordDetector extends AbstractDetector { } } - ModuleProperties dspModuleProperties; - try { - dspModuleProperties = - mSoundTriggerSession.getDspModuleProperties(); - } catch (RemoteException e) { - throw e.rethrowFromSystemServer(); - } + if (!CompatChanges.isChangeEnabled(THROW_ON_INITIALIZE_IF_NO_DSP)) { + ModuleProperties dspModuleProperties; + try { + dspModuleProperties = + mSoundTriggerSession.getDspModuleProperties(); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } - // No DSP available - if (dspModuleProperties == null) { - return STATE_HARDWARE_UNAVAILABLE; + // No DSP available + if (dspModuleProperties == null) { + return STATE_HARDWARE_UNAVAILABLE; + } } return STATE_NOT_READY; diff --git a/core/java/android/service/voice/VoiceInteractionService.java b/core/java/android/service/voice/VoiceInteractionService.java index 7822ddeb73d8..90e8cedab622 100644 --- a/core/java/android/service/voice/VoiceInteractionService.java +++ b/core/java/android/service/voice/VoiceInteractionService.java @@ -463,6 +463,10 @@ public class VoiceInteractionService extends Service { * @param callback The callback to notify of detection events. * @return An always-on hotword detector for the given keyphrase and locale. * + * @throws SecurityException if the caller does not hold required permissions + * @throws IllegalStateException if there is no DSP hardware support when a caller has a + * target SDK of API level 34 or above. + * * @deprecated Use {@link #createAlwaysOnHotwordDetector(String, Locale, Executor, * AlwaysOnHotwordDetector.Callback)} instead. * @hide @@ -500,6 +504,10 @@ public class VoiceInteractionService extends Service { * @param callback The callback to notify of detection events. * @return An always-on hotword detector for the given keyphrase and locale. * + * @throws SecurityException if the caller does not hold required permissions + * @throws IllegalStateException if there is no DSP hardware support when a caller has a + * target SDK of API level 34 or above. + * * @hide */ @SystemApi @@ -581,6 +589,11 @@ public class VoiceInteractionService extends Service { * @param callback The callback to notify of detection events. * @return An always-on hotword detector for the given keyphrase and locale. * + * @throws SecurityException if the caller does not hold required permissions + * @throws IllegalStateException if the hotword detection service is not set, isolated process + * is not set, or there is no DSP hardware support when a caller has a target SDK of API + * level 34 or above. + * * @deprecated Use {@link #createAlwaysOnHotwordDetector(String, Locale, PersistableBundle, * SharedMemory, Executor, AlwaysOnHotwordDetector.Callback)} instead. * @hide @@ -631,6 +644,11 @@ public class VoiceInteractionService extends Service { * @param callback The callback to notify of detection events. * @return An always-on hotword detector for the given keyphrase and locale. * + * @throws SecurityException if the caller does not hold required permissions + * @throws IllegalStateException if the hotword detection service is not set, isolated process + * is not set, or there is no DSP hardware support when a caller has a target SDK of API level + * 34 or above. + * * @hide */ @SystemApi diff --git a/core/java/android/text/method/BaseKeyListener.java b/core/java/android/text/method/BaseKeyListener.java index 9a120d57c2c3..e427908541e5 100644 --- a/core/java/android/text/method/BaseKeyListener.java +++ b/core/java/android/text/method/BaseKeyListener.java @@ -345,7 +345,7 @@ public abstract class BaseKeyListener extends MetaKeyKeyListener } // Alt+Backspace or Alt+ForwardDelete deletes the current line, if possible. - if (isAltActive && deleteLine(view, content)) { + if (isAltActive && deleteLineFromCursor(view, content, isForwardDelete)) { return true; } @@ -438,18 +438,34 @@ public abstract class BaseKeyListener extends MetaKeyKeyListener return false; } - private boolean deleteLine(View view, Editable content) { + private boolean deleteLineFromCursor(View view, Editable content, boolean forward) { if (view instanceof TextView) { + final int selectionStart = Selection.getSelectionStart(content); + final int selectionEnd = Selection.getSelectionEnd(content); + final int selectionMin; + final int selectionMax; + if (selectionStart < selectionEnd) { + selectionMin = selectionStart; + selectionMax = selectionEnd; + } else { + selectionMin = selectionEnd; + selectionMax = selectionStart; + } + final TextView textView = (TextView) view; final Layout layout = textView.getLayout(); if (layout != null && !textView.isOffsetMappingAvailable()) { final int line = layout.getLineForOffset(Selection.getSelectionStart(content)); final int start = layout.getLineStart(line); final int end = layout.getLineEnd(line); - if (end != start) { - content.delete(start, end); - return true; + + if (forward) { + content.delete(selectionMin, end); + } else { + content.delete(start, selectionMax); } + + return true; } } return false; diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 003307db832a..96707350b183 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -10380,11 +10380,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, return false; } - // Disable triggering autofill if the view is integrated with CredentialManager. - if (afm.shouldIgnoreCredentialViews() && isCredential()) { - return false; - } - // Check whether view is not part of an activity. If it's not, return false. if (getAutofillViewId() <= LAST_APP_AUTOFILL_ID) { return false; diff --git a/core/java/android/view/autofill/AutofillFeatureFlags.java b/core/java/android/view/autofill/AutofillFeatureFlags.java index 951eeccf4d8a..b67969e5f81a 100644 --- a/core/java/android/view/autofill/AutofillFeatureFlags.java +++ b/core/java/android/view/autofill/AutofillFeatureFlags.java @@ -99,39 +99,34 @@ public class AutofillFeatureFlags { "autofill_dialog_hints"; // START CREDENTIAL MANAGER FLAGS // - /** - * Indicates whether credential manager tagged views should be ignored from autofill structures. - * This flag is further gated by {@link #DEVICE_CONFIG_AUTOFILL_CREDENTIAL_MANAGER_ENABLED} + * (deprecated) Indicates whether credential manager tagged views should be ignored from + * autofill structures.This flag is further gated by + * {@link #DEVICE_CONFIG_AUTOFILL_CREDENTIAL_MANAGER_ENABLED} + * + * TODO(b/280661772): Remove this flag once API change is allowed */ public static final String DEVICE_CONFIG_AUTOFILL_CREDENTIAL_MANAGER_IGNORE_VIEWS = "autofill_credential_manager_ignore_views"; /** - * Indicates CredentialManager feature enabled or not. + * (deprecated) Indicates CredentialManager feature enabled or not. * This is the overall feature flag. Individual behavior of credential manager may be controlled * via a different flag, but gated by this flag. + * + * TODO(b/280661772): Remove this flag once API change is allowed */ public static final String DEVICE_CONFIG_AUTOFILL_CREDENTIAL_MANAGER_ENABLED = "autofill_credential_manager_enabled"; /** - * Indicates whether credential manager tagged views should suppress fill dialog. - * This flag is further gated by {@link #DEVICE_CONFIG_AUTOFILL_CREDENTIAL_MANAGER_ENABLED} - * - * @hide - */ - public static final String DEVICE_CONFIG_AUTOFILL_CREDENTIAL_MANAGER_SUPPRESS_FILL_DIALOG = - "autofill_credential_manager_suppress_fill_dialog"; - - /** - * Indicates whether credential manager tagged views should suppress save dialog. + * Indicates whether credential manager tagged views should suppress fill and save dialog. * This flag is further gated by {@link #DEVICE_CONFIG_AUTOFILL_CREDENTIAL_MANAGER_ENABLED} * * @hide */ - public static final String DEVICE_CONFIG_AUTOFILL_CREDENTIAL_MANAGER_SUPPRESS_SAVE_DIALOG = - "autofill_credential_manager_suppress_save_dialog"; + public static final String DEVICE_CONFIG_AUTOFILL_CREDENTIAL_MANAGER_SUPPRESS_FILL_AND_SAVE_DIALOG = + "autofill_credential_manager_suppress_fill_and_save_dialog"; // END CREDENTIAL MANAGER FLAGS // // START AUTOFILL FOR ALL APPS FLAGS // @@ -270,11 +265,7 @@ public class AutofillFeatureFlags { // CREDENTIAL MANAGER DEFAULTS - // Credential manager is enabled by default so as to allow testing by app developers - private static final boolean DEFAULT_CREDENTIAL_MANAGER_ENABLED = true; - private static final boolean DEFAULT_CREDENTIAL_MANAGER_IGNORE_VIEWS = true; - private static final boolean DEFAULT_CREDENTIAL_MANAGER_SUPPRESS_FILL_DIALOG = false; - private static final boolean DEFAULT_CREDENTIAL_MANAGER_SUPPRESS_SAVE_DIALOG = false; + private static final boolean DEFAULT_CREDENTIAL_MANAGER_SUPPRESS_FILL_AND_SAVE_DIALOG = true; // END CREDENTIAL MANAGER DEFAULTS @@ -317,43 +308,19 @@ public class AutofillFeatureFlags { (str) -> !TextUtils.isEmpty(str)); } - /** - * Whether the Credential Manager feature is enabled or not - * - * @hide - */ - public static boolean isCredentialManagerEnabled() { - return DeviceConfig.getBoolean( - DeviceConfig.NAMESPACE_AUTOFILL, - DEVICE_CONFIG_AUTOFILL_CREDENTIAL_MANAGER_ENABLED, - DEFAULT_CREDENTIAL_MANAGER_ENABLED); - } - - /** - * Whether credential manager tagged views should be ignored for autofill structure. - * - * @hide - */ - public static boolean shouldIgnoreCredentialViews() { - return isCredentialManagerEnabled() - && DeviceConfig.getBoolean( - DeviceConfig.NAMESPACE_AUTOFILL, - DEVICE_CONFIG_AUTOFILL_CREDENTIAL_MANAGER_IGNORE_VIEWS, - DEFAULT_CREDENTIAL_MANAGER_IGNORE_VIEWS); - } - + /* starts credman flag getter function */ /** * Whether credential manager tagged views should not trigger fill dialog requests. * * @hide */ - public static boolean isFillDialogDisabledForCredentialManager() { - return isCredentialManagerEnabled() - && DeviceConfig.getBoolean( - DeviceConfig.NAMESPACE_AUTOFILL, - DEVICE_CONFIG_AUTOFILL_CREDENTIAL_MANAGER_SUPPRESS_FILL_DIALOG, - DEFAULT_CREDENTIAL_MANAGER_SUPPRESS_FILL_DIALOG); + public static boolean isFillAndSaveDialogDisabledForCredentialManager() { + return DeviceConfig.getBoolean( + DeviceConfig.NAMESPACE_AUTOFILL, + DEVICE_CONFIG_AUTOFILL_CREDENTIAL_MANAGER_SUPPRESS_FILL_AND_SAVE_DIALOG, + DEFAULT_CREDENTIAL_MANAGER_SUPPRESS_FILL_AND_SAVE_DIALOG); } + /* ends credman flag getter function */ /** * Whether triggering fill request on unimportant view is enabled. diff --git a/core/java/android/view/autofill/AutofillManager.java b/core/java/android/view/autofill/AutofillManager.java index 6ff4b74c68a6..a6e9d4d2094f 100644 --- a/core/java/android/view/autofill/AutofillManager.java +++ b/core/java/android/view/autofill/AutofillManager.java @@ -21,6 +21,7 @@ import static android.service.autofill.FillRequest.FLAG_MANUAL_REQUEST; import static android.service.autofill.FillRequest.FLAG_PASSWORD_INPUT_TYPE; import static android.service.autofill.FillRequest.FLAG_PCC_DETECTION; import static android.service.autofill.FillRequest.FLAG_RESET_FILL_DIALOG_STATE; +import static android.service.autofill.FillRequest.FLAG_SCREEN_HAS_CREDMAN_FIELD; import static android.service.autofill.FillRequest.FLAG_SUPPORTS_FILL_DIALOG; import static android.service.autofill.FillRequest.FLAG_VIEW_NOT_FOCUSED; import static android.view.ContentInfo.SOURCE_AUTOFILL; @@ -33,7 +34,6 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresFeature; -import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemService; import android.annotation.TestApi; @@ -109,7 +109,6 @@ import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.Set; -import java.util.concurrent.Executor; import java.util.concurrent.atomic.AtomicBoolean; import sun.misc.Cleaner; @@ -638,6 +637,8 @@ public final class AutofillManager { @GuardedBy("mLock") private boolean mEnabledForAugmentedAutofillOnly; + private boolean mHasCredentialField; + /** * Indicates whether there is already a field to do a fill request after * the activity started. @@ -653,6 +654,8 @@ public final class AutofillManager { private final boolean mIsFillDialogEnabled; + private final boolean mIsFillAndSaveDialogDisabledForCredentialManager; + // Indicate whether trigger fill request on unimportant views is enabled private boolean mIsTriggerFillRequestOnUnimportantViewEnabled = false; @@ -699,9 +702,6 @@ public final class AutofillManager { // Indicates whether called the showAutofillDialog() method. private boolean mShowAutofillDialogCalled = false; - // Cached autofill feature flag - private boolean mShouldIgnoreCredentialViews = false; - private final String[] mFillDialogEnabledHints; // Tracked all views that have appeared, including views that there are no @@ -849,7 +849,10 @@ public final class AutofillManager { mIsFillDialogEnabled = AutofillFeatureFlags.isFillDialogEnabled(); mFillDialogEnabledHints = AutofillFeatureFlags.getFillDialogEnabledHints(); - mShouldIgnoreCredentialViews = AutofillFeatureFlags.shouldIgnoreCredentialViews(); + + mIsFillAndSaveDialogDisabledForCredentialManager = + AutofillFeatureFlags.isFillAndSaveDialogDisabledForCredentialManager(); + if (sDebug) { Log.d(TAG, "Fill dialog is enabled:" + mIsFillDialogEnabled + ", hints=" + Arrays.toString(mFillDialogEnabledHints)); @@ -1092,7 +1095,8 @@ public final class AutofillManager { // or if other functions need to call it. if (view.getAutofillType() == View.AUTOFILL_TYPE_NONE) return false; - if (isActivityDeniedForAutofill()) { + // denylist only applies to not important views + if (!view.isImportantForAutofill() && isActivityDeniedForAutofill()) { Log.d(TAG, "view is not autofillable - activity denied for autofill"); return false; } @@ -1415,12 +1419,12 @@ public final class AutofillManager { if (infos.size() == 0) { throw new IllegalArgumentException("No VirtualViewInfo found"); } - if (AutofillFeatureFlags.isFillDialogDisabledForCredentialManager() - && view.isCredential()) { + if (view.isCredential() && mIsFillAndSaveDialogDisabledForCredentialManager) { if (sDebug) { Log.d(TAG, "Ignoring Fill Dialog request since important for credMan:" + view.getAutofillId().toString()); } + mHasCredentialField = true; return; } for (int i = 0; i < infos.size(); i++) { @@ -1442,12 +1446,13 @@ public final class AutofillManager { if (sDebug) { Log.d(TAG, "notifyViewEnteredForFillDialog:" + v.getAutofillId()); } - if (AutofillFeatureFlags.isFillDialogDisabledForCredentialManager() - && v.isCredential()) { + if (v.isCredential() + && mIsFillAndSaveDialogDisabledForCredentialManager) { if (sDebug) { Log.d(TAG, "Ignoring Fill Dialog request since important for credMan:" - + v.getAutofillId().toString()); + + v.getAutofillId()); } + mHasCredentialField = true; return; } notifyViewReadyInner(v.getAutofillId(), v.getAutofillHints()); @@ -1500,7 +1505,7 @@ public final class AutofillManager { if (mIsFillDialogEnabled || ArrayUtils.containsAny(autofillHints, mFillDialogEnabledHints)) { if (sDebug) { - Log.d(TAG, "Trigger fill request when the view is ready."); + Log.d(TAG, "Triggering pre-emptive request for fill dialog."); } int flags = FLAG_SUPPORTS_FILL_DIALOG; @@ -1737,6 +1742,15 @@ public final class AutofillManager { flags |= FLAG_PASSWORD_INPUT_TYPE; } + // Update session when screen has credman field + if (AutofillFeatureFlags.isFillAndSaveDialogDisabledForCredentialManager() + && mHasCredentialField) { + flags |= FLAG_SCREEN_HAS_CREDMAN_FIELD; + if (sVerbose) { + Log.v(TAG, "updating session with flag screen has credman view"); + } + } + flags |= getImeStateFlag(view); if (!isActiveLocked()) { @@ -2240,11 +2254,6 @@ public final class AutofillManager { } /** @hide */ - public boolean shouldIgnoreCredentialViews() { - return mShouldIgnoreCredentialViews; - } - - /** @hide */ public void onAuthenticationResult(int authenticationId, Intent data, View focusView) { if (!hasAutofillFeature()) { return; @@ -2449,6 +2458,7 @@ public final class AutofillManager { mIsFillRequested.set(false); mShowAutofillDialogCalled = false; mFillDialogTriggerIds = null; + mHasCredentialField = false; mAllTrackedViews.clear(); if (resetEnteredIds) { mEnteredIds = null; @@ -3540,7 +3550,8 @@ public final class AutofillManager { private boolean shouldShowAutofillDialog(View view, AutofillId id) { if (!hasFillDialogUiFeature() || mShowAutofillDialogCalled - || mFillDialogTriggerIds == null) { + || mFillDialogTriggerIds == null + || mHasCredentialField) { return false; } diff --git a/core/java/android/window/ConfigurationHelper.java b/core/java/android/window/ConfigurationHelper.java index e32adcf23a3b..269ce083d205 100644 --- a/core/java/android/window/ConfigurationHelper.java +++ b/core/java/android/window/ConfigurationHelper.java @@ -106,7 +106,7 @@ public class ConfigurationHelper { * @see WindowManager#getCurrentWindowMetrics() * @see WindowManager#getMaximumWindowMetrics() */ - private static boolean shouldUpdateWindowMetricsBounds(@NonNull Configuration currentConfig, + public static boolean shouldUpdateWindowMetricsBounds(@NonNull Configuration currentConfig, @NonNull Configuration newConfig) { final Rect currentBounds = currentConfig.windowConfiguration.getBounds(); final Rect newBounds = newConfig.windowConfiguration.getBounds(); diff --git a/core/java/com/android/internal/app/ISoundTriggerService.aidl b/core/java/com/android/internal/app/ISoundTriggerService.aidl index ed751cb481c5..512ff4816cc4 100644 --- a/core/java/com/android/internal/app/ISoundTriggerService.aidl +++ b/core/java/com/android/internal/app/ISoundTriggerService.aidl @@ -79,4 +79,10 @@ interface ISoundTriggerService { * Attach an HAL injection interface. */ void attachInjection(ISoundTriggerInjection injection); + + /** + * Test API to override the phone call state. + */ + void setInPhoneCallState(boolean isInPhoneCall); + } diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml index 2b778b280628..0b3a28846d11 100644 --- a/core/res/res/values-af/strings.xml +++ b/core/res/res/values-af/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android-stelsel"</string> <string name="user_owner_label" msgid="8628726904184471211">"Skakel oor na persoonlike profiel"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Skakel oor na werkprofiel"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Skakel oor na persoonlike <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Skakel oor na werk-<xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontakte"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"in te gaan by jou kontakte"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Ligging"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Laat die program toe om die vibrator te beheer."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Stel die program in staat om toegang tot die vibreerderstand te kry."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"skakel foonnommers direk"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Laat die app toe om foonnommers sonder jou insae te bel. Dit kan onvoorsiene heffings of oproepe tot gevolg hê. Neem kennis dat dit nie die app toelaat om noodnommers te bel nie. Kwaadwillige apps kan jou geld kos deur oproepe te maak sonder jou bevestiging of diensverskafferkodes te bel wat veroorsaak dat inkomende oproepe outomaties na ’n ander nommer aangestuur word."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"toegang tot kitsboodskapoproepdiens"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Laat die program toe om die kitsboodskapdiens te gebruik om oproepe sonder jou ingryping te maak."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"lees foonstatus en identiteit"</string> @@ -701,7 +702,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Kan nie jou gesigmodel skep nie. Probeer weer."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Donkerbril bespeur. Jou gesig moet heeltemal sigbaar wees."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Gesigbedekking bespeur. Jou gesig moet heeltemal sigbaar wees."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Gesigbedekking bespeur. Gesig moet heel sigbaar wees."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Kan nie gesig verifieer nie. Hardeware nie beskikbaar nie."</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Hierdie inhoud kan nie met werkprogramme oopgemaak word nie"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Hierdie inhoud kan nie met persoonlike programme gedeel word nie"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Hierdie inhoud kan nie met persoonlike programme oopgemaak word nie"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Werkapps is onderbreek"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Hervat"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Geen werkprogramme nie"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Geen persoonlike programme nie"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Maak persoonlike <xliff:g id="APP">%s</xliff:g> oop"</string> diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml index 7c99b8a996f5..1ce1b253178b 100644 --- a/core/res/res/values-am/strings.xml +++ b/core/res/res/values-am/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android ስርዓት"</string> <string name="user_owner_label" msgid="8628726904184471211">"ወደ የግል መገለጫ ቀይር"</string> <string name="managed_profile_label" msgid="7316778766973512382">"ወደ የስራ መገለጫ ቀይር"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"ወደ የግል <xliff:g id="APP_NAME">%1$s</xliff:g> ቀይር"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"ወደ የሥራ <xliff:g id="APP_NAME">%1$s</xliff:g> ቀይር"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"ዕውቂያዎች"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"የእርስዎ እውቂያዎች ላይ ይድረሱባቸው"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"መገኛ አካባቢ"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"ነዛሪውን ለመቆጣጠር ለመተግበሪያው ይፈቅዳሉ።"</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"መተግበሪያው የንዝረት ሁኔታውን እንዲደርስ ያስችለዋል።"</string> <string name="permlab_callPhone" msgid="1798582257194643320">"በቀጥታ ስልክ ቁጥሮች ደውል"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"መተግበሪያው ያለእርስዎ ጣልቃ ገብነት ወደ ስልክ ቁጥሮች እንዲደውል ያስችለዋል። ይህ ያልተጠበቁ ክፍያዎችን ወይም ጥሪዎችን ሊያስከትል ይችላል። ይሄ መተግበሪያው ወደ የአደጋ ጊዜ ቁጥሮች እንዲደውል የማይፈቅድለት መሆኑን ያስታወሱ። ተንኮል-አዘል መተግበሪያዎች ያለእርስዎ ማረጋገጫ ጥሪዎችን በማድረግ ገንዘብ ሊያስወጡዎት ወይም ገቢ ጥሪዎችን ወደ ሌላ ቁጥር በራስ-ሰር እንዲተላለፉ ወደሚያደርጉት የአገልግሎት አቅራቢ ኮዶች ሊደውሉ ይችላሉ።"</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"የአይኤምኤስ ጥሪ አገልግሎትን ይደርሳል"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"መተግበሪያው ያለእርስዎ ጣልቃ ገብነት ጥሪዎችን ለማድረግ የአይኤምኤስ አገልግሎቱን እንዲጠቀም ያስችለዋል።"</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"የስልክ ሁኔታና ማንነት አንብብ"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"ይህ ይዘት በሥራ መተግበሪያዎች መከፈት አይችልም"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"ይህ ይዘት በግል መተግበሪያዎች መጋራት አይችልም"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"ይህ ይዘት በግል መተግበሪያዎች መከፈት አይችልም"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"የሥራ መተግበሪያዎች ባሉበት ቆመዋል"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"ከቆመበት ቀጥል"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"ምንም የሥራ መተግበሪያዎች የሉም"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"ምንም የግል መተግበሪያዎች የሉም"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"የግል <xliff:g id="APP">%s</xliff:g> ይክፈቱ"</string> diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml index 90513b217607..f245825d3df9 100644 --- a/core/res/res/values-ar/strings.xml +++ b/core/res/res/values-ar/strings.xml @@ -302,6 +302,8 @@ <string name="android_system_label" msgid="5974767339591067210">"نظام Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"التبديل إلى الملف الشخصي"</string> <string name="managed_profile_label" msgid="7316778766973512382">"التبديل إلى الملف الشخصي للعمل"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"التبديل إلى تطبيق \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" في الملف الشخصي"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"التبديل إلى تطبيق \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" في الملف الشخصي للعمل"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"جهات الاتصال"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"الوصول إلى جهات اتصالك"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"الموقع الجغرافي"</string> @@ -507,8 +509,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"للسماح للتطبيق بالتحكم في الهزّاز."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"يسمح هذا الإذن للتطبيق بالوصول إلى حالة الهزّاز."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"اتصال مباشر بأرقام الهواتف"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"يسمح هذا الإذن للتطبيق بالاتصال بأرقام الهواتف بدون تدخل منك. وقد يؤدي ذلك إلى تحصيل رسوم غير متوقّعة أو إجراء مكالمات غير متوقّعة. يُرجى العلم أنّ هذا الإذن لا يسمح للتطبيق بالاتصال بأرقام الطوارئ. قد يؤدي منح الإذن للتطبيقات الضارة إلى تحصيل رسوم منك عن طريق إجراء مكالمات بدون الحصول على موافقتك أو الاتصال برموز مشغّل شبكة الجوال والتي تتسبّب في إعادة توجيه المكالمات الواردة تلقائيًا إلى رقم آخر."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"الوصول إلى خدمة الاتصال عبر الرسائل الفورية"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"للسماح للتطبيق باستخدام خدمة الرسائل الفورية لإجراء المكالمات بدون تدخل منك."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"قراءة حالة الهاتف والهوية"</string> @@ -638,7 +639,7 @@ <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"الصورة ساطعة للغاية."</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"تم رصد الضغط على زر التشغيل."</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"حاوِل تعديل بصمة الإصبع."</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"غيِّر موضع إصبعك قليلاً في كل مرة."</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"غيِّر موضع إصبعك قليلاً في كل مرة"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"لم يتمّ التعرّف على البصمة."</string> @@ -681,23 +682,23 @@ <string name="fingerprint_recalibrate_notification_content" msgid="8519935717822194943">"يُرجى التواصل مع مقدِّم خدمات إصلاح."</string> <string name="face_acquired_insufficient" msgid="6889245852748492218">"يتعذّر إنشاء نموذج الوجه. يُرجى إعادة المحاولة."</string> <string name="face_acquired_too_bright" msgid="8070756048978079164">"ساطع للغاية. تجربة مستوى سطوع أقلّ."</string> - <string name="face_acquired_too_dark" msgid="8539853432479385326">"الإضاءة غير كافية."</string> + <string name="face_acquired_too_dark" msgid="8539853432479385326">"الإضاءة غير كافية"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"يُرجى إبعاد الهاتف عنك."</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"يُرجى تقريب الهاتف منك."</string> - <string name="face_acquired_too_high" msgid="8278815780046368576">"يُرجى رفع الهاتف للأعلى."</string> - <string name="face_acquired_too_low" msgid="4075391872960840081">"يُرجى خفض الهاتف للأسفل."</string> + <string name="face_acquired_too_high" msgid="8278815780046368576">"يُرجى رفع الهاتف للأعلى"</string> + <string name="face_acquired_too_low" msgid="4075391872960840081">"يُرجى خفض الهاتف للأسفل"</string> <string name="face_acquired_too_right" msgid="6245286514593540859">"يُرجى تحريك الهاتف جهة اليسار."</string> - <string name="face_acquired_too_left" msgid="9201762240918405486">"يُرجى تحريك الهاتف جهة اليمين."</string> + <string name="face_acquired_too_left" msgid="9201762240918405486">"يُرجى تحريك الهاتف لجهة اليمين"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"يُرجى النظر إلى جهازك مباشرة أكثر."</string> <string name="face_acquired_not_detected" msgid="1057966913397548150">"تتعذّر رؤية وجهك. ارفع هاتفك إلى مستوى العينَين."</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"حركة أكثر من اللازم يُرجى حمل بدون حركة."</string> <string name="face_acquired_recalibrate" msgid="8724013080976469746">"يُرجى إعادة تسجيل وجهك."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"يتعذّر التعرّف على الوجه. يُرجى إعادة المحاولة."</string> <string name="face_acquired_too_similar" msgid="8882920552674125694">"غيِّر موضع رأسك قليلاً."</string> - <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"يُرجى النظر إلى هاتفك مباشرةً."</string> - <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"يُرجى النظر إلى هاتفك مباشرةً."</string> - <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"يُرجى النظر إلى هاتفك مباشرةً."</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"عليك بإزالة أي شيء يُخفي وجهك."</string> + <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"يُرجى النظر إلى هاتفك مباشرةً"</string> + <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"يُرجى النظر إلى هاتفك مباشرةً"</string> + <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"يُرجى النظر إلى هاتفك مباشرةً"</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"يجب إزالة أي شيء يُخفي وجهك"</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"يُرجى تنظيف الجزء العلوي من الشاشة، بما في ذلك الشريط الأسود."</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> @@ -705,7 +706,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"يتعذّر إنشاء نموذج الوجه. يُرجى إعادة المحاولة."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"تمّ رصد نظارة شمسية. يجب أن يكون وجهك ظاهرًا بالكامل."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"تمّ رصد قناع على الوجه. يجب أن يكون وجهك ظاهرًا بالكامل."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"تمّ رصد قناع على الوجه في حين يجب ظهور وجهك بالكامل"</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"يتعذّر التحقُّق من الوجه. الجهاز غير مُتاح."</string> @@ -714,8 +715,7 @@ <string name="face_error_canceled" msgid="2164434737103802131">"تمّ إلغاء عملية مصادقة الوجه."</string> <string name="face_error_user_canceled" msgid="5766472033202928373">"ألغى المستخدم ميزة \"فتح الجهاز بالتعرف على الوجه\"."</string> <string name="face_error_lockout" msgid="7864408714994529437">"تمّ إجراء محاولات كثيرة. أعِد المحاولة لاحقًا."</string> - <!-- no translation found for face_error_lockout_permanent (8533257333130473422) --> - <skip /> + <string name="face_error_lockout_permanent" msgid="8533257333130473422">"أجريت محاولات كثيرة جدًا. ميزة \"فتح الجهاز بالتعرف على الوجه\" غير متاحة."</string> <string name="face_error_lockout_screen_lock" msgid="5062609811636860928">"تم إجراء عدد كبير جدًا من المحاولات. أدخِل قفل الشاشة بدلاً من ذلك."</string> <string name="face_error_unable_to_process" msgid="5723292697366130070">"يتعذّر التحقق من الوجه. حاول مرة أخرى."</string> <string name="face_error_not_enrolled" msgid="1134739108536328412">"لم يسبق لك إعداد ميزة \"فتح الجهاز بالتعرف على الوجه\"."</string> @@ -1260,7 +1260,7 @@ <string name="android_upgrading_starting_apps" msgid="6206161195076057075">"بدء التطبيقات."</string> <string name="android_upgrading_complete" msgid="409800058018374746">"جارٍ إعادة التشغيل."</string> <string name="fp_power_button_enrollment_message" msgid="5648173517663246140">"ضغطت على زر التشغيل، يؤدي هذا عادةً إلى إيقاف الشاشة.\n\nجرِّب النقر بخفة أثناء إعداد بصمتك."</string> - <string name="fp_power_button_enrollment_title" msgid="6976841690455338563">"لإنهاء عملية الإعداد، أوقِف الشاشة."</string> + <string name="fp_power_button_enrollment_title" msgid="6976841690455338563">"لإيقاف عملية الإعداد، أغلِق الشاشة."</string> <string name="fp_power_button_enrollment_button_text" msgid="3199783266386029200">"إيقاف"</string> <string name="fp_power_button_bp_title" msgid="5585506104526820067">"هل تريد مواصلة تأكيد بصمة إصبعك؟"</string> <string name="fp_power_button_bp_message" msgid="2983163038168903393">"ضغطت على زر التشغيل، يؤدي هذا عادةً إلى إيقاف الشاشة.\n\nجرِّب النقر بخفة لتأكيد بصمة إصبعك."</string> @@ -1396,7 +1396,7 @@ <string name="share_remote_bugreport_action" msgid="7630880678785123682">"مشاركة"</string> <string name="decline_remote_bugreport_action" msgid="4040894777519784346">"رفض"</string> <string name="select_input_method" msgid="3971267998568587025">"اختيار أسلوب الإدخال"</string> - <string name="show_ime" msgid="6406112007347443383">"استمرار عرضها على الشاشة أثناء نشاط لوحة المفاتيح الفعلية"</string> + <string name="show_ime" msgid="6406112007347443383">"استمرار عرضها على الشاشة عندما تكون لوحة المفاتيح الخارجية متصلة"</string> <string name="hardware" msgid="1800597768237606953">"إظهار لوحة المفاتيح الافتراضية"</string> <string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"إعداد <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string> <string name="select_multiple_keyboards_layout_notification_title" msgid="6999491025126641938">"إعداد لوحات المفاتيح الخارجية"</string> @@ -1706,7 +1706,7 @@ <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"قراءة محتوى الشاشة والتحكم به"</string> <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"يمكنها قراءة كل المحتوى على الشاشة وعرض المحتوى فوق تطبيقات أخرى."</string> <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"عرض الإجراءات وتنفيذها"</string> - <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"يمكنها تتبّع تفاعلاتك مع تطبيق أو جهاز استشعار والتفاعل مع التطبيقات نيابةً عنك."</string> + <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"قد يؤدي ذلك إلى السماح للميزة بتتبّع تفاعلاتك مع تطبيق أو جهاز استشعار والتفاعل مع التطبيقات نيابةً عنك."</string> <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"سماح"</string> <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"رفض"</string> <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"انقر على ميزة لبدء استخدامها:"</string> @@ -2164,16 +2164,12 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"لا يمكن فتح هذا المحتوى باستخدام تطبيقات العمل."</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"لا يمكن مشاركة هذا المحتوى مع التطبيقات الشخصية."</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"لا يمكن فتح هذا المحتوى باستخدام التطبيقات الشخصية."</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"تطبيقات العمل متوقفة مؤقتًا."</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"إلغاء الإيقاف المؤقت"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"ما مِن تطبيقات عمل."</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"ما مِن تطبيقات شخصية."</string> - <!-- no translation found for miniresolver_open_in_personal (6499100403307136696) --> - <skip /> - <!-- no translation found for miniresolver_open_in_work (7138659785478630639) --> - <skip /> + <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"فتح تطبيق \"<xliff:g id="APP">%s</xliff:g>\" في الملف الشخصي"</string> + <string name="miniresolver_open_in_work" msgid="7138659785478630639">"فتح تطبيق \"<xliff:g id="APP">%s</xliff:g>\" في ملف العمل"</string> <string name="miniresolver_use_personal_browser" msgid="776072682871133308">"استخدام المتصفّح الشخصي"</string> <string name="miniresolver_use_work_browser" msgid="543575306251952994">"استخدام متصفّح العمل"</string> <string name="PERSOSUBSTATE_SIM_NETWORK_ENTRY" msgid="8050953231914637819">"رقم التعريف الشخصي لإلغاء قفل شبكة شريحة SIM"</string> diff --git a/core/res/res/values-as/strings.xml b/core/res/res/values-as/strings.xml index 6132b945db0f..78ce491b298a 100644 --- a/core/res/res/values-as/strings.xml +++ b/core/res/res/values-as/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android ছিষ্টেম"</string> <string name="user_owner_label" msgid="8628726904184471211">"ব্যক্তিগত প্ৰ\'ফাইললৈ সলনি কৰক"</string> <string name="managed_profile_label" msgid="7316778766973512382">"কৰ্মস্থানৰ প্ৰ’ফাইললৈ সলনি কৰক"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"ব্যক্তিগত <xliff:g id="APP_NAME">%1$s</xliff:g>লৈ সলনি কৰক"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"কৰ্মস্থানৰ <xliff:g id="APP_NAME">%1$s</xliff:g>লৈ সলনি কৰক"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"সম্পর্কসূচী"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"আপোনাৰ সম্পৰ্কসূচী চাব পাৰে"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"অৱস্থান"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"ভাইব্ৰেটৰ নিয়ন্ত্ৰণ কৰিবলৈ এপ্টোক অনুমতি দিয়ে।"</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"এপ্টোক কম্পন স্থিতিটো এক্সেছ কৰিবলৈ অনুমতি দিয়ে।"</string> <string name="permlab_callPhone" msgid="1798582257194643320">"পোনপটীয়াকৈ ফ\'ন নম্বৰলৈ কল কৰক"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"এপ্টোক আপোনাৰ হস্তক্ষেপ অবিহনে ফ’ন নম্বৰসমূহলৈ কল কৰিবলৈ অনুমতি দিয়ে। ইয়াৰ ফলত অপ্ৰত্যাশিত মাচুল লোৱা অথবা কল কৰা হ’ব পাৰে। মনত ৰাখিব যে ই এপ্টোক জৰুৰীকালীন নম্বৰসমূহত কল কৰিবলৈ অনুমতি নিদিয়ে। ক্ষতিকাৰক এপ্সমূহে আপোনাৰ অনুমতি নোলোৱাকৈয়ে কল কৰি আপোনাৰ টকা খৰছ কৰাব পাৰে অথবা এনেকুৱা বাহকৰ ক’ড ডায়েল কৰিব পাৰে যাৰ ফলত অন্তৰ্গামী কলসমূহ স্বয়ংক্ৰিয়ভাৱে অন্য নম্বৰলৈ ফৰৱাৰ্ড হয়।"</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"আইএমএছ কল সেৱা ব্যৱহাৰ কৰিব পাৰে"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"আপোনাৰ হস্তক্ষেপৰ অবিহনে আইএমএছ সেৱা ব্যৱহাৰ কৰি কল কৰিবলৈ এপক অনুমতি দিয়ে।"</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"ফ\'নৰ স্থিতি আৰু পৰিচয় পঢ়ক"</string> @@ -1715,7 +1716,7 @@ <string name="color_inversion_feature_name" msgid="2672824491933264951">"ৰং বিপৰীতকৰণ"</string> <string name="color_correction_feature_name" msgid="7975133554160979214">"ৰং শুধৰণী"</string> <string name="one_handed_mode_feature_name" msgid="2334330034828094891">"এখন হাতেৰে ব্যৱহাৰ কৰাৰ ম’ড"</string> - <string name="reduce_bright_colors_feature_name" msgid="3222994553174604132">"এক্সট্ৰা ডিম"</string> + <string name="reduce_bright_colors_feature_name" msgid="3222994553174604132">"অতিৰিক্তভাৱে পোহৰ কমোৱাৰ সুবিধা"</string> <string name="hearing_aids_feature_name" msgid="1125892105105852542">"শুনাৰ ডিভাইচ"</string> <string name="accessibility_shortcut_enabling_service" msgid="5473495203759847687">"ভলিউম কীসমূহ ধৰি ৰাখক। <xliff:g id="SERVICE_NAME">%1$s</xliff:g> অন কৰা হ\'ল।"</string> <string name="accessibility_shortcut_disabling_service" msgid="8675244165062700619">"ভলিউম কী ধৰি ৰাখিছিল। <xliff:g id="SERVICE_NAME">%1$s</xliff:g> অফ কৰা হ\'ল।"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"এই সমল কৰ্মস্থানৰ এপৰ জৰিয়তে খুলিব নোৱাৰি"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"এই সমল ব্যক্তিগত এপৰ সৈতে শ্বেয়াৰ কৰিব নোৱাৰি"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"এই সমল ব্যক্তিগত এপৰ জৰিয়তে খুলিব নোৱাৰি"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"কৰ্মস্থানৰ এপ্সমূহ পজ কৰা আছে"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"আনপজ কৰক"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"কোনো কৰ্মস্থানৰ এপ্ নাই"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"কোনো ব্যক্তিগত এপ্ নাই"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"ব্যক্তিগত <xliff:g id="APP">%s</xliff:g> খোলক"</string> diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml index 8050996baaf0..c6c5e9120f05 100644 --- a/core/res/res/values-az/strings.xml +++ b/core/res/res/values-az/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android sistemi"</string> <string name="user_owner_label" msgid="8628726904184471211">"Şəxsi profilə keçin"</string> <string name="managed_profile_label" msgid="7316778766973512382">"İş profilinə keçin"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"<xliff:g id="APP_NAME">%1$s</xliff:g> üzrə şəxsi profilə keçin"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"<xliff:g id="APP_NAME">%1$s</xliff:g> üzrə iş profilinə keçin"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontaktlar"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"kontaktlarınıza daxil olun"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Məkan"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Tətbiqə vibratoru idarə etmə icazəsi verir."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Tətbiqə vibrasiya vəziyyətinə daxil olmaq imkanı verir."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"telefon nömrələrinə birbaşa zəng edir"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Tətbiqə telefon nömrələrinə müdaxiləsiz zəng etmək icazəsi verir. Gözlənilməz ödəmə və ya zənglə nəticələnə bilər. Bununla tətbiq təcili nömrələrə zəng edə bilmir. Zərərli tətbiqlər təsdiq olmadan zəng etməklə və ya gələn zənglərin başqa nömrəyə avtomatik yönləndirilməsinə səbəb olan operator kodları yığmaqla xərc yarada bilər."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS zəng xidmətinə giriş"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Tətbiqə müdaxilə olmadan zəng etmək üçün IMS xidmətindən istifadə etməyə imkan verir."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"telefon statusunu və identifikasiyanı oxuyur"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Bu kontenti iş tətbiqləri ilə açmaq mümkün deyil"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Bu kontenti şəxsi tətbiqlər ilə paylaşmaq mümkün deyil"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Bu kontenti şəxsi tətbiqlər ilə açmaq mümkün deyil"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"İş tətbiqlərinə pauza verilib"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Pauzanı bitirin"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"İş tətbiqi yoxdur"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Şəxsi tətbiq yoxdur"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Açın: <xliff:g id="APP">%s</xliff:g> (şəxsi)"</string> diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml index 125d1cd4ea34..3d640d800abd 100644 --- a/core/res/res/values-b+sr+Latn/strings.xml +++ b/core/res/res/values-b+sr+Latn/strings.xml @@ -299,6 +299,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android sistem"</string> <string name="user_owner_label" msgid="8628726904184471211">"Pređi na lični profil"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Pređi na poslovni profil"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Pređi na lični profil aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Pređi na poslovni profil aplikacije <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontakti"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"pristupi kontaktima"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Lokacija"</string> @@ -504,8 +506,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Dozvoljava aplikaciji da kontroliše vibraciju."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Dozvoljava aplikaciji da pristupa stanju vibriranja."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"direktno pozivanje brojeva telefona"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Dozvoljava aplikaciji da poziva brojeve telefona bez vaše interakcije. To može da dovede do neočekivanih naplata ili poziva. Imajte u vidu da se time aplikaciji ne dozvoljava da poziva brojeve za hitne slučajeve. Zlonamerne aplikacije mogu da izazovu troškove upućivanjem poziva bez vaše potvrde ili da biraju kodove operatera usled čega se dolazni pozivi automatski prosleđuju na drugi broj."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"pristup usluzi poziva pomoću razmene trenutnih poruka"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Dozvoljava aplikaciji da koristi uslugu razmene trenutnih poruka da bi upućivala pozive bez vaše intervencije."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"čitanje statusa i identiteta telefona"</string> @@ -702,7 +703,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Pravljenje modela lica nije uspelo. Probajte ponovo."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Otkrivene su tamne naočari. Lice mora da bude potpuno vidljivo."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Otkriveno je prekrivanje lica. Lice mora da bude potpuno vidljivo."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Lice je prekriveno. Mora da bude sasvim vidljivo."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Provera lica nije uspela. Hardver nije dostupan."</string> @@ -1256,7 +1257,7 @@ <string name="android_upgrading_starting_apps" msgid="6206161195076057075">"Pokretanje aplikacija."</string> <string name="android_upgrading_complete" msgid="409800058018374746">"Završavanje pokretanja."</string> <string name="fp_power_button_enrollment_message" msgid="5648173517663246140">"Pritisnuli ste dugme za uključivanje – time obično isključujete ekran.\n\nProbajte lagano da dodirnete dok podešavate otisak prsta."</string> - <string name="fp_power_button_enrollment_title" msgid="6976841690455338563">"Završite podešavanje isključivanjem ekrana"</string> + <string name="fp_power_button_enrollment_title" msgid="6976841690455338563">"Isključite ekran i napustite podešavanje"</string> <string name="fp_power_button_enrollment_button_text" msgid="3199783266386029200">"Isključi"</string> <string name="fp_power_button_bp_title" msgid="5585506104526820067">"Nastavljate verifikaciju otiska prsta?"</string> <string name="fp_power_button_bp_message" msgid="2983163038168903393">"Pritisnuli ste dugme za uključivanje – time obično isključujete ekran.\n\nProbajte lagano da dodirnete da biste verifikovali otisak prsta."</string> @@ -1846,7 +1847,7 @@ <string name="restr_pin_confirm_pin" msgid="7143161971614944989">"Potvrdite novi PIN"</string> <string name="restr_pin_create_pin" msgid="917067613896366033">"Napravite PIN za izmenu ograničenja"</string> <string name="restr_pin_error_doesnt_match" msgid="7063392698489280556">"PIN-ovi se ne podudaraju. Probajte ponovo."</string> - <string name="restr_pin_error_too_short" msgid="1547007808237941065">"PIN je prekratak. Mora da sadrži najmanje 4 cifre."</string> + <string name="restr_pin_error_too_short" msgid="1547007808237941065">"PIN je prekratak. Mora da ima bar 4 cifre."</string> <string name="restr_pin_try_later" msgid="5897719962541636727">"Probajte ponovo kasnije"</string> <string name="immersive_cling_title" msgid="2307034298721541791">"Prikazuje se ceo ekran"</string> <string name="immersive_cling_description" msgid="7092737175345204832">"Da biste izašli, prevucite nadole odozgo."</string> @@ -2160,10 +2161,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Ovaj sadržaj ne može da se otvara pomoću poslovnih aplikacija"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Ovaj sadržaj ne može da se deli pomoću ličnih aplikacija"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Ovaj sadržaj ne može da se otvara pomoću ličnih aplikacija"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Poslovne aplikacije su pauzirane"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Opozovi pauzu"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Nema poslovnih aplikacija"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Nema ličnih aplikacija"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Otvorite ličnu aplikaciju <xliff:g id="APP">%s</xliff:g>"</string> diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml index 2cc38d6926b6..5e97e2ed8754 100644 --- a/core/res/res/values-be/strings.xml +++ b/core/res/res/values-be/strings.xml @@ -300,6 +300,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Сістэма Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Пераключыцца на асабісты профіль"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Пераключыцца на працоўны профіль"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Пераключыцца на асабісты профіль <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Пераключыцца на працоўны профіль <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Кантакты"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"атрымліваць доступ да вашых кантактаў"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Месцазнаходжанне"</string> @@ -505,8 +507,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Дазваляе прыкладанням кіраваць вібрацыяй."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Дазваляе праграме атрымліваць доступ да вібрасігналу."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"непасрэдна набіраць тэлефонныя нумары"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Дазваляе праграме тэлефанаваць на тэлефонныя нумары без вашага ўдзелу. У выніку вы можаце пабачыць нечаканыя плацяжы і званкі. Аднак праграма не зможа рабіць выклікі на нумары экстранных службаў. Шкодныя праграмы могуць прыносіць выдаткі, робячы выклікі без вашага пацвярджэння, або набіраючы коды аператараў, з якімі ўваходныя выклікі аўтаматычна перанакіроўваюцца на іншы нумар."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"атрымліваць доступ да сэрвісу выклікаў IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Дазваляе праграмам выкарыстоўваць службу IMS, каб рабіць выклікі без вашага ўмяшання."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"чытанне статусу тэлефона і ідэнтыфікацыя"</string> @@ -674,7 +675,7 @@ <string name="face_sensor_privacy_enabled" msgid="7407126963510598508">"Каб выкарыстоўваць распазнаванне твару, уключыце "<b>"доступ да камеры"</b>" праз раздзел \"Налады > Прыватнасць\""</string> <string name="fingerprint_setup_notification_title" msgid="2002630611398849495">"Наладзьце дадатковыя спосабы разблакіроўкі"</string> <string name="fingerprint_setup_notification_content" msgid="205578121848324852">"Націсніце, каб дадаць адбітак пальца"</string> - <string name="fingerprint_recalibrate_notification_name" msgid="1414578431898579354">"Разблакіраванне адбіткам пальца"</string> + <string name="fingerprint_recalibrate_notification_name" msgid="1414578431898579354">"Разблакіроўка адбіткам пальца"</string> <string name="fingerprint_recalibrate_notification_title" msgid="2406561052064558497">"Не ўдалося скарыстаць сканер адбіткаў пальцаў"</string> <string name="fingerprint_recalibrate_notification_content" msgid="8519935717822194943">"Звярніцеся ў сэрвісны цэнтр."</string> <string name="face_acquired_insufficient" msgid="6889245852748492218">"Не ўдалося стварыць мадэль твару. Паўтарыце."</string> @@ -712,8 +713,7 @@ <string name="face_error_canceled" msgid="2164434737103802131">"Распазнаванне твару скасавана."</string> <string name="face_error_user_canceled" msgid="5766472033202928373">"Распазнаванне твару скасавана карыстальнікам"</string> <string name="face_error_lockout" msgid="7864408714994529437">"Занадта шмат спроб. Паўтарыце спробу пазней."</string> - <!-- no translation found for face_error_lockout_permanent (8533257333130473422) --> - <skip /> + <string name="face_error_lockout_permanent" msgid="8533257333130473422">"Занадта шмат спроб. Распазнаванне твару недаступна."</string> <string name="face_error_lockout_screen_lock" msgid="5062609811636860928">"Занадта шмат спроб. Разблакіруйце экран іншым спосабам."</string> <string name="face_error_unable_to_process" msgid="5723292697366130070">"Не ўдалося спраўдзіць твар. Паўтарыце спробу."</string> <string name="face_error_not_enrolled" msgid="1134739108536328412">"Вы не наладзілі распазнаванне твару"</string> @@ -1874,8 +1874,8 @@ <string name="package_updated_device_owner" msgid="7560272363805506941">"Абноўлены вашым адміністратарам"</string> <string name="package_deleted_device_owner" msgid="2292335928930293023">"Выдалены вашым адміністратарам"</string> <string name="confirm_battery_saver" msgid="5247976246208245754">"ОК"</string> - <string name="battery_saver_description_with_learn_more" msgid="5444908404021316250">"У рэжыме эканоміі зараду ўключаецца цёмная тэма і выключаюцца ці абмяжоўваюцца дзеянні ў фонавым рэжыме, некаторыя візуальныя эфекты, пэўныя функцыі і падключэнні да сетак."</string> - <string name="battery_saver_description" msgid="8518809702138617167">"У рэжыме эканоміі зараду ўключаецца цёмная тэма і выключаюцца ці абмяжоўваюцца дзеянні ў фонавым рэжыме, некаторыя візуальныя эфекты, пэўныя функцыі і падключэнні да сетак."</string> + <string name="battery_saver_description_with_learn_more" msgid="5444908404021316250">"У рэжыме энергазберажэння ўключаецца цёмная тэма і выключаюцца ці абмяжоўваюцца дзеянні ў фонавым рэжыме, некаторыя візуальныя эфекты, пэўныя функцыі і падключэнні да сетак."</string> + <string name="battery_saver_description" msgid="8518809702138617167">"У рэжыме энергазберажэння ўключаецца цёмная тэма і выключаюцца ці абмяжоўваюцца дзеянні ў фонавым рэжыме, некаторыя візуальныя эфекты, пэўныя функцыі і падключэнні да сетак."</string> <string name="data_saver_description" msgid="4995164271550590517">"У рэжыме \"Эканомія трафіка\" фонавая перадача для некаторых праграмам адключана. Праграма, якую вы зараз выкарыстоўваеце, можа атрымліваць доступ да даных, але радзей, чым звычайна. Напрыклад, відарысы могуць не загружацца, пакуль вы не націсніце на іх."</string> <string name="data_saver_enable_title" msgid="7080620065745260137">"Уключыць Эканомію трафіка?"</string> <string name="data_saver_enable_button" msgid="4399405762586419726">"Уключыць"</string> @@ -2162,16 +2162,12 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Не ўдалося адкрыць гэта змесціва з дапамогай працоўных праграм"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Не ўдалося абагуліць гэта змесціва з асабістымі праграмамі"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Не ўдалося адкрыць гэта змесціва з дапамогай асабістых праграм"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Працоўныя праграмы прыпынены"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Уключыць"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Няма працоўных праграм"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Няма асабістых праграм"</string> - <!-- no translation found for miniresolver_open_in_personal (6499100403307136696) --> - <skip /> - <!-- no translation found for miniresolver_open_in_work (7138659785478630639) --> - <skip /> + <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Адкрыць асабістую праграму <xliff:g id="APP">%s</xliff:g>"</string> + <string name="miniresolver_open_in_work" msgid="7138659785478630639">"Адкрыць працоўную праграму <xliff:g id="APP">%s</xliff:g>"</string> <string name="miniresolver_use_personal_browser" msgid="776072682871133308">"Скарыстаць асабісты браўзер"</string> <string name="miniresolver_use_work_browser" msgid="543575306251952994">"Скарыстаць працоўны браўзер"</string> <string name="PERSOSUBSTATE_SIM_NETWORK_ENTRY" msgid="8050953231914637819">"PIN-код разблакіроўкі сеткі для SIM-карты"</string> diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index e4d72ee65d52..ae3c0c60f0a8 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Система Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Превключване към личния потребителски профил"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Превключване към служебния потребителски профил"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Превключване към <xliff:g id="APP_NAME">%1$s</xliff:g> в личния потребителски профил"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Превключване към <xliff:g id="APP_NAME">%1$s</xliff:g> в служебния потребителски профил"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Контакти"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"има достъп до контактите ви"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Местоположение"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Разрешава на приложението да контролира устройството за вибрация."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Дава възможност на приложението да осъществява достъп до състоянието на вибриране."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"директно обаждане до телефонни номера"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Разрешава на приложението да се обажда без ваша намеса на телефонни номера. Това може да доведе до неочаквани таксувания или обаждания. Имайте предвид, че това не позволява на приложението да извършва обаждания до номера за спешни случаи. Злонамерените приложения могат да ви въвлекат в разходи, като извършват обаждания без потвърждение от ваша страна или като набират кодове на оператора, които автоматично пренасочват входящите обаждания към друг номер."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"достъп до услугата за незабавни съобщения за обаждания"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Разрешава на приложението да използва услугата за незабавни съобщения за извършване на обаждания без намеса от ваша страна."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"четене на състоянието и идентификационните данни на телефона"</string> @@ -2064,7 +2065,7 @@ <string name="harmful_app_warning_open_anyway" msgid="5963657791740211807">"ОТВАРЯНЕ"</string> <string name="harmful_app_warning_title" msgid="8794823880881113856">"Открито е опасно приложение"</string> <string name="slices_permission_request" msgid="3677129866636153406">"<xliff:g id="APP_0">%1$s</xliff:g> иска да показва части от <xliff:g id="APP_2">%2$s</xliff:g>"</string> - <string name="screenshot_edit" msgid="7408934887203689207">"Редактиране"</string> + <string name="screenshot_edit" msgid="7408934887203689207">"Редактиране"</string> <string name="volume_dialog_ringer_guidance_vibrate" msgid="2055927873175228519">"При обаждания и известия устройството ще вибрира"</string> <string name="volume_dialog_ringer_guidance_silent" msgid="1011246774949993783">"Обажданията и известията ще бъдат заглушени"</string> <string name="notification_channel_system_changes" msgid="2462010596920209678">"Промени в системата"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Това съдържание не може да се отваря със служебни приложения"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Това съдържание не може да се споделя с лични приложения"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Това съдържание не може да се отваря с лични приложения"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Служебните приложения са поставени на пауза"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Отмяна на паузата"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Няма подходящи служебни приложения"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Няма подходящи лични приложения"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Към личния потребителски профил в(ъв) <xliff:g id="APP">%s</xliff:g>"</string> @@ -2318,9 +2317,9 @@ <string name="permdesc_startForegroundServicesFromBackground" msgid="4071826571656001537">"Разрешава на дадено придружаващо приложение да стартира услуги на преден план, докато се изпълнява на заден план."</string> <string name="mic_access_on_toast" msgid="2666925317663845156">"Микрофонът е налице"</string> <string name="mic_access_off_toast" msgid="8111040892954242437">"Микрофонът е блокиран"</string> - <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Двоен екран"</string> - <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Функцията за двоен екран е включена"</string> - <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"Приложението <xliff:g id="APP_NAME">%1$s</xliff:g> използва и двата екрана, за да показва съдържание"</string> + <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Dual screen"</string> + <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Функцията Dual Screen е включена"</string> + <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> използва и двата екрана, за да показва съдържание"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"Устройството е твърде топло"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"Функцията за двоен екран не е налице, защото телефонът ви е твърде топъл"</string> <string name="concurrent_display_notification_power_save_title" msgid="1794569070730736281">"Функцията Dual Screen не е налице"</string> diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml index a5cbfa00355f..d4fc14f1435b 100644 --- a/core/res/res/values-bn/strings.xml +++ b/core/res/res/values-bn/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android সিস্টেম"</string> <string name="user_owner_label" msgid="8628726904184471211">"এর বদলে ব্যক্তিগত প্রোফাইল ব্যবহার করুন"</string> <string name="managed_profile_label" msgid="7316778766973512382">"এর বদলে কাজের প্রোফাইল ব্যবহার করুন"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"<xliff:g id="APP_NAME">%1$s</xliff:g> ব্যক্তিগত প্রোফাইলে পরিবর্তন করুন"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"<xliff:g id="APP_NAME">%1$s</xliff:g> অফিস প্রোফাইলে পরিবর্তন করুন"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"পরিচিতি"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"আপনার পরিচিতিগুলিতে অ্যাক্সেস"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"লোকেশন"</string> @@ -633,7 +635,7 @@ <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"অত্যন্ত উজ্জ্বল"</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"পাওয়ার বোতাম প্রেস করার বিষয়টি শনাক্ত করা হয়েছে"</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"অ্যাডজাস্ট করার চেষ্টা করুন"</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"প্রতিবার আঙ্গুলের ছাপ সেটআপ করার সময় আপনার আঙ্গুলের অবস্থান সামান্য পরিবর্তন করুন"</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"প্রতিবার আপনার আঙুলের অবস্থান সামান্য পরিবর্তন করুন"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"আঙ্গুলের ছাপ শনাক্ত করা যায়নি"</string> @@ -1727,7 +1729,7 @@ <string name="accessibility_gesture_3finger_instructional_text" msgid="3425123684990193765">"একটি ফিচার থেকে অন্যটিতে যেতে, তিনটি আঙ্গুল দিয়ে উপরের দিকে সোয়াইপ করে ধরে থাকুন।"</string> <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"বড় করে দেখা"</string> <string name="user_switched" msgid="7249833311585228097">"বর্তমান ব্যবহারকারী <xliff:g id="NAME">%1$s</xliff:g>৷"</string> - <string name="user_switching_message" msgid="1912993630661332336">"ব্যবহারকারী পরিবর্তন করে <xliff:g id="NAME">%1$s</xliff:g> করা হচ্ছে…"</string> + <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> প্রোফাইলে পাল্টানো হচ্ছে…"</string> <string name="user_logging_out_message" msgid="7216437629179710359">"<xliff:g id="NAME">%1$s</xliff:g>কে লগ-আউট করা হচ্ছে..."</string> <string name="owner_name" msgid="8713560351570795743">"মালিক"</string> <string name="guest_name" msgid="8502103277839834324">"অতিথি"</string> diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml index 478a3b63f292..a9905945ae21 100644 --- a/core/res/res/values-bs/strings.xml +++ b/core/res/res/values-bs/strings.xml @@ -247,7 +247,7 @@ <string name="global_action_power_off" msgid="4404936470711393203">"Isključi"</string> <string name="global_action_power_options" msgid="1185286119330160073">"Napajanje"</string> <string name="global_action_restart" msgid="4678451019561687074">"Ponovo pokreni"</string> - <string name="global_action_emergency" msgid="1387617624177105088">"Hitno"</string> + <string name="global_action_emergency" msgid="1387617624177105088">"Hitni poziv"</string> <string name="global_action_bug_report" msgid="5127867163044170003">"Izvještaj o greškama"</string> <string name="global_action_logout" msgid="6093581310002476511">"Završi sesiju"</string> <string name="global_action_screenshot" msgid="2610053466156478564">"Snimak ekrana"</string> @@ -269,7 +269,7 @@ <string name="global_action_settings" msgid="4671878836947494217">"Postavke"</string> <string name="global_action_assist" msgid="2517047220311505805">"Pomoć"</string> <string name="global_action_voice_assist" msgid="6655788068555086695">"Glasovna pomoć"</string> - <string name="global_action_lockdown" msgid="2475471405907902963">"Zaključavanje"</string> + <string name="global_action_lockdown" msgid="2475471405907902963">"Zaključaj"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> <string name="notification_hidden_text" msgid="2835519769868187223">"Novo obavještenje"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fizička tastatura"</string> @@ -299,6 +299,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Sistem Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Pređite na lični profil"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Pređite na radni profil"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Prebaci u ličnu aplikaciju <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Prebaci u poslovnu aplikaciju <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontakti"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"pristupa vašim kontaktima"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Lokacija"</string> @@ -644,7 +646,7 @@ <string name="face_authenticated_confirmation_required" msgid="6872632732508013755">"Lice je provjereno, pritisnite dugme za potvrdu"</string> <string name="fingerprint_error_hw_not_available" msgid="4571700896929561202">"Hardver za otisak prsta nije dostupan."</string> <string name="fingerprint_error_no_space" msgid="7285481581905967580">"Nije moguće postaviti otisak prsta"</string> - <string name="fingerprint_error_timeout" msgid="7361192266621252164">"Vrijeme za postavljanje otiska prsta je isteklo. Pokušajte ponovo."</string> + <string name="fingerprint_error_timeout" msgid="7361192266621252164">"Postavljanje otiska prsta je isteklo. Pokušajte ponovo."</string> <string name="fingerprint_error_canceled" msgid="540026881380070750">"Radnja s otiskom prsta je otkazana."</string> <string name="fingerprint_error_user_canceled" msgid="7685676229281231614">"Korisnik je otkazao radnju s otiskom prsta."</string> <string name="fingerprint_error_lockout" msgid="6626753679019351368">"Previše pokušaja. Umjesto toga koristite zaključavanje ekrana."</string> @@ -964,7 +966,7 @@ <string name="lockscreen_instructions_when_pattern_enabled" msgid="7982445492532123308">"Pritisnite dugme Meni kako biste otključali uređaj ili obavili hitni poziv."</string> <string name="lockscreen_instructions_when_pattern_disabled" msgid="7434061749374801753">"Pritisnite dugme Meni za otključavanje uređaja."</string> <string name="lockscreen_pattern_instructions" msgid="3169991838169244941">"Nacrtajte uzorak za otključavanje"</string> - <string name="lockscreen_emergency_call" msgid="7500692654885445299">"Hitno"</string> + <string name="lockscreen_emergency_call" msgid="7500692654885445299">"Hitni poziv"</string> <string name="lockscreen_return_to_call" msgid="3156883574692006382">"Povratak na poziv"</string> <string name="lockscreen_pattern_correct" msgid="8050630103651508582">"Ispravno!"</string> <string name="lockscreen_pattern_wrong" msgid="2940138714468358458">"Pokušajte ponovo"</string> diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml index b13e9e80f931..804f34b42a69 100644 --- a/core/res/res/values-ca/strings.xml +++ b/core/res/res/values-ca/strings.xml @@ -299,6 +299,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Sistema Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Canvia al perfil personal"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Canvia al perfil de treball"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Canvia al perfil personal de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Canvia al perfil de treball de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Contactes"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"accedir als contactes"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Ubicació"</string> @@ -474,8 +476,8 @@ <string name="permdesc_writeCalendar" product="default" msgid="5416380074475634233">"Aquesta aplicació pot afegir, suprimir i canviar esdeveniments del calendari al telèfon. També pot enviar missatges que sembli que provenen dels propietaris del calendari o canviar esdeveniments sense notificar-los-ho."</string> <string name="permlab_accessLocationExtraCommands" msgid="5162339812057983988">"accedir a ordres del proveïdor d\'ubicació addicionals"</string> <string name="permdesc_accessLocationExtraCommands" msgid="355369611979907967">"Permet que l\'aplicació accedeixi a ordres addicionals del proveïdor d\'ubicacions; per tant, és possible que l\'aplicació pugui interferir en el funcionament del GPS o d\'altres fonts d\'ubicacions."</string> - <string name="permlab_accessFineLocation" msgid="6426318438195622966">"accedeix a la ubicació exacta només en primer pla"</string> - <string name="permdesc_accessFineLocation" msgid="6732174080240016335">"Aquesta aplicació pot obtenir la teva ubicació exacta a través dels serveis d\'ubicació mentre s\'està utilitzant. Els serveis d\'ubicació del dispositiu han d\'estar activats perquè l\'aplicació pugui obtenir la ubicació, i això pot fer que l\'ús de la bateria augmenti."</string> + <string name="permlab_accessFineLocation" msgid="6426318438195622966">"accedeix a la ubicació precisa només en primer pla"</string> + <string name="permdesc_accessFineLocation" msgid="6732174080240016335">"Aquesta aplicació pot obtenir la teva ubicació precisa a través dels serveis d\'ubicació mentre s\'està utilitzant. Els serveis d\'ubicació del dispositiu han d\'estar activats perquè l\'aplicació pugui obtenir la ubicació, i això pot fer que l\'ús de la bateria augmenti."</string> <string name="permlab_accessCoarseLocation" msgid="1561042925407799741">"accedeix a la ubicació aproximada només en primer pla"</string> <string name="permdesc_accessCoarseLocation" msgid="778521847873199160">"Aquesta aplicació pot obtenir la teva ubicació aproximada a través dels serveis d\'ubicació mentre s\'està utilitzant. Els serveis d\'ubicació del dispositiu han d\'estar activats perquè l\'aplicació pugui obtenir la ubicació."</string> <string name="permlab_accessBackgroundLocation" msgid="1721164702777366138">"accedir a la ubicació en segon pla"</string> @@ -504,8 +506,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Permet que l\'aplicació controli el vibrador."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permet que l\'aplicació accedeixi a l\'estat de vibració."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"trucar directament a números de telèfon"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Permet que l\'aplicació truqui a números de telèfon sense la teva intervenció. Això pot comportar càrrecs o trucades inesperats. Tingues en compte que això no permet que l\'aplicació truqui a números d\'emergència. És possible que se\'t cobri si les aplicacions malicioses fan trucades sense confirmació o marquen codis d\'operadors que poden causar que les trucades entrants es desviïn automàticament a un altre número."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"accés al servei de trucades IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Permet que l\'aplicació utilitzi el servei IMS per fer trucades sense la teva intervenció."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"veure l\'estat i la identitat del telèfon"</string> @@ -635,7 +636,7 @@ <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"Hi ha massa llum"</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"S\'ha premut el botó d\'engegada"</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"Prova d\'ajustar l\'empremta digital"</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Canvia lleugerament la posició del dit en cada intent"</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Canvia lleugerament la posició del dit cada vegada"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"L\'empremta digital no s\'ha reconegut"</string> @@ -681,8 +682,8 @@ <string name="face_acquired_too_dark" msgid="8539853432479385326">"No hi ha prou llum"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Allunya\'t del telèfon"</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"Apropa el telèfon"</string> - <string name="face_acquired_too_high" msgid="8278815780046368576">"Mou el telèfon més amunt"</string> - <string name="face_acquired_too_low" msgid="4075391872960840081">"Mou el telèfon més avall"</string> + <string name="face_acquired_too_high" msgid="8278815780046368576">"Apuja el telèfon"</string> + <string name="face_acquired_too_low" msgid="4075391872960840081">"Abaixa el telèfon"</string> <string name="face_acquired_too_right" msgid="6245286514593540859">"Mou el telèfon cap a l\'esquerra"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"Mou el telèfon cap a la dreta"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"Mira més directament cap al dispositiu."</string> @@ -694,7 +695,7 @@ <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Mira més directament al telèfon"</string> <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Mira més directament al telèfon"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Mira més directament al telèfon"</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"Treu qualsevol cosa que amagui la teva cara."</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"Aparta tot allò que et tapi la cara"</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Neteja la part superior de la pantalla, inclosa la barra negra"</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> @@ -2160,10 +2161,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"No es pot obrir aquest contingut amb aplicacions de treball"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"No es pot compartir aquest contingut amb aplicacions personals"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"No es pot obrir aquest contingut amb aplicacions personals"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Les aplicacions de treball estan en pausa"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Reactiva"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Cap aplicació de treball"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Cap aplicació personal"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Obre <xliff:g id="APP">%s</xliff:g> al perfil personal"</string> diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml index df6869b5f907..5afe4bd40ee8 100644 --- a/core/res/res/values-cs/strings.xml +++ b/core/res/res/values-cs/strings.xml @@ -300,6 +300,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Systém Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Přepnout na osobní profil"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Přepnout na pracovní profil"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Přepnout na osobní verzi aplikace <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Přepnout na pracovní verzi aplikace <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontakty"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"přístup ke kontaktům"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Poloha"</string> @@ -505,8 +507,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Umožňuje aplikaci ovládat vibrace."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Umožňuje aplikaci přístup ke stavu vibrací."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"přímé volání na telefonní čísla"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Umožňuje aplikaci volat na telefonní čísla bez vašeho přičinění. Může to mít za následek neočekávané poplatky nebo hovory. Toto oprávnění neumožňuje aplikaci volat na tísňová čísla. Škodlivé aplikace mohou způsobit poplatky tím, že budou volat bez vašeho svolení nebo budou vytáčet kódy operátora, které příchozí hovory automaticky přesměrují na jiné číslo."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"přístup ke službě zasílání rychlých zpráv pro účely hovorů"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Umožňuje aplikaci používat službu zasílání rychlých zpráv k uskutečňování hovorů bez vašeho zásahu."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"čtení stavu a identity telefonu"</string> @@ -626,11 +627,11 @@ <string name="biometric_error_generic" msgid="6784371929985434439">"Při ověřování došlo k chybě"</string> <string name="screen_lock_app_setting_name" msgid="6054944352976789228">"Použít zámek obrazovky"</string> <string name="screen_lock_dialog_default_subtitle" msgid="120359538048533695">"Pokračujte zadáním zámku obrazovky"</string> - <string name="fingerprint_acquired_partial" msgid="4323789264604479684">"Pevně zatlačte na senzor"</string> + <string name="fingerprint_acquired_partial" msgid="4323789264604479684">"Pevně zatlačte na snímač"</string> <string name="fingerprint_acquired_insufficient" msgid="623888149088216458">"Otisk prstu se nepodařilo rozpoznat. Zkuste to znovu."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1770676120848224250">"Vyčistěte snímač otisků prstů a zkuste to znovu"</string> <string name="fingerprint_acquired_imager_dirty_alt" msgid="9169582140486372897">"Vyčistěte senzor a zkuste to znovu"</string> - <string name="fingerprint_acquired_too_fast" msgid="1628459767349116104">"Zatlačte silně na senzor"</string> + <string name="fingerprint_acquired_too_fast" msgid="1628459767349116104">"Pevně zatlačte na snímač"</string> <string name="fingerprint_acquired_too_slow" msgid="6683510291554497580">"Pohyb prstem byl příliš pomalý. Zkuste to znovu."</string> <string name="fingerprint_acquired_already_enrolled" msgid="2285166003936206785">"Zkuste jiný otisk prstu"</string> <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"Je příliš světlo"</string> @@ -682,10 +683,10 @@ <string name="face_acquired_too_dark" msgid="8539853432479385326">"Nedostatečné osvětlení"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Umístěte telefon dál"</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"Umístěte telefon blíž"</string> - <string name="face_acquired_too_high" msgid="8278815780046368576">"Umístěte telefon výš"</string> - <string name="face_acquired_too_low" msgid="4075391872960840081">"Umístěte telefon níž"</string> - <string name="face_acquired_too_right" msgid="6245286514593540859">"Umístěte telefon víc doleva"</string> - <string name="face_acquired_too_left" msgid="9201762240918405486">"Umístěte telefon víc doprava"</string> + <string name="face_acquired_too_high" msgid="8278815780046368576">"Posuňte telefon výš"</string> + <string name="face_acquired_too_low" msgid="4075391872960840081">"Posuňte telefon níž"</string> + <string name="face_acquired_too_right" msgid="6245286514593540859">"Posuňte telefon doleva"</string> + <string name="face_acquired_too_left" msgid="9201762240918405486">"Posuňte telefon doprava"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"Dívejte se přímo na zařízení."</string> <string name="face_acquired_not_detected" msgid="1057966913397548150">"Obličej není vidět. Držte telefon v úrovni očí."</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"Příliš mnoho pohybu. Držte telefon nehybně."</string> @@ -1241,7 +1242,7 @@ <string name="unsupported_display_size_show" msgid="980129850974919375">"Vždy zobrazovat"</string> <string name="unsupported_compile_sdk_message" msgid="7326293500707890537">"Aplikace <xliff:g id="APP_NAME">%1$s</xliff:g> byla vytvořena nekompatibilní systému Android a může se chovat neočekávaně. K dispozici může být aktualizovaná verze aplikace."</string> <string name="unsupported_compile_sdk_show" msgid="1601210057960312248">"Vždy zobrazovat"</string> - <string name="unsupported_compile_sdk_check_update" msgid="1103639989147664456">"Zkontrolovat aktualizace"</string> + <string name="unsupported_compile_sdk_check_update" msgid="1103639989147664456">"Zkontrolovat dostupnost aktualizace"</string> <string name="smv_application" msgid="3775183542777792638">"Aplikace <xliff:g id="APPLICATION">%1$s</xliff:g> (proces <xliff:g id="PROCESS">%2$s</xliff:g>) porušila své vlastní vynucené zásady StrictMode."</string> <string name="smv_process" msgid="1398801497130695446">"Proces <xliff:g id="PROCESS">%1$s</xliff:g> porušil své vlastní vynucené zásady StrictMode."</string> <string name="android_upgrading_title" product="default" msgid="7279077384220829683">"Telefon se aktualizuje…"</string> @@ -2161,10 +2162,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Tento obsah nelze otevřít pomocí pracovních aplikací"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Tento obsah nelze sdílet pomocí osobních aplikací"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Tento obsah nelze otevřít pomocí osobních aplikací"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Pracovní aplikace jsou pozastaveny"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Zrušit pozastavení"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Žádné pracovní aplikace"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Žádné osobní aplikace"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Otevřít osobní aplikaci <xliff:g id="APP">%s</xliff:g>"</string> diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml index ff3fb8dd3879..4398a3142877 100644 --- a/core/res/res/values-da/strings.xml +++ b/core/res/res/values-da/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android-system"</string> <string name="user_owner_label" msgid="8628726904184471211">"Skift til personlig profil"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Skift til arbejdsprofil"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Skift til <xliff:g id="APP_NAME">%1$s</xliff:g> til privat brug"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Skift til <xliff:g id="APP_NAME">%1$s</xliff:g> til arbejdsbrug"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontakter"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"have adgang til dine kontakter"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Lokation"</string> @@ -1090,7 +1092,7 @@ <string name="enable_explore_by_touch_warning_title" msgid="5095399706284943314">"Vil du aktivere Udforsk ved berøring?"</string> <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="1037295476738940824">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> ønsker at aktivere Udforsk ved berøring. Når Udforsk ved berøring er tændt, kan du høre eller se beskrivelser af, hvad der er under din finger eller udføre bevægelser for at interagere med tabletten."</string> <string name="enable_explore_by_touch_warning_message" product="default" msgid="4312979647356179250">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> ønsker at aktivere Udforsk ved berøring. Når Udforsk ved berøring er aktiveret, kan du høre eller se beskrivelser af, hvad der er under din finger, eller udføre bevægelser for at interagere med telefonen."</string> - <string name="oneMonthDurationPast" msgid="4538030857114635777">"for 1 måned siden"</string> + <string name="oneMonthDurationPast" msgid="4538030857114635777">"1 måned siden"</string> <string name="beforeOneMonthDurationPast" msgid="8315149541372065392">"Før for 1 måned siden"</string> <string name="last_num_days" msgid="2393660431490280537">"{count,plural, =1{Seneste dag}one{De seneste # dag}other{De seneste # dage}}"</string> <string name="last_month" msgid="1528906781083518683">"Seneste måned"</string> @@ -1120,8 +1122,8 @@ <string name="duration_days_shortest_future" msgid="3392722163935571543">"om <xliff:g id="COUNT">%d</xliff:g> d."</string> <string name="duration_years_shortest_future" msgid="5537464088352970388">"om <xliff:g id="COUNT">%d</xliff:g> år"</string> <string name="duration_minutes_relative" msgid="8620337701051015593">"{count,plural, =1{For # minut siden}one{For # minut siden}other{For # minutter siden}}"</string> - <string name="duration_hours_relative" msgid="4836449961693180253">"{count,plural, =1{For # time siden}one{For # time siden}other{For # timer siden}}"</string> - <string name="duration_days_relative" msgid="621965767567258302">"{count,plural, =1{For # dag siden}one{For # dag siden}other{For # dage siden}}"</string> + <string name="duration_hours_relative" msgid="4836449961693180253">"{count,plural, =1{# time siden}one{# time siden}other{# timer siden}}"</string> + <string name="duration_days_relative" msgid="621965767567258302">"{count,plural, =1{1 dag siden}one{1 dag siden}other{# dag siden}}"</string> <string name="duration_years_relative" msgid="8731202348869424370">"{count,plural, =1{For # år siden}one{For # år siden}other{For # år siden}}"</string> <string name="duration_minutes_relative_future" msgid="5259574171747708115">"{count,plural, =1{# minut}one{# minut}other{# minutter}}"</string> <string name="duration_hours_relative_future" msgid="6670440478481140565">"{count,plural, =1{# time}one{# time}other{# timer}}"</string> @@ -2315,11 +2317,11 @@ <string name="permdesc_startForegroundServicesFromBackground" msgid="4071826571656001537">"Tillader, at en medfølgende app kan starte tjenester i forgrunden via tilladelser til tjenester i baggrunden."</string> <string name="mic_access_on_toast" msgid="2666925317663845156">"Mikrofonen er tilgængelig"</string> <string name="mic_access_off_toast" msgid="8111040892954242437">"Mikrofonen er blokeret"</string> - <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Dobbeltskærm"</string> - <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Dobbeltskærm er aktiveret"</string> + <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Dual Screen"</string> + <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Dual Screen er aktiveret"</string> <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> bruger begge skærme til at vise indhold"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"Enheden er for varm"</string> - <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"Dobbeltskærm er ikke tilgængelig, fordi din telefon er for varm"</string> + <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"Dual Screen er ikke tilgængelig, fordi din telefon er for varm"</string> <string name="concurrent_display_notification_power_save_title" msgid="1794569070730736281">"Dual Screen er ikke tilgængelig"</string> <string name="concurrent_display_notification_power_save_content" msgid="2198116070583851493">"Dual Screen er ikke tilgængelig, fordi Batterisparefunktion er aktiveret. Du kan deaktivere dette i Indstillinger."</string> <string name="device_state_notification_settings_button" msgid="691937505741872749">"Gå til Indstillinger"</string> diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml index 676f744ce3dd..7b3d76babf97 100644 --- a/core/res/res/values-de/strings.xml +++ b/core/res/res/values-de/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android-System"</string> <string name="user_owner_label" msgid="8628726904184471211">"Zum privaten Profil wechseln"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Zum Arbeitsprofil wechseln"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Zum privaten Profil in <xliff:g id="APP_NAME">%1$s</xliff:g> wechseln"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Zum Arbeitsprofil in <xliff:g id="APP_NAME">%1$s</xliff:g> wechseln"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontakte"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"auf deine Kontakte zugreifen"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Standort"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Ermöglicht der App, den Vibrationsalarm zu steuern"</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Ermöglicht der App, auf den Vibrationsstatus zuzugreifen."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"Telefonnummern direkt anrufen"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Ermöglicht der App, ohne dein Zutun Telefonnummern zu wählen. Das kann zu unerwarteten Anrufen bzw. Kosten führen. Beachte, dass die App keine Notrufnummer anrufen darf. Es gibt schädliche Apps, die Kosten verursachen können, weil sie eigenmächtig Anrufe starten, oder die bestimmte Anbietercodes wählen, woraufhin eingehende Anrufe automatisch an eine andere Nummer weitergeleitet werden."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"Zugriff auf IMS-Anrufdienst"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Ermöglicht der App die Verwendung des IMS-Dienstes zum Tätigen von Anrufen ohne Nutzereingriffe"</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"Telefonstatus und Identität abrufen"</string> @@ -685,7 +686,7 @@ <string name="face_acquired_too_right" msgid="6245286514593540859">"Bewege das Smartphone nach links"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"Bewege das Smartphone nach rechts"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"Bitte sieh direkt auf dein Gerät."</string> - <string name="face_acquired_not_detected" msgid="1057966913397548150">"Dein Gesicht wurde nicht erkannt. Halte dein Smartphone auf Augenhöhe."</string> + <string name="face_acquired_not_detected" msgid="1057966913397548150">"Gesicht nicht erkannt. Smartphone auf Augenhöhe halten."</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"Zu viel Unruhe. Halte das Smartphone ruhig."</string> <string name="face_acquired_recalibrate" msgid="8724013080976469746">"Bitte registriere dein Gesicht noch einmal."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"Gesicht nicht erkannt. Versuche es noch einmal."</string> @@ -701,7 +702,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Dein Gesichtsmodell kann nicht erstellt werden. Versuche es noch einmal."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Dunkle Brille erkannt. Dein Gesicht muss vollständig sichtbar sein."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Dein Gesicht ist bedeckt. Es muss vollständig sichtbar sein."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Gesicht ist bedeckt. Es muss vollständig sichtbar sein."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Gesicht nicht erkannt. Hardware nicht verfügbar."</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Diese Art von Inhalt kann nicht mit geschäftlichen Apps geöffnet werden"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Diese Art von Inhalt kann nicht über private Apps geteilt werden"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Diese Art von Inhalt kann nicht mit privaten Apps geöffnet werden"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Geschäftliche Apps sind pausiert"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Nicht mehr pausieren"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Keine geschäftlichen Apps"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Keine privaten Apps"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Private App „<xliff:g id="APP">%s</xliff:g>“ öffnen"</string> diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml index 2520400b3eeb..2d22400cc8bb 100644 --- a/core/res/res/values-el/strings.xml +++ b/core/res/res/values-el/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Σύστημα Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Εναλλαγή σε προσωπικό προφίλ"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Εναλλαγή σε προφίλ εργασίας"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Μετάβαση στο προσωπικό προφίλ <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Μετάβαση στο προφίλ εργασίας <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Επαφές"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"πρόσβαση στις επαφές σας"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Τοποθεσία"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Επιτρέπει στην εφαρμογή τον έλεγχο της δόνησης."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Επιτρέπει στην εφαρμογή να έχει πρόσβαση στην κατάσταση δόνησης."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"πραγματοποιεί απευθείας κλήση τηλεφωνικών αριθμών"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Επιτρέπει στην εφαρμογή να καλεί αριθμούς τηλεφώνου χωρίς τη δική σας παρέμβαση. Αυτό μπορεί να οδηγήσει σε απροσδόκητες χρεώσεις ή κλήσεις. Λάβετε υπόψη ότι αυτό δεν επιτρέπει την κλήση αριθμών έκτακτης ανάγκης. Οι κακόβουλες εφαρμογές ενδέχεται να σας επιφέρουν χρεώσεις πραγματοποιώντας κλήσεις χωρίς την επιβεβαίωσή σας ή καλώντας κωδικούς εταιρείας κινητής τηλεφωνίας που προκαλούν την αυτόματη προώθηση των εισερχόμενων κλήσεων σε άλλον αριθμό."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"έχει πρόσβαση στην υπηρεσία κλήσεων της IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Επιτρέπει στην εφαρμογή τη χρήση της υπηρεσίας IMS για την πραγματοποίηση κλήσεων χωρίς τη δική σας παρέμβαση."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"διαβάζει την κατάσταση και ταυτότητα τηλεφώνου"</string> @@ -634,7 +635,7 @@ <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"Υπερβολικά έντονος φωτισμός"</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"Εντοπίστηκε πάτημα του κουμπιού λειτουργίας"</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"Δοκιμάστε να το προσαρμόσετε"</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Αλλάζετε ελαφρώς τη θέση του δακτύλου σας κάθε φορά."</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Αλλάζετε ελαφρώς τη θέση του δακτύλου σας κάθε φορά"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"Δεν είναι δυνατή η αναγνώριση του δακτυλικού αποτυπώματος"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Δεν είναι δυνατό το άνοιγμα αυτού του περιεχομένου με εφαρμογές εργασιών"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Δεν είναι δυνατή η κοινοποίηση αυτού του περιεχομένου με προσωπικές εφαρμογές"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Δεν είναι δυνατό το άνοιγμα αυτού του περιεχομένου με προσωπικές εφαρμογές"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Οι εφαρμογές εργασιών τέθηκαν σε παύση"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Αναίρεση παύσης"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Δεν υπάρχουν εφαρμογές εργασιών"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Δεν υπάρχουν προσωπικές εφαρμογές"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Άνοιγμα προσωπικού <xliff:g id="APP">%s</xliff:g>"</string> diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml index bc92e09e9dfd..0bd4f76f9e99 100644 --- a/core/res/res/values-en-rAU/strings.xml +++ b/core/res/res/values-en-rAU/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android System"</string> <string name="user_owner_label" msgid="8628726904184471211">"Switch to personal profile"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Switch to work profile"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Switch to personal <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Switch to work <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Contacts"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"access your contacts"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Location"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Allows the app to control the vibrator."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Allows the app to access the vibrator state."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"directly call phone numbers"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Allows the app to call phone numbers without your intervention. This may result in unexpected charges or calls. Note that this doesn\'t allow the app to call emergency numbers. Malicious apps may cost you money by making calls without your confirmation, or dial carrier codes which cause incoming calls to be automatically forwarded to another number."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"access IMS call service"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Allows the app to use the IMS service to make calls without your intervention."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"read phone status and identity"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"This content can’t be opened with work apps"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"This content can’t be shared with personal apps"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"This content can’t be opened with personal apps"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Work apps are paused"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Unpause"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"No work apps"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"No personal apps"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Open personal <xliff:g id="APP">%s</xliff:g>"</string> diff --git a/core/res/res/values-en-rCA/strings.xml b/core/res/res/values-en-rCA/strings.xml index 54484f08fde7..291a3725e6d9 100644 --- a/core/res/res/values-en-rCA/strings.xml +++ b/core/res/res/values-en-rCA/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android System"</string> <string name="user_owner_label" msgid="8628726904184471211">"Switch to personal profile"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Switch to work profile"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Switch to personal <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Switch to work <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Contacts"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"access your contacts"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Location"</string> diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml index 69db8d3bb8e7..8650abacd11e 100644 --- a/core/res/res/values-en-rGB/strings.xml +++ b/core/res/res/values-en-rGB/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android System"</string> <string name="user_owner_label" msgid="8628726904184471211">"Switch to personal profile"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Switch to work profile"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Switch to personal <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Switch to work <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Contacts"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"access your contacts"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Location"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Allows the app to control the vibrator."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Allows the app to access the vibrator state."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"directly call phone numbers"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Allows the app to call phone numbers without your intervention. This may result in unexpected charges or calls. Note that this doesn\'t allow the app to call emergency numbers. Malicious apps may cost you money by making calls without your confirmation, or dial carrier codes which cause incoming calls to be automatically forwarded to another number."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"access IMS call service"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Allows the app to use the IMS service to make calls without your intervention."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"read phone status and identity"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"This content can’t be opened with work apps"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"This content can’t be shared with personal apps"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"This content can’t be opened with personal apps"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Work apps are paused"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Unpause"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"No work apps"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"No personal apps"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Open personal <xliff:g id="APP">%s</xliff:g>"</string> diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml index 95cf753bd08b..0d30c692d9d0 100644 --- a/core/res/res/values-en-rIN/strings.xml +++ b/core/res/res/values-en-rIN/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android System"</string> <string name="user_owner_label" msgid="8628726904184471211">"Switch to personal profile"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Switch to work profile"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Switch to personal <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Switch to work <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Contacts"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"access your contacts"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Location"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Allows the app to control the vibrator."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Allows the app to access the vibrator state."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"directly call phone numbers"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Allows the app to call phone numbers without your intervention. This may result in unexpected charges or calls. Note that this doesn\'t allow the app to call emergency numbers. Malicious apps may cost you money by making calls without your confirmation, or dial carrier codes which cause incoming calls to be automatically forwarded to another number."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"access IMS call service"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Allows the app to use the IMS service to make calls without your intervention."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"read phone status and identity"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"This content can’t be opened with work apps"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"This content can’t be shared with personal apps"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"This content can’t be opened with personal apps"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Work apps are paused"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Unpause"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"No work apps"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"No personal apps"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Open personal <xliff:g id="APP">%s</xliff:g>"</string> diff --git a/core/res/res/values-en-rXC/strings.xml b/core/res/res/values-en-rXC/strings.xml index 8550f2efde88..d36df9434e17 100644 --- a/core/res/res/values-en-rXC/strings.xml +++ b/core/res/res/values-en-rXC/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android System"</string> <string name="user_owner_label" msgid="8628726904184471211">"Switch to personal profile"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Switch to work profile"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Switch to personal <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Switch to work <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Contacts"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"access your contacts"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Location"</string> diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index 4ac63116e717..f9b988428166 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -299,6 +299,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Sistema Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Cambiar al perfil personal"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Cambiar al perfil de trabajo"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Cambiar a <xliff:g id="APP_NAME">%1$s</xliff:g> (personal)"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Cambiar a <xliff:g id="APP_NAME">%1$s</xliff:g> (trabajo)"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Contactos"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"acceder a los contactos"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Ubicación"</string> @@ -504,8 +506,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Permite que la aplicación controle la vibración."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permite que la app acceda al estado del modo de vibración."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"llamar directamente a números de teléfono"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Permite que la app llame a números de teléfono sin tu intervención. Esta acción podría ocasionar cargos o llamadas inesperados. Ten en cuenta que no permite que la app llame a números de emergencia. Las apps maliciosas pueden generar cargos realizando llamadas sin tu confirmación o marcando códigos de operador que desvíen automáticamente las llamadas entrantes a otro número."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"acceder al servicio IMS para realizar llamadas"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Permite que la aplicación utilice el servicio IMS para hacer llamadas sin tu intervención."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"leer la identidad y el estado del dispositivo"</string> @@ -702,7 +703,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"No se puede crear modelo de rostro. Vuelve a intentarlo."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Se detectaron lentes oscuros. Tu rostro debe verse completamente."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Se detectó que llevas mascarilla. Tu rostro debe verse completamente."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Llevas mascarilla. Tu rostro debe verse completamente."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"No se verificó el rostro. Hardware no disponible."</string> @@ -711,8 +712,7 @@ <string name="face_error_canceled" msgid="2164434737103802131">"Se canceló el reconocimiento facial."</string> <string name="face_error_user_canceled" msgid="5766472033202928373">"El usuario canceló Desbloqueo facial"</string> <string name="face_error_lockout" msgid="7864408714994529437">"Demasiados intentos. Inténtalo de nuevo más tarde."</string> - <!-- no translation found for face_error_lockout_permanent (8533257333130473422) --> - <skip /> + <string name="face_error_lockout_permanent" msgid="8533257333130473422">"Demasiados intentos. El Desbloqueo facial no está disponible."</string> <string name="face_error_lockout_screen_lock" msgid="5062609811636860928">"Demasiados intentos. En su lugar, utiliza el bloqueo de pantalla."</string> <string name="face_error_unable_to_process" msgid="5723292697366130070">"No se pudo verificar el rostro. Vuelve a intentarlo."</string> <string name="face_error_not_enrolled" msgid="1134739108536328412">"No configuraste Desbloqueo facial"</string> @@ -1371,7 +1371,7 @@ <string name="usb_unsupported_audio_accessory_title" msgid="2335775548086533065">"Se detectó un accesorio de audio analógico"</string> <string name="usb_unsupported_audio_accessory_message" msgid="1300168007129796621">"El dispositivo adjunto no es compatible con este teléfono. Presiona para obtener más información."</string> <string name="adb_active_notification_title" msgid="408390247354560331">"Depuración por USB activada"</string> - <string name="adb_active_notification_message" msgid="5617264033476778211">"Presiona para desactivar"</string> + <string name="adb_active_notification_message" msgid="5617264033476778211">"Presiona para desactivarla"</string> <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"Seleccionar para desactivar la depuración por USB"</string> <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"Se conectó la depuración inalámbrica"</string> <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Presiona para desactivar la depuración inalámbrica"</string> @@ -2161,16 +2161,12 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"No se puede abrir este contenido con apps de trabajo"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"No se pueden usar apps personales para compartir este contenido"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"No se puede abrir este contenido con apps personales"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Se pausaron las apps de trabajo"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Reanudar"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"El contenido no es compatible con apps de trabajo"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"El contenido no es compatible con apps personales"</string> - <!-- no translation found for miniresolver_open_in_personal (6499100403307136696) --> - <skip /> - <!-- no translation found for miniresolver_open_in_work (7138659785478630639) --> - <skip /> + <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Abrir <xliff:g id="APP">%s</xliff:g> personal"</string> + <string name="miniresolver_open_in_work" msgid="7138659785478630639">"Abrir <xliff:g id="APP">%s</xliff:g> de trabajo"</string> <string name="miniresolver_use_personal_browser" msgid="776072682871133308">"Usar un navegador personal"</string> <string name="miniresolver_use_work_browser" msgid="543575306251952994">"Usar un navegador de trabajo"</string> <string name="PERSOSUBSTATE_SIM_NETWORK_ENTRY" msgid="8050953231914637819">"PIN de desbloqueo del dispositivo para la red de tarjeta SIM"</string> diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index 7558b7e8de57..d7eb0fed4257 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -251,7 +251,7 @@ <string name="global_action_bug_report" msgid="5127867163044170003">"Informe de errores"</string> <string name="global_action_logout" msgid="6093581310002476511">"Finalizar sesión"</string> <string name="global_action_screenshot" msgid="2610053466156478564">"Captura de pantalla"</string> - <string name="bugreport_title" msgid="8549990811777373050">"Informar error"</string> + <string name="bugreport_title" msgid="8549990811777373050">"Informe de errores"</string> <string name="bugreport_message" msgid="5212529146119624326">"Se recopilará información sobre el estado actual de tu dispositivo y se enviará por correo electrónico. Pasarán unos minutos desde que empiece a generarse el informe de errores hasta que se envíe."</string> <string name="bugreport_option_interactive_title" msgid="7968287837902871289">"Informe interactivo"</string> <string name="bugreport_option_interactive_summary" msgid="8493795476325339542">"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."</string> @@ -299,6 +299,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Sistema Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Cambiar al perfil personal"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Cambiar al perfil de trabajo"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Cambiar a <xliff:g id="APP_NAME">%1$s</xliff:g> personal"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Cambiar a <xliff:g id="APP_NAME">%1$s</xliff:g> de trabajo"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Contactos"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"acceder a tus contactos"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Ubicación"</string> @@ -504,8 +506,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Permite que la aplicación controle la función de vibración."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permite que la aplicación acceda al ajuste de vibración."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"llamar directamente a números de teléfono"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Permite que la aplicación llame a números de teléfono sin tu intervención, lo que puede dar lugar a llamadas o cargos inesperados. Ten en cuenta que esto no permite que la aplicación llame a números de emergencia. Las aplicaciones maliciosas pueden incurrir en gastos al hacer llamadas sin tu confirmación o marcar códigos de operador que desvían automáticamente las llamadas entrantes a otro número."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"acceder al servicio de llamadas IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Permite que la aplicación utilice el servicio IMS para realizar llamadas sin tu intervención."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"consultar la identidad y el estado del teléfono"</string> @@ -694,7 +695,7 @@ <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Mira al teléfono de forma más directa"</string> <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Mira al teléfono de forma más directa"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Mira al teléfono de forma más directa"</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"Retira cualquier objeto que te tape la cara."</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"Retira cualquier objeto que te tape la cara"</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Limpia la parte superior de la pantalla, incluida la barra de color negro"</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> @@ -1392,7 +1393,7 @@ <string name="share_remote_bugreport_action" msgid="7630880678785123682">"COMPARTIR"</string> <string name="decline_remote_bugreport_action" msgid="4040894777519784346">"RECHAZAR"</string> <string name="select_input_method" msgid="3971267998568587025">"Selecciona un método de entrada"</string> - <string name="show_ime" msgid="6406112007347443383">"Mientras el teclado físico está activo"</string> + <string name="show_ime" msgid="6406112007347443383">"Mantenlo en pantalla mientras el teclado físico está activo"</string> <string name="hardware" msgid="1800597768237606953">"Mostrar teclado virtual"</string> <string name="select_keyboard_layout_notification_title" msgid="5823199895322205589">"Configura <xliff:g id="DEVICE_NAME">%s</xliff:g>"</string> <string name="select_multiple_keyboards_layout_notification_title" msgid="6999491025126641938">"Configura teclados físicos"</string> @@ -2160,10 +2161,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Este contenido no se puede abrir con aplicaciones de trabajo"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Este contenido no se puede compartir con aplicaciones personales"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Este contenido no se puede abrir con aplicaciones personales"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Las aplicaciones de trabajo están en pausa"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Reactivar"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Ninguna aplicación de trabajo"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Ninguna aplicación personal"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Abrir <xliff:g id="APP">%s</xliff:g> en el perfil personal"</string> @@ -2319,11 +2318,11 @@ <string name="permdesc_startForegroundServicesFromBackground" msgid="4071826571656001537">"Permite que una aplicación complementaria inicie servicios en primer plano desde el segundo plano."</string> <string name="mic_access_on_toast" msgid="2666925317663845156">"El micrófono está disponible"</string> <string name="mic_access_off_toast" msgid="8111040892954242437">"El micrófono está bloqueado"</string> - <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Cámara Dual"</string> - <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"La función Cámara Dual está activada"</string> + <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Dual Screen"</string> + <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"La función Dual Screen está activada"</string> <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> está usando ambas pantallas para mostrar contenido"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"El dispositivo está demasiado caliente"</string> - <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"Cámara Dual no está disponible porque el teléfono se está calentando demasiado"</string> + <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"Dual Screen no está disponible porque el teléfono se está calentando demasiado"</string> <string name="concurrent_display_notification_power_save_title" msgid="1794569070730736281">"Dual Screen no está disponible"</string> <string name="concurrent_display_notification_power_save_content" msgid="2198116070583851493">"Dual Screen no está disponible porque la función Ahorro de batería está activada. Puedes desactivarla en Ajustes."</string> <string name="device_state_notification_settings_button" msgid="691937505741872749">"Ir a Ajustes"</string> diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml index e22fdea6981a..87ab78a73b7f 100644 --- a/core/res/res/values-et/strings.xml +++ b/core/res/res/values-et/strings.xml @@ -268,7 +268,7 @@ <string name="global_action_settings" msgid="4671878836947494217">"Seaded"</string> <string name="global_action_assist" msgid="2517047220311505805">"Abi"</string> <string name="global_action_voice_assist" msgid="6655788068555086695">"Häälabi"</string> - <string name="global_action_lockdown" msgid="2475471405907902963">"Lukustamine"</string> + <string name="global_action_lockdown" msgid="2475471405907902963">"Lukusta"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> <string name="notification_hidden_text" msgid="2835519769868187223">"Uus märguanne"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Füüsiline klaviatuur"</string> @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android-süsteem"</string> <string name="user_owner_label" msgid="8628726904184471211">"Lülitu isiklikule profiilile"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Lülitu tööprofiilile"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Lülita <xliff:g id="APP_NAME">%1$s</xliff:g> isiklikule profiilile"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Lülita <xliff:g id="APP_NAME">%1$s</xliff:g> tööprofiilile"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontaktid"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"juurdepääs kontaktidele"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Asukoht"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Võimaldab rakendusel juhtida vibreerimist."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Võimaldab rakendusel juurde pääseda vibreerimise olekule."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"helista otse telefoninumbritele"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Võimaldab rakendusel telefoninumbritele helistada ilma teie sekkumiseta. See võib kaasa tuua ootamatuid tasusid või kõnesid. Pange tähele, et see ei luba rakendusel helistada hädaabinumbritele. Pahatahtlike rakenduste tõttu võib tekkida soovimatuid kulusid, kuna need võivad teha kõnesid ilma teie kinnituseta või valida operaatori koode, mille tõttu suunatakse sissetulevad kõned automaatselt teisele numbrile."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"juurdepääs IMS-kõneteenusele"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Võimaldab rakendusel kasutada IMS-teenust kõnede tegemiseks ilma, et peaksite sekkuma."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"Telefoni oleku ja identiteedi lugemine"</string> @@ -701,7 +702,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Teie näomudelit ei saa luua. Proovige uuesti."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Tuvastati tumedad prillid. Teie nägu peab olema täielikult nähtaval."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Tuvastati nägu kattev ese. Teie nägu peab olema täielikult nähtaval."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Tuvastati näokate. Nägu peab olema täielikult nähtaval."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Nägu ei saa kinnitada. Riistvara pole saadaval."</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Seda sisu ei saa töörakendustega avada"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Seda sisu ei saa isiklike rakendustega jagada"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Seda sisu ei saa isiklike rakendustega avada"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Töörakendused on peatatud"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Jätka"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Töörakendusi pole"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Isiklikke rakendusi pole"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Ava isikliku profiili <xliff:g id="APP">%s</xliff:g>"</string> diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml index 6ddd2c456dcd..a035deb0fd98 100644 --- a/core/res/res/values-eu/strings.xml +++ b/core/res/res/values-eu/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android sistema"</string> <string name="user_owner_label" msgid="8628726904184471211">"Aldatu profil pertsonalera"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Aldatu laneko profilera"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Aldatu <xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioko profil pertsonalera"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Aldatu <xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioko laneko profilera"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontaktuak"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"atzitu kontaktuak"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Kokapena"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Bibragailua kontrolatzeko baimena ematen die aplikazioei."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Dardara-egoera erabiltzeko baimena ematen die aplikazioei."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"deitu zuzenean telefono-zenbakietara"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Zuk ezer egin beharrik gabe, telefono-zenbakietara deitzeko baimena ematen die aplikazioei. Ondorioz, baliteke ustekabeko gastuak edo deiak eragitea. Kontuan izan aplikazioak ezingo duela deitu larrialdietarako zenbakietara. Zuk berretsi gabeko deiak eginda, asmo txarreko aplikazioek baimen hori erabil dezakete gastuak eragiteko edo operadore-kode jakin batzuk markatzeko, sarrerako deiak beste zenbaki batera automatikoki desbideratzeko asmoarekin."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"atzitu IMS dei-zerbitzua"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Zuk ezer egin beharrik gabe deiak egiteko IMS zerbitzua erabiltzeko baimena ematen die aplikazioei."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"irakurri telefonoaren egoera eta identitatea"</string> @@ -644,7 +645,7 @@ <string name="face_authenticated_confirmation_required" msgid="6872632732508013755">"Autentifikatu da aurpegia; sakatu Berretsi"</string> <string name="fingerprint_error_hw_not_available" msgid="4571700896929561202">"Hatz-marken hardwarea ez dago erabilgarri."</string> <string name="fingerprint_error_no_space" msgid="7285481581905967580">"Ezin da konfiguratu hatz-marka"</string> - <string name="fingerprint_error_timeout" msgid="7361192266621252164">"Gainditu egin da hatz-marka konfiguratzeko denbora-muga. Saiatu berriro."</string> + <string name="fingerprint_error_timeout" msgid="7361192266621252164">"Hatz-marka konfiguratzeko denbora-muga gainditu da. Saiatu berriro."</string> <string name="fingerprint_error_canceled" msgid="540026881380070750">"Hatz-markaren eragiketa bertan behera utzi da."</string> <string name="fingerprint_error_user_canceled" msgid="7685676229281231614">"Erabiltzaileak bertan behera utzi du hatz-marka bidezko eragiketa."</string> <string name="fingerprint_error_lockout" msgid="6626753679019351368">"Saiakera gehiegi egin dira. Erabili pantailaren blokeoa."</string> @@ -1712,11 +1713,11 @@ <string name="done_accessibility_shortcut_menu_button" msgid="3668407723770815708">"Eginda"</string> <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Desaktibatu lasterbidea"</string> <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Erabili lasterbidea"</string> - <string name="color_inversion_feature_name" msgid="2672824491933264951">"Kolore-alderantzikatzea"</string> + <string name="color_inversion_feature_name" msgid="2672824491933264951">"Koloreen alderantzikatzea"</string> <string name="color_correction_feature_name" msgid="7975133554160979214">"Koloreen zuzenketa"</string> <string name="one_handed_mode_feature_name" msgid="2334330034828094891">"Esku bakarreko modua"</string> <string name="reduce_bright_colors_feature_name" msgid="3222994553174604132">"Are ilunago"</string> - <string name="hearing_aids_feature_name" msgid="1125892105105852542">"Audifonoak"</string> + <string name="hearing_aids_feature_name" msgid="1125892105105852542">"Entzumen-gailuak"</string> <string name="accessibility_shortcut_enabling_service" msgid="5473495203759847687">"Bolumen-botoiak sakatuta eduki direnez, <xliff:g id="SERVICE_NAME">%1$s</xliff:g> aktibatu egin da."</string> <string name="accessibility_shortcut_disabling_service" msgid="8675244165062700619">"Bolumen-botoiak sakatuta eduki direnez, <xliff:g id="SERVICE_NAME">%1$s</xliff:g> desaktibatu egin da."</string> <string name="accessibility_shortcut_spoken_feedback" msgid="3760999147597564314">"Askatu bolumen-botoiak. <xliff:g id="SERVICE_NAME">%1$s</xliff:g> aktibatzeko, eduki sakatuta berriro bi bolumen-botoiak hiru segundoz."</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Eduki hau ezin da laneko aplikazioekin ireki"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Eduki hau ezin da aplikazio pertsonalekin partekatu"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Eduki hau ezin da aplikazio pertsonalekin ireki"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Pausatuta daude laneko aplikazioak"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Berraktibatu"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Ez dago laneko aplikaziorik"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Ez dago aplikazio pertsonalik"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Ireki <xliff:g id="APP">%s</xliff:g> pertsonala"</string> diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml index 21ed6149fb6f..2393132a2fcf 100644 --- a/core/res/res/values-fa/strings.xml +++ b/core/res/res/values-fa/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"سیستم Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"جابهجا شدن به نمایه شخصی"</string> <string name="managed_profile_label" msgid="7316778766973512382">"رفتن به نمایه کاری"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"رفتن به نمایه شخصی <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"رفتن به نمایه کاری <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"مخاطبین"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"دسترسی به مخاطبین شما"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"مکان"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"به برنامه اجازه میدهد تا لرزاننده را کنترل کند."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"به برنامه اجازه میدهد تا به وضعیت لرزاننده دسترسی داشته باشد."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"تماس مستقیم با شماره تلفنها"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"به این برنامه اجازه میدهد بدون دخالت شما با شمارههای تلفن تماس بگیرد. این کار ممکن است باعث تماسها یا کسر هزینههای غیرمنتظره شود. توجه داشته باشید این کار به برنامه اجازه نمیدهد با شمارههای تلفن اضطراری تماس بگیرد. برنامههای مخرب ممکن است با برقراری تماس بدون تأیید شما، یا شمارهگیری کدهای شرکت مخابراتی که باعث میشود تماسهای ورودی بهطور خودکار به شماره دیگری هدایت شود، برای شما هزینههایی بهبار آورد."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"دسترسی به سرویس تماس IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"به برنامه اجازه میدهد از سرویس IMS برای برقراری تماسها بدون دخالت شما استفاده کند."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"خواندن وضعیت تلفن و شناسه"</string> @@ -644,7 +645,7 @@ <string name="face_authenticated_confirmation_required" msgid="6872632732508013755">"چهره اصالتسنجی شد، لطفاً تأیید را فشار دهید"</string> <string name="fingerprint_error_hw_not_available" msgid="4571700896929561202">"سختافزار اثرانگشت در دسترس نیست."</string> <string name="fingerprint_error_no_space" msgid="7285481581905967580">"اثر انگشت راهاندازی نشد"</string> - <string name="fingerprint_error_timeout" msgid="7361192266621252164">"مهلت راهاندازی اثر انگشت بهپایان رسید. دوباره امتحان کنید."</string> + <string name="fingerprint_error_timeout" msgid="7361192266621252164">"مهلت تنظیم اثر انگشت بهپایان رسید. دوباره امتحان کنید."</string> <string name="fingerprint_error_canceled" msgid="540026881380070750">"عملکرد اثر انگشت لغو شد."</string> <string name="fingerprint_error_user_canceled" msgid="7685676229281231614">"کاربر عملیات اثر انگشت را لغو کرد"</string> <string name="fingerprint_error_lockout" msgid="6626753679019351368">"تلاشها از حد مجاز بیشتر شده است. بهجای آن از قفل صفحه استفاده کنید."</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"نمیتوان این محتوا را با برنامههای کاری باز کرد"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"نمیتوان این محتوا را با برنامههای شخصی همرسانی کرد"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"نمیتوان این محتوا را با برنامههای شخصی باز کرد"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"برنامههای کاری موقتاً متوقف شده است"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"ازسرگیری"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"برنامه کاریای وجود ندارد"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"برنامه شخصیای وجود ندارد"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"باز کردن <xliff:g id="APP">%s</xliff:g> شخصی"</string> @@ -2320,7 +2319,7 @@ <string name="mic_access_off_toast" msgid="8111040892954242437">"میکروفون مسدود شد"</string> <string name="concurrent_display_notification_name" msgid="1526911253558311131">"صفحه دوتایی"</string> <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"«صفحه دوتایی» روشن است"</string> - <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> از هر دو نمایشگر برای نمایش محتوا استفاده میکند"</string> + <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> از هر دو نمایشگر برای نمایش محتوا استفاده میکند"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"دستگاه بیشازحد گرم شده است"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"«صفحه دوتایی» دردسترس نیست زیرا تلفن بیشازحد گرم شده است"</string> <string name="concurrent_display_notification_power_save_title" msgid="1794569070730736281">"Dual Screen دردسترس نیست"</string> diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml index 0695d12dc216..bd490572883d 100644 --- a/core/res/res/values-fi/strings.xml +++ b/core/res/res/values-fi/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android-järjestelmä"</string> <string name="user_owner_label" msgid="8628726904184471211">"Vaihda henkilökohtaiseen profiiliin"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Vaihda työprofiiliin"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Siirry henkilökohtaiseen profiiliin: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Siirry työprofiiliin: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Yhteystiedot"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"pääsy yhteystietoihin"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Sijainti"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Antaa sovelluksen hallita värinää."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Sallii sovelluksen käyttää värinätilaa."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"soittaa puhelinnumeroihin suoraan"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Sallii sovelluksen soittaa puhelinnumeroihin ilman toimintaasi. Tämä voi johtaa odottamattomiin veloituksiin tai puheluihin. Huomaa, että tämä lupa ei anna sovelluksen soittaa hätänumeroihin. Haitalliset sovellukset voivat aiheuttaa rahallisia kuluja soittamalla puheluja ilman vahvistustasi tai käyttämällä operaattorikoodeja, joilla saapuvat puhelut siirretään automaattisesti toiseen numeroon."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"pikaviestipalvelun puhelukäyttöoikeus"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Antaa sovelluksen soittaa puheluita pikaviestipalvelun avulla ilman käyttäjän toimia."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"lue puhelimen tila ja identiteetti"</string> @@ -628,7 +629,7 @@ <string name="fingerprint_acquired_insufficient" msgid="623888149088216458">"Sormenjälkeä ei voi tunnistaa. Yritä uudelleen."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1770676120848224250">"Puhdista sormenjälkitunnistin ja yritä uudelleen"</string> <string name="fingerprint_acquired_imager_dirty_alt" msgid="9169582140486372897">"Puhdista anturi ja yritä uudelleen"</string> - <string name="fingerprint_acquired_too_fast" msgid="1628459767349116104">"Paina anturia voimakkaasti"</string> + <string name="fingerprint_acquired_too_fast" msgid="1628459767349116104">"Paina tunnistinta voimakkaasti"</string> <string name="fingerprint_acquired_too_slow" msgid="6683510291554497580">"Liikutit sormea liian hitaasti. Yritä uudelleen."</string> <string name="fingerprint_acquired_already_enrolled" msgid="2285166003936206785">"Kokeile toista sormenjälkeä"</string> <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"Liian kirkas"</string> @@ -693,7 +694,7 @@ <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Katso suoremmin puhelimeen"</string> <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Katso suoremmin puhelimeen"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Katso suoremmin puhelimeen"</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"Poista esteet kasvojesi edestä."</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"Poista esteet kasvojesi edestä"</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Puhdista näytön yläreuna, mukaan lukien musta palkki"</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Tätä sisältöä ei voi avata työsovelluksilla"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Tätä sisältöä ei voi jakaa henkilökohtaisilla sovelluksilla"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Tätä sisältöä ei voi avata henkilökohtaisilla sovelluksilla"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Työsovellukset on keskeytetty"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Jatka"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Ei työsovelluksia"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Ei henkilökohtaisia sovelluksia"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Avaa henkilökohtainen sovellus (<xliff:g id="APP">%s</xliff:g>)"</string> diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml index 5296fb2c5df3..76d884bb98a6 100644 --- a/core/res/res/values-fr-rCA/strings.xml +++ b/core/res/res/values-fr-rCA/strings.xml @@ -299,6 +299,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Système Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Passer au profil personnel"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Passer au profil professionnel"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Passer à <xliff:g id="APP_NAME">%1$s</xliff:g> dans le profil personnel"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Passer à <xliff:g id="APP_NAME">%1$s</xliff:g> dans le profil professionnel"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Contacts"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"accéder à vos contacts"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Localisation"</string> @@ -702,7 +704,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Impossible de créer votre modèle facial. Réessayez."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Lunettes sombres détectées. Votre visage doit être entièrement visible."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Couvre-visage détecté. Votre visage doit être entièrement visible."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Couvre-visage détecté. Montrez votre visage entier."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Imposs. de vérif. visage. Matériel non accessible."</string> @@ -711,8 +713,7 @@ <string name="face_error_canceled" msgid="2164434737103802131">"Opération de reconnaissance du visage annulée."</string> <string name="face_error_user_canceled" msgid="5766472033202928373">"Le déverrouillage par reconnaissance faciale a été annulé"</string> <string name="face_error_lockout" msgid="7864408714994529437">"Trop de tentatives. Veuillez réessayer plus tard."</string> - <!-- no translation found for face_error_lockout_permanent (8533257333130473422) --> - <skip /> + <string name="face_error_lockout_permanent" msgid="8533257333130473422">"Trop de tentatives. Le déverrouillage par reconnaissance faciale est inaccessible."</string> <string name="face_error_lockout_screen_lock" msgid="5062609811636860928">"Trop de tentatives. Entrez plutôt le verrouillage de l\'écran."</string> <string name="face_error_unable_to_process" msgid="5723292697366130070">"Impossible de vérifier le visage. Réessayez."</string> <string name="face_error_not_enrolled" msgid="1134739108536328412">"Déverrouillage par reconnaissance faciale non configuré"</string> @@ -1730,7 +1731,7 @@ <string name="accessibility_gesture_3finger_instructional_text" msgid="3425123684990193765">"Pour basculer entre les fonctionnalités, balayez l\'écran vers le haut avec trois doigts et maintenez-les-y."</string> <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Agrandissement"</string> <string name="user_switched" msgid="7249833311585228097">"Utilisateur actuel : <xliff:g id="NAME">%1$s</xliff:g>"</string> - <string name="user_switching_message" msgid="1912993630661332336">"Passage au profil : <xliff:g id="NAME">%1$s</xliff:g>…"</string> + <string name="user_switching_message" msgid="1912993630661332336">"Passage au profil : <xliff:g id="NAME">%1$s</xliff:g> en cours…"</string> <string name="user_logging_out_message" msgid="7216437629179710359">"Déconnexion de <xliff:g id="NAME">%1$s</xliff:g> en cours..."</string> <string name="owner_name" msgid="8713560351570795743">"Propriétaire"</string> <string name="guest_name" msgid="8502103277839834324">"Invité"</string> @@ -2167,10 +2168,8 @@ <skip /> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Aucune application professionnelle"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Aucune application personnelle"</string> - <!-- no translation found for miniresolver_open_in_personal (6499100403307136696) --> - <skip /> - <!-- no translation found for miniresolver_open_in_work (7138659785478630639) --> - <skip /> + <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Ouvrir <xliff:g id="APP">%s</xliff:g> dans le profil personnel"</string> + <string name="miniresolver_open_in_work" msgid="7138659785478630639">"Ouvrir <xliff:g id="APP">%s</xliff:g> dans le profil professionnel"</string> <string name="miniresolver_use_personal_browser" msgid="776072682871133308">"Utiliser le navigateur du profil personnel"</string> <string name="miniresolver_use_work_browser" msgid="543575306251952994">"Utiliser le navigateur du profil professionnel"</string> <string name="PERSOSUBSTATE_SIM_NETWORK_ENTRY" msgid="8050953231914637819">"NIP de déverrouillage du réseau associé au module SIM"</string> diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index 1da737473d17..058e7809f561 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -299,6 +299,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Système Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Passer au profil personnel"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Passer au profil pro"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Passer au <xliff:g id="APP_NAME">%1$s</xliff:g> personnel"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Passer au <xliff:g id="APP_NAME">%1$s</xliff:g> professionnel"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Contacts"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"accéder à vos contacts"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Position"</string> @@ -504,8 +506,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Permet à l\'application de contrôler le vibreur."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permet à l\'application d\'accéder à l\'état du vibreur."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"appeler directement les numéros de téléphone"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Permet à l\'appli de composer des numéros de téléphone sans votre intervention. Cela peut entraîner des frais ou des appels inattendus. Notez que cette autorisation ne permet pas à l\'appli d\'appeler des numéros d\'urgence. Les applis malveillantes peuvent engendrer des frais en passant des appels sans votre confirmation ou en composant des codes d\'opérateur qui transfèrent automatiquement des appels entrants vers un autre numéro."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"accéder au service d\'appel IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Permet à l\'application d\'utiliser le service IMS pour passer des appels sans votre intervention."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"Voir l\'état et l\'identité du téléphone"</string> @@ -681,7 +682,7 @@ <string name="face_acquired_too_dark" msgid="8539853432479385326">"Lumière insuffisante"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Éloignez le téléphone."</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"Rapprochez le téléphone"</string> - <string name="face_acquired_too_high" msgid="8278815780046368576">"Déplacez le téléphone vers le haut"</string> + <string name="face_acquired_too_high" msgid="8278815780046368576">"Levez le téléphone"</string> <string name="face_acquired_too_low" msgid="4075391872960840081">"Déplacez le téléphone vers le bas"</string> <string name="face_acquired_too_right" msgid="6245286514593540859">"Déplacez le téléphone vers la gauche"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"Déplacez le téléphone vers la droite"</string> @@ -1619,7 +1620,7 @@ <string name="default_audio_route_name" product="tablet" msgid="367936735632195517">"Tablette"</string> <string name="default_audio_route_name" product="tv" msgid="4908971385068087367">"Téléviseur"</string> <string name="default_audio_route_name" product="default" msgid="9213546147739983977">"Téléphone"</string> - <string name="default_audio_route_name_dock_speakers" msgid="1551166029093995289">"Haut-parleurs de la station d\'accueil"</string> + <string name="default_audio_route_name_dock_speakers" msgid="1551166029093995289">"Haut-parleur de la station de recharge"</string> <string name="default_audio_route_name_external_device" msgid="8124229858618975">"Appareil externe"</string> <string name="default_audio_route_name_headphones" msgid="6954070994792640762">"Écouteurs"</string> <string name="default_audio_route_name_usb" msgid="895668743163316932">"USB"</string> @@ -1646,7 +1647,7 @@ <string name="kg_wrong_pattern" msgid="1342812634464179931">"Schéma incorrect."</string> <string name="kg_wrong_password" msgid="2384677900494439426">"Mot de passe incorrect."</string> <string name="kg_wrong_pin" msgid="3680925703673166482">"Code PIN incorrect."</string> - <string name="kg_pattern_instructions" msgid="8366024510502517748">"Dessinez votre schéma."</string> + <string name="kg_pattern_instructions" msgid="8366024510502517748">"Tracez votre schéma"</string> <string name="kg_sim_pin_instructions" msgid="6479401489471690359">"Saisissez le code PIN de la carte SIM."</string> <string name="kg_pin_instructions" msgid="7355933174673539021">"Saisissez le code PIN."</string> <string name="kg_password_instructions" msgid="7179782578809398050">"Saisissez votre mot de passe."</string> @@ -2160,10 +2161,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Impossible d\'ouvrir ce contenu avec des applis professionnelles"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Impossible de partager ce contenu avec des applis personnelles"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Impossible d\'ouvrir ce contenu avec des applis personnelles"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Les applis professionnelles sont en pause"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Réactiver"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Aucune appli professionnelle"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Aucune appli personnelle"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Ouvrir l\'appli personnelle <xliff:g id="APP">%s</xliff:g>"</string> @@ -2287,7 +2286,7 @@ <string name="turn_on_magnification_settings_action" msgid="8521433346684847700">"Activer dans les paramètres"</string> <string name="dismiss_action" msgid="1728820550388704784">"Fermer"</string> <string name="sensor_privacy_start_use_mic_notification_content_title" msgid="2420858361276370367">"Débloquer le micro de l\'appareil"</string> - <string name="sensor_privacy_start_use_camera_notification_content_title" msgid="7287720213963466672">"Débloquer l\'appareil photo de l\'appareil"</string> + <string name="sensor_privacy_start_use_camera_notification_content_title" msgid="7287720213963466672">"Débloquer la caméra de l\'appareil"</string> <string name="sensor_privacy_start_use_notification_content_text" msgid="7595608891015777346">"Pour <b><xliff:g id="APP">%s</xliff:g></b> et tous les services et applis"</string> <string name="sensor_privacy_start_use_dialog_turn_on_button" msgid="7089318886628390827">"Débloquer"</string> <string name="sensor_privacy_notification_channel_label" msgid="936036783155261349">"Confidentialité du capteur"</string> diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml index 5ca972442bf2..e70c7f1b665c 100644 --- a/core/res/res/values-gl/strings.xml +++ b/core/res/res/values-gl/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Sistema Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Cambiar ao perfil persoal"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Cambiar ao perfil de traballo"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Cambiar ao perfil persoal de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Cambiar ao perfil de traballo de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Contactos"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"acceder aos teus contactos"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Localización"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Permite á aplicación controlar o vibrador."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permite que a aplicación acceda ao estado de vibrador"</string> <string name="permlab_callPhone" msgid="1798582257194643320">"chamar directamente aos números de teléfono"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Permite que a aplicación chame a números de teléfono sen a túa intervención. En consecuencia, poderías recibir chamadas ou cargos inesperados. Ten en conta que a aplicación non poderá chamar a números de emerxencias. As aplicacións maliciosas poden facer chamadas que che ocasionen gastos sen a túa confirmación ou marcar códigos de operadores que provoquen que as chamadas entrantes se desvíen de forma automática a outro número."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"acceso ao servizo de chamadas de IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Permite que a aplicación use o servizo de IMS para facer chamadas sen a túa intervención."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"ler o estado e a identidade do teléfono"</string> @@ -685,7 +686,7 @@ <string name="face_acquired_too_right" msgid="6245286514593540859">"Move o teléfono cara á esquerda"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"Move o teléfono cara á dereita"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"Mira o dispositivo de forma máis directa."</string> - <string name="face_acquired_not_detected" msgid="1057966913397548150">"A túa cara non é visible. Pon o teléfono frente ós ollos."</string> + <string name="face_acquired_not_detected" msgid="1057966913397548150">"Non se che ve a cara. Pon o teléfono diante dos ollos"</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"Demasiado movemento. Non movas o teléfono."</string> <string name="face_acquired_recalibrate" msgid="8724013080976469746">"Volve rexistrar a túa cara."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"Non se recoñeceu a cara. Téntao de novo."</string> @@ -693,15 +694,15 @@ <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Mira o teléfono de forma máis directa"</string> <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Mira o teléfono de forma máis directa"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Mira o teléfono de forma máis directa"</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"Quita todo o que oculte a túa cara."</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"Quita todo o que oculte a túa cara"</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Limpa a parte superior da pantalla, incluída a barra de cor negra"</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> <!-- no translation found for face_acquired_mouth_covering_detected (8219428572168642593) --> <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Non se puido crear o modelo facial. Téntao de novo."</string> - <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Detectáronse lentes escuras. A cara debe poder verse por completo."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Detectouse unha máscara. A cara debe poder verse por completo."</string> + <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Levas lentes escuras, pero débeseche ver toda a cara"</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Levas máscara, pero débeseche ver toda a cara"</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Sen verificar a cara. Hardware non dispoñible."</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Este contido non pode abrirse con aplicacións do traballo"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Este contido non pode compartirse con aplicacións persoais"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Este contido non pode abrirse con aplicacións persoais"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Puxéronse en pausa as aplicacións do traballo"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Reactivar"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Non hai ningunha aplicación do traballo compatible"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Non hai ningunha aplicación persoal compatible"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Abrir <xliff:g id="APP">%s</xliff:g> no perfil persoal"</string> @@ -2320,7 +2319,7 @@ <string name="mic_access_off_toast" msgid="8111040892954242437">"O micrófono está bloqueado"</string> <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Pantalla dual"</string> <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"A pantalla dual está activada"</string> - <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"A aplicación <xliff:g id="APP_NAME">%1$s</xliff:g> está usando ambas as pantallas para mostrar contido"</string> + <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> está usando ambas as pantallas para mostrar contido"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"O dispositivo está demasiado quente"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"A pantalla dual non está dispoñible porque o teléfono está quentando demasiado"</string> <string name="concurrent_display_notification_power_save_title" msgid="1794569070730736281">"Dual Screen non está dispoñible"</string> diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml index aa25626084ee..b9ba6d2af25d 100644 --- a/core/res/res/values-gu/strings.xml +++ b/core/res/res/values-gu/strings.xml @@ -219,7 +219,7 @@ <string name="turn_on_radio" msgid="2961717788170634233">"વાયરલેસ ચાલુ કરો"</string> <string name="turn_off_radio" msgid="7222573978109933360">"વાયરલેસ બંધ કરો"</string> <string name="screen_lock" msgid="2072642720826409809">"સ્ક્રીન લૉક કરો"</string> - <string name="power_off" msgid="4111692782492232778">"પાવર બંધ"</string> + <string name="power_off" msgid="4111692782492232778">"પાવર બંધ કરો"</string> <string name="silent_mode_silent" msgid="5079789070221150912">"રિંગર બંધ"</string> <string name="silent_mode_vibrate" msgid="8821830448369552678">"રિંગર વાઇબ્રેટ"</string> <string name="silent_mode_ring" msgid="6039011004781526678">"રિંગર ચાલુ"</string> @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android સિસ્ટમ"</string> <string name="user_owner_label" msgid="8628726904184471211">"વ્યક્તિગત પ્રોફાઇલ પર સ્વિચ કરો"</string> <string name="managed_profile_label" msgid="7316778766973512382">"કાર્યાલયની પ્રોફાઇલ પર સ્વિચ કરો"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"વ્યક્તિગત <xliff:g id="APP_NAME">%1$s</xliff:g> પર સ્વિચ કરો"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"ઑફિસની <xliff:g id="APP_NAME">%1$s</xliff:g> પર સ્વિચ કરો"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"સંપર્કો"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"તમારા સંપર્કોને ઍક્સેસ કરવાની"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"લોકેશન"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"એપ્લિકેશનને વાઇબ્રેટરને નિયંત્રિત કરવાની મંજૂરી આપે છે."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"ઍપને વાઇબ્રેટર સ્થિતિને ઍક્સેસ કરવાની મંજૂરી આપે છે."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"સીધા જ ફોન નંબર્સ પર કૉલ કરો"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"ઍપને તમારા હસ્તક્ષેપ વિના ફોન નંબર પર કૉલ કરવાની મંજૂરી આપે છે. આનું પરિણામ અનપેક્ષિત શુલ્ક અથવા કૉલ હોઈ શકે છે. નોંધ કરજો કે આનાથી ઍપને ઇમર્જન્સી નંબર પર કૉલ કરવાની મંજૂરી મળતી નથી. દુર્ભાવનાપૂર્ણ ઍપ તમારા કન્ફર્મેશન વિના કૉલ કરીને તમારા પૈસા ખર્ચી શકે છે અથવા તે મોબાઇલ ઑપરેટરના કોડ ડાયલ કરી શકે છે, જેના કારણે ઇનકમિંગ કૉલ ઑટોમૅટિક રીતે બીજા નંબર પર ફૉરવર્ડ થાય છે."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS કૉલ સેવા ઍક્સેસ કરો"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"તમારા હસ્તક્ષેપ વગર કૉલ્સ કરવા માટે IMS સેવાનો ઉપયોગ કરવાની એપ્લિકેશનને મંજૂરી આપે છે."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"ફોન સ્થિતિ અને ઓળખ વાંચો"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"આ કન્ટેન્ટ ઑફિસ માટેની ઍપ વડે ખોલી શકાતું નથી"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"આ કન્ટેન્ટ વ્યક્તિગત ઍપ સાથે શેર કરી શકાતું નથી"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"આ કન્ટેન્ટ વ્યક્તિગત ઍપ વડે ખોલી શકાતું નથી"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"ઑફિસ માટેની ઍપ થોભાવવામાં આવી છે"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"ફરી ચાલુ કરો"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"કોઈ ઑફિસ માટેની ઍપ સપોર્ટ કરતી નથી"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"કોઈ વ્યક્તિગત ઍપ સપોર્ટ કરતી નથી"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"વ્યક્તિગત પ્રોફાઇલવાળી <xliff:g id="APP">%s</xliff:g> ઍપ ખોલો"</string> @@ -2318,8 +2317,8 @@ <string name="permdesc_startForegroundServicesFromBackground" msgid="4071826571656001537">"સાથી ઍપને બૅકગ્રાઉન્ડમાંથી ફૉરગ્રાઉન્ડ સેવાઓ શરૂ કરવાની મંજૂરી આપે છે."</string> <string name="mic_access_on_toast" msgid="2666925317663845156">"માઇક્રોફોન ઉપલબ્ધ છે"</string> <string name="mic_access_off_toast" msgid="8111040892954242437">"માઇક્રોફોનને બ્લૉક કરવામાં આવ્યો છે"</string> - <string name="concurrent_display_notification_name" msgid="1526911253558311131">"ડ્યૂઅલ સ્ક્રીન"</string> - <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"ડ્યૂઅલ સ્ક્રીન ચાલુ છે"</string> + <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Dual screen"</string> + <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Dual screen ચાલુ છે"</string> <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"કન્ટેન્ટ બતાવવા માટે <xliff:g id="APP_NAME">%1$s</xliff:g> બન્ને ડિસ્પ્લેનો ઉપયોગ કરી રહી છે"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"ડિવાઇસ ખૂબ જ ગરમ છે"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"ડ્યૂઅલ સ્ક્રીન અનુપલબ્ધ છે કારણ કે તમારો ફોન ખૂબ જ ગરમ થઈ રહ્યો છે"</string> diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml index f4f77a957f14..a992c6ece8ef 100644 --- a/core/res/res/values-hi/strings.xml +++ b/core/res/res/values-hi/strings.xml @@ -243,7 +243,7 @@ <string name="global_actions" product="tv" msgid="3871763739487450369">"Android TV डिवाइस में फ़ोन से जुड़े विकल्प"</string> <string name="global_actions" product="default" msgid="6410072189971495460">"फ़ोन विकल्प"</string> <string name="global_action_lock" msgid="6949357274257655383">"स्क्रीन लॉक"</string> - <string name="global_action_power_off" msgid="4404936470711393203">"पावर बंद करें"</string> + <string name="global_action_power_off" msgid="4404936470711393203">"बंद करें"</string> <string name="global_action_power_options" msgid="1185286119330160073">"पावर"</string> <string name="global_action_restart" msgid="4678451019561687074">"रीस्टार्ट करें"</string> <string name="global_action_emergency" msgid="1387617624177105088">"आपातकालीन"</string> @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android सिस्टम"</string> <string name="user_owner_label" msgid="8628726904184471211">"प्रोफ़ाइल बदलकर निजी प्रोफ़ाइल पर जाएं"</string> <string name="managed_profile_label" msgid="7316778766973512382">"प्रोफ़ाइल बदलकर वर्क प्रोफ़ाइल पर जाएं"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"<xliff:g id="APP_NAME">%1$s</xliff:g> की निजी प्रोफ़ाइल पर जाएं"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"<xliff:g id="APP_NAME">%1$s</xliff:g> की वर्क प्रोफ़ाइल पर जाएं"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"संपर्क"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"अपने संपर्कों को ऐक्सेस करें"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"जगह की जानकारी"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"ऐप्स को कंपनकर्ता नियंत्रित करने देता है."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"इससे ऐप्लिकेशन, डिवाइस का वाइब्रेटर ऐक्सेस कर पाएगा."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"फ़ोन नंबर पर सीधे कॉल करें"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"इससे ऐप्लिकेशन, आपकी अनुमति के बिना ही किसी के फ़ोन पर कॉल कर सकता है. इस वजह से, हो सकता है कि किसी को भी अनचाहे कॉल लग जाएं या कॉल का शुल्क कट जाए. ध्यान दें कि यह अनुमति मिलने से, ऐप्लिकेशन आपातकालीन नंबर पर कॉल नहीं कर सकता. नुकसान पहुंचाने वाले ऐप्लिकेशन, आपकी अनुमति के बिना किसी को कॉल कर सकते हैं. इस वजह से, कॉल का शुल्क कट सकता है. इसके अलावा, ये ऐप्लिकेशन, कैरियर कोड वाले नंबर डायल कर सकते हैं. इससे, आने वाले (इनकमिंग) कॉल दूसरे नंबर पर अपने-आप फ़ॉरवर्ड हो जाते हैं."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS कॉल सेवा ऐक्सेस करें"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"आपके हस्तक्षेप के बिना कॉल करने के लिए, ऐप को IMS सेवा का उपयोग करने देती है."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"फ़ोन की स्थिति और पहचान पढ़ें"</string> @@ -628,13 +629,13 @@ <string name="fingerprint_acquired_insufficient" msgid="623888149088216458">"फ़िंगरप्रिंट की पहचान नहीं की जा सकी. फिर से कोशिश करें."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1770676120848224250">"फ़िंगरप्रिंट सेंसर को साफ़ करके फिर से कोशिश करें"</string> <string name="fingerprint_acquired_imager_dirty_alt" msgid="9169582140486372897">"फ़िंगरप्रिंट सेंसर को साफ़ करके फिर से कोशिश करें"</string> - <string name="fingerprint_acquired_too_fast" msgid="1628459767349116104">"सेंसर को उंगली से ज़ोर से दबाएं"</string> + <string name="fingerprint_acquired_too_fast" msgid="1628459767349116104">"सेंसर को उंगली से दबाएं"</string> <string name="fingerprint_acquired_too_slow" msgid="6683510291554497580">"उंगली बहुत धीरे चलाई गई. कृपया फिर से कोशिश करें."</string> <string name="fingerprint_acquired_already_enrolled" msgid="2285166003936206785">"किसी दूसरे फ़िंगरप्रिंट से कोशिश करें"</string> <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"बहुत रोशनी है"</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"पावर बटन दबाया गया"</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"सेंसर पर सही तरीके से उंगली लगाने की कोशिश करें"</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"फ़िंगरप्रिंट सेट अप करते समय, अपनी उंगली को हर बार थोड़ी अलग स्थिति में रखें"</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"फ़िंगरप्रिंट सेट अप करते समय, अपनी उंगली को हर बार एक अलग ऐंगल में रखें"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"फ़िंगरप्रिंट की पहचान नहीं हो पाई"</string> @@ -682,10 +683,10 @@ <string name="face_acquired_too_far" msgid="2922278214231064859">"फ़ोन को नज़दीक लाएं"</string> <string name="face_acquired_too_high" msgid="8278815780046368576">"फ़ोन को थोड़ा और ऊपर ले जाएं"</string> <string name="face_acquired_too_low" msgid="4075391872960840081">"फ़ोन को थोड़ा नीचे ले जाएं"</string> - <string name="face_acquired_too_right" msgid="6245286514593540859">"फ़ोन को अपने बाईं ओर ले जाएं"</string> - <string name="face_acquired_too_left" msgid="9201762240918405486">"फ़ोन को अपने दाईं ओर ले जाएं"</string> + <string name="face_acquired_too_right" msgid="6245286514593540859">"फ़ोन को अपनी बाईं ओर ले जाएं"</string> + <string name="face_acquired_too_left" msgid="9201762240918405486">"फ़ोन को अपनी दाईं ओर ले जाएं"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"कृपया अपने डिवाइस की तरफ़ सीधे देखें."</string> - <string name="face_acquired_not_detected" msgid="1057966913397548150">"आपका चेहरा नहीं दिख रहा है. फ़ोन को अपनी आंखों की सीध में पकड़कर रखें."</string> + <string name="face_acquired_not_detected" msgid="1057966913397548150">"आपका चेहरा नहीं दिख रहा है. फ़ोन को अपनी आंखों की सीध में रखें."</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"डिवाइस बहुत ज़्यादा हिल रहा है. फ़ोन को बिना हिलाएं पकड़ें."</string> <string name="face_acquired_recalibrate" msgid="8724013080976469746">"कृपया फिर से अपने चेहरे की पहचान कराएं."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"चेहरे की पहचान नहीं हुई. फिर से कोशिश करें."</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"इस कॉन्टेंट को ऑफ़िस के काम से जुड़े ऐप्लिकेशन पर खोला नहीं जा सकता"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"इस कॉन्टेंट को निजी ऐप्लिकेशन का इस्तेमाल करके, शेयर नहीं किया जा सकता"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"इस कॉन्टेंट को निजी ऐप्लिकेशन पर खोला नहीं जा सकता"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"वर्क ऐप्लिकेशन बंद किए गए हैं"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"चालू करें"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"यह कॉन्टेंट, ऑफ़िस के काम से जुड़े आपके किसी भी ऐप्लिकेशन पर खोला नहीं जा सकता"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"यह कॉन्टेंट आपके किसी भी निजी ऐप्लिकेशन पर खोला नहीं जा सकता"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"निजी प्रोफ़ाइल वाला <xliff:g id="APP">%s</xliff:g> ऐप्लिकेशन खोलें"</string> @@ -2320,7 +2319,7 @@ <string name="mic_access_off_toast" msgid="8111040892954242437">"माइक्रोफ़ोन को ब्लॉक किया गया है"</string> <string name="concurrent_display_notification_name" msgid="1526911253558311131">"ड्यूअल स्क्रीन"</string> <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"ड्यूअल स्क्रीन की सुविधा चालू है"</string> - <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g>, कॉन्टेंट दिखाने के लिए दोनों डिसप्ले का इस्तेमाल कर रहा है"</string> + <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g>, कॉन्टेंट दिखाने के लिए दोनों स्क्रीन का इस्तेमाल कर रहा है"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"आपका फ़ोन बहुत गर्म हो गया है"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"ड्यूअल स्क्रीन की सुविधा अभी उपलब्ध नहीं है, क्योंकि आपका फ़ोन बहुत गर्म हो रहा है"</string> <string name="concurrent_display_notification_power_save_title" msgid="1794569070730736281">"Dual Screen का इस्तेमाल नहीं किया जा सकता"</string> diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml index 86869faa4527..fe251423c501 100644 --- a/core/res/res/values-hr/strings.xml +++ b/core/res/res/values-hr/strings.xml @@ -269,7 +269,7 @@ <string name="global_action_settings" msgid="4671878836947494217">"Postavke"</string> <string name="global_action_assist" msgid="2517047220311505805">"Pomoć"</string> <string name="global_action_voice_assist" msgid="6655788068555086695">"Glasovna pomoć"</string> - <string name="global_action_lockdown" msgid="2475471405907902963">"Zaključavanje"</string> + <string name="global_action_lockdown" msgid="2475471405907902963">"Zaključaj"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> <string name="notification_hidden_text" msgid="2835519769868187223">"Nova obavijest"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fizička tipkovnica"</string> @@ -299,6 +299,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Sustav Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Prijeđite na osobni profil"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Poslovni profil"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Prijeđite na aplikaciju <xliff:g id="APP_NAME">%1$s</xliff:g> za osobni profil"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Prijeđite na aplikaciju <xliff:g id="APP_NAME">%1$s</xliff:g> za poslovni profil"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontakti"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"pristupati vašim kontaktima"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Lokacija"</string> @@ -504,8 +506,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Aplikaciji omogućuje nadzor nad vibratorom."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Aplikaciji omogućuje da pristupi stanju vibracije."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"izravno pozivanje telefonskog broja"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Aplikaciji omogućuje pozivanje telefonskih brojeva bez vaše intervencije. To može rezultirati neočekivanim terećenjima ili pozivima. Napominjemo da to ne omogućuje aplikaciji pozivanje brojeva hitnih službi. Zlonamjerne aplikacije mogu vam uzrokovati troškove pozivajući bez vaše potvrde ili birajući pozivne brojeve mobilnih operatera koji uzrokuju automatsko preusmjeravanje dolaznih poziva na drugi broj."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"pristupiti usluzi poziva izravnih poruka"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Omogućuje aplikaciji upotrebu usluge izravnih poruka za uspostavljanje poziva bez vaše intervencije."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"čitanje statusa i identiteta telefona"</string> @@ -691,9 +692,9 @@ <string name="face_acquired_recalibrate" msgid="8724013080976469746">"Ponovo registrirajte svoje lice."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"Prepoznavanje lica nije uspjelo. Pokušajte ponovo."</string> <string name="face_acquired_too_similar" msgid="8882920552674125694">"Malo pomaknite glavu"</string> - <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Gledajte izravnije prema telefonu"</string> + <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Gledajte ravno u telefon"</string> <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Gledajte ravno u telefon"</string> - <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Gledajte izravnije prema telefonu"</string> + <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Gledajte ravno u telefon"</string> <string name="face_acquired_obscured" msgid="4917643294953326639">"Uklonite sve što vam zakriva lice."</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Očistite vrh zaslona, uključujući crnu traku"</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> @@ -702,7 +703,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Izrada modela lica nije uspjela. Pokušajte ponovo."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Otkrivene su tamne naočale. Vaše lice mora biti potpuno vidljivo."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Otkriveno je prekrivanje lica. Vaše lice mora biti potpuno vidljivo."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Otkriveno je pokrivalo za lice. Vaše lice mora biti potpuno vidljivo."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Lice nije potvrđeno. Hardver nije dostupan."</string> @@ -2160,10 +2161,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Taj se sadržaj ne može otvoriti pomoću poslovnih aplikacija"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Taj se sadržaj ne može dijeliti pomoću osobnih aplikacija"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Taj se sadržaj ne može otvoriti pomoću osobnih aplikacija"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Poslovne aplikacije su pauzirane"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Ponovno pokreni"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Poslovne aplikacije nisu dostupne"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Osobne aplikacije nisu dostupne"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Otvorite osobnu aplikaciju <xliff:g id="APP">%s</xliff:g>"</string> diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml index 9a585f8120d2..c78d5e0d6258 100644 --- a/core/res/res/values-hu/strings.xml +++ b/core/res/res/values-hu/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android rendszer"</string> <string name="user_owner_label" msgid="8628726904184471211">"Váltás személyes profilra"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Váltás munkaprofilra"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Váltás személyes <xliff:g id="APP_NAME">%1$s</xliff:g>-profilra"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Váltás munkahelyi <xliff:g id="APP_NAME">%1$s</xliff:g>-profilra"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Névjegyek"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"hozzáférés a névjegyekhez"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Helyadatok"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Lehetővé teszi az alkalmazás számára a rezgés vezérlését."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Lehetővé teszi az alkalmazás számára a rezgés állapotához való hozzáférést."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"telefonszámok közvetlen hívása"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Lehetővé teszi az alkalmazás számára, hogy az Ön közreműködése nélkül hívjon fel telefonszámokat. Ennek eredményeként váratlan terhelésekkel vagy telefonhívásokkal találkozhat. Vegye figyelembe, hogy ez nem teszi lehetővé segélyhívó számok hívását az alkalmazás számára. A rosszindulatú alkalmazások az Ön jóváhagyása nélkül kezdeményezhetnek hívásokat, így költségek merülhetnek fel. Emellett szolgáltatói kódokat tárcsázhatnak, aminek eredményeképp a bejövő hívásokat automatikusan másik számra irányítják át."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"hozzáférés az IMS-hívásszolgáltatáshoz"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Az alkalmazás az IMS-szolgáltatást használhatja híváskezdeményezéshez az Ön közbeavatkozása nélkül."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"telefonállapot és azonosító olvasása"</string> @@ -634,7 +635,7 @@ <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"Túl világos"</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"Bekapcsológomb lenyomása észlelve"</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"Próbálja beállítani"</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Módosítsa minden alkalommal kis mértékben ujja helyzetét."</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Mindig tegye odébb egy kicsit az ujját"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"Az ujjlenyomat nem ismerhető fel"</string> @@ -2064,7 +2065,7 @@ <string name="harmful_app_warning_open_anyway" msgid="5963657791740211807">"MEGNYITÁS MÉGIS"</string> <string name="harmful_app_warning_title" msgid="8794823880881113856">"A rendszer kártékony alkalmazást észlelt"</string> <string name="slices_permission_request" msgid="3677129866636153406">"A(z) <xliff:g id="APP_0">%1$s</xliff:g> alkalmazás részleteket szeretne megjeleníteni a(z) <xliff:g id="APP_2">%2$s</xliff:g> alkalmazásból"</string> - <string name="screenshot_edit" msgid="7408934887203689207">"Szerkesztés"</string> + <string name="screenshot_edit" msgid="7408934887203689207">"Módosítás"</string> <string name="volume_dialog_ringer_guidance_vibrate" msgid="2055927873175228519">"A hívások és az értesítések rezegnek"</string> <string name="volume_dialog_ringer_guidance_silent" msgid="1011246774949993783">"A hívások és az értesítések némák"</string> <string name="notification_channel_system_changes" msgid="2462010596920209678">"Rendszermódosítások"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Ez a tartalom nem nyitható meg munkahelyi alkalmazásokkal"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Ez a tartalom nem osztható meg személyes alkalmazásokkal"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Ez a tartalom nem nyitható meg személyes alkalmazásokkal"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"A munkahelyi alkalmazások szüneteltetve vannak"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Szüneteltetés feloldása"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Nincs munkahelyi alkalmazás"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Nincs személyes alkalmazás"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Személyes <xliff:g id="APP">%s</xliff:g> megnyitása"</string> diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml index ea57ed464fca..938241d2070e 100644 --- a/core/res/res/values-hy/strings.xml +++ b/core/res/res/values-hy/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android համակարգ"</string> <string name="user_owner_label" msgid="8628726904184471211">"Բացել անձնական պրոֆիլը"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Բացել աշխատանքային պրոֆիլը"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Անցնել անձնական <xliff:g id="APP_NAME">%1$s</xliff:g> պրոֆիլին"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Անցնել աշխատանքային <xliff:g id="APP_NAME">%1$s</xliff:g> պրոֆիլին"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Կոնտակտներ"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"օգտագործել ձեր կոնտակտները"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Տեղորոշում"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Թույլ է տալիս հավելվածին կառավարել թրթռոցը:"</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Հավելվածին թույլ է տալիս օգտագործել սարքի թրթռալու ռեժիմը։"</string> <string name="permlab_callPhone" msgid="1798582257194643320">"ուղղակիորեն զանգել հեռախոսահամարներին"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Թույլ է տալիս հավելվածին զանգել հեռախոսահամարների՝ առանց ձեր միջամտության։ Սա կարող է հանգեցնել անկանխատեսելի գանձումների կամ զանգերի: Նկատի ունեցեք, որ սա թույլ չի տալիս հավելվածին զանգել արտակարգ իրավիճակների համարներին: Վնասակար հավելվածները կարող են գումար կորզել՝ կատարելով զանգեր առանց ձեր հաստատման կամ հավաքել համարներ, որոնց արդյունքում ստանում եք մուտքային զանգեր՝ այլ համարի ավտոմատ փոխանցելու համար։"</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"օգտվել IMS զանգերի ծառայությունից"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Թույլ է տալիս հավելվածին IMS ծառայության միջոցով կատարել զանգեր՝ առանց ձեր միջամտության:"</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"կարդալ հեռախոսի կարգավիճակը և ինքնությունը"</string> @@ -634,7 +635,7 @@ <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"Շատ լուսավոր է"</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"Հայտնաբերվել է սնուցման կոճակի սեղմում"</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"Փորձեք փոխել մատի դիրքը"</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Ամեն անգամ թեթևակի փոխեք մատի դիրքը"</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Ամեն անգամ թեթևակի փոխեք մատի դիրքը"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"Մատնահետքը չի ճանաչվել"</string> @@ -685,7 +686,7 @@ <string name="face_acquired_too_right" msgid="6245286514593540859">"Տեղափոխեք հեռախոսը ձախ"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"Տեղափոխեք հեռախոսը աջ"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"Նայեք ուղիղ էկրանին։"</string> - <string name="face_acquired_not_detected" msgid="1057966913397548150">"Դեմքը չի երևում։ Հեռախոսը պահեք աչքերի մակարդակում։"</string> + <string name="face_acquired_not_detected" msgid="1057966913397548150">"Դեմքը չի երևում։ Հեռախոսը պահեք աչքերի մակարդակում։"</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"Շատ եք շարժում։ Հեռախոսն անշարժ պահեք։"</string> <string name="face_acquired_recalibrate" msgid="8724013080976469746">"Նորից փորձեք։"</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"Դեմքը չի հաջողվում ճանաչել։ Նորից փորձեք։"</string> @@ -701,7 +702,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Չհաջողվեց ստեղծել ձեր դեմքի մոդելը։ Նորից փորձեք։"</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Հանեք ակնոցը։ Ձեր դեմքը պետք է ամբողջովին տեսանելի լինի։"</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Դեմքի մի մասը ծածկված է։ Ձեր դեմքը պետք է ամբողջովին տեսանելի լինի։"</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Դեմքի մի մասը ծածկված է։ Ձեր դեմքը պետք է ամբողջովին տեսանելի լինի։"</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Չհաջողվեց հաստատել դեմքը։ Սարքն անհասանելի է:"</string> @@ -1728,7 +1729,7 @@ <string name="accessibility_gesture_3finger_instructional_text" msgid="3425123684990193765">"Մի գործառույթից մյուսին անցնելու համար երեք մատը սահեցրեք վերև և պահեք։"</string> <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Խոշորացում"</string> <string name="user_switched" msgid="7249833311585228097">"Ներկայիս օգտատերը <xliff:g id="NAME">%1$s</xliff:g>:"</string> - <string name="user_switching_message" msgid="1912993630661332336">"Անցում հետևյալ պրոֆիլին՝ <xliff:g id="NAME">%1$s</xliff:g>..."</string> + <string name="user_switching_message" msgid="1912993630661332336">"Անցում <xliff:g id="NAME">%1$s</xliff:g> պրոֆիլին..."</string> <string name="user_logging_out_message" msgid="7216437629179710359">"Ելք <xliff:g id="NAME">%1$s</xliff:g>-ից…"</string> <string name="owner_name" msgid="8713560351570795743">"Սեփականատեր"</string> <string name="guest_name" msgid="8502103277839834324">"Հյուր"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Այս բովանդակությունը հնարավոր չէ բացել աշխատանքային հավելվածներով"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Այս բովանդակությունը հնարավոր չէ ուղարկել անձնական հավելվածներով"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Այս բովանդակությունը հնարավոր չէ բացել անձնական հավելվածներով"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Աշխատանքային հավելվածները դադարեցված են"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Վերսկսել"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Աշխատանքային հավելվածներ չկան"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Անձնական հավելվածներ չկան"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Անձնական <xliff:g id="APP">%s</xliff:g> պրոֆիլի բացում"</string> @@ -2320,7 +2319,7 @@ <string name="mic_access_off_toast" msgid="8111040892954242437">"Խոսափողն արգելափակված է"</string> <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Կրկնակի էկրան"</string> <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Կրկնակի էկրանը միացված է"</string> - <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածը երկու էկրաններն էլ օգտագործում է բովանդակություն ցուցադրելու համար"</string> + <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածն օգտագործում է երկու էկրանները"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"Սարքը գերտաքացել է"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"Կրկնակի էկրանն անհասանելի է, քանի որ ձեր հեռախոսը գերտաքանում է"</string> <string name="concurrent_display_notification_power_save_title" msgid="1794569070730736281">"Dual Screen-ը հասանելի չէ"</string> diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index 568f12a0e10c..5400e055d75f 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Sistem Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Beralih ke profil pribadi"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Beralih ke profil kerja"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Beralih ke <xliff:g id="APP_NAME">%1$s</xliff:g> pribadi"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Beralih ke <xliff:g id="APP_NAME">%1$s</xliff:g> kerja"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontak"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"mengakses kontak"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Lokasi"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Mengizinkan aplikasi untuk mengendalikan vibrator."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Mengizinkan aplikasi untuk mengakses status vibrator."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"panggil nomor telepon secara langsung"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Mengizinkan aplikasi memanggil nomor telepon tanpa intervensi Anda. Hal ini dapat mengakibatkan adanya biaya atau panggilan yang tidak terduga. Perhatikan bahwa hal ini tidak memungkinkan aplikasi menghubungi nomor darurat. Anda dapat dikenai biaya oleh aplikasi berbahaya dengan melakukan panggilan tanpa konfirmasi dari Anda, atau menghubungi kode operator yang menyebabkan panggilan masuk dialihkan secara otomatis ke nomor lain."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"akses layanan panggilan IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Memungkinkan aplikasi menggunakan layanan IMS untuk melakukan panggilan tanpa campur tangan Anda."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"baca identitas dan status ponsel"</string> @@ -680,10 +681,10 @@ <string name="face_acquired_too_dark" msgid="8539853432479385326">"Cahaya tidak cukup"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Jauhkan ponsel"</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"Dekatkan ponsel"</string> - <string name="face_acquired_too_high" msgid="8278815780046368576">"Gerakkan ponsel ke atas"</string> - <string name="face_acquired_too_low" msgid="4075391872960840081">"Gerakkan ponsel ke bawah"</string> - <string name="face_acquired_too_right" msgid="6245286514593540859">"Gerakkan ponsel ke kiri Anda"</string> - <string name="face_acquired_too_left" msgid="9201762240918405486">"Gerakkan ponsel ke kanan Anda"</string> + <string name="face_acquired_too_high" msgid="8278815780046368576">"Geser ponsel ke atas"</string> + <string name="face_acquired_too_low" msgid="4075391872960840081">"Geser ponsel ke bawah"</string> + <string name="face_acquired_too_right" msgid="6245286514593540859">"Geser ponsel ke kiri"</string> + <string name="face_acquired_too_left" msgid="9201762240918405486">"Geser ponsel ke kanan"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"Lihat langsung ke perangkat."</string> <string name="face_acquired_not_detected" msgid="1057966913397548150">"Wajah tidak terlihat. Pegang ponsel sejajar mata."</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"Terlalu banyak gerakan. Stabilkan ponsel."</string> @@ -693,7 +694,7 @@ <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Lihat lebih lurus ke arah ponsel"</string> <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Lihat lebih lurus ke arah ponsel"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Lihat lebih lurus ke arah ponsel"</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"Singkirkan apa saja yang menutupi wajah Anda."</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"Singkirkan semua yang menutupi wajah."</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Bersihkan bagian atas layar, termasuk kotak hitam"</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> @@ -701,7 +702,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Tidak dapat membuat model wajah Anda. Coba lagi."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Kacamata hitam terdeteksi. Wajah Anda harus terlihat sepenuhnya."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Penutup wajah terdeteksi. Wajah Anda harus terlihat sepenuhnya."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Penutup wajah terdeteksi. Wajah harus terlihat sepenuhnya."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Tidak dapat memverifikasi wajah. Hardware tidak tersedia."</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Konten ini tidak dapat dibuka dengan aplikasi kerja"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Konten ini tidak dapat dibagikan dengan aplikasi pribadi"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Konten ini tidak dapat dibuka dengan aplikasi pribadi"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Aplikasi kerja dijeda"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Batalkan jeda"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Tidak ada aplikasi kerja"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Tidak ada aplikasi pribadi"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Buka <xliff:g id="APP">%s</xliff:g> pribadi"</string> @@ -2319,7 +2318,7 @@ <string name="mic_access_on_toast" msgid="2666925317663845156">"Mikrofon tersedia"</string> <string name="mic_access_off_toast" msgid="8111040892954242437">"Mikrofon diblokir"</string> <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Layar ganda"</string> - <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Layar ganda aktif"</string> + <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Dual screen aktif"</string> <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> menggunakan kedua layar untuk menampilkan konten"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"Suhu perangkat terlalu panas"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"Layar ganda tidak tersedia karena suhu ponsel terlalu panas"</string> diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml index eb34c84f6985..3ddd7ac0ebf6 100644 --- a/core/res/res/values-is/strings.xml +++ b/core/res/res/values-is/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android kerfið"</string> <string name="user_owner_label" msgid="8628726904184471211">"Skipta yfir í eigið snið"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Skipta yfir í vinnusnið"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Skipta yfir í eigið snið <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Skipta yfir í vinnusnið <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Tengiliðir"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"fá aðgang að tengiliðunum þínum"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Staðsetning"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Leyfir forriti að stjórna titraranum."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Veitir forritinu aðgang að stöðu titrings."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"hringja beint í símanúmer"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Leyfir forriti að hringja í símanúmer án aðgerðar frá þér. Þetta getur haft í för með sér óvænt gjöld eða símtöl. Athugaðu að þetta heimilar forriti ekki að hringja í neyðarnúmer. Skaðleg forrit gætu kostað þig peninga með því að hringja án staðfestingar frá þér eða hringja í kóða símafyrirtækis sem verður til þess að móttekin símtöl verði framsend sjálfkrafa í annað númer."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"fá aðgang að IMS-símtalsþjónustu"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Leyfir forriti að nota IMS-þjónustu til að hringja án inngrips frá þér."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"lesa stöðu símans og auðkenni"</string> @@ -1696,7 +1697,7 @@ <string name="accessibility_shortcut_off" msgid="3651336255403648739">"Ekki kveikja"</string> <string name="accessibility_shortcut_menu_item_status_on" msgid="6608392117189732543">"KVEIKT"</string> <string name="accessibility_shortcut_menu_item_status_off" msgid="5531598275559472393">"SLÖKKT"</string> - <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Viltu leyfa <xliff:g id="SERVICE">%1$s</xliff:g> að hafa fulla stjórn yfir tækinu þínu?"</string> + <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Viltu leyfa „<xliff:g id="SERVICE">%1$s</xliff:g>“ að hafa fulla stjórn yfir tækinu þínu?"</string> <string name="accessibility_service_warning_description" msgid="291674995220940133">"Full stjórnun er viðeigandi fyrir forrit sem hjálpa þér ef þú hefur ekki aðgang, en ekki fyrir flest forrit."</string> <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Skoða og stjórna skjá"</string> <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Það getur lesið allt efni á skjánum og birt efni yfir öðrum forritum."</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Ekki er hægt að opna þetta efni með vinnuforritum"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Ekki er hægt að deila þessu efni með forritum til einkanota"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Ekki er hægt að opna þetta efni með forritum til einkanota"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Hlé gert á vinnuforritum"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Ljúka hléi"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Engin vinnuforrit"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Engin forrit til einkanota"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Opna <xliff:g id="APP">%s</xliff:g> með einkaprófíl"</string> diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml index a170c9297e29..2feaa0eebd2c 100644 --- a/core/res/res/values-it/strings.xml +++ b/core/res/res/values-it/strings.xml @@ -299,6 +299,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Sistema Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Passa al profilo personale"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Passa al profilo di lavoro"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Passa all\'app <xliff:g id="APP_NAME">%1$s</xliff:g> personale"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Passa all\'app <xliff:g id="APP_NAME">%1$s</xliff:g> di lavoro"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Contatti"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"Possono accedere ai contatti"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Posizione"</string> @@ -504,8 +506,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Consente all\'applicazione di controllare la vibrazione."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Consente all\'app di accedere allo stato di vibrazione."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"chiamata diretta n. telefono"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Consente all\'app di chiamare numeri di telefono senza il tuo intervento. Questo potrebbe comportare chiamate o addebiti imprevisti. Tieni presente che l\'app non può chiamare numeri di emergenza. Le app dannose potrebbero generare dei costi effettuando chiamate senza la tua conferma o componendo codici di operatori a causa dei quali le chiamate in arrivo vengono deviate automaticamente su un altro numero."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"accesso al servizio di chiamata IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Consente all\'app di utilizzare il servizio IMS per fare chiamate senza il tuo intervento."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"lettura stato e identità telefono"</string> @@ -702,7 +703,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Impossibile creare il modello del volto. Riprova."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Sono stati rilevati occhiali scuri. Il tuo volto deve essere visibile per intero."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"È stata rilevata una mascherina. Il tuo volto deve essere visibile per intero."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Rilevata mascherina. Il volto deve essere visibile per intero."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Imposs. verificare volto. Hardware non disponibile."</string> @@ -2160,10 +2161,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Questi contenuti non possono essere aperti con app di lavoro"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Questi contenuti non possono essere condivisi con app personali"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Questi contenuti non possono essere aperti con app personali"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Le app di lavoro sono in pausa"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Riattiva"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Nessuna app di lavoro"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Nessuna app personale"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Apri l\'app <xliff:g id="APP">%s</xliff:g> personale"</string> diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml index 0d8eca07595e..3d71a476a944 100644 --- a/core/res/res/values-iw/strings.xml +++ b/core/res/res/values-iw/strings.xml @@ -251,7 +251,7 @@ <string name="global_action_bug_report" msgid="5127867163044170003">"דיווח על באג"</string> <string name="global_action_logout" msgid="6093581310002476511">"סיום הפעלה"</string> <string name="global_action_screenshot" msgid="2610053466156478564">"צילום מסך"</string> - <string name="bugreport_title" msgid="8549990811777373050">"דיווח על באג"</string> + <string name="bugreport_title" msgid="8549990811777373050">"דוח על באג"</string> <string name="bugreport_message" msgid="5212529146119624326">"הפעולה הזו תאסוף מידע על מצב המכשיר הנוכחי שלך כדי לשלוח אותו כהודעת אימייל. היא תימשך זמן קצר מרגע פתיחת הדיווח על הבאג ועד לשליחת ההודעה בפועל. יש להמתין בסבלנות."</string> <string name="bugreport_option_interactive_title" msgid="7968287837902871289">"דוח אינטראקטיבי"</string> <string name="bugreport_option_interactive_summary" msgid="8493795476325339542">"כדאי להשתמש באפשרות הזו ברוב המקרים. היא מאפשרת לך לעקוב אחר התקדמות הדוח, להזין פרטים נוספים על הבעיה ולצלם את המסך. היא עשויה להשמיט כמה קטעים שנמצאים פחות בשימוש ושיצירת הדיווח עליהם נמשכת זמן רב."</string> @@ -299,6 +299,8 @@ <string name="android_system_label" msgid="5974767339591067210">"מערכת Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"החלפה לפרופיל אישי"</string> <string name="managed_profile_label" msgid="7316778766973512382">"החלפה לפרופיל עבודה"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"מעבר אל <xliff:g id="APP_NAME">%1$s</xliff:g> בפרופיל האישי"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"מעבר אל <xliff:g id="APP_NAME">%1$s</xliff:g> בפרופיל העבודה"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"אנשי קשר"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"גישה אל אנשי הקשר"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"מיקום"</string> @@ -504,8 +506,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"מאפשרת לאפליקציה לשלוט ברטט."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"מאפשרת לאפליקציה לקבל גישה למצב רטט."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"חיוג ישירות למספרי טלפון"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"ההרשאה הזו מאפשרת לאפליקציה להתקשר לכל מספר טלפון שהוא ללא התערבותך. הפעולה עשויה להוביל לשיחות או לחיובים לא צפויים. לתשומך ליבך, ההרשאה הזו לא מאפשרת לאפליקציה להתקשר למספרי חירום. אפליקציות זדוניות עלולות לגרום לחיובים נוספים בגלל התקשרות לשיחות ללא אישורך, או לחייג לקודי ספק שיגרמו לכך שהשיחות הנכנסות יופנו אוטומטית למספר אחר."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"גישה אל שירות שיחות IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"מאפשרת לאפליקציה להשתמש בשירות ה-IMS לביצוע שיחות ללא התערבות שלך."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"קריאת הסטטוס והזהות של הטלפון"</string> @@ -1619,7 +1620,7 @@ <string name="default_audio_route_name" product="tablet" msgid="367936735632195517">"טאבלט"</string> <string name="default_audio_route_name" product="tv" msgid="4908971385068087367">"טלוויזיה"</string> <string name="default_audio_route_name" product="default" msgid="9213546147739983977">"טלפון"</string> - <string name="default_audio_route_name_dock_speakers" msgid="1551166029093995289">"רמקולים של מעגן"</string> + <string name="default_audio_route_name_dock_speakers" msgid="1551166029093995289">"רמקולים באביזר עגינה"</string> <string name="default_audio_route_name_external_device" msgid="8124229858618975">"מכשיר חיצוני"</string> <string name="default_audio_route_name_headphones" msgid="6954070994792640762">"אוזניות"</string> <string name="default_audio_route_name_usb" msgid="895668743163316932">"USB"</string> @@ -2160,10 +2161,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"אי אפשר לפתוח את התוכן הזה באמצעות אפליקציות לעבודה"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"אי אפשר לשתף את התוכן הזה עם אפליקציות לשימוש אישי"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"אי אפשר לפתוח את התוכן הזה באמצעות אפליקציות לשימוש אישי"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"האפליקציות לעבודה מושהות"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"ביטול ההשהיה"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"אין אפליקציות לעבודה"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"אין אפליקציות לשימוש אישי"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"פתיחת <xliff:g id="APP">%s</xliff:g> בפרופיל האישי"</string> diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml index 4c63c1df1612..a89089c6ee8b 100644 --- a/core/res/res/values-ja/strings.xml +++ b/core/res/res/values-ja/strings.xml @@ -253,9 +253,9 @@ <string name="bugreport_title" msgid="8549990811777373050">"バグレポート"</string> <string name="bugreport_message" msgid="5212529146119624326">"現在のデバイスの状態に関する情報が収集され、その内容がメールで送信されます。バグレポートが開始してから送信可能な状態となるまでには多少の時間がかかりますのでご了承ください。"</string> <string name="bugreport_option_interactive_title" msgid="7968287837902871289">"対話型レポート"</string> - <string name="bugreport_option_interactive_summary" msgid="8493795476325339542">"ほとんどの場合はこのオプションを使用します。レポートの進行状況を追跡し、問題についての詳細情報の確認やスクリーンショットの作成が可能です。レポート作成に時間がかかる、あまり使用されない項目は省略されることがあります。"</string> + <string name="bugreport_option_interactive_summary" msgid="8493795476325339542">"ほとんどの場合はこのオプションを使用します。レポートの進行状況を追跡し、問題についての詳細情報の入力やスクリーンショットの作成が可能です。レポート作成に時間がかかる、あまり使用されない項目は省略されることがあります。"</string> <string name="bugreport_option_full_title" msgid="7681035745950045690">"完全レポート"</string> - <string name="bugreport_option_full_summary" msgid="1975130009258435885">"デバイスの反応がないとき、または動作が遅すぎるときにシステムへの影響を最小限に抑えたい場合は、このオプションを使用します。また、すべてのレポート項目を表示したい場合もこのオプションを使用します。詳細情報は表示されず、追加のスクリーンショットは作成されません。"</string> + <string name="bugreport_option_full_summary" msgid="1975130009258435885">"デバイスの反応がないときや、動作が遅すぎるときにシステムへの影響を最小限に抑えたい場合、またすべてのレポート項目を表示したい場合にこのオプションを使用します。詳細情報の入力はできず、追加のスクリーンショットを撮ることもできません。"</string> <string name="bugreport_countdown" msgid="6418620521782120755">"{count,plural, =1{# 秒後にバグレポート用のスクリーンショットを撮影します。}other{# 秒後にバグレポート用のスクリーンショットを撮影します。}}"</string> <string name="bugreport_screenshot_success_toast" msgid="7986095104151473745">"バグレポートのスクリーンショットを取得しました"</string> <string name="bugreport_screenshot_failure_toast" msgid="6736320861311294294">"バグレポートのスクリーンショットを取得できませんでした"</string> @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android システム"</string> <string name="user_owner_label" msgid="8628726904184471211">"個人用プロファイルに切り替える"</string> <string name="managed_profile_label" msgid="7316778766973512382">"仕事用プロファイルに切り替える"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"個人用の <xliff:g id="APP_NAME">%1$s</xliff:g> に切り替える"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"仕事用の <xliff:g id="APP_NAME">%1$s</xliff:g> に切り替える"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"連絡先"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"連絡先へのアクセス"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"位置情報"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"バイブレーションの制御をアプリに許可します。"</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"バイブレーションのオン / オフ状態の把握をアプリに許可します。"</string> <string name="permlab_callPhone" msgid="1798582257194643320">"電話番号発信"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"電話番号への自動発信をアプリに許可します。許可することで、予期せぬ発信や料金が発生する恐れがあります。この場合、緊急通報への発信はアプリに許可されません。悪意のあるアプリが確認なしで発信して料金が発生したり、携帯通信会社のコードをダイヤルして着信を別の番号に自動転送したりする恐れがあります。"</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS通話サービスへのアクセス"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"IMSサービスがユーザー操作なしで電話をかけることをアプリに許可します。"</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"デバイス情報と ID の読み取り"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"このコンテンツを仕事用アプリで開くことはできません"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"このコンテンツを個人用アプリと共有することはできません"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"このコンテンツを個人用アプリで開くことはできません"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"仕事用アプリ一時停止中"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"停止解除"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"仕事用アプリはありません"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"個人用アプリはありません"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"個人用 <xliff:g id="APP">%s</xliff:g> を開く"</string> @@ -2326,7 +2325,7 @@ <string name="concurrent_display_notification_power_save_title" msgid="1794569070730736281">"デュアル スクリーンを使用できません"</string> <string name="concurrent_display_notification_power_save_content" msgid="2198116070583851493">"バッテリー セーバーが ON のため、デュアル スクリーンを使用できません。この動作は設定で OFF にできます。"</string> <string name="device_state_notification_settings_button" msgid="691937505741872749">"設定に移動"</string> - <string name="device_state_notification_turn_off_button" msgid="6327161707661689232">"オフにする"</string> + <string name="device_state_notification_turn_off_button" msgid="6327161707661689232">"OFF にする"</string> <string name="keyboard_layout_notification_selected_title" msgid="1202560174252421219">"<xliff:g id="DEVICE_NAME">%s</xliff:g>の設定完了"</string> <string name="keyboard_layout_notification_one_selected_message" msgid="4314216053129257197">"キーボードのレイアウトは<xliff:g id="LAYOUT_1">%s</xliff:g>に設定されています。タップすると変更できます。"</string> <string name="keyboard_layout_notification_two_selected_message" msgid="1876349944065922950">"キーボードのレイアウトは<xliff:g id="LAYOUT_1">%1$s</xliff:g>、<xliff:g id="LAYOUT_2">%2$s</xliff:g>に設定されています。タップすると変更できます。"</string> diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml index b4cb0cf57fba..be8a07172ab5 100644 --- a/core/res/res/values-ka/strings.xml +++ b/core/res/res/values-ka/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android-ის სისტემა"</string> <string name="user_owner_label" msgid="8628726904184471211">"პერსონალურ პროფილზე გადართვა"</string> <string name="managed_profile_label" msgid="7316778766973512382">"სამსახურის პროფილზე გადართვა"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"<xliff:g id="APP_NAME">%1$s</xliff:g>-ის პირად ვერსიაზე გადასვლა"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"<xliff:g id="APP_NAME">%1$s</xliff:g>-ის სამსახურის ვერსიაზე გადასვლა"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"კონტაქტები"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"თქვენს კონტაქტებზე წვდომა"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"მდებარეობა"</string> diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml index be3778b1bbfa..954b06fbacc7 100644 --- a/core/res/res/values-kk/strings.xml +++ b/core/res/res/values-kk/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android жүйесі"</string> <string name="user_owner_label" msgid="8628726904184471211">"Жеке профильге ауысу"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Жұмыс профиліне ауысу"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Жеке профильге (<xliff:g id="APP_NAME">%1$s</xliff:g>) ауысу"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Жұмыс профиліне (<xliff:g id="APP_NAME">%1$s</xliff:g>) ауысу"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Контактілер"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"контактілерге кіру"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Локация"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Қолданбаға вибраторды басқаруға рұқсат береді."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Қолданбаға діріл күйін пайдалануға мүмкіндік береді."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"нөмірлерге тікелей телефон шалу"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Қолданбаға сіз қатыспай-ақ телефон нөміріне қоңырау шалу рұқсаты беріледі. Нәтижесінде болжанбаған ақы төлеуіңіз немесе күтпеген қоңырау алуыңыз мүмкін. Қолданбаға құтқару қызметінің нөміріне қоңырау шалуға рұқсат берілмейтінін ескеріңіз. Зиянды қолданбалар келісіміңізді алмай қоңырау шалып, шығынға батыруы мүмкін немесе оператор кодын теріп, кіріс қоңырауларды басқа нөмірге автоматты түрде бағыттауы мүмкін."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS қоңырау қызметін пайдалану"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Сіздің қатысуыңызсыз қоңыраулар соғу үшін қолданбаға IMS қызметін пайдалануға рұқсат етеді."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"телефон күйін оқу немесе анықтау"</string> @@ -624,7 +625,7 @@ <string name="biometric_error_generic" msgid="6784371929985434439">"Аутентификациялауда қате шықты."</string> <string name="screen_lock_app_setting_name" msgid="6054944352976789228">"Экран құлпын пайдалану"</string> <string name="screen_lock_dialog_default_subtitle" msgid="120359538048533695">"Жалғастыру үшін экран құлпын енгізіңіз."</string> - <string name="fingerprint_acquired_partial" msgid="4323789264604479684">"Сканерді қатты басыңыз."</string> + <string name="fingerprint_acquired_partial" msgid="4323789264604479684">"Сканерді қатты басыңыз"</string> <string name="fingerprint_acquired_insufficient" msgid="623888149088216458">"Саусақ ізін тану мүмкін емес. Қайталап көріңіз."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1770676120848224250">"Саусақ ізін оқу сканерін тазалап, әрекетті қайталаңыз."</string> <string name="fingerprint_acquired_imager_dirty_alt" msgid="9169582140486372897">"Сканерді тазалап, әрекетті қайталаңыз."</string> @@ -634,7 +635,7 @@ <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"Тым жарық."</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"Қуат түймесін басу әрекеті анықталды."</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"Дұрыстап қойып көріңіз."</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Саусағыңыздың қалпын аздап өзгертіп тұрыңыз."</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Саусағыңыздың орнын аздап өзгертіп тұрыңыз"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"Саусақ ізі танылмады."</string> @@ -682,17 +683,17 @@ <string name="face_acquired_too_far" msgid="2922278214231064859">"Телефонды жақынырақ ұстаңыз."</string> <string name="face_acquired_too_high" msgid="8278815780046368576">"Телефонды жоғарырақ ұстаңыз."</string> <string name="face_acquired_too_low" msgid="4075391872960840081">"Телефонды төменірек ұстаңыз."</string> - <string name="face_acquired_too_right" msgid="6245286514593540859">"Телефонды солға қарай ұстаңыз."</string> - <string name="face_acquired_too_left" msgid="9201762240918405486">"Телефонды оңға қарай ұстаңыз."</string> + <string name="face_acquired_too_right" msgid="6245286514593540859">"Телефонды солға қарай жылжытыңыз."</string> + <string name="face_acquired_too_left" msgid="9201762240918405486">"Телефонды оңға қарай жылжытыңыз."</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"Құрылғының камерасына тура қараңыз."</string> <string name="face_acquired_not_detected" msgid="1057966913397548150">"Бетіңіз көрінбей тұр. Телефонды көз деңгейінде ұстаңыз."</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"Қозғалыс тым көп. Телефонды қозғалтпаңыз."</string> <string name="face_acquired_recalibrate" msgid="8724013080976469746">"Қайта тіркеліңіз."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"Бет танылмады. Қайталап көріңіз."</string> <string name="face_acquired_too_similar" msgid="8882920552674125694">"Басыңыздың қалпын сәл өзгертіңіз."</string> - <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Телефонға барынша тура қараңыз."</string> - <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Телефонға барынша тура қараңыз."</string> - <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Телефонға барынша тура қараңыз."</string> + <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Телефонға тура қараңыз."</string> + <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Телефонға тура қараңыз."</string> + <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Телефонға тура қараңыз."</string> <string name="face_acquired_obscured" msgid="4917643294953326639">"Бетіңізді жауып тұрған нәрсені алып тастаңыз."</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Экранның жоғарғы жағын, сонымен қатар қара жолақты өшіріңіз."</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Бұл контентті жұмыс қолданбаларымен ашу мүмкін емес."</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Бұл контентті жеке қолданбалармен бөлісу мүмкін емес."</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Бұл контентті жеке қолданбалармен ашу мүмкін емес."</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Жұмыс қолданбалары кідіртілді."</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Қайта қосу"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Жұмыс қолданбалары жоқ."</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Жеке қолданбалар жоқ."</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Жеке <xliff:g id="APP">%s</xliff:g> қолданбасын ашу"</string> @@ -2285,10 +2284,10 @@ <string name="window_magnification_prompt_content" msgid="8159173903032344891">"Енді экранның бір бөлігін ұлғайтуға болады."</string> <string name="turn_on_magnification_settings_action" msgid="8521433346684847700">"Параметрлер бөлімінен қосу"</string> <string name="dismiss_action" msgid="1728820550388704784">"Қабылдамау"</string> - <string name="sensor_privacy_start_use_mic_notification_content_title" msgid="2420858361276370367">"Құрылғы микрофонының бөгеуін алыңыз"</string> - <string name="sensor_privacy_start_use_camera_notification_content_title" msgid="7287720213963466672">"Құрылғы камерасының бөгеуін алыңыз"</string> + <string name="sensor_privacy_start_use_mic_notification_content_title" msgid="2420858361276370367">"Құрылғы микрофонын блоктан шығарыңыз"</string> + <string name="sensor_privacy_start_use_camera_notification_content_title" msgid="7287720213963466672">"Құрылғы камерасын блоктан шығарыңыз"</string> <string name="sensor_privacy_start_use_notification_content_text" msgid="7595608891015777346">"<b><xliff:g id="APP">%s</xliff:g></b> және барлық қолданбалар мен қызметтерге арналған."</string> - <string name="sensor_privacy_start_use_dialog_turn_on_button" msgid="7089318886628390827">"Бөгеуді алу"</string> + <string name="sensor_privacy_start_use_dialog_turn_on_button" msgid="7089318886628390827">"Блоктан шығару"</string> <string name="sensor_privacy_notification_channel_label" msgid="936036783155261349">"Датчикке қатысты құпиялық"</string> <string name="splash_screen_view_icon_description" msgid="180638751260598187">"Қолданба белгішесі"</string> <string name="splash_screen_view_branding_description" msgid="7911129347402728216">"Қолданба брендін ілгері жылжыту кескіні"</string> @@ -2317,7 +2316,7 @@ <string name="permlab_startForegroundServicesFromBackground" msgid="6363004936218638382">"Экрандық режимдегі қызметтерді фоннан іске қосу"</string> <string name="permdesc_startForegroundServicesFromBackground" msgid="4071826571656001537">"Қосымша қолданбаға экрандық режимдегі қызметтерді фоннан іске қосуға рұқсат беріледі."</string> <string name="mic_access_on_toast" msgid="2666925317663845156">"Микрофон қолжетімді."</string> - <string name="mic_access_off_toast" msgid="8111040892954242437">"Микрофон бөгелген."</string> + <string name="mic_access_off_toast" msgid="8111040892954242437">"Микрофон блокталған."</string> <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Қос экран"</string> <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Қос экран функциясы қосулы"</string> <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> қолданбасы контентті көрсету үшін екі дисплейді де пайдаланады."</string> diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml index 2f9c2e7ed860..eb0c7f0371fa 100644 --- a/core/res/res/values-km/strings.xml +++ b/core/res/res/values-km/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"ប្រព័ន្ធ Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"ប្តូរទៅកម្រងព័ត៌មានផ្ទាល់ខ្លួន"</string> <string name="managed_profile_label" msgid="7316778766973512382">"ប្តូរទៅកម្រងព័ត៌មានការងារ"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"ប្ដូរទៅ <xliff:g id="APP_NAME">%1$s</xliff:g> ផ្ទាល់ខ្លួន"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"ប្ដូរទៅ <xliff:g id="APP_NAME">%1$s</xliff:g> ការងារ"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"ទំនាក់ទំនង"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"ចូលប្រើទំនាក់ទំនងរបស់អ្នក"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"ទីតាំង"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"ឲ្យកម្មវិធីគ្រប់គ្រងកម្មវិធីញ័រ។"</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"អនុញ្ញាតឱ្យកម្មវិធីចូលប្រើស្ថានភាពកម្មវិធីញ័រ។"</string> <string name="permlab_callPhone" msgid="1798582257194643320">"ហៅលេខទូរស័ព្ទដោយផ្ទាល់"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"អនុញ្ញាតឱ្យកម្មវិធីហៅទៅលេខទូរសព្ទដោយគ្មានការអន្តរាគមន៍របស់អ្នក។ ការធ្វើបែបនេះអាចបណ្ដាលឱ្យមានការហៅទូរសព្ទ ឬការគិតថ្លៃដែលមិនបានរំពឹងទុក។ សូមចំណាំថា ការធ្វើបែបនេះមិនអនុញ្ញាតឱ្យកម្មវិធីហៅទូរសព្ទទៅលេខសង្គ្រោះបន្ទាន់ទេ។ កម្មវិធីគ្រោះថ្នាក់អាចគិតប្រាក់ពីអ្នកដោយហៅទូរសព្ទដោយគ្មានការបញ្ជាក់របស់អ្នក ឬហៅទូរសព្ទទៅលេខកូដក្រុមហ៊ុនសេវាទូរសព្ទ ដែលបណ្តាលឱ្យការហៅចូលត្រូវបានបញ្ជូនបន្តដោយស្វ័យប្រវត្តិទៅលេខផ្សេងទៀត។"</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"ចូលដំណើរការសេវាកម្មការហៅតាម IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"អនុញ្ញាតឲ្យកម្មវិធីនេះប្រើសេវាកម្ម IMS ដើម្បីធ្វើការហៅដោយគ្មានការអន្តរាគមន៍ពីអ្នក។"</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"អានស្ថានភាព និងអត្តសញ្ញាណទូរស័ព្ទ"</string> @@ -680,10 +681,10 @@ <string name="face_acquired_too_dark" msgid="8539853432479385326">"មិនមានពន្លឺគ្រប់គ្រាន់"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"ដាក់ទូរសព្ទឱ្យឆ្ងាយជាងមុន"</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"ដាក់ទូរសព្ទឱ្យជិតជាងមុន"</string> - <string name="face_acquired_too_high" msgid="8278815780046368576">"ដាក់ទូរសព្ទឱ្យខ្ពស់ជាងមុន"</string> - <string name="face_acquired_too_low" msgid="4075391872960840081">"ដាក់ទូរសព្ទឱ្យទាបជាងមុន"</string> + <string name="face_acquired_too_high" msgid="8278815780046368576">"រំកិលទូរសព្ទឡើងលើ"</string> + <string name="face_acquired_too_low" msgid="4075391872960840081">"រំកិលទូរសព្ទចុះក្រោម"</string> <string name="face_acquired_too_right" msgid="6245286514593540859">"ដាក់ទូរសព្ទទៅខាងឆ្វេងអ្នក"</string> - <string name="face_acquired_too_left" msgid="9201762240918405486">"ដាក់ទូរសព្ទទៅខាងស្ដាំអ្នក"</string> + <string name="face_acquired_too_left" msgid="9201762240918405486">"រំកិលទូរសព្ទទៅខាងស្ដាំ"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"សូមមើលឱ្យចំឧបករណ៍របស់អ្នកជាងមុន។"</string> <string name="face_acquired_not_detected" msgid="1057966913397548150">"មើលមិនឃើញមុខរបស់អ្នកទេ។ កាន់ទូរសព្ទរបស់អ្នកដាក់ត្រឹមភ្នែក។"</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"មានចលនាខ្លាំងពេក។ សូមកាន់ទូរសព្ទឱ្យនឹង។"</string> @@ -701,7 +702,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"មិនអាចបង្កើតគំរូមុខរបស់អ្នកបានទេ។ សូមព្យាយាមម្ដងទៀត។"</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"បានរកឃើញវ៉ែនតាខ្មៅ។ មុខរបស់អ្នកត្រូវតែអាចមើលឃើញពេញលេញ។"</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"បានរកឃើញគ្រឿងពាក់លើមុខ។ មុខរបស់អ្នកត្រូវតែអាចមើលឃើញពេញលេញ។"</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"បានរកឃើញរបស់បាំងមុខ។ មុខអ្នកត្រូវតែអាចមើលឃើញពេញលេញ។"</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"មិនអាចផ្ទៀងផ្ទាត់មុខបានទេ។ មិនមានហាតវែរទេ។"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"ខ្លឹមសារនេះមិនអាចបើកតាមរយៈកម្មវិធីការងារបានទេ"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"ខ្លឹមសារនេះមិនអាចចែករំលែកតាមរយៈកម្មវិធីផ្ទាល់ខ្លួនបានទេ"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"ខ្លឹមសារនេះមិនអាចបើកតាមរយៈកម្មវិធីផ្ទាល់ខ្លួនបានទេ"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"កម្មវិធីការងារត្រូវបានផ្អាក"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"ឈប់ផ្អាក"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"គ្មានកម្មវិធីការងារទេ"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"គ្មានកម្មវិធីផ្ទាល់ខ្លួនទេ"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"បើក <xliff:g id="APP">%s</xliff:g> ផ្ទាល់ខ្លួន"</string> diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml index 7af2f5a63aac..5c41cfb7c65e 100644 --- a/core/res/res/values-kn/strings.xml +++ b/core/res/res/values-kn/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android ಸಿಸ್ಟಂ"</string> <string name="user_owner_label" msgid="8628726904184471211">"ವೈಯಕ್ತಿಕ ಪ್ರೊಫೈಲ್ಗೆ ಬದಲಾಯಿಸಿ"</string> <string name="managed_profile_label" msgid="7316778766973512382">"ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್ಗೆ ಬದಲಿಸಿ"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"ವೈಯಕ್ತಿಕ <xliff:g id="APP_NAME">%1$s</xliff:g> ಗೆ ಬದಲಿಸಿ"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"ಕೆಲಸದ <xliff:g id="APP_NAME">%1$s</xliff:g> ಗೆ ಬದಲಿಸಿ"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"ಸಂಪರ್ಕಗಳು"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ಪ್ರವೇಶಿಸಲು"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"ಸ್ಥಳ"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"ವೈಬ್ರೇಟರ್ ನಿಯಂತ್ರಿಸಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"ವೈಬ್ರೇಟರ್ ಸ್ಥಿತಿಯನ್ನು ಪ್ರವೇಶಿಸಲು ಆ್ಯಪ್ಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"ಫೋನ್ ಸಂಖ್ಯೆಗಳಿಗೆ ನೇರವಾಗಿ ಕರೆ ಮಾಡಿ"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"ನಿಮ್ಮ ಹಸ್ತಕ್ಷೇಪವಿಲ್ಲದೆಯೇ ಫೋನ್ ಸಂಖ್ಯೆಗಳಿಗೆ ಕರೆ ಮಾಡಲು ಆ್ಯಪ್ಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಇದು ಅನಿರೀಕ್ಷಿತ ಶುಲ್ಕಗಳು ಅಥವಾ ಕರೆಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು. ತುರ್ತು ಸಂಖ್ಯೆಗಳಿಗೆ ಕರೆ ಮಾಡಲು ಇದು ಆ್ಯಪ್ಗೆ ಅನುಮತಿಸುವುದಿಲ್ಲ ಎಂಬುದನ್ನು ಗಮನಿಸಿ. ದುರುದ್ದೇಶಪ್ರೇರಿತ ಆ್ಯಪ್ಗಳು ನಿಮ್ಮ ದೃಢೀಕರಣವಿಲ್ಲದೆಯೇ ಕರೆಗಳನ್ನು ಮಾಡುವ ಮೂಲಕ ಅಥವಾ ಒಳಬರುವ ಕರೆಗಳನ್ನು ಮತ್ತೊಂದು ಸಂಖ್ಯೆಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಫಾರ್ವರ್ಡ್ ಮಾಡಲು ಕಾರಣವಾಗುವ ವಾಹಕದ ಕೋಡ್ಗಳನ್ನು ಡಯಲ್ ಮಾಡುವ ಮೂಲಕ ನಿಮ್ಮ ಹಣ ವೆಚ್ಚವಾಗುವಂತೆ ಮಾಡಬಹುದು."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS ಕರೆ ಸೇವೆಯನ್ನು ಪ್ರವೇಶಿಸಿ"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"ನಿಮ್ಮ ಮಧ್ಯಸ್ಥಿಕೆ ಇಲ್ಲದೆಯೇ ಕರೆಗಳನ್ನು ಮಾಡಲು IMS ಸೇವೆಯನ್ನು ಬಳಸಲು ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"ಫೋನ್ ಸ್ಥಿತಿ ಮತ್ತು ಗುರುತಿಸುವಿಕೆಯನ್ನು ಓದಿ"</string> @@ -693,7 +694,7 @@ <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ನೇರವಾಗಿ ನೋಡಿ"</string> <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ನೇರವಾಗಿ ನೋಡಿ"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ನೇರವಾಗಿ ನೋಡಿ"</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"ನಿಮ್ಮ ಮುಖವನ್ನು ಮರೆಮಾಡುವ ಯಾವುದನ್ನಾದರೂ ತೆಗೆದುಹಾಕಿ."</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"ಮುಖವನ್ನು ಮರೆ ಮಾಡುವ ವಸ್ತುಗಳನ್ನು ತೆಗೆದುಹಾಕಿ."</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"ಬ್ಲ್ಯಾಕ್ ಬಾರ್ ಸೇರಿದಂತೆ ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ನ ಮೇಲ್ಭಾಗವನ್ನು ತೆರವುಗೊಳಿಸಿ"</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> @@ -701,7 +702,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"ಫೇಸ್ ಮಾಡೆಲ್ ರಚಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"ಕಪ್ಪು ಕನ್ನಡಕ ಪತ್ತೆಯಾಗಿದೆ. ನಿಮ್ಮ ಮುಖವು ಸಂಪೂರ್ಣವಾಗಿ ಗೋಚರಿಸಬೇಕು."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"ಮುಖವಾಡ ಪತ್ತೆಯಾಗಿದೆ. ನಿಮ್ಮ ಮುಖವು ಸಂಪೂರ್ಣವಾಗಿ ಗೋಚರಿಸಬೇಕು."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"ಮುಖವಾಡ ಪತ್ತೆಯಾಗಿದೆ. ಮುಖವು ಸಂಪೂರ್ಣವಾಗಿ ಗೋಚರಿಸಬೇಕು."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"ಮುಖ ದೃಢೀಕರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಹಾರ್ಡ್ವೇರ್ ಲಭ್ಯವಿಲ್ಲ."</string> @@ -1199,7 +1200,7 @@ <string name="whichSendToApplicationNamed" msgid="3385686512014670003">"%1$s ಬಳಸಿಕೊಂಡು ಕಳುಹಿಸಿ"</string> <string name="whichSendToApplicationLabel" msgid="3543240188816513303">"ಕಳುಹಿಸು"</string> <string name="whichHomeApplication" msgid="8276350727038396616">"ಮುಖಪುಟ ಅಪ್ಲಿಕೇಶನ್ ಆಯ್ಕೆಮಾಡಿ"</string> - <string name="whichHomeApplicationNamed" msgid="5855990024847433794">"ಮುಖಪುಟ ಎಂಬಂತೆ %1$s ಅನ್ನು ಬಳಸಿ"</string> + <string name="whichHomeApplicationNamed" msgid="5855990024847433794">"%1$s ಅನ್ನು ಹೋಮ್ ಆಗಿ ಬಳಸಿ"</string> <string name="whichHomeApplicationLabel" msgid="8907334282202933959">"ಚಿತ್ರ ಕ್ಯಾಪ್ಚರ್ ಮಾಡಿ"</string> <string name="whichImageCaptureApplication" msgid="2737413019463215284">"ಇದರ ಜೊತೆಗೆ ಚಿತ್ರ ಕ್ಯಾಪ್ಚರ್ ಮಾಡಿ"</string> <string name="whichImageCaptureApplicationNamed" msgid="8820702441847612202">"%1$s ಜೊತೆ ಚಿತ್ರ ಕ್ಯಾಪ್ಚರ್ ಮಾಡಿ"</string> @@ -1255,7 +1256,7 @@ <string name="android_upgrading_starting_apps" msgid="6206161195076057075">"ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ."</string> <string name="android_upgrading_complete" msgid="409800058018374746">"ಬೂಟ್ ಪೂರ್ಣಗೊಳಿಸಲಾಗುತ್ತಿದೆ."</string> <string name="fp_power_button_enrollment_message" msgid="5648173517663246140">"ನೀವು ಪವರ್ ಬಟನ್ ಒತ್ತಿದ್ದೀರಿ — ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಸ್ಕ್ರೀನ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.\n\nನಿಮ್ಮ ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ನು ಹೊಂದಿಸುವಾಗ ಲಘುವಾಗಿ ಟ್ಯಾಪ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ."</string> - <string name="fp_power_button_enrollment_title" msgid="6976841690455338563">"ಸೆಟಪ್ ಪೂರ್ಣಗೊಳಿಸಲು, ಸ್ಕ್ರೀನ್ ಆಫ್ ಮಾಡಿ"</string> + <string name="fp_power_button_enrollment_title" msgid="6976841690455338563">"ಸೆಟಪ್ ಅಂತ್ಯಗೊಳಿಸಲು, ಸ್ಕ್ರೀನ್ ಆಫ್ ಮಾಡಿ"</string> <string name="fp_power_button_enrollment_button_text" msgid="3199783266386029200">"ಆಫ್ ಮಾಡಿ"</string> <string name="fp_power_button_bp_title" msgid="5585506104526820067">"ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಪರಿಶೀಲನೆ ಮುಂದುವರಿಸುವುದೇ?"</string> <string name="fp_power_button_bp_message" msgid="2983163038168903393">"ನೀವು ಪವರ್ ಬಟನ್ ಒತ್ತಿದ್ದೀರಿ — ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಸ್ಕ್ರೀನ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.\n\nನಿಮ್ಮ ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲು ಲಘುವಾಗಿ ಟ್ಯಾಪ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ."</string> @@ -2022,7 +2023,7 @@ <string name="autofill_save_title_with_2types" msgid="3783270967447869241">"<xliff:g id="TYPE_0">%1$s</xliff:g> ಮತ್ತು <xliff:g id="TYPE_1">%2$s</xliff:g> ಅನ್ನು "<b>"<xliff:g id="LABEL">%3$s</xliff:g>"</b>" ನಲ್ಲಿ ಉಳಿಸುವುದೇ?"</string> <string name="autofill_save_title_with_3types" msgid="6598228952100102578">"<xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> ಮತ್ತು <xliff:g id="TYPE_2">%3$s</xliff:g> ಅನ್ನು "<b>"<xliff:g id="LABEL">%4$s</xliff:g>"</b>" ನಲ್ಲಿ ಉಳಿಸುವುದೇ?"</string> <string name="autofill_update_title" msgid="3630695947047069136"><b>"<xliff:g id="LABEL">%1$s</xliff:g>"</b>" ನಲ್ಲಿ ಅಪ್ಡೇಟ್ ಮಾಡುವುದೇ?"</string> - <string name="autofill_update_title_with_type" msgid="5264152633488495704">"<xliff:g id="TYPE">%1$s</xliff:g> ಅನ್ನು "<b>"<xliff:g id="LABEL">%2$s</xliff:g>"</b>" ನಲ್ಲಿ ಅಪ್ಡೇಟ್ ಮಾಡುವುದೇ?"</string> + <string name="autofill_update_title_with_type" msgid="5264152633488495704">"<xliff:g id="TYPE">%1$s</xliff:g> ಅನ್ನು "<b>"<xliff:g id="LABEL">%2$s</xliff:g>"</b>" ನಲ್ಲಿ ಅಪ್ಡೇಟ್ ಮಾಡಬೇಕೆ?"</string> <string name="autofill_update_title_with_2types" msgid="1797514386321086273">"<xliff:g id="TYPE_0">%1$s</xliff:g> ಮತ್ತು <xliff:g id="TYPE_1">%2$s</xliff:g> ಅನ್ನು "<b>"<xliff:g id="LABEL">%3$s</xliff:g>"</b>" ನಲ್ಲಿ ಅಪ್ಡೇಟ್ ಮಾಡುವುದೇ?"</string> <string name="autofill_update_title_with_3types" msgid="1312232153076212291">"ಈ ಮುಂದಿನ ಐಟಂಗಳನ್ನು "<b>"<xliff:g id="LABEL">%4$s</xliff:g>"</b>" ನಲ್ಲಿ ಅಪ್ಡೇಟ್ ಮಾಡುವುದೇ: <xliff:g id="TYPE_0">%1$s</xliff:g>, <xliff:g id="TYPE_1">%2$s</xliff:g> ಮತ್ತು <xliff:g id="TYPE_2">%3$s</xliff:g> ?"</string> <string name="autofill_save_yes" msgid="8035743017382012850">"ಉಳಿಸಿ"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್ಗಳ ಈ ವಿಷಯವನ್ನು ತೆರೆಯಲಾಗುವುದಿಲ್ಲ"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"ವೈಯಕ್ತಿಕ ಆ್ಯಪ್ಗಳ ಮೂಲಕ ಈ ವಿಷಯವನ್ನು ಹಂಚಿಕೊಳ್ಳಲಾಗುವುದಿಲ್ಲ"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"ವೈಯಕ್ತಿಕ ಆ್ಯಪ್ಗಳ ಮೂಲಕ ಈ ವಿಷಯವನ್ನು ತೆರೆಯಲಾಗುವುದಿಲ್ಲ"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್ಗಳನ್ನು ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"ವಿರಾಮವನ್ನು ರದ್ದುಗೊಳಿಸಿ"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"ಯಾವುದೇ ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್ಗಳಿಲ್ಲ"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"ಯಾವುದೇ ವೈಯಕ್ತಿಕ ಆ್ಯಪ್ಗಳಿಲ್ಲ"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"ವೈಯಕ್ತಿಕ <xliff:g id="APP">%s</xliff:g> ತೆರೆಯಿರಿ"</string> @@ -2292,7 +2291,7 @@ <string name="sensor_privacy_notification_channel_label" msgid="936036783155261349">"ಸೆನ್ಸರ್ ಗೌಪ್ಯತೆ"</string> <string name="splash_screen_view_icon_description" msgid="180638751260598187">"ಅಪ್ಲಿಕೇಶನ್ ಐಕಾನ್"</string> <string name="splash_screen_view_branding_description" msgid="7911129347402728216">"ಅಪ್ಲಿಕೇಶನ್ ಬ್ರ್ಯಾಂಡಿಂಗ್ ಚಿತ್ರ"</string> - <string name="view_and_control_notification_title" msgid="4300765399209912240">"ಪ್ರವೇಶ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ"</string> + <string name="view_and_control_notification_title" msgid="4300765399209912240">"ಆ್ಯಕ್ಸೆಸ್ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ"</string> <string name="view_and_control_notification_content" msgid="8003766498562604034">"<xliff:g id="SERVICE_NAME">%s</xliff:g> ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ ಅನ್ನು ವೀಕ್ಷಿಸಬಹುದು ಮತ್ತು ನಿಯಂತ್ರಿಸಬಹುದು. ಪರಿಶೀಲಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string> <string name="ui_translation_accessibility_translated_text" msgid="3197547218178944544">"<xliff:g id="MESSAGE">%1$s</xliff:g> ಅನ್ನು ಅನುವಾದಿಸಲಾಗಿದೆ."</string> <string name="ui_translation_accessibility_translation_finished" msgid="3057830947610088465">"<xliff:g id="FROM_LANGUAGE">%1$s</xliff:g> ಭಾಷೆಯಿಂದ <xliff:g id="TO_LANGUAGE">%2$s</xliff:g> ಭಾಷೆಗೆ ಸಂದೇಶವನ್ನು ಅನುವಾದಿಸಲಾಗಿದೆ."</string> @@ -2320,7 +2319,7 @@ <string name="mic_access_off_toast" msgid="8111040892954242437">"ಮೈಕ್ರೊಫೋನ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ"</string> <string name="concurrent_display_notification_name" msgid="1526911253558311131">"ಡ್ಯೂಯಲ್ ಸ್ಕ್ರೀನ್"</string> <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"ಡ್ಯೂಯಲ್ ಸ್ಕ್ರೀನ್ ಆನ್ ಆಗಿದೆ"</string> - <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"ವಿಷಯವನ್ನು ತೋರಿಸಲು <xliff:g id="APP_NAME">%1$s</xliff:g> ಎರಡೂ ಡಿಸ್ಪ್ಲೇಗಳನ್ನು ಬಳಸುತ್ತದೆ"</string> + <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"ಕಂಟೆಂಟ್ ಅನ್ನು ತೋರಿಸಲು <xliff:g id="APP_NAME">%1$s</xliff:g> ಎರಡೂ ಡಿಸ್ಪ್ಲೇಗಳನ್ನು ಬಳಸುತ್ತಿದೆ"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"ಸಾಧನವು ತುಂಬಾ ಬಿಸಿಯಾಗಿದೆ"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"ನಿಮ್ಮ ಫೋನ್ ತುಂಬಾ ಬಿಸಿಯಾಗುವುದರಿಂದ ಡ್ಯೂಯಲ್ ಸ್ಕ್ರೀನ್ ಲಭ್ಯವಿಲ್ಲ"</string> <string name="concurrent_display_notification_power_save_title" msgid="1794569070730736281">"Dual Screen ಲಭ್ಯವಿಲ್ಲ"</string> diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index 84ec310fb69b..5ddc55163738 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android 시스템"</string> <string name="user_owner_label" msgid="8628726904184471211">"개인 프로필로 전환"</string> <string name="managed_profile_label" msgid="7316778766973512382">"직장 프로필로 전환"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"개인 <xliff:g id="APP_NAME">%1$s</xliff:g> 앱으로 전환"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"직장 <xliff:g id="APP_NAME">%1$s</xliff:g> 앱으로 전환"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"연락처"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"연락처에 액세스"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"위치"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"앱이 진동을 제어할 수 있도록 허용합니다."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"앱이 진동 상태에 액세스하도록 허용합니다."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"전화번호 자동 연결"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"사용자의 조작 없이도 앱에서 전화번호로 전화를 걸 수 있도록 허용합니다. 이 권한을 사용하면 예상치 못한 요금이나 통화가 발생할 수 있습니다. 앱에서 비상 전화를 걸 수는 없습니다. 악성 앱에서 내 확인 없이 전화를 걸거나 수신 전화가 자동으로 다른 번호로 착신 전환되도록 이동통신사 코드를 입력하여 요금이 부과될 수 있습니다."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS 통화 서비스에 접근"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"앱이 IMS 서비스를 사용하여 자동으로 전화를 걸 수 있도록 허용합니다."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"휴대전화 상태 및 ID 읽기"</string> @@ -624,11 +625,11 @@ <string name="biometric_error_generic" msgid="6784371929985434439">"인증 오류"</string> <string name="screen_lock_app_setting_name" msgid="6054944352976789228">"화면 잠금 사용"</string> <string name="screen_lock_dialog_default_subtitle" msgid="120359538048533695">"계속하려면 화면 잠금용 사용자 인증 정보를 입력하세요"</string> - <string name="fingerprint_acquired_partial" msgid="4323789264604479684">"센서 위에 손가락을 좀 더 오래 올려놓으세요."</string> + <string name="fingerprint_acquired_partial" msgid="4323789264604479684">"센서 위에 손가락을 좀 더 오래 올려놓으세요"</string> <string name="fingerprint_acquired_insufficient" msgid="623888149088216458">"지문을 인식할 수 없습니다. 다시 시도해 주세요."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1770676120848224250">"지문 센서를 닦은 후 다시 시도해 보세요."</string> <string name="fingerprint_acquired_imager_dirty_alt" msgid="9169582140486372897">"센서를 닦은 후 다시 시도해 보세요."</string> - <string name="fingerprint_acquired_too_fast" msgid="1628459767349116104">"센서 위에 손가락을 좀 더 오래 올려놓으세요."</string> + <string name="fingerprint_acquired_too_fast" msgid="1628459767349116104">"센서 위에 손가락을 좀 더 오래 올려놓으세요"</string> <string name="fingerprint_acquired_too_slow" msgid="6683510291554497580">"손가락을 너무 느리게 움직였습니다. 다시 시도해 주세요."</string> <string name="fingerprint_acquired_already_enrolled" msgid="2285166003936206785">"다른 지문으로 시도"</string> <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"너무 밝음"</string> @@ -677,23 +678,23 @@ <string name="fingerprint_recalibrate_notification_content" msgid="8519935717822194943">"수리업체에 방문하세요."</string> <string name="face_acquired_insufficient" msgid="6889245852748492218">"얼굴 모델을 만들 수 없습니다. 다시 시도해 주세요."</string> <string name="face_acquired_too_bright" msgid="8070756048978079164">"너무 밝습니다. 조명 밝기를 조금 낮춰보세요."</string> - <string name="face_acquired_too_dark" msgid="8539853432479385326">"조명이 부족합니다."</string> + <string name="face_acquired_too_dark" msgid="8539853432479385326">"조명이 부족합니다"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"휴대전화를 얼굴에서 더 멀리 떨어뜨려 주세요."</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"휴대전화를 얼굴에 더 가까이 가져와 주세요."</string> - <string name="face_acquired_too_high" msgid="8278815780046368576">"휴대전화를 위로 이동하세요"</string> - <string name="face_acquired_too_low" msgid="4075391872960840081">"휴대전화를 아래로 이동하세요"</string> - <string name="face_acquired_too_right" msgid="6245286514593540859">"휴대전화를 왼쪽으로 이동하세요"</string> - <string name="face_acquired_too_left" msgid="9201762240918405486">"휴대전화를 오른쪽으로 이동하세요"</string> + <string name="face_acquired_too_high" msgid="8278815780046368576">"휴대전화를 위쪽으로 움직이세요"</string> + <string name="face_acquired_too_low" msgid="4075391872960840081">"휴대전화를 아래쪽으로 움직이세요"</string> + <string name="face_acquired_too_right" msgid="6245286514593540859">"휴대전화를 왼쪽으로 움직이세요"</string> + <string name="face_acquired_too_left" msgid="9201762240918405486">"휴대전화를 오른쪽으로 움직이세요"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"기기에서 더 똑바로 바라보세요."</string> <string name="face_acquired_not_detected" msgid="1057966913397548150">"얼굴이 보이지 않습니다. 눈높이에 맞춰 휴대전화를 들어 주세요."</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"너무 많이 움직였습니다. 휴대전화를 흔들리지 않게 잡으세요."</string> <string name="face_acquired_recalibrate" msgid="8724013080976469746">"얼굴을 다시 등록해 주세요."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"얼굴을 인식할 수 없습니다. 다시 시도해 주세요."</string> <string name="face_acquired_too_similar" msgid="8882920552674125694">"얼굴의 위치를 조금 변경해 주세요."</string> - <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"휴대전화를 좀 더\\n똑바로 바라봐 주세요."</string> - <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"휴대전화를 좀 더\\n똑바로 바라봐 주세요."</string> - <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"휴대전화를 좀 더\\n똑바로 바라봐 주세요."</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"얼굴이 가려지지 않도록 해 주세요."</string> + <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"휴대전화를 좀 더 정면으로 바라보세요"</string> + <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"휴대전화를 좀 더 정면으로 바라보세요"</string> + <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"휴대전화를 좀 더 정면으로 바라보세요"</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"얼굴이 가려지지 않도록 해 주세요"</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"검은색 바를 포함한 화면 상단을 청소하세요."</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> @@ -701,7 +702,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"얼굴 모델을 만들 수 없습니다. 다시 시도해 주세요."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"선글라스가 감지되었습니다. 전체 얼굴이 보여야 합니다."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"마스크가 감지되었습니다. 전체 얼굴이 보여야 합니다."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"마스크가 감지되었습니다. 얼굴 전체가 보여야 합니다"</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"얼굴을 확인할 수 없습니다. 하드웨어를 사용할 수 없습니다."</string> @@ -1368,7 +1369,7 @@ <string name="usb_power_notification_message" msgid="7284765627437897702">"연결된 기기를 충전합니다. 옵션을 더 보려면 탭하세요."</string> <string name="usb_unsupported_audio_accessory_title" msgid="2335775548086533065">"아날로그 오디오 액세서리가 감지됨"</string> <string name="usb_unsupported_audio_accessory_message" msgid="1300168007129796621">"연결된 기기가 이 휴대전화와 호환되지 않습니다. 자세히 알아보려면 탭하세요."</string> - <string name="adb_active_notification_title" msgid="408390247354560331">"USB 디버깅 연결됨."</string> + <string name="adb_active_notification_title" msgid="408390247354560331">"USB 디버깅 연결됨"</string> <string name="adb_active_notification_message" msgid="5617264033476778211">"USB 디버깅을 사용 중지하려면 탭하세요."</string> <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB 디버깅을 사용하지 않으려면 선택합니다."</string> <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"무선 디버깅 연결됨"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"이 콘텐츠는 직장 앱으로 열 수 없습니다."</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"이 콘텐츠는 개인 앱을 통해 공유할 수 없습니다."</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"이 콘텐츠는 개인 앱으로 열 수 없습니다."</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"직장 앱이 일시중지됨"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"일시중지 해제"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"직장 앱 없음"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"개인 앱 없음"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"개인 <xliff:g id="APP">%s</xliff:g> 열기"</string> diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml index 6207e5eb9c80..55b3723d6c0e 100644 --- a/core/res/res/values-ky/strings.xml +++ b/core/res/res/values-ky/strings.xml @@ -255,7 +255,7 @@ <string name="bugreport_option_interactive_title" msgid="7968287837902871289">"Интерактивдүү кабар"</string> <string name="bugreport_option_interactive_summary" msgid="8493795476325339542">"Ката жөнүндө кабардын абалын жана көйгөй тууралуу кошумча маалыматты көрсөтүү үчүн ушул функцияны колдонууну сунуштайбыз. Ката жөнүндө кабар жөнөтүлүп жатканда көп убакыт талап кылынбашы үчүн негизги бөлүмдөр гана көрүнөт."</string> <string name="bugreport_option_full_title" msgid="7681035745950045690">"Толук кабар берүү"</string> - <string name="bugreport_option_full_summary" msgid="1975130009258435885">"Түзмөгүңүз жооп бербей же өтө жай иштеп жатса, ошондой эле жөндөөлөрдүн бардык кабарлоо бөлүмдөрүн карап чыккыңыз келсе, ушул функцияны колдонуңуз. Баса, ката жөнүндө кошумча маалыматты көрсөтүп же скриншотторду тарта албайсыз."</string> + <string name="bugreport_option_full_summary" msgid="1975130009258435885">"Түзмөгүңүз жооп бербей же өтө жай иштеп жатса, ошондой эле параметрлердин бардык кабарлоо бөлүмдөрүн карап чыккыңыз келсе, ушул функцияны колдонуңуз. Баса, ката жөнүндө кошумча маалыматты көрсөтүп же скриншотторду тарта албайсыз."</string> <string name="bugreport_countdown" msgid="6418620521782120755">"{count,plural, =1{Мүчүлүштүк тууралуу кабар берүү үчүн # секунддан кийин скриншот тартылат.}other{Мүчүлүштүк тууралуу кабар берүү үчүн # секунддан кийин скриншот тартылат.}}"</string> <string name="bugreport_screenshot_success_toast" msgid="7986095104151473745">"Мүчүлүштүк тууралуу кабарлоо үчүн скриншот тартылды"</string> <string name="bugreport_screenshot_failure_toast" msgid="6736320861311294294">"Мүчүлүштүк тууралуу кабарлоо үчүн скриншот тартылган жок"</string> @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android системасы"</string> <string name="user_owner_label" msgid="8628726904184471211">"Жеке профилге которулуу"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Жумуш профилине которулуу"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Жеке <xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосуна которулуу"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Жумушка тиешелүү <xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосуна которулуу"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Байланыштар"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"байланыштарыңызды көрүүгө"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Жайгашкан жер"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Колдонмого дирилдегичти көзөмөлдөө мүмкүнчүлүгүн берет."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Колдонмого дирилдөө абалына кирүүгө уруксат берет."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"телефон номерлерине түз чалуу"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Колдонмого сиздин кийлигишүүңүзсүз телефон номерлерине чалуу мүмкүнчүлүгүн берет. Бул күтүлбөгөн төлөмдөргө же чалууларга алып келиши мүмкүн. Бул колдонмого кырсыктаганда жардамга келчү кызматтын номерине чалуу мүмкүнчүлүгүн бербейт. Зыянкеч колдонмолор сиздин ырастооңузсуз чалууларды аткарып, же байланыш операторлорунун коддорун терип чыгымдарга себепкер болушу мүмкүн. Бул кирүүчү чалууларды автоматтык түрдө башка номерге багыттайт."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS чалуу кызматына мүмкүнчүлүк алуу"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Колдонмого сизди катыштырбай туруп, IMS кызматынын жардамы менен, чалууларды жасоо мүмкүнчүлүгүн берет."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"телефондун абалын жана аныктыгын окуу"</string> @@ -634,7 +635,7 @@ <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"Өтө жарык"</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"Кубат баскычы басылганы аныкталды"</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"Тууралап көрүңүз"</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Манжаңыздын абалын ар жолкусунда бир аз өзгөртүп туруңуз"</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Манжаңыздын абалын улам өзгөртүп коюңуз"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"Манжа изи таанылган жок"</string> @@ -680,7 +681,7 @@ <string name="face_acquired_too_dark" msgid="8539853432479385326">"Жарык жетишсиз"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Телефонду алыстатыңыз"</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"Телефонду жакындатыңыз"</string> - <string name="face_acquired_too_high" msgid="8278815780046368576">"Телефонду жогору жылдырыңыз"</string> + <string name="face_acquired_too_high" msgid="8278815780046368576">"Телефонду өйдө жылдырыңыз"</string> <string name="face_acquired_too_low" msgid="4075391872960840081">"Телефонду ылдый жылдырыңыз"</string> <string name="face_acquired_too_right" msgid="6245286514593540859">"Телефонду солго жылдырыңыз"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"Телефонду оңго жылдырыңыз"</string> @@ -999,10 +1000,10 @@ <string name="lockscreen_failed_attempts_almost_glogin" product="tv" msgid="6399092175942158529">"Графикалык ачкычыңызды <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес чийдиңиз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> ийгиликсиз аракеттен кийин, Android TV түзмөгүңүздүн кулпусун Google аккаунтуңузга кирип ачышыңыз керек болот.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> секунддан кийин кайталап көрүңүз."</string> <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="5691623136957148335">"Графикалык ачкычты <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес тарттыңыз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> жолу туура эмес тартсаңыз, телефонуңуздун кулпусун Google\'га кирип ачууга туура келет.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> секундадан кийин дагы аракет кылып көрүңүз."</string> <string name="lockscreen_failed_attempts_almost_at_wipe" product="tablet" msgid="7914445759242151426">"Сиз планшетиңизди бөгөттөн чыгарууга <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес аракет кылдыңыз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> аракеттен кийин, планшет баштапкы абалына келтирилет жана бардык маалыматтар өчүрүлөт."</string> - <string name="lockscreen_failed_attempts_almost_at_wipe" product="tv" msgid="4275591249631864248">"Android TV түзмөгүңүздүн кулпусун <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес ачууга аракет жасадыңыз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> ийгиликсиз аракеттен кийин, Android TV түзмөгүңүз демейки жөндөөлөргө кайтарылып, бардык колдонуучу дайындары жоголот."</string> + <string name="lockscreen_failed_attempts_almost_at_wipe" product="tv" msgid="4275591249631864248">"Android TV түзмөгүңүздүн кулпусун <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес ачууга аракет жасадыңыз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> ийгиликсиз аракеттен кийин, Android TV түзмөгүңүз демейки параметрлерге кайтарылып, бардык колдонуучу дайындары жоголот."</string> <string name="lockscreen_failed_attempts_almost_at_wipe" product="default" msgid="1166532464798446579">"Сиз телефонуңузду бөгөттөн чыгарууга <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес аракет кылдыңыз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> аракеттен кийин, телефон баштапкы абалына келтирилет жана бардык маалыматтар өчүрүлөт."</string> <string name="lockscreen_failed_attempts_now_wiping" product="tablet" msgid="8682445539263683414">"Сиз планшетти бөгөттөн чыгарууга <xliff:g id="NUMBER">%d</xliff:g> жолу туура эмес аракет кылдыңыз. Планшет баштапкы абалына келтирилет."</string> - <string name="lockscreen_failed_attempts_now_wiping" product="tv" msgid="2205435033340091883">"Android TV түзмөгүңүздүн кулпусун <xliff:g id="NUMBER">%d</xliff:g> жолу туура эмес ачууга аракет жасадыңыз. Android TV түзмөгүңүз эми демейки жөндөөлөргө кайтарылат."</string> + <string name="lockscreen_failed_attempts_now_wiping" product="tv" msgid="2205435033340091883">"Android TV түзмөгүңүздүн кулпусун <xliff:g id="NUMBER">%d</xliff:g> жолу туура эмес ачууга аракет жасадыңыз. Android TV түзмөгүңүз эми демейки параметрлерге кайтарылат."</string> <string name="lockscreen_failed_attempts_now_wiping" product="default" msgid="2203704707679895487">"Сиз телефонду бөгөттөн чыгарууга <xliff:g id="NUMBER">%d</xliff:g> жолу туура эмес аракет кылдыңыз. Телефон баштапкы абалына келтирилет."</string> <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6807200118164539589">"<xliff:g id="NUMBER">%d</xliff:g> секунддан кийин кайталаңыз."</string> <string name="lockscreen_forgot_pattern_button_text" msgid="8362442730606839031">"Сүрөт үлгүсүн унутуп калдыңызбы?"</string> @@ -1375,7 +1376,7 @@ <string name="adbwifi_active_notification_message" msgid="930987922852867972">"Мүчүлүштүктөрдү зымсыз оңдоону өчүрүү үчүн таптап коюңуз"</string> <string name="adbwifi_active_notification_message" product="tv" msgid="8633421848366915478">"Мүчүлүштүктөрдү Wi-Fi аркылуу оңдоону өчүрүңүз."</string> <string name="test_harness_mode_notification_title" msgid="2282785860014142511">"Сыноо программасынын режими иштетилди"</string> - <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Сыноо программасынын режимин өчүрүү үчүн баштапкы жөндөөлөргө кайтарыңыз."</string> + <string name="test_harness_mode_notification_message" msgid="3039123743127958420">"Сыноо программасынын режимин өчүрүү үчүн баштапкы параметрлерге кайтарыңыз."</string> <string name="console_running_notification_title" msgid="6087888939261635904">"Сериялык консоль иштетилди"</string> <string name="console_running_notification_message" msgid="7892751888125174039">"Майнаптуулугуна таасири тиет. Аны өчүрүү үчүн операциялык тутумду жүктөгүчтү текшериңиз."</string> <string name="mte_override_notification_title" msgid="4731115381962792944">"Cынамык MTE иштетилди"</string> @@ -1670,10 +1671,10 @@ <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="3328686432962224215">"Сиз сырсөзүңүздү <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес тердиңиз. \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> секундадан кийин кайталаңыз."</string> <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="7357404233979139075">"Сиз бөгөттөн чыгаруу үлгүсүн <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес көрсөттүңүз. \n\n <xliff:g id="NUMBER_1">%2$d</xliff:g> секундадан кийин кайталаңыз."</string> <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="3479940221343361587">"Сиз планшетиңизди <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу ийгиликсиз бөгөттөн чыгаруу аракетин кылдыңыз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> ийгиликсиз аракеттен кийин, планшет баштапкы абалына кайтарылат жана бардык берилиштериңиз өчүрүлөт."</string> - <string name="kg_failed_attempts_almost_at_wipe" product="tv" msgid="9064457748587850217">"Android TV түзмөгүңүздүн кулпусун <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес ачууга аракет жасадыңыз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> ийгиликсиз аракеттен кийин, Android TV түзмөгүңүз демейки жөндөөлөргө кайтарылып, бардык колдонуучу дайындары жоголот."</string> + <string name="kg_failed_attempts_almost_at_wipe" product="tv" msgid="9064457748587850217">"Android TV түзмөгүңүздүн кулпусун <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес ачууга аракет жасадыңыз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> ийгиликсиз аракеттен кийин, Android TV түзмөгүңүз демейки параметрлерге кайтарылып, бардык колдонуучу дайындары жоголот."</string> <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="5955398963754432548">"Сиз телефонуңузду <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу ийгиликсиз бөгөттөн чыгаруу аракетин кылдыңыз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> ийгиликсиз аракеттен кийин, телефон баштапкы абалына кайтарылат жана бардык берилиштериңиз өчүрүлөт."</string> <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="2299099385175083308">"Сиз планшетиңизди <xliff:g id="NUMBER">%d</xliff:g> жолу ийгиликсиз бөгөттөн чыгаруу аракетин кылдыңыз. Планшет баштапкы абалына кайтарылат."</string> - <string name="kg_failed_attempts_now_wiping" product="tv" msgid="5045460916106267585">"Android TV түзмөгүңүздүн кулпусун <xliff:g id="NUMBER">%d</xliff:g> жолу туура эмес ачууга аракет жасадыңыз. Android TV түзмөгүңүз эми демейки жөндөөлөргө кайтарылат."</string> + <string name="kg_failed_attempts_now_wiping" product="tv" msgid="5045460916106267585">"Android TV түзмөгүңүздүн кулпусун <xliff:g id="NUMBER">%d</xliff:g> жолу туура эмес ачууга аракет жасадыңыз. Android TV түзмөгүңүз эми демейки параметрлерге кайтарылат."</string> <string name="kg_failed_attempts_now_wiping" product="default" msgid="5043730590446071189">"Сиз телефонуңузду <xliff:g id="NUMBER">%d</xliff:g> жолу ийгиликсиз бөгөттөн чыгаруу аракетин кылдыңыз. Телефон баштапкы абалына кайтарылат."</string> <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="7086799295109717623">"Графикалык ачкычты <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес көрсөттүңүз. <xliff:g id="NUMBER_1">%2$d</xliff:g> жолу туура эмес көрсөтүлгөндөн кийин, планшетиңиздин кулпусун ачуу үчүн Google аккаунтуңузга кирүүгө туура келет.\n\n<xliff:g id="NUMBER_2">%3$d</xliff:g> секундадан кийин кайталап көрсөңүз болот."</string> <string name="kg_failed_attempts_almost_at_login" product="tv" msgid="4670840383567106114">"Графикалык ачкычыңызды <xliff:g id="NUMBER_0">%1$d</xliff:g> жолу туура эмес чийдиңиз. Дагы <xliff:g id="NUMBER_1">%2$d</xliff:g> ийгиликсиз аракеттен кийин, Android TV түзмөгүңүздүн кулпусун электрондук почта аккаунтуңуз менен ачышыңыз керек болот.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> секунддан кийин кайталап көрүңүз."</string> @@ -1713,7 +1714,7 @@ <string name="disable_accessibility_shortcut" msgid="5806091378745232383">"Кыска жолду өчүрүү"</string> <string name="leave_accessibility_shortcut_on" msgid="6543362062336990814">"Кыска жолду колдонуу"</string> <string name="color_inversion_feature_name" msgid="2672824491933264951">"Түстөрдү инверсиялоо"</string> - <string name="color_correction_feature_name" msgid="7975133554160979214">"Түсүн тууралоо"</string> + <string name="color_correction_feature_name" msgid="7975133554160979214">"Түстөрдү тууралоо"</string> <string name="one_handed_mode_feature_name" msgid="2334330034828094891">"Бир кол режими"</string> <string name="reduce_bright_colors_feature_name" msgid="3222994553174604132">"Дагы караңгы"</string> <string name="hearing_aids_feature_name" msgid="1125892105105852542">"Угуу түзмөктөрү"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Бул мазмунду жумуш колдонмолору менен ачуу мүмкүн эмес"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Бул мазмунду жеке колдонмолор менен бөлүшүү мүмкүн эмес"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Бул мазмунду жеке колдонмолор менен ачуу мүмкүн эмес"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Жумуш колдонмолору тындырылды"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Иштетүү"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Жумуш колдонмолору жок"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Жеке колдонмолор жок"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Жеке <xliff:g id="APP">%s</xliff:g> колдонмосун ачуу"</string> diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml index 80e6009627af..d727b409da6a 100644 --- a/core/res/res/values-lo/strings.xml +++ b/core/res/res/values-lo/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"ລະບົບ Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"ສະຫຼັບໄປໂປຣໄຟລ໌ສ່ວນຕົວ"</string> <string name="managed_profile_label" msgid="7316778766973512382">"ສະຫຼັບໄປໃຊ້ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"ປ່ຽນໄປໃຊ້ໂປຣໄຟລ໌ສ່ວນຕົວໃນ <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"ປ່ຽນໄປໃຊ້ໂປຣໄຟລ໌ວຽກໃນ <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"ລາຍຊື່ຜູ້ຕິດຕໍ່"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"ເຂົ້າຫາລາຍຊື່ຂອງທ່ານ"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"ສະຖານທີ່"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"ອະນຸຍາດໃຫ້ແອັບຯຄວບຄຸມໂຕສັ່ນ."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"ອະນຸຍາດໃຫ້ແອັບເຂົ້າເຖິງສະຖານະການສັ່ນໄດ້."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"ໂທຫາເບີໂທລະສັບໂດຍກົງ"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"ອະນຸຍາດໃຫ້ແອັບໂທເຂົ້າເບີໂທລະສັບໂດຍບໍ່ຕ້ອງໃຫ້ທ່ານຈັດການ. ເຊິ່ງອາດເຮັດໃຫ້ມີການຮຽກເກັບເງິນ ຫຼື ການໂທທີ່ບໍ່ຄາດຄິດ. ກະລຸນາຮັບຊາບວ່າການດຳເນີນການນີ້ບໍ່ໄດ້ອະນຸຍາດໃຫ້ແອັບໂທຫາເບີໂທສຸກເສີນ. ແອັບທີ່ເປັນອັນຕະລາຍອາດເຮັດໃຫ້ທ່ານຕ້ອງເສຍຄ່າໃຊ້ຈ່າຍດ້ວຍການໂທໂດຍບໍ່ຂໍການຢືນຢັນຈາກທ່ານ ຫຼື ກົດລະຫັດຜູ້ໃຫ້ບໍລິການເຊິ່ງເຮັດໃຫ້ສາຍໂທເຂົ້າຖືກສົ່ງຕໍ່ໄປຫາເບີອື່ນໂດຍອັດຕະໂນມັດ."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"ເຂົ້າຫາການບໍລິການໂທ IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"ອະນຸຍາດໃຫ້ແອັບໃຊ້ການບໍລິການ IMS ເພື່ອໂທໂດຍບໍ່ມີການຊ່ວຍເຫຼືອຂອງທ່ານ."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"ອ່ານສະຖານະ ແລະຂໍ້ມູນລະບຸໂຕຕົນຂອງໂທລະສັບ"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"ເນື້ອຫານີ້ບໍ່ສາມາດຖືກເປີດໄດ້ດ້ວຍແອັບບ່ອນເຮັດວຽກ"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"ເນື້ອຫານີ້ບໍ່ສາມາດຖືກແບ່ງປັນກັບແອັບສ່ວນຕົວໄດ້"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"ເນື້ອຫານີ້ບໍ່ສາມາດຖືກເປີດໄດ້ດ້ວຍແອັບສ່ວນຕົວ"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"ຢຸດແອັບບ່ອນເຮັດວຽກໄວ້ຊົ່ວຄາວແລ້ວ"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"ຍົກເລີກການຢຸດຊົ່ວຄາວ"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"ບໍ່ມີແອັບບ່ອນເຮັດວຽກ"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"ບໍ່ມີແອັບສ່ວນຕົວ"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"ເປີດ <xliff:g id="APP">%s</xliff:g> ແບບສ່ວນຕົວ"</string> diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml index 864cdc6862e2..ea2d5ac5da82 100644 --- a/core/res/res/values-lt/strings.xml +++ b/core/res/res/values-lt/strings.xml @@ -300,6 +300,8 @@ <string name="android_system_label" msgid="5974767339591067210">"„Android“ sistema"</string> <string name="user_owner_label" msgid="8628726904184471211">"Perjungti į asmeninį profilį"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Perjungti į darbo profilį"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Perjungti į asmeninę programą „<xliff:g id="APP_NAME">%1$s</xliff:g>“"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Perjungti į darbo programą „<xliff:g id="APP_NAME">%1$s</xliff:g>“"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontaktai"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"pasiekti kontaktus"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Vietovė"</string> @@ -505,8 +507,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Leidžiama programai valdyti vibravimą."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Programai leidžiama pasiekti vibratoriaus būseną."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"skambinti tiesiogiai telefono numeriais"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Leidžiama programai skambinti telefonų numeriais be jūsų įsikišimo. Gali būti taikomi nenumatyti mokesčiai ar gaunami nenumatyti skambučiai. Atminkite, kad programai neleidžiama skambinti pagalbos numeriais. Naudojant kenkėjiškas programas gali būti taikomi mokesčiai, skambinant be jūsų patvirtinimo arba renkant operatorių kodus, kuriuos taikant gaunamieji skambučiai automatiškai peradresuojami kitu numeriu."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"pasiekti IMS skambučių paslaugą"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Programai leidžiama naudoti IMS paslaugą, kad būtų galima atlikti skambučius be jūsų įsikišimo."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"skaityti telefono būseną ir tapatybę"</string> @@ -626,7 +627,7 @@ <string name="biometric_error_generic" msgid="6784371929985434439">"Autentifikuojant įvyko klaida"</string> <string name="screen_lock_app_setting_name" msgid="6054944352976789228">"Naudoti ekrano užraktą"</string> <string name="screen_lock_dialog_default_subtitle" msgid="120359538048533695">"Jei norite tęsti, įveskite ekrano užraktą"</string> - <string name="fingerprint_acquired_partial" msgid="4323789264604479684">"Tvirtai paspauskite jutiklį"</string> + <string name="fingerprint_acquired_partial" msgid="4323789264604479684">"Stipriai paspauskite jutiklį"</string> <string name="fingerprint_acquired_insufficient" msgid="623888149088216458">"Nepavyko atpažinti kontrolinio kodo. Bandykite dar kartą."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1770676120848224250">"Nuvalykite kontrolinio kodo jutiklį ir bandykite dar kartą"</string> <string name="fingerprint_acquired_imager_dirty_alt" msgid="9169582140486372897">"Nuvalykite jutiklį ir bandykite dar kartą"</string> @@ -646,7 +647,7 @@ <string name="face_authenticated_confirmation_required" msgid="6872632732508013755">"Veidas autentifikuotas, paspauskite patvirtinimo mygtuką"</string> <string name="fingerprint_error_hw_not_available" msgid="4571700896929561202">"Piršto antspaudo aparatinė įranga nepasiekiama."</string> <string name="fingerprint_error_no_space" msgid="7285481581905967580">"Nepavyko nustatyti kontrolinio kodo"</string> - <string name="fingerprint_error_timeout" msgid="7361192266621252164">"Baigėsi kontrolinio kodo sąrankos skirtasis laikas. Bandykite dar kartą."</string> + <string name="fingerprint_error_timeout" msgid="7361192266621252164">"Baigėsi piršto atspaudo sąrankos skirtasis laikas. Bandykite dar kartą."</string> <string name="fingerprint_error_canceled" msgid="540026881380070750">"Piršto antspaudo operacija atšaukta."</string> <string name="fingerprint_error_user_canceled" msgid="7685676229281231614">"Piršto antspaudo operaciją atšaukė naudotojas."</string> <string name="fingerprint_error_lockout" msgid="6626753679019351368">"Per daug bandymų. Naudokite ekrano užraktą."</string> @@ -679,7 +680,7 @@ <string name="fingerprint_recalibrate_notification_content" msgid="8519935717822194943">"Apsilankykite pas taisymo paslaugos teikėją."</string> <string name="face_acquired_insufficient" msgid="6889245852748492218">"Nepavyko sukurti veido modelio. Band. dar kartą."</string> <string name="face_acquired_too_bright" msgid="8070756048978079164">"Per šviesu. Išbandykite mažesnį apšvietimą."</string> - <string name="face_acquired_too_dark" msgid="8539853432479385326">"Nepakanka apšvietimo"</string> + <string name="face_acquired_too_dark" msgid="8539853432479385326">"Per tamsu"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Laikykite telefoną toliau"</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"Laikykite telefoną arčiau"</string> <string name="face_acquired_too_high" msgid="8278815780046368576">"Laikykite telefoną aukščiau"</string> @@ -2161,10 +2162,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Šio turinio negalima atidaryti naudojant darbo programas"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Šio turinio negalima bendrinti su asmeninėmis programomis"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Šio turinio negalima atidaryti naudojant asmenines programas"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Darbo programos pristabdytos"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Atšaukti pristabdymą"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Nėra darbo programų"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Nėra asmeninių programų"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Asmeninės programos „<xliff:g id="APP">%s</xliff:g>“ atidarymas"</string> diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml index f293a2f089c6..dd84e8a95a66 100644 --- a/core/res/res/values-lv/strings.xml +++ b/core/res/res/values-lv/strings.xml @@ -299,6 +299,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android sistēma"</string> <string name="user_owner_label" msgid="8628726904184471211">"Pārslēgties uz personisko profilu"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Pārslēgties uz darba profilu"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Pārslēgties uz personīgo profilu lietotnē <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Pārslēgties uz darba profilu lietotnē <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontaktpersonas"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"piekļūt jūsu kontaktpersonu datiem"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Atrašanās vieta"</string> @@ -504,8 +506,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Ļauj lietotnei kontrolēt vibrosignālu."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Ļauj lietotnei piekļūt vibrosignāla statusam."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"tieši zvanīt uz tālruņa numuriem"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Ļauj lietotnei zvanīt uz tālruņa numuriem bez jūsu iejaukšanās. Var rasties neparedzētas izmaksas vai zvani. Ņemiet vērā, ka lietotnei tādējādi netiek atļauts zvanīt uz ārkārtas numuriem. Ļaunprātīgas lietotnes var radīt jums izmaksas, veicot zvanus bez jūsu apstiprinājuma, vai sastādīt mobilo sakaru operatoru kodus, kuru dēļ ienākošie zvani tiek automātiski pāradresēti uz citu numuru."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"piekļūt tūlītējās ziņojumapmaiņas pakalpojumam, lai veiktu zvanus"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Ļauj lietotnei izmantot tūlītējās ziņojumapmaiņas pakalpojumu, lai veiktu zvanus bez jūsu ziņas."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"lasīt tālruņa statusu un identitāti"</string> @@ -2160,10 +2161,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Šo saturu nevar atvērt darba lietotnēs"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Šo saturu nevar kopīgot ar personīgajām lietotnēm"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Šo saturu nevar atvērt personīgajās lietotnēs"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Darba lietotnes ir apturētas."</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Aktivizēt"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Nav darba lietotņu"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Nav personīgu lietotņu"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Lietotnes <xliff:g id="APP">%s</xliff:g> atvēršana personīgajā profilā"</string> diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml index 0a0ed8a901c8..d570cfc361f3 100644 --- a/core/res/res/values-mk/strings.xml +++ b/core/res/res/values-mk/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Систем Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Префрли на личен профил"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Префрли се на работен профил"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Префрлете се на личната апликација <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Префрлете се на работната апликација <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Контакти"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"пристапува до контактите"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Локација"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Дозволува апликацијата да ги контролира вибрациите."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Ѝ дозволува на апликацијата да пристапи до состојбата на вибрации."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"директно избирај телефонски броеви"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Дозволува апликацијата да повика кој било телефонски број без ваша интервенција. Поради тоа може да дојде до неочекувани плаќања или повици. Имајте на ум дека ова не дозволува апликацијата да повикува броеви за итни случаи. Злонамерните апликации може да ве чинат пари со упатување повици без ваша потврда или бирање шифри на оператор што предизвикуваат дојдовните повици автоматски да се проследуваат до друг број."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"пристапи до услугата за повици IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Дозволува апликацијата да ја користи услугата IMS за повици без ваша интервенција."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"прочитај ги статусот и идентитетот на телефонот"</string> @@ -634,7 +635,7 @@ <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"Премногу светло"</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"Откриено е притискање на копчето за вклучување"</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"Пробајте да го приспособите прстот"</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Менувајте ја положбата на прстот по малку секој пат"</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Менувајте ја положбата на прстот секојпат по малку"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"Отпечатокот не е препознаен"</string> @@ -680,8 +681,8 @@ <string name="face_acquired_too_dark" msgid="8539853432479385326">"Нема доволно светлина"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Оддалечете го телефонот"</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"Доближете го телефонот"</string> - <string name="face_acquired_too_high" msgid="8278815780046368576">"Кренете го телефонот погоре"</string> - <string name="face_acquired_too_low" msgid="4075391872960840081">"Спуштете го телефонот подолу"</string> + <string name="face_acquired_too_high" msgid="8278815780046368576">"Поткренете го телефонот"</string> + <string name="face_acquired_too_low" msgid="4075391872960840081">"Снижете го телефонот"</string> <string name="face_acquired_too_right" msgid="6245286514593540859">"Поместете го телефонот налево"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"Поместете го телефонот надесно"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"Погледнете подиректно во уредот."</string> @@ -693,7 +694,7 @@ <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Гледајте подиректно во телефонот"</string> <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Гледајте подиректно во телефонот"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Гледајте подиректно во телефонот"</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"Отстранете ги работите што ви го покриваат лицето."</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"Отстранете ги работите што ви го покриваат ликот."</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Исчистете го врвот на екранот, вклучувајќи ја црната лента"</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> @@ -701,7 +702,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Не може да создаде модел на лик. Обидете се пак."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Носите темни очила. Лицето мора да ви се гледа целосно."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Лицето е покриено. Лицето мора да ви се гледа целосно."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Ликот е покриен. Ликот мора да ви се гледа целосно."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Ликот не може да се потврди. Хардвер - недостапен."</string> @@ -1555,7 +1556,7 @@ <string name="date_picker_prev_month_button" msgid="3418694374017868369">"Претходниот месец"</string> <string name="date_picker_next_month_button" msgid="4858207337779144840">"Следниот месец"</string> <string name="keyboardview_keycode_alt" msgid="8997420058584292385">"Копче „Alt“"</string> - <string name="keyboardview_keycode_cancel" msgid="2134624484115716975">"Копче „Откажи“"</string> + <string name="keyboardview_keycode_cancel" msgid="2134624484115716975">"Откажи"</string> <string name="keyboardview_keycode_delete" msgid="2661117313730098650">"Копче „Избриши“"</string> <string name="keyboardview_keycode_done" msgid="2524518019001653851">"Копче „Готово“"</string> <string name="keyboardview_keycode_mode_change" msgid="2743735349997999020">"Копче „Промени режим“"</string> @@ -1696,12 +1697,12 @@ <string name="accessibility_shortcut_off" msgid="3651336255403648739">"Не вклучувај"</string> <string name="accessibility_shortcut_menu_item_status_on" msgid="6608392117189732543">"ВКЛУЧЕНО"</string> <string name="accessibility_shortcut_menu_item_status_off" msgid="5531598275559472393">"ИСКЛУЧЕНО"</string> - <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Дали дозволувате <xliff:g id="SERVICE">%1$s</xliff:g> да има целосна контрола врз вашиот уред?"</string> + <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Да се дозволи <xliff:g id="SERVICE">%1$s</xliff:g> да има целосна контрола врз вашиот уред?"</string> <string name="accessibility_service_warning_description" msgid="291674995220940133">"Целосната контрола е соодветна за апликации што ви помагаат со потребите за пристапност, но не и за повеќето апликации."</string> - <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Приказ и контрола на екранот"</string> + <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Преглед и контрола на екранот"</string> <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Може да ги чита сите содржини на екранот и да прикажува содржини врз другите апликации."</string> <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Преглед и вршење дејства"</string> - <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Може да ја следи вашата интеракција со апликациите или хардверскиот сензор и да врши интеракција со апликациите во ваше име."</string> + <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Може да ја следи вашата интеракција со апликациите или со хардверските сензори и да врши интеракција со апликациите во ваше име."</string> <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Дозволи"</string> <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Одбиј"</string> <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Допрете на функција за да почнете да ја користите:"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Овие содржини не може да се отвораат со работни апликации"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Овие содржини не може да се споделуваат со лични апликации"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Овие содржини не може да се отвораат со лични апликации"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Работните апликации се паузирани"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Прекини ја паузата"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Нема работни апликации"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Нема лични апликации"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Отворање лична <xliff:g id="APP">%s</xliff:g>"</string> @@ -2306,7 +2305,7 @@ <string name="vdm_camera_access_denied" product="tablet" msgid="6895968310395249076">"Не може да се пристапи до камерата на вашиот таблет од <xliff:g id="DEVICE">%1$s</xliff:g>"</string> <string name="vdm_secure_window" msgid="161700398158812314">"До ова не може да се пристапи при стриминг. Наместо тоа, пробајте на вашиот телефон."</string> <string name="vdm_pip_blocked" msgid="4036107522497281397">"Не може да се прикажува слика во слика при стримување"</string> - <string name="system_locale_title" msgid="711882686834677268">"Стандардно за системот"</string> + <string name="system_locale_title" msgid="711882686834677268">"Стандарден за системот"</string> <string name="default_card_name" msgid="9198284935962911468">"КАРТИЧКА <xliff:g id="CARDNUMBER">%d</xliff:g>"</string> <string name="permlab_companionProfileWatch" msgid="2457738382085872542">"Дозвола за профилот на придружен часовник за управување со часовници"</string> <string name="permdesc_companionProfileWatch" msgid="5655698581110449397">"Дозволува придружна апликација да управува со часовници."</string> diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml index b6dcf69d5540..dcc45f8b532f 100644 --- a/core/res/res/values-ml/strings.xml +++ b/core/res/res/values-ml/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android സിസ്റ്റം"</string> <string name="user_owner_label" msgid="8628726904184471211">"വ്യക്തിഗത പ്രൊഫൈലിലേക്ക് മാറുക"</string> <string name="managed_profile_label" msgid="7316778766973512382">"ഔദ്യോഗിക പ്രൊഫൈലിലേക്ക് മാറുക"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"വ്യക്തിപരമായ ആവശ്യത്തിനുള്ള <xliff:g id="APP_NAME">%1$s</xliff:g>-ലേക്ക് മാറുക"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"ഔദ്യോഗിക ആവശ്യത്തിനുള്ള <xliff:g id="APP_NAME">%1$s</xliff:g>-ലേക്ക് മാറുക"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"കോൺടാക്റ്റുകൾ"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ ആക്സസ്സ് ചെയ്യുക"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"ലൊക്കേഷൻ"</string> @@ -623,17 +625,17 @@ <string name="biometric_error_generic" msgid="6784371929985434439">"പിശക് പരിശോധിച്ചുറപ്പിക്കുന്നു"</string> <string name="screen_lock_app_setting_name" msgid="6054944352976789228">"സ്ക്രീൻ ലോക്ക് ഉപയോഗിക്കുക"</string> <string name="screen_lock_dialog_default_subtitle" msgid="120359538048533695">"തുടരാൻ നിങ്ങളുടെ സ്ക്രീൻ ലോക്ക് നൽകുക"</string> - <string name="fingerprint_acquired_partial" msgid="4323789264604479684">"സെൻസറിന് മുകളിൽ ശക്തിയായി അമർത്തുക"</string> + <string name="fingerprint_acquired_partial" msgid="4323789264604479684">"സെൻസറിൽ നന്നായി അമർത്തുക"</string> <string name="fingerprint_acquired_insufficient" msgid="623888149088216458">"ഫിംഗർപ്രിന്റ് തിരിച്ചറിയാനാകുന്നില്ല. വീണ്ടും ശ്രമിക്കുക."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1770676120848224250">"ഫിംഗർപ്രിന്റ് സെൻസർ വൃത്തിയാക്കിയ ശേഷം വീണ്ടും ശ്രമിക്കുക"</string> <string name="fingerprint_acquired_imager_dirty_alt" msgid="9169582140486372897">"സെൻസർ വൃത്തിയാക്കിയ ശേഷം വീണ്ടും ശ്രമിക്കുക"</string> - <string name="fingerprint_acquired_too_fast" msgid="1628459767349116104">"സെൻസറിന് മുകളിൽ ശക്തിയായി അമർത്തുക"</string> + <string name="fingerprint_acquired_too_fast" msgid="1628459767349116104">"സെൻസറിൽ നന്നായി അമർത്തുക"</string> <string name="fingerprint_acquired_too_slow" msgid="6683510291554497580">"വിരൽ വളരെ പതുക്കെ നീക്കി. വീണ്ടും ശ്രമിക്കുക."</string> <string name="fingerprint_acquired_already_enrolled" msgid="2285166003936206785">"മറ്റൊരു ഫിംഗർപ്രിന്റ് ഉപയോഗിച്ച് നോക്കുക"</string> <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"തെളിച്ചം വളരെയധികമാണ്"</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"പവർ ബട്ടൺ അമർത്തിയത് തിരിച്ചറിഞ്ഞു"</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"അൽപ്പം നീക്കി നോക്കൂ"</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"ഓരോ തവണയും നിങ്ങളുടെ വിരലിന്റെ സ്ഥാനം ചെറുതായി മാറ്റുക"</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"ഓരോ തവണയും വിരലിന്റെ സ്ഥാനം ചെറുതായി മാറ്റുക"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"ഫിംഗർപ്രിന്റ് തിരിച്ചറിഞ്ഞില്ല"</string> @@ -684,7 +686,7 @@ <string name="face_acquired_too_right" msgid="6245286514593540859">"ഫോൺ നിങ്ങളുടെ ഇടതുവശത്തേക്ക് നീക്കുക"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"ഫോൺ നിങ്ങളുടെ വലതുവശത്തേക്ക് നീക്കുക"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"നിങ്ങളുടെ ഉപകരണത്തിന് നേരെ കൂടുതൽ നന്നായി നോക്കുക."</string> - <string name="face_acquired_not_detected" msgid="1057966913397548150">"മുഖം കാണാനാകുന്നില്ല. ഫോൺ കണ്ണിന് നേരെ പിടിക്കുക."</string> + <string name="face_acquired_not_detected" msgid="1057966913397548150">"മുഖം കാണുന്നില്ല. ഫോൺ കണ്ണിന് നേരെ പിടിക്കുക."</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"വളരെയധികം ചലനം. ഫോൺ അനക്കാതെ നേരെ പിടിക്കുക."</string> <string name="face_acquired_recalibrate" msgid="8724013080976469746">"നിങ്ങളുടെ മുഖം വീണ്ടും എൻറോൾ ചെയ്യുക."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"മുഖം തിരിച്ചറിയാനാകുന്നില്ല. വീണ്ടും ശ്രമിക്കൂ."</string> @@ -700,7 +702,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"മുഖ മോഡൽ സൃഷ്ടിക്കാനാകില്ല. വീണ്ടും ശ്രമിക്കൂ."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"കറുത്ത കണ്ണട കണ്ടെത്തി. നിങ്ങളുടെ മുഖം പൂർണ്ണമായും ദൃശ്യമായിരിക്കണം."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"മുഖം മറച്ചിരിക്കുന്നതായി കണ്ടെത്തി. നിങ്ങളുടെ മുഖം പൂർണ്ണമായും ദൃശ്യമായിരിക്കണം."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"മുഖം മറച്ചിരിക്കുന്നു. മുഖം പൂർണ്ണമായും ദൃശ്യമായിരിക്കണം."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"മുഖം പരിശോധിക്കാൻ കഴിയില്ല. ഹാർഡ്വെയർ ലഭ്യമല്ല."</string> @@ -1063,7 +1065,7 @@ <string name="js_dialog_before_unload_positive_button" msgid="4274257182303565509">"ഈ പേജ് വിടുക"</string> <string name="js_dialog_before_unload_negative_button" msgid="3873765747622415310">"ഈ പേജിൽ തുടരുക"</string> <string name="js_dialog_before_unload" msgid="7213364985774778744">"<xliff:g id="MESSAGE">%s</xliff:g>\n\nഈ പേജിൽ നിന്നും നാവിഗേറ്റുചെയ്തു പോകണമെന്ന് തീർച്ചയാണോ?"</string> - <string name="autofill_window_title" msgid="4379134104008111961">"<xliff:g id="SERVICENAME">%1$s</xliff:g> ഉപയോഗിച്ച് സ്വമേധയാ പൂരിപ്പിക്കുക"</string> + <string name="autofill_window_title" msgid="4379134104008111961">"<xliff:g id="SERVICENAME">%1$s</xliff:g> ഉപയോഗിച്ച് സ്വയമേവ പൂരിപ്പിക്കുക"</string> <string name="permlab_setAlarm" msgid="1158001610254173567">"ഒരു അലാറം സജ്ജീകരിക്കുക"</string> <string name="permdesc_setAlarm" msgid="2185033720060109640">"ഒരു ഇൻസ്റ്റാളുചെയ്ത അലാറം ക്ലോക്ക് അപ്ലിക്കേഷനിൽ അലാറം സജ്ജീകരിക്കുന്നതിന് അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. ചില അലാറം ക്ലോക്ക് അപ്ലിക്കേഷനുകൾ ഈ സവിശേഷത നടപ്പിലാക്കാതിരുന്നേക്കാം."</string> <string name="permlab_addVoicemail" msgid="4770245808840814471">"വോയ്സ് മെയിൽ ചേർക്കുക"</string> diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml index 2917fb669ec9..fcecbe95c1e4 100644 --- a/core/res/res/values-mn/strings.xml +++ b/core/res/res/values-mn/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Андройд систем"</string> <string name="user_owner_label" msgid="8628726904184471211">"Хувийн профайл руу сэлгэх"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Ажлын профайл руу сэлгэх"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Хувийн <xliff:g id="APP_NAME">%1$s</xliff:g> руу сэлгэх"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Ажлын <xliff:g id="APP_NAME">%1$s</xliff:g> руу сэлгэх"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Харилцагчид"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"харилцагч руугаа хандах"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Байршил"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Апп нь чичиргээг удирдах боломжтой."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Аппыг чичиргээний төлөвт хандахыг зөвшөөрдөг."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"утасны дугаарт шууд дуудлага хийх"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Аппад таны оролцоогүйгээр утасны дугаарууд руу дуудлага хийхийг зөвшөөрнө. Энэ нь гэнэтийн төлбөрийн нэхэмжлэх эсвэл дуудлага хүлээн авахад хүргэж магадгүй. Энэ нь аппад яаралтай тусламжийн утасны дугаарууд руу дуудлага хийхийг зөвшөөрөхгүйг анхаарна уу. Хортой аппууд таны баталгаажуулалтгүйгээр дуудлага хийх эсвэл ирсэн дуудлагыг автоматаар өөр дугаар луу шилжүүлэхэд хүргэх оператор компанийн код руу залгаснаар танаас төлбөр гаргаж магадгүй."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS дуудлагын үйлчилгээнд хандах"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Апп нь дуудлага хийхдээ таны оролцоогүйгээр IMS үйлчилгээг ашиглах боломжтой."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"утасны статус ба таниулбарыг унших"</string> @@ -693,7 +694,7 @@ <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Утас руугаа аль болох эгц харна уу"</string> <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Утас руугаа аль болох эгц харна уу"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Утас руугаа аль болох эгц харна уу"</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"Таны нүүрийг далдалж буй аливаа зүйлийг хасна уу."</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"Таны нүүрийг далдалж буй аливаа зүйлийг авна уу."</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Хар хэсэг зэрэг дэлгэцийнхээ дээд хэсгийг цэвэрлэнэ үү"</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Энэ контентыг ажлын аппуудаар нээх боломжгүй"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Энэ контентыг хувийн аппуудаар хуваалцах боломжгүй"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Энэ контентыг хувийн аппуудаар нээх боломжгүй"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Ажлын аппуудыг түр зогсоосон"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Үргэлжлүүлэх"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Ямар ч ажлын апп байхгүй байна"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Ямар ч хувийн апп байхгүй байна"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Хувийн <xliff:g id="APP">%s</xliff:g>-г нээх"</string> diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml index 640f5d94018b..c63baeb7e95b 100644 --- a/core/res/res/values-mr/strings.xml +++ b/core/res/res/values-mr/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android सिस्टीम"</string> <string name="user_owner_label" msgid="8628726904184471211">"वैयक्तिक प्रोफाइलवर स्विच करा"</string> <string name="managed_profile_label" msgid="7316778766973512382">"कार्य प्रोफाइलवर स्विच करा"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"<xliff:g id="APP_NAME">%1$s</xliff:g> च्या वैयक्तिक प्रोफाइलवर स्विच करा"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"<xliff:g id="APP_NAME">%1$s</xliff:g> च्या कार्य प्रोफाइलवर स्विच करा"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"संपर्क"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"आपल्या संपर्कांवर प्रवेश"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"स्थान"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"अॅप ला व्हायब्रेटर नियंत्रित करण्यासाठी अनुमती देते."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"अॅपला व्हायब्रेटर स्थितीचा अॅक्सेस करण्याची अनुमती देते."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"फोन नंबरवर प्रत्यक्ष कॉल करा"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"अॅपला तुमच्या हस्तक्षेपाशिवाय फोन नंबरवर कॉल करण्याची अनुमती देते. यामुळे अनपेक्षित शुल्के आकारली जाऊ शकतात किंवा अनपेक्षित कॉल येऊ शकतात. लक्षात ठेवा, की हे अॅपला आणीबाणी नंबरवर कॉल करण्याची अनुमती देत नाही. दुर्भावनापूर्ण अॅप्सनी तुमच्या कंफर्मेशनशिवाय कॉल केल्याने किंवा वाहक कोड डायल केल्याने त्यासाठी तुमच्याकडून शुल्क आकारले जाऊ शकते, ज्यामुळे इनकमिंग कॉल आपोआप दुसर्या नंबरवर फॉरवर्ड केले जातात."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS कॉल सेवा अॅक्सेस करा"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"आपल्या हस्तक्षेपाशिवाय अॅपला कॉल करण्यासाठी IMS सेवा वापरण्याची अनुमती देते."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"फोन स्थिती आणि ओळख वाचा"</string> @@ -644,7 +645,7 @@ <string name="face_authenticated_confirmation_required" msgid="6872632732508013755">"चेहरा ऑथेंटिकेशन केलेला आहे, कृपया कंफर्म प्रेस करा"</string> <string name="fingerprint_error_hw_not_available" msgid="4571700896929561202">"फिंगरप्रिंट हार्डवेअर उपलब्ध नाही."</string> <string name="fingerprint_error_no_space" msgid="7285481581905967580">"फिंगरप्रिंट सेट करता आली नाही"</string> - <string name="fingerprint_error_timeout" msgid="7361192266621252164">"फिंगरप्रिट सेट करण्याची वेळ संपली आहे. पुन्हा प्रयत्न करा."</string> + <string name="fingerprint_error_timeout" msgid="7361192266621252164">"फिंगरप्रिंट सेट करण्याची वेळ संपली आहे. पुन्हा प्रयत्न करा."</string> <string name="fingerprint_error_canceled" msgid="540026881380070750">"फिंगरप्रिंट ऑपरेशन रद्द झाले."</string> <string name="fingerprint_error_user_canceled" msgid="7685676229281231614">"वापरकर्त्याने फिंगरप्रिंट ऑपरेशन रद्द केले."</string> <string name="fingerprint_error_lockout" msgid="6626753679019351368">"खूप जास्त प्रयत्न. त्याऐवजी स्क्रीन लॉक वापरा."</string> @@ -1058,10 +1059,10 @@ <string name="factorytest_not_system" msgid="5658160199925519869">"FACTORY_TEST कृती फक्त /सिस्टीम/अॅप मध्ये इंस्टॉल केलेल्या पॅकेजसाठी सपोर्ट आहे."</string> <string name="factorytest_no_action" msgid="339252838115675515">"FACTORY_TEST क्रिया प्रदान करणारे कोणतेही पॅकेज आढळले नाही."</string> <string name="factorytest_reboot" msgid="2050147445567257365">"रीबूट करा"</string> - <string name="js_dialog_title" msgid="7464775045615023241">"\"<xliff:g id="TITLE">%s</xliff:g>\" वरील पृष्ठ हे म्हणते:"</string> + <string name="js_dialog_title" msgid="7464775045615023241">"\"<xliff:g id="TITLE">%s</xliff:g>\" वरील पेज हे म्हणते:"</string> <string name="js_dialog_title_default" msgid="3769524569903332476">"JavaScript"</string> <string name="js_dialog_before_unload_title" msgid="7012587995876771246">"नेव्हिगेशनची पुष्टी करा"</string> - <string name="js_dialog_before_unload_positive_button" msgid="4274257182303565509">"हे पृष्ठ सोडा"</string> + <string name="js_dialog_before_unload_positive_button" msgid="4274257182303565509">"हे पेज सोडा"</string> <string name="js_dialog_before_unload_negative_button" msgid="3873765747622415310">"या पेजवर रहा"</string> <string name="js_dialog_before_unload" msgid="7213364985774778744">"<xliff:g id="MESSAGE">%s</xliff:g>\n\nआपल्याला खात्री आहे की तुम्ही या पृष्ठावरून नेव्हिगेट करू इच्छिता?"</string> <string name="autofill_window_title" msgid="4379134104008111961">"<xliff:g id="SERVICENAME">%1$s</xliff:g> सह ऑटोफील करा"</string> @@ -1228,7 +1229,7 @@ <string name="force_close" msgid="9035203496368973803">"ठीक"</string> <string name="report" msgid="2149194372340349521">"अहवाल द्या"</string> <string name="wait" msgid="7765985809494033348">"प्रतीक्षा करा"</string> - <string name="webpage_unresponsive" msgid="7850879412195273433">"पृष्ठ प्रतिसाद न देणारे झाले आहे.\n\nतुम्ही हे बंद करू इच्छिता?"</string> + <string name="webpage_unresponsive" msgid="7850879412195273433">"पेज प्रतिसाद न देणारे झाले आहे.\n\nतुम्ही हे बंद करू इच्छिता?"</string> <string name="launch_warning_title" msgid="6725456009564953595">"अॅप पुनर्निर्देशित केला"</string> <string name="launch_warning_replace" msgid="3073392976283203402">"<xliff:g id="APP_NAME">%1$s</xliff:g> आता चालत आहे."</string> <string name="launch_warning_original" msgid="3332206576800169626">"<xliff:g id="APP_NAME">%1$s</xliff:g> मूळतः लाँच केले."</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"हा आशय कार्य ॲप्स वापरून उघडला जाऊ शकत नाही"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"हा आशय वैयक्तिक ॲप्ससह शेअर केला जाऊ शकत नाही"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"हा आशय वैयक्तिक ॲप्स वापरून उघडला जाऊ शकत नाही"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"कामाशी संबंधित अॅप्स थांबवली आहेत"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"पुन्हा सुरू करा"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"कोणतीही कार्य ॲप्स सपोर्ट करत नाहीत"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"कोणतीही वैयक्तिक ॲप्स सपोर्ट करत नाहीत"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"वैयक्तिक <xliff:g id="APP">%s</xliff:g> उघडा"</string> diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml index 04d44780e581..85393ffcd6cc 100644 --- a/core/res/res/values-ms/strings.xml +++ b/core/res/res/values-ms/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Sistem Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Beralih ke profil peribadi"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Beralih ke profil kerja"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Beralih kepada <xliff:g id="APP_NAME">%1$s</xliff:g> peribadi"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Beralih kepada <xliff:g id="APP_NAME">%1$s</xliff:g> kerja"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Contacts"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"mengakses kenalan anda"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Lokasi"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Membenarkan apl mengawal penggetar."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Membenarkan apl mengakses keadaan penggetar."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"panggil terus nombor telefon"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Membenarkan apl memanggil nombor telefon tanpa campur tangan anda. Tindakan ini boleh menyebabkan caj atau panggilan yang tidak dijangka. Harap maklum bahawa tindakan ini tidak membenarkan apl menghubungi nombor kecemasan. Apl yang berniat jahat mungkin memakan belanja dengan membuat panggilan tanpa pengesahan anda atau mendail kod pembawa yang menyebabkan panggilan masuk dimajukan kepada nombor lain secara automatik."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"akses perkhidmatan panggilan IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Membenarkan apl menggunakan perkhidmatan IMS untuk membuat panggilan tanpa campur tangan anda."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"baca status dan identiti telefon"</string> @@ -634,7 +635,7 @@ <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"Terlalu terang"</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"Penekanan Kuasa dikesan"</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"Cuba selaraskan"</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Tukar sedikit kedudukan jari anda setiap kali pergerakan dilakukan"</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Ubah sedikit kedudukan jari pada setiap percubaan"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"Cap jari tidak dikenali"</string> @@ -693,7 +694,7 @@ <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Lihat terus pada telefon anda"</string> <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Lihat terus pada telefon anda"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Lihat terus pada telefon anda"</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"Alih keluar apa-apa yang melindungi wajah anda."</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"Tanggalkan apa-apa yang menutup wajah anda."</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Bersihkan bahagian atas skrin anda, termasuk bar hitam"</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> @@ -701,7 +702,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Tidak dapat membuat model wajah anda. Cuba lagi."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Cermin mata gelap dikesan. Wajah anda mesti terlihat sepenuhnya."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Pelitup muka dikesan. Wajah anda mesti terlihat sepenuhnya."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Pelitup muka dikesan. Wajah anda mesti kelihatan sepenuhnya."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Tdk dpt sahkan wajah. Perkakasan tidak tersedia."</string> @@ -1728,7 +1729,7 @@ <string name="accessibility_gesture_3finger_instructional_text" msgid="3425123684990193765">"Untuk beralih antara ciri, leret ke atas menggunakan tiga jari dan tahan."</string> <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Pembesaran"</string> <string name="user_switched" msgid="7249833311585228097">"Pengguna semasa <xliff:g id="NAME">%1$s</xliff:g>."</string> - <string name="user_switching_message" msgid="1912993630661332336">"Bertukar kepada <xliff:g id="NAME">%1$s</xliff:g>…"</string> + <string name="user_switching_message" msgid="1912993630661332336">"Beralih kepada <xliff:g id="NAME">%1$s</xliff:g>…"</string> <string name="user_logging_out_message" msgid="7216437629179710359">"Log keluar daripada <xliff:g id="NAME">%1$s</xliff:g>…"</string> <string name="owner_name" msgid="8713560351570795743">"Pemilik"</string> <string name="guest_name" msgid="8502103277839834324">"Tetamu"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Kandungan ini tidak boleh dibuka dengan apl kerja"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Kandungan ini tidak boleh dikongsi dengan apl peribadi"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Kandungan ini tidak boleh dibuka dengan apl peribadi"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Apl kerja dijeda"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Nyahjeda"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Tiada apl kerja"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Tiada apl peribadi"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Buka <xliff:g id="APP">%s</xliff:g> peribadi"</string> diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml index e54ebd77cf5d..8dba09894ebd 100644 --- a/core/res/res/values-my/strings.xml +++ b/core/res/res/values-my/strings.xml @@ -250,7 +250,7 @@ <string name="global_action_bug_report" msgid="5127867163044170003">"အမှားရှာပြင် မှတ်တမ်း"</string> <string name="global_action_logout" msgid="6093581310002476511">"စက်ရှင် ပြီးဆုံးပြီ"</string> <string name="global_action_screenshot" msgid="2610053466156478564">"ဖန်သားပြင်ဓာတ်ပုံ"</string> - <string name="bugreport_title" msgid="8549990811777373050">"ချွတ်ယွင်းမှတ်တမ်း"</string> + <string name="bugreport_title" msgid="8549990811777373050">"ချွတ်ယွင်းချက်အစီရင်ခံစာ"</string> <string name="bugreport_message" msgid="5212529146119624326">"သင့်ရဲ့ လက်ရှိ စက်အခြေအနေ အချက်အလက်များကို အီးမေးလ် အနေဖြင့် ပေးပို့ရန် စုဆောင်းပါမည်။ အမှားရှာဖွေပြင်ဆင်မှုမှတ်တမ်းမှ ပေးပို့ရန် အသင့်ဖြစ်သည်အထိ အချိန် အနည်းငယ်ကြာမြင့်မှာ ဖြစ်သဖြင့် သည်းခံပြီး စောင့်ပါရန်"</string> <string name="bugreport_option_interactive_title" msgid="7968287837902871289">"လက်ငင်းတုံ့ပြန်နိုင်သည့် အစီရင်ခံချက်"</string> <string name="bugreport_option_interactive_summary" msgid="8493795476325339542">"အခြေအနေတော်တော်များများတွင် ၎င်းကိုအသုံးပြုပါ။ ၎င်းသည် အစီရင်ခံစာကို မှတ်သားခြင်း၊ ပြဿနာအကြောင်း နောက်ထပ်အသေးစိတ်များကို ထည့်သွင်းခြင်းနှင့် မျက်နှာပြင်ပုံဖမ်းယူခြင်းတို့ကို ပြုလုပ်ခွင့်ပေးပါသည်။ ပေးပို့ရန် အလွန်ကြာပြီး အသုံးပြုခြင်းနည်းပါးသည့်အပိုင်းကို ၎င်းက ချန်ခဲ့နိုင်ပါသည်။"</string> @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android စနစ်"</string> <string name="user_owner_label" msgid="8628726904184471211">"ကိုယ်ရေးကိုယ်တာသုံး ပရိုဖိုင်သို့ ပြောင်းရန်"</string> <string name="managed_profile_label" msgid="7316778766973512382">"အလုပ်ပရိုဖိုင်သို့ ပြောင်းရန်"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"ကိုယ်ပိုင် <xliff:g id="APP_NAME">%1$s</xliff:g> သို့ပြောင်းရန်"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"အလုပ်သုံး <xliff:g id="APP_NAME">%1$s</xliff:g> သို့ပြောင်းရန်"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"အဆက်အသွယ်များ"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"သင့် အဆက်အသွယ်များအား ဝင်ရောက်သုံးရန်"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"တည်နေရာ"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"အက်ပ်အား တုန်ခါစက်ကို ထိန်းချုပ်ခွင့် ပြုသည်။"</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"အက်ပ်ကို တုန်ခါမှုအခြေအနေအား သုံးခွင့်ပေးပါ။"</string> <string name="permlab_callPhone" msgid="1798582257194643320">"ဖုန်းနံပါတ်များကိုတိုက်ရိုက်ခေါ်ဆိုခြင်း"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"သင့်ဆောင်ရွက်မှုမပါဘဲ အက်ပ်ကို ဖုန်းနံပါတ်များ ခေါ်ခွင့်ပြုသည်။ ထို့ကြောင့် မမျှော်လင့်သော ကျသင့်ငွေ သို့မဟုတ် ခေါ်ဆိုမှုများ ရှိနိုင်သည်။ ၎င်းသည် အက်ပ်ကို အရေးပေါ် နံပါတ်များ ခေါ်ဆိုခွင့်ပြုခြင်း မဟုတ်ပါ။ မသမာသော အက်ပ်များက သင့်အတည်ပြုချက်မပါဘဲ ဖုန်းခေါ်ခြင်းဖြင့် သင့်အား ငွေကြေးကုန်ကျစေနိုင်သည် (သို့) ၎င်းတို့က အဝင်ခေါ်ဆိုမှုများအား အခြားဖုန်းနံပါတ်သို့ အလိုအလျောက်ထပ်ဆင့်ပို့သည့် မိုဘိုင်းဖုန်းကုမ္ပဏီကုဒ်များကို ခေါ်ဆိုနိုင်သည်။"</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS ဖုန်းခေါ်ဆိုမှု ဝန်ဆောင်ဌာန ဝင်ကြည့်ပါ"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"သင့်ရဲ့ဝင်ရောက်စွက်ဖက်မှုမပါဘဲ IMS ဝန်ဆောင်မှုကိုအသုံးပြုပြီး ဖုန်းခေါ်ဆိုနိုင်ရန် အပ်ဖ်ကို ခွင့်ပြုထားပါ။"</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"ဖုန်းရဲ့ အခြေအနေ နှင့် အမှတ်သညာအား ဖတ်ခြင်း"</string> @@ -634,7 +635,7 @@ <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"အလွန် လင်းသည်"</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"ဖွင့်ပိတ်ခလုတ် နှိပ်လိုက်သည်"</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"ပြင်ဆင်ကြည့်ပါ"</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"အကြိမ်တိုင်း သင့်လက်ချောင်း၏ အနေအထားကို အနည်းငယ်ပြောင်းပါ"</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"အကြိမ်တိုင်း လက်ချောင်းအနေအထားကို အနည်းငယ်ပြောင်းပါ"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"လက်ဗွေကို မသိရှိပါ"</string> @@ -681,7 +682,7 @@ <string name="face_acquired_too_close" msgid="4453646176196302462">"ဖုန်းကို အဝေးသို့ခွာပါ"</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"ဖုန်းကို အနားသို့ပိုတိုးပါ"</string> <string name="face_acquired_too_high" msgid="8278815780046368576">"ဖုန်းကို ပိုမြှင့်လိုက်ပါ"</string> - <string name="face_acquired_too_low" msgid="4075391872960840081">"ဖုန်းကို အောက်ပိုနှိမ့်ပါ"</string> + <string name="face_acquired_too_low" msgid="4075391872960840081">"ဖုန်းကို ပိုနှိမ့်လိုက်ပါ"</string> <string name="face_acquired_too_right" msgid="6245286514593540859">"ဖုန်းကို သင့်ဘယ်ဘက်သို့ ရွှေ့ပါ"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"ဖုန်းကို သင့်ညာဘက်သို့ ရွှေ့ပါ"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"သင့်စက်ပစ္စည်းကို တည့်တည့်ကြည့်ပါ။"</string> @@ -701,7 +702,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"သင့်မျက်နှာနမူနာ ပြုလုပ်၍မရပါ။ ထပ်စမ်းကြည့်ပါ။"</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"အရောင်ရင့်သောမျက်မှန် တွေ့သည်။ သင့်မျက်နှာကို အပြည့်အဝ မြင်ရရန်လိုအပ်သည်။"</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"မျက်နှာဖုံး တွေ့သည်။ သင့်မျက်နှာကို အပြည့်အဝ မြင်ရရန်လိုအပ်သည်။"</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"မျက်နှာ ဖုံးနေသည်။ သင့်မျက်နှာအပြည့် မြင်ရရန်လိုသည်။"</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"မျက်နှာကို အတည်ပြု၍ မရပါ။ ဟာ့ဒ်ဝဲ မရနိုင်ပါ။"</string> @@ -971,7 +972,7 @@ <string name="lockscreen_password_wrong" msgid="8605355913868947490">"ထပ် စမ်းပါ"</string> <string name="lockscreen_storage_locked" msgid="634993789186443380">"ဝန်ဆောင်မှုနှင့် ဒေတာအားလုံးအတွက် လော့ခ်ဖွင့်ပါ"</string> <string name="faceunlock_multiple_failures" msgid="681991538434031708">"မျက်မှာပြ လော့ခ်ဖွင့်ခြင်း ခွင့်ပြုသော အကြိမ်ရေထက် ကျော်လွန်သွားပါပြီ"</string> - <string name="lockscreen_missing_sim_message_short" msgid="1229301273156907613">"ဆင်းမ်မရှိပါ"</string> + <string name="lockscreen_missing_sim_message_short" msgid="1229301273156907613">"ဆင်းမ်ကတ် မရှိပါ"</string> <string name="lockscreen_missing_sim_message" product="tablet" msgid="3986843848305639161">"တက်ဘလက်တွင် ဆင်းမ်မရှိပါ။"</string> <string name="lockscreen_missing_sim_message" product="tv" msgid="3903140876952198273">"သင့် Android TV စက်တွင် ဆင်းမ်မရှိပါ။"</string> <string name="lockscreen_missing_sim_message" product="default" msgid="6184187634180854181">"ဖုန်းတွင် ဆင်းမ်မရှိပါ။"</string> @@ -1191,7 +1192,7 @@ <string name="whichGiveAccessToApplicationLabel" msgid="7805857277166106236">"ဖွင့်ခွင့်ပေးရန်"</string> <string name="whichEditApplication" msgid="6191568491456092812">"...နှင့် တည်းဖြတ်ရန်"</string> <string name="whichEditApplicationNamed" msgid="8096494987978521514">"%1$s နှင့် တည်းဖြတ်ရန်"</string> - <string name="whichEditApplicationLabel" msgid="1463288652070140285">"တည်းဖြတ်ပါ"</string> + <string name="whichEditApplicationLabel" msgid="1463288652070140285">"တည်းဖြတ်ရန်"</string> <string name="whichSendApplication" msgid="4143847974460792029">"မျှဝေပါ"</string> <string name="whichSendApplicationNamed" msgid="4470386782693183461">"%1$sနှင့် မျှဝေရန်"</string> <string name="whichSendApplicationLabel" msgid="7467813004769188515">"မျှဝေပါ"</string> @@ -1368,7 +1369,7 @@ <string name="usb_power_notification_message" msgid="7284765627437897702">"ချိတ်ဆက်ထားသည့် စက်ပစ္စည်းကို အားသွင်းနေသည်။ နောက်ထပ်ရွေးချယ်စရာများအတွက် တို့ပါ။"</string> <string name="usb_unsupported_audio_accessory_title" msgid="2335775548086533065">"အန်နာလော့ အသံကိရိယာကို တွေ့ထားပါသည်"</string> <string name="usb_unsupported_audio_accessory_message" msgid="1300168007129796621">"တပ်ဆင်ထားသော ကိရိယာကို ဤဖုန်းနှင့် တွဲသုံး၍မရပါ။ ပိုမိုလေ့လာရန် တို့ပါ။"</string> - <string name="adb_active_notification_title" msgid="408390247354560331">"USB အမှားရှာပြင်စနစ် ချိတ်ဆက်ထားသည်"</string> + <string name="adb_active_notification_title" msgid="408390247354560331">"USB အမှားရှာပြင်ခြင်း ချိတ်ဆက်ထားသည်"</string> <string name="adb_active_notification_message" msgid="5617264033476778211">"USB အမှားရှာပြင်ခြင်းကို ပိတ်ရန် တို့ပါ"</string> <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB ဖြင့် အမှားရှာပြင်ခြင်းကို ပိတ်ရန် ရွေးပါ။"</string> <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"ကြိုးမဲ့ အမှားရှာပြင်ခြင်းကို ချိတ်ဆက်ပြီးပြီ"</string> @@ -1728,7 +1729,7 @@ <string name="accessibility_gesture_3finger_instructional_text" msgid="3425123684990193765">"ဝန်ဆောင်မှုများအကြား ပြောင်းရန် လက်သုံးချောင်းဖြင့် အပေါ်သို့ ပွတ်ဆွဲပြီး ဖိထားပါ။"</string> <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"ချဲ့ခြင်း"</string> <string name="user_switched" msgid="7249833311585228097">"လက်ရှိအသုံးပြုနေသူ <xliff:g id="NAME">%1$s</xliff:g>."</string> - <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g>သို့ ပြောင်းနေ…"</string> + <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g>သို့ ပြောင်းနေသည်…"</string> <string name="user_logging_out_message" msgid="7216437629179710359">"<xliff:g id="NAME">%1$s</xliff:g>ကို ထွက်ပစ်ပါတော့မည်..."</string> <string name="owner_name" msgid="8713560351570795743">"ပိုင်ရှင်"</string> <string name="guest_name" msgid="8502103277839834324">"ဧည့်သည်"</string> @@ -1952,7 +1953,7 @@ <string name="app_suspended_more_details" msgid="211260942831587014">"ပိုမိုလေ့လာရန်"</string> <string name="app_suspended_unsuspend_message" msgid="1665438589450555459">"အက်ပ်ကို ခဏမရပ်တော့ရန်"</string> <string name="work_mode_off_title" msgid="6367463960165135829">"အလုပ်သုံးအက်ပ် ပြန်ဖွင့်မလား။"</string> - <string name="work_mode_turn_on" msgid="5316648862401307800">"ပြန်ဖွင့်ရန်"</string> + <string name="work_mode_turn_on" msgid="5316648862401307800">"ပြန်စရန်"</string> <string name="work_mode_emergency_call_button" msgid="6818855962881612322">"အရေးပေါ်"</string> <string name="app_blocked_title" msgid="7353262160455028160">"အက်ပ်ကို မရနိုင်ပါ"</string> <string name="app_blocked_message" msgid="542972921087873023">"<xliff:g id="APP_NAME">%1$s</xliff:g> ကို ယခု မရနိုင်ပါ။"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"ဤအကြောင်းအရာကို အလုပ်သုံးအက်ပ်များဖြင့် မဖွင့်နိုင်ပါ"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"ဤအကြောင်းအရာကို ကိုယ်ပိုင်အက်ပ်များဖြင့် မမျှဝေနိုင်ပါ"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"ဤအကြောင်းအရာကို ကိုယ်ပိုင်အက်ပ်များဖြင့် မဖွင့်နိုင်ပါ"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"အလုပ်သုံးအက်ပ်များကို ခေတ္တရပ်ထားသည်"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"ပြန်ဖွင့်ရန်"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"အလုပ်သုံးအက်ပ်များ မရှိပါ"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"ကိုယ်ပိုင်အက်ပ်များ မရှိပါ"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"ကိုယ်ရေးကိုယ်တာသုံး <xliff:g id="APP">%s</xliff:g> ဖွင့်ခြင်း"</string> @@ -2318,11 +2317,11 @@ <string name="permdesc_startForegroundServicesFromBackground" msgid="4071826571656001537">"နောက်ခံမှနေ၍ မျက်နှာစာဝန်ဆောင်မှုများ စတင်ရန် တွဲဖက် အက်ပ်ကို ခွင့်ပြုသည်။"</string> <string name="mic_access_on_toast" msgid="2666925317663845156">"မိုက်ခရိုဖုန်း သုံးနိုင်သည်"</string> <string name="mic_access_off_toast" msgid="8111040892954242437">"မိုက်ခရိုဖုန်း ပိတ်ထားသည်"</string> - <string name="concurrent_display_notification_name" msgid="1526911253558311131">"စခရင်နှစ်ခု"</string> - <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"‘စခရင်နှစ်ခု’ ဖွင့်ထားသည်"</string> - <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> သည် အကြောင်းအရာကို ဖန်သားပြင်နှစ်ခုစလုံးတွင် ပြနေသည်"</string> + <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Dual screen"</string> + <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Dual screen ဖွင့်ထားသည်"</string> + <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> သည် အကြောင်းအရာကို ပြရန် ဖန်သားပြင်နှစ်ခုစလုံးကို သုံးနေသည်"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"စက်ပစ္စည်း အလွန်ပူနေသည်"</string> - <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"သင့်ဖုန်း အလွန်ပူနေသဖြင့် ‘စခရင်နှစ်ခု’ သုံး၍မရပါ"</string> + <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"သင့်ဖုန်း အလွန်ပူနေသဖြင့် Dual screen သုံး၍မရပါ"</string> <string name="concurrent_display_notification_power_save_title" msgid="1794569070730736281">"Dual Screen သုံး၍မရပါ"</string> <string name="concurrent_display_notification_power_save_content" msgid="2198116070583851493">"‘ဘက်ထရီ အားထိန်း’ ဖွင့်ထားသဖြင့် Dual Screen သုံး၍မရပါ။ ၎င်းကို ဆက်တင်များတွင် ပိတ်နိုင်သည်။"</string> <string name="device_state_notification_settings_button" msgid="691937505741872749">"ဆက်တင်များသို့ သွားရန်"</string> diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml index 56c191eaa3c9..c0ae44465be8 100644 --- a/core/res/res/values-nb/strings.xml +++ b/core/res/res/values-nb/strings.xml @@ -144,7 +144,7 @@ <string name="wifi_calling_off_summary" msgid="5626710010766902560">"Av"</string> <string name="wfc_mode_wifi_preferred_summary" msgid="1035175836270943089">"Ring via Wifi"</string> <string name="wfc_mode_cellular_preferred_summary" msgid="4958965609212575619">"Ring over mobilnettverk"</string> - <string name="wfc_mode_wifi_only_summary" msgid="104951993894678665">"Bare Wifi"</string> + <string name="wfc_mode_wifi_only_summary" msgid="104951993894678665">"Bare wifi"</string> <!-- no translation found for crossSimFormat_spn (9125246077491634262) --> <skip /> <string name="crossSimFormat_spn_cross_sim_calling" msgid="5620807020002879057">"<xliff:g id="SPN">%s</xliff:g>-reserve for anrop"</string> @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android-system"</string> <string name="user_owner_label" msgid="8628726904184471211">"Bytt til personlig profil"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Bytt til jobbprofil"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Bytt til <xliff:g id="APP_NAME">%1$s</xliff:g> for personlig bruk"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Bytt til <xliff:g id="APP_NAME">%1$s</xliff:g> for jobb"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontakter"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"se kontaktene dine"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Posisjon"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Lar appen kontrollere vibreringsfunksjonen."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Gir appen tilgang til vibreringstilstanden."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"ringe telefonnummer direkte"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Dette gir appen tillatelse til å ringe telefonnumre uten at du gjør noe. Dette kan føre til uventede kostnader eller anrop. Vær oppmerksom på at dette ikke fører til at appen kan ringe nødnumre. Skadelige apper kan føre til kostnader ved at de kan ringe uten å få bekreftelse fra deg, eller de kan ringe operatørkoder som fører til at innkommende anrop automatisk viderekobles til andre numre."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"få tilgang til nettprattjenesten for ringing"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Lar appen bruke nettprattjenesten til å ringe uten at du gjør noe."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"lese telefonstatus og -identitet"</string> @@ -634,7 +635,7 @@ <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"For lyst"</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"Trykk på av/på-knappen er registrert"</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"Prøv å justere"</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Endre posisjonen til fingeren litt hver gang"</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Endre fingerens posisjon litt hver gang"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"Gjenkjenner ikke fingeravtrykket"</string> @@ -701,7 +702,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Kan ikke lage ansiktsmodell. Prøv på nytt."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Mørke briller er registrert. Ansiktet må være helt synlig."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Ansiktsdekke er registrert. Ansiktet må være helt synlig."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Ansiktet er tildekket. Hele ansiktet må vises."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Kan ikke bekrefte ansikt. Utilgjengelig maskinvare."</string> @@ -1121,7 +1122,7 @@ <string name="duration_days_shortest_future" msgid="3392722163935571543">"om <xliff:g id="COUNT">%d</xliff:g> d"</string> <string name="duration_years_shortest_future" msgid="5537464088352970388">"om <xliff:g id="COUNT">%d</xliff:g> år"</string> <string name="duration_minutes_relative" msgid="8620337701051015593">"{count,plural, =1{for # minutt siden}other{For # minutter siden}}"</string> - <string name="duration_hours_relative" msgid="4836449961693180253">"{count,plural, =1{For # time siden}other{For # timer siden}}"</string> + <string name="duration_hours_relative" msgid="4836449961693180253">"{count,plural, =1{# time siden}other{# timer siden}}"</string> <string name="duration_days_relative" msgid="621965767567258302">"{count,plural, =1{For # dag siden}other{For # dager siden}}"</string> <string name="duration_years_relative" msgid="8731202348869424370">"{count,plural, =1{For # år siden}other{For # år siden}}"</string> <string name="duration_minutes_relative_future" msgid="5259574171747708115">"{count,plural, =1{# minutt}other{# minutter}}"</string> @@ -1364,7 +1365,7 @@ <string name="usb_midi_notification_title" msgid="7404506788950595557">"MIDI via USB er slått på"</string> <string name="usb_uvc_notification_title" msgid="2030032862673400008">"Enheten er koblet til som webkamera"</string> <string name="usb_accessory_notification_title" msgid="1385394660861956980">"USB-tilbehør er tilkoblet"</string> - <string name="usb_notification_message" msgid="4715163067192110676">"Trykk for å få flere alternativ."</string> + <string name="usb_notification_message" msgid="4715163067192110676">"Trykk for flere alternativer."</string> <string name="usb_power_notification_message" msgid="7284765627437897702">"Den tilkoblede enheten lades. Trykk for å se flere alternativer."</string> <string name="usb_unsupported_audio_accessory_title" msgid="2335775548086533065">"Analogt lydtilbehør ble oppdaget"</string> <string name="usb_unsupported_audio_accessory_message" msgid="1300168007129796621">"Den tilkoblede enheten er ikke kompatibel med denne telefonen. Trykk for å finne ut mer."</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Dette innholdet kan ikke åpnes med jobbapper"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Dette innholdet kan ikke deles med personlige apper"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Dette innholdet kan ikke åpnes med personlige apper"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Jobbapper er satt på pause"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Slå av pausen"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Ingen jobbapper"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Ingen personlige apper"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Åpne <xliff:g id="APP">%s</xliff:g> personlig"</string> diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml index b11d76a4f699..fd6617555122 100644 --- a/core/res/res/values-ne/strings.xml +++ b/core/res/res/values-ne/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android सिस्टम"</string> <string name="user_owner_label" msgid="8628726904184471211">"व्यक्तिगत प्रोफाइलमा बदल्नुहोस्"</string> <string name="managed_profile_label" msgid="7316778766973512382">"कार्य प्रोफाइलमा बदल्नुहोस्"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"<xliff:g id="APP_NAME">%1$s</xliff:g> को व्यक्तिगत प्रोफाइल प्रयोग गर्नुहोस्"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"<xliff:g id="APP_NAME">%1$s</xliff:g> को कार्य प्रोफाइल प्रयोग गर्नुहोस्"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"सम्पर्कहरू"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"तपाईँको सम्पर्कमाथि पहुँच गर्नुहोस्"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"लोकेसन"</string> @@ -1367,7 +1369,7 @@ <string name="usb_power_notification_message" msgid="7284765627437897702">"कनेक्ट गरिएको डिभाइस चार्ज गर्दै। थप विकल्पहरूका लागि ट्याप गर्नुहोस्।"</string> <string name="usb_unsupported_audio_accessory_title" msgid="2335775548086533065">"एनालग अडियोको सहायक उपकरण पत्ता लाग्यो"</string> <string name="usb_unsupported_audio_accessory_message" msgid="1300168007129796621">"संलग्न गरिएको यन्त्र यो फोनसँग कम्प्याटिबल छैन। थप जान्न ट्याप गर्नुहोस्।"</string> - <string name="adb_active_notification_title" msgid="408390247354560331">"USB डिबग गर्न ADB कनेक्ट गरिएको छ"</string> + <string name="adb_active_notification_title" msgid="408390247354560331">"USB डिबगिङ कनेक्ट गरिएको छ कनेक्ट गरिएको छ"</string> <string name="adb_active_notification_message" msgid="5617264033476778211">"USB डिबगिङ अफ गर्न ट्याप गर्नुहोस्"</string> <string name="adb_active_notification_message" product="tv" msgid="6624498401272780855">"USB डिबगिङलाई असक्षम पार्न ट्याप गर्नुहोस्।"</string> <string name="adbwifi_active_notification_title" msgid="6147343659168302473">"वायरलेस डिबगिङ जोडियो"</string> @@ -1645,8 +1647,8 @@ <string name="kg_wrong_password" msgid="2384677900494439426">"गलत पासवर्ड"</string> <string name="kg_wrong_pin" msgid="3680925703673166482">"गलत PIN"</string> <string name="kg_pattern_instructions" msgid="8366024510502517748">"आफ्नो ढाँचा कोर्नुहोस्"</string> - <string name="kg_sim_pin_instructions" msgid="6479401489471690359">"SIM PIN प्रविष्टि गर्नुहोस्"</string> - <string name="kg_pin_instructions" msgid="7355933174673539021">"PIN प्रविष्टि गर्नुहोस्"</string> + <string name="kg_sim_pin_instructions" msgid="6479401489471690359">"SIM PIN हाल्नुहोस्"</string> + <string name="kg_pin_instructions" msgid="7355933174673539021">"PIN हाल्नुहोस्"</string> <string name="kg_password_instructions" msgid="7179782578809398050">"पासवर्ड प्रविष्टि गर्नुहोस्"</string> <string name="kg_puk_enter_puk_hint" msgid="6696187482616360994">"SIM कार्ड अहिले असक्षम छ। सुचारु गर्नको लागि PUK कोड प्रविष्टि गर्नुहोस्। विवरणको लागि वाहकलाई सम्पर्क गर्नुहोस्।"</string> <string name="kg_puk_enter_pin_hint" msgid="8190982314659429770">"इच्छित PIN कोड प्रविष्टि गर्नुहोस्"</string> @@ -1700,7 +1702,7 @@ <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"स्क्रिन हेर्नुहोस् र नियन्त्रण गर्नुहोस्"</string> <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"यसले स्क्रिनमा देखिने सबै सामग्री पढ्न सक्छ र अन्य एपहरूमा उक्त सामग्री देखाउन सक्छ।"</string> <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"कारबाहीहरू हेर्नुहोस् र तिनमा कार्य गर्नुहोस्"</string> - <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"यसले कुनै एप वा हार्डवेयर सेन्सरसँग तपाईंले गर्ने अन्तर्क्रियाको ट्र्याक गर्न सक्छ र तपाईंका तर्फबाट एपहरूसँग अन्तर्क्रिया गर्न सक्छ।"</string> + <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"यसले कुनै एप वा हार्डवेयर सेन्सरसँग तपाईंले गर्ने अन्तर्क्रिया ट्र्याक गर्न सक्छ र तपाईंका तर्फबाट एपहरूसँग अन्तर्क्रिया गर्न सक्छ।"</string> <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"अनुमति दिनुहोस्"</string> <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"नदिनुहोस्"</string> <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"कुनै सुविधा प्रयोग गर्न थाल्न उक्त सुविधामा ट्याप गर्नुहोस्:"</string> @@ -1836,8 +1838,8 @@ <string name="reason_service_unavailable" msgid="5288405248063804713">"प्रिन्ट सेवा सक्षम गरिएको छैन"</string> <string name="print_service_installed_title" msgid="6134880817336942482">"<xliff:g id="NAME">%s</xliff:g> सेवा स्थापित भयो"</string> <string name="print_service_installed_message" msgid="7005672469916968131">"सक्षम पार्न ट्याप गर्नुहोस्"</string> - <string name="restr_pin_enter_admin_pin" msgid="1199419462726962697">"प्रशासकको PIN प्रविष्टि गर्नुहोस्"</string> - <string name="restr_pin_enter_pin" msgid="373139384161304555">"PIN प्रविष्टि गर्नुहोस्"</string> + <string name="restr_pin_enter_admin_pin" msgid="1199419462726962697">"प्रशासकको PIN हाल्नुहोस्"</string> + <string name="restr_pin_enter_pin" msgid="373139384161304555">"PIN हाल्नुहोस्"</string> <string name="restr_pin_incorrect" msgid="3861383632940852496">"गलत"</string> <string name="restr_pin_enter_old_pin" msgid="7537079094090650967">"वर्तमान PIN"</string> <string name="restr_pin_enter_new_pin" msgid="3267614461844565431">"नयाँ PIN"</string> diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml index 9605db1b4056..a4d80c70099a 100644 --- a/core/res/res/values-nl/strings.xml +++ b/core/res/res/values-nl/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android-systeem"</string> <string name="user_owner_label" msgid="8628726904184471211">"Schakelen naar persoonlijk profiel"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Schakelen naar werkprofiel"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Overschakelen naar persoonlijk <xliff:g id="APP_NAME">%1$s</xliff:g>-profiel"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Overschakelen naar <xliff:g id="APP_NAME">%1$s</xliff:g>-werkprofiel"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Contacten"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"toegang krijgen tot je contacten"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Locatie"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Hiermee kan de app de trilstand beheren."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Hiermee heeft de app toegang tot de status van de trilstand."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"telefoonnummers rechtstreeks bellen"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Hiermee kan de app telefoonnummers bellen zonder je tussenkomst. Dit kan resulteren in onverwachte kosten of gesprekken. Dit geeft de app geen rechten om alarmnummers te bellen. Kwaadwillende apps kunnen je geld kosten omdat ze zonder je toestemming kunnen bellen. Ook kunnen ze providercodes kiezen waardoor inkomende gesprekken automatisch worden doorgestuurd naar een ander nummer."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"toegang tot IMS-service voor bellen"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Hiermee kan de app de IMS-service gebruiken om te bellen zonder je tussenkomst."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"telefoonstatus en -identiteit lezen"</string> @@ -1239,7 +1240,7 @@ <string name="unsupported_display_size_show" msgid="980129850974919375">"Altijd tonen"</string> <string name="unsupported_compile_sdk_message" msgid="7326293500707890537">"<xliff:g id="APP_NAME">%1$s</xliff:g> 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."</string> <string name="unsupported_compile_sdk_show" msgid="1601210057960312248">"Altijd tonen"</string> - <string name="unsupported_compile_sdk_check_update" msgid="1103639989147664456">"Checken op updates"</string> + <string name="unsupported_compile_sdk_check_update" msgid="1103639989147664456">"Controleren op updates"</string> <string name="smv_application" msgid="3775183542777792638">"De app <xliff:g id="APPLICATION">%1$s</xliff:g> (proces <xliff:g id="PROCESS">%2$s</xliff:g>) heeft het zelf afgedwongen StrictMode-beleid geschonden."</string> <string name="smv_process" msgid="1398801497130695446">"Het proces <xliff:g id="PROCESS">%1$s</xliff:g> heeft het zelf afgedwongen StrictMode-beleid geschonden."</string> <string name="android_upgrading_title" product="default" msgid="7279077384220829683">"Telefoon wordt geüpdatet…"</string> @@ -1975,7 +1976,7 @@ <string name="app_streaming_blocked_message_for_settings_dialog" product="tablet" msgid="3286849551133045896">"Je hebt hier geen toegang toe op je <xliff:g id="DEVICE">%1$s</xliff:g>. Probeer het in plaats daarvan op je tablet."</string> <string name="app_streaming_blocked_message_for_settings_dialog" product="default" msgid="6264287556598916295">"Je hebt hier geen toegang toe op je <xliff:g id="DEVICE">%1$s</xliff:g>. Probeer het in plaats daarvan op je telefoon."</string> <string name="deprecated_target_sdk_message" msgid="5246906284426844596">"Deze app is ontworpen voor een oudere versie van Android. De app werkt misschien niet goed en bevat niet de nieuwste beveiligings- en privacybeschermingsopties. Check op een update of neem contact op met de ontwikkelaar van de app."</string> - <string name="deprecated_target_sdk_app_store" msgid="8456784048558808909">"Checken op updates"</string> + <string name="deprecated_target_sdk_app_store" msgid="8456784048558808909">"Controleren op updates"</string> <string name="new_sms_notification_title" msgid="6528758221319927107">"Je hebt nieuwe berichten"</string> <string name="new_sms_notification_content" msgid="3197949934153460639">"Open je sms-app om ze te bekijken"</string> <string name="profile_encrypted_title" msgid="9001208667521266472">"Functionaliteit kan beperkt zijn"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Deze content kan niet worden geopend met werk-apps"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Deze content kan niet worden gedeeld met persoonlijke apps"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Deze content kan niet worden geopend met persoonlijke apps"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Werk-apps zijn onderbroken"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Hervatten"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Geen werk-apps"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Geen persoonlijke apps"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Persoonlijke <xliff:g id="APP">%s</xliff:g> openen"</string> @@ -2319,7 +2318,7 @@ <string name="mic_access_on_toast" msgid="2666925317663845156">"Microfoon is beschikbaar"</string> <string name="mic_access_off_toast" msgid="8111040892954242437">"Microfoon is geblokkeerd"</string> <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Dubbel scherm"</string> - <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Dubbel scherm is aan"</string> + <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Dubbel scherm staat aan"</string> <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> gebruikt beide schermen om content te tonen"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"Het apparaat is te warm"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"Dubbel scherm is niet beschikbaar, omdat je telefoon te warm wordt"</string> diff --git a/core/res/res/values-or/strings.xml b/core/res/res/values-or/strings.xml index 69cfaae04d40..fa3fbc4b7100 100644 --- a/core/res/res/values-or/strings.xml +++ b/core/res/res/values-or/strings.xml @@ -288,16 +288,18 @@ <string name="notification_channel_usb" msgid="1528280969406244896">"USB ସଂଯୋଗ"</string> <string name="notification_channel_heavy_weight_app" msgid="17455756500828043">"ଆପ୍ ଚାଲୁଛି"</string> <string name="notification_channel_foreground_service" msgid="7102189948158885178">"ଆପ୍ଗୁଡ଼ିକ ବ୍ୟାଟେରୀ ଖର୍ଚ୍ଚ କରିଥା\'ନ୍ତି"</string> - <string name="notification_channel_accessibility_magnification" msgid="1707913872219798098">"ମ୍ୟାଗ୍ନିଫିକେସନ୍"</string> + <string name="notification_channel_accessibility_magnification" msgid="1707913872219798098">"ମେଗ୍ନିଫିକେସନ"</string> <string name="notification_channel_accessibility_security_policy" msgid="1727787021725251912">"ଆକ୍ସେସିବିଲିଟୀ ବ୍ୟବହାର"</string> <string name="foreground_service_app_in_background" msgid="1439289699671273555">"<xliff:g id="APP_NAME">%1$s</xliff:g> ବ୍ୟାଟେରୀ ବ୍ୟବହାର କରୁଛି"</string> <string name="foreground_service_apps_in_background" msgid="7340037176412387863">"<xliff:g id="NUMBER">%1$d</xliff:g>ଟି ଆପ୍ ବ୍ୟାଟେରୀ ବ୍ୟବହାର କରୁଛନ୍ତି"</string> <string name="foreground_service_tap_for_details" msgid="9078123626015586751">"ବ୍ୟାଟେରୀ ଏବଂ ଡାଟା ବ୍ୟବହାର ଉପରେ ବିବରଣୀ ପାଇଁ ଟାପ୍ କରନ୍ତୁ"</string> <string name="foreground_service_multiple_separator" msgid="5002287361849863168">"<xliff:g id="LEFT_SIDE">%1$s</xliff:g>, <xliff:g id="RIGHT_SIDE">%2$s</xliff:g>"</string> <string name="safeMode" msgid="8974401416068943888">"ସୁରକ୍ଷିତ ମୋଡ୍"</string> - <string name="android_system_label" msgid="5974767339591067210">"Android ସିଷ୍ଟମ୍"</string> + <string name="android_system_label" msgid="5974767339591067210">"Android ସିଷ୍ଟମ"</string> <string name="user_owner_label" msgid="8628726904184471211">"ବ୍ୟକ୍ତିଗତ ପ୍ରୋଫାଇଲ୍କୁ ଫେରିଆସନ୍ତୁ"</string> <string name="managed_profile_label" msgid="7316778766973512382">"କାର୍ଯ୍ୟ ପ୍ରୋଫାଇଲ୍କୁ ଯାଆନ୍ତୁ"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"ବ୍ୟକ୍ତିଗତ <xliff:g id="APP_NAME">%1$s</xliff:g>କୁ ସୁଇଚ କରନ୍ତୁ"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"ୱାର୍କ <xliff:g id="APP_NAME">%1$s</xliff:g>କୁ ସୁଇଚ କରନ୍ତୁ"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"କଣ୍ଟାକ୍ଟ"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"ଆପଣଙ୍କ ଯୋଗାଯୋଗ ଆକ୍ସେସ୍ କରେ"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"ଲୋକେସନ"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"ଆପ୍କୁ, ଭାଇବ୍ରେଟର୍ ନିୟନ୍ତ୍ରଣ କରିବାକୁ ଦେଇଥାଏ।"</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"ଭାଇବ୍ରେଟର୍ ସ୍ଥିତି ଆକ୍ସେସ୍ କରିବାକୁ ଆପକୁ ଅନୁମତି ଦିଏ।"</string> <string name="permlab_callPhone" msgid="1798582257194643320">"ସିଧାସଳଖ ଫୋନ୍ ନମ୍ବରଗୁଡ଼ିକୁ କଲ୍ କରନ୍ତୁ"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"ଆପଣଙ୍କ ହସ୍ତକ୍ଷେପ ବିନା ଫୋନ ନମ୍ଵରକୁ କଲ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଏ। ଏହା ଫଳରେ ଅପ୍ରତ୍ୟାଶିତ ଚାର୍ଜ ଲାଗୁ ହୋଇପାରେ କିମ୍ବା କଲ ହୋଇପାରେ। ଧ୍ୟାନ ଦିଅନ୍ତୁ ଯେ ଏହା ଜରୁରୀକାଳୀନ ନମ୍ବରଗୁଡ଼ିକୁ କଲ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଏ ନାହିଁ। କ୍ଷତିକାରକ ଆପ୍ସ ଆପଣଙ୍କ ସୁନିଶ୍ଚିତକରଣ ବିନା କଲ କରି ଆପଣଙ୍କ ଟଙ୍କା ଖର୍ଚ୍ଚ କରିପାରେ କିମ୍ବା ଅନ୍ୟ ଏକ ନମ୍ବରକୁ ଇନକମିଂ କଲ ସ୍ୱତଃ ଫରୱାର୍ଡ କରୁଥିବା କେରିଅର କୋଡଗୁଡ଼ିକୁ ଡାଏଲ କରିପାରେ।"</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS କଲ୍ ସେବା ଆକ୍ସେସ୍ କରେ"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"ଆପଣଙ୍କ ହସ୍ତକ୍ଷେପ ବିନା କଲ୍ କରିପାରିବା ପାଇଁ ଆପ୍କୁ IMS ସେବା ବ୍ୟବହାର କରିବାକୁ ଦିଏ।"</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"ଫୋନ୍ ସ୍ଥିତି ଓ ପରିଚୟ ପଢ଼ନ୍ତୁ"</string> @@ -664,7 +665,7 @@ </string-array> <string name="fingerprint_error_vendor_unknown" msgid="4170002184907291065">"କିଛି ତ୍ରୁଟି ହୋଇଛି। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string> <string name="fingerprint_icon_content_description" msgid="4741068463175388817">"ଟିପଚିହ୍ନ ଆଇକନ୍"</string> - <string name="face_recalibrate_notification_name" msgid="7311163114750748686">"ଫେସ୍ ଅନଲକ୍"</string> + <string name="face_recalibrate_notification_name" msgid="7311163114750748686">"ଫେସ ଅନଲକ"</string> <string name="face_recalibrate_notification_title" msgid="2524791952735579082">"ଫେସ୍ ଅନଲକ୍ ସହ ସମସ୍ୟା"</string> <string name="face_recalibrate_notification_content" msgid="3064513770251355594">"ଆପଣଙ୍କ ଫେସ୍ ମଡେଲକୁ ଡିଲିଟ୍ କରିବାକୁ ଟାପ୍ କରନ୍ତୁ, ତା\'ପରେ ପୁଣି ଆପଣଙ୍କ ଫେସ୍ ଯୋଗ କରନ୍ତୁ"</string> <string name="face_setup_notification_title" msgid="8843461561970741790">"ଫେସ୍ ଅନଲକ୍ ସେଟ୍ ଅପ୍ କରନ୍ତୁ"</string> @@ -1040,7 +1041,7 @@ <string name="keyguard_accessibility_expand_lock_area" msgid="4215280881346033434">"ଅନଲକ୍ କ୍ଷେତ୍ରକୁ ବଢ଼ାନ୍ତୁ।"</string> <string name="keyguard_accessibility_slide_unlock" msgid="2968195219692413046">"ସ୍ଲାଇଡ୍ ଅନଲକ୍।"</string> <string name="keyguard_accessibility_pattern_unlock" msgid="8669128146589233293">"ପାଟର୍ନ ଅନଲକ୍।"</string> - <string name="keyguard_accessibility_face_unlock" msgid="4533832120787386728">"ଫେସ୍ ଅନଲକ୍।"</string> + <string name="keyguard_accessibility_face_unlock" msgid="4533832120787386728">"ଫେସ ଅନଲକ।"</string> <string name="keyguard_accessibility_pin_unlock" msgid="4020864007967340068">"PIN ଅନଲକ୍।"</string> <string name="keyguard_accessibility_sim_pin_unlock" msgid="4895939120871890557">"PIN ଦ୍ଵାରା SIMକୁ ଅନଲକ୍ କରନ୍ତୁ।"</string> <string name="keyguard_accessibility_sim_puk_unlock" msgid="3459003464041899101">"PUK ଦ୍ଵାରା SIMକୁ ଅନଲକ୍ କରନ୍ତୁ।"</string> @@ -1430,7 +1431,7 @@ <string name="ext_media_unmounting_notification_title" msgid="4147986383917892162">"<xliff:g id="NAME">%s</xliff:g>କୁ ଇଜେକ୍ଟ କରାଯାଉଛି"</string> <string name="ext_media_unmounting_notification_message" msgid="5717036261538754203">"କାଢ଼ନ୍ତୁ ନାହିଁ"</string> <string name="ext_media_init_action" msgid="2312974060585056709">"ସେଟ୍ ଅପ୍ କରନ୍ତୁ"</string> - <string name="ext_media_unmount_action" msgid="966992232088442745">"ବାହାର କରନ୍ତୁ"</string> + <string name="ext_media_unmount_action" msgid="966992232088442745">"କାଢ଼ି ଦିଅନ୍ତୁ"</string> <string name="ext_media_browse_action" msgid="344865351947079139">"ଖୋଜନ୍ତୁ"</string> <string name="ext_media_seamless_action" msgid="8837030226009268080">"ଆଉଟ୍ପୁଟ୍ ସ୍ୱିଚ୍ କରନ୍ତୁ"</string> <string name="ext_media_missing_title" msgid="3209472091220515046">"<xliff:g id="NAME">%s</xliff:g> ନାହିଁ"</string> @@ -1520,7 +1521,7 @@ <string name="progress_erasing" msgid="6891435992721028004">"ସେୟାର୍ ହୋଇଥିବା ଷ୍ଟୋରେଜ୍ ଲିଭାଉଛି…"</string> <string name="share" msgid="4157615043345227321">"ସେୟାର୍"</string> <string name="find" msgid="5015737188624767706">"ଖୋଜନ୍ତୁ"</string> - <string name="websearch" msgid="5624340204512793290">"ୱେବ୍ ସର୍ଚ୍ଚ"</string> + <string name="websearch" msgid="5624340204512793290">"ୱେବ ସର୍ଚ୍ଚ"</string> <string name="find_next" msgid="5341217051549648153">"ପରବର୍ତ୍ତୀ ଖୋଜନ୍ତୁ"</string> <string name="find_previous" msgid="4405898398141275532">"ପୂର୍ବବର୍ତ୍ତୀ ଖୋଜନ୍ତୁ"</string> <string name="gpsNotifTicker" msgid="3207361857637620780">"<xliff:g id="NAME">%s</xliff:g>ଙ୍କଠାରୁ ଲୋକେସନ୍ ଅନୁରୋଧ ଆସିଛି"</string> @@ -1728,14 +1729,14 @@ <string name="accessibility_gesture_3finger_instructional_text" msgid="3425123684990193765">"ଫିଚରଗୁଡ଼ିକ ମଧ୍ୟରେ ସ୍ୱିଚ୍ କରିବାକୁ, ତିନୋଟି ଆଙ୍ଗୁଠିରେ ଉପରକୁ ସ୍ୱାଇପ୍ କରି ଧରି ରଖନ୍ତୁ।"</string> <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"ମ୍ୟାଗ୍ନିଫିକେସନ୍"</string> <string name="user_switched" msgid="7249833311585228097">"ବର୍ତ୍ତମାନର ୟୁଜର୍ ହେଉଛନ୍ତି <xliff:g id="NAME">%1$s</xliff:g>।"</string> - <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g>ରେ ସ୍ୱିଚ୍ କରନ୍ତୁ…"</string> + <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g>ରେ ସ୍ୱିଚ କରନ୍ତୁ…"</string> <string name="user_logging_out_message" msgid="7216437629179710359">"<xliff:g id="NAME">%1$s</xliff:g>ଙ୍କୁ ଲଗଆଉଟ୍ କରାଯାଉଛି…"</string> <string name="owner_name" msgid="8713560351570795743">"ମାଲିକ"</string> <string name="guest_name" msgid="8502103277839834324">"ଅତିଥି"</string> <string name="error_message_title" msgid="4082495589294631966">"ତ୍ରୁଟି"</string> <string name="error_message_change_not_allowed" msgid="843159705042381454">"ଏହି ପରିବର୍ତ୍ତନ ପାଇଁ ଆପଣଙ୍କ ଆଡମିନ୍ ଅନୁମତି ଦେଇନାହାଁନ୍ତି"</string> <string name="app_not_found" msgid="3429506115332341800">"ଏହି କାର୍ଯ୍ୟକୁ ନିୟନ୍ତ୍ରଣ କରିବା ପାଇଁ କୌଣସି ଆପ୍ଲିକେଶନ୍ ମିଳିଲା ନାହିଁ"</string> - <string name="revoke" msgid="5526857743819590458">"ବାହାର କରନ୍ତୁ"</string> + <string name="revoke" msgid="5526857743819590458">"କାଢ଼ି ଦିଅନ୍ତୁ"</string> <string name="mediasize_iso_a0" msgid="7039061159929977973">"ISO A0"</string> <string name="mediasize_iso_a1" msgid="4063589931031977223">"ISO A1"</string> <string name="mediasize_iso_a2" msgid="2779860175680233980">"ISO A2"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"ଏହି ବିଷୟବସ୍ତୁ ୱାର୍କ ଆପଗୁଡ଼ିକରେ ଖୋଲାଯାଇପାରିବ ନାହିଁ"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"ଏହି ବିଷୟବସ୍ତୁ ବ୍ୟକ୍ତିଗତ ଆପଗୁଡ଼ିକରେ ସେୟାର୍ କରାଯାଇପାରିବ ନାହିଁ"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"ଏହି ବିଷୟବସ୍ତୁ ବ୍ୟକ୍ତିଗତ ଆପଗୁଡ଼ିକରେ ଖୋଲାଯାଇପାରିବ ନାହିଁ"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"ୱାର୍କ ଆପ୍ସକୁ ବିରତ କରାଯାଇଛି"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"ପୁଣି ଚାଲୁ କରନ୍ତୁ"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"କୌଣସି ୱାର୍କ ଆପ୍ ନାହିଁ"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"କୌଣସି ବ୍ୟକ୍ତିଗତ ଆପ୍ ନାହିଁ"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"ବ୍ୟକ୍ତିଗତ <xliff:g id="APP">%s</xliff:g> ଖୋଲନ୍ତୁ"</string> diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml index 3c588427bfa9..fece843d2178 100644 --- a/core/res/res/values-pa/strings.xml +++ b/core/res/res/values-pa/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android ਸਿਸਟਮ"</string> <string name="user_owner_label" msgid="8628726904184471211">"ਨਿੱਜੀ ਪ੍ਰੋਫਾਈਲ ਵਰਤੋ"</string> <string name="managed_profile_label" msgid="7316778766973512382">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਵਰਤੋ"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਦੇ ਨਿੱਜੀ ਪ੍ਰੋਫਾਈਲ \'ਤੇ ਜਾਓ"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਦੇ ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ \'ਤੇ ਜਾਓ"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"ਸੰਪਰਕ"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"ਟਿਕਾਣਾ"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"ਐਪ ਨੂੰ ਵਾਈਬ੍ਰੇਟਰ ਤੇ ਨਿਯੰਤਰਣ ਪਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।"</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"ਐਪ ਨੂੰ ਥਰਥਰਾਹਟ ਸਥਿਤੀ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦਿੰਦਾ ਹੈ।"</string> <string name="permlab_callPhone" msgid="1798582257194643320">"ਫ਼ੋਨ ਨੰਬਰਾਂ ਤੇ ਸਿੱਧੇ ਕਾਲ ਕਰੋ"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਦਖਲ ਤੋਂ ਬਿਨਾਂ ਫ਼ੋਨ ਨੰਬਰਾਂ \'ਤੇ ਕਾਲ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ। ਇਸਦੇ ਨਤੀਜੇ ਵਜੋਂ ਅਣਕਿਆਸੇ ਖਰਚੇ ਜਾਂ ਕਾਲਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਨੋਟ ਕਰੋ ਕਿ ਇਹ ਐਪ ਨੂੰ ਐਮਰਜੈਂਸੀ ਨੰਬਰਾਂ \'ਤੇ ਕਾਲ ਕਰਨ ਦੀ ਆਗਿਆ ਨਹੀਂ ਦਿੰਦੀ। ਨੁਕਸਾਨਦੇਹ ਐਪਾਂ ਤੁਹਾਡੀ ਤਸਦੀਕ ਤੋਂ ਬਿਨਾਂ ਕਾਲਾਂ ਕਰ ਕੇ, ਜਾਂ ਕੈਰੀਅਰ ਕੋਡ ਡਾਇਲ ਕਰ ਕੇ ਤੁਹਾਨੂੰ ਖਰਚੇ ਪਾ ਸਕਦੀਆਂ ਹਨ ਜਿਸ ਕਾਰਨ ਇਨਕਮਿੰਗ ਕਾਲਾਂ ਆਪਣੇ ਆਪ ਕਿਸੇ ਹੋਰ ਨੰਬਰ \'ਤੇ ਭੇਜੀਆਂ ਜਾਂਦੀਆਂ ਹਨ।"</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS ਕਾਲ ਸੇਵਾ ਤੱਕ ਪਹੁੰਚ"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਦਖ਼ਲ ਤੋਂ ਬਿਨਾਂ ਕਾਲਾਂ ਕਰਨ ਲਈ IMS ਸੇਵਾ ਵਰਤਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।"</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"ਫ਼ੋਨ ਸਥਿਤੀ ਅਤੇ ਪਛਾਣ ਪੜ੍ਹੋ"</string> @@ -1618,7 +1619,7 @@ <string name="default_audio_route_name" product="tablet" msgid="367936735632195517">"ਟੈਬਲੈੱਟ"</string> <string name="default_audio_route_name" product="tv" msgid="4908971385068087367">"TV"</string> <string name="default_audio_route_name" product="default" msgid="9213546147739983977">"ਫ਼ੋਨ ਕਰੋ"</string> - <string name="default_audio_route_name_dock_speakers" msgid="1551166029093995289">"ਡੌਕ ਸਪੀਕਰਸ"</string> + <string name="default_audio_route_name_dock_speakers" msgid="1551166029093995289">"ਡੌਕ ਸਪੀਕਰ"</string> <string name="default_audio_route_name_external_device" msgid="8124229858618975">"ਬਾਹਰੀ ਡੀਵਾਈਸ"</string> <string name="default_audio_route_name_headphones" msgid="6954070994792640762">"ਹੈੱਡਫ਼ੋਨ"</string> <string name="default_audio_route_name_usb" msgid="895668743163316932">"USB"</string> @@ -1728,7 +1729,7 @@ <string name="accessibility_gesture_3finger_instructional_text" msgid="3425123684990193765">"ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਵਿਚਾਲੇ ਅਦਲਾ-ਬਦਲੀ ਕਰਨ ਲਈ, ਤਿੰਨ ਉਂਗਲਾਂ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ।"</string> <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"ਵੱਡਦਰਸ਼ੀਕਰਨ"</string> <string name="user_switched" msgid="7249833311585228097">"ਮੌਜੂਦਾ ਉਪਭੋਗਤਾ <xliff:g id="NAME">%1$s</xliff:g>।"</string> - <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> \'ਤੇ ਸਵਿਚ ਕਰ ਰਿਹਾ ਹੈ…"</string> + <string name="user_switching_message" msgid="1912993630661332336">"<xliff:g id="NAME">%1$s</xliff:g> \'ਤੇ ਸਵਿੱਚ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string> <string name="user_logging_out_message" msgid="7216437629179710359">"<xliff:g id="NAME">%1$s</xliff:g> ਨੂੰ ਲਾਗ-ਆਉਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ …"</string> <string name="owner_name" msgid="8713560351570795743">"ਮਾਲਕ"</string> <string name="guest_name" msgid="8502103277839834324">"ਮਹਿਮਾਨ"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"ਇਸ ਸਮੱਗਰੀ ਨੂੰ ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਨਾਲ ਨਹੀਂ ਖੋਲ੍ਹਿਆ ਜਾ ਸਕਦਾ"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"ਇਸ ਸਮੱਗਰੀ ਨੂੰ ਨਿੱਜੀ ਐਪਾਂ ਨਾਲ ਸਾਂਝਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"ਇਸ ਸਮੱਗਰੀ ਨੂੰ ਨਿੱਜੀ ਐਪਾਂ ਨਾਲ ਨਹੀਂ ਖੋਲ੍ਹਿਆ ਜਾ ਸਕਦਾ"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਨੂੰ ਰੋਕਿਆ ਗਿਆ ਹੈ"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"ਰੋਕ ਹਟਾਓ"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"ਕੋਈ ਕੰਮ ਸੰਬੰਧੀ ਐਪ ਨਹੀਂ"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"ਕੋਈ ਨਿੱਜੀ ਐਪ ਨਹੀਂ"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"ਨਿੱਜੀ <xliff:g id="APP">%s</xliff:g> ਖੋਲ੍ਹੋ"</string> diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index c247254e3b7a..de78be637203 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -300,6 +300,8 @@ <string name="android_system_label" msgid="5974767339591067210">"System Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Przełącz na profil osobisty"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Przełącz na profil służbowy"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Przełącz na osobistą aplikację <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Przełącz na służbową aplikację <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontakty"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"dostęp do kontaktów"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Lokalizacja"</string> @@ -505,8 +507,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Pozwala aplikacji na sterowanie wibracjami."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Zezwala aplikacji na dostęp do stanu wibracji"</string> <string name="permlab_callPhone" msgid="1798582257194643320">"bezpośrednie wybieranie numerów telefonów"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Zezwala aplikacji na nawiązywanie połączeń telefonicznych bez Twojego udziału. Mogą wystąpić nieoczekiwane opłaty lub połączenia. Pamiętaj, że te uprawnienia nie zezwalają aplikacji na dzwonienie pod numery alarmowe. Złośliwe aplikacje mogą generować koszty wynikające z nawiązywania połączeń bez Twojej wiedzy, a także wybierać określone kody powodujące przekierowywanie połączeń przychodzących na inny numer."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"usługa telefoniczna z dostępem do komunikatora"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Zezwala aplikacji na korzystanie z usługi komunikatora, by nawiązywać połączenia bez Twojego udziału."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"odczytywanie stanu i informacji o telefonie"</string> @@ -687,7 +688,7 @@ <string name="face_acquired_too_right" msgid="6245286514593540859">"Przesuń telefon w lewo"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"Przesuń telefon w prawo"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"Patrz prosto na urządzenie."</string> - <string name="face_acquired_not_detected" msgid="1057966913397548150">"Nie widzę twarzy. Trzymaj telefon na wysokości oczu."</string> + <string name="face_acquired_not_detected" msgid="1057966913397548150">"Nie widać twarzy. Trzymaj telefon na wysokości oczu."</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"Telefon się porusza. Trzymaj go nieruchomo."</string> <string name="face_acquired_recalibrate" msgid="8724013080976469746">"Zarejestruj swoją twarz ponownie."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"Nie rozpoznaję twarzy. Spróbuj ponownie."</string> @@ -695,7 +696,7 @@ <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Patrz prosto na telefon"</string> <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Patrz prosto na telefon"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Patrz prosto na telefon"</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"Usuń wszystko, co zasłania Ci twarz."</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"Usuń wszystko, co zasłania Ci twarz"</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Wyczyść górną krawędź ekranu, w tym czarny pasek"</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> @@ -1241,7 +1242,7 @@ <string name="unsupported_display_size_show" msgid="980129850974919375">"Zawsze pokazuj"</string> <string name="unsupported_compile_sdk_message" msgid="7326293500707890537">"Aplikacja <xliff:g id="APP_NAME">%1$s</xliff:g> została skompilowana pod niezgodną wersję systemu Android i może zachowywać się niezgodnie z oczekiwaniami. Sprawdź, czy jest dostępna zaktualizowana wersja aplikacji."</string> <string name="unsupported_compile_sdk_show" msgid="1601210057960312248">"Zawsze pokazuj"</string> - <string name="unsupported_compile_sdk_check_update" msgid="1103639989147664456">"Sprawdź aktualizację"</string> + <string name="unsupported_compile_sdk_check_update" msgid="1103639989147664456">"Sprawdź dostępność aktualizacji"</string> <string name="smv_application" msgid="3775183542777792638">"Aplikacja <xliff:g id="APPLICATION">%1$s</xliff:g> (proces <xliff:g id="PROCESS">%2$s</xliff:g>) naruszyła wymuszone przez siebie zasady StrictMode."</string> <string name="smv_process" msgid="1398801497130695446">"Proces <xliff:g id="PROCESS">%1$s</xliff:g> naruszył wymuszone przez siebie zasady StrictMode."</string> <string name="android_upgrading_title" product="default" msgid="7279077384220829683">"Telefon się aktualizuje…"</string> @@ -1699,7 +1700,7 @@ <string name="accessibility_shortcut_menu_item_status_on" msgid="6608392117189732543">"WŁ."</string> <string name="accessibility_shortcut_menu_item_status_off" msgid="5531598275559472393">"WYŁ."</string> <string name="accessibility_enable_service_title" msgid="3931558336268541484">"Pozwolić usłudze <xliff:g id="SERVICE">%1$s</xliff:g> na pełną kontrolę nad urządzeniem?"</string> - <string name="accessibility_service_warning_description" msgid="291674995220940133">"Pełna kontrola jest odpowiednia dla aplikacji, które pomagają Ci radzić sobie z niepełnosprawnością, ale nie należy jej przyznawać wszystkim aplikacjom."</string> + <string name="accessibility_service_warning_description" msgid="291674995220940133">"Pełna kontrola jest odpowiednia dla aplikacji, które ułatwiają Ci dostęp, ale nie należy jej przyznawać wszystkim aplikacjom."</string> <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"Wyświetlaj i kontroluj ekran"</string> <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Może odczytywać całą zawartość ekranu i wyświetlać treść nad innymi aplikacjami."</string> <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Wyświetlaj i wykonuj działania"</string> @@ -2161,10 +2162,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Tych treści nie można otworzyć w aplikacjach służbowych"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Tych treści nie można udostępniać w aplikacjach osobistych"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Tych treści nie można otworzyć w aplikacjach osobistych"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Aplikacje służbowe zostały wstrzymane"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Cofnij wstrzymanie"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Brak aplikacji służbowych"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Brak aplikacji osobistych"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Otwórz aplikację osobistą <xliff:g id="APP">%s</xliff:g>"</string> diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml index ff9b8c6aa04f..57d7c197371b 100644 --- a/core/res/res/values-pt-rBR/strings.xml +++ b/core/res/res/values-pt-rBR/strings.xml @@ -299,6 +299,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Sistema Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Mudar para o perfil pessoal"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Perfil de trabalho"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Mudar para o app <xliff:g id="APP_NAME">%1$s</xliff:g> do perfil pessoal"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Mudar para o app <xliff:g id="APP_NAME">%1$s</xliff:g> do perfil de trabalho"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Contatos"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"acesse seus contatos"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Localização"</string> @@ -504,8 +506,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Permite que o app controle a vibração."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permite que o app acesse o estado da vibração."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"ligar diretamente para números de telefone"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Permite que o app faça ligações para números de telefone sem a sua intervenção. Ligações ou cobranças inesperadas podem acontecer. Isso não permite que o app ligue para números de emergência. Você pode receber cobranças indesejadas de ligações feitas por apps maliciosos sem a sua confirmação. Além disso, esses apps podem discar códigos de operadora que automaticamente encaminham ligações recebidas para outro número."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"acessar serviço de mensagens instantâneas para chamadas"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Permite que o app use o serviço de mensagens instantâneas para fazer chamadas sem sua intervenção."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"ler status e identidade do telefone"</string> @@ -635,7 +636,7 @@ <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"Claro demais"</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"O botão liga/desliga foi pressionado"</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"Ajuste a posição do dedo"</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Mude a posição do dedo ligeiramente a cada momento"</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Mude ligeiramente a posição do dedo em cada registro"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"Impressão digital não reconhecida"</string> @@ -694,7 +695,7 @@ <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Olhe diretamente para o smartphone"</string> <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Olhe diretamente para o smartphone"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Olhe diretamente para o smartphone"</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"Remova tudo que esteja ocultando seu rosto."</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"Tire tudo que possa esconder seu rosto."</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Limpe a parte superior da tela, inclusive a barra preta"</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> @@ -702,7 +703,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Falha ao criar o modelo de rosto. Tente de novo."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Óculos escuros detectados. Seu rosto precisa estar completamente visível."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Máscara detectada. Seu rosto precisa estar completamente visível."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Máscara detectada. Seu rosto precisa estar visível."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Impossível verificar rosto. Hardware indisponível."</string> @@ -1729,7 +1730,7 @@ <string name="accessibility_gesture_3finger_instructional_text" msgid="3425123684990193765">"Para alternar entre recursos, deslize de baixo para cima na tela com três dedos, sem soltar."</string> <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Ampliação"</string> <string name="user_switched" msgid="7249833311585228097">"Usuário atual <xliff:g id="NAME">%1$s</xliff:g>."</string> - <string name="user_switching_message" msgid="1912993630661332336">"Alternando para <xliff:g id="NAME">%1$s</xliff:g>…"</string> + <string name="user_switching_message" msgid="1912993630661332336">"Mudando para <xliff:g id="NAME">%1$s</xliff:g>…"</string> <string name="user_logging_out_message" msgid="7216437629179710359">"Desconectando <xliff:g id="NAME">%1$s</xliff:g>…"</string> <string name="owner_name" msgid="8713560351570795743">"Proprietário"</string> <string name="guest_name" msgid="8502103277839834324">"Visitante"</string> @@ -2160,10 +2161,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Não é possível abrir esse conteúdo com apps de trabalho"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Não é possível compartilhar esse conteúdo com apps pessoais"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Não é possível abrir esse conteúdo com apps pessoais"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Os apps de trabalho foram pausados"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Reativar"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Nenhum app de trabalho"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Nenhum app pessoal"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Abrir <xliff:g id="APP">%s</xliff:g> no perfil pessoal"</string> diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index b252551d785a..d209189b88e8 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -299,6 +299,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Sistema Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Mudar para o perfil pessoal"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Mudar para o perfil de trabalho"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Mudar para <xliff:g id="APP_NAME">%1$s</xliff:g> pessoal"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Mudar para <xliff:g id="APP_NAME">%1$s</xliff:g> de trabalho"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Contactos"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"aceder aos contactos"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Localização"</string> @@ -504,8 +506,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Permite à app controlar o vibrador."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permite que a app aceda ao estado de vibração."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"marcar números de telefone diretamente"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Permite que a app ligue para números de telefone sem a sua intervenção. Esta ação pode resultar em cobranças ou chamadas inesperadas. Tenha em atenção que isto não permite que a app ligue para números de emergência. As apps maliciosas podem fazer chamadas sem a sua confirmação, com possíveis custos para si, ou marcar códigos do operador, o que faz com que as chamadas recebidas sejam encaminhadas automaticamente para outro número."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"aceder ao serviço de chamadas IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Permite que a app utilize o serviço IMS para fazer chamadas sem a sua intervenção."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"ler o estado e a identidade do telemóvel"</string> @@ -678,7 +679,7 @@ <string name="fingerprint_recalibrate_notification_content" msgid="8519935717822194943">"Visite um fornecedor de serviços de reparação."</string> <string name="face_acquired_insufficient" msgid="6889245852748492218">"Impossível criar modelo de rosto. Tente novamente."</string> <string name="face_acquired_too_bright" msgid="8070756048978079164">"Demasiado clara. Experimente uma luz mais suave."</string> - <string name="face_acquired_too_dark" msgid="8539853432479385326">"Não há luz suficiente"</string> + <string name="face_acquired_too_dark" msgid="8539853432479385326">"Sem luz suficiente"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Afaste ainda mais o telemóvel"</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"Aproxime o telemóvel do rosto"</string> <string name="face_acquired_too_high" msgid="8278815780046368576">"Mova o telemóvel mais para cima"</string> @@ -702,7 +703,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Não é possível criar o seu modelo de rosto. Tente novamente."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Óculos escuros detetados. O seu rosto tem de estar completamente visível."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Cobertura facial detetada. O seu rosto tem de estar completamente visível."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Cobertura facial detetada. Todo o rosto tem de estar visível."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Não pode validar o rosto. Hardware não disponível."</string> @@ -2160,10 +2161,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Não é possível abrir este conteúdo com apps de trabalho"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Não é possível partilhar este conteúdo com apps pessoais"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Não é possível abrir este conteúdo com apps pessoais"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"As apps de trabalho estão pausadas"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Retomar"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Sem apps de trabalho"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Sem apps pessoais"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Abra a app <xliff:g id="APP">%s</xliff:g> pessoal"</string> @@ -2320,7 +2319,7 @@ <string name="mic_access_on_toast" msgid="2666925317663845156">"O microfone está disponível"</string> <string name="mic_access_off_toast" msgid="8111040892954242437">"O microfone está bloqueado"</string> <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Dois ecrãs"</string> - <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"A funcionalidade Dois ecrãs está ativada"</string> + <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Funcionalidade Dual Screen ativada"</string> <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"A app <xliff:g id="APP_NAME">%1$s</xliff:g> está a usar ambos os ecrãs para mostrar conteúdo"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"O dispositivo está a ficar demasiado quente"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"A funcionalidade Dois ecrãs está indisponível porque o seu telemóvel está a ficar demasiado quente"</string> diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index ff9b8c6aa04f..57d7c197371b 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -299,6 +299,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Sistema Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Mudar para o perfil pessoal"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Perfil de trabalho"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Mudar para o app <xliff:g id="APP_NAME">%1$s</xliff:g> do perfil pessoal"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Mudar para o app <xliff:g id="APP_NAME">%1$s</xliff:g> do perfil de trabalho"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Contatos"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"acesse seus contatos"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Localização"</string> @@ -504,8 +506,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Permite que o app controle a vibração."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permite que o app acesse o estado da vibração."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"ligar diretamente para números de telefone"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Permite que o app faça ligações para números de telefone sem a sua intervenção. Ligações ou cobranças inesperadas podem acontecer. Isso não permite que o app ligue para números de emergência. Você pode receber cobranças indesejadas de ligações feitas por apps maliciosos sem a sua confirmação. Além disso, esses apps podem discar códigos de operadora que automaticamente encaminham ligações recebidas para outro número."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"acessar serviço de mensagens instantâneas para chamadas"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Permite que o app use o serviço de mensagens instantâneas para fazer chamadas sem sua intervenção."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"ler status e identidade do telefone"</string> @@ -635,7 +636,7 @@ <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"Claro demais"</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"O botão liga/desliga foi pressionado"</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"Ajuste a posição do dedo"</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Mude a posição do dedo ligeiramente a cada momento"</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Mude ligeiramente a posição do dedo em cada registro"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"Impressão digital não reconhecida"</string> @@ -694,7 +695,7 @@ <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Olhe diretamente para o smartphone"</string> <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Olhe diretamente para o smartphone"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Olhe diretamente para o smartphone"</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"Remova tudo que esteja ocultando seu rosto."</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"Tire tudo que possa esconder seu rosto."</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Limpe a parte superior da tela, inclusive a barra preta"</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> @@ -702,7 +703,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Falha ao criar o modelo de rosto. Tente de novo."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Óculos escuros detectados. Seu rosto precisa estar completamente visível."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Máscara detectada. Seu rosto precisa estar completamente visível."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Máscara detectada. Seu rosto precisa estar visível."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Impossível verificar rosto. Hardware indisponível."</string> @@ -1729,7 +1730,7 @@ <string name="accessibility_gesture_3finger_instructional_text" msgid="3425123684990193765">"Para alternar entre recursos, deslize de baixo para cima na tela com três dedos, sem soltar."</string> <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Ampliação"</string> <string name="user_switched" msgid="7249833311585228097">"Usuário atual <xliff:g id="NAME">%1$s</xliff:g>."</string> - <string name="user_switching_message" msgid="1912993630661332336">"Alternando para <xliff:g id="NAME">%1$s</xliff:g>…"</string> + <string name="user_switching_message" msgid="1912993630661332336">"Mudando para <xliff:g id="NAME">%1$s</xliff:g>…"</string> <string name="user_logging_out_message" msgid="7216437629179710359">"Desconectando <xliff:g id="NAME">%1$s</xliff:g>…"</string> <string name="owner_name" msgid="8713560351570795743">"Proprietário"</string> <string name="guest_name" msgid="8502103277839834324">"Visitante"</string> @@ -2160,10 +2161,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Não é possível abrir esse conteúdo com apps de trabalho"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Não é possível compartilhar esse conteúdo com apps pessoais"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Não é possível abrir esse conteúdo com apps pessoais"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Os apps de trabalho foram pausados"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Reativar"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Nenhum app de trabalho"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Nenhum app pessoal"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Abrir <xliff:g id="APP">%s</xliff:g> no perfil pessoal"</string> diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index 8646da4b7b23..f2de318e44f1 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -299,6 +299,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Sistemul Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Comută la profilul personal"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Comută la profilul de serviciu"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Comută la <xliff:g id="APP_NAME">%1$s</xliff:g> personal"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Comută la <xliff:g id="APP_NAME">%1$s</xliff:g> pentru serviciu"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Agendă"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"să acceseze agenda"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Locație"</string> @@ -504,8 +506,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Permite aplicației să controleze mecanismul de vibrare."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Permite aplicației să acceseze modul de vibrații."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"să sune direct la numere de telefon"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Permite aplicației să apeleze numere de telefon fără intervenția ta. Acest lucru poate duce la taxe sau apeluri neașteptate. Aplicația nu poate apela și numere de urgență. Aplicațiile rău intenționate pot să te coste, deoarece fac apeluri fără confirmare sau formează coduri de la operator care redirecționează automat apelurile primite la alt număr."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"accesează serviciul de apelare IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Permite aplicației să folosească serviciul IMS pentru apeluri, fără intervenția ta."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"citește starea și identitatea telefonului"</string> @@ -691,7 +692,7 @@ <string name="face_acquired_recalibrate" msgid="8724013080976469746">"Reînregistrează-ți chipul."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"Chipul nu a fost recunoscut. Reîncearcă."</string> <string name="face_acquired_too_similar" msgid="8882920552674125694">"Schimbă ușor poziția capului"</string> - <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Priviți direct spre telefon"</string> + <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Privește mai direct spre telefon"</string> <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Privește mai direct spre telefon"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Privește mai direct spre telefon"</string> <string name="face_acquired_obscured" msgid="4917643294953326639">"Îndepărtează orice îți ascunde chipul."</string> @@ -702,7 +703,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Nu se poate crea modelul facial. Reîncearcă."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"S-au detectat ochelari de culoare închisă. Chipul trebuie să fie vizibil în totalitate."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"S-a detectat un articol care acoperă chipul. Chipul trebuie să fie vizibil în totalitate."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Un articol acoperă chipul. Întreg chipul trebuie să fie vizibil."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Nu se poate confirma fața. Hardware-ul nu este disponibil."</string> @@ -2160,10 +2161,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Acest conținut nu poate fi deschis cu aplicații pentru lucru"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Acest conținut nu poate fi trimis cu aplicații personale"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Acest conținut nu poate fi deschis cu aplicații personale"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Aplicațiile pentru lucru sunt întrerupte"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Reactivează"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Nicio aplicație pentru lucru"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Nicio aplicație personală"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Deschide <xliff:g id="APP">%s</xliff:g> personal"</string> @@ -2307,7 +2306,7 @@ <string name="vdm_camera_access_denied" product="tablet" msgid="6895968310395249076">"Nu se poate accesa camera foto a tabletei de pe <xliff:g id="DEVICE">%1$s</xliff:g>"</string> <string name="vdm_secure_window" msgid="161700398158812314">"Nu se poate accesa în timpul streamingului. Încearcă pe telefon."</string> <string name="vdm_pip_blocked" msgid="4036107522497281397">"Nu se poate viziona picture-in-picture în timpul streamingului"</string> - <string name="system_locale_title" msgid="711882686834677268">"Prestabilit de sistem"</string> + <string name="system_locale_title" msgid="711882686834677268">"Prestabilită de sistem"</string> <string name="default_card_name" msgid="9198284935962911468">"CARD <xliff:g id="CARDNUMBER">%d</xliff:g>"</string> <string name="permlab_companionProfileWatch" msgid="2457738382085872542">"Permisiunea pentru gestionarea ceasurilor din profilul ceasului însoțitor"</string> <string name="permdesc_companionProfileWatch" msgid="5655698581110449397">"Permite unei aplicații partenere să gestioneze ceasuri."</string> diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index 39a4a65214fd..a0cb9c353571 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -300,6 +300,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Система Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Переключиться на личный профиль"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Перейти в рабочий профиль"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Открыть <xliff:g id="APP_NAME">%1$s</xliff:g> в личном профиле"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Открыть <xliff:g id="APP_NAME">%1$s</xliff:g> в рабочем профиле"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Контакты"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"доступ к контактам"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Местоположение"</string> @@ -505,8 +507,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Приложение сможет контролировать вибросигналы."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Приложение сможет получать доступ к состоянию виброотклика."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"Осуществление телефонных вызовов"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Разрешает приложению совершать вызовы без вашего участия. Это может привести к непредвиденным расходам или незапланированным звонкам. Обратите внимание, что приложению не предоставляется разрешение на звонки в экстренные службы. Из-за вредоносных приложений, которые совершают платные звонки без вашего подтверждения или используют коды оператора, чтобы входящие вызовы автоматически переадресовывались на другой номер, у вас могут списываться средства."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"совершение звонков с помощью службы IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Позволяет приложению совершать звонки с помощью службы IMS без вашего вмешательства."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"Получение данных о статусе телефона"</string> @@ -2161,10 +2162,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Этот контент нельзя открыть в рабочем приложении."</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Этот контент нельзя открывать через личные приложения."</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Этот контент нельзя открыть в личном приложении."</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Рабочие приложения приостановлены."</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Включить"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Не поддерживается рабочими приложениями."</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Не поддерживается личными приложениями."</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Откройте приложение \"<xliff:g id="APP">%s</xliff:g>\" в личном профиле"</string> @@ -2322,7 +2321,7 @@ <string name="mic_access_off_toast" msgid="8111040892954242437">"Микрофон заблокирован."</string> <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Двойной экран"</string> <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Двойной экран включен"</string> - <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> показывает контент на обоих экранах."</string> + <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> использует оба экрана."</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"Устройство перегрелось"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"Двойной экран недоступен из-за перегрева телефона."</string> <string name="concurrent_display_notification_power_save_title" msgid="1794569070730736281">"Функция Dual Screen недоступна"</string> diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml index c8a8b4cde59b..aafee6a54a71 100644 --- a/core/res/res/values-si/strings.xml +++ b/core/res/res/values-si/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android පද්ධතිය"</string> <string name="user_owner_label" msgid="8628726904184471211">"පුද්ගලික පැතිකඩ වෙත මාරුවන්න"</string> <string name="managed_profile_label" msgid="7316778766973512382">"කාර්යාල පැතිකඩ වෙත මාරු වන්න"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"පුද්ගලික වෙත මාරු කරන්න <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"කාර්යාලය වෙත මාරු කරන්න <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"සම්බන්ධතා"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"ඔබේ සම්බන්ධතාවලට පිවිසෙන්න"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"ස්ථානය"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"කම්පකය පාලනයට යෙදුමට අවසර දෙන්න."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"යෙදුමට කම්පන තත්ත්වයට ප්රවේශ වීමට ඉඩ දෙන්න."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"දුරකථන අංක වෙත ඍජුවම අමතන්න"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"ඔබේ මැදිහත්වීමකින් තොරව දුරකථන අංක ඇමතීමට යෙදුමට ඉඩ දෙයි. මෙය අනපේක්ෂිත ගාස්තු හෝ ඇමතුම්වලට හේතු විය හැක. මෙය යෙදුමට හදිසි ඇමතුම් අංක ඇමතීමට ඉඩ නොදෙන බව සලකන්න. ඔබේ තහවුරු කිරීමකින් තොරව ඇමතුම් ලබා දීමෙන්, හෝ ලැබෙන ඇමතුම් ස්වයංක්රීයව වෙනත් අංකයකට යොමු කිරීමට හේතු වන වාහක කේත ඇමතීමෙන් අනිෂ්ට යෙදුම් ඔබේ මුදල් වැය කළ හැක."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS ඇමතුම් සේවාවට පිවිසෙන්න"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"ඔබේ මැදිහත්වීමකින් තොරව ඇමතුම් සිදු කිරීමට IMS සේවාව භාවිතයට යෙදුමට ඉඩ දෙන්න."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"දුරකථනයේ තත්වය සහ අනන්යතාවය කියවීම"</string> @@ -710,8 +711,7 @@ <string name="face_error_canceled" msgid="2164434737103802131">"මුහුණු මෙහෙයුම අවලංගු කරන ලදී."</string> <string name="face_error_user_canceled" msgid="5766472033202928373">"පරිශීලකයා විසින් මුහුණෙන් අගුළු හැරීම අවලංගු කරන ලදි"</string> <string name="face_error_lockout" msgid="7864408714994529437">"උත්සාහයන් ඉතා වැඩි ගණනකි. පසුව නැවත උත්සාහ කරන්න."</string> - <!-- no translation found for face_error_lockout_permanent (8533257333130473422) --> - <skip /> + <string name="face_error_lockout_permanent" msgid="8533257333130473422">"උත්සාහ ගණන ඉතා වැඩියි. මුහුණෙන් අගුළු ඇරීම නැත."</string> <string name="face_error_lockout_screen_lock" msgid="5062609811636860928">"උත්සාහයන් ඉතා වැඩි ගණනකි. ඒ වෙනුවට තිර අගුල ඇතුළු කරන්න."</string> <string name="face_error_unable_to_process" msgid="5723292697366130070">"මුහුණ සත්යාපන කළ නොහැක. නැවත උත්සාහ කරන්න."</string> <string name="face_error_not_enrolled" msgid="1134739108536328412">"ඔබ මුහුණෙන් අගුළු හැරීම පිහිටුවා නැත"</string> @@ -2160,16 +2160,12 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"මෙම අන්තර්ගතය කාර්යාල යෙදුම් සමඟ විවෘත කළ නොහැකිය"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"මෙම අන්තර්ගතය පුද්ගලික යෙදුම් සමඟ බෙදා ගත නොහැකිය"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"මෙම අන්තර්ගතය පුද්ගලික යෙදුම් සමඟ විවෘත කළ නොහැකිය"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"කාර්යාල යෙදුම් විරාම කර ඇත"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"විරාම නොකරන්න"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"කාර්යාල යෙදුම් නැත"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"පුද්ගලික යෙදුම් නැත"</string> - <!-- no translation found for miniresolver_open_in_personal (6499100403307136696) --> - <skip /> - <!-- no translation found for miniresolver_open_in_work (7138659785478630639) --> - <skip /> + <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"පුද්ගලික <xliff:g id="APP">%s</xliff:g> විවෘත කරන්න"</string> + <string name="miniresolver_open_in_work" msgid="7138659785478630639">"කාර්යාල <xliff:g id="APP">%s</xliff:g> විවෘත කරන්න"</string> <string name="miniresolver_use_personal_browser" msgid="776072682871133308">"පුද්ගලික බ්රව්සරය භාවිත කරන්න"</string> <string name="miniresolver_use_work_browser" msgid="543575306251952994">"කාර්යාල බ්රව්සරය භාවිත කරන්න"</string> <string name="PERSOSUBSTATE_SIM_NETWORK_ENTRY" msgid="8050953231914637819">"SIM ජාල අගුලු හැරීමේ PIN"</string> diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index 8ea89362744a..8dcdacbd7f6a 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -300,6 +300,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Systém Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Prepnúť na osobný profil"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Prepnúť na pracovný profil"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Prepnúť na osobnú verziu aplikácie <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Prepnúť na pracovnú verziu aplikácie <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontakty"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"prístup ku kontaktom"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Poloha"</string> @@ -505,8 +507,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Umožňuje aplikácii ovládať vibrácie."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Povoľuje aplikácii prístup k stavu vibrátora."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"priamo volať na telefónne čísla"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Umožňuje aplikácii volať na telefónne čísla bez vášho zásahu. Môže to viesť k neočakávaným poplatkom alebo hovorov. Upozorňujeme, že aplikácia nemôže volať na tiesňové linky. Škodlivé aplikácie vám môžu spôsobiť poplatky, pretože volajú bez vášho vedomia alebo vytáčajú kódy operátorov, ktoré automaticky presmerovávajú prichádzajúce hovory na iné číslo."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"prístup k službe volania IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Umožňuje aplikácii používať službu okamžitých správ (IMS) na volanie bez intervencie používateľa."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"čítať stav a identitu telefónu"</string> @@ -695,7 +696,7 @@ <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Pozrite sa na telefón priamejšie"</string> <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Pozrite sa na telefón priamejšie"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Pozrite sa na telefón priamejšie"</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"Odstráňte všetko, čo vám zakrýva tvár."</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"Odstráňte všetko, čo vám zakrýva tvár"</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Vyčistite hornú časť obrazovky vrátane čierneho panela"</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> @@ -2161,10 +2162,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Tento obsah sa nedá otvoriť pomocou pracovných aplikácií"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Tento obsah sa nedá zdieľať pomocou osobných aplikácií"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Tento obsah sa nedá otvoriť pomocou osobných aplikácií"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Pracovné aplikácie sú pozastavené"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Zrušiť pozastavenie"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Žiadne pracovné aplikácie"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Žiadne osobné aplikácie"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Otvorte osobnú aplikáciu <xliff:g id="APP">%s</xliff:g>"</string> @@ -2320,8 +2319,8 @@ <string name="permdesc_startForegroundServicesFromBackground" msgid="4071826571656001537">"Umožňuje sprievodnej aplikácii spúšťať služby na popredí z pozadia."</string> <string name="mic_access_on_toast" msgid="2666925317663845156">"Mikrofón je k dispozícii"</string> <string name="mic_access_off_toast" msgid="8111040892954242437">"Mikrofón je blokovaný"</string> - <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Dvojitá obrazovka"</string> - <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Dvojitá obrazovka je zapnutá"</string> + <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Dual Screen"</string> + <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Je zapnutá funkcia Dual Screen"</string> <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> zobrazuje obsah na oboch obrazovkách"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"Zariadenie je príliš horúce"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"Dvojitá obrazovka nie je k dispozícii, pretože telefón sa prehrieva"</string> diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml index 223fa0a31336..0d948cf2dd58 100644 --- a/core/res/res/values-sl/strings.xml +++ b/core/res/res/values-sl/strings.xml @@ -300,6 +300,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Sistem Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Preklopi na osebni profil"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Preklopi na delovni profil"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Preklopi na osebno aplikacijo <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Preklopi na delovno aplikacijo <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Stiki"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"dostop do stikov"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Lokacija"</string> @@ -505,8 +507,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Aplikaciji omogoča nadzor vibriranja."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Aplikaciji dovoljuje dostop do stanja vibriranja."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"neposredno klicanje telefonskih številk"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Aplikaciji omogoča klicanje telefonskih številk brez vašega posredovanja. Zaradi tega lahko pride do nepričakovanih stroškov ali klicev. Upoštevajte, da to aplikaciji ne dovoljuje klicanja številk za klic v sili. Zlonamerne aplikacije lahko kličejo brez vaše potrditve ali pa kličejo kode operaterjev, ki povzročijo, da se dohodni klici samodejno posredujejo na drugo številko, kar vas lahko drago stane."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"dostop do storitve za klicanje IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Aplikaciji dovoljuje uporabo storitev IMS za opravljanje klicev brez vašega posredovanja."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"branje stanja in identitete telefona"</string> @@ -636,7 +637,7 @@ <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"Presvetlo je."</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"Zaznan je bil pritisk gumba za vklop."</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"Poskusite popraviti položaj prsta."</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Vsakič nekoliko spremenite položaj prsta."</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Vsakič nekoliko spremenite položaj prsta"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"Prstni odtis ni prepoznan."</string> @@ -682,20 +683,20 @@ <string name="face_acquired_too_dark" msgid="8539853432479385326">"Premalo svetlobe"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Telefon nekoliko odmaknite."</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"Bolj približajte telefon."</string> - <string name="face_acquired_too_high" msgid="8278815780046368576">"Telefon premaknite višje."</string> - <string name="face_acquired_too_low" msgid="4075391872960840081">"Telefon premaknite nižje."</string> - <string name="face_acquired_too_right" msgid="6245286514593540859">"Telefon premaknite v svojo levo."</string> - <string name="face_acquired_too_left" msgid="9201762240918405486">"Telefon premaknite v svojo desno."</string> + <string name="face_acquired_too_high" msgid="8278815780046368576">"Telefon premaknite višje"</string> + <string name="face_acquired_too_low" msgid="4075391872960840081">"Telefon premaknite nižje"</string> + <string name="face_acquired_too_right" msgid="6245286514593540859">"Telefon premaknite v svojo levo"</string> + <string name="face_acquired_too_left" msgid="9201762240918405486">"Telefon premaknite v svojo desno"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"Glejte bolj naravnost v napravo."</string> <string name="face_acquired_not_detected" msgid="1057966913397548150">"Obraz ni viden. Držite telefon v višini oči."</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"Preveč se premikate. Držite telefon pri miru."</string> <string name="face_acquired_recalibrate" msgid="8724013080976469746">"Znova registrirajte svoj obraz."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"Obraza ni mogoče prepoznati. Poskusite znova."</string> <string name="face_acquired_too_similar" msgid="8882920552674125694">"Nekoliko spremenite položaj glave."</string> - <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Glejte bolj naravnost v telefon."</string> - <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Glejte bolj naravnost v telefon."</string> - <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Glejte bolj naravnost v telefon."</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"Umaknite vse, kar vam morda zakriva obraz."</string> + <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Glejte bolj naravnost v telefon"</string> + <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Glejte bolj naravnost v telefon"</string> + <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Glejte bolj naravnost v telefon"</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"Umaknite vse, kar vam morda zakriva obraz"</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Očistite vrhnji del zaslona, vključno s črno vrstico"</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> @@ -1730,7 +1731,7 @@ <string name="accessibility_gesture_3finger_instructional_text" msgid="3425123684990193765">"Če želite preklopiti med funkcijami, s tremi prsti povlecite navzgor in pridržite."</string> <string name="accessibility_magnification_chooser_text" msgid="1502075582164931596">"Povečava"</string> <string name="user_switched" msgid="7249833311585228097">"Trenutni uporabnik <xliff:g id="NAME">%1$s</xliff:g>."</string> - <string name="user_switching_message" msgid="1912993630661332336">"Preklop na uporabnika <xliff:g id="NAME">%1$s</xliff:g> …"</string> + <string name="user_switching_message" msgid="1912993630661332336">"Preklapljanje na uporabnika <xliff:g id="NAME">%1$s</xliff:g> …"</string> <string name="user_logging_out_message" msgid="7216437629179710359">"Odjavljanje uporabnika <xliff:g id="NAME">%1$s</xliff:g> …"</string> <string name="owner_name" msgid="8713560351570795743">"Lastnik"</string> <string name="guest_name" msgid="8502103277839834324">"Gost"</string> @@ -2161,10 +2162,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Te vsebine ni mogoče odpreti z delovnimi aplikacijami."</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Te vsebine ni mogoče deliti z osebnimi aplikacijami."</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Te vsebine ni mogoče odpreti z osebnimi aplikacijami."</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Delovne aplikacije so začasno zaustavljene."</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Znova aktiviraj"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Nobena delovna aplikacija ni na voljo"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Nobena osebna aplikacija"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Odpri aplikacijo <xliff:g id="APP">%s</xliff:g> v osebnem profilu"</string> diff --git a/core/res/res/values-sq/strings.xml b/core/res/res/values-sq/strings.xml index c01da3e6dcda..d5bb5c23561c 100644 --- a/core/res/res/values-sq/strings.xml +++ b/core/res/res/values-sq/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Sistemi Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Kalo te profili personal"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Kalo te profili i punës"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Kalo te <xliff:g id="APP_NAME">%1$s</xliff:g> personal"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Kalo te <xliff:g id="APP_NAME">%1$s</xliff:g> i punës"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontaktet"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"qasu te kontaktet e tua"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Vendndodhja"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Lejon aplikacionin të kontrollojë dridhësin."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Lejon që aplikacioni të ketë qasje te gjendja e dridhësit."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"telefono drejtpërdrejt numrat e telefonit"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Lejon që aplikacioni të telefonojë numrat e telefonit pa ndërhyrjen tënde. Kjo mund të sjellë telefonata ose tarifa të papritura. Ki parasysh se kjo nuk e lejon aplikacionin të telefonojë numrat e urgjencës. Aplikacionet keqdashëse mund të të shkaktojnë kosto duke kryer telefonata pa konfirmimin tënd ose të formojnë kode të operatorit celular që bëjnë që telefonatat hyrëse të transferohen automatikisht te një numër tjetër."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"qasje në shërbimin e telefonatave IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Lejon aplikacionin të përdorë shërbimin IMS për të kryer telefonata pa ndërhyrjen tënde."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"lexo statusin e telefonit dhe identitetin"</string> @@ -680,8 +681,8 @@ <string name="face_acquired_too_dark" msgid="8539853432479385326">"Nuk ka dritë të mjaftueshme"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Lëvize telefonin më larg"</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"Lëvize telefonin më afër"</string> - <string name="face_acquired_too_high" msgid="8278815780046368576">"Lëvize telefonin më lart"</string> - <string name="face_acquired_too_low" msgid="4075391872960840081">"Lëvize telefonin më poshtë"</string> + <string name="face_acquired_too_high" msgid="8278815780046368576">"Ngrije telefonin më lart"</string> + <string name="face_acquired_too_low" msgid="4075391872960840081">"Ule telefonin më poshtë"</string> <string name="face_acquired_too_right" msgid="6245286514593540859">"Lëvize telefonin në të majtën tënde"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"Lëvize telefonin në të djathtën tënde"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"Shiko më drejt në pajisjen tënde."</string> @@ -701,7 +702,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Modeli i fytyrës nuk krijohet. Provo sërish."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"U zbuluan syze të errëta. Fytyra jote duhet të jetë plotësisht e dukshme."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"U zbulua mbulim i fytyrës. Fytyra jote duhet të jetë plotësisht e dukshme."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Fytyra është e mbuluar. Fytyra duhet të jetë plotësisht e dukshme."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Fytyra s\'mund të verifikohet. Hardueri nuk ofrohet."</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Kjo përmbajtje nuk mund të hapet me aplikacione pune"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Kjo përmbajtje nuk mund të shpërndahet me aplikacione personale"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Kjo përmbajtje nuk mund të hapet me aplikacione personale"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Aplikacionet e punës janë vendosur në pauzë"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Hiq nga pauza"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Nuk ka aplikacione pune"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Nuk ka aplikacione personale"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Hap <xliff:g id="APP">%s</xliff:g> personal"</string> diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index 15d18a60e9c3..11af2ba5f833 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -299,6 +299,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android систем"</string> <string name="user_owner_label" msgid="8628726904184471211">"Пређи на лични профил"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Пређи на пословни профил"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Пређи на лични профил апликације <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Пређи на пословни профил апликације <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Контакти"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"приступи контактима"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Локација"</string> @@ -504,8 +506,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Дозвољава апликацији да контролише вибрацију."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Дозвољава апликацији да приступа стању вибрирања."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"директно позивање бројева телефона"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Дозвољава апликацији да позива бројеве телефона без ваше интеракције. То може да доведе до неочекиваних наплата или позива. Имајте у виду да се тиме апликацији не дозвољава да позива бројеве за хитне случајеве. Злонамерне апликације могу да изазову трошкове упућивањем позива без ваше потврде или да бирају кодове оператера услед чега се долазни позиви аутоматски прослеђују на други број."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"приступ услузи позива помоћу размене тренутних порука"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Дозвољава апликацији да користи услугу размене тренутних порука да би упућивала позиве без ваше интервенције."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"читање статуса и идентитета телефона"</string> @@ -702,7 +703,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Прављење модела лица није успело. Пробајте поново."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Откривене су тамне наочари. Лице мора да буде потпуно видљиво."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Откривено је прекривање лица. Лице мора да буде потпуно видљиво."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Лице је прекривено. Мора да буде сасвим видљиво."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Провера лица није успела. Хардвер није доступан."</string> @@ -1256,7 +1257,7 @@ <string name="android_upgrading_starting_apps" msgid="6206161195076057075">"Покретање апликација."</string> <string name="android_upgrading_complete" msgid="409800058018374746">"Завршавање покретања."</string> <string name="fp_power_button_enrollment_message" msgid="5648173517663246140">"Притиснули сте дугме за укључивање – тиме обично искључујете екран.\n\nПробајте лагано да додирнете док подешавате отисак прста."</string> - <string name="fp_power_button_enrollment_title" msgid="6976841690455338563">"Завршите подешавање искључивањем екрана"</string> + <string name="fp_power_button_enrollment_title" msgid="6976841690455338563">"Искључите екран и напустите подешавање"</string> <string name="fp_power_button_enrollment_button_text" msgid="3199783266386029200">"Искључи"</string> <string name="fp_power_button_bp_title" msgid="5585506104526820067">"Настављате верификацију отиска прста?"</string> <string name="fp_power_button_bp_message" msgid="2983163038168903393">"Притиснули сте дугме за укључивање – тиме обично искључујете екран.\n\nПробајте лагано да додирнете да бисте верификовали отисак прста."</string> @@ -1846,7 +1847,7 @@ <string name="restr_pin_confirm_pin" msgid="7143161971614944989">"Потврдите нови PIN"</string> <string name="restr_pin_create_pin" msgid="917067613896366033">"Направите PIN за измену ограничења"</string> <string name="restr_pin_error_doesnt_match" msgid="7063392698489280556">"PIN-ови се не подударају. Пробајте поново."</string> - <string name="restr_pin_error_too_short" msgid="1547007808237941065">"PIN је прекратак. Мора да садржи најмање 4 цифре."</string> + <string name="restr_pin_error_too_short" msgid="1547007808237941065">"PIN је прекратак. Мора да има бар 4 цифре."</string> <string name="restr_pin_try_later" msgid="5897719962541636727">"Пробајте поново касније"</string> <string name="immersive_cling_title" msgid="2307034298721541791">"Приказује се цео екран"</string> <string name="immersive_cling_description" msgid="7092737175345204832">"Да бисте изашли, превуците надоле одозго."</string> @@ -2160,10 +2161,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Овај садржај не може да се отвара помоћу пословних апликација"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Овај садржај не може да се дели помоћу личних апликација"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Овај садржај не може да се отвара помоћу личних апликација"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Пословне апликације су паузиране"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Опозови паузу"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Нема пословних апликација"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Нема личних апликација"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Отворите личну апликацију <xliff:g id="APP">%s</xliff:g>"</string> diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml index d59d2d7f661c..cdc80f9b8d97 100644 --- a/core/res/res/values-sv/strings.xml +++ b/core/res/res/values-sv/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android-system"</string> <string name="user_owner_label" msgid="8628726904184471211">"Byt till personlig profil"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Byt till jobbprofilen"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Byt till privat profil i <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Byt till jobbprofil i <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontakter"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"få tillgång till dina kontakter"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Plats"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Tillåter att appen styr vibrationen."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Appen beviljas åtkomst till vibrationsstatus."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"ringa telefonnummer direkt"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Tillåter att appen ringer telefonnummer utan åtgärd från dig. Detta kan leda till oväntade avgifter eller samtal. Observera att appen inte tillåts ringa nödsamtal. Skadliga appar kan ringa utan ditt godkännande och detta kan kosta pengar. De kan även ange operatörskoder vilket kan leda till att inkommande samtal automatiskt vidarebefordras till ett annat nummer."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"tillgång till tjänsten för snabbmeddelanden vid samtal"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Tillåter att appen använder tjänsten för snabbmeddelanden för att ringa samtal utan åtgärd från dig."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"läsa telefonens status och identitet"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Det här innehållet kan inte öppnas med jobbappar"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Det här innehållet kan inte delas med privata appar"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Det här innehållet kan inte öppnas med privata appar"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Jobbappar har pausats"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Återuppta"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Inga jobbappar"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Inga privata appar"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Öppna <xliff:g id="APP">%s</xliff:g> med privat profil"</string> @@ -2288,7 +2287,7 @@ <string name="sensor_privacy_start_use_mic_notification_content_title" msgid="2420858361276370367">"Återaktivera enhetens mikrofon"</string> <string name="sensor_privacy_start_use_camera_notification_content_title" msgid="7287720213963466672">"Återaktivera enhetens kamera"</string> <string name="sensor_privacy_start_use_notification_content_text" msgid="7595608891015777346">"För <b><xliff:g id="APP">%s</xliff:g></b> och alla appar och tjänster"</string> - <string name="sensor_privacy_start_use_dialog_turn_on_button" msgid="7089318886628390827">"Avblockera"</string> + <string name="sensor_privacy_start_use_dialog_turn_on_button" msgid="7089318886628390827">"Återaktivera"</string> <string name="sensor_privacy_notification_channel_label" msgid="936036783155261349">"Sensorintegritet"</string> <string name="splash_screen_view_icon_description" msgid="180638751260598187">"Appikon"</string> <string name="splash_screen_view_branding_description" msgid="7911129347402728216">"Appens varumärkesbild"</string> diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml index 64495882c74e..5cd8594c7d6e 100644 --- a/core/res/res/values-sw/strings.xml +++ b/core/res/res/values-sw/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Mfumo wa Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Tumia wasifu wa binafsi"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Tumia wasifu wa kazini"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Badili uweke wasifu wa binafsi <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Badili uweke wasifu wa kazini <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Anwani"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"ifikie anwani zako"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Mahali"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Inaruhusu programu kudhibiti kitingishi."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Huruhusu programu kufikia hali ya kitetemeshaji."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"piga simu moja kwa moja kwa nambari za simu"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Huruhusu programu kupiga simu kiotomatiki. Hii huenda ikasababisha gharama au simu usizotarajia. Kumbuka, idhini hii hairuhusu programu kupiga simu kwa nambari za dharura. Programu hasidi zinaweza kusababisha utozwe pesa kwa kupiga simu bila wewe kuthibitisha, au kupiga nambari za watoa huduma, hatua ambayo husababisha simu zinazoingia kusambazwa kwa nambari nyingine kiotomatiki."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"fikia huduma ya simu ya IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Huruhusu programu kutumia huduma ya IMS kupiga simu bila udhibiti wako."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"kusoma hali na kitambulisho cha simu"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Huwezi kufungua maudhui haya ukitumia programu za kazini"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Huwezi kushiriki maudhui haya na programu za binafsi"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Huwezi kufungua maudhui haya ukitumia programu za binafsi"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Programu za kazini zimesitishwa"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Acha kusitisha"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Hakuna programu za kazini"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Hakuna programu za binafsi"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Fungua <xliff:g id="APP">%s</xliff:g> ukitumia wasifu binafsi"</string> @@ -2318,7 +2317,7 @@ <string name="permdesc_startForegroundServicesFromBackground" msgid="4071826571656001537">"Huruhusu programu oanifu kuanzisha huduma zinazoonekana kwenye skrini kutoka katika huduma zinazoendelea chinichini."</string> <string name="mic_access_on_toast" msgid="2666925317663845156">"Maikrofoni inapatikana"</string> <string name="mic_access_off_toast" msgid="8111040892954242437">"Maikrofoni imezuiwa"</string> - <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Hali ya skrini mbili"</string> + <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Dual screen"</string> <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Umewasha kipengele cha hali ya skrini mbili"</string> <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> inatumia skrini zote kuonyesha maudhui"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"Kifaa kina joto sana"</string> diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml index 4709706048ad..0b68c402c324 100644 --- a/core/res/res/values-ta/strings.xml +++ b/core/res/res/values-ta/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android அமைப்பு"</string> <string name="user_owner_label" msgid="8628726904184471211">"தனிப்பட்ட சுயவிவரத்திற்கு மாற்றவும்"</string> <string name="managed_profile_label" msgid="7316778766973512382">"பணிச் சுயவிவரத்திற்கு மாற்றவும்"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"தனிப்பட்ட கணக்கிற்கு (<xliff:g id="APP_NAME">%1$s</xliff:g>) மாறு"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"பணிக் கணக்கிற்கு (<xliff:g id="APP_NAME">%1$s</xliff:g>) மாறு"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"தொடர்புகள்"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"தொடர்புகளை அணுக வேண்டும்"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"இருப்பிடம்"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"அதிர்வைக் கட்டுப்படுத்தப் ஆப்ஸை அனுமதிக்கிறது."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"அதிர்வு நிலையை அணுக ஆப்ஸை அனுமதிக்கும்."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"தொலைபேசி எண்களை நேரடியாக அழைத்தல்"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"உங்கள் உறுதிப்படுத்தல் இல்லாமல் ஃபோன் எண்களை அழைக்க ஆப்ஸை அனுமதிக்கும். இது எதிர்பாராத கட்டணங்கள்/அழைப்புகளுக்கு வழிவகுக்கக்கூடும். அவசர உதவி எண்களை அழைக்க இது ஆப்ஸை அனுமதிக்காது என்பதை நினைவில் கொள்ளுங்கள். தீங்கிழைக்கும் ஆப்ஸ் உங்கள் உறுதிப்படுத்தல் இல்லாமல் அழைப்புகளை மேற்கொள்வதன் மூலம் உங்களுக்கு அநாவசியச் செலவு ஏற்படக்கூடும் அல்லது அவை கேரியர் குறியீடுகளை டயல் செய்து உங்களுக்கான உள்வரும் அழைப்புகளை வேறு எண்ணுக்குத் தானாகத் திசைதிருப்பக்கூடும்."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS அழைப்புச் சேவையை அணுகுதல்"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"உங்கள் குறுக்கீடின்றி IMS சேவையைப் பயன்படுத்தி அழைப்பதற்கு, ஆப்ஸை அனுமதிக்கும்."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"மொபைல் நிலை மற்றும் அடையாளத்தைப் படித்தல்"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"பணி ஆப்ஸ் மூலம் இந்த உள்ளடக்கத்தைத் திறக்க முடியாது"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"தனிப்பட்ட ஆப்ஸுடன் இந்த உள்ளடக்கத்தைப் பகிர முடியாது"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"தனிப்பட்ட ஆப்ஸ் மூலம் இந்த உள்ளடக்கத்தைத் திறக்க முடியாது"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"பணி ஆப்ஸ் இடைநிறுத்தப்பட்டுள்ளன"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"மீண்டும் இயக்கு"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"பணி ஆப்ஸ் எதுவுமில்லை"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"தனிப்பட்ட ஆப்ஸ் எதுவுமில்லை"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"தனிப்பட்ட கணக்கில் <xliff:g id="APP">%s</xliff:g> ஆப்ஸைத் திறங்கள்"</string> diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml index 22f1d1a02099..03a608eb65a7 100644 --- a/core/res/res/values-te/strings.xml +++ b/core/res/res/values-te/strings.xml @@ -162,7 +162,7 @@ <string name="httpErrorAuth" msgid="469553140922938968">"ప్రామాణీకరించడం సాధ్యపడలేదు."</string> <string name="httpErrorProxyAuth" msgid="7229662162030113406">"ప్రాక్సీ సర్వర్ ద్వారా ప్రామాణీకరణ విజయవంతం కాలేదు."</string> <string name="httpErrorConnect" msgid="3295081579893205617">"సర్వర్కు కనెక్ట్ చేయడం సాధ్యపడలేదు."</string> - <string name="httpErrorIO" msgid="3860318696166314490">"సర్వర్తో కమ్యూనికేట్ చేయడం సాధ్యపడలేదు. తర్వాత మళ్లీ ప్రయత్నించండి."</string> + <string name="httpErrorIO" msgid="3860318696166314490">"సర్వర్తో కమ్యూనికేట్ చేయడం సాధ్యపడలేదు. తర్వాత మళ్లీ ట్రై చేయండి."</string> <string name="httpErrorTimeout" msgid="7446272815190334204">"సర్వర్కు కనెక్షన్ సమయం ముగిసింది."</string> <string name="httpErrorRedirectLoop" msgid="8455757777509512098">"పేజీ చాలా ఎక్కువ సర్వర్ మళ్లింపులను కలిగి ఉంది."</string> <string name="httpErrorUnsupportedScheme" msgid="2664108769858966374">"ప్రోటోకాల్కి మద్దతు లేదు."</string> @@ -170,7 +170,7 @@ <string name="httpErrorBadUrl" msgid="754447723314832538">"URL చెల్లనిది అయినందువలన పేజీని తెరవడం సాధ్యపడలేదు."</string> <string name="httpErrorFile" msgid="3400658466057744084">"ఫైల్ను యాక్సెస్ చేయడం సాధ్యపడలేదు."</string> <string name="httpErrorFileNotFound" msgid="5191433324871147386">"రిక్వెస్ట్ చేసిన ఫైల్ను కనుగొనడం సాధ్యపడలేదు."</string> - <string name="httpErrorTooManyRequests" msgid="2149677715552037198">"చాలా ఎక్కువ రిక్వెస్ట్లు ప్రాసెస్ చేయబడుతున్నాయి. తర్వాత మళ్లీ ప్రయత్నించండి."</string> + <string name="httpErrorTooManyRequests" msgid="2149677715552037198">"చాలా ఎక్కువ రిక్వెస్ట్లు ప్రాసెస్ చేయబడుతున్నాయి. తర్వాత మళ్లీ ట్రై చేయండి."</string> <string name="notification_title" msgid="5783748077084481121">"<xliff:g id="ACCOUNT">%1$s</xliff:g>కు సైన్ఇన్ ఎర్రర్"</string> <string name="contentServiceSync" msgid="2341041749565687871">"సింక్"</string> <string name="contentServiceSyncNotificationTitle" msgid="5766411446676388623">"సింక్ చేయడం సాధ్యపడదు"</string> @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android సిస్టమ్"</string> <string name="user_owner_label" msgid="8628726904184471211">"వ్యక్తిగత ప్రొఫైల్కి మార్చు"</string> <string name="managed_profile_label" msgid="7316778766973512382">"కార్యాలయ ప్రొఫైల్కి మార్చు"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"వ్యక్తిగత <xliff:g id="APP_NAME">%1$s</xliff:g>కు మార్చండి"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"వర్క్ <xliff:g id="APP_NAME">%1$s</xliff:g>కు మార్చండి"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"కాంటాక్ట్లు"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"మీ కాంటాక్ట్లను యాక్సెస్ చేయడానికి"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"లొకేషన్"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"వైబ్రేటర్ను నియంత్రించడానికి యాప్ను అనుమతిస్తుంది."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"వైబ్రేటర్ స్థితిని యాక్సెస్ చేసేందుకు యాప్ను అనుమతిస్తుంది."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"నేరుగా కాల్ చేసే ఫోన్ నంబర్లు"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"మీ ప్రమేయం లేకుండానే ఫోన్ నంబర్లకు కాల్ చేయడానికి యాప్ను అనుమతిస్తుంది. ఇది ఊహించని ఛార్జీలు విధించబడవచ్చు లేదా కాల్స్ చేయవచ్చు. ఇది అత్యవసర నంబర్లకు కాల్ చేయడానికి యాప్ను అనుమతించదని గుర్తుంచుకోండి. హానికరమైన యాప్లు మీరు నిర్ధారించకుండా కాల్స్ చేయవచ్చు, లేదా ఇన్కమింగ్ కాల్స్ను ఆటోమేటిక్గా మరొక నంబర్కు ఫార్వర్డ్ అవ్వడానికి కారణమయ్యే క్యారియర్ కోడ్లను డయల్ చేయవచ్చు, వీటి వల్ల మీకు డబ్బు ఖర్చు అవ్వచ్చు."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS కాల్ సేవ యాక్సెస్ అనుమతి"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"మీ ప్రమేయం లేకుండా కాల్స్ చేయడం కోసం IMS సేవను ఉపయోగించడానికి యాప్ను అనుమతిస్తుంది."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"ఫోన్ స్టేటస్ మరియు గుర్తింపుని చదవడం"</string> @@ -629,12 +630,12 @@ <string name="fingerprint_acquired_imager_dirty" msgid="1770676120848224250">"వేలిముద్ర సెన్సార్ను క్లీన్ చేసి, మళ్లీ ట్రై చేయండి"</string> <string name="fingerprint_acquired_imager_dirty_alt" msgid="9169582140486372897">"సెన్సార్ను క్లీన్ చేసి, మళ్లీ ట్రై చేయండి"</string> <string name="fingerprint_acquired_too_fast" msgid="1628459767349116104">"సెన్సార్ మీద గట్టిగా నొక్కండి"</string> - <string name="fingerprint_acquired_too_slow" msgid="6683510291554497580">"వేలిని చాలా నెమ్మదిగా కదిలించారు. దయచేసి మళ్లీ ప్రయత్నించండి."</string> + <string name="fingerprint_acquired_too_slow" msgid="6683510291554497580">"వేలిని చాలా నెమ్మదిగా కదిలించారు. దయచేసి మళ్లీ ట్రై చేయండి."</string> <string name="fingerprint_acquired_already_enrolled" msgid="2285166003936206785">"మరొక వేలిముద్రను ట్రై చేయండి"</string> <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"వెలుతురు అధికంగా ఉంది"</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"పవర్ బటన్ కనుగొనబడింది"</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"సర్దుబాటు చేయడానికి ట్రై చేయండి"</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"ప్రతిసారీ మీ వేళ్ల స్థానాన్ని కొద్దిగా మార్చండి"</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"ప్రతిసారి మీ వేలిని కొద్ది కొద్దిగా జరపండి"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"వేలిముద్ర గుర్తించబడలేదు"</string> @@ -685,7 +686,7 @@ <string name="face_acquired_too_right" msgid="6245286514593540859">"ఫోన్ను మీ ఎడమ వైపునకు జరపండి"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"ఫోన్ను మీ కుడి వైపునకు జరపండి"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"దయచేసి మీ పరికరం వైపు మరింత నేరుగా చూడండి."</string> - <string name="face_acquired_not_detected" msgid="1057966913397548150">"మీ ముఖం కనిపించడం లేదు. మీ ఫోన్ను కంటి స్థాయిలో పట్టుకోండి."</string> + <string name="face_acquired_not_detected" msgid="1057966913397548150">"మీ ముఖం కనిపించడం లేదు. మీ ఫోన్ను కళ్లకు ఎదురుగా పట్టుకోండి."</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"బాగా కదుపుతున్నారు. ఫోన్ను స్థిరంగా పట్టుకోండి"</string> <string name="face_acquired_recalibrate" msgid="8724013080976469746">"దయచేసి మీ ముఖాన్ని మళ్లీ నమోదు చేయండి."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"ముఖం గుర్తించబడలేదు. మళ్లీ ట్రై చేయండి."</string> @@ -693,7 +694,7 @@ <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"మీ ఫోన్ వైపు మరింత నేరుగా చూడండి"</string> <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"మీ ఫోన్ వైపు మరింత నేరుగా చూడండి"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"మీ ఫోన్ వైపు మరింత నేరుగా చూడండి"</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"మీ ముఖానికి అడ్డుగా ఉన్నవాటిని తీసివేయండి."</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"మీ ముఖానికి ఏదైనా అడ్డుగా ఉంటే దాన్ని తీసివేయండి."</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"నల్లని బార్తో సహా మీ స్క్రీన్ పైభాగం అంతటినీ శుభ్రంగా తుడవండి"</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> @@ -709,10 +710,10 @@ <string name="face_error_no_space" msgid="5649264057026021723">"కొత్త ముఖం డేటాను స్టోరేజ్ చేయడం కాదు. మొదట పాతది తొలిగించండి."</string> <string name="face_error_canceled" msgid="2164434737103802131">"ముఖ యాక్టివిటీ రద్దయింది."</string> <string name="face_error_user_canceled" msgid="5766472033202928373">"ఫేస్ అన్లాక్ను యూజర్ రద్దు చేశారు"</string> - <string name="face_error_lockout" msgid="7864408714994529437">"చాలా ఎక్కువ ప్రయత్నాలు చేశారు. తర్వాత మళ్లీ ప్రయత్నించండి."</string> + <string name="face_error_lockout" msgid="7864408714994529437">"చాలా ఎక్కువ ప్రయత్నాలు చేశారు. తర్వాత మళ్లీ ట్రై చేయండి."</string> <string name="face_error_lockout_permanent" msgid="8533257333130473422">"ఎక్కువ సార్లు ట్రై చేశారు. ఫేస్ అన్లాక్ అందుబాటులో లేదు."</string> <string name="face_error_lockout_screen_lock" msgid="5062609811636860928">"చాలా ఎక్కువ సార్లు ప్రయత్నించారు. బదులుగా స్క్రీన్ లాక్ను ఎంటర్ చేయండి."</string> - <string name="face_error_unable_to_process" msgid="5723292697366130070">"ముఖం ధృవీకరించలేకపోయింది. మళ్లీ ప్రయత్నించండి."</string> + <string name="face_error_unable_to_process" msgid="5723292697366130070">"ముఖం ధృవీకరించలేకపోయింది. మళ్లీ ట్రై చేయండి."</string> <string name="face_error_not_enrolled" msgid="1134739108536328412">"మీరు ఫేస్ అన్లాక్ను సెటప్ చేయలేదు"</string> <string name="face_error_hw_not_present" msgid="7940978724978763011">"ఫేస్ అన్లాక్ను ఈ పరికరం సపోర్ట్ చేయదు"</string> <string name="face_error_security_update_required" msgid="5076017208528750161">"సెన్సార్ తాత్కాలికంగా డిజేబుల్ చేయబడింది."</string> @@ -967,8 +968,8 @@ <string name="lockscreen_emergency_call" msgid="7500692654885445299">"అత్యవసరం"</string> <string name="lockscreen_return_to_call" msgid="3156883574692006382">"కాల్కు తిరిగి వెళ్లు"</string> <string name="lockscreen_pattern_correct" msgid="8050630103651508582">"సరైనది!"</string> - <string name="lockscreen_pattern_wrong" msgid="2940138714468358458">"మళ్లీ ప్రయత్నించండి"</string> - <string name="lockscreen_password_wrong" msgid="8605355913868947490">"మళ్లీ ప్రయత్నించండి"</string> + <string name="lockscreen_pattern_wrong" msgid="2940138714468358458">"మళ్లీ ట్రై చేయండి"</string> + <string name="lockscreen_password_wrong" msgid="8605355913868947490">"మళ్లీ ట్రై చేయండి"</string> <string name="lockscreen_storage_locked" msgid="634993789186443380">"అన్ని లక్షణాలు మరియు డేటా కోసం అన్లాక్ చేయండి"</string> <string name="faceunlock_multiple_failures" msgid="681991538434031708">"ఫేస్ అన్లాక్ ప్రయత్నాల గరిష్ఠ పరిమితిని మించిపోయారు"</string> <string name="lockscreen_missing_sim_message_short" msgid="1229301273156907613">"SIM లేదు"</string> @@ -992,19 +993,19 @@ <string name="lockscreen_sim_puk_locked_instructions" msgid="5307979043730860995">"వినియోగదారు గైడ్ను చూడండి లేదా కస్టమర్ కేర్ను సంప్రదించండి."</string> <string name="lockscreen_sim_locked_message" msgid="5911944931911850164">"SIM లాక్ చేయబడింది."</string> <string name="lockscreen_sim_unlock_progress_dialog_message" msgid="8381565919325410939">"SIMను అన్లాక్ చేస్తోంది…"</string> - <string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="6458790975898594240">"మీరు మీ అన్లాక్ నమూనాను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీసారు. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string> - <string name="lockscreen_too_many_failed_password_attempts_dialog_message" msgid="3118353451602377380">"మీరు మీ పాస్వర్డ్ను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా టైప్ చేశారు. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string> - <string name="lockscreen_too_many_failed_pin_attempts_dialog_message" msgid="2874278239714821984">"మీరు మీ పిన్ను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా టైప్ చేశారు. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string> - <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="3069635524964070596">"మీరు మీ అన్లాక్ నమూనాని <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీసారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విజయవంతం కాని ప్రయత్నాల తర్వాత, మీరు మీ Google సైన్ఇన్ను ఉపయోగించి మీ టాబ్లెట్ను అన్లాక్ చేయడానికి అడగబడతారు.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string> - <string name="lockscreen_failed_attempts_almost_glogin" product="tv" msgid="6399092175942158529">"మీరు మీ అన్లాక్ నమూనాని <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీసారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విఫల ప్రయత్నాల తర్వాత, మీరు మీ Google సైన్ఇన్ను ఉపయోగించి మీ Android TV పరికరాన్ని అన్లాక్ చేయాల్సిందిగా మీకు తెలపబడుతుంది.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string> - <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="5691623136957148335">"మీరు మీ అన్లాక్ నమూనాని <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీసారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విజయవంతం కాని ప్రయత్నాల తర్వాత, మీరు మీ Google సైన్ఇన్ను ఉపయోగించి మీ ఫోన్ను అన్లాక్ చేయడానికి అడగబడతారు.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string> + <string name="lockscreen_too_many_failed_attempts_dialog_message" msgid="6458790975898594240">"మీరు మీ అన్లాక్ నమూనాను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీసారు. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> సెకన్లలో మళ్లీ ట్రై చేయండి."</string> + <string name="lockscreen_too_many_failed_password_attempts_dialog_message" msgid="3118353451602377380">"మీరు మీ పాస్వర్డ్ను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా టైప్ చేశారు. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> సెకన్లలో మళ్లీ ట్రై చేయండి."</string> + <string name="lockscreen_too_many_failed_pin_attempts_dialog_message" msgid="2874278239714821984">"మీరు మీ పిన్ను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా టైప్ చేశారు. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> సెకన్లలో మళ్లీ ట్రై చేయండి."</string> + <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="3069635524964070596">"మీరు మీ అన్లాక్ నమూనాని <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీసారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విజయవంతం కాని ప్రయత్నాల తర్వాత, మీరు మీ Google సైన్ఇన్ను ఉపయోగించి మీ టాబ్లెట్ను అన్లాక్ చేయడానికి అడగబడతారు.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> సెకన్లలో మళ్లీ ట్రై చేయండి."</string> + <string name="lockscreen_failed_attempts_almost_glogin" product="tv" msgid="6399092175942158529">"మీరు మీ అన్లాక్ నమూనాని <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీసారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విఫల ప్రయత్నాల తర్వాత, మీరు మీ Google సైన్ఇన్ను ఉపయోగించి మీ Android TV పరికరాన్ని అన్లాక్ చేయాల్సిందిగా మీకు తెలపబడుతుంది.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> సెకన్లలో మళ్లీ ట్రై చేయండి."</string> + <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="5691623136957148335">"మీరు మీ అన్లాక్ నమూనాని <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీసారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విజయవంతం కాని ప్రయత్నాల తర్వాత, మీరు మీ Google సైన్ఇన్ను ఉపయోగించి మీ ఫోన్ను అన్లాక్ చేయడానికి అడగబడతారు.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> సెకన్లలో మళ్లీ ట్రై చేయండి."</string> <string name="lockscreen_failed_attempts_almost_at_wipe" product="tablet" msgid="7914445759242151426">"మీరు టాబ్లెట్ను అన్లాక్ చేయడానికి <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా ప్రయత్నించారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విఫల ప్రయత్నాల తర్వాత, టాబ్లెట్ ఫ్యాక్టరీ ఆటోమేటిక్కు రీసెట్ చేయబడుతుంది, అలాగే మొత్తం యూజర్ డేటాను కోల్పోతారు."</string> <string name="lockscreen_failed_attempts_almost_at_wipe" product="tv" msgid="4275591249631864248">"మీరు మీ Android TV పరికరాన్ని అన్లాక్ చేయడానికి <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు విఫల ప్రయత్నాలు చేశారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విఫల ప్రయత్నాల తర్వాత, మీ Android TV పరికరం ఫ్యాక్టరీ ఆటోమేటిక్కు రీసెట్ చేయబడుతుంది, అలాగే యూజర్ డేటా మొత్తాన్ని కోల్పోతారు."</string> <string name="lockscreen_failed_attempts_almost_at_wipe" product="default" msgid="1166532464798446579">"మీరు ఫోన్ను అన్లాక్ చేయడానికి <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా ప్రయత్నించారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విఫల ప్రయత్నాల తర్వాత, ఫోన్, ఫ్యాక్టరీ ఆటోమేటిక్కు రీసెట్ చేయబడుతుంది, అలాగే మొత్తం యూజర్ డేటాను కోల్పోతారు."</string> <string name="lockscreen_failed_attempts_now_wiping" product="tablet" msgid="8682445539263683414">"మీరు టాబ్లెట్ను అన్లాక్ చేయడానికి <xliff:g id="NUMBER">%d</xliff:g> సార్లు తప్పుగా ప్రయత్నించారు. టాబ్లెట్ ఇప్పుడు ఫ్యాక్టరీ ఆటోమేటిక్కు రీసెట్ చేయబడుతుంది."</string> <string name="lockscreen_failed_attempts_now_wiping" product="tv" msgid="2205435033340091883">"మీరు మీ Android TV పరికరాన్ని అన్లాక్ చేయడానికి <xliff:g id="NUMBER">%d</xliff:g> సార్లు విఫల ప్రయత్నాలు చేశారు. మీ Android TV పరికరం ఇప్పుడు ఫ్యాక్టరీ రీసెట్ చేయబడుతుంది."</string> <string name="lockscreen_failed_attempts_now_wiping" product="default" msgid="2203704707679895487">"మీరు ఫోన్ను అన్లాక్ చేయడానికి <xliff:g id="NUMBER">%d</xliff:g> సార్లు తప్పుగా ప్రయత్నించారు. ఫోన్ ఇప్పుడు ఫ్యాక్టరీ ఆటోమేటిక్కు రీసెట్ చేయబడుతుంది."</string> - <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6807200118164539589">"<xliff:g id="NUMBER">%d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string> + <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6807200118164539589">"<xliff:g id="NUMBER">%d</xliff:g> సెకన్లలో మళ్లీ ట్రై చేయండి."</string> <string name="lockscreen_forgot_pattern_button_text" msgid="8362442730606839031">"నమూనాను మర్చిపోయారా?"</string> <string name="lockscreen_glogin_forgot_pattern" msgid="9218940117797602518">"ఖాతా అన్లాక్"</string> <string name="lockscreen_glogin_too_many_attempts" msgid="3775904917743034195">"చాలా ఎక్కువ ఆకృతి ప్రయత్నాలు చేశారు"</string> @@ -1255,7 +1256,7 @@ <string name="android_upgrading_starting_apps" msgid="6206161195076057075">"యాప్లను ప్రారంభిస్తోంది."</string> <string name="android_upgrading_complete" msgid="409800058018374746">"బూట్ను ముగిస్తోంది."</string> <string name="fp_power_button_enrollment_message" msgid="5648173517663246140">"మీరు పవర్ బటన్ను నొక్కారు — ఇది సాధారణంగా స్క్రీన్ను ఆఫ్ చేస్తుంది.\n\nమీ వేలిముద్రను సెటప్ చేస్తున్నప్పుడు తేలికగా ట్యాప్ చేయడానికి ట్రై చేయండి."</string> - <string name="fp_power_button_enrollment_title" msgid="6976841690455338563">"సెటప్ ముగించడానికి, స్క్రీన్ను ఆఫ్ చేయి"</string> + <string name="fp_power_button_enrollment_title" msgid="6976841690455338563">"సెటప్ ముగించడానికి, స్క్రీన్ను ఆఫ్ చేయండి"</string> <string name="fp_power_button_enrollment_button_text" msgid="3199783266386029200">"ఆఫ్ చేయండి"</string> <string name="fp_power_button_bp_title" msgid="5585506104526820067">"మీ వేలిముద్ర వెరిఫైను కొనసాగించాలా?"</string> <string name="fp_power_button_bp_message" msgid="2983163038168903393">"మీరు పవర్ బటన్ను నొక్కారు — ఇది సాధారణంగా స్క్రీన్ను ఆఫ్ చేస్తుంది.\n\nమీ వేలిముద్రను వెరిఫై చేయడానికి తేలికగా ట్యాప్ చేయడం ట్రై చేయండి."</string> @@ -1440,7 +1441,7 @@ <string name="ext_media_move_success_title" msgid="4901763082647316767">"కంటెంట్ బదిలీ పూర్తయింది"</string> <string name="ext_media_move_success_message" msgid="9159542002276982979">"కంటెంట్ <xliff:g id="NAME">%s</xliff:g>కి తరలించబడింది"</string> <string name="ext_media_move_failure_title" msgid="3184577479181333665">"కంటెంట్ని తరలించడం సాధ్యం కాలేదు"</string> - <string name="ext_media_move_failure_message" msgid="4197306718121869335">"కంటెంట్ని తరలించడానికి మళ్లీ ప్రయత్నించండి"</string> + <string name="ext_media_move_failure_message" msgid="4197306718121869335">"కంటెంట్ని తరలించడానికి మళ్లీ ట్రై చేయండి"</string> <string name="ext_media_status_removed" msgid="241223931135751691">"తీసివేయబడింది"</string> <string name="ext_media_status_unmounted" msgid="8145812017295835941">"తొలగించబడింది"</string> <string name="ext_media_status_checking" msgid="159013362442090347">"చెక్ చేస్తోంది..."</string> @@ -1666,18 +1667,18 @@ <string name="kg_login_invalid_input" msgid="8292367491901220210">"చెల్లని వినియోగదారు పేరు లేదా పాస్వర్డ్."</string> <string name="kg_login_account_recovery_hint" msgid="4892466171043541248">"మీ వినియోగదారు పేరు లేదా పాస్వర్డ్ను మర్చిపోయారా?\n"<b>"google.com/accounts/recovery"</b>"ని సందర్శించండి."</string> <string name="kg_login_checking_password" msgid="4676010303243317253">"ఖాతాను చెక్ చేస్తోంది…"</string> - <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="23741434207544038">"మీరు మీ పిన్ను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా టైప్ చేశారు. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string> - <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="3328686432962224215">"మీరు మీ పాస్వర్డ్ను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా టైప్ చేశారు. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string> - <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="7357404233979139075">"మీరు మీ అన్లాక్ నమూనాను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీసారు. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string> + <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="23741434207544038">"మీరు మీ పిన్ను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా టైప్ చేశారు. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> సెకన్లలో మళ్లీ ట్రై చేయండి."</string> + <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="3328686432962224215">"మీరు మీ పాస్వర్డ్ను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా టైప్ చేశారు. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> సెకన్లలో మళ్లీ ట్రై చేయండి."</string> + <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="7357404233979139075">"మీరు మీ అన్లాక్ నమూనాను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీసారు. \n\n<xliff:g id="NUMBER_1">%2$d</xliff:g> సెకన్లలో మళ్లీ ట్రై చేయండి."</string> <string name="kg_failed_attempts_almost_at_wipe" product="tablet" msgid="3479940221343361587">"మీరు టాబ్లెట్ను అన్లాక్ చేయడానికి <xliff:g id="NUMBER_0">%1$d</xliff:g> చెల్లని ప్రయత్నాలు చేశారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విఫల ప్రయత్నాల తర్వాత, టాబ్లెట్ ఫ్యాక్టరీ ఆటోమేటిక్కు రీసెట్ చేయబడుతుంది, అలాగే మొత్తం యూజర్ డేటాను కోల్పోతారు."</string> <string name="kg_failed_attempts_almost_at_wipe" product="tv" msgid="9064457748587850217">"మీరు మీ Android TV పరికరాన్ని అన్లాక్ చేయడానికి <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు విఫల ప్రయత్నాలు చేశారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విఫల ప్రయత్నాల తర్వాత, మీ Android TV పరికరం ఫ్యాక్టరీ ఆటోమేటిక్కు రీసెట్ చేయబడుతుంది, అలాగే యూజర్, డేటా మొత్తాన్ని కోల్పోతారు."</string> <string name="kg_failed_attempts_almost_at_wipe" product="default" msgid="5955398963754432548">"మీరు ఫోన్ను అన్లాక్ చేయడానికి <xliff:g id="NUMBER_0">%1$d</xliff:g> చెల్లని ప్రయత్నాలు చేశారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విఫల ప్రయత్నాల తర్వాత, ఫోన్ ఫ్యాక్టరీ ఆటోమేటిక్కు రీసెట్ చేయబడుతుంది, అలాగే మొత్తం యూజర్ డేటాను కోల్పోతారు."</string> <string name="kg_failed_attempts_now_wiping" product="tablet" msgid="2299099385175083308">"మీరు టాబ్లెట్ను అన్లాక్ చేయడానికి <xliff:g id="NUMBER">%d</xliff:g> చెల్లని ప్రయత్నాలు చేశారు. టాబ్లెట్ ఇప్పుడు ఫ్యాక్టరీ ఆటోమేటిక్కు రీసెట్ చేయబడుతుంది."</string> <string name="kg_failed_attempts_now_wiping" product="tv" msgid="5045460916106267585">"మీరు మీ Android TV పరికరాన్ని అన్లాక్ చేయడానికి <xliff:g id="NUMBER">%d</xliff:g> సార్లు విఫల ప్రయత్నాలు చేశారు. మీ Android TV పరికరం ఇప్పుడు ఫ్యాక్టరీ రీసెట్ చేయబడుతుంది."</string> <string name="kg_failed_attempts_now_wiping" product="default" msgid="5043730590446071189">"మీరు ఫోన్ను అన్లాక్ చేయడానికి <xliff:g id="NUMBER">%d</xliff:g> చెల్లని ప్రయత్నాలు చేశారు. ఫోన్ ఇప్పుడు ఫ్యాక్టరీ ఆటోమేటిక్కు రీసెట్ చేయబడుతుంది."</string> - <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="7086799295109717623">"మీరు మీ అన్లాక్ నమూనాను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీసారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విఫల ప్రయత్నాల తర్వాత, ఈమెయిల్ ఖాతాను ఉపయోగించి మీ టాబ్లెట్ను అన్లాక్ చేయాల్సిందిగా మిమ్మల్ని అడుగుతారు.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string> - <string name="kg_failed_attempts_almost_at_login" product="tv" msgid="4670840383567106114">"మీరు మీ అన్లాక్ నమూనాను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీశారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విఫల ప్రయత్నాల తర్వాత మీ Android TV పరికరాన్ని ఈమెయిల్ ఖాతా ద్వారా అన్లాక్ చేయాల్సిందిగా మిమ్మల్ని కోరడం జరుగుతుంది.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string> - <string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"మీరు మీ అన్లాక్ నమూనాను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీసారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విఫల ప్రయత్నాల తర్వాత, ఈమెయిల్ ఖాతాను ఉపయోగించి మీ ఫోన్ను అన్లాక్ చేయాల్సిందిగా మిమ్మల్ని అడుగుతారు.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> సెకన్లలో మళ్లీ ప్రయత్నించండి."</string> + <string name="kg_failed_attempts_almost_at_login" product="tablet" msgid="7086799295109717623">"మీరు మీ అన్లాక్ నమూనాను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీసారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విఫల ప్రయత్నాల తర్వాత, ఈమెయిల్ ఖాతాను ఉపయోగించి మీ టాబ్లెట్ను అన్లాక్ చేయాల్సిందిగా మిమ్మల్ని అడుగుతారు.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> సెకన్లలో మళ్లీ ట్రై చేయండి."</string> + <string name="kg_failed_attempts_almost_at_login" product="tv" msgid="4670840383567106114">"మీరు మీ అన్లాక్ నమూనాను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీశారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విఫల ప్రయత్నాల తర్వాత మీ Android TV పరికరాన్ని ఈమెయిల్ ఖాతా ద్వారా అన్లాక్ చేయాల్సిందిగా మిమ్మల్ని కోరడం జరుగుతుంది.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> సెకన్లలో మళ్లీ ట్రై చేయండి."</string> + <string name="kg_failed_attempts_almost_at_login" product="default" msgid="5270861875006378092">"మీరు మీ అన్లాక్ నమూనాను <xliff:g id="NUMBER_0">%1$d</xliff:g> సార్లు తప్పుగా గీసారు. మరో <xliff:g id="NUMBER_1">%2$d</xliff:g> విఫల ప్రయత్నాల తర్వాత, ఈమెయిల్ ఖాతాను ఉపయోగించి మీ ఫోన్ను అన్లాక్ చేయాల్సిందిగా మిమ్మల్ని అడుగుతారు.\n\n <xliff:g id="NUMBER_2">%3$d</xliff:g> సెకన్లలో మళ్లీ ట్రై చేయండి."</string> <string name="kg_text_message_separator" product="default" msgid="4503708889934976866">" — "</string> <string name="kg_reordering_delete_drop_target_text" msgid="2034358143731750914">"తీసివేయండి"</string> <string name="safe_media_volume_warning" product="default" msgid="3751676824423049994">"వాల్యూమ్ను సిఫార్సు చేయబడిన స్థాయి కంటే ఎక్కువగా పెంచాలా?\n\nసుదీర్ఘ వ్యవధుల పాటు అధిక వాల్యూమ్లో వినడం వలన మీ వినికిడి శక్తి దెబ్బ తినవచ్చు."</string> @@ -1844,9 +1845,9 @@ <string name="restr_pin_enter_new_pin" msgid="3267614461844565431">"కొత్త పిన్"</string> <string name="restr_pin_confirm_pin" msgid="7143161971614944989">"కొత్త పిన్ను నిర్ధారించండి"</string> <string name="restr_pin_create_pin" msgid="917067613896366033">"నియంత్రణలను ఎడిట్ చేయడానికి పిన్ను రూపొందించండి"</string> - <string name="restr_pin_error_doesnt_match" msgid="7063392698489280556">"పిన్లు సరిపోలలేదు. మళ్లీ ప్రయత్నించండి."</string> + <string name="restr_pin_error_doesnt_match" msgid="7063392698489280556">"పిన్లు సరిపోలలేదు. మళ్లీ ట్రై చేయండి."</string> <string name="restr_pin_error_too_short" msgid="1547007808237941065">"పిన్ చాలా చిన్నదిగా ఉంది. తప్పనిసరిగా కనీసం 4 అంకెలు ఉండాలి."</string> - <string name="restr_pin_try_later" msgid="5897719962541636727">"తర్వాత మళ్లీ ప్రయత్నించండి"</string> + <string name="restr_pin_try_later" msgid="5897719962541636727">"తర్వాత మళ్లీ ట్రై చేయండి"</string> <string name="immersive_cling_title" msgid="2307034298721541791">"ఫుల్-స్క్రీన్లో వీక్షిస్తున్నారు"</string> <string name="immersive_cling_description" msgid="7092737175345204832">"నిష్క్రమించడానికి, పై నుండి క్రిందికి స్వైప్ చేయండి."</string> <string name="immersive_cling_positive" msgid="7047498036346489883">"అర్థమైంది"</string> @@ -1983,7 +1984,7 @@ <string name="profile_encrypted_message" msgid="1128512616293157802">"కార్యాలయ ప్రొఫైల్ అన్లాక్ చేయుటకు నొక్కండి"</string> <string name="usb_mtp_launch_notification_title" msgid="774319638256707227">"<xliff:g id="PRODUCT_NAME">%1$s</xliff:g>కి కనెక్ట్ చేయబడింది"</string> <string name="usb_mtp_launch_notification_description" msgid="6942535713629852684">"ఫైళ్లను చూడటానికి నొక్కండి"</string> - <string name="pin_target" msgid="8036028973110156895">"పిన్ చేయి"</string> + <string name="pin_target" msgid="8036028973110156895">"పిన్ చేయండి"</string> <string name="pin_specific_target" msgid="7824671240625957415">"<xliff:g id="LABEL">%1$s</xliff:g>ను పిన్ చేయండి"</string> <string name="unpin_target" msgid="3963318576590204447">"అన్పిన్ చేయి"</string> <string name="unpin_specific_target" msgid="3859828252160908146">"<xliff:g id="LABEL">%1$s</xliff:g>ను అన్పిన్ చేయి"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"ఈ కంటెంట్ వర్క్ యాప్తో తెరవడం సాధ్యం కాదు"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"ఈ కంటెంట్ వ్యక్తిగత యాప్తో షేర్ చేయడం సాధ్యం కాదు"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"ఈ కంటెంట్ వ్యక్తిగత యాప్తో తెరవడం సాధ్యం కాదు"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"వర్క్ యాప్లు పాజ్ అయ్యాయి"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"అన్పాజ్ చేయండి"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"వర్క్ యాప్లు లేవు"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"వ్యక్తిగత యాప్లు లేవు"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"వ్యక్తిగత <xliff:g id="APP">%s</xliff:g> యాప్ను తెరవండి"</string> @@ -2320,7 +2319,7 @@ <string name="mic_access_off_toast" msgid="8111040892954242437">"మైక్రోఫోన్ బ్లాక్ చేయబడింది"</string> <string name="concurrent_display_notification_name" msgid="1526911253558311131">"డ్యూయల్ స్క్రీన్"</string> <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"డ్యూయల్ స్క్రీన్ ఆన్లో ఉంది"</string> - <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"కంటెంట్ను చూపడం కోసం <xliff:g id="APP_NAME">%1$s</xliff:g> రెండు డిస్ప్లేలనూ ఉపయోగిస్తుంది"</string> + <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"కంటెంట్ను చూపడం కోసం <xliff:g id="APP_NAME">%1$s</xliff:g> రెండు డిస్ప్లేలనూ ఉపయోగిస్తోంది"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"పరికరం చాలా వేడిగా ఉంది"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"మీ ఫోన్ చాలా వేడిగా అవుతున్నందున, డ్యూయల్ స్క్రీన్ అందుబాటులో లేదు"</string> <string name="concurrent_display_notification_power_save_title" msgid="1794569070730736281">"డ్యూయల్ స్క్రీన్ అందుబాటులో లేదు"</string> diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index e33938f6f8db..0ec94b2b1cb6 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"ระบบ Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"สลับไปใช้โปรไฟล์ส่วนตัว"</string> <string name="managed_profile_label" msgid="7316778766973512382">"สลับไปใช้โปรไฟล์งาน"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"เปลี่ยนไปใช้โปรไฟล์ส่วนตัวใน <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"เปลี่ยนไปใช้โปรไฟล์งานใน <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"รายชื่อติดต่อ"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"เข้าถึงรายชื่อติดต่อ"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"ตำแหน่ง"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"อนุญาตให้แอปพลิเคชันควบคุมการสั่นเตือน"</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"อนุญาตให้แอปเข้าถึงสถานะการสั่น"</string> <string name="permlab_callPhone" msgid="1798582257194643320">"โทรติดต่อหมายเลขโทรศัพท์โดยตรง"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"อนุญาตให้แอปโทรหาหมายเลขโทรศัพท์โดยที่ไม่ต้องให้คุณจัดการ ซึ่งอาจทำให้มีการเรียกเก็บเงินหรือการโทรที่ไม่คาดคิด โปรดทราบว่าการตั้งค่านี้ไม่ได้อนุญาตให้แอปโทรหาหมายเลขฉุกเฉิน แอปที่เป็นอันตรายอาจทำให้คุณเสียค่าใช้จ่ายด้วยการโทรโดยไม่ขอการยืนยันจากคุณ หรือโทรหารหัสของผู้ให้บริการซึ่งจะมีการโอนสายเรียกเข้าไปยังหมายเลขอื่นโดยอัตโนมัติ"</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"เข้าถึงบริการโทร IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"อนุญาตให้แอปใช้บริการ IMS เพื่อโทรออกโดยคุณไม่ต้องดำเนินการใดๆ เลย"</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"อ่านสถานะและข้อมูลระบุตัวตนของโทรศัพท์"</string> @@ -1938,7 +1939,7 @@ <string name="user_creation_adding" msgid="7305185499667958364">"อนุญาตให้ <xliff:g id="APP">%1$s</xliff:g> สร้างผู้ใช้ใหม่ด้วย <xliff:g id="ACCOUNT">%2$s</xliff:g> ไหม"</string> <string name="supervised_user_creation_label" msgid="6884904353827427515">"เพิ่มผู้ใช้ภายใต้การควบคุมดูแล"</string> <string name="language_selection_title" msgid="52674936078683285">"เพิ่มภาษา"</string> - <string name="country_selection_title" msgid="5221495687299014379">"ค่ากำหนดภูมิภาค"</string> + <string name="country_selection_title" msgid="5221495687299014379">"ค่ากำหนดตามพื้นที่"</string> <string name="search_language_hint" msgid="7004225294308793583">"พิมพ์ชื่อภาษา"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"แนะนำ"</string> <string name="language_picker_regions_section_suggested" msgid="6080131515268225316">"แนะนำ"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"เปิดเนื้อหานี้โดยใช้แอปงานไม่ได้"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"แชร์เนื้อหานี้โดยใช้แอปส่วนตัวไม่ได้"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"เปิดเนื้อหานี้โดยใช้แอปส่วนตัวไม่ได้"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"แอปงานหยุดชั่วคราว"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"ยกเลิกการหยุดชั่วคราว"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"ไม่มีแอปงาน"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"ไม่มีแอปส่วนตัว"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"เปิด <xliff:g id="APP">%s</xliff:g> ในโปรไฟล์ส่วนตัว"</string> @@ -2318,8 +2317,8 @@ <string name="permdesc_startForegroundServicesFromBackground" msgid="4071826571656001537">"อนุญาตจากเบื้องหลังให้แอปที่ใช้ร่วมกันเริ่มการทำงานของบริการที่ทำงานอยู่เบื้องหน้า"</string> <string name="mic_access_on_toast" msgid="2666925317663845156">"ไมโครโฟนพร้อมใช้งาน"</string> <string name="mic_access_off_toast" msgid="8111040892954242437">"ไมโครโฟนถูกบล็อก"</string> - <string name="concurrent_display_notification_name" msgid="1526911253558311131">"หน้าจอคู่"</string> - <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"หน้าจอคู่เปิดอยู่"</string> + <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Dual Screen"</string> + <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Dual Screen เปิดอยู่"</string> <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> กำลังใช้จอแสดงผลทั้งสองจอเพื่อแสดงเนื้อหา"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"อุปกรณ์ร้อนเกินไป"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"หน้าจอคู่ไม่พร้อมให้ใช้งานเนื่องจากโทรศัพท์ของคุณร้อนเกินไป"</string> diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml index 6402f142c50f..c5eec49bbc58 100644 --- a/core/res/res/values-tl/strings.xml +++ b/core/res/res/values-tl/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android System"</string> <string name="user_owner_label" msgid="8628726904184471211">"Lumipat sa personal na profile"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Lumipat sa profile sa trabaho"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Lumipat sa personal na <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Lumipat sa <xliff:g id="APP_NAME">%1$s</xliff:g> para sa trabaho"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Mga Contact"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"i-access ang iyong mga contact"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Lokasyon"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Pinapayagan ang app na kontrolin ang vibrator."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Pinapayagan ang app na ma-access ang naka-vibrate na status."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"direktang tawagan ang mga numero ng telepono"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Pinapayagan ang app na tumawag sa mga numero ng telepono nang walang pamamagitan mo. Puwede itong magresulta sa mga hindi inaasahang singil o tawag. Tandaang hindi nito binibigyang-daan ang app na tumawag sa mga numerong pang-emergency. Posibleng may kailanganin kang bayaran dahil sa pagtawag ng mga nakakapinsalang app nang wala ang iyong kumpirmasyon, o mag-dial ang mga ito sa mga code ng carrier na nagdudulot ng awtomatikong pag-forward ng mga papasok na tawag sa ibang numero."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"i-access ang serbisyo sa tawag ng IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Pinapahintulutan ang app na gamitin ang serbisyo ng IMS upang tumawag nang walang pahintulot mo."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"basahin ang katayuan at pagkakakilanlan ng telepono"</string> @@ -685,7 +686,7 @@ <string name="face_acquired_too_right" msgid="6245286514593540859">"Iusog pakaliwa ang telepono mo"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"Iusog pakanan ang telepono mo"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"Tumingin nang mas direkta sa iyong device."</string> - <string name="face_acquired_not_detected" msgid="1057966913397548150">"Hindi makita ang mukha mo. Hawakan ang telepono mo nang kapantay ng mata."</string> + <string name="face_acquired_not_detected" msgid="1057966913397548150">"Hindi makita ang mukha mo. Hawakan ang telepono kapantay ng mata."</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"Masyadong magalaw. Hawakang mabuti ang telepono."</string> <string name="face_acquired_recalibrate" msgid="8724013080976469746">"Paki-enroll muli ang iyong mukha."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"Hindi makilala ang mukha. Subukan ulit."</string> @@ -701,7 +702,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Hindi magawa ang iyong face model. Subukan ulit."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"May na-detect na madilim na salamin. Dapat ganap na nakikita ang iyong mukha."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"May na-detect na pantakip sa mukha. Dapat ganap na nakikita ang iyong mukha."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"May na-detect na mask. Dapat ganap na nakikita ang mukha."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Di ma-verify ang mukha. Di available ang hardware."</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Hindi puwedeng buksan sa mga app para sa trabaho ang content na ito"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Hindi puwedeng ibahagi sa mga personal na app ang content na ito"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Hindi puwedeng buksan sa mga personal na app ang content na ito"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Naka-pause ang mga app para sa trabaho"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"I-unpause"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Walang app para sa trabaho"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Walang personal na app"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Buksan ang <xliff:g id="APP">%s</xliff:g> na personal"</string> diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml index a1c49ed9a02f..5405f7a31324 100644 --- a/core/res/res/values-tr/strings.xml +++ b/core/res/res/values-tr/strings.xml @@ -268,7 +268,7 @@ <string name="global_action_settings" msgid="4671878836947494217">"Ayarlar"</string> <string name="global_action_assist" msgid="2517047220311505805">"Asist"</string> <string name="global_action_voice_assist" msgid="6655788068555086695">"Sesli Yardım"</string> - <string name="global_action_lockdown" msgid="2475471405907902963">"Tam gizlilik"</string> + <string name="global_action_lockdown" msgid="2475471405907902963">"Tam kilitleme"</string> <string name="status_bar_notification_info_overflow" msgid="3330152558746563475">"999+"</string> <string name="notification_hidden_text" msgid="2835519769868187223">"Yeni bildirim"</string> <string name="notification_channel_physical_keyboard" msgid="5417306456125988096">"Fiziksel klavye"</string> @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android Sistemi"</string> <string name="user_owner_label" msgid="8628726904184471211">"Kişisel profile geçiş yap"</string> <string name="managed_profile_label" msgid="7316778766973512382">"İş profiline geç"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"<xliff:g id="APP_NAME">%1$s</xliff:g> kişisel profiline geç"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"<xliff:g id="APP_NAME">%1$s</xliff:g> iş profiline geç"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kişiler"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"kişilerinize erişme"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Konum"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Uygulamaya, titreşimi denetleme izni verir."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Uygulamanın titreşim durumuna erişimesine izni verir."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"telefon numaralarına doğrudan çağrı yap"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Uygulamaya, sizin müdahaleniz olmadan telefon numaralarını arama izni verir. Bunun sonucunda beklenmedik ücretlerle veya aramalarla karşılaşabilirsiniz. Bunun, uygulamaya acil durum numaralarını arama izni vermediğini unutmayın. Kötü amaçlı uygulamalar sizin onayınızı almadan arama yaparak veya gelen aramaların otomatik olarak başka bir numaraya yönlendirilmesine neden olan operatör kodlarını arayarak faturanızı kabartabilir."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS çağrı hizmetine erişme"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Uygulamanın, sizin müdahaleniz olmadan telefon etmek için IMS hizmetini kullanmasına izin verir."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"telefonun durumunu ve kimliğini okuma"</string> @@ -634,7 +635,7 @@ <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"Çok parlak"</string> <string name="fingerprint_acquired_power_press" msgid="3107864151278434961">"Güç düğmesine basma algılandı"</string> <string name="fingerprint_acquired_try_adjusting" msgid="3667006071003809364">"Ayarlamayı deneyin"</string> - <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Her defasında parmağınızın konumunu biraz değiştirin"</string> + <string name="fingerprint_acquired_immobile" msgid="1621891895241888048">"Her defasında parmağınızı biraz kaydırın"</string> <string-array name="fingerprint_acquired_vendor"> </string-array> <string name="fingerprint_error_not_match" msgid="4599441812893438961">"Parmak izi tanınmadı"</string> @@ -680,8 +681,8 @@ <string name="face_acquired_too_dark" msgid="8539853432479385326">"Yeterli ışık yok"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Telefonu uzaklaştırın"</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"Telefonu yaklaştırın"</string> - <string name="face_acquired_too_high" msgid="8278815780046368576">"Telefonu daha yukarı kaldırın"</string> - <string name="face_acquired_too_low" msgid="4075391872960840081">"Telefonu daha aşağı indirin"</string> + <string name="face_acquired_too_high" msgid="8278815780046368576">"Telefonu yukarı kaldırın"</string> + <string name="face_acquired_too_low" msgid="4075391872960840081">"Telefonu aşağı indirin"</string> <string name="face_acquired_too_right" msgid="6245286514593540859">"Telefonu solunuza kaydırın"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"Telefonu sağınıza kaydırın"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"Lütfen cihazınıza daha doğrudan bakın."</string> @@ -693,7 +694,7 @@ <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Telefonunuza daha doğrudan bakın"</string> <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Telefonunuza daha doğrudan bakın"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Telefonunuza daha doğrudan bakın"</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"Yüzünüzün görünmesini engelleyen şeyleri kaldırın."</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"Yüzünüzü engelleyen şeyleri kaldırın"</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Siyah çubuk da dahil olmak üzere ekranınızın üst kısmını temizleyin"</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> @@ -701,7 +702,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Yüzünüzün modeli oluşturulamıyor. Tekrar deneyin."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Koyu renk gözlükler algılandı. Yüzünüz tamamen görünür olmalıdır."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Yüzünüzü kapattığınız algılandı. Yüzünüz tamamen görünür olmalıdır."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Yüzünüz algılanamıyor. Yüzünüz tamamen görünür olmalıdır."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Yüz doğrulanamıyor. Donanım kullanılamıyor."</string> @@ -964,7 +965,7 @@ <string name="lockscreen_instructions_when_pattern_enabled" msgid="7982445492532123308">"Kilidi açmak veya acil çağrı yapmak için Menü\'ye basın."</string> <string name="lockscreen_instructions_when_pattern_disabled" msgid="7434061749374801753">"Kilidi açmak için Menü\'ye basın."</string> <string name="lockscreen_pattern_instructions" msgid="3169991838169244941">"Kilit açmak için deseni çizin"</string> - <string name="lockscreen_emergency_call" msgid="7500692654885445299">"Acil durum çağrısı"</string> + <string name="lockscreen_emergency_call" msgid="7500692654885445299">"Acil durum araması"</string> <string name="lockscreen_return_to_call" msgid="3156883574692006382">"Çağrıya dön"</string> <string name="lockscreen_pattern_correct" msgid="8050630103651508582">"Doğru!"</string> <string name="lockscreen_pattern_wrong" msgid="2940138714468358458">"Tekrar deneyin"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Bu içerik, iş uygulamalarıyla açılamaz"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Bu içerik, kişisel uygulamalarla paylaşılamaz"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Bu içerik, kişisel uygulamalarla açılamaz"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"İş uygulamaları duraklatıldı"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Devam ettir"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"İş uygulaması yok"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Kişisel uygulama yok"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Kişisel uygulamayı (<xliff:g id="APP">%s</xliff:g>) aç"</string> @@ -2319,7 +2318,7 @@ <string name="mic_access_on_toast" msgid="2666925317663845156">"Mikrofon kullanılabilir"</string> <string name="mic_access_off_toast" msgid="8111040892954242437">"Mikrofon engellenmiş"</string> <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Çift ekran"</string> - <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Çift Ekran açık"</string> + <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Çift ekran açık"</string> <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g>, içeriği göstermek için her iki ekranı da kullanıyor"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"Cihaz çok ısındı"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"Telefonunuz çok ısındığı için Çift Ekran kullanılamıyor"</string> diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml index 517730c3a335..6a057e3ec384 100644 --- a/core/res/res/values-uk/strings.xml +++ b/core/res/res/values-uk/strings.xml @@ -300,6 +300,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Система Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Перейти в особистий профіль"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Перейти в робочий профіль"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Перейти в особистий профіль у додатку <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Перейти в робочий профіль у додатку <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Контакти"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"отримувати доступ до контактів"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Геодані"</string> @@ -505,8 +507,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Дозволяє програмі контролювати вібросигнал."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Надає додатку доступ до стану вібрації."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"прямо набирати номери тел."</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Дозволяє додатку набирати номери телефонів без вашого відома. Це може спричинити неочікуване стягнення плати чи здійснення викликів. Зверніть увагу, що додаток не зможе набирати екстрені номери. Шкідливі додатки можуть здійснювати дзвінки без вашого підтвердження, за що з вас стягуватимуться кошти, або набирати коди оператора, після чого вхідні виклики переадресовуватимуться на інший номер."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"отримувати доступ до телефонної служби IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Додаток зможе телефонувати за допомогою служби IMS без вашого відома."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"читати статус та ідентифікаційну інформацію телефону"</string> @@ -703,7 +704,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Не вдається створити модель обличчя. Повторіть спробу."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Виявлено темні окуляри. Обличчя має бути видно повністю."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Виявлено аксесуар, який закриває обличчя. Обличчя має бути видно повністю."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Обличчя не видно повністю, бо його закриває аксесуар."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Не вдається перевірити обличчя. Апаратне забезпечення недоступне."</string> @@ -2161,10 +2162,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Цей контент не можна відкривати в робочих додатках"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Цим контентом не можна ділитися в особистих додатках"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Цей контент не можна відкривати в особистих додатках"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Робочі додатки призупинено"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Увімкнути знову"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Немає робочих додатків"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Немає особистих додатків"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Відкрити особистий додаток <xliff:g id="APP">%s</xliff:g>"</string> @@ -2290,7 +2289,7 @@ <string name="sensor_privacy_start_use_mic_notification_content_title" msgid="2420858361276370367">"Розблокуйте мікрофон пристрою"</string> <string name="sensor_privacy_start_use_camera_notification_content_title" msgid="7287720213963466672">"Розблокуйте камеру пристрою"</string> <string name="sensor_privacy_start_use_notification_content_text" msgid="7595608891015777346">"Для <b><xliff:g id="APP">%s</xliff:g></b> та всіх додатків і сервісів"</string> - <string name="sensor_privacy_start_use_dialog_turn_on_button" msgid="7089318886628390827">"Розблокувати"</string> + <string name="sensor_privacy_start_use_dialog_turn_on_button" msgid="7089318886628390827">"Надати"</string> <string name="sensor_privacy_notification_channel_label" msgid="936036783155261349">"Конфіденційність датчиків"</string> <string name="splash_screen_view_icon_description" msgid="180638751260598187">"Значок додатка"</string> <string name="splash_screen_view_branding_description" msgid="7911129347402728216">"Зображення фірмової символіки додатка"</string> @@ -2320,8 +2319,8 @@ <string name="permdesc_startForegroundServicesFromBackground" msgid="4071826571656001537">"Дозволяє супутньому додатку запускати активні сервіси у фоновому режимі."</string> <string name="mic_access_on_toast" msgid="2666925317663845156">"Мікрофон доступний"</string> <string name="mic_access_off_toast" msgid="8111040892954242437">"Мікрофон заблоковано"</string> - <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Подвійний екран"</string> - <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Подвійний екран увімкнено"</string> + <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Dual Screen"</string> + <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Dual Screen увімкнено"</string> <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"Додаток <xliff:g id="APP_NAME">%1$s</xliff:g> використовує обидва екрани для показу контенту"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"Пристрій сильно нагрівається"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"Подвійний екран недоступний, оскільки телефон сильно нагрівається"</string> diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml index 9941797aba58..421c72ed15c6 100644 --- a/core/res/res/values-ur/strings.xml +++ b/core/res/res/values-ur/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android سسٹم"</string> <string name="user_owner_label" msgid="8628726904184471211">"ذاتی پروفائل پر سوئچ کریں"</string> <string name="managed_profile_label" msgid="7316778766973512382">"دفتری پروفائل پر سوئچ کریں"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"ذاتی <xliff:g id="APP_NAME">%1$s</xliff:g> پر سوئچ کریں"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"دفتری <xliff:g id="APP_NAME">%1$s</xliff:g> پر سوئچ کریں"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"رابطے"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"اپنے رابطوں تک رسائی حاصل کریں"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"مقام"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"ایپ کو وائبریٹر کنٹرول کرنے کی اجازت دیتا ہے۔"</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"ایپ کو وائبریٹر اسٹیٹ تک رسائی حاصل کرنے کی اجازت دیتا ہے۔"</string> <string name="permlab_callPhone" msgid="1798582257194643320">"براہ راست فون نمبرز پر کال کریں"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"ایپ کو آپ کی مداخلت کے بغیر فون نمبرز پر کال کرنے کی سہولت حاصل ہوتی ہے۔ اس کی وجہ سے غیر متوقع چارجز وصول کئے جا سکتے ہیں یا غیر متوقع کالز موصول ہو سکتی ہیں۔ یاد رکھیں کہ اس سے ایپ کو ایمرجنسی نمبرز پر کال کرنے کی سہولت حاصل نہیں ہوتی ہے۔ نقصان دہ ایپس آپ کی تصدیق کے بغیر کالز کر کے آپ کی رقم خرچ کروا سکتی ہیں یا کیریئر کوڈز ڈائل کر سکتی ہیں جس سے اِن کمنگ کالز خودکار طور پر دوسرے نمبر پر فارورڈ ہو جاتی ہیں۔"</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS کال سروس تک رسائی حاصل کریں"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"آپ کی مداخلت کے بغیر کالیں کرنے کیلئے ایپ کو IMS سروس استعمال کرنے کی اجازت دیتی ہے۔"</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"فون کے اسٹیٹس اور شناخت کو پڑھیں"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"اس مواد کو ورک ایپس کے ساتھ نہیں کھولا جا سکتا"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"اس مواد کا اشتراک ذاتی ایپس کے ساتھ نہیں کیا جا سکتا"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"اس مواد کو ذاتی ایپس کے ساتھ نہیں کھولا جا سکتا"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"ورک ایپس موقوف ہیں"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"غیر موقوف کریں"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"کوئی ورک ایپ نہیں"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"کوئی ذاتی ایپ نہیں"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"ذاتی <xliff:g id="APP">%s</xliff:g> کھولیں"</string> @@ -2320,7 +2319,7 @@ <string name="mic_access_off_toast" msgid="8111040892954242437">"مائیکروفون مسدود ہے"</string> <string name="concurrent_display_notification_name" msgid="1526911253558311131">"دوہری اسکرین"</string> <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"دوہری اسکرین آن ہے"</string> - <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> مواد دکھانے کیلئے دونوں ڈسپلیز استعمال کر رہی ہے"</string> + <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"مواد دکھانے کیلئے <xliff:g id="APP_NAME">%1$s</xliff:g> دونوں ڈسپلیز استعمال کر رہی ہے"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"آلہ بہت زیادہ گرم ہے"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"دوہری اسکرین دستیاب نہیں ہے کیونکہ آپ کا فون بہت زیادہ گرم ہو رہا ہے"</string> <string name="concurrent_display_notification_power_save_title" msgid="1794569070730736281">"Dual Screen دستیاب نہیں ہے"</string> diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml index 5e227d379af9..a255827471b3 100644 --- a/core/res/res/values-uz/strings.xml +++ b/core/res/res/values-uz/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android tizimi"</string> <string name="user_owner_label" msgid="8628726904184471211">"Shaxsiy profilga almashtirish"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Ishchi profilga almashtirish"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Shaxsiy <xliff:g id="APP_NAME">%1$s</xliff:g> ilovasiga almashish"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Ishga oid <xliff:g id="APP_NAME">%1$s</xliff:g> ilovasiga almashish"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Kontaktlar"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"kontaktlarga kirish"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Joylashuv"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Ilova tebranishli signallarni boshqarishi mumkin."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Ilovaga tebranish holatini aniqlash ruxsatini beradi."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"telefon raqamlariga tog‘ridan to‘g‘ri qo‘ng‘iroq qilish"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Ilova sizning ishtirokingizsiz raqamlarga telefon qilishi mumkin. Bu kutilmagan toʻlovlar yoki chaqiruvlarga olib kelishi mumkin. Yodda tuting, bu favqulodda xizmat raqamlariga telefon qilishiga ruxsat bermaydi. Zararli ilovalar beruxsat telefon qilishi yoki kiruvchi chaqiruvlarni avtomatik ravishda boshqa raqamga yoʻnaltiruvchi operator kodlarini terish orqali xarajatlaringizni oshirishi mumkin."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"IMS qo‘ng‘iroq xizmatiga kirish"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Ilovaga sizning ishtirokingizsiz qo‘ng‘iroqlarni amalga oshirish uchun IMS xizmatidan foydalanishga ruxsat beradi."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"telefon holati haqidagi ma’lumotlarni olish"</string> @@ -701,7 +702,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Yuzingiz modeli yaratilmadi. Qayta urining."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Qora koʻzoynak aniqlandi. Yuzingiz toʻliq koʻrinishi kerak."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Yuzning bir qismi yopilib qolgan. Yuzingiz toʻliq koʻrinishi kerak."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Yuz qismi yopilib qolgan. Yuzingiz toʻliq koʻrinishi kerak."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Yuzingiz tasdiqlanmadi. Qurilma ishlamayapti."</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Bu kontent ishga oid ilovalar bilan ochilmaydi"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Bu kontent shaxsiy ilovalar bilan ulashilmaydi"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Bu kontent shaxsiy ilovalar bilan ochilmaydi"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Ishga oid ilovalar pauza qilingan"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Davom ettirish"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Ishga oid ilovalar topilmadi"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Shaxsiy ilovalar topilmadi"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Shaxsiy <xliff:g id="APP">%s</xliff:g> ochish"</string> @@ -2318,7 +2317,7 @@ <string name="permdesc_startForegroundServicesFromBackground" msgid="4071826571656001537">"Hamroh ilovaga faol xizmatlarni fonda ishga tushirishga ruxsat beradi."</string> <string name="mic_access_on_toast" msgid="2666925317663845156">"Mikrofon yoqildi"</string> <string name="mic_access_off_toast" msgid="8111040892954242437">"Mikrofon bloklandi"</string> - <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Ikki ekranli rejim"</string> + <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Ikkita ekran"</string> <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Ikki ekranli rejim yoniq"</string> <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> kontentni ikkala ekranda chiqarmoqda"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"Qurilma qizib ketdi"</string> diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index c206b682a955..85476911d76f 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Hệ thống Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Chuyển sang hồ sơ cá nhân"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Chuyển sang hồ sơ công việc"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Chuyển sang <xliff:g id="APP_NAME">%1$s</xliff:g> cá nhân"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Chuyển sang <xliff:g id="APP_NAME">%1$s</xliff:g> công việc"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Danh bạ"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"truy cập vào danh bạ của bạn"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Vị trí"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Cho phép ứng dụng kiểm soát bộ rung."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Cho phép ứng dụng truy cập vào trạng thái bộ rung."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"gọi trực tiếp số điện thoại"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Cho phép ứng dụng gọi cho các số điện thoại mà không cần bạn phải can thiệp. Việc này có thể làm phát sinh các khoản phí hoặc cuộc gọi không mong muốn. Xin lưu ý rằng quyền này không cho phép ứng dụng gọi cho các số khẩn cấp. Các ứng dụng độc hại có thể khiến bạn bị mất tiền thông qua việc thực hiện cuộc gọi khi chưa có sự xác nhận của bạn, hoặc có thể quay số theo mã của nhà mạng, khiến các cuộc gọi đến bị tự động chuyển tiếp đến một số khác."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"truy cập dịch vụ gọi điện qua IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Cho phép ứng dụng sử dụng dịch vụ IMS để thực hiện cuộc gọi mà không có sự can thiệp của bạn."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"đọc trạng thái và nhận dạng của điện thoại"</string> @@ -624,11 +625,11 @@ <string name="biometric_error_generic" msgid="6784371929985434439">"Lỗi khi xác thực"</string> <string name="screen_lock_app_setting_name" msgid="6054944352976789228">"Dùng phương thức khóa màn hình"</string> <string name="screen_lock_dialog_default_subtitle" msgid="120359538048533695">"Hãy nhập phương thức khóa màn hình của bạn để tiếp tục"</string> - <string name="fingerprint_acquired_partial" msgid="4323789264604479684">"Nhấn chắc chắn trên cảm biến"</string> + <string name="fingerprint_acquired_partial" msgid="4323789264604479684">"Ấn mạnh lên cảm biến"</string> <string name="fingerprint_acquired_insufficient" msgid="623888149088216458">"Không nhận dạng được vân tay. Hãy thử lại."</string> <string name="fingerprint_acquired_imager_dirty" msgid="1770676120848224250">"Hãy vệ sinh cảm biến vân tay rồi thử lại"</string> <string name="fingerprint_acquired_imager_dirty_alt" msgid="9169582140486372897">"Vệ sinh cảm biến rồi thử lại"</string> - <string name="fingerprint_acquired_too_fast" msgid="1628459767349116104">"Nhấn chắc trên cảm biến"</string> + <string name="fingerprint_acquired_too_fast" msgid="1628459767349116104">"Ấn mạnh lên cảm biến"</string> <string name="fingerprint_acquired_too_slow" msgid="6683510291554497580">"Di chuyển ngón tay quá chậm. Vui lòng thử lại."</string> <string name="fingerprint_acquired_already_enrolled" msgid="2285166003936206785">"Hãy thử một vân tay khác"</string> <string name="fingerprint_acquired_too_bright" msgid="3863560181670915607">"Quá sáng"</string> @@ -693,7 +694,7 @@ <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Nhìn thẳng vào điện thoại"</string> <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Nhìn thẳng vào điện thoại"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Nhìn thẳng vào điện thoại"</string> - <string name="face_acquired_obscured" msgid="4917643294953326639">"Hãy loại bỏ mọi thứ che khuất khuôn mặt bạn."</string> + <string name="face_acquired_obscured" msgid="4917643294953326639">"Loại bỏ mọi thứ che khuất khuôn mặt bạn."</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Vệ sinh phần đầu màn hình, bao gồm cả thanh màu đen"</string> <!-- no translation found for face_acquired_dark_glasses_detected (5643703296620631986) --> <skip /> @@ -701,7 +702,7 @@ <skip /> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Không thể tạo mẫu khuôn mặt của bạn. Hãy thử lại."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Đã 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."</string> - <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Đã 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ị."</string> + <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Phát hiện khuôn mặt bị che. Bạn phải cho thấy toàn bộ khuôn mặt."</string> <string-array name="face_acquired_vendor"> </string-array> <string name="face_error_hw_not_available" msgid="5085202213036026288">"Không thể xác minh khuôn mặt. Phần cứng không có sẵn."</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Bạn không thể mở nội dung này bằng ứng dụng công việc"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Bạn không thể chia sẻ nội dung này bằng ứng dụng cá nhân"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Bạn không thể mở nội dung này bằng ứng dụng cá nhân"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Các ứng dụng công việc đã bị tạm dừng"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Bỏ tạm dừng"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Không có ứng dụng công việc"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Không có ứng dụng cá nhân"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Mở <xliff:g id="APP">%s</xliff:g> cá nhân"</string> @@ -2318,8 +2317,8 @@ <string name="permdesc_startForegroundServicesFromBackground" msgid="4071826571656001537">"Cho phép một ứng dụng đồng hành bắt đầu các dịch vụ trên nền trước từ nền."</string> <string name="mic_access_on_toast" msgid="2666925317663845156">"Micrô đang hoạt động"</string> <string name="mic_access_off_toast" msgid="8111040892954242437">"Micrô đang bị chặn"</string> - <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Màn hình đôi"</string> - <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Chế độ Màn hình đôi đang bật"</string> + <string name="concurrent_display_notification_name" msgid="1526911253558311131">"Dual screen"</string> + <string name="concurrent_display_notification_active_title" msgid="4892473462327943673">"Chế độ Dual screen bật"</string> <string name="concurrent_display_notification_active_content" msgid="5889355473710601270">"<xliff:g id="APP_NAME">%1$s</xliff:g> đang dùng cả hai màn hình để thể hiện nội dung"</string> <string name="concurrent_display_notification_thermal_title" msgid="5921609404644739229">"Thiết bị quá nóng"</string> <string name="concurrent_display_notification_thermal_content" msgid="2075484836527609319">"Không bật được chế độ Màn hình đôi vì điện thoại của bạn quá nóng"</string> diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml index 99203d5c9f1d..6908387a20ab 100644 --- a/core/res/res/values-zh-rCN/strings.xml +++ b/core/res/res/values-zh-rCN/strings.xml @@ -250,7 +250,7 @@ <string name="global_action_bug_report" msgid="5127867163044170003">"错误报告"</string> <string name="global_action_logout" msgid="6093581310002476511">"结束会话"</string> <string name="global_action_screenshot" msgid="2610053466156478564">"屏幕截图"</string> - <string name="bugreport_title" msgid="8549990811777373050">"错误报告"</string> + <string name="bugreport_title" msgid="8549990811777373050">"Bug 报告"</string> <string name="bugreport_message" msgid="5212529146119624326">"这会收集有关当前设备状态的信息,并以电子邮件的形式进行发送。从开始生成错误报告到准备好发送需要一点时间,请耐心等待。"</string> <string name="bugreport_option_interactive_title" msgid="7968287837902871289">"互动式报告"</string> <string name="bugreport_option_interactive_summary" msgid="8493795476325339542">"在大多数情况下,建议您使用此选项,以便追踪报告的生成进度,输入与相应问题相关的更多详细信息,以及截取屏幕截图。系统可能会省略掉一些不常用的区段,从而缩短生成报告的时间。"</string> @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android 系统"</string> <string name="user_owner_label" msgid="8628726904184471211">"切换到个人资料"</string> <string name="managed_profile_label" msgid="7316778766973512382">"切换到工作资料"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"切换到个人 <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"切换到工作 <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"通讯录"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"访问您的通讯录"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"位置信息"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"允许应用控制振动器。"</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"允许该应用访问振动器状态。"</string> <string name="permlab_callPhone" msgid="1798582257194643320">"拨打电话"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"允许应用在没有您干预的情况下拨打电话号码。这可能会导致意外扣款和拨打电话。请注意,此权限不允许应用拨打紧急电话号码。恶意应用可能会在未经您确认的情况下拨打电话,给您带来不必要的费用;也可能会拨打运营商代码,导致系统将来电自动转接到另一个号码。"</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"使用即时通讯通话服务"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"允许应用自行使用即时通讯服务拨打电话。"</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"读取手机状态和身份"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"无法使用工作应用打开该内容"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"无法使用个人应用分享该内容"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"无法使用个人应用打开该内容"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"工作应用已暂停"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"取消暂停"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"没有支持该内容的工作应用"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"没有支持该内容的个人应用"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"打开个人 <xliff:g id="APP">%s</xliff:g>"</string> diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml index a3704c7080fb..31bda311d6dd 100644 --- a/core/res/res/values-zh-rHK/strings.xml +++ b/core/res/res/values-zh-rHK/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android 系統"</string> <string name="user_owner_label" msgid="8628726904184471211">"切換至個人設定檔"</string> <string name="managed_profile_label" msgid="7316778766973512382">"切換至工作設定檔"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"轉去個人應用程式「<xliff:g id="APP_NAME">%1$s</xliff:g>」"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"轉去工作應用程式「<xliff:g id="APP_NAME">%1$s</xliff:g>」"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"通訊錄"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"存取你的通訊錄"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"位置"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"允許應用程式控制震動。"</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"允許應用程式存取震動狀態。"</string> <string name="permlab_callPhone" msgid="1798582257194643320">"直接撥打電話號碼"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"允許應用程式未經您操作自行撥打電話號碼,但這可能會產生非預期的費用或通話。請注意,此權限並不允許應用程式撥打緊急電話號碼。惡意應用程式可能利用此功能擅自撥打電話或撥打流動網絡供應商代碼,導致來電自動轉駁至其他號碼,產生不必要的額外費用。"</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"使用 IMS 通話服務"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"允許應用程式自行使用 IMS 服務撥打電話。"</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"讀取手機狀態和識別碼"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"無法使用工作應用程式開啟此內容"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"無法使用個人應用程式分享此內容"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"無法使用個人應用程式開啟此內容"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"已暫停工作應用程式"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"取消暫停"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"沒有適用的工作應用程式"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"沒有適用的個人應用程式"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"開啟個人用 <xliff:g id="APP">%s</xliff:g>"</string> diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml index e6b7380a2cf6..e84bb472d4e3 100644 --- a/core/res/res/values-zh-rTW/strings.xml +++ b/core/res/res/values-zh-rTW/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Android 系統"</string> <string name="user_owner_label" msgid="8628726904184471211">"切換至個人設定檔"</string> <string name="managed_profile_label" msgid="7316778766973512382">"切換至工作資料夾"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"切換至個人 <xliff:g id="APP_NAME">%1$s</xliff:g> 帳戶"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"切換至工作用 <xliff:g id="APP_NAME">%1$s</xliff:g> 帳戶"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"聯絡人"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"存取你的聯絡人"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"位置"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"允許應用程式控制震動。"</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"允許應用程式存取震動功能狀態。"</string> <string name="permlab_callPhone" msgid="1798582257194643320">"直接撥打電話號碼"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"允許應用程式在你未操作的情況下自行撥打電話號碼,但可能產生非預期的費用或撥打非預期的電話。請注意,這項權限並不允許應用程式撥打緊急電話號碼。惡意應用程式可能利用此功能擅自撥打電話或撥打電信業者的代碼,導致來電自動轉接到其他號碼,增加不必要的額外支出。"</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"存取 IMS 撥號服務"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"允許應用程式自動使用 IMS 服務撥打電話。"</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"讀取手機狀態和識別碼"</string> @@ -1697,7 +1698,7 @@ <string name="accessibility_shortcut_menu_item_status_on" msgid="6608392117189732543">"開啟"</string> <string name="accessibility_shortcut_menu_item_status_off" msgid="5531598275559472393">"關閉"</string> <string name="accessibility_enable_service_title" msgid="3931558336268541484">"要將裝置的完整控制權授予「<xliff:g id="SERVICE">%1$s</xliff:g>」嗎?"</string> - <string name="accessibility_service_warning_description" msgid="291674995220940133">"如果你有無障礙服務需求,可以將完整控制權授予具有相關功能的應用程式,但請勿將完整控制權授予大多數的應用程式。"</string> + <string name="accessibility_service_warning_description" msgid="291674995220940133">"如果你有無障礙服務需求,建議可將完整控制權授予具有相關功能的應用程式,但請勿將完整控制權授予大多數的應用程式。"</string> <string name="accessibility_service_screen_control_title" msgid="190017412626919776">"查看及控制螢幕"</string> <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"可讀取螢幕上的所有內容及在其他應用程式上顯示內容。"</string> <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"查看及執行動作"</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"無法使用工作應用程式開啟這項內容"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"無法透過個人應用程式分享這項內容"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"無法使用個人應用程式開啟這項內容"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"工作應用程式目前為暫停狀態"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"取消暫停"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"沒有適用的工作應用程式"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"沒有適用的個人應用程式"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"開啟個人用「<xliff:g id="APP">%s</xliff:g>」"</string> diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml index 355d70d28733..6a22729489a3 100644 --- a/core/res/res/values-zu/strings.xml +++ b/core/res/res/values-zu/strings.xml @@ -298,6 +298,8 @@ <string name="android_system_label" msgid="5974767339591067210">"Uhlelo lwe-Android"</string> <string name="user_owner_label" msgid="8628726904184471211">"Shintshela kuphrofayela yomuntu siqu"</string> <string name="managed_profile_label" msgid="7316778766973512382">"Shintshela kuphrofayela yomsebenzi"</string> + <string name="user_owner_app_label" msgid="1553595155465750298">"Shintshela ku-<xliff:g id="APP_NAME">%1$s</xliff:g> yomuntu siqu"</string> + <string name="managed_profile_app_label" msgid="367401088383965725">"Shintshela ku-<xliff:g id="APP_NAME">%1$s</xliff:g> yomsebenzi"</string> <string name="permgrouplab_contacts" msgid="4254143639307316920">"Oxhumana nabo"</string> <string name="permgroupdesc_contacts" msgid="9163927941244182567">"finyelela koxhumana nabo"</string> <string name="permgrouplab_location" msgid="1858277002233964394">"Indawo"</string> @@ -318,7 +320,7 @@ <string name="permgroupdesc_activityRecognition" msgid="4725624819457670704">"finyelela kumsebenzi wakho womzimba"</string> <string name="permgrouplab_camera" msgid="9090413408963547706">"Ikhamera"</string> <string name="permgroupdesc_camera" msgid="7585150538459320326">"thatha izithombe uphinde urekhode ividiyo"</string> - <string name="permgrouplab_nearby_devices" msgid="5529147543651181991">"Amadivayisi aseduze"</string> + <string name="permgrouplab_nearby_devices" msgid="5529147543651181991">"kumadivayisi aseduze"</string> <string name="permgroupdesc_nearby_devices" msgid="3213561597116913508">"thola futhi uxhume kumadivayisi aseduze"</string> <string name="permgrouplab_calllog" msgid="7926834372073550288">"Amarekhodi wamakholi"</string> <string name="permgroupdesc_calllog" msgid="2026996642917801803">"funda futhi ubhale irekhodi lamakholi efoni"</string> @@ -503,8 +505,7 @@ <string name="permdesc_vibrate" msgid="8733343234582083721">"Ivumela uhlelo lokusebenza ukulawula isidlidlizi."</string> <string name="permdesc_vibrator_state" msgid="7050024956594170724">"Ivumela uhlelo lokusebenza ukuthi lufinyelele kusimo sesidlidlizeli."</string> <string name="permlab_callPhone" msgid="1798582257194643320">"ngokuqondile shayela izinombolo zocingo"</string> - <!-- no translation found for permdesc_callPhone (7892422187827695656) --> - <skip /> + <string name="permdesc_callPhone" msgid="7892422187827695656">"Ivumela i-app ukushayela izinombolo zefoni ngaphandle kokungenela kwakho. Lokhu kungase kubangele izindleko noma amakholi angalindelekile. Qaphela ukuthi lokhu akuvumeli i-app ukufonela izinombolo zezimo eziphuthumayo. Ama-app angalungile angakubiza imali ngokufona ngaphandle kokuqinisekisa kwakho, noma ukudayela amakhodi enkampani yenethiwekhi abangela ukuthi amakholi angenayo adluliselwe ngokuzenzekelayo kwenye inombolo."</string> <string name="permlab_accessImsCallService" msgid="442192920714863782">"finyelela kusevisi yekholi ye-IMS"</string> <string name="permdesc_accessImsCallService" msgid="6328551241649687162">"Ivumela uhlelo lokusebenza ukuthi lusebenzise isevisi ye-IMS ukuze yenze amakholi ngaphandle kokungenelela kwakho."</string> <string name="permlab_readPhoneState" msgid="8138526903259297969">"funda isimo sefoni kanye nesazisi"</string> @@ -680,8 +681,8 @@ <string name="face_acquired_too_dark" msgid="8539853432479385326">"Ukukhanya okunganele"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Yisa ifoni kude"</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"Sondeza ifoni eduze"</string> - <string name="face_acquired_too_high" msgid="8278815780046368576">"Yisa ifoni phezulu"</string> - <string name="face_acquired_too_low" msgid="4075391872960840081">"Yisa ifoni phansi"</string> + <string name="face_acquired_too_high" msgid="8278815780046368576">"Nyusa ifoni"</string> + <string name="face_acquired_too_low" msgid="4075391872960840081">"Yehlisa ifoni"</string> <string name="face_acquired_too_right" msgid="6245286514593540859">"Yisa ifoni ngakwesokunxele sakho"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"Yisa ifoni ngakwesokudla sakho"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"Sicela ubheke ngokuqondile kakhulu kudivayisi yakho."</string> @@ -2159,10 +2160,8 @@ <string name="resolver_cant_access_work_apps_explanation" msgid="1129960195389373279">"Lokhu okuqukethwe akukwazi ukukopishwa ngama-app womsebenzi"</string> <string name="resolver_cant_share_with_personal_apps_explanation" msgid="6349766201904601544">"Lokhu okuqukethwe akukwazi ukwabiwa nama-app womuntu siqu"</string> <string name="resolver_cant_access_personal_apps_explanation" msgid="1679399548862724359">"Lokhu okuqukethwe akukwazi ukukopishwa ngama-app womuntu siqu"</string> - <!-- no translation found for resolver_turn_on_work_apps (1535946298236678122) --> - <skip /> - <!-- no translation found for resolver_switch_on_work (4527096360772311894) --> - <skip /> + <string name="resolver_turn_on_work_apps" msgid="1535946298236678122">"Ama-app omsebenzi amisiwe"</string> + <string name="resolver_switch_on_work" msgid="4527096360772311894">"Qhubekisa"</string> <string name="resolver_no_work_apps_available" msgid="3298291360133337270">"Awekho ama-app womsebenzi"</string> <string name="resolver_no_personal_apps_available" msgid="6284837227019594881">"Awekho ama-app womuntu siqu"</string> <string name="miniresolver_open_in_personal" msgid="6499100403307136696">"Vula i-<xliff:g id="APP">%s</xliff:g> yomuntu siqu"</string> diff --git a/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java b/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java index af81957d1e03..b73a87c8f0d9 100644 --- a/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java +++ b/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java @@ -451,10 +451,8 @@ public class ActivityThreadTest { final Rect bounds = activity.getWindowManager().getCurrentWindowMetrics().getBounds(); assertEquals(activityConfigPortrait.windowConfiguration.getBounds(), bounds); - // Ensure that Activity#onConfigurationChanged() not be called because the changes in - // WindowConfiguration shouldn't be reported, and we only apply the latest Configuration - // update in transaction. - assertEquals(numOfConfig, activity.mNumOfConfigChanges); + // Ensure changes in window configuration bounds are reported + assertEquals(numOfConfig + 1, activity.mNumOfConfigChanges); } @Test diff --git a/core/tests/coretests/src/android/view/autofill/AutofillFeatureFlagsTest.java b/core/tests/coretests/src/android/view/autofill/AutofillFeatureFlagsTest.java index e03b722c9c6c..f9b323922af5 100644 --- a/core/tests/coretests/src/android/view/autofill/AutofillFeatureFlagsTest.java +++ b/core/tests/coretests/src/android/view/autofill/AutofillFeatureFlagsTest.java @@ -51,42 +51,12 @@ public class AutofillFeatureFlagsTest { assertThat(fillDialogHints[1]).isEqualTo("creditCardNumber"); } - @Test - public void testIsCredentialManagerEnabled() { - setCredentialManagerEnabled(false); - assertThat(AutofillFeatureFlags.isCredentialManagerEnabled()).isFalse(); - setCredentialManagerEnabled(true); - assertThat(AutofillFeatureFlags.isCredentialManagerEnabled()).isTrue(); - } - - @Test - public void testShouldIgnoreCredentialManagerViews() { - setCredentialManagerEnabled(false); - setIgnoreCredentialManagerViews(true); - // Overall feature is disabled, so we shouldn't ignore views. - assertThat(AutofillFeatureFlags.shouldIgnoreCredentialViews()).isFalse(); - setCredentialManagerEnabled(true); - assertThat(AutofillFeatureFlags.shouldIgnoreCredentialViews()).isTrue(); - } - private static void setFillDialogHints(String value) { setDeviceConfig( AutofillFeatureFlags.DEVICE_CONFIG_AUTOFILL_DIALOG_HINTS, value); } - private static void setCredentialManagerEnabled(boolean value) { - setDeviceConfig( - AutofillFeatureFlags.DEVICE_CONFIG_AUTOFILL_CREDENTIAL_MANAGER_ENABLED, - String.valueOf(value)); - } - - private static void setIgnoreCredentialManagerViews(boolean value) { - setDeviceConfig( - AutofillFeatureFlags.DEVICE_CONFIG_AUTOFILL_CREDENTIAL_MANAGER_IGNORE_VIEWS, - String.valueOf(value)); - } - private static void setDeviceConfig(String key, String value) { DeviceConfig.setProperty( DeviceConfig.NAMESPACE_AUTOFILL, key, value, /* makeDefault */ false); diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java index 6c482c831152..ba02faf94d69 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleExpandedView.java @@ -27,6 +27,7 @@ import static com.android.wm.shell.bubbles.BubbleDebugConfig.DEBUG_BUBBLE_EXPAND import static com.android.wm.shell.bubbles.BubbleDebugConfig.TAG_BUBBLES; import static com.android.wm.shell.bubbles.BubbleDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.wm.shell.bubbles.BubblePositioner.MAX_HEIGHT; +import static com.android.wm.shell.transition.Transitions.ENABLE_SHELL_TRANSITIONS; import android.annotation.NonNull; import android.annotation.SuppressLint; @@ -1057,13 +1058,21 @@ public class BubbleExpandedView extends LinearLayout { Log.d(TAG, "cleanUpExpandedState: bubble=" + getBubbleKey() + " task=" + mTaskId); } if (getTaskId() != INVALID_TASK_ID) { - try { - ActivityTaskManager.getService().removeTask(getTaskId()); - } catch (RemoteException e) { - Log.w(TAG, e.getMessage()); + // Ensure the task is removed from WM + if (ENABLE_SHELL_TRANSITIONS) { + if (mTaskView != null) { + mTaskView.removeTask(); + } + } else { + try { + ActivityTaskManager.getService().removeTask(getTaskId()); + } catch (RemoteException e) { + Log.w(TAG, e.getMessage()); + } } } if (mTaskView != null) { + // Release the surface & other task view related things mTaskView.release(); removeView(mTaskView); mTaskView = null; diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java index 3e568e9cb996..387d39056ffc 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java @@ -431,6 +431,11 @@ public class RecentsTransitionHandler implements Transitions.TransitionHandler { " adding opening taskId=%d", taskInfo.taskId); mOpeningTasks.add(new TaskState(change, target.leash)); } + } else if (TransitionUtil.isDividerBar(change)) { + final RemoteAnimationTarget target = TransitionUtil.newTarget(change, + info.getChanges().size() - i, info, t, mLeashMap); + // Add this as a app and we will separate them on launcher side by window type. + apps.add(target); } } t.apply(); 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 e5ae10c097a5..5c2f1438c08e 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 @@ -482,8 +482,6 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, } final WindowContainerTransaction wct = new WindowContainerTransaction(); - final WindowContainerTransaction evictWct = new WindowContainerTransaction(); - prepareEvictChildTasks(position, evictWct); options = resolveStartStage(STAGE_TYPE_UNDEFINED, position, options, null /* wct */); wct.sendPendingIntent(intent, fillInIntent, options); @@ -494,12 +492,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, prepareEnterSplitScreen(wct, null /* taskInfo */, position); mSplitTransitions.startEnterTransition(TRANSIT_TO_FRONT, wct, null, this, - null /* consumedCallback */, - (finishWct, finishT) -> { - if (!evictWct.isEmpty()) { - finishWct.merge(evictWct, true); - } - } /* finishedCallback */, extraTransitType); + null /* consumedCallback */, null /* finishedCallback */, extraTransitType); } /** Launches an activity into split by legacy transition. */ @@ -1476,6 +1469,8 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, mSideStage.removeAllTasks(wct, false /* toTop */); mMainStage.deactivate(wct, false /* toTop */); } + wct.setReparentLeafTaskIfRelaunch(mRootTaskInfo.token, + false /* reparentLeafTaskIfRelaunch */); } private void prepareEnterSplitScreen(WindowContainerTransaction wct) { @@ -1509,7 +1504,6 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, if (taskInfo != null) { wct.startTask(taskInfo.taskId, resolveStartStage(STAGE_TYPE_UNDEFINED, startPosition, null, wct)); - targetStage.evictAllChildren(wct); } // If running background, we need to reparent current top visible task to another stage // and evict all tasks current under its. @@ -1519,7 +1513,6 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, updateWindowBounds(mSplitLayout, wct); final StageTaskListener anotherStage = targetStage == mMainStage ? mSideStage : mMainStage; - anotherStage.evictAllChildren(wct); anotherStage.reparentTopTask(wct); wct.reorder(mRootTaskInfo.token, true); setRootForceTranslucent(false, wct); @@ -1538,6 +1531,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, mSideStage.addTask(taskInfo, wct); } mMainStage.activate(wct, true /* includingTopTask */); + mSplitLayout.resetDividerPosition(); updateWindowBounds(mSplitLayout, wct); wct.reorder(mRootTaskInfo.token, true); setRootForceTranslucent(false, wct); @@ -1776,7 +1770,10 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, }); } - void onChildTaskAppeared(StageListenerImpl stageListener, int taskId) { + /** Callback when split roots have child task appeared under it, this is a little different from + * #onStageHasChildrenChanged because this would be called every time child task appeared. + * NOTICE: This only be called on legacy transition. */ + private 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() && mSplitRequest == null) { @@ -1822,6 +1819,8 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, wct.setForceTranslucent(mRootTaskInfo.token, translucent); } + /** Callback when split roots visiblility changed. + * NOTICE: This only be called on legacy transition. */ private void onStageVisibilityChanged(StageListenerImpl stageListener) { // If split didn't active, just ignore this callback because we should already did these // on #applyExitSplitScreen. @@ -1963,6 +1962,8 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, } } + /** Callback when split roots have child or haven't under it. + * NOTICE: This only be called on legacy transition. */ private void onStageHasChildrenChanged(StageListenerImpl stageListener) { final boolean hasChildren = stageListener.mHasChildren; final boolean isSideStage = stageListener == mSideStageListener; @@ -2327,6 +2328,15 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, // the remote handler. return null; } + + if ((mMainStage.containsTask(triggerTask.taskId) + && mMainStage.getChildCount() == 1) + || (mSideStage.containsTask(triggerTask.taskId) + && mSideStage.getChildCount() == 1)) { + // A splitting task is opening to fullscreen causes one side of the split empty, + // so appends operations to exit split. + prepareExitSplitScreen(STAGE_TYPE_UNDEFINED, out); + } } } else { if (isOpening && getStageOfTask(triggerTask) != null) { @@ -2409,9 +2419,23 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, if (isOpeningType(change.getMode())) { // Split is opened by someone so set it as visible. setSplitsVisible(true); + // TODO(b/275664132): Find a way to integrate this with finishWct. + // This is setting the flag to a task and not interfering with the + // transition. + final WindowContainerTransaction wct = new WindowContainerTransaction(); + wct.setReparentLeafTaskIfRelaunch(mRootTaskInfo.token, + false /* reparentLeafTaskIfRelaunch */); + mTaskOrganizer.applyTransaction(wct); } else if (isClosingType(change.getMode())) { // Split is closed by someone so set it as invisible. setSplitsVisible(false); + // TODO(b/275664132): Find a way to integrate this with finishWct. + // This is setting the flag to a task and not interfering with the + // transition. + final WindowContainerTransaction wct = new WindowContainerTransaction(); + wct.setReparentLeafTaskIfRelaunch(mRootTaskInfo.token, + true /* reparentLeafTaskIfRelaunch */); + mTaskOrganizer.applyTransaction(wct); } continue; } @@ -2530,7 +2554,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, boolean shouldAnimate = true; if (mSplitTransitions.isPendingEnter(transition)) { shouldAnimate = startPendingEnterAnimation( - transition, info, startTransaction, finishTransaction); + mSplitTransitions.mPendingEnter, info, startTransaction, finishTransaction); } else if (mSplitTransitions.isPendingDismiss(transition)) { shouldAnimate = startPendingDismissAnimation( mSplitTransitions.mPendingDismiss, info, startTransaction, finishTransaction); @@ -2566,7 +2590,8 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, } } - private boolean startPendingEnterAnimation(@NonNull IBinder transition, + private boolean startPendingEnterAnimation( + @NonNull SplitScreenTransitions.TransitSession enterTransition, @NonNull TransitionInfo info, @NonNull SurfaceControl.Transaction t, @NonNull SurfaceControl.Transaction finishT) { // First, verify that we actually have opened apps in both splits. @@ -2577,9 +2602,11 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, final ActivityManager.RunningTaskInfo taskInfo = change.getTaskInfo(); if (taskInfo == null || !taskInfo.hasParentTask()) continue; final @StageType int stageType = getStageType(getStageOfTask(taskInfo)); - if (stageType == STAGE_TYPE_MAIN) { + if (stageType == STAGE_TYPE_MAIN + && (isOpeningType(change.getMode()) || change.getMode() == TRANSIT_CHANGE)) { + // Includes TRANSIT_CHANGE to cover reparenting top-most task to split. mainChild = change; - } else if (stageType == STAGE_TYPE_SIDE) { + } else if (stageType == STAGE_TYPE_SIDE && isOpeningType(change.getMode())) { sideChild = change; } } @@ -2598,7 +2625,10 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, final int dismissTop = mainChild != null ? STAGE_TYPE_MAIN : (sideChild != null ? STAGE_TYPE_SIDE : STAGE_TYPE_UNDEFINED); mSplitTransitions.mPendingEnter.cancel( - (cancelWct, cancelT) -> prepareExitSplitScreen(dismissTop, cancelWct)); + (cancelWct, cancelT) -> { + mSideStage.removeAllTasks(cancelWct, dismissTop == STAGE_TYPE_SIDE); + mMainStage.deactivate(cancelWct, dismissTop == STAGE_TYPE_MAIN); + }); return true; } } @@ -2620,6 +2650,17 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, + " before startAnimation()."); } + final TransitionInfo.Change finalMainChild = mainChild; + final TransitionInfo.Change finalSideChild = sideChild; + enterTransition.setFinishedCallback((callbackWct, callbackT) -> { + if (finalMainChild != null) { + mMainStage.evictOtherChildren(callbackWct, finalMainChild.getTaskInfo().taskId); + } + if (finalSideChild != null) { + mSideStage.evictOtherChildren(callbackWct, finalSideChild.getTaskInfo().taskId); + } + }); + finishEnterSplitScreen(finishT); addDividerBarToTransition(info, true /* show */); return true; @@ -2788,8 +2829,8 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, } /** Call this when starting the open-recents animation while split-screen is active. */ - public void onRecentsInSplitAnimationStart(@NonNull SurfaceControl.Transaction t) { - setDividerVisibility(false, t); + public void onRecentsInSplitAnimationStart(TransitionInfo info) { + addDividerBarToTransition(info, false /* show */); } /** Call this when the recents animation during split-screen finishes. */ @@ -2806,21 +2847,15 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, || mSideStage.containsContainer(container))) { updateSurfaceBounds(mSplitLayout, finishT, false /* applyResizingOffset */); + finishT.reparent(mSplitLayout.getDividerLeash(), mRootTaskLeash); setDividerVisibility(true, finishT); return; } } - // TODO(b/275664132): Remove dismissing split screen here to fit in back-to-split support. - // Dismiss the split screen if it's not returning to split. - prepareExitSplitScreen(STAGE_TYPE_UNDEFINED, finishWct); - for (TransitionInfo.Change change : info.getChanges()) { - if (change.getTaskInfo() != null && TransitionUtil.isClosingType(change.getMode())) { - finishT.setCrop(change.getLeash(), null).hide(change.getLeash()); - } - } setSplitsVisible(false); - setDividerVisibility(false, finishT); + finishWct.setReparentLeafTaskIfRelaunch(mRootTaskInfo.token, + true /* reparentLeafTaskIfRelaunch */); logExit(EXIT_REASON_UNKNOWN); } @@ -2892,6 +2927,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, } if (!isSplitScreenVisible()) { // If split running background, exit split first. + // TODO(b/280392203) : skip doing this on shell transition once this bug is fixed. exitSplitScreen(null /* childrenToTop */, EXIT_REASON_RECREATE_SPLIT); } mLogger.enterRequestedByDrag(position, dragSessionId); @@ -2903,6 +2939,7 @@ public class StageCoordinator implements SplitLayout.SplitLayoutHandler, public void onRequestToSplit(InstanceId sessionId, int enterReason) { if (!isSplitScreenVisible()) { // If split running background, exit split first. + // TODO(b/280392203) : skip doing this on shell transition once this bug is fixed. exitSplitScreen(null /* childrenToTop */, EXIT_REASON_RECREATE_SPLIT); } mLogger.enterRequested(sessionId, enterReason); diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskView.java index e4d8c32eb5c8..4faa92979733 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskView.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskView.java @@ -177,6 +177,13 @@ public class TaskView extends SurfaceView implements SurfaceHolder.Callback, } /** + * Call to remove the task from window manager. This task will not appear in recents. + */ + public void removeTask() { + mTaskViewTaskController.removeTask(); + } + + /** * Release this container if it is initialized. */ public void release() { diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskViewTaskController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskViewTaskController.java index 2ab4c751d399..94190c74f3e9 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskViewTaskController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskViewTaskController.java @@ -102,7 +102,7 @@ public class TaskViewTaskController implements ShellTaskOrganizer.TaskListener { } /** Until all users are converted, we may have mixed-use (eg. Car). */ - private boolean isUsingShellTransitions() { + public boolean isUsingShellTransitions() { return mTaskViewTransitions != null && mTaskViewTransitions.isEnabled(); } @@ -401,6 +401,15 @@ public class TaskViewTaskController implements ShellTaskOrganizer.TaskListener { mSyncQueue.queue(wct); } + /** + * Call to remove the task from window manager. This task will not appear in recents. + */ + void removeTask() { + WindowContainerTransaction wct = new WindowContainerTransaction(); + wct.removeTask(mTaskToken); + mTaskViewTransitions.closeTaskView(wct, this); + } + /** Should be called when the client surface is destroyed. */ public void surfaceDestroyed() { mSurfaceCreated = false; diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskViewTransitions.java b/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskViewTransitions.java index 2faed3a4b93d..689f9e1a3eda 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskViewTransitions.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskViewTransitions.java @@ -17,6 +17,7 @@ package com.android.wm.shell.taskview; import static android.view.WindowManager.TRANSIT_CHANGE; +import static android.view.WindowManager.TRANSIT_CLOSE; import static android.view.WindowManager.TRANSIT_OPEN; import static android.view.WindowManager.TRANSIT_TO_BACK; import static android.view.WindowManager.TRANSIT_TO_FRONT; @@ -201,6 +202,13 @@ public class TaskViewTransitions implements Transitions.TransitionHandler { startNextTransition(); } + void closeTaskView(@NonNull WindowContainerTransaction wct, + @NonNull TaskViewTaskController taskView) { + updateVisibilityState(taskView, false /* visible */); + mPending.add(new PendingTransition(TRANSIT_CLOSE, wct, taskView, null /* cookie */)); + startNextTransition(); + } + void setTaskViewVisible(TaskViewTaskController taskView, boolean visible) { if (mTaskViews.get(taskView) == null) return; if (mTaskViews.get(taskView).mVisible == visible) return; @@ -297,6 +305,11 @@ public class TaskViewTransitions implements Transitions.TransitionHandler { if (TransitionUtil.isClosingType(chg.getMode())) { final boolean isHide = chg.getMode() == TRANSIT_TO_BACK; TaskViewTaskController tv = findTaskView(chg.getTaskInfo()); + if (tv == null && !isHide) { + // TaskView can be null when closing + changesHandled++; + continue; + } if (tv == null) { if (pending != null) { Slog.w(TAG, "Found a non-TaskView task in a TaskView Transition. This " diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java index 49429327572e..7d9ab668f18a 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultMixedHandler.java @@ -524,7 +524,7 @@ public class DefaultMixedHandler implements Transitions.TransitionHandler, finishCallback.onTransitionFinished(wct, wctCB); }; mixed.mInFlightSubAnimations = 1; - mSplitHandler.onRecentsInSplitAnimationStart(startTransaction); + mSplitHandler.onRecentsInSplitAnimationStart(info); final boolean handled = mixed.mLeftoversHandler.startAnimation(mixed.mTransition, info, startTransaction, finishTransaction, finishCB); if (!handled) { diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/util/TransitionUtil.java b/libs/WindowManager/Shell/src/com/android/wm/shell/util/TransitionUtil.java index 67a26fc97150..7d05c0e62e13 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/util/TransitionUtil.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/util/TransitionUtil.java @@ -110,6 +110,11 @@ public class TransitionUtil { && !change.hasFlags(FLAG_IN_TASK_WITH_EMBEDDED_ACTIVITY); } + /** Returns `true` if `change` is the divider. */ + public static boolean isDividerBar(TransitionInfo.Change change) { + return isNonApp(change) && change.hasFlags(FLAG_IS_DIVIDER_BAR); + } + /** Returns `true` if `change` is only re-ordering. */ public static boolean isOrderOnly(TransitionInfo.Change change) { return change.getMode() == TRANSIT_CHANGE @@ -175,6 +180,14 @@ public class TransitionUtil { t.setPosition(leash, absBounds.left - info.getRoot(rootIdx).getOffset().x, absBounds.top - info.getRoot(rootIdx).getOffset().y); + if (isDividerBar(change)) { + if (isOpeningType(mode)) { + t.setAlpha(leash, 0.f); + } + t.setLayer(leash, Integer.MAX_VALUE); + return; + } + // Put all the OPEN/SHOW on top if (TransitionUtil.isOpeningType(mode)) { if (isOpening) { @@ -245,6 +258,10 @@ public class TransitionUtil { */ public static RemoteAnimationTarget newTarget(TransitionInfo.Change change, int order, SurfaceControl leash) { + if (isDividerBar(change)) { + return getDividerTarget(change, leash); + } + int taskId; boolean isNotInRecents; ActivityManager.RunningTaskInfo taskInfo; @@ -284,8 +301,7 @@ public class TransitionUtil { new Rect(change.getStartAbsBounds()), taskInfo, change.getAllowEnterPip(), - (change.getFlags() & FLAG_IS_DIVIDER_BAR) != 0 - ? TYPE_DOCK_DIVIDER : INVALID_WINDOW_TYPE + INVALID_WINDOW_TYPE ); target.setWillShowImeOnTarget( (change.getFlags() & TransitionInfo.FLAG_WILL_IME_SHOWN) != 0); @@ -293,6 +309,17 @@ public class TransitionUtil { return target; } + private static RemoteAnimationTarget getDividerTarget(TransitionInfo.Change change, + SurfaceControl leash) { + return new RemoteAnimationTarget(-1 /* taskId */, -1 /* mode */, + leash, false /* isTranslucent */, null /* clipRect */, + null /* contentInsets */, Integer.MAX_VALUE /* prefixOrderIndex */, + new android.graphics.Point(0, 0) /* position */, change.getStartAbsBounds(), + change.getStartAbsBounds(), new WindowConfiguration(), true, null /* startLeash */, + null /* startBounds */, null /* taskInfo */, false /* allowEnterPip */, + TYPE_DOCK_DIVIDER); + } + /** * Finds the "correct" root idx for a change. The change's end display is prioritized, then * the start display. If there is no display, it will fallback on the 0th root in the diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/SplitTransitionTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/SplitTransitionTests.java index 92cbf7f068b4..b76d2dcc6e1e 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/SplitTransitionTests.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/SplitTransitionTests.java @@ -273,7 +273,7 @@ public class SplitTransitionTests extends ShellTestCase { // simulate the start of recents transition mMainStage.onTaskVanished(mMainChild); mSideStage.onTaskVanished(mSideChild); - mStageCoordinator.onRecentsInSplitAnimationStart(mock(SurfaceControl.Transaction.class)); + mStageCoordinator.onRecentsInSplitAnimationStart(mock(TransitionInfo.class)); assertTrue(mStageCoordinator.isSplitScreenVisible()); // Make sure it cleans-up if recents doesn't restore @@ -307,7 +307,7 @@ public class SplitTransitionTests extends ShellTestCase { // simulate the start of recents transition mMainStage.onTaskVanished(mMainChild); mSideStage.onTaskVanished(mSideChild); - mStageCoordinator.onRecentsInSplitAnimationStart(mock(SurfaceControl.Transaction.class)); + mStageCoordinator.onRecentsInSplitAnimationStart(mock(TransitionInfo.class)); assertTrue(mStageCoordinator.isSplitScreenVisible()); // Make sure we remain in split after recents restores. diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java index d27064d1b4da..44a0ede82e5c 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/splitscreen/StageCoordinatorTests.java @@ -158,8 +158,6 @@ public class StageCoordinatorTests extends ShellTestCase { verify(mStageCoordinator).prepareEnterSplitScreen(eq(wct), eq(task), eq(SPLIT_POSITION_BOTTOM_OR_RIGHT)); verify(mMainStage).reparentTopTask(eq(wct)); - verify(mMainStage).evictAllChildren(eq(wct)); - verify(mSideStage).evictAllChildren(eq(wct)); verify(mSplitLayout).resetDividerPosition(); assertEquals(SPLIT_POSITION_BOTTOM_OR_RIGHT, mStageCoordinator.getSideStagePosition()); assertEquals(SPLIT_POSITION_TOP_OR_LEFT, mStageCoordinator.getMainStagePosition()); @@ -178,7 +176,6 @@ public class StageCoordinatorTests extends ShellTestCase { mStageCoordinator.moveToStage(task, SPLIT_POSITION_BOTTOM_OR_RIGHT, wct); verify(mStageCoordinator).prepareEnterSplitScreen(eq(wct), eq(task), eq(SPLIT_POSITION_BOTTOM_OR_RIGHT)); - verify(mMainStage).evictAllChildren(eq(wct)); assertEquals(SPLIT_POSITION_BOTTOM_OR_RIGHT, mStageCoordinator.getMainStagePosition()); assertEquals(SPLIT_POSITION_TOP_OR_LEFT, mStageCoordinator.getSideStagePosition()); } diff --git a/media/java/android/media/MediaRoute2Info.java b/media/java/android/media/MediaRoute2Info.java index c5202dcd4879..7e238e44043b 100644 --- a/media/java/android/media/MediaRoute2Info.java +++ b/media/java/android/media/MediaRoute2Info.java @@ -126,6 +126,12 @@ public final class MediaRoute2Info implements Parcelable { TYPE_REMOTE_TV, TYPE_REMOTE_SPEAKER, TYPE_REMOTE_AUDIO_VIDEO_RECEIVER, + TYPE_REMOTE_TABLET, + TYPE_REMOTE_TABLET_DOCKED, + TYPE_REMOTE_COMPUTER, + TYPE_REMOTE_GAME_CONSOLE, + TYPE_REMOTE_CAR, + TYPE_REMOTE_SMARTWATCH, TYPE_GROUP }) @Retention(RetentionPolicy.SOURCE) @@ -247,6 +253,72 @@ public final class MediaRoute2Info implements Parcelable { public static final int TYPE_REMOTE_AUDIO_VIDEO_RECEIVER = 1003; /** + * Indicates the route is a remote tablet. + * + * <p>A remote device uses a routing protocol managed by the application, as opposed to the + * routing being done by the system. + * + * @see #getType + * @hide + */ + public static final int TYPE_REMOTE_TABLET = 1004; + + /** + * Indicates the route is a remote docked tablet. + * + * <p>A remote device uses a routing protocol managed by the application, as opposed to the + * routing being done by the system. + * + * @see #getType + * @hide + */ + public static final int TYPE_REMOTE_TABLET_DOCKED = 1005; + + /** + * Indicates the route is a remote computer. + * + * <p>A remote device uses a routing protocol managed by the application, as opposed to the + * routing being done by the system. + * + * @see #getType + * @hide + */ + public static final int TYPE_REMOTE_COMPUTER = 1006; + + /** + * Indicates the route is a remote gaming console. + * + * <p>A remote device uses a routing protocol managed by the application, as opposed to the + * routing being done by the system. + * + * @see #getType + * @hide + */ + public static final int TYPE_REMOTE_GAME_CONSOLE = 1007; + + /** + * Indicates the route is a remote car. + * + * <p>A remote device uses a routing protocol managed by the application, as opposed to the + * routing being done by the system. + * + * @see #getType + * @hide + */ + public static final int TYPE_REMOTE_CAR = 1008; + + /** + * Indicates the route is a remote smartwatch. + * + * <p>A remote device uses a routing protocol managed by the application, as opposed to the + * routing being done by the system. + * + * @see #getType + * @hide + */ + public static final int TYPE_REMOTE_SMARTWATCH = 1009; + + /** * Indicates the route is a group of devices. * * @see #getType @@ -450,6 +522,14 @@ public final class MediaRoute2Info implements Parcelable { return mFeatures; } + // TODO (b/278728942): Add the following once the symbols are published in the SDK. Until then, + // adding them would cause the generated link to be broken. + // @see #TYPE_REMOTE_TABLET + // @see #TYPE_REMOTE_TABLET_DOCKED + // @see #TYPE_REMOTE_COMPUTER + // @see #TYPE_REMOTE_GAME_CONSOLE + // @see #TYPE_REMOTE_CAR + // @see #TYPE_REMOTE_SMARTWATCH /** * Returns the type of this route. * @@ -838,6 +918,18 @@ public final class MediaRoute2Info implements Parcelable { return "REMOTE_SPEAKER"; case TYPE_REMOTE_AUDIO_VIDEO_RECEIVER: return "REMOTE_AUDIO_VIDEO_RECEIVER"; + case TYPE_REMOTE_TABLET: + return "REMOTE_TABLET"; + case TYPE_REMOTE_TABLET_DOCKED: + return "REMOTE_TABLET_DOCKED"; + case TYPE_REMOTE_COMPUTER: + return "REMOTE_COMPUTER"; + case TYPE_REMOTE_GAME_CONSOLE: + return "REMOTE_GAME_CONSOLE"; + case TYPE_REMOTE_CAR: + return "REMOTE_CAR"; + case TYPE_REMOTE_SMARTWATCH: + return "REMOTE_SMARTWATCH"; case TYPE_GROUP: return "GROUP"; case TYPE_UNKNOWN: diff --git a/media/java/android/media/soundtrigger/SoundTriggerInstrumentation.java b/media/java/android/media/soundtrigger/SoundTriggerInstrumentation.java index 3dfc58788e8a..c376f2566cbb 100644 --- a/media/java/android/media/soundtrigger/SoundTriggerInstrumentation.java +++ b/media/java/android/media/soundtrigger/SoundTriggerInstrumentation.java @@ -66,6 +66,8 @@ public final class SoundTriggerInstrumentation { @GuardedBy("mLock") private IBinder mClientToken = null; + private final ISoundTriggerService mService; + private final GlobalCallback mClientCallback; private final Executor mGlobalCallbackExecutor; @@ -562,6 +564,7 @@ public final class SoundTriggerInstrumentation { @NonNull GlobalCallback callback) { mClientCallback = Objects.requireNonNull(callback); mGlobalCallbackExecutor = Objects.requireNonNull(executor); + mService = service; try { service.attachInjection(new Injection()); } catch (RemoteException e) { @@ -651,5 +654,24 @@ public final class SoundTriggerInstrumentation { } } } + + /** + * Simulate a phone call for {@link com.android.server.soundtrigger.SoundTriggerService}. + * If the phone call state changes, the service will be notified to respond. + * The service should pause recognition for the duration of the call. + * + * @param isInPhoneCall - {@code true} to cause the SoundTriggerService to + * see the phone call state as off-hook. {@code false} to cause the service to + * see the state as normal. + * @hide + */ + @TestApi + public void setInPhoneCallState(boolean isInPhoneCall) { + try { + mService.setInPhoneCallState(isInPhoneCall); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } } diff --git a/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt b/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt index 693e76731834..0f5280efcdc0 100644 --- a/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt +++ b/packages/CredentialManager/src/com/android/credentialmanager/CredentialManagerRepo.kt @@ -168,7 +168,7 @@ class CredentialManagerRepo( // The dialog is canceled because we launched into settings. fun onSettingLaunchCancel() { - onCancel(BaseDialogResult.RESULT_CODE_DIALOG_COMPLETE_WITH_SELECTION) + onCancel(BaseDialogResult.RESULT_CODE_CANCELED_AND_LAUNCHED_SETTINGS) } fun onParsingFailureCancel() { diff --git a/packages/SettingsLib/IllustrationPreference/res/layout/illustration_preference.xml b/packages/SettingsLib/IllustrationPreference/res/layout/illustration_preference.xml index eecb4bff16ae..685e2595119a 100644 --- a/packages/SettingsLib/IllustrationPreference/res/layout/illustration_preference.xml +++ b/packages/SettingsLib/IllustrationPreference/res/layout/illustration_preference.xml @@ -19,7 +19,6 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="match_parent" - android:background="?android:attr/colorBackground" android:importantForAccessibility="noHideDescendants" android:gravity="center" android:orientation="horizontal"> diff --git a/packages/SettingsLib/MainSwitchPreference/res/layout-v33/settingslib_main_switch_bar.xml b/packages/SettingsLib/MainSwitchPreference/res/layout-v33/settingslib_main_switch_bar.xml index ab0cf3138d9c..d2e9fbeef073 100644 --- a/packages/SettingsLib/MainSwitchPreference/res/layout-v33/settingslib_main_switch_bar.xml +++ b/packages/SettingsLib/MainSwitchPreference/res/layout-v33/settingslib_main_switch_bar.xml @@ -19,7 +19,6 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="match_parent" - android:background="?android:attr/colorBackground" android:minHeight="?android:attr/listPreferredItemHeight" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:paddingStart="?android:attr/listPreferredItemPaddingStart" diff --git a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/app/AppListRepository.kt b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/app/AppListRepository.kt index 2c3e58ece8e0..2b38b4cefe3e 100644 --- a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/app/AppListRepository.kt +++ b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/model/app/AppListRepository.kt @@ -49,7 +49,7 @@ internal interface AppListRepository { ): Flow<(app: ApplicationInfo) -> Boolean> /** Gets the system app package names. */ - fun getSystemPackageNamesBlocking(userId: Int, showInstantApps: Boolean): Set<String> + fun getSystemPackageNamesBlocking(userId: Int): Set<String> } /** @@ -58,12 +58,8 @@ internal interface AppListRepository { object AppListRepositoryUtil { /** Gets the system app package names. */ @JvmStatic - fun getSystemPackageNames( - context: Context, - userId: Int, - showInstantApps: Boolean, - ): Set<String> = - AppListRepositoryImpl(context).getSystemPackageNamesBlocking(userId, showInstantApps) + fun getSystemPackageNames(context: Context, userId: Int): Set<String> = + AppListRepositoryImpl(context).getSystemPackageNamesBlocking(userId) } internal class AppListRepositoryImpl(private val context: Context) : AppListRepository { @@ -140,12 +136,12 @@ internal class AppListRepositoryImpl(private val context: Context) : AppListRepo ): Flow<(app: ApplicationInfo) -> Boolean> = userIdFlow.combine(showSystemFlow, ::showSystemPredicate) - override fun getSystemPackageNamesBlocking(userId: Int, showInstantApps: Boolean) = - runBlocking { getSystemPackageNames(userId, showInstantApps) } + override fun getSystemPackageNamesBlocking(userId: Int) = + runBlocking { getSystemPackageNames(userId) } - private suspend fun getSystemPackageNames(userId: Int, showInstantApps: Boolean): Set<String> = + private suspend fun getSystemPackageNames(userId: Int): Set<String> = coroutineScope { - val loadAppsDeferred = async { loadApps(userId, showInstantApps) } + val loadAppsDeferred = async { loadApps(userId) } val homeOrLauncherPackages = loadHomeOrLauncherPackages(userId) val showSystemPredicate = { app: ApplicationInfo -> isSystemApp(app, homeOrLauncherPackages) } @@ -184,10 +180,8 @@ internal class AppListRepositoryImpl(private val context: Context) : AppListRepo } } - private fun isSystemApp(app: ApplicationInfo, homeOrLauncherPackages: Set<String>): Boolean { - return !app.isUpdatedSystemApp && app.isSystemApp && - !(app.packageName in homeOrLauncherPackages) - } + private fun isSystemApp(app: ApplicationInfo, homeOrLauncherPackages: Set<String>): Boolean = + app.isSystemApp && !app.isUpdatedSystemApp && app.packageName !in homeOrLauncherPackages companion object { private fun ApplicationInfo.isInAppList( diff --git a/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppListRepositoryTest.kt b/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppListRepositoryTest.kt index b732a6a4495e..302f78081626 100644 --- a/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppListRepositoryTest.kt +++ b/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppListRepositoryTest.kt @@ -78,9 +78,15 @@ class AppListRepositoryTest { whenever(context.packageManager).thenReturn(packageManager) whenever(context.userManager).thenReturn(userManager) whenever(packageManager.getInstalledModules(anyInt())).thenReturn(emptyList()) + whenever(packageManager.getHomeActivities(any())).thenAnswer { + @Suppress("UNCHECKED_CAST") + val resolveInfos = it.arguments[0] as MutableList<ResolveInfo> + resolveInfos += resolveInfoOf(packageName = HOME_APP.packageName) + null + } whenever( packageManager.queryIntentActivitiesAsUser(any(), any<ResolveInfoFlags>(), anyInt()) - ).thenReturn(emptyList()) + ).thenReturn(listOf(resolveInfoOf(packageName = IN_LAUNCHER_APP.packageName))) whenever(userManager.getUserInfo(ADMIN_USER_ID)).thenReturn(UserInfo().apply { flags = UserInfo.FLAG_ADMIN }) @@ -290,35 +296,16 @@ class AppListRepositoryTest { @Test fun showSystemPredicate_isHome() = runTest { - val app = HOME_APP - - whenever(packageManager.getHomeActivities(any())).thenAnswer { - @Suppress("UNCHECKED_CAST") - val resolveInfos = it.arguments[0] as MutableList<ResolveInfo> - resolveInfos.add(resolveInfoOf(packageName = app.packageName)) - null - } - val showSystemPredicate = getShowSystemPredicate(showSystem = false) - assertThat(showSystemPredicate(app)).isTrue() + assertThat(showSystemPredicate(HOME_APP)).isTrue() } @Test fun showSystemPredicate_appInLauncher() = runTest { - val app = IN_LAUNCHER_APP - - whenever( - packageManager.queryIntentActivitiesAsUser( - any(), - any<ResolveInfoFlags>(), - eq(ADMIN_USER_ID) - ) - ).thenReturn(listOf(resolveInfoOf(packageName = app.packageName))) - val showSystemPredicate = getShowSystemPredicate(showSystem = false) - assertThat(showSystemPredicate(app)).isTrue() + assertThat(showSystemPredicate(IN_LAUNCHER_APP)).isTrue() } @Test @@ -333,10 +320,9 @@ class AppListRepositoryTest { val systemPackageNames = AppListRepositoryUtil.getSystemPackageNames( context = context, userId = ADMIN_USER_ID, - showInstantApps = false, ) - assertThat(systemPackageNames).containsExactly("system.app", "home.app", "app.in.launcher") + assertThat(systemPackageNames).containsExactly(SYSTEM_APP.packageName) } private suspend fun getShowSystemPredicate(showSystem: Boolean) = diff --git a/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppListViewModelTest.kt b/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppListViewModelTest.kt index 36d9db5ef251..6889e5d21ac0 100644 --- a/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppListViewModelTest.kt +++ b/packages/SettingsLib/SpaPrivileged/tests/src/com/android/settingslib/spaprivileged/model/app/AppListViewModelTest.kt @@ -96,10 +96,7 @@ class AppListViewModelTest { showSystemFlow: Flow<Boolean>, ): Flow<(app: ApplicationInfo) -> Boolean> = flowOf { true } - override fun getSystemPackageNamesBlocking( - userId: Int, - showInstantApps: Boolean, - ): Set<String> = emptySet() + override fun getSystemPackageNamesBlocking(userId: Int): Set<String> = emptySet() } private object FakeAppRepository : AppRepository { diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java index e884cf834722..bf95ab9a4c50 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java @@ -581,9 +581,14 @@ public class CachedBluetoothDevice implements Comparable<CachedBluetoothDevice> */ public void setName(String name) { // Prevent getName() to be set to null if setName(null) is called - if (name != null && !TextUtils.equals(name, getName())) { - mDevice.setAlias(name); - dispatchAttributesChanged(); + if (name == null || TextUtils.equals(name, getName())) { + return; + } + mDevice.setAlias(name); + dispatchAttributesChanged(); + + for (CachedBluetoothDevice cbd : mMemberDevices) { + cbd.setName(name); } } diff --git a/packages/SettingsLib/src/com/android/settingslib/users/AvatarPickerActivity.java b/packages/SettingsLib/src/com/android/settingslib/users/AvatarPickerActivity.java index f5dddc39b21e..bcbd1caa45d3 100644 --- a/packages/SettingsLib/src/com/android/settingslib/users/AvatarPickerActivity.java +++ b/packages/SettingsLib/src/com/android/settingslib/users/AvatarPickerActivity.java @@ -108,6 +108,12 @@ public class AvatarPickerActivity extends Activity { mWaitingForActivityResult); } + @Override + protected void onResume() { + super.onResume(); + mAdapter.onAdapterResume(); + } + private void setUpButtons() { GlifLayout glifLayout = findViewById(R.id.glif_layout); FooterBarMixin mixin = glifLayout.getMixin(FooterBarMixin.class); @@ -198,6 +204,8 @@ public class AvatarPickerActivity extends Activity { private final int[] mUserIconColors; private int mSelectedPosition = NONE; + private int mLastSelectedPosition = NONE; + AvatarAdapter() { final boolean canTakePhoto = PhotoCapabilityUtils.canTakePhoto(AvatarPickerActivity.this); @@ -226,12 +234,10 @@ public class AvatarPickerActivity extends Activity { if (position == mTakePhotoPosition) { viewHolder.setDrawable(getDrawable(R.drawable.avatar_take_photo_circled)); viewHolder.setContentDescription(getString(R.string.user_image_take_photo)); - viewHolder.setClickListener(view -> mAvatarPhotoController.takePhoto()); } else if (position == mChoosePhotoPosition) { viewHolder.setDrawable(getDrawable(R.drawable.avatar_choose_photo_circled)); viewHolder.setContentDescription(getString(R.string.user_image_choose_photo)); - viewHolder.setClickListener(view -> mAvatarPhotoController.choosePhoto()); } else if (position >= mPreselectedImageStartPosition) { int index = indexFromPosition(position); @@ -240,17 +246,30 @@ public class AvatarPickerActivity extends Activity { if (mImageDescriptions != null) { viewHolder.setContentDescription(mImageDescriptions.get(index)); } else { - viewHolder.setContentDescription( - getString(R.string.default_user_icon_description)); + viewHolder.setContentDescription(getString( + R.string.default_user_icon_description)); + } + } + viewHolder.setClickListener(view -> onViewHolderSelected(position)); + } + + private void onViewHolderSelected(int position) { + if ((mTakePhotoPosition == position) && (mLastSelectedPosition != position)) { + mAvatarPhotoController.takePhoto(); + } else if ((mChoosePhotoPosition == position) && (mLastSelectedPosition != position)) { + mAvatarPhotoController.choosePhoto(); + } else { + if (mSelectedPosition == position) { + deselect(position); + } else { + select(position); } - viewHolder.setClickListener(view -> { - if (mSelectedPosition == position) { - deselect(position); - } else { - select(position); - } - }); } + mLastSelectedPosition = position; + } + + public void onAdapterResume() { + mLastSelectedPosition = NONE; } @Override diff --git a/packages/SystemUI/plugin/Android.bp b/packages/SystemUI/plugin/Android.bp index fec093b26bcc..bb47a2f4726e 100644 --- a/packages/SystemUI/plugin/Android.bp +++ b/packages/SystemUI/plugin/Android.bp @@ -34,6 +34,8 @@ java_library { // If you add a static lib here, you may need to also add the package to the ClassLoaderFilter // in PluginInstance. That will ensure that loaded plugins have access to the related classes. + // You should also add it to proguard_common.flags so that proguard does not remove the portions + // of the library which are used by the plugins but not by systemui itself. static_libs: [ "androidx.annotation_annotation", "PluginCoreLib", diff --git a/packages/SystemUI/proguard_common.flags b/packages/SystemUI/proguard_common.flags index 1d008cf57ea7..02d55104c288 100644 --- a/packages/SystemUI/proguard_common.flags +++ b/packages/SystemUI/proguard_common.flags @@ -62,11 +62,17 @@ -keep class ** extends androidx.preference.PreferenceFragment -keep class com.android.systemui.tuner.* -# The plugins subpackage acts as a shared library that might be referenced in +# The plugins, log & common subpackages act as shared libraries that might be referenced in # dynamically-loaded plugin APKs. -keep class com.android.systemui.plugins.** { *; } +-keep class com.android.systemui.log.** { + *; +} +-keep class com.android.systemui.common.** { + *; +} -keep class com.android.systemui.fragments.FragmentService$FragmentCreator { *; } diff --git a/packages/SystemUI/res/drawable/ic_qr_code_scanner.xml b/packages/SystemUI/res/drawable/ic_qr_code_scanner.xml index f79e830ee6d8..d84fce950ae5 100644 --- a/packages/SystemUI/res/drawable/ic_qr_code_scanner.xml +++ b/packages/SystemUI/res/drawable/ic_qr_code_scanner.xml @@ -15,13 +15,12 @@ Copyright (C) 2021 The Android Open Source Project limitations under the License. --> <vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24" - android:tint="?attr/colorControlNormal"> - - <path - android:pathData="M3,9H9V3H3V9ZM5,5H7V7H5V5ZM15,3V9H21V3H15ZM19,7H17V5H19V7ZM3,21H9V15H3V21ZM5,17H7V19H5V17ZM13,15V17H11V15V13V11H13V13H15V11H17V13V15H13ZM17,19H21V21H17H15V19V17H17V19ZM19,11H21V17H19V11ZM7,11H9V13H7V11ZM11,19H13V21H11V19ZM5,13H3V11H5V13ZM13,9H11V3H13V9Z" - android:fillColor="@android:color/white"/> -</vector>
\ No newline at end of file + android:width="24dp" + android:height="24dp" + android:viewportWidth="960" + android:viewportHeight="960" + android:tint="?attr/colorControlNormal"> + <path + android:fillColor="@android:color/white" + android:pathData="M80,280L80,80L280,80L280,160L160,160L160,280L80,280ZM80,880L80,680L160,680L160,800L280,800L280,880L80,880ZM680,880L680,800L800,800L800,680L880,680L880,880L680,880ZM800,280L800,160L680,160L680,80L880,80L880,280L800,280ZM700,700L760,700L760,760L700,760L700,700ZM700,580L760,580L760,640L700,640L700,580ZM640,640L700,640L700,700L640,700L640,640ZM580,700L640,700L640,760L580,760L580,700ZM520,640L580,640L580,700L520,700L520,640ZM640,520L700,520L700,580L640,580L640,520ZM580,580L640,580L640,640L580,640L580,580ZM520,520L580,520L580,580L520,580L520,520ZM760,200L760,440L520,440L520,200L760,200ZM440,520L440,760L200,760L200,520L440,520ZM440,200L440,440L200,440L200,200L440,200ZM380,700L380,580L260,580L260,700L380,700ZM380,380L380,260L260,260L260,380L380,380ZM700,380L700,260L580,260L580,380L700,380Z"/> +</vector> diff --git a/packages/SystemUI/res/layout/auth_biometric_contents.xml b/packages/SystemUI/res/layout/auth_biometric_contents.xml index be76405744db..b3b40f340ecb 100644 --- a/packages/SystemUI/res/layout/auth_biometric_contents.xml +++ b/packages/SystemUI/res/layout/auth_biometric_contents.xml @@ -24,6 +24,7 @@ android:singleLine="true" android:marqueeRepeatLimit="1" android:ellipsize="marquee" + android:importantForAccessibility="no" style="@style/TextAppearance.AuthCredential.Title"/> <TextView @@ -34,6 +35,7 @@ android:singleLine="true" android:marqueeRepeatLimit="1" android:ellipsize="marquee" + android:importantForAccessibility="no" style="@style/TextAppearance.AuthCredential.Subtitle"/> <TextView diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginInstance.java b/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginInstance.java index 4a665621b3fe..9a9a2426507f 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginInstance.java +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/plugins/PluginInstance.java @@ -230,7 +230,10 @@ public class PluginInstance<T extends Plugin> implements PluginLifecycleManager private ClassLoader getParentClassLoader(ClassLoader baseClassLoader) { return new PluginManagerImpl.ClassLoaderFilter( - baseClassLoader, "com.android.systemui.log", "com.android.systemui.plugin"); + baseClassLoader, + "com.android.systemui.common", + "com.android.systemui.log", + "com.android.systemui.plugin"); } /** Returns class loader specific for the given plugin. */ diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java index d8bf570954df..676f342775ef 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardClockSwitchController.java @@ -179,6 +179,20 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS } /** + * Set alpha directly to mView will clip clock, so we set alpha to clock face instead + */ + public void setAlpha(float alpha) { + ClockController clock = getClock(); + if (clock != null) { + clock.getLargeClock().getView().setAlpha(alpha); + clock.getSmallClock().getView().setAlpha(alpha); + } + if (mStatusArea != null) { + mStatusArea.setAlpha(alpha); + } + } + + /** * Attach the controller to the view it relates to. */ @Override diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java index d8e1eb0f0860..f58d8deb4488 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java @@ -135,4 +135,29 @@ public class KeyguardStatusView extends GridLayout { super.onMeasure(widthMeasureSpec, heightMeasureSpec); Trace.endSection(); } + + + /** + * Clock content will be clipped when goes beyond bounds, + * so we setAlpha for all views except clock + */ + public void setAlpha(float alpha, boolean excludeClock) { + if (!excludeClock) { + setAlpha(alpha); + return; + } + for (int i = 0; i < getChildCount(); i++) { + View child = getChildAt(i); + if (child == mStatusViewContainer) { + for (int j = 0; j < mStatusViewContainer.getChildCount(); j++) { + View innerChild = mStatusViewContainer.getChildAt(j); + if (innerChild != mClockView) { + innerChild.setAlpha(alpha); + } + } + } else { + child.setAlpha(alpha); + } + } + } } diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java index 794eeda86b0f..af474661a67d 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusViewController.java @@ -180,7 +180,8 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV */ public void setAlpha(float alpha) { if (!mKeyguardVisibilityHelper.isVisibilityAnimating()) { - mView.setAlpha(alpha); + mView.setAlpha(alpha, true); + mKeyguardClockSwitchController.setAlpha(alpha); } } diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/fontscaling/FontScalingDialog.kt b/packages/SystemUI/src/com/android/systemui/accessibility/fontscaling/FontScalingDialog.kt index c9579d5e1356..e79b3f4bf3ad 100644 --- a/packages/SystemUI/src/com/android/systemui/accessibility/fontscaling/FontScalingDialog.kt +++ b/packages/SystemUI/src/com/android/systemui/accessibility/fontscaling/FontScalingDialog.kt @@ -15,11 +15,12 @@ */ package com.android.systemui.accessibility.fontscaling -import android.annotation.WorkerThread import android.content.Context import android.content.pm.ActivityInfo import android.content.res.Configuration +import android.database.ContentObserver import android.os.Bundle +import android.os.Handler import android.provider.Settings import android.util.TypedValue import android.view.LayoutInflater @@ -27,13 +28,18 @@ import android.widget.Button import android.widget.SeekBar import android.widget.SeekBar.OnSeekBarChangeListener import android.widget.TextView +import androidx.annotation.MainThread +import androidx.annotation.WorkerThread import com.android.systemui.R import com.android.systemui.common.ui.view.SeekBarWithIconButtonsView import com.android.systemui.dagger.qualifiers.Background +import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.statusbar.phone.SystemUIDialog +import com.android.systemui.util.concurrency.DelayableExecutor import com.android.systemui.util.settings.SecureSettings import com.android.systemui.util.settings.SystemSettings -import java.util.concurrent.Executor +import com.android.systemui.util.time.SystemClock +import java.util.concurrent.atomic.AtomicInteger import kotlin.math.roundToInt /** The Dialog that contains a seekbar for changing the font size. */ @@ -41,17 +47,31 @@ class FontScalingDialog( context: Context, private val systemSettings: SystemSettings, private val secureSettings: SecureSettings, - @Background private val backgroundExecutor: Executor + private val systemClock: SystemClock, + @Main mainHandler: Handler, + @Background private val backgroundDelayableExecutor: DelayableExecutor ) : SystemUIDialog(context) { + private val MIN_UPDATE_INTERVAL_MS: Long = 800 + private val CHANGE_BY_SEEKBAR_DELAY_MS: Long = 100 + private val CHANGE_BY_BUTTON_DELAY_MS: Long = 300 private val strEntryValues: Array<String> = context.resources.getStringArray(com.android.settingslib.R.array.entryvalues_font_size) private lateinit var title: TextView private lateinit var doneButton: Button private lateinit var seekBarWithIconButtonsView: SeekBarWithIconButtonsView - private var lastProgress: Int = -1 + private var lastProgress: AtomicInteger = AtomicInteger(-1) + private var lastUpdateTime: Long = 0 + private var cancelUpdateFontScaleRunnable: Runnable? = null private val configuration: Configuration = Configuration(context.resources.configuration) + private val fontSizeObserver = + object : ContentObserver(mainHandler) { + override fun onChange(selfChange: Boolean) { + lastUpdateTime = systemClock.elapsedRealtime() + } + } + override fun onCreate(savedInstanceState: Bundle?) { setTitle(R.string.font_scaling_dialog_title) setView(LayoutInflater.from(context).inflate(R.layout.font_scaling_dialog, null)) @@ -79,21 +99,21 @@ class FontScalingDialog( seekBarWithIconButtonsView.setMax((strEntryValues).size - 1) val currentScale = systemSettings.getFloat(Settings.System.FONT_SCALE, 1.0f) - lastProgress = fontSizeValueToIndex(currentScale) - seekBarWithIconButtonsView.setProgress(lastProgress) + lastProgress.set(fontSizeValueToIndex(currentScale)) + seekBarWithIconButtonsView.setProgress(lastProgress.get()) seekBarWithIconButtonsView.setOnSeekBarChangeListener( object : OnSeekBarChangeListener { var isTrackingTouch = false override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { + // Always provide preview configuration for text first when there is a change + // in the seekbar progress. + createTextPreview(progress) + if (!isTrackingTouch) { // The seekbar progress is changed by icon buttons - changeFontSize(progress) - } else { - // Provide preview configuration for text instead of changing the system - // font scale before users release their finger from the seekbar. - createTextPreview(progress) + changeFontSize(progress, CHANGE_BY_BUTTON_DELAY_MS) } } @@ -103,26 +123,50 @@ class FontScalingDialog( override fun onStopTrackingTouch(seekBar: SeekBar) { isTrackingTouch = false - changeFontSize(seekBar.progress) + changeFontSize(seekBar.progress, CHANGE_BY_SEEKBAR_DELAY_MS) } } ) doneButton.setOnClickListener { dismiss() } + systemSettings.registerContentObserver(Settings.System.FONT_SCALE, fontSizeObserver) + } + + /** + * Avoid SeekBar flickers when changing font scale. See the description from Setting at {@link + * TextReadingPreviewController#postCommitDelayed} for the reasons of flickers. + */ + @MainThread + fun updateFontScaleDelayed(delayMsFromSource: Long) { + var delayMs = delayMsFromSource + if (systemClock.elapsedRealtime() - lastUpdateTime < MIN_UPDATE_INTERVAL_MS) { + delayMs += MIN_UPDATE_INTERVAL_MS + } + cancelUpdateFontScaleRunnable?.run() + cancelUpdateFontScaleRunnable = + backgroundDelayableExecutor.executeDelayed({ updateFontScale() }, delayMs) + } + + override fun stop() { + cancelUpdateFontScaleRunnable?.run() + cancelUpdateFontScaleRunnable = null + systemSettings.unregisterContentObserver(fontSizeObserver) } - private fun changeFontSize(progress: Int) { - if (progress != lastProgress) { + @MainThread + private fun changeFontSize(progress: Int, changedWithDelay: Long) { + if (progress != lastProgress.get()) { + lastProgress.set(progress) + if (!fontSizeHasBeenChangedFromTile) { - backgroundExecutor.execute { updateSecureSettingsIfNeeded() } + backgroundDelayableExecutor.execute { updateSecureSettingsIfNeeded() } fontSizeHasBeenChangedFromTile = true } - backgroundExecutor.execute { updateFontScale(strEntryValues[progress]) } - - lastProgress = progress + updateFontScaleDelayed(changedWithDelay) } } + @WorkerThread private fun fontSizeValueToIndex(value: Float): Int { var lastValue = strEntryValues[0].toFloat() for (i in 1 until strEntryValues.size) { @@ -150,8 +194,8 @@ class FontScalingDialog( } @WorkerThread - fun updateFontScale(newScale: String) { - systemSettings.putString(Settings.System.FONT_SCALE, newScale) + fun updateFontScale() { + systemSettings.putString(Settings.System.FONT_SCALE, strEntryValues[lastProgress.get()]) } @WorkerThread diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricFingerprintView.kt b/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricFingerprintView.kt index 20666344ade8..f2e47018bf4e 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricFingerprintView.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricFingerprintView.kt @@ -31,6 +31,10 @@ open class AuthBiometricFingerprintView( context: Context, attrs: AttributeSet? = null ) : AuthBiometricView(context, attrs) { + /** If this view is for a SFPS sensor. */ + var isSfps = false + private set + /** If this view is for a UDFPS sensor. */ var isUdfps = false private set @@ -40,6 +44,7 @@ open class AuthBiometricFingerprintView( /** Set the [sensorProps] of this sensor so the view can be customized prior to layout. */ fun setSensorProperties(sensorProps: FingerprintSensorPropertiesInternal) { + isSfps = sensorProps.isAnySidefpsType isUdfps = sensorProps.isAnyUdfpsType udfpsAdapter = if (isUdfps) UdfpsDialogMeasureAdapter(this, sensorProps) else null } diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricView.java index f330c34bfaa0..e089fd32829d 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricView.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthBiometricView.java @@ -741,10 +741,10 @@ public abstract class AuthBiometricView extends LinearLayout { mTitleView.setText(mPromptInfo.getTitle()); - //setSelected could make marguee work + // setSelected could make marquee work mTitleView.setSelected(true); mSubtitleView.setSelected(true); - //make description view become scrollable + // make description view become scrollable mDescriptionView.setMovementMethod(new ScrollingMovementMethod()); if (isDeviceCredentialAllowed()) { diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/AuthBiometricFingerprintViewBinder.kt b/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/AuthBiometricFingerprintViewBinder.kt index e776ab44ee42..ae0cf3771ed3 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/AuthBiometricFingerprintViewBinder.kt +++ b/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/AuthBiometricFingerprintViewBinder.kt @@ -36,7 +36,9 @@ object AuthBiometricFingerprintViewBinder { viewModel.setRotation(view.context.display?.orientation ?: Surface.ROTATION_0) launch { viewModel.iconAsset.collect { iconAsset -> - view.updateIconViewAnimation(iconAsset) + if (view.isSfps) { + view.updateIconViewAnimation(iconAsset) + } } } } diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/FontScalingTile.kt b/packages/SystemUI/src/com/android/systemui/qs/tiles/FontScalingTile.kt index 12d98473ff07..c013486b83e4 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/FontScalingTile.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/FontScalingTile.kt @@ -17,7 +17,6 @@ package com.android.systemui.qs.tiles import android.content.Intent import android.os.Handler -import android.os.HandlerExecutor import android.os.Looper import android.provider.Settings import android.view.View @@ -40,8 +39,10 @@ import com.android.systemui.qs.QsEventLogger import com.android.systemui.qs.logging.QSLogger import com.android.systemui.qs.tileimpl.QSTileImpl import com.android.systemui.statusbar.phone.SystemUIDialog +import com.android.systemui.util.concurrency.DelayableExecutor import com.android.systemui.util.settings.SecureSettings import com.android.systemui.util.settings.SystemSettings +import com.android.systemui.util.time.SystemClock import javax.inject.Inject class FontScalingTile @@ -50,7 +51,7 @@ constructor( host: QSHost, uiEventLogger: QsEventLogger, @Background backgroundLooper: Looper, - @Main mainHandler: Handler, + @Main private val mainHandler: Handler, falsingManager: FalsingManager, metricsLogger: MetricsLogger, statusBarStateController: StatusBarStateController, @@ -59,7 +60,9 @@ constructor( private val dialogLaunchAnimator: DialogLaunchAnimator, private val systemSettings: SystemSettings, private val secureSettings: SecureSettings, - private val featureFlags: FeatureFlags + private val systemClock: SystemClock, + private val featureFlags: FeatureFlags, + @Background private val backgroundDelayableExecutor: DelayableExecutor ) : QSTileImpl<QSTile.State?>( host, @@ -89,7 +92,9 @@ constructor( mContext, systemSettings, secureSettings, - HandlerExecutor(mHandler) + systemClock, + mainHandler, + backgroundDelayableExecutor ) if (view != null) { dialogLaunchAnimator.showFromView( diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/appclips/AppClipsActivity.java b/packages/SystemUI/src/com/android/systemui/screenshot/appclips/AppClipsActivity.java index 4756cc8172e9..72613249552a 100644 --- a/packages/SystemUI/src/com/android/systemui/screenshot/appclips/AppClipsActivity.java +++ b/packages/SystemUI/src/com/android/systemui/screenshot/appclips/AppClipsActivity.java @@ -53,7 +53,6 @@ import com.android.internal.logging.UiEventLogger.UiEventEnum; import com.android.settingslib.Utils; import com.android.systemui.R; import com.android.systemui.screenshot.CropView; -import com.android.systemui.screenshot.MagnifierView; import com.android.systemui.settings.UserTracker; import javax.inject.Inject; @@ -93,7 +92,6 @@ public class AppClipsActivity extends ComponentActivity { private View mRoot; private ImageView mPreview; private CropView mCropView; - private MagnifierView mMagnifierView; private Button mSave; private Button mCancel; private AppClipsViewModel mViewModel; @@ -156,9 +154,8 @@ public class AppClipsActivity extends ComponentActivity { mSave.setOnClickListener(this::onClick); mCancel.setOnClickListener(this::onClick); - mMagnifierView = mLayout.findViewById(R.id.magnifier); + mCropView = mLayout.findViewById(R.id.crop_view); - mCropView.setCropInteractionListener(mMagnifierView); mPreview = mLayout.findViewById(R.id.preview); mPreview.addOnLayoutChangeListener( @@ -218,8 +215,6 @@ public class AppClipsActivity extends ComponentActivity { mPreview.setImageDrawable(drawable); mPreview.setAlpha(1f); - mMagnifierView.setDrawable(drawable, screenshot.getWidth(), screenshot.getHeight()); - // Screenshot is now available so set content view. setContentView(mLayout); } diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java index fb738454fc71..d8e2a3842e85 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardClockSwitchControllerTest.java @@ -134,6 +134,7 @@ public class KeyguardClockSwitchControllerTest extends SysuiTestCase { private KeyguardClockSwitchController mController; private View mSliceView; + private LinearLayout mStatusArea; private FakeExecutor mExecutor; @Before @@ -195,8 +196,8 @@ public class KeyguardClockSwitchControllerTest extends SysuiTestCase { mSliceView = new View(getContext()); when(mView.findViewById(R.id.keyguard_slice_view)).thenReturn(mSliceView); - when(mView.findViewById(R.id.keyguard_status_area)).thenReturn( - new LinearLayout(getContext())); + mStatusArea = new LinearLayout(getContext()); + when(mView.findViewById(R.id.keyguard_status_area)).thenReturn(mStatusArea); } @Test @@ -401,6 +402,15 @@ public class KeyguardClockSwitchControllerTest extends SysuiTestCase { assertNull(mController.getClock()); } + @Test + public void testSetAlpha_setClockAlphaForCLockFace() { + mController.onViewAttached(); + mController.setAlpha(0.5f); + verify(mLargeClockView).setAlpha(0.5f); + verify(mSmallClockView).setAlpha(0.5f); + assertEquals(0.5f, mStatusArea.getAlpha(), 0.0f); + } + private void verifyAttachment(VerificationMode times) { verify(mClockRegistry, times).registerClockChangeListener( any(ClockRegistry.ClockChangeListener.class)); diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewTest.kt b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewTest.kt index 508aea51b666..a8c281c24700 100644 --- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewTest.kt +++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardStatusViewTest.kt @@ -24,6 +24,8 @@ class KeyguardStatusViewTest : SysuiTestCase() { get() = keyguardStatusView.findViewById(R.id.status_view_media_container) private val statusViewContainer: ViewGroup get() = keyguardStatusView.findViewById(R.id.status_view_container) + private val clockView: ViewGroup + get() = keyguardStatusView.findViewById(R.id.keyguard_clock_container) private val childrenExcludingMedia get() = statusViewContainer.children.filter { it != mediaView } @@ -56,4 +58,12 @@ class KeyguardStatusViewTest : SysuiTestCase() { assertThat(it.translationY).isEqualTo(translationY) } } + + @Test + fun setAlphaExcludeClock() { + keyguardStatusView.setAlpha(0.5f, /* excludeClock= */true) + assertThat(statusViewContainer.alpha).isNotEqualTo(0.5f) + assertThat(mediaView.alpha).isEqualTo(0.5f) + assertThat(clockView.alpha).isNotEqualTo(0.5f) + } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/accessibility/fontscaling/FontScalingDialogTest.kt b/packages/SystemUI/tests/src/com/android/systemui/accessibility/fontscaling/FontScalingDialogTest.kt index 353a7c370ab6..f10c21bc514a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/accessibility/fontscaling/FontScalingDialogTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/accessibility/fontscaling/FontScalingDialogTest.kt @@ -50,10 +50,14 @@ private const val OFF: Int = 0 @RunWith(AndroidTestingRunner::class) @TestableLooper.RunWithLooper(setAsMainLooper = true) class FontScalingDialogTest : SysuiTestCase() { + private val MIN_UPDATE_INTERVAL_MS: Long = 800 + private val CHANGE_BY_SEEKBAR_DELAY_MS: Long = 100 + private val CHANGE_BY_BUTTON_DELAY_MS: Long = 300 private lateinit var fontScalingDialog: FontScalingDialog private lateinit var systemSettings: SystemSettings private lateinit var secureSettings: SecureSettings - private lateinit var backgroundExecutor: FakeExecutor + private lateinit var systemClock: FakeSystemClock + private lateinit var backgroundDelayableExecutor: FakeExecutor private val fontSizeValueArray: Array<String> = mContext .getResources() @@ -67,10 +71,20 @@ class FontScalingDialogTest : SysuiTestCase() { MockitoAnnotations.initMocks(this) val mainHandler = Handler(TestableLooper.get(this).getLooper()) systemSettings = FakeSettings() + // Guarantee that the systemSettings always starts with the default font scale. + systemSettings.putFloat(Settings.System.FONT_SCALE, 1.0f) secureSettings = FakeSettings() - backgroundExecutor = FakeExecutor(FakeSystemClock()) + systemClock = FakeSystemClock() + backgroundDelayableExecutor = FakeExecutor(systemClock) fontScalingDialog = - spy(FontScalingDialog(mContext, systemSettings, secureSettings, backgroundExecutor)) + FontScalingDialog( + mContext, + systemSettings, + secureSettings, + systemClock, + mainHandler, + backgroundDelayableExecutor + ) } @Test @@ -96,9 +110,14 @@ class FontScalingDialogTest : SysuiTestCase() { val seekBar: SeekBar = fontScalingDialog.findViewById(R.id.seekbar)!! seekBarWithIconButtonsView.setProgress(0) + backgroundDelayableExecutor.runAllReady() + backgroundDelayableExecutor.advanceClockToNext() + backgroundDelayableExecutor.runAllReady() iconEndFrame.performClick() - backgroundExecutor.runAllReady() + backgroundDelayableExecutor.runAllReady() + backgroundDelayableExecutor.advanceClockToNext() + backgroundDelayableExecutor.runAllReady() val currentScale = systemSettings.getFloat(Settings.System.FONT_SCALE, /* def= */ 1.0f) assertThat(seekBar.getProgress()).isEqualTo(1) @@ -117,9 +136,14 @@ class FontScalingDialogTest : SysuiTestCase() { val seekBar: SeekBar = fontScalingDialog.findViewById(R.id.seekbar)!! seekBarWithIconButtonsView.setProgress(fontSizeValueArray.size - 1) + backgroundDelayableExecutor.runAllReady() + backgroundDelayableExecutor.advanceClockToNext() + backgroundDelayableExecutor.runAllReady() iconStartFrame.performClick() - backgroundExecutor.runAllReady() + backgroundDelayableExecutor.runAllReady() + backgroundDelayableExecutor.advanceClockToNext() + backgroundDelayableExecutor.runAllReady() val currentScale = systemSettings.getFloat(Settings.System.FONT_SCALE, /* def= */ 1.0f) assertThat(seekBar.getProgress()).isEqualTo(fontSizeValueArray.size - 2) @@ -139,7 +163,7 @@ class FontScalingDialogTest : SysuiTestCase() { // Default seekbar progress for font size is 1, set it to another progress 0 seekBarWithIconButtonsView.setProgress(0) - backgroundExecutor.runAllReady() + backgroundDelayableExecutor.runAllReady() val currentSettings = secureSettings.getInt( @@ -153,6 +177,7 @@ class FontScalingDialogTest : SysuiTestCase() { @Test fun dragSeekbar_systemFontSizeSettingsDoesNotChange() { + fontScalingDialog = spy(fontScalingDialog) val slider: SeekBarWithIconButtonsView = spy(SeekBarWithIconButtonsView(mContext)) whenever( fontScalingDialog.findViewById<SeekBarWithIconButtonsView>(R.id.font_scaling_slider) @@ -169,7 +194,9 @@ class FontScalingDialogTest : SysuiTestCase() { // OnSeekBarChangeListener and the seekbar could get updated progress value // in onStopTrackingTouch. seekBar.progress = 0 - backgroundExecutor.runAllReady() + backgroundDelayableExecutor.runAllReady() + backgroundDelayableExecutor.advanceClockToNext() + backgroundDelayableExecutor.runAllReady() // Verify that the scale of font size remains the default value 1.0f. var systemScale = systemSettings.getFloat(Settings.System.FONT_SCALE, /* def= */ 1.0f) @@ -177,7 +204,9 @@ class FontScalingDialogTest : SysuiTestCase() { // Simulate releasing the finger from the seekbar. seekBarChangeCaptor.value.onStopTrackingTouch(seekBar) - backgroundExecutor.runAllReady() + backgroundDelayableExecutor.runAllReady() + backgroundDelayableExecutor.advanceClockToNext() + backgroundDelayableExecutor.runAllReady() // Verify that the scale of font size has been updated. systemScale = systemSettings.getFloat(Settings.System.FONT_SCALE, /* def= */ 1.0f) @@ -188,6 +217,7 @@ class FontScalingDialogTest : SysuiTestCase() { @Test fun dragSeekBar_createTextPreview() { + fontScalingDialog = spy(fontScalingDialog) val slider: SeekBarWithIconButtonsView = spy(SeekBarWithIconButtonsView(mContext)) whenever( fontScalingDialog.findViewById<SeekBarWithIconButtonsView>(R.id.font_scaling_slider) @@ -205,7 +235,8 @@ class FontScalingDialogTest : SysuiTestCase() { /* progress= */ 0, /* fromUser= */ false ) - backgroundExecutor.runAllReady() + backgroundDelayableExecutor.advanceClockToNext() + backgroundDelayableExecutor.runAllReady() verify(fontScalingDialog).createTextPreview(/* index= */ 0) fontScalingDialog.dismiss() diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/FontScalingTileTest.kt b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/FontScalingTileTest.kt index 1d6f225dd0a3..ddbfca57e688 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/FontScalingTileTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/FontScalingTileTest.kt @@ -33,10 +33,12 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.qs.QSHost import com.android.systemui.qs.QsEventLogger import com.android.systemui.qs.logging.QSLogger +import com.android.systemui.util.concurrency.FakeExecutor import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.eq import com.android.systemui.util.mockito.nullable import com.android.systemui.util.settings.FakeSettings +import com.android.systemui.util.time.FakeSystemClock import com.google.common.truth.Truth.assertThat import org.junit.After import org.junit.Before @@ -61,6 +63,8 @@ class FontScalingTileTest : SysuiTestCase() { @Mock private lateinit var uiEventLogger: QsEventLogger private lateinit var testableLooper: TestableLooper + private lateinit var systemClock: FakeSystemClock + private lateinit var backgroundDelayableExecutor: FakeExecutor private lateinit var fontScalingTile: FontScalingTile val featureFlags = FakeFeatureFlags() @@ -70,6 +74,8 @@ class FontScalingTileTest : SysuiTestCase() { MockitoAnnotations.initMocks(this) testableLooper = TestableLooper.get(this) `when`(qsHost.getContext()).thenReturn(mContext) + systemClock = FakeSystemClock() + backgroundDelayableExecutor = FakeExecutor(systemClock) fontScalingTile = FontScalingTile( @@ -85,7 +91,9 @@ class FontScalingTileTest : SysuiTestCase() { dialogLaunchAnimator, FakeSettings(), FakeSettings(), - featureFlags + FakeSystemClock(), + featureFlags, + backgroundDelayableExecutor, ) fontScalingTile.initialize() testableLooper.processAllMessages() diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index d36c959a1b25..e894f1c2879e 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -490,7 +490,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub mMainHandler, context, new PolicyWarningUIController.NotificationController(context)); mSecurityPolicy = new AccessibilitySecurityPolicy(policyWarningUIController, mContext, - this); + this, LocalServices.getService(PackageManagerInternal.class)); mA11yWindowManager = new AccessibilityWindowManager(mLock, mMainHandler, mWindowManagerService, this, mSecurityPolicy, this, mTraceManager); mA11yDisplayListener = new AccessibilityDisplayListener(mContext, mMainHandler); diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilitySecurityPolicy.java b/services/accessibility/java/com/android/server/accessibility/AccessibilitySecurityPolicy.java index 88656239e59b..93356263b897 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilitySecurityPolicy.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilitySecurityPolicy.java @@ -29,6 +29,7 @@ import android.appwidget.AppWidgetManagerInternal; import android.content.ComponentName; import android.content.Context; import android.content.pm.PackageManager; +import android.content.pm.PackageManagerInternal; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.content.pm.UserInfo; @@ -99,6 +100,7 @@ public class AccessibilitySecurityPolicy { private final Context mContext; private final PackageManager mPackageManager; + private final PackageManagerInternal mPackageManagerInternal; private final UserManager mUserManager; private final AppOpsManager mAppOpsManager; private final AccessibilityUserManager mAccessibilityUserManager; @@ -116,10 +118,12 @@ public class AccessibilitySecurityPolicy { */ public AccessibilitySecurityPolicy(PolicyWarningUIController policyWarningUIController, @NonNull Context context, - @NonNull AccessibilityUserManager a11yUserManager) { + @NonNull AccessibilityUserManager a11yUserManager, + @NonNull PackageManagerInternal packageManagerInternal) { mContext = context; mAccessibilityUserManager = a11yUserManager; mPackageManager = mContext.getPackageManager(); + mPackageManagerInternal = packageManagerInternal; mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE); mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); mPolicyWarningUIController = policyWarningUIController; @@ -515,10 +519,8 @@ public class AccessibilitySecurityPolicy { try { // Since we treat calls from a profile as if made by its parent, using // MATCH_ANY_USER to query the uid of the given package name. - return uid == mPackageManager.getPackageUidAsUser( - packageName, PackageManager.MATCH_ANY_USER, UserHandle.getUserId(uid)); - } catch (PackageManager.NameNotFoundException e) { - return false; + return mPackageManagerInternal.isSameApp(packageName, PackageManager.MATCH_ANY_USER, + uid, UserHandle.getUserId(uid)); } finally { Binder.restoreCallingIdentity(token); } diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java index 9e46d739be0f..d290c3611f78 100644 --- a/services/autofill/java/com/android/server/autofill/Session.java +++ b/services/autofill/java/com/android/server/autofill/Session.java @@ -27,6 +27,7 @@ import static android.service.autofill.FillRequest.FLAG_MANUAL_REQUEST; import static android.service.autofill.FillRequest.FLAG_PASSWORD_INPUT_TYPE; import static android.service.autofill.FillRequest.FLAG_PCC_DETECTION; import static android.service.autofill.FillRequest.FLAG_RESET_FILL_DIALOG_STATE; +import static android.service.autofill.FillRequest.FLAG_SCREEN_HAS_CREDMAN_FIELD; import static android.service.autofill.FillRequest.FLAG_SUPPORTS_FILL_DIALOG; import static android.service.autofill.FillRequest.FLAG_VIEW_NOT_FOCUSED; import static android.service.autofill.FillRequest.INVALID_REQUEST_ID; @@ -592,6 +593,9 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState /** Whether the fill dialog UI is disabled. */ private boolean mFillDialogDisabled; + + /** Whether current screen has credman field. */ + private boolean mScreenHasCredmanField; } /** @@ -3088,6 +3092,20 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState final SaveInfo saveInfo = response == null ? null : response.getSaveInfo(); /* + * Don't show save if the session has credman field + * + * TODO: add a new enum NO_SAVE_UI_CREDMAN + */ + if (mSessionFlags.mScreenHasCredmanField) { + if (sVerbose) { + Slog.v(TAG, "Call to Session#showSaveLocked() rejected - " + + "there is credman field in screen"); + } + return new SaveResult(/* logSaveShown= */ false, /* removeSession= */ true, + Event.NO_SAVE_UI_REASON_NONE); + } + + /* * The Save dialog is only shown if all conditions below are met: * * - saveInfo is not null. @@ -3817,6 +3835,10 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState return; } + if ((flags & FLAG_SCREEN_HAS_CREDMAN_FIELD) != 0) { + mSessionFlags.mScreenHasCredmanField = true; + } + switch(action) { case ACTION_START_SESSION: // View is triggering autofill. @@ -4293,7 +4315,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState private boolean isFillDialogUiEnabled() { synchronized (mLock) { - return !mSessionFlags.mFillDialogDisabled; + return !mSessionFlags.mFillDialogDisabled && !mSessionFlags.mScreenHasCredmanField; } } diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java index c8db662a7f49..7975e49541a0 100644 --- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java +++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java @@ -922,7 +922,8 @@ public class CompanionDeviceManagerService extends SystemService { String[] args, ShellCallback callback, ResultReceiver resultReceiver) throws RemoteException { new CompanionDeviceShellCommand(CompanionDeviceManagerService.this, mAssociationStore, - mDevicePresenceMonitor, mTransportManager, mSystemDataTransferRequestStore) + mDevicePresenceMonitor, mTransportManager, mSystemDataTransferRequestStore, + mAssociationRequestsProcessor) .exec(this, in, out, err, args, callback, resultReceiver); } diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceShellCommand.java b/services/companion/java/com/android/server/companion/CompanionDeviceShellCommand.java index 669686adddb8..c511429a37d8 100644 --- a/services/companion/java/com/android/server/companion/CompanionDeviceShellCommand.java +++ b/services/companion/java/com/android/server/companion/CompanionDeviceShellCommand.java @@ -17,14 +17,19 @@ package com.android.server.companion; import android.companion.AssociationInfo; +import android.companion.ContextSyncMessage; +import android.companion.Telecom; import android.companion.datatransfer.PermissionSyncRequest; import android.net.MacAddress; import android.os.Binder; import android.os.ShellCommand; +import android.util.proto.ProtoOutputStream; import com.android.server.companion.datatransfer.SystemDataTransferRequestStore; +import com.android.server.companion.datatransfer.contextsync.CrossDeviceSyncController; import com.android.server.companion.presence.CompanionDevicePresenceMonitor; import com.android.server.companion.transport.CompanionTransportManager; +import com.android.server.companion.transport.Transport; import java.io.PrintWriter; import java.util.List; @@ -33,22 +38,25 @@ class CompanionDeviceShellCommand extends ShellCommand { private static final String TAG = "CDM_CompanionDeviceShellCommand"; private final CompanionDeviceManagerService mService; - private final AssociationStore mAssociationStore; + private final AssociationStoreImpl mAssociationStore; private final CompanionDevicePresenceMonitor mDevicePresenceMonitor; private final CompanionTransportManager mTransportManager; private final SystemDataTransferRequestStore mSystemDataTransferRequestStore; + private final AssociationRequestsProcessor mAssociationRequestsProcessor; CompanionDeviceShellCommand(CompanionDeviceManagerService service, - AssociationStore associationStore, + AssociationStoreImpl associationStore, CompanionDevicePresenceMonitor devicePresenceMonitor, CompanionTransportManager transportManager, - SystemDataTransferRequestStore systemDataTransferRequestStore) { + SystemDataTransferRequestStore systemDataTransferRequestStore, + AssociationRequestsProcessor associationRequestsProcessor) { mService = service; mAssociationStore = associationStore; mDevicePresenceMonitor = devicePresenceMonitor; mTransportManager = transportManager; mSystemDataTransferRequestStore = systemDataTransferRequestStore; + mAssociationRequestsProcessor = associationRequestsProcessor; } @Override @@ -117,12 +125,107 @@ class CompanionDeviceShellCommand extends ShellCommand { } break; - case "create-dummy-transport": + case "create-emulated-transport": // This command creates a RawTransport in order to test Transport listeners associationId = getNextIntArgRequired(); - mTransportManager.createDummyTransport(associationId); + mTransportManager.createEmulatedTransport(associationId); break; + case "send-context-sync-empty-message": { + associationId = getNextIntArgRequired(); + mTransportManager.createEmulatedTransport(associationId) + .processMessage(Transport.MESSAGE_REQUEST_CONTEXT_SYNC, + /* sequence= */ 0, + CrossDeviceSyncController.createEmptyMessage()); + break; + } + + case "send-context-sync-call-create-message": { + associationId = getNextIntArgRequired(); + String callId = getNextArgRequired(); + String address = getNextArgRequired(); + String facilitator = getNextArgRequired(); + mTransportManager.createEmulatedTransport(associationId) + .processMessage(Transport.MESSAGE_REQUEST_CONTEXT_SYNC, + /* sequence= */ 0, + CrossDeviceSyncController.createCallCreateMessage(callId, + address, facilitator)); + break; + } + + case "send-context-sync-call-control-message": { + associationId = getNextIntArgRequired(); + String callId = getNextArgRequired(); + int control = getNextIntArgRequired(); + mTransportManager.createEmulatedTransport(associationId) + .processMessage(Transport.MESSAGE_REQUEST_CONTEXT_SYNC, + /* sequence= */ 0, + CrossDeviceSyncController.createCallControlMessage(callId, + control)); + break; + } + + case "send-context-sync-call-facilitators-message": { + associationId = getNextIntArgRequired(); + int numberOfFacilitators = getNextIntArgRequired(); + final ProtoOutputStream pos = new ProtoOutputStream(); + pos.write(ContextSyncMessage.VERSION, 1); + final long telecomToken = pos.start(ContextSyncMessage.TELECOM); + for (int i = 0; i < numberOfFacilitators; i++) { + final long facilitatorsToken = pos.start(Telecom.FACILITATORS); + pos.write(Telecom.CallFacilitator.NAME, "Call Facilitator App #" + i); + pos.write(Telecom.CallFacilitator.IDENTIFIER, "com.android.test" + i); + pos.end(facilitatorsToken); + } + pos.end(telecomToken); + mTransportManager.createEmulatedTransport(associationId) + .processMessage(Transport.MESSAGE_REQUEST_CONTEXT_SYNC, + /* sequence= */ 0, pos.getBytes()); + break; + } + + case "send-context-sync-call-message": { + associationId = getNextIntArgRequired(); + String callId = getNextArgRequired(); + String facilitatorId = getNextArgRequired(); + final ProtoOutputStream pos = new ProtoOutputStream(); + pos.write(ContextSyncMessage.VERSION, 1); + final long telecomToken = pos.start(ContextSyncMessage.TELECOM); + final long callsToken = pos.start(Telecom.CALLS); + pos.write(Telecom.Call.ID, callId); + final long originToken = pos.start(Telecom.Call.ORIGIN); + pos.write(Telecom.Call.Origin.CALLER_ID, "Caller Name"); + final long facilitatorToken = pos.start( + Telecom.Request.CreateAction.FACILITATOR); + pos.write(Telecom.CallFacilitator.NAME, "Test App Name"); + pos.write(Telecom.CallFacilitator.IDENTIFIER, facilitatorId); + pos.end(facilitatorToken); + pos.end(originToken); + pos.write(Telecom.Call.STATUS, Telecom.Call.RINGING); + pos.write(Telecom.Call.CONTROLS, Telecom.ACCEPT); + pos.write(Telecom.Call.CONTROLS, Telecom.REJECT); + pos.end(callsToken); + pos.end(telecomToken); + mTransportManager.createEmulatedTransport(associationId) + .processMessage(Transport.MESSAGE_REQUEST_CONTEXT_SYNC, + /* sequence= */ 0, pos.getBytes()); + break; + } + + case "disable-context-sync": { + associationId = getNextIntArgRequired(); + int flag = getNextIntArgRequired(); + mAssociationRequestsProcessor.disableSystemDataSync(associationId, flag); + break; + } + + case "enable-context-sync": { + associationId = getNextIntArgRequired(); + int flag = getNextIntArgRequired(); + mAssociationRequestsProcessor.enableSystemDataSync(associationId, flag); + break; + } + case "allow-permission-sync": { int userId = getNextIntArgRequired(); associationId = getNextIntArgRequired(); @@ -202,7 +305,7 @@ class CompanionDeviceShellCommand extends ShellCommand { pw.println(" \"debug.cdm.cdmservice.cleanup_time_window\" system property). "); pw.println(" USE FOR DEBUGGING AND/OR TESTING PURPOSES ONLY."); - pw.println(" create-dummy-transport <ASSOCIATION_ID>"); - pw.println(" Create a dummy RawTransport for testing puspose only"); + pw.println(" create-emulated-transport <ASSOCIATION_ID>"); + pw.println(" Create an EmulatedTransport for testing purposes only"); } } diff --git a/services/companion/java/com/android/server/companion/transport/CompanionTransportManager.java b/services/companion/java/com/android/server/companion/transport/CompanionTransportManager.java index a3e095e4475b..17bdb6085c45 100644 --- a/services/companion/java/com/android/server/companion/transport/CompanionTransportManager.java +++ b/services/companion/java/com/android/server/companion/transport/CompanionTransportManager.java @@ -360,15 +360,42 @@ public class CompanionTransportManager { /** * For testing purpose only. * - * Create a dummy RawTransport and notify onTransportChanged listeners. + * Create an emulated RawTransport and notify onTransportChanged listeners. */ - public void createDummyTransport(int associationId) { + public EmulatedTransport createEmulatedTransport(int associationId) { synchronized (mTransports) { FileDescriptor fd = new FileDescriptor(); ParcelFileDescriptor pfd = new ParcelFileDescriptor(fd); - Transport transport = new RawTransport(associationId, pfd, mContext); + EmulatedTransport transport = new EmulatedTransport(associationId, pfd, mContext); + addMessageListenersToTransport(transport); mTransports.put(associationId, transport); notifyOnTransportsChanged(); + return transport; + } + } + + /** + * For testing purposes only. + * + * Emulates a transport for incoming messages but black-holes all messages sent back through it. + */ + public static class EmulatedTransport extends RawTransport { + + EmulatedTransport(int associationId, ParcelFileDescriptor fd, Context context) { + super(associationId, fd, context); + } + + /** Process an incoming message for testing purposes. */ + public void processMessage(int messageType, int sequence, byte[] data) throws IOException { + handleMessage(messageType, sequence, data); + } + + @Override + protected void sendMessage(int messageType, int sequence, @NonNull byte[] data) + throws IOException { + Slog.e(TAG, "Black-holing emulated message type 0x" + Integer.toHexString(messageType) + + " sequence " + sequence + " length " + data.length + + " to association " + mAssociationId); } } diff --git a/services/core/java/android/content/pm/PackageManagerInternal.java b/services/core/java/android/content/pm/PackageManagerInternal.java index 22ac22d0d699..a305ed36e4d1 100644 --- a/services/core/java/android/content/pm/PackageManagerInternal.java +++ b/services/core/java/android/content/pm/PackageManagerInternal.java @@ -154,16 +154,24 @@ public abstract class PackageManagerInternal { /** + * Variant of {@link #isSameApp(String, long, int, int)} with no flags. + * @see #isSameApp(String, long, int, int) + */ + public abstract boolean isSameApp(String packageName, int callingUid, int userId); + + /** * Gets whether a given package name belongs to the calling uid. If the calling uid is an * {@link Process#isSdkSandboxUid(int) sdk sandbox uid}, checks whether the package name is * equal to {@link PackageManager#getSdkSandboxPackageName()}. * * @param packageName The package name to check. + * @param flags The PackageInfoFlagsBits flags to use during uid lookup. * @param callingUid The calling uid. * @param userId The user under which to check. * @return True if the package name belongs to the calling uid. */ - public abstract boolean isSameApp(String packageName, int callingUid, int userId); + public abstract boolean isSameApp(String packageName, + @PackageManager.PackageInfoFlagsBits long flags, int callingUid, int userId); /** * Retrieve all of the information we know about a particular package/application. diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 117f7473252f..a888a0b5d7d9 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -9502,11 +9502,20 @@ public class ActivityManagerService extends IActivityManager.Stub * Check if the calling process has the permission to dump given package, * throw SecurityException if it doesn't have the permission. * - * @return The UID of the given package, or {@link android.os.Process#INVALID_UID} + * @return The real UID of process that can be dumped, or {@link android.os.Process#INVALID_UID} * if the package is not found. */ int enforceDumpPermissionForPackage(String packageName, int userId, int callingUid, String function) { + // Allow SDK sandbox process to dump for its own process (under SDK sandbox package) + try { + if (Process.isSdkSandboxUid(callingUid) + && getPackageManager().getSdkSandboxPackageName().equals(packageName)) { + return callingUid; + } + } catch (RemoteException e) { + Log.e(TAG, "Could not get SDK sandbox package name"); + } final long identity = Binder.clearCallingIdentity(); int uid = INVALID_UID; try { diff --git a/services/core/java/com/android/server/am/AppExitInfoTracker.java b/services/core/java/com/android/server/am/AppExitInfoTracker.java index 4c0dd115a3cc..666e5600a8b6 100644 --- a/services/core/java/com/android/server/am/AppExitInfoTracker.java +++ b/services/core/java/com/android/server/am/AppExitInfoTracker.java @@ -467,6 +467,13 @@ public final class AppExitInfoTracker { addExitInfoInnerLocked(packages[i], uid, info, recoverable); } + // SDK sandbox exits are stored under both real and package UID + if (Process.isSdkSandboxUid(uid)) { + for (int i = 0; i < packages.length; i++) { + addExitInfoInnerLocked(packages[i], raw.getPackageUid(), info, recoverable); + } + } + schedulePersistProcessExitInfo(false); return info; @@ -1400,11 +1407,20 @@ public final class AppExitInfoTracker { } } // Claim the state information if there is any - final int uid = info.getPackageUid(); + int uid = info.getPackageUid(); + // SDK sandbox app states and app traces are stored under real UID + if (Process.isSdkSandboxUid(info.getRealUid())) { + uid = info.getRealUid(); + } final int pid = info.getPid(); - info.setProcessStateSummary(findAndRemoveFromSparse2dArray( - mActiveAppStateSummary, uid, pid)); - info.setTraceFile(findAndRemoveFromSparse2dArray(mActiveAppTraces, uid, pid)); + if (info.getProcessStateSummary() == null) { + info.setProcessStateSummary(findAndRemoveFromSparse2dArray( + mActiveAppStateSummary, uid, pid)); + } + if (info.getTraceFile() == null) { + info.setTraceFile(findAndRemoveFromSparse2dArray(mActiveAppTraces, uid, pid)); + } + info.setAppTraceRetriever(mAppTraceRetriever); map.append(pid, info); } @@ -1905,15 +1921,15 @@ public final class AppExitInfoTracker { } final int callingPid = Binder.getCallingPid(); final int callingUid = Binder.getCallingUid(); - final int callingUserId = UserHandle.getCallingUserId(); final int userId = UserHandle.getUserId(uid); mService.mUserController.handleIncomingUser(callingPid, callingUid, userId, true, ALLOW_NON_FULL, "getTraceFileDescriptor", null); - if (mService.enforceDumpPermissionForPackage(packageName, userId, - callingUid, "getTraceFileDescriptor") != Process.INVALID_UID) { + final int filterUid = mService.enforceDumpPermissionForPackage(packageName, userId, + callingUid, "getTraceFileDescriptor"); + if (filterUid != Process.INVALID_UID) { synchronized (mLock) { - final ApplicationExitInfo info = getExitInfoLocked(packageName, uid, pid); + final ApplicationExitInfo info = getExitInfoLocked(packageName, filterUid, pid); if (info == null) { return null; } diff --git a/services/core/java/com/android/server/pm/DeletePackageHelper.java b/services/core/java/com/android/server/pm/DeletePackageHelper.java index 9a5ee8124cb4..5f52c16d319c 100644 --- a/services/core/java/com/android/server/pm/DeletePackageHelper.java +++ b/services/core/java/com/android/server/pm/DeletePackageHelper.java @@ -453,6 +453,7 @@ final class DeletePackageHelper { // We need to set it back to 'installed' so the uninstall // broadcasts will be sent correctly. if (DEBUG_REMOVE) Slog.d(TAG, "Not installed by other users, full delete"); + ps.setPkg(null); ps.setInstalled(true, userId); mPm.mSettings.writeKernelMappingLPr(ps); clearPackageStateAndReturn = false; diff --git a/services/core/java/com/android/server/pm/InstallPackageHelper.java b/services/core/java/com/android/server/pm/InstallPackageHelper.java index 5932929a69c4..f3d5f6e84113 100644 --- a/services/core/java/com/android/server/pm/InstallPackageHelper.java +++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java @@ -654,7 +654,7 @@ final class InstallPackageHelper { synchronized (mPm.mLock) { final Computer snapshot = mPm.snapshotComputer(); pkgSetting = mPm.mSettings.getPackageLPr(packageName); - if (pkgSetting == null) { + if (pkgSetting == null || pkgSetting.getPkg() == null) { return PackageManager.INSTALL_FAILED_INVALID_URI; } if (!snapshot.canViewInstantApps(callingUid, UserHandle.getUserId(callingUid))) { diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java index f358ce796fcf..1721f83538ff 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerService.java +++ b/services/core/java/com/android/server/pm/PackageInstallerService.java @@ -724,7 +724,6 @@ public class PackageInstallerService extends IPackageInstaller.Stub implements params.installFlags |= PackageManager.INSTALL_ALLOW_DOWNGRADE; } else { params.installFlags &= ~PackageManager.INSTALL_ALLOW_DOWNGRADE; - params.installFlags &= ~PackageManager.INSTALL_REQUEST_DOWNGRADE; } if (mDisableVerificationForUid != INVALID_UID) { diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index f48204645d34..4ddc7e4b44ee 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -6843,6 +6843,12 @@ public class PackageManagerService implements PackageSender, TestUtilityService @Override public boolean isSameApp(@Nullable String packageName, int callingUid, int userId) { + return isSameApp(packageName, /*flags=*/0, callingUid, userId); + } + + @Override + public boolean isSameApp(@Nullable String packageName, + @PackageManager.PackageInfoFlagsBits long flags, int callingUid, int userId) { if (packageName == null) { return false; } @@ -6851,7 +6857,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService return packageName.equals(mRequiredSdkSandboxPackage); } Computer snapshot = snapshot(); - int uid = snapshot.getPackageUid(packageName, 0, userId); + int uid = snapshot.getPackageUid(packageName, flags, userId); return UserHandle.isSameApp(uid, callingUid); } diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 79eed644de78..dc56def09ee8 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -216,6 +216,7 @@ import com.android.server.UiThread; import com.android.server.display.BrightnessUtils; import com.android.server.input.InputManagerInternal; import com.android.server.inputmethod.InputMethodManagerInternal; +import com.android.server.pm.UserManagerInternal; import com.android.server.policy.KeyCombinationManager.TwoKeysCombinationRule; import com.android.server.policy.keyguard.KeyguardServiceDelegate; import com.android.server.policy.keyguard.KeyguardServiceDelegate.DrawnListener; @@ -413,6 +414,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { SensorPrivacyManager mSensorPrivacyManager; DisplayManager mDisplayManager; DisplayManagerInternal mDisplayManagerInternal; + UserManagerInternal mUserManagerInternal; private WallpaperManagerInternal mWallpaperManagerInternal; @@ -2009,6 +2011,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { mSensorPrivacyManager = mContext.getSystemService(SensorPrivacyManager.class); mDisplayManager = mContext.getSystemService(DisplayManager.class); mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class); + mUserManagerInternal = LocalServices.getService(UserManagerInternal.class); mPackageManager = mContext.getPackageManager(); mHasFeatureWatch = mPackageManager.hasSystemFeature(FEATURE_WATCH); mHasFeatureLeanback = mPackageManager.hasSystemFeature(FEATURE_LEANBACK); @@ -5742,8 +5745,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { Log.d(TAG, "startDockOrHome: startReason= " + startReason); } + int userId = mUserManagerInternal.getUserAssignedToDisplay(displayId); // Start home. - mActivityTaskManagerInternal.startHomeOnDisplay(mCurrentUserId, startReason, + mActivityTaskManagerInternal.startHomeOnDisplay(userId, startReason, displayId, true /* allowInstrumenting */, fromHomeKey); } diff --git a/services/core/java/com/android/server/security/rkp/RemoteProvisioningRegistration.java b/services/core/java/com/android/server/security/rkp/RemoteProvisioningRegistration.java index f586126196dd..7d148f6225be 100644 --- a/services/core/java/com/android/server/security/rkp/RemoteProvisioningRegistration.java +++ b/services/core/java/com/android/server/security/rkp/RemoteProvisioningRegistration.java @@ -17,6 +17,7 @@ package com.android.server.security.rkp; import android.os.CancellationSignal; +import android.os.IBinder; import android.os.OperationCanceledException; import android.os.OutcomeReceiver; import android.security.rkp.IGetKeyCallback; @@ -39,23 +40,23 @@ import java.util.concurrent.Executor; */ final class RemoteProvisioningRegistration extends IRegistration.Stub { static final String TAG = RemoteProvisioningService.TAG; - private final ConcurrentHashMap<IGetKeyCallback, CancellationSignal> mGetKeyOperations = + private final ConcurrentHashMap<IBinder, CancellationSignal> mGetKeyOperations = new ConcurrentHashMap<>(); - private final Set<IStoreUpgradedKeyCallback> mStoreUpgradedKeyOperations = - ConcurrentHashMap.newKeySet(); + private final Set<IBinder> mStoreUpgradedKeyOperations = ConcurrentHashMap.newKeySet(); private final RegistrationProxy mRegistration; private final Executor mExecutor; private class GetKeyReceiver implements OutcomeReceiver<RemotelyProvisionedKey, Exception> { IGetKeyCallback mCallback; + GetKeyReceiver(IGetKeyCallback callback) { mCallback = callback; } @Override public void onResult(RemotelyProvisionedKey result) { - mGetKeyOperations.remove(mCallback); - Log.i(TAG, "Successfully fetched key for client " + mCallback.hashCode()); + mGetKeyOperations.remove(mCallback.asBinder()); + Log.i(TAG, "Successfully fetched key for client " + mCallback.asBinder().hashCode()); android.security.rkp.RemotelyProvisionedKey parcelable = new android.security.rkp.RemotelyProvisionedKey(); parcelable.keyBlob = result.getKeyBlob(); @@ -65,19 +66,21 @@ final class RemoteProvisioningRegistration extends IRegistration.Stub { @Override public void onError(Exception e) { - mGetKeyOperations.remove(mCallback); + mGetKeyOperations.remove(mCallback.asBinder()); if (e instanceof OperationCanceledException) { - Log.i(TAG, "Operation cancelled for client " + mCallback.hashCode()); + Log.i(TAG, "Operation cancelled for client " + mCallback.asBinder().hashCode()); wrapCallback(mCallback::onCancel); } else if (e instanceof RkpProxyException) { - Log.e(TAG, "RKP error fetching key for client " + mCallback.hashCode() + ": " + Log.e(TAG, "RKP error fetching key for client " + mCallback.asBinder().hashCode() + + ": " + e.getMessage()); RkpProxyException rkpException = (RkpProxyException) e; wrapCallback(() -> mCallback.onError(toGetKeyError(rkpException), e.getMessage())); } else { - Log.e(TAG, "Unknown error fetching key for client " + mCallback.hashCode() + ": " - + e.getMessage()); + Log.e(TAG, + "Unknown error fetching key for client " + mCallback.asBinder().hashCode() + + ": " + e.getMessage()); wrapCallback(() -> mCallback.onError(IGetKeyCallback.ErrorCode.ERROR_UNKNOWN, e.getMessage())); } @@ -108,20 +111,23 @@ final class RemoteProvisioningRegistration extends IRegistration.Stub { @Override public void getKey(int keyId, IGetKeyCallback callback) { CancellationSignal cancellationSignal = new CancellationSignal(); - if (mGetKeyOperations.putIfAbsent(callback, cancellationSignal) != null) { - Log.e(TAG, "Client can only request one call at a time " + callback.hashCode()); + if (mGetKeyOperations.putIfAbsent(callback.asBinder(), cancellationSignal) != null) { + Log.e(TAG, + "Client can only request one call at a time " + callback.asBinder().hashCode()); throw new IllegalArgumentException( "Callback is already associated with an existing operation: " - + callback.hashCode()); + + callback.asBinder().hashCode()); } try { - Log.i(TAG, "Fetching key " + keyId + " for client " + callback.hashCode()); + Log.i(TAG, "Fetching key " + keyId + " for client " + callback.asBinder().hashCode()); mRegistration.getKeyAsync(keyId, cancellationSignal, mExecutor, new GetKeyReceiver(callback)); } catch (Exception e) { - Log.e(TAG, "getKeyAsync threw an exception for client " + callback.hashCode(), e); - mGetKeyOperations.remove(callback); + Log.e(TAG, + "getKeyAsync threw an exception for client " + callback.asBinder().hashCode(), + e); + mGetKeyOperations.remove(callback.asBinder()); wrapCallback(() -> callback.onError(IGetKeyCallback.ErrorCode.ERROR_UNKNOWN, e.getMessage())); } @@ -129,23 +135,23 @@ final class RemoteProvisioningRegistration extends IRegistration.Stub { @Override public void cancelGetKey(IGetKeyCallback callback) { - CancellationSignal cancellationSignal = mGetKeyOperations.remove(callback); + CancellationSignal cancellationSignal = mGetKeyOperations.remove(callback.asBinder()); if (cancellationSignal == null) { throw new IllegalArgumentException( - "Invalid client in cancelGetKey: " + callback.hashCode()); + "Invalid client in cancelGetKey: " + callback.asBinder().hashCode()); } - Log.i(TAG, "Requesting cancellation for client " + callback.hashCode()); + Log.i(TAG, "Requesting cancellation for client " + callback.asBinder().hashCode()); cancellationSignal.cancel(); } @Override public void storeUpgradedKeyAsync(byte[] oldKeyBlob, byte[] newKeyBlob, IStoreUpgradedKeyCallback callback) { - if (!mStoreUpgradedKeyOperations.add(callback)) { + if (!mStoreUpgradedKeyOperations.add(callback.asBinder())) { throw new IllegalArgumentException( "Callback is already associated with an existing operation: " - + callback.hashCode()); + + callback.asBinder().hashCode()); } try { @@ -153,20 +159,20 @@ final class RemoteProvisioningRegistration extends IRegistration.Stub { new OutcomeReceiver<>() { @Override public void onResult(Void result) { - mStoreUpgradedKeyOperations.remove(callback); + mStoreUpgradedKeyOperations.remove(callback.asBinder()); wrapCallback(callback::onSuccess); } @Override public void onError(Exception e) { - mStoreUpgradedKeyOperations.remove(callback); + mStoreUpgradedKeyOperations.remove(callback.asBinder()); wrapCallback(() -> callback.onError(e.getMessage())); } }); } catch (Exception e) { Log.e(TAG, "storeUpgradedKeyAsync threw an exception for client " - + callback.hashCode(), e); - mStoreUpgradedKeyOperations.remove(callback); + + callback.asBinder().hashCode(), e); + mStoreUpgradedKeyOperations.remove(callback.asBinder()); wrapCallback(() -> callback.onError(e.getMessage())); } } diff --git a/services/core/java/com/android/server/security/rkp/RemoteProvisioningService.java b/services/core/java/com/android/server/security/rkp/RemoteProvisioningService.java index 97e463646fdc..2bd7383ddde0 100644 --- a/services/core/java/com/android/server/security/rkp/RemoteProvisioningService.java +++ b/services/core/java/com/android/server/security/rkp/RemoteProvisioningService.java @@ -61,7 +61,7 @@ public class RemoteProvisioningService extends SystemService { try { mCallback.onSuccess(new RemoteProvisioningRegistration(registration, mExecutor)); } catch (RemoteException e) { - Log.e(TAG, "Error calling success callback " + mCallback.hashCode(), e); + Log.e(TAG, "Error calling success callback " + mCallback.asBinder().hashCode(), e); } } @@ -70,7 +70,7 @@ public class RemoteProvisioningService extends SystemService { try { mCallback.onError(error.toString()); } catch (RemoteException e) { - Log.e(TAG, "Error calling error callback " + mCallback.hashCode(), e); + Log.e(TAG, "Error calling error callback " + mCallback.asBinder().hashCode(), e); } } } diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 26b40b4c09ee..1717d248b7a7 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -7941,9 +7941,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A } // This is necessary in order to avoid going into size compat mode when the orientation // change request comes from the app - if (mWmService.mLetterboxConfiguration - .isSizeCompatModeDisabledAfterOrientationChangeFromApp() - && getRequestedConfigurationOrientation(false, requestedOrientation) + if (getRequestedConfigurationOrientation(false, requestedOrientation) != getRequestedConfigurationOrientation(false /*forDisplay */)) { // Do not change the requested configuration now, because this will be done when setting // the orientation below with the new mCompatDisplayInsets diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java index 19a12f2b9cc0..e8acbe43689c 100644 --- a/services/core/java/com/android/server/wm/ActivityStarter.java +++ b/services/core/java/com/android/server/wm/ActivityStarter.java @@ -2909,6 +2909,9 @@ class ActivityStarter { private void setTargetRootTaskIfNeeded(ActivityRecord intentActivity) { intentActivity.getTaskFragment().clearLastPausedActivity(); Task intentTask = intentActivity.getTask(); + // The intent task might be reparented while in getOrCreateRootTask, caches the original + // root task to distinguish if it is moving to front or not. + final Task origRootTask = intentTask != null ? intentTask.getRootTask() : null; if (mTargetRootTask == null) { // Update launch target task when it is not indicated. @@ -2941,7 +2944,8 @@ class ActivityStarter { ? null : focusRootTask.topRunningNonDelayedActivityLocked(mNotTop); final Task topTask = curTop != null ? curTop.getTask() : null; differentTopTask = topTask != intentTask - || (focusRootTask != null && topTask != focusRootTask.getTopMostTask()); + || (focusRootTask != null && topTask != focusRootTask.getTopMostTask()) + || (focusRootTask != null && focusRootTask != origRootTask); } else { // The existing task should always be different from those in other displays. differentTopTask = true; diff --git a/services/core/java/com/android/server/wm/LetterboxConfiguration.java b/services/core/java/com/android/server/wm/LetterboxConfiguration.java index 6936a2dcba19..f492bab0728f 100644 --- a/services/core/java/com/android/server/wm/LetterboxConfiguration.java +++ b/services/core/java/com/android/server/wm/LetterboxConfiguration.java @@ -19,7 +19,6 @@ package com.android.server.wm; import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_ATM; import static com.android.server.wm.ActivityTaskManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.wm.LetterboxConfigurationDeviceConfig.KEY_ALLOW_IGNORE_ORIENTATION_REQUEST; -import static com.android.server.wm.LetterboxConfigurationDeviceConfig.KEY_DISABLE_SIZE_COMPAT_MODE_AFTER_ORIENTATION_CHANGE_FROM_APP; import static com.android.server.wm.LetterboxConfigurationDeviceConfig.KEY_ENABLE_CAMERA_COMPAT_TREATMENT; import static com.android.server.wm.LetterboxConfigurationDeviceConfig.KEY_ENABLE_COMPAT_FAKE_FOCUS; import static com.android.server.wm.LetterboxConfigurationDeviceConfig.KEY_ENABLE_DISPLAY_ROTATION_IMMERSIVE_APP_COMPAT_POLICY; @@ -330,9 +329,6 @@ final class LetterboxConfiguration { mDeviceConfig.updateFlagActiveStatus( /* isActive */ mTranslucentLetterboxingEnabled, /* key */ KEY_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY); - mDeviceConfig.updateFlagActiveStatus( - /* isActive */ true, - /* key */ KEY_DISABLE_SIZE_COMPAT_MODE_AFTER_ORIENTATION_CHANGE_FROM_APP); mLetterboxConfigurationPersister = letterboxConfigurationPersister; mLetterboxConfigurationPersister.start(); @@ -347,16 +343,6 @@ final class LetterboxConfiguration { } /** - * Whether size compat mode is disabled after an orientation change request comes from the app. - * This value is controlled via {@link android.provider.DeviceConfig}. - */ - // TODO(b/270356567) Clean up this flag - boolean isSizeCompatModeDisabledAfterOrientationChangeFromApp() { - return mDeviceConfig.getFlag( - KEY_DISABLE_SIZE_COMPAT_MODE_AFTER_ORIENTATION_CHANGE_FROM_APP); - } - - /** * Overrides the aspect ratio of letterbox for fixed orientation. If given value is <= {@link * #MIN_FIXED_ORIENTATION_LETTERBOX_ASPECT_RATIO}, both it and a value of {@link * com.android.internal.R.dimen.config_fixedOrientationLetterboxAspectRatio} will be ignored and diff --git a/services/core/java/com/android/server/wm/LetterboxConfigurationDeviceConfig.java b/services/core/java/com/android/server/wm/LetterboxConfigurationDeviceConfig.java index 1651af328b1f..a739e42410a9 100644 --- a/services/core/java/com/android/server/wm/LetterboxConfigurationDeviceConfig.java +++ b/services/core/java/com/android/server/wm/LetterboxConfigurationDeviceConfig.java @@ -52,11 +52,6 @@ final class LetterboxConfigurationDeviceConfig private static final boolean DEFAULT_VALUE_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY = true; - static final String KEY_DISABLE_SIZE_COMPAT_MODE_AFTER_ORIENTATION_CHANGE_FROM_APP = - "disable_size_compat_mode_after_orientation_change_from_app"; - private static final boolean - DEFAULT_VALUE_DISABLE_SIZE_COMPAT_MODE_AFTER_ORIENTATION_CHANGE_FROM_APP = true; - @VisibleForTesting static final Map<String, Boolean> sKeyToDefaultValueMap = Map.of( KEY_ENABLE_CAMERA_COMPAT_TREATMENT, @@ -68,9 +63,7 @@ final class LetterboxConfigurationDeviceConfig KEY_ENABLE_COMPAT_FAKE_FOCUS, DEFAULT_VALUE_ENABLE_COMPAT_FAKE_FOCUS, KEY_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY, - DEFAULT_VALUE_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY, - KEY_DISABLE_SIZE_COMPAT_MODE_AFTER_ORIENTATION_CHANGE_FROM_APP, - DEFAULT_VALUE_DISABLE_SIZE_COMPAT_MODE_AFTER_ORIENTATION_CHANGE_FROM_APP + DEFAULT_VALUE_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY ); // Whether camera compatibility treatment is enabled. @@ -99,10 +92,6 @@ final class LetterboxConfigurationDeviceConfig private boolean mIsTranslucentLetterboxingAllowed = DEFAULT_VALUE_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY; - // Whether size compat mode is disabled after an orientation change request comes from the app - private boolean mIsSizeCompatModeDisabledAfterOrientationChangeFromApp = - DEFAULT_VALUE_DISABLE_SIZE_COMPAT_MODE_AFTER_ORIENTATION_CHANGE_FROM_APP; - // Set of active device configs that need to be updated in // DeviceConfig.OnPropertiesChangedListener#onPropertiesChanged. private final ArraySet<String> mActiveDeviceConfigsSet = new ArraySet<>(); @@ -152,8 +141,6 @@ final class LetterboxConfigurationDeviceConfig return mIsCompatFakeFocusAllowed; case KEY_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY: return mIsTranslucentLetterboxingAllowed; - case KEY_DISABLE_SIZE_COMPAT_MODE_AFTER_ORIENTATION_CHANGE_FROM_APP: - return mIsSizeCompatModeDisabledAfterOrientationChangeFromApp; default: throw new AssertionError("Unexpected flag name: " + key); } @@ -181,10 +168,6 @@ final class LetterboxConfigurationDeviceConfig case KEY_ENABLE_LETTERBOX_TRANSLUCENT_ACTIVITY: mIsTranslucentLetterboxingAllowed = getDeviceConfig(key, defaultValue); break; - case KEY_DISABLE_SIZE_COMPAT_MODE_AFTER_ORIENTATION_CHANGE_FROM_APP: - mIsSizeCompatModeDisabledAfterOrientationChangeFromApp = - getDeviceConfig(key, defaultValue); - break; default: throw new AssertionError("Unexpected flag name: " + key); } diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java index d3edeaebbf99..5149985f8ff9 100644 --- a/services/core/java/com/android/server/wm/RootWindowContainer.java +++ b/services/core/java/com/android/server/wm/RootWindowContainer.java @@ -1374,7 +1374,8 @@ class RootWindowContainer extends WindowContainer<DisplayContent> void startHomeOnEmptyDisplays(String reason) { forAllTaskDisplayAreas(taskDisplayArea -> { if (taskDisplayArea.topRunningActivity() == null) { - startHomeOnTaskDisplayArea(mCurrentUser, reason, taskDisplayArea, + int userId = mWmService.getUserAssignedToDisplay(taskDisplayArea.getDisplayId()); + startHomeOnTaskDisplayArea(userId, reason, taskDisplayArea, false /* allowInstrumenting */, false /* fromHomeKey */); } }); @@ -1422,7 +1423,9 @@ class RootWindowContainer extends WindowContainer<DisplayContent> Intent homeIntent = null; ActivityInfo aInfo = null; - if (taskDisplayArea == getDefaultTaskDisplayArea()) { + if (taskDisplayArea == getDefaultTaskDisplayArea() + || mWmService.shouldPlacePrimaryHomeOnDisplay( + taskDisplayArea.getDisplayId(), userId)) { homeIntent = mService.getHomeIntent(); aInfo = resolveHomeActivity(userId, homeIntent); } else if (shouldPlaceSecondaryHomeOnDisplayArea(taskDisplayArea)) { @@ -1589,7 +1592,8 @@ class RootWindowContainer extends WindowContainer<DisplayContent> r.moveFocusableActivityToTop(myReason); return resumeFocusedTasksTopActivities(r.getRootTask(), prev, null); } - return startHomeOnTaskDisplayArea(mCurrentUser, myReason, taskDisplayArea, + int userId = mWmService.getUserAssignedToDisplay(taskDisplayArea.getDisplayId()); + return startHomeOnTaskDisplayArea(userId, myReason, taskDisplayArea, false /* allowInstrumenting */, false /* fromHomeKey */); } @@ -1667,8 +1671,9 @@ class RootWindowContainer extends WindowContainer<DisplayContent> final int displayId = taskDisplayArea != null ? taskDisplayArea.getDisplayId() : INVALID_DISPLAY; if (displayId == DEFAULT_DISPLAY || (displayId != INVALID_DISPLAY - && displayId == mService.mVr2dDisplayId)) { - // No restrictions to default display or vr 2d display. + && (displayId == mService.mVr2dDisplayId + || mWmService.shouldPlacePrimaryHomeOnDisplay(displayId)))) { + // No restrictions to default display, vr 2d display or main display for visible users. return true; } diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 40c6c464f433..8baf048980ed 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -3615,6 +3615,19 @@ public class WindowManagerService extends IWindowManager.Stub return mUmInternal.isUserVisible(userId); } + @UserIdInt int getUserAssignedToDisplay(int displayId) { + return mUmInternal.getUserAssignedToDisplay(displayId); + } + + boolean shouldPlacePrimaryHomeOnDisplay(int displayId) { + int userId = mUmInternal.getUserAssignedToDisplay(displayId); + return shouldPlacePrimaryHomeOnDisplay(displayId, userId); + } + + boolean shouldPlacePrimaryHomeOnDisplay(int displayId, int userId) { + return mUmInternal.getMainDisplayAssignedToUser(userId) == displayId; + } + public void enableScreenAfterBoot() { synchronized (mGlobalLock) { ProtoLog.i(WM_DEBUG_BOOT, "enableScreenAfterBoot: mDisplayEnabled=%b " diff --git a/services/credentials/java/com/android/server/credentials/CredentialManagerService.java b/services/credentials/java/com/android/server/credentials/CredentialManagerService.java index dd180d0ae4e4..6793800364de 100644 --- a/services/credentials/java/com/android/server/credentials/CredentialManagerService.java +++ b/services/credentials/java/com/android/server/credentials/CredentialManagerService.java @@ -196,25 +196,36 @@ public final class CredentialManagerService return; } - CredentialManagerServiceImpl serviceToBeRemoved = null; + List<CredentialManagerServiceImpl> servicesToBeRemoved = new ArrayList<>(); for (CredentialManagerServiceImpl service : services) { if (service != null) { CredentialProviderInfo credentialProviderInfo = service.getCredentialProviderInfo(); ComponentName componentName = credentialProviderInfo.getServiceInfo().getComponentName(); if (packageName.equals(componentName.getPackageName())) { - serviceToBeRemoved = service; - removeServiceFromMultiModeSettings(componentName.flattenToString(), userId); - break; + servicesToBeRemoved.add(service); } } } - if (serviceToBeRemoved != null) { + + // Iterate over all the services to be removed, and remove them from the user configurable + // services cache, the system services cache as well as the setting key-value pair. + for (CredentialManagerServiceImpl serviceToBeRemoved : servicesToBeRemoved) { removeServiceFromCache(serviceToBeRemoved, userId); + removeServiceFromSystemServicesCache(serviceToBeRemoved, userId); + removeServiceFromMultiModeSettings(serviceToBeRemoved.getComponentName() + .flattenToString(), userId); CredentialDescriptionRegistry.forUser(userId) .evictProviderWithPackageName(serviceToBeRemoved.getServicePackageName()); } - // TODO("Iterate over system services and remove if needed") + } + + @GuardedBy("mLock") + private void removeServiceFromSystemServicesCache( + CredentialManagerServiceImpl serviceToBeRemoved, int userId) { + if (mSystemServicesCacheList.get(userId) != null) { + mSystemServicesCacheList.get(userId).remove(serviceToBeRemoved); + } } @GuardedBy("mLock") diff --git a/services/credentials/java/com/android/server/credentials/CredentialManagerServiceImpl.java b/services/credentials/java/com/android/server/credentials/CredentialManagerServiceImpl.java index 808fdaea3de6..379800b31597 100644 --- a/services/credentials/java/com/android/server/credentials/CredentialManagerServiceImpl.java +++ b/services/credentials/java/com/android/server/credentials/CredentialManagerServiceImpl.java @@ -38,7 +38,6 @@ public final class CredentialManagerServiceImpl extends AbstractPerUserSystemService<CredentialManagerServiceImpl, CredentialManagerService> { private static final String TAG = "CredManSysServiceImpl"; - // TODO(b/210531) : Make final when update flow is fixed @GuardedBy("mLock") @NonNull private CredentialProviderInfo mInfo; @@ -72,7 +71,6 @@ public final class CredentialManagerServiceImpl extends @GuardedBy("mLock") protected ServiceInfo newServiceInfoLocked(@NonNull ComponentName serviceComponent) throws PackageManager.NameNotFoundException { - // TODO : Test update flows with multiple providers if (mInfo != null) { Slog.i(TAG, "newServiceInfoLocked, mInfo not null : " + mInfo.getServiceInfo().getComponentName().flattenToString() + " , " diff --git a/services/credentials/java/com/android/server/credentials/CredentialManagerUi.java b/services/credentials/java/com/android/server/credentials/CredentialManagerUi.java index 0dee7a44375d..c2b51029778e 100644 --- a/services/credentials/java/com/android/server/credentials/CredentialManagerUi.java +++ b/services/credentials/java/com/android/server/credentials/CredentialManagerUi.java @@ -47,7 +47,7 @@ public class CredentialManagerUi { private final CredentialManagerUiCallback mCallbacks; @NonNull private final Context mContext; - // TODO : Use for starting the activity for this user + private final int mUserId; private UiStatus mStatus; diff --git a/services/credentials/java/com/android/server/credentials/ProviderClearSession.java b/services/credentials/java/com/android/server/credentials/ProviderClearSession.java index c1fb92d30fc3..1f0346a2b9d6 100644 --- a/services/credentials/java/com/android/server/credentials/ProviderClearSession.java +++ b/services/credentials/java/com/android/server/credentials/ProviderClearSession.java @@ -62,7 +62,6 @@ public final class ProviderClearSession extends ProviderSession<ClearCredentialS android.credentials.ClearCredentialStateRequest clientRequest, CallingAppInfo callingAppInfo ) { - // TODO: Determine if provider needs to declare clear capability in manifest return new ClearCredentialStateRequest( callingAppInfo, clientRequest.getData()); @@ -95,7 +94,7 @@ public final class ProviderClearSession extends ProviderSession<ClearCredentialS mProviderSessionMetric.collectCandidateFrameworkException(mProviderException.getType()); } mProviderSessionMetric.collectCandidateExceptionStatus(/*hasException=*/true); - updateStatusAndInvokeCallback(toStatus(errorCode), + updateStatusAndInvokeCallback(Status.CANCELED, /*source=*/ CredentialsSource.REMOTE_PROVIDER); } diff --git a/services/credentials/java/com/android/server/credentials/ProviderCreateSession.java b/services/credentials/java/com/android/server/credentials/ProviderCreateSession.java index 4cdc6f445212..16beaa4eb13e 100644 --- a/services/credentials/java/com/android/server/credentials/ProviderCreateSession.java +++ b/services/credentials/java/com/android/server/credentials/ProviderCreateSession.java @@ -167,7 +167,7 @@ public final class ProviderCreateSession extends ProviderSession< mProviderSessionMetric.collectCandidateFrameworkException(mProviderException.getType()); } mProviderSessionMetric.collectCandidateExceptionStatus(/*hasException=*/true); - updateStatusAndInvokeCallback(toStatus(errorCode), + updateStatusAndInvokeCallback(Status.CANCELED, /*source=*/ CredentialsSource.REMOTE_PROVIDER); } diff --git a/services/credentials/java/com/android/server/credentials/ProviderGetSession.java b/services/credentials/java/com/android/server/credentials/ProviderGetSession.java index 8070fa7ca9aa..1e80703378e0 100644 --- a/services/credentials/java/com/android/server/credentials/ProviderGetSession.java +++ b/services/credentials/java/com/android/server/credentials/ProviderGetSession.java @@ -220,7 +220,7 @@ public final class ProviderGetSession extends ProviderSession<BeginGetCredential mProviderSessionMetric.collectCandidateFrameworkException(mProviderException.getType()); } mProviderSessionMetric.collectCandidateExceptionStatus(/*hasException=*/true); - updateStatusAndInvokeCallback(toStatus(errorCode), + updateStatusAndInvokeCallback(Status.CANCELED, /*source=*/ CredentialsSource.REMOTE_PROVIDER); } diff --git a/services/credentials/java/com/android/server/credentials/ProviderSession.java b/services/credentials/java/com/android/server/credentials/ProviderSession.java index 73fdc1ce2635..27b78a4b7b15 100644 --- a/services/credentials/java/com/android/server/credentials/ProviderSession.java +++ b/services/credentials/java/com/android/server/credentials/ProviderSession.java @@ -110,9 +110,7 @@ public abstract class ProviderSession<T, R> * and is ready to return the final credential back to the user. */ public static boolean isCompletionStatus(Status status) { - return status == Status.CREDENTIAL_RECEIVED_FROM_INTENT - || status == Status.CREDENTIAL_RECEIVED_FROM_SELECTION - || status == Status.COMPLETE; + return status == Status.COMPLETE || status == Status.EMPTY_RESPONSE; } /** @@ -151,26 +149,17 @@ public abstract class ProviderSession<T, R> mProviderSessionUid = MetricUtilities.getPackageUid(mContext, mComponentName); } - /** Provider status at various states of the request session. */ - // TODO: Review status values, and adjust where needed + /** Provider status at various states of the provider session. */ enum Status { NOT_STARTED, PENDING, - REQUIRES_AUTHENTICATION, CREDENTIALS_RECEIVED, SERVICE_DEAD, - CREDENTIAL_RECEIVED_FROM_INTENT, - PENDING_INTENT_INVOKED, - CREDENTIAL_RECEIVED_FROM_SELECTION, - SAVE_ENTRIES_RECEIVED, CANCELED, - NO_CREDENTIALS, EMPTY_RESPONSE, NO_CREDENTIALS_FROM_AUTH_ENTRY, COMPLETE - } - - /** Converts exception to a provider session status. */ - @NonNull - public static Status toStatus(int errorCode) { - // TODO : Add more mappings as more flows are supported - return Status.CANCELED; + SAVE_ENTRIES_RECEIVED, + CANCELED, + EMPTY_RESPONSE, + NO_CREDENTIALS_FROM_AUTH_ENTRY, + COMPLETE } protected static String generateUniqueId() { diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyCacheImpl.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyCacheImpl.java index c681b884d2ed..522ee341010b 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyCacheImpl.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyCacheImpl.java @@ -25,7 +25,9 @@ import android.util.SparseIntArray; import com.android.internal.annotations.GuardedBy; +import java.util.HashSet; import java.util.Map; +import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; /** @@ -48,6 +50,13 @@ public class DevicePolicyCacheImpl extends DevicePolicyCache { @GuardedBy("mLock") private int mScreenCaptureDisallowedUser = UserHandle.USER_NULL; + /** + * Indicates if screen capture is disallowed on a specific user or all users if + * it contains {@link UserHandle#USER_ALL}. + */ + @GuardedBy("mLock") + private Set<Integer> mScreenCaptureDisallowedUsers = new HashSet<>(); + @GuardedBy("mLock") private final SparseIntArray mPasswordQuality = new SparseIntArray(); @@ -70,9 +79,21 @@ public class DevicePolicyCacheImpl extends DevicePolicyCache { @Override public boolean isScreenCaptureAllowed(int userHandle) { + if (DevicePolicyManagerService.isPolicyEngineForFinanceFlagEnabled()) { + return isScreenCaptureAllowedInPolicyEngine(userHandle); + } else { + synchronized (mLock) { + return mScreenCaptureDisallowedUser != UserHandle.USER_ALL + && mScreenCaptureDisallowedUser != userHandle; + } + } + } + + private boolean isScreenCaptureAllowedInPolicyEngine(int userHandle) { + // This won't work if resolution mechanism is not strictest applies, but it's ok for now. synchronized (mLock) { - return mScreenCaptureDisallowedUser != UserHandle.USER_ALL - && mScreenCaptureDisallowedUser != userHandle; + return !mScreenCaptureDisallowedUsers.contains(userHandle) + && !mScreenCaptureDisallowedUsers.contains(UserHandle.USER_ALL); } } @@ -88,6 +109,16 @@ public class DevicePolicyCacheImpl extends DevicePolicyCache { } } + public void setScreenCaptureDisallowedUser(int userHandle, boolean disallowed) { + synchronized (mLock) { + if (disallowed) { + mScreenCaptureDisallowedUsers.add(userHandle); + } else { + mScreenCaptureDisallowedUsers.remove(userHandle); + } + } + } + @Override public int getPasswordQuality(@UserIdInt int userHandle) { synchronized (mLock) { @@ -151,7 +182,11 @@ public class DevicePolicyCacheImpl extends DevicePolicyCache { synchronized (mLock) { pw.println("Device policy cache:"); pw.increaseIndent(); - pw.println("Screen capture disallowed user: " + mScreenCaptureDisallowedUser); + if (DevicePolicyManagerService.isPolicyEngineForFinanceFlagEnabled()) { + pw.println("Screen capture disallowed users: " + mScreenCaptureDisallowedUsers); + } else { + pw.println("Screen capture disallowed user: " + mScreenCaptureDisallowedUser); + } pw.println("Password quality: " + mPasswordQuality); pw.println("Permission policy: " + mPermissionPolicy); pw.println("Admin can grant sensors permission: " + mCanGrantSensorsPermissions.get()); diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java index 0c4830afafcc..641a03b931c4 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java @@ -546,8 +546,7 @@ final class DevicePolicyEngine { if (hasLocalPolicyLocked(policyDefinition, userId)) { resolvedValue = getLocalPolicyStateLocked( policyDefinition, userId).getCurrentResolvedPolicy(); - } - if (hasGlobalPolicyLocked(policyDefinition)) { + } else if (hasGlobalPolicyLocked(policyDefinition)) { resolvedValue = getGlobalPolicyStateLocked( policyDefinition).getCurrentResolvedPolicy(); } diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 3578b16d62c6..debfedcd1806 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -3435,7 +3435,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { // Given that the parent user has just started, profile should be locked. updatePersonalAppsSuspension(profileUserHandle, false /* unlocked */); } else { - suspendPersonalAppsInternal(userHandle, false); + suspendPersonalAppsInternal(userHandle, profileUserHandle, false); } } @@ -7714,7 +7714,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } // Unsuspend personal apps if needed. - suspendPersonalAppsInternal(parentId, false); + suspendPersonalAppsInternal(parentId, getManagedUserId(parentId), false); // Notify FRP agent, LSS and WindowManager to ensure they don't hold on to stale policies. final int frpAgentUid = getFrpManagementAgentUid(); @@ -8642,7 +8642,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } CallerIdentity caller; - if (isPermissionCheckFlagEnabled()) { + if (isPolicyEngineForFinanceFlagEnabled()) { caller = getCallerIdentity(who, callerPackage); } else { Objects.requireNonNull(who, "ComponentName is null"); @@ -8656,23 +8656,47 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } } - synchronized (getLockObject()) { - ActiveAdmin ap; - if (isPermissionCheckFlagEnabled()) { - int callerUserId = Binder.getCallingUserHandle().getIdentifier(); - int targetUserId = parent ? getProfileParentId(callerUserId) : callerUserId; - ap = enforcePermissionAndGetEnforcingAdmin( - who, MANAGE_DEVICE_POLICY_SCREEN_CAPTURE, caller.getPackageName(), - targetUserId).getActiveAdmin(); + if (isPolicyEngineForFinanceFlagEnabled()) { + int callerUserId = Binder.getCallingUserHandle().getIdentifier(); + int targetUserId = parent ? getProfileParentId(callerUserId) : callerUserId; + EnforcingAdmin admin = enforcePermissionAndGetEnforcingAdmin( + who, MANAGE_DEVICE_POLICY_SCREEN_CAPTURE, caller.getPackageName(), + targetUserId); + if ((parent && isProfileOwnerOfOrganizationOwnedDevice(caller)) + || isDefaultDeviceOwner(caller)) { + if (disabled) { + mDevicePolicyEngine.setGlobalPolicy( + PolicyDefinition.SCREEN_CAPTURE_DISABLED, + admin, + new BooleanPolicyValue(disabled)); + } else { + mDevicePolicyEngine.removeGlobalPolicy( + PolicyDefinition.SCREEN_CAPTURE_DISABLED, + admin); + } } else { - ap = getParentOfAdminIfRequired( - getProfileOwnerOrDefaultDeviceOwnerLocked(caller.getUserId()), parent); + if (disabled) { + mDevicePolicyEngine.setLocalPolicy( + PolicyDefinition.SCREEN_CAPTURE_DISABLED, + admin, + new BooleanPolicyValue(disabled), + callerUserId); + } else { + mDevicePolicyEngine.removeLocalPolicy( + PolicyDefinition.SCREEN_CAPTURE_DISABLED, + admin, + callerUserId); + } } - - if (ap.disableScreenCapture != disabled) { - ap.disableScreenCapture = disabled; - saveSettingsLocked(caller.getUserId()); - pushScreenCapturePolicy(caller.getUserId()); + } else { + synchronized (getLockObject()) { + ActiveAdmin ap = getParentOfAdminIfRequired( + getProfileOwnerOrDefaultDeviceOwnerLocked(caller.getUserId()), parent); + if (ap.disableScreenCapture != disabled) { + ap.disableScreenCapture = disabled; + saveSettingsLocked(caller.getUserId()); + pushScreenCapturePolicy(caller.getUserId()); + } } } DevicePolicyEventLogger @@ -8686,6 +8710,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { // DO or COPE PO on the parent profile, then this takes precedence as screen capture will // be disabled device-wide. private void pushScreenCapturePolicy(int adminUserId) { + if (isPolicyEngineForFinanceFlagEnabled()) { + return; + } // Update screen capture device-wide if disabled by the DO or COPE PO on the parent profile. // TODO(b/261999445): remove ActiveAdmin admin; @@ -8727,8 +8754,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } /** - * Returns whether or not screen capture is disabled for a given admin, or disabled for any - * active admin (if given admin is null). + * Returns whether or not screen capture is disabled for any active admin. */ @Override public boolean getScreenCaptureDisabled(ComponentName who, int userHandle, boolean parent) { @@ -8742,7 +8768,14 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { Preconditions.checkCallAuthorization( isProfileOwnerOfOrganizationOwnedDevice(getCallerIdentity().getUserId())); } - return !mPolicyCache.isScreenCaptureAllowed(userHandle); + if (isPolicyEngineForFinanceFlagEnabled()) { + Boolean disallowed = mDevicePolicyEngine.getResolvedPolicy( + PolicyDefinition.SCREEN_CAPTURE_DISABLED, + userHandle); + return disallowed != null && disallowed; + } else { + return !mPolicyCache.isScreenCaptureAllowed(userHandle); + } } private void updateScreenCaptureDisabled() { @@ -16306,17 +16339,27 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { return result; } } else if (DevicePolicyManager.POLICY_DISABLE_SCREEN_CAPTURE.equals(restriction)) { - synchronized (getLockObject()) { - final DevicePolicyData policy = getUserData(userId); - final int N = policy.mAdminList.size(); - for (int i = 0; i < N; i++) { - final ActiveAdmin admin = policy.mAdminList.get(i); - if (admin.disableScreenCapture) { - result = new Bundle(); - result.putInt(Intent.EXTRA_USER_ID, userId); - result.putParcelable(DevicePolicyManager.EXTRA_DEVICE_ADMIN, - admin.info.getComponent()); - return result; + if (isPolicyEngineForFinanceFlagEnabled()) { + Boolean value = mDevicePolicyEngine.getResolvedPolicy( + PolicyDefinition.SCREEN_CAPTURE_DISABLED, userId); + if (value != null && value) { + result = new Bundle(); + result.putInt(Intent.EXTRA_USER_ID, userId); + return result; + } + } else { + synchronized (getLockObject()) { + final DevicePolicyData policy = getUserData(userId); + final int N = policy.mAdminList.size(); + for (int i = 0; i < N; i++) { + final ActiveAdmin admin = policy.mAdminList.get(i); + if (admin.disableScreenCapture) { + result = new Bundle(); + result.putInt(Intent.EXTRA_USER_ID, userId); + result.putParcelable(DevicePolicyManager.EXTRA_DEVICE_ADMIN, + admin.info.getComponent()); + return result; + } } } } @@ -20802,7 +20845,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } final int parentUserId = getProfileParentId(profileUserId); - suspendPersonalAppsInternal(parentUserId, shouldSuspend); + suspendPersonalAppsInternal(parentUserId, profileUserId, shouldSuspend); return shouldSuspend; } @@ -20886,23 +20929,40 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { return notificationState; } - private void suspendPersonalAppsInternal(int userId, boolean suspended) { - if (getUserData(userId).mAppsSuspended == suspended) { + private void suspendPersonalAppsInternal( + int parentUserId, int profileUserId, boolean suspended) { + if (getUserData(parentUserId).mAppsSuspended == suspended) { return; } Slogf.i(LOG_TAG, "%s personal apps for user %d", suspended ? "Suspending" : "Unsuspending", - userId); + parentUserId); - if (suspended) { - suspendPersonalAppsInPackageManager(userId); + if (isPolicyEngineForFinanceFlagEnabled()) { + // TODO(b/280602237): migrate properly + ActiveAdmin profileOwner = getProfileOwnerAdminLocked(profileUserId); + if (profileOwner != null) { + EnforcingAdmin admin = EnforcingAdmin.createEnterpriseEnforcingAdmin( + profileOwner.info.getComponent(), + profileUserId, + profileOwner); + mDevicePolicyEngine.setLocalPolicy( + PolicyDefinition.PERSONAL_APPS_SUSPENDED, + admin, + new BooleanPolicyValue(suspended), + parentUserId); + } } else { - mInjector.getPackageManagerInternal().unsuspendForSuspendingPackage( - PLATFORM_PACKAGE_NAME, userId); + if (suspended) { + suspendPersonalAppsInPackageManager(parentUserId); + } else { + mInjector.getPackageManagerInternal().unsuspendForSuspendingPackage( + PLATFORM_PACKAGE_NAME, parentUserId); + } } synchronized (getLockObject()) { - getUserData(userId).mAppsSuspended = suspended; - saveSettingsLocked(userId); + getUserData(parentUserId).mAppsSuspended = suspended; + saveSettingsLocked(parentUserId); } } @@ -23646,7 +23706,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { DEFAULT_VALUE_PERMISSION_BASED_ACCESS_FLAG); } - private boolean isPolicyEngineForFinanceFlagEnabled() { + static boolean isPolicyEngineForFinanceFlagEnabled() { return DeviceConfig.getBoolean( NAMESPACE_DEVICE_POLICY_MANAGER, ENABLE_DEVICE_POLICY_ENGINE_FOR_FINANCE_FLAG, diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/PolicyDefinition.java b/services/devicepolicy/java/com/android/server/devicepolicy/PolicyDefinition.java index 43a2c9bbf5c5..8030bb7b4fd9 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/PolicyDefinition.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/PolicyDefinition.java @@ -315,6 +315,22 @@ final class PolicyDefinition<V> { (Set<String> value, Context context, Integer userId, PolicyKey policyKey) -> true, new StringSetPolicySerializer()); + + static PolicyDefinition<Boolean> SCREEN_CAPTURE_DISABLED = new PolicyDefinition<>( + new NoArgsPolicyKey(DevicePolicyIdentifiers.SCREEN_CAPTURE_DISABLED_POLICY), + TRUE_MORE_RESTRICTIVE, + /* flags= */ 0, + PolicyEnforcerCallbacks::setScreenCaptureDisabled, + new BooleanPolicySerializer()); + + static PolicyDefinition<Boolean> PERSONAL_APPS_SUSPENDED = new PolicyDefinition<>( + new NoArgsPolicyKey(DevicePolicyIdentifiers.PERSONAL_APPS_SUSPENDED_POLICY), + new MostRecent<>(), + POLICY_FLAG_LOCAL_ONLY_POLICY, + PolicyEnforcerCallbacks::setPersonalAppsSuspended, + new BooleanPolicySerializer()); + + private static final Map<String, PolicyDefinition<?>> POLICY_DEFINITIONS = new HashMap<>(); private static Map<String, Integer> USER_RESTRICTION_FLAGS = new HashMap<>(); @@ -342,6 +358,10 @@ final class PolicyDefinition<V> { GENERIC_ACCOUNT_MANAGEMENT_DISABLED); POLICY_DEFINITIONS.put(DevicePolicyIdentifiers.PERMITTED_INPUT_METHODS_POLICY, PERMITTED_INPUT_METHODS); + POLICY_DEFINITIONS.put(DevicePolicyIdentifiers.SCREEN_CAPTURE_DISABLED_POLICY, + SCREEN_CAPTURE_DISABLED); + POLICY_DEFINITIONS.put(DevicePolicyIdentifiers.PERSONAL_APPS_SUSPENDED_POLICY, + PERSONAL_APPS_SUSPENDED); // User Restriction Policies USER_RESTRICTION_FLAGS.put(UserManager.DISALLOW_MODIFY_ACCOUNTS, /* flags= */ 0); diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/PolicyEnforcerCallbacks.java b/services/devicepolicy/java/com/android/server/devicepolicy/PolicyEnforcerCallbacks.java index 289098e87550..454337fcf141 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/PolicyEnforcerCallbacks.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/PolicyEnforcerCallbacks.java @@ -16,9 +16,12 @@ package com.android.server.devicepolicy; +import static com.android.server.pm.PackageManagerService.PLATFORM_PACKAGE_NAME; + import android.annotation.NonNull; import android.annotation.Nullable; import android.app.AppGlobals; +import android.app.admin.DevicePolicyCache; import android.app.admin.DevicePolicyManager; import android.app.admin.IntentFilterPolicyKey; import android.app.admin.LockTaskPolicy; @@ -35,13 +38,17 @@ import android.content.pm.PackageManager; import android.content.pm.PackageManagerInternal; import android.os.Binder; import android.os.RemoteException; +import android.os.ServiceManager; import android.os.UserHandle; import android.permission.AdminPermissionControlParams; import android.permission.PermissionControllerManager; import android.provider.Settings; import android.util.ArraySet; import android.util.Slog; +import android.view.IWindowManager; +import com.android.internal.os.BackgroundThread; +import com.android.internal.util.ArrayUtils; import com.android.server.LocalServices; import com.android.server.pm.UserManagerInternal; import com.android.server.utils.Slogf; @@ -244,4 +251,55 @@ final class PolicyEnforcerCallbacks { packageName, hide != null && hide, userId); })); } + + static boolean setScreenCaptureDisabled( + @Nullable Boolean disabled, @NonNull Context context, int userId, + @NonNull PolicyKey policyKey) { + Binder.withCleanCallingIdentity(() -> { + DevicePolicyCache cache = DevicePolicyCache.getInstance(); + if (cache instanceof DevicePolicyCacheImpl) { + DevicePolicyCacheImpl parsedCache = (DevicePolicyCacheImpl) cache; + parsedCache.setScreenCaptureDisallowedUser( + userId, disabled != null && disabled); + updateScreenCaptureDisabled(); + } + }); + return true; + } + + private static void updateScreenCaptureDisabled() { + BackgroundThread.getHandler().post(() -> { + try { + IWindowManager.Stub + .asInterface(ServiceManager.getService(Context.WINDOW_SERVICE)) + .refreshScreenCaptureDisabled(); + } catch (RemoteException e) { + Slogf.w(LOG_TAG, "Unable to notify WindowManager.", e); + } + }); + } + + static boolean setPersonalAppsSuspended( + @Nullable Boolean suspended, @NonNull Context context, int userId, + @NonNull PolicyKey policyKey) { + Binder.withCleanCallingIdentity(() -> { + if (suspended != null && suspended) { + suspendPersonalAppsInPackageManager(context, userId); + } else { + LocalServices.getService(PackageManagerInternal.class) + .unsuspendForSuspendingPackage(PLATFORM_PACKAGE_NAME, userId); + } + }); + return true; + } + + private static void suspendPersonalAppsInPackageManager(Context context, int userId) { + final String[] appsToSuspend = PersonalAppsSuspensionHelper.forUser(context, userId) + .getPersonalAppsForSuspension(); + final String[] failedApps = LocalServices.getService(PackageManagerInternal.class) + .setPackagesSuspendedByAdmin(userId, appsToSuspend, true); + if (!ArrayUtils.isEmpty(failedApps)) { + Slogf.wtf(LOG_TAG, "Failed to suspend apps: " + String.join(",", failedApps)); + } + } } diff --git a/services/profcollect/src/com/android/server/profcollect/ProfcollectForwardingService.java b/services/profcollect/src/com/android/server/profcollect/ProfcollectForwardingService.java index 475966ea00b8..8f23ae4ff33b 100644 --- a/services/profcollect/src/com/android/server/profcollect/ProfcollectForwardingService.java +++ b/services/profcollect/src/com/android/server/profcollect/ProfcollectForwardingService.java @@ -72,7 +72,7 @@ public final class ProfcollectForwardingService extends SystemService { private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { - if (intent.getAction() == INTENT_UPLOAD_PROFILES) { + if (INTENT_UPLOAD_PROFILES.equals(intent.getAction())) { Log.d(LOG_TAG, "Received broadcast to pack and upload reports"); packAndUploadReport(); } @@ -89,7 +89,7 @@ public final class ProfcollectForwardingService extends SystemService { final IntentFilter filter = new IntentFilter(); filter.addAction(INTENT_UPLOAD_PROFILES); - context.registerReceiver(mBroadcastReceiver, filter); + context.registerReceiver(mBroadcastReceiver, filter, Context.RECEIVER_NOT_EXPORTED); } /** diff --git a/services/tests/RemoteProvisioningServiceTests/src/com/android/server/security/rkp/RemoteProvisioningRegistrationTest.java b/services/tests/RemoteProvisioningServiceTests/src/com/android/server/security/rkp/RemoteProvisioningRegistrationTest.java index 1dcd0b936c86..df7be515774a 100644 --- a/services/tests/RemoteProvisioningServiceTests/src/com/android/server/security/rkp/RemoteProvisioningRegistrationTest.java +++ b/services/tests/RemoteProvisioningServiceTests/src/com/android/server/security/rkp/RemoteProvisioningRegistrationTest.java @@ -23,8 +23,10 @@ import static org.mockito.AdditionalAnswers.answerVoid; import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.argThat; +import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.contains; import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; @@ -32,6 +34,7 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; +import android.os.Binder; import android.os.CancellationSignal; import android.os.OperationCanceledException; import android.os.OutcomeReceiver; @@ -101,8 +104,10 @@ public class RemoteProvisioningRegistrationTest { .when(mRegistrationProxy).getKeyAsync(eq(42), any(), any(), any()); IGetKeyCallback callback = mock(IGetKeyCallback.class); + doReturn(new Binder()).when(callback).asBinder(); mRegistration.getKey(42, callback); verify(callback).onSuccess(matches(expectedKey)); + verify(callback, atLeastOnce()).asBinder(); verifyNoMoreInteractions(callback); } @@ -114,8 +119,10 @@ public class RemoteProvisioningRegistrationTest { executor.execute(() -> receiver.onError(expectedException)))) .when(mRegistrationProxy).getKeyAsync(eq(0), any(), any(), any()); IGetKeyCallback callback = mock(IGetKeyCallback.class); + doReturn(new Binder()).when(callback).asBinder(); mRegistration.getKey(0, callback); verify(callback).onError(eq(IGetKeyCallback.ErrorCode.ERROR_UNKNOWN), eq("oops!")); + verify(callback, atLeastOnce()).asBinder(); verifyNoMoreInteractions(callback); } @@ -140,18 +147,28 @@ public class RemoteProvisioningRegistrationTest { executor.execute(() -> receiver.onError(expectedException)))) .when(mRegistrationProxy).getKeyAsync(eq(0), any(), any(), any()); IGetKeyCallback callback = mock(IGetKeyCallback.class); + doReturn(new Binder()).when(callback).asBinder(); mRegistration.getKey(0, callback); verify(callback).onError(eq(error), contains(errorField.getName())); + verify(callback, atLeastOnce()).asBinder(); verifyNoMoreInteractions(callback); } } @Test public void getKeyCancelDuringProxyOperation() throws Exception { + final Binder theBinder = new Binder(); IGetKeyCallback callback = mock(IGetKeyCallback.class); + doReturn(theBinder).when(callback).asBinder(); doAnswer( answerGetKeyAsync((keyId, cancelSignal, executor, receiver) -> { - mRegistration.cancelGetKey(callback); + // Use a different callback object to ensure that the callback equivalence + // relies on the actual IBinder object. + IGetKeyCallback differentCallback = mock(IGetKeyCallback.class); + doReturn(theBinder).when(differentCallback).asBinder(); + mRegistration.cancelGetKey(differentCallback); + verify(differentCallback, atLeastOnce()).asBinder(); + verifyNoMoreInteractions(differentCallback); assertThat(cancelSignal.isCanceled()).isTrue(); executor.execute(() -> receiver.onError(new OperationCanceledException())); })) @@ -159,18 +176,21 @@ public class RemoteProvisioningRegistrationTest { mRegistration.getKey(Integer.MAX_VALUE, callback); verify(callback).onCancel(); + verify(callback, atLeastOnce()).asBinder(); verifyNoMoreInteractions(callback); } @Test public void cancelGetKeyWithInvalidCallback() throws Exception { IGetKeyCallback callback = mock(IGetKeyCallback.class); + doReturn(new Binder()).when(callback).asBinder(); assertThrows(IllegalArgumentException.class, () -> mRegistration.cancelGetKey(callback)); } @Test public void getKeyRejectsDuplicateCallback() throws Exception { IGetKeyCallback callback = mock(IGetKeyCallback.class); + doReturn(new Binder()).when(callback).asBinder(); doAnswer( answerGetKeyAsync((keyId, cancelSignal, executor, receiver) -> { assertThrows(IllegalArgumentException.class, () -> @@ -181,12 +201,14 @@ public class RemoteProvisioningRegistrationTest { mRegistration.getKey(0, callback); verify(callback, times(1)).onSuccess(any()); + verify(callback, atLeastOnce()).asBinder(); verifyNoMoreInteractions(callback); } @Test public void getKeyCancelAfterCompleteFails() throws Exception { IGetKeyCallback callback = mock(IGetKeyCallback.class); + doReturn(new Binder()).when(callback).asBinder(); doAnswer( answerGetKeyAsync((keyId, cancelSignal, executor, receiver) -> executor.execute(() -> @@ -197,6 +219,7 @@ public class RemoteProvisioningRegistrationTest { mRegistration.getKey(Integer.MIN_VALUE, callback); verify(callback).onSuccess(any()); assertThrows(IllegalArgumentException.class, () -> mRegistration.cancelGetKey(callback)); + verify(callback, atLeastOnce()).asBinder(); verifyNoMoreInteractions(callback); } @@ -208,10 +231,12 @@ public class RemoteProvisioningRegistrationTest { .getKeyAsync(anyInt(), any(), any(), any()); IGetKeyCallback callback = mock(IGetKeyCallback.class); + doReturn(new Binder()).when(callback).asBinder(); mRegistration.getKey(0, callback); verify(callback).onError(eq(IGetKeyCallback.ErrorCode.ERROR_UNKNOWN), eq(expectedException.getMessage())); assertThrows(IllegalArgumentException.class, () -> mRegistration.cancelGetKey(callback)); + verify(callback, atLeastOnce()).asBinder(); verifyNoMoreInteractions(callback); } @@ -224,8 +249,10 @@ public class RemoteProvisioningRegistrationTest { .storeUpgradedKeyAsync(any(), any(), any(), any()); IStoreUpgradedKeyCallback callback = mock(IStoreUpgradedKeyCallback.class); + doReturn(new Binder()).when(callback).asBinder(); mRegistration.storeUpgradedKeyAsync(new byte[0], new byte[0], callback); verify(callback).onSuccess(); + verify(callback, atLeastOnce()).asBinder(); verifyNoMoreInteractions(callback); } @@ -239,8 +266,10 @@ public class RemoteProvisioningRegistrationTest { .storeUpgradedKeyAsync(any(), any(), any(), any()); IStoreUpgradedKeyCallback callback = mock(IStoreUpgradedKeyCallback.class); + doReturn(new Binder()).when(callback).asBinder(); mRegistration.storeUpgradedKeyAsync(new byte[0], new byte[0], callback); verify(callback).onError(errorString); + verify(callback, atLeastOnce()).asBinder(); verifyNoMoreInteractions(callback); } @@ -252,14 +281,17 @@ public class RemoteProvisioningRegistrationTest { .storeUpgradedKeyAsync(any(), any(), any(), any()); IStoreUpgradedKeyCallback callback = mock(IStoreUpgradedKeyCallback.class); + doReturn(new Binder()).when(callback).asBinder(); mRegistration.storeUpgradedKeyAsync(new byte[0], new byte[0], callback); verify(callback).onError(errorString); + verify(callback, atLeastOnce()).asBinder(); verifyNoMoreInteractions(callback); } @Test public void storeUpgradedKeyDuplicateCallback() throws Exception { IStoreUpgradedKeyCallback callback = mock(IStoreUpgradedKeyCallback.class); + doReturn(new Binder()).when(callback).asBinder(); doAnswer( answerStoreUpgradedKeyAsync((oldBlob, newBlob, executor, receiver) -> { @@ -273,6 +305,7 @@ public class RemoteProvisioningRegistrationTest { mRegistration.storeUpgradedKeyAsync(new byte[0], new byte[0], callback); verify(callback).onSuccess(); + verify(callback, atLeastOnce()).asBinder(); verifyNoMoreInteractions(callback); } diff --git a/services/tests/mockingservicestests/src/com/android/server/job/JobNotificationCoordinatorTest.java b/services/tests/mockingservicestests/src/com/android/server/job/JobNotificationCoordinatorTest.java index e24354f26d8b..27a3adc4ace7 100644 --- a/services/tests/mockingservicestests/src/com/android/server/job/JobNotificationCoordinatorTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/job/JobNotificationCoordinatorTest.java @@ -90,7 +90,7 @@ public class JobNotificationCoordinatorTest { @Test public void testParameterValidation() { final JobNotificationCoordinator coordinator = new JobNotificationCoordinator(); - final JobServiceContext jsc = mock(JobServiceContext.class); + final JobServiceContext jsc = createJobServiceContext(); final int uid = 10123; final int pid = 42; final int notificationId = 23; @@ -137,7 +137,7 @@ public class JobNotificationCoordinatorTest { @Test public void testSingleJob_DetachOnStop() { final JobNotificationCoordinator coordinator = new JobNotificationCoordinator(); - final JobServiceContext jsc = mock(JobServiceContext.class); + final JobServiceContext jsc = createJobServiceContext(); final Notification notification = createValidNotification(); final int uid = 10123; final int pid = 42; @@ -159,7 +159,7 @@ public class JobNotificationCoordinatorTest { @Test public void testSingleJob_RemoveOnStop() { final JobNotificationCoordinator coordinator = new JobNotificationCoordinator(); - final JobServiceContext jsc = mock(JobServiceContext.class); + final JobServiceContext jsc = createJobServiceContext(); final Notification notification = createValidNotification(); final int uid = 10123; final int pid = 42; @@ -181,7 +181,7 @@ public class JobNotificationCoordinatorTest { @Test public void testSingleJob_EnqueueDifferentNotificationId_DetachOnStop() { final JobNotificationCoordinator coordinator = new JobNotificationCoordinator(); - final JobServiceContext jsc = mock(JobServiceContext.class); + final JobServiceContext jsc = createJobServiceContext(); final Notification notification1 = createValidNotification(); final Notification notification2 = createValidNotification(); final int uid = 10123; @@ -210,7 +210,7 @@ public class JobNotificationCoordinatorTest { @Test public void testSingleJob_EnqueueDifferentNotificationId_RemoveOnStop() { final JobNotificationCoordinator coordinator = new JobNotificationCoordinator(); - final JobServiceContext jsc = mock(JobServiceContext.class); + final JobServiceContext jsc = createJobServiceContext(); final Notification notification1 = createValidNotification(); final Notification notification2 = createValidNotification(); final int uid = 10123; @@ -239,7 +239,7 @@ public class JobNotificationCoordinatorTest { @Test public void testSingleJob_EnqueueSameNotificationId() { final JobNotificationCoordinator coordinator = new JobNotificationCoordinator(); - final JobServiceContext jsc = mock(JobServiceContext.class); + final JobServiceContext jsc = createJobServiceContext(); final Notification notification1 = createValidNotification(); final Notification notification2 = createValidNotification(); final int uid = 10123; @@ -267,8 +267,8 @@ public class JobNotificationCoordinatorTest { @Test public void testMultipleJobs_sameApp_EnqueueDifferentNotificationId() { final JobNotificationCoordinator coordinator = new JobNotificationCoordinator(); - final JobServiceContext jsc1 = mock(JobServiceContext.class); - final JobServiceContext jsc2 = mock(JobServiceContext.class); + final JobServiceContext jsc1 = createJobServiceContext(); + final JobServiceContext jsc2 = createJobServiceContext(); final Notification notification1 = createValidNotification(); final Notification notification2 = createValidNotification(); final int uid = 10123; @@ -313,8 +313,8 @@ public class JobNotificationCoordinatorTest { @Test public void testMultipleJobs_sameApp_EnqueueSameNotificationId() { final JobNotificationCoordinator coordinator = new JobNotificationCoordinator(); - final JobServiceContext jsc1 = mock(JobServiceContext.class); - final JobServiceContext jsc2 = mock(JobServiceContext.class); + final JobServiceContext jsc1 = createJobServiceContext(); + final JobServiceContext jsc2 = createJobServiceContext(); final Notification notification1 = createValidNotification(); final Notification notification2 = createValidNotification(); final int uid = 10123; @@ -355,8 +355,8 @@ public class JobNotificationCoordinatorTest { @Test public void testMultipleJobs_sameApp_DifferentUsers() { final JobNotificationCoordinator coordinator = new JobNotificationCoordinator(); - final JobServiceContext jsc1 = mock(JobServiceContext.class); - final JobServiceContext jsc2 = mock(JobServiceContext.class); + final JobServiceContext jsc1 = createJobServiceContext(); + final JobServiceContext jsc2 = createJobServiceContext(); final Notification notification1 = createValidNotification(); final Notification notification2 = createValidNotification(); final int uid1 = 10123; @@ -403,8 +403,8 @@ public class JobNotificationCoordinatorTest { final JobNotificationCoordinator coordinator = new JobNotificationCoordinator(); final String pkg1 = "pkg1"; final String pkg2 = "pkg2"; - final JobServiceContext jsc1 = mock(JobServiceContext.class); - final JobServiceContext jsc2 = mock(JobServiceContext.class); + final JobServiceContext jsc1 = createJobServiceContext(); + final JobServiceContext jsc2 = createJobServiceContext(); final Notification notification1 = createValidNotification(); final Notification notification2 = createValidNotification(); final int uid = 10123; @@ -448,7 +448,7 @@ public class JobNotificationCoordinatorTest { @Test public void testUserStop_SingleJob_DetachOnStop() { final JobNotificationCoordinator coordinator = new JobNotificationCoordinator(); - final JobServiceContext jsc = mock(JobServiceContext.class); + final JobServiceContext jsc = createJobServiceContext(); final Notification notification = createValidNotification(); final int uid = 10123; final int pid = 42; @@ -470,8 +470,8 @@ public class JobNotificationCoordinatorTest { @Test public void testUserStop_MultipleJobs_sameApp_EnqueueSameNotificationId_DetachOnStop() { final JobNotificationCoordinator coordinator = new JobNotificationCoordinator(); - final JobServiceContext jsc1 = mock(JobServiceContext.class); - final JobServiceContext jsc2 = mock(JobServiceContext.class); + final JobServiceContext jsc1 = createJobServiceContext(); + final JobServiceContext jsc2 = createJobServiceContext(); final Notification notification1 = createValidNotification(); final Notification notification2 = createValidNotification(); final int uid = 10123; @@ -512,10 +512,9 @@ public class JobNotificationCoordinatorTest { @Test public void testUserInitiatedJob_hasNotificationFlag() { final JobNotificationCoordinator coordinator = new JobNotificationCoordinator(); - final JobServiceContext jsc = mock(JobServiceContext.class); - final JobStatus js = mock(JobStatus.class); + final JobServiceContext jsc = createJobServiceContext(); + final JobStatus js = jsc.getRunningJobLocked(); js.startedAsUserInitiatedJob = true; - doReturn(js).when(jsc).getRunningJobLocked(); final Notification notification = createValidNotification(); final int uid = 10123; final int pid = 42; @@ -532,8 +531,7 @@ public class JobNotificationCoordinatorTest { @Test public void testNonUserInitiatedJob_doesNotHaveNotificationFlag() { final JobNotificationCoordinator coordinator = new JobNotificationCoordinator(); - final JobServiceContext jsc = mock(JobServiceContext.class); - doReturn(mock(JobStatus.class)).when(jsc).getRunningJobLocked(); + final JobServiceContext jsc = createJobServiceContext(); final Notification notification = createValidNotification(); final int uid = 10123; final int pid = 42; @@ -547,6 +545,12 @@ public class JobNotificationCoordinatorTest { assertEquals(notification.flags & Notification.FLAG_USER_INITIATED_JOB, 0); } + private JobServiceContext createJobServiceContext() { + final JobServiceContext jsc = mock(JobServiceContext.class); + doReturn(mock(JobStatus.class)).when(jsc).getRunningJobLocked(); + return jsc; + } + private Notification createValidNotification() { final Notification notification = mock(Notification.class); doReturn(mock(Icon.class)).when(notification).getSmallIcon(); diff --git a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilitySecurityPolicyTest.java b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilitySecurityPolicyTest.java index eb6670ee964c..72758c9781ae 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilitySecurityPolicyTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilitySecurityPolicyTest.java @@ -16,6 +16,8 @@ package com.android.server.accessibility; +import static android.content.pm.PackageManager.MATCH_ANY_USER; + import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation; import static junit.framework.Assert.assertFalse; @@ -146,7 +148,7 @@ public class AccessibilitySecurityPolicyTest { @Mock private PolicyWarningUIController mPolicyWarningUIController; @Mock - private PackageManagerInternal mPackageManagerInternal; + private PackageManagerInternal mMockPackageManagerInternal; @Before public void setUp() { @@ -158,7 +160,8 @@ public class AccessibilitySecurityPolicyTest { R.dimen.accessibility_focus_highlight_stroke_width, 1); mA11ySecurityPolicy = new AccessibilitySecurityPolicy( - mPolicyWarningUIController, mContext, mMockA11yUserManager); + mPolicyWarningUIController, mContext, mMockA11yUserManager, + mMockPackageManagerInternal); mA11ySecurityPolicy.setSendingNonA11yToolNotificationLocked(true); mA11ySecurityPolicy.setAccessibilityWindowManager(mMockA11yWindowManager); mA11ySecurityPolicy.setAppWidgetManager(mMockAppWidgetManager); @@ -237,8 +240,9 @@ public class AccessibilitySecurityPolicyTest { @Test public void resolveValidReportedPackage_uidAndPkgNameMatched_returnPkgName() throws PackageManager.NameNotFoundException { - when(mMockPackageManager.getPackageUidAsUser(PACKAGE_NAME, - PackageManager.MATCH_ANY_USER, TEST_USER_ID)).thenReturn(APP_UID); + when(mMockPackageManagerInternal.isSameApp( + PACKAGE_NAME, MATCH_ANY_USER, APP_UID, TEST_USER_ID)) + .thenReturn(true); assertEquals(mA11ySecurityPolicy.resolveValidReportedPackageLocked( PACKAGE_NAME, APP_UID, TEST_USER_ID, APP_PID), @@ -257,8 +261,9 @@ public class AccessibilitySecurityPolicyTest { when(mMockAppWidgetManager.getHostedWidgetPackages(widgetHostUid)) .thenReturn(widgetPackages); - when(mMockPackageManager.getPackageUidAsUser(hostPackageName, TEST_USER_ID)) - .thenReturn(widgetHostUid); + when(mMockPackageManagerInternal.isSameApp( + hostPackageName, MATCH_ANY_USER, widgetHostUid, TEST_USER_ID)) + .thenReturn(true); assertEquals(mA11ySecurityPolicy.resolveValidReportedPackageLocked( widgetPackageName, widgetHostUid, TEST_USER_ID, widgetHostPid), @@ -272,8 +277,9 @@ public class AccessibilitySecurityPolicyTest { final String[] uidPackages = {PACKAGE_NAME, PACKAGE_NAME2}; when(mMockPackageManager.getPackagesForUid(APP_UID)) .thenReturn(uidPackages); - when(mMockPackageManager.getPackageUidAsUser(invalidPackageName, TEST_USER_ID)) - .thenThrow(PackageManager.NameNotFoundException.class); + when(mMockPackageManagerInternal.isSameApp( + invalidPackageName, MATCH_ANY_USER, APP_UID, TEST_USER_ID)) + .thenReturn(false); when(mMockAppWidgetManager.getHostedWidgetPackages(APP_UID)) .thenReturn(new ArraySet<>()); mContext.getTestablePermissions().setPermission( @@ -292,8 +298,9 @@ public class AccessibilitySecurityPolicyTest { final String[] uidPackages = {PACKAGE_NAME}; when(mMockPackageManager.getPackagesForUid(APP_UID)) .thenReturn(uidPackages); - when(mMockPackageManager.getPackageUidAsUser(wantedPackageName, TEST_USER_ID)) - .thenReturn(wantedUid); + when(mMockPackageManagerInternal.isSameApp( + wantedPackageName, MATCH_ANY_USER, wantedUid, TEST_USER_ID)) + .thenReturn(true); when(mMockAppWidgetManager.getHostedWidgetPackages(APP_UID)) .thenReturn(new ArraySet<>()); mContext.getTestablePermissions().setPermission( @@ -312,8 +319,9 @@ public class AccessibilitySecurityPolicyTest { final String[] uidPackages = {PACKAGE_NAME}; when(mMockPackageManager.getPackagesForUid(APP_UID)) .thenReturn(uidPackages); - when(mMockPackageManager.getPackageUidAsUser(wantedPackageName, TEST_USER_ID)) - .thenReturn(wantedUid); + when(mMockPackageManagerInternal.isSameApp( + wantedPackageName, MATCH_ANY_USER, wantedUid, TEST_USER_ID)) + .thenReturn(true); when(mMockAppWidgetManager.getHostedWidgetPackages(APP_UID)) .thenReturn(new ArraySet<>()); mContext.getTestablePermissions().setPermission( diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java index 57755a9525fc..2ea56f659297 100644 --- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java @@ -7497,6 +7497,7 @@ public class DevicePolicyManagerTest extends DpmTestBase { * Tests the case when the user turns the profile back on when the apps are already suspended. */ @Test + @Ignore("b/277916462") public void testMaximumProfileTimeOff_turnOnAfterDeadline() throws Exception { prepareMocksForSetMaximumProfileTimeOff(); diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java index e31eed2be367..ff6c534b81ed 100755 --- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java +++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java @@ -141,6 +141,7 @@ import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Person; import android.app.RemoteInput; +import android.app.RemoteInputHistoryItem; import android.app.StatsManager; import android.app.admin.DevicePolicyManagerInternal; import android.app.usage.UsageStatsManagerInternal; @@ -5554,10 +5555,36 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { public void testVisitUris() throws Exception { final Uri audioContents = Uri.parse("content://com.example/audio"); final Uri backgroundImage = Uri.parse("content://com.example/background"); + final Icon personIcon1 = Icon.createWithContentUri("content://media/person1"); + final Icon personIcon2 = Icon.createWithContentUri("content://media/person2"); + final Icon personIcon3 = Icon.createWithContentUri("content://media/person3"); + final Person person1 = new Person.Builder() + .setName("Messaging Person") + .setIcon(personIcon1) + .build(); + final Person person2 = new Person.Builder() + .setName("People List Person 1") + .setIcon(personIcon2) + .build(); + final Person person3 = new Person.Builder() + .setName("People List Person 2") + .setIcon(personIcon3) + .build(); + final Uri historyUri1 = Uri.parse("content://com.example/history1"); + final Uri historyUri2 = Uri.parse("content://com.example/history2"); + final RemoteInputHistoryItem historyItem1 = new RemoteInputHistoryItem(null, historyUri1, + "a"); + final RemoteInputHistoryItem historyItem2 = new RemoteInputHistoryItem(null, historyUri2, + "b"); Bundle extras = new Bundle(); extras.putParcelable(Notification.EXTRA_AUDIO_CONTENTS_URI, audioContents); extras.putString(Notification.EXTRA_BACKGROUND_IMAGE_URI, backgroundImage.toString()); + extras.putParcelable(Notification.EXTRA_MESSAGING_PERSON, person1); + extras.putParcelableArrayList(Notification.EXTRA_PEOPLE_LIST, + new ArrayList<>(Arrays.asList(person2, person3))); + extras.putParcelableArray(Notification.EXTRA_REMOTE_INPUT_HISTORY_ITEMS, + new RemoteInputHistoryItem[]{historyItem1, historyItem2}); Notification n = new Notification.Builder(mContext, "a") .setContentTitle("notification with uris") @@ -5569,6 +5596,11 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { n.visitUris(visitor); verify(visitor, times(1)).accept(eq(audioContents)); verify(visitor, times(1)).accept(eq(backgroundImage)); + verify(visitor, times(1)).accept(eq(personIcon1.getUri())); + verify(visitor, times(1)).accept(eq(personIcon2.getUri())); + verify(visitor, times(1)).accept(eq(personIcon3.getUri())); + verify(visitor, times(1)).accept(eq(historyUri1)); + verify(visitor, times(1)).accept(eq(historyUri2)); } @Test diff --git a/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerTests.java b/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerTests.java index fc24f5e207a8..53635835f164 100644 --- a/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerTests.java +++ b/services/tests/wmtests/src/com/android/server/policy/PhoneWindowManagerTests.java @@ -34,6 +34,7 @@ import android.app.ActivityManager; import androidx.test.filters.SmallTest; +import com.android.server.pm.UserManagerInternal; import com.android.server.wm.ActivityTaskManagerInternal; import org.junit.After; @@ -91,5 +92,6 @@ public class PhoneWindowManagerTests { when(mMockActivityTaskManagerInternal.startHomeOnDisplay( anyInt(), anyString(), anyInt(), anyBoolean(), anyBoolean())).thenReturn(false); mPhoneWindowManager.mActivityTaskManagerInternal = mMockActivityTaskManagerInternal; + mPhoneWindowManager.mUserManagerInternal = mock(UserManagerInternal.class); } } diff --git a/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java b/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java index 3513557d8374..1053fd5c4518 100644 --- a/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java +++ b/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java @@ -78,6 +78,7 @@ import com.android.server.GestureLauncherService; import com.android.server.LocalServices; import com.android.server.input.InputManagerInternal; import com.android.server.inputmethod.InputMethodManagerInternal; +import com.android.server.pm.UserManagerInternal; import com.android.server.statusbar.StatusBarManagerInternal; import com.android.server.vr.VrManagerInternal; import com.android.server.wm.ActivityTaskManagerInternal; @@ -118,6 +119,7 @@ class TestPhoneWindowManager { @Mock private PowerManager mPowerManager; @Mock private WindowManagerPolicy.WindowManagerFuncs mWindowManagerFuncsImpl; @Mock private InputMethodManagerInternal mInputMethodManagerInternal; + @Mock private UserManagerInternal mUserManagerInternal; @Mock private AudioManagerInternal mAudioManagerInternal; @Mock private SearchManager mSearchManager; @@ -186,6 +188,8 @@ class TestPhoneWindowManager { () -> LocalServices.getService(eq(DisplayManagerInternal.class))); doReturn(mGestureLauncherService).when( () -> LocalServices.getService(eq(GestureLauncherService.class))); + doReturn(mUserManagerInternal).when( + () -> LocalServices.getService(eq(UserManagerInternal.class))); doReturn(null).when(() -> LocalServices.getService(eq(VrManagerInternal.class))); doReturn(null).when(() -> LocalServices.getService(eq(AutofillManagerInternal.class))); LocalServices.removeServiceForTest(InputMethodManagerInternal.class); diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java index b4066ab1ff39..abf2199771b9 100644 --- a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java +++ b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java @@ -322,12 +322,31 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { modelData.setRunInBatterySaverMode(runInBatterySaverMode); modelData.setSoundModel(soundModel); - if (!isRecognitionAllowedByDeviceState(modelData)) { - return STATUS_OK; + if (isRecognitionAllowedByDeviceState(modelData)) { + int startRecoResult = updateRecognitionLocked(modelData, + false /* Don't notify for synchronous calls */); + if (startRecoResult == SoundTrigger.STATUS_OK) { + return startRecoResult; + } else if (startRecoResult != SoundTrigger.STATUS_BUSY) { + // If we are returning an unexpected error, don't mark the model as requested + modelData.setRequested(false); + return startRecoResult; + } } - - return updateRecognitionLocked(modelData, - false /* Don't notify for synchronous calls */); + // Either recognition isn't allowed by device state, or the module is busy. + // Dispatch a pause. + try { + if (callback != null) { + mEventLogger.enqueue(new SessionEvent(Type.PAUSE, modelData.getModelId())); + callback.onRecognitionPaused(); + } + } catch (RemoteException e) { + mEventLogger.enqueue(new SessionEvent( + Type.PAUSE, modelData.getModelId(), "RemoteException") + .printLog(ALOGW, TAG)); + forceStopAndUnloadModelLocked(modelData, e); + } + return STATUS_OK; } } diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java index 3151781ff7ba..67320009e9aa 100644 --- a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java +++ b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerService.java @@ -413,6 +413,12 @@ public class SoundTriggerService extends SystemService { } @Override + public void setInPhoneCallState(boolean isInPhoneCall) { + Slog.i(TAG, "Overriding phone call state: " + isInPhoneCall); + mDeviceStateHandler.onPhoneCallStateChanged(isInPhoneCall); + } + + @Override public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { // Event loggers pw.println("##Service-Wide logs:"); diff --git a/telecomm/java/android/telecom/CallControlCallback.java b/telecomm/java/android/telecom/CallControlCallback.java index 35e2fd43efdd..eac2e64aa2ab 100644 --- a/telecomm/java/android/telecom/CallControlCallback.java +++ b/telecomm/java/android/telecom/CallControlCallback.java @@ -44,9 +44,11 @@ public interface CallControlCallback { * * @param wasCompleted The {@link Consumer} to be completed. If the client can set the call * active on their end, the {@link Consumer#accept(Object)} should be - * called with {@link Boolean#TRUE}. Otherwise, - * {@link Consumer#accept(Object)} should be called with - * {@link Boolean#FALSE}. + * called with {@link Boolean#TRUE}. + * + * Otherwise, {@link Consumer#accept(Object)} should be called with + * {@link Boolean#FALSE}. Telecom will effectively ignore the remote + * setActive request and the call will remain in whatever state it is in. */ void onSetActive(@NonNull Consumer<Boolean> wasCompleted); @@ -56,9 +58,11 @@ public interface CallControlCallback { * * @param wasCompleted The {@link Consumer} to be completed. If the client can set the call * inactive on their end, the {@link Consumer#accept(Object)} should be - * called with {@link Boolean#TRUE}. Otherwise, - * {@link Consumer#accept(Object)} should be called with - * {@link Boolean#FALSE}. + * called with {@link Boolean#TRUE}. + * + * Otherwise, {@link Consumer#accept(Object)} should be called with + * {@link Boolean#FALSE}. Telecom will effectively ignore the remote + * setInactive request and the call will remain in whatever state it is in. */ void onSetInactive(@NonNull Consumer<Boolean> wasCompleted); @@ -68,8 +72,11 @@ public interface CallControlCallback { * @param videoState see {@link android.telecom.CallAttributes.CallType} for valid states * @param wasCompleted The {@link Consumer} to be completed. If the client can answer the call * on their end, {@link Consumer#accept(Object)} should be called with - * {@link Boolean#TRUE}. Otherwise, {@link Consumer#accept(Object)} should - * be called with {@link Boolean#FALSE}. + * {@link Boolean#TRUE}. + * + * Otherwise,{@link Consumer#accept(Object)} should be called with + * {@link Boolean#FALSE}. However, Telecom will still disconnect + * the call and remove it from tracking. */ void onAnswer(@android.telecom.CallAttributes.CallType int videoState, @NonNull Consumer<Boolean> wasCompleted); @@ -80,9 +87,11 @@ public interface CallControlCallback { * @param disconnectCause represents the cause for disconnecting the call. * @param wasCompleted The {@link Consumer} to be completed. If the client can disconnect * the call on their end, {@link Consumer#accept(Object)} should be - * called with {@link Boolean#TRUE}. Otherwise, - * {@link Consumer#accept(Object)} should be called with - * {@link Boolean#FALSE}. + * called with {@link Boolean#TRUE}. + * + * Otherwise,{@link Consumer#accept(Object)} should be called with + * {@link Boolean#FALSE}. However, Telecom will still disconnect + * the call and remove it from tracking. */ void onDisconnect(@NonNull DisconnectCause disconnectCause, @NonNull Consumer<Boolean> wasCompleted); |