diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-15 03:34:42 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-15 03:34:42 +0000 |
commit | da4c7e7ed675c3bf405668739c3012d140856109 (patch) | |
tree | cdd868dba063fecba609a1d819de271f0d51b23e /mobile/android/android-components/components/feature/prompts | |
parent | Adding upstream version 125.0.3. (diff) | |
download | firefox-da4c7e7ed675c3bf405668739c3012d140856109.tar.xz firefox-da4c7e7ed675c3bf405668739c3012d140856109.zip |
Adding upstream version 126.0.upstream/126.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mobile/android/android-components/components/feature/prompts')
261 files changed, 35510 insertions, 0 deletions
diff --git a/mobile/android/android-components/components/feature/prompts/README.md b/mobile/android/android-components/components/feature/prompts/README.md new file mode 100644 index 0000000000..704f34b36e --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/README.md @@ -0,0 +1,76 @@ +# [Android Components](../../../README.md) > Feature > Prompts + +A feature for displaying native dialogs. It will subscribe to the selected session and will handle all the common prompt dialogs from web content like input type +date, file, time, color, option, menu, authentication, confirmation and alerts. + +## Usage + +### Setting up the dependency +Use Gradle to download the library from [maven.mozilla.org](https://maven.mozilla.org/) ([Setup repository](../../../README.md#maven-repository)): + +```Groovy +implementation "org.mozilla.components:feature-prompts:{latest-version}" +``` + +### PromptFeature + + ```kotlin + val onNeedToRequestPermissions : (Array<String>) -> Unit = { permissions -> + /* You are in charge of triggering the request for the permissions needed, + * this way you can control, when you request the permissions, + * in case that you want to show an informative dialog, + * to clarify the use of these permissions. + */ + this.requestPermissions(permissions, MY_PROMPT_PERMISSION_REQUEST_CODE) + } + + val promptFeature = PromptFeature(fragment = this, + fragment = fragment, + store = store, + fragmentManager= fragmentManager, + onNeedToRequestPermissions = onNeedToRequestPermissions + ) + + // It will start listing for new prompt requests from web content. + promptFeature.start() + + // It will stop listing for prompt requests from web content. + promptFeature.stop() + + /* There are some requests that are not handled with dialogs, instead they are delegated to other apps + * to perform the request e.g a file picker request, which delegates to the OS file picker. + * For this reason, you have to forward the results of these requests to the prompt feature by overriding, + * onActivityResult in your Activity or Fragment and forward its calls to promptFeature.onActivityResult. + */ + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + promptFeature.onActivityResult(requestCode, resultCode, data) + } + + /* Additionally, there are requests that need to have some runtime permission before they can be performed, + * like file pickers request that need access to read the selected files. You need to override + * onRequestPermissionsResult in your Activity or Fragment and forward the results to + * promptFeature.PermissionsResult. + */ + override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) { + when (requestCode) { + MY_PROMPT_PERMISSION_REQUEST_CODE -> promptFeature.onPermissionsResult(permissions, grantResults) + } + } + ``` + +## Facts + +This component emits the following [Facts](../../support/base/README.md#Facts): + +| Action | Item | Description | +|-----------|--------------|-------------------------| +| DISPLAY | prompt | A prompt was shown. | +| CANCEL | prompt | A prompt was canceled. | +| CONFIRM | prompt | A prompt was confirmed. | + + +## License + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/ diff --git a/mobile/android/android-components/components/feature/prompts/build.gradle b/mobile/android/android-components/components/feature/prompts/build.gradle new file mode 100644 index 0000000000..0212157d95 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/build.gradle @@ -0,0 +1,79 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' + +android { + defaultConfig { + minSdkVersion config.minSdkVersion + compileSdk config.compileSdkVersion + targetSdkVersion config.targetSdkVersion + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + + composeOptions { + kotlinCompilerExtensionVersion = Versions.compose_compiler + } + + buildFeatures { + compose true + } + + namespace 'mozilla.components.feature.prompts' +} + +tasks.withType(KotlinCompile).configureEach { + kotlinOptions.freeCompilerArgs += "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" +} + +dependencies { + implementation project(':browser-state') + implementation project(':concept-engine') + implementation project(':feature-session') + implementation project(':feature-tabs') + implementation project(':lib-state') + implementation project(':support-ktx') + implementation project(':support-utils') + implementation project(':ui-icons') + implementation project(':ui-widgets') + implementation project(':ui-colors') + + implementation ComponentsDependencies.androidx_constraintlayout + implementation ComponentsDependencies.androidx_core_ktx + implementation ComponentsDependencies.google_material + + implementation ComponentsDependencies.androidx_core_ktx + implementation ComponentsDependencies.androidx_compose_ui + implementation ComponentsDependencies.androidx_compose_ui_tooling_preview + implementation ComponentsDependencies.androidx_compose_foundation + implementation ComponentsDependencies.androidx_compose_material + + debugImplementation ComponentsDependencies.androidx_compose_ui_tooling + + testImplementation ComponentsDependencies.androidx_test_core + testImplementation ComponentsDependencies.androidx_test_junit + testImplementation ComponentsDependencies.testing_coroutines + testImplementation ComponentsDependencies.testing_robolectric + testImplementation project(':feature-session') + testImplementation project(':support-test') + testImplementation project(':support-test-libstate') + + androidTestImplementation project(':support-android-test') + androidTestImplementation ComponentsDependencies.androidx_test_core + androidTestImplementation ComponentsDependencies.androidx_test_runner +} + +apply from: '../../../android-lint.gradle' +apply from: '../../../publish.gradle' +ext.configurePublish(config.componentsGroupId, archivesBaseName, project.ext.description) diff --git a/mobile/android/android-components/components/feature/prompts/proguard-rules.pro b/mobile/android/android-components/components/feature/prompts/proguard-rules.pro new file mode 100644 index 0000000000..f1b424510d --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/mobile/android/android-components/components/feature/prompts/src/androidTest/java/mozilla/components/feature/prompts/file/OnDeviceFilePickerTest.kt b/mobile/android/android-components/components/feature/prompts/src/androidTest/java/mozilla/components/feature/prompts/file/OnDeviceFilePickerTest.kt new file mode 100644 index 0000000000..5aef30b6d6 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/androidTest/java/mozilla/components/feature/prompts/file/OnDeviceFilePickerTest.kt @@ -0,0 +1,155 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.file + +import android.content.ClipData +import android.content.Context +import android.content.Intent +import androidx.core.net.toUri +import androidx.test.core.app.ApplicationProvider +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.feature.prompts.PromptContainer +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Test + +class OnDeviceFilePickerTest { + private val context: Context + get() = ApplicationProvider.getApplicationContext() + + private val badUri1 = "file:///data/user/0/${context.packageName}/any_directory/file.text".toUri() + private val badUri2 = "file:///data/data/${context.packageName}/any_directory/file.text".toUri() + private val goodUri = "file:///data/directory/${context.packageName}/any_directory/file.text".toUri() + + @Test + fun removeUrisUnderPrivateAppDir() { + val uris = arrayOf(badUri1, badUri2, goodUri) + + val filterUris = uris.removeUrisUnderPrivateAppDir(context) + + assertEquals(1, filterUris.size) + assertTrue(filterUris.contains(goodUri)) + } + + @Test + fun unsafeUrisWillNotBeSelected() { + val promptContainer = PromptContainer.TestPromptContainer(context) + val fileUploadsDirCleaner = FileUploadsDirCleaner { context.cacheDir } + val filePicker = FilePicker( + container = promptContainer, + fileUploadsDirCleaner = fileUploadsDirCleaner, + store = BrowserStore(), + ) { } + var onDismissWasExecuted = false + var onSingleFileSelectedWasExecuted = false + var onMultipleFilesSelectedWasExecuted = false + + val filePickerRequest = PromptRequest.File( + arrayOf(""), + isMultipleFilesSelection = true, + onDismiss = { onDismissWasExecuted = true }, + onSingleFileSelected = { _, _ -> onSingleFileSelectedWasExecuted = true }, + onMultipleFilesSelected = { _, _ -> onMultipleFilesSelectedWasExecuted = true }, + ) + + val intent = Intent() + intent.clipData = ClipData("", arrayOf(), ClipData.Item(badUri1)) + filePicker.handleFilePickerIntentResult(intent, filePickerRequest) + + assertTrue(onDismissWasExecuted) + assertFalse(onSingleFileSelectedWasExecuted) + assertFalse(onMultipleFilesSelectedWasExecuted) + } + + @Test + fun safeUrisWillBeSelected() { + val promptContainer = PromptContainer.TestPromptContainer(context) + val fileUploadsDirCleaner = FileUploadsDirCleaner { context.cacheDir } + val filePicker = FilePicker( + container = promptContainer, + fileUploadsDirCleaner = fileUploadsDirCleaner, + store = BrowserStore(), + ) { } + var urisWereSelected = false + var onDismissWasExecuted = false + var onSingleFileSelectedWasExecuted = false + + val filePickerRequest = PromptRequest.File( + arrayOf(""), + isMultipleFilesSelection = true, + onDismiss = { onDismissWasExecuted = true }, + onSingleFileSelected = { _, _ -> onSingleFileSelectedWasExecuted = true }, + onMultipleFilesSelected = { _, uris -> urisWereSelected = uris.isNotEmpty() }, + ) + + val intent = Intent() + intent.clipData = ClipData("", arrayOf(), ClipData.Item(goodUri)) + filePicker.handleFilePickerIntentResult(intent, filePickerRequest) + + assertTrue(urisWereSelected) + assertFalse(onDismissWasExecuted) + assertFalse(onSingleFileSelectedWasExecuted) + } + + @Test + fun unsafeUriWillNotBeSelected() { + val promptContainer = PromptContainer.TestPromptContainer(context) + val fileUploadsDirCleaner = FileUploadsDirCleaner { context.cacheDir } + val filePicker = FilePicker( + container = promptContainer, + fileUploadsDirCleaner = fileUploadsDirCleaner, + store = BrowserStore(), + ) { } + var onDismissWasExecuted = false + var onSingleFileSelectedWasExecuted = false + var onMultipleFilesSelectedWasExecuted = false + + val filePickerRequest = PromptRequest.File( + arrayOf(""), + onDismiss = { onDismissWasExecuted = true }, + onSingleFileSelected = { _, _ -> onSingleFileSelectedWasExecuted = true }, + onMultipleFilesSelected = { _, _ -> onMultipleFilesSelectedWasExecuted = true }, + ) + + val intent = Intent() + intent.data = badUri1 + filePicker.handleFilePickerIntentResult(intent, filePickerRequest) + + assertTrue(onDismissWasExecuted) + assertFalse(onSingleFileSelectedWasExecuted) + assertFalse(onMultipleFilesSelectedWasExecuted) + } + + @Test + fun safeUriWillBeSelected() { + val promptContainer = PromptContainer.TestPromptContainer(context) + val fileUploadsDirCleaner = FileUploadsDirCleaner { context.cacheDir } + val filePicker = FilePicker( + container = promptContainer, + fileUploadsDirCleaner = fileUploadsDirCleaner, + store = BrowserStore(), + ) { } + var onDismissWasExecuted = false + var onSingleFileSelectedWasExecuted = false + var onMultipleFilesSelectedWasExecuted = false + + val filePickerRequest = PromptRequest.File( + arrayOf(""), + onDismiss = { onDismissWasExecuted = true }, + onSingleFileSelected = { _, _ -> onSingleFileSelectedWasExecuted = true }, + onMultipleFilesSelected = { _, _ -> onMultipleFilesSelectedWasExecuted = true }, + ) + + val intent = Intent() + intent.data = goodUri + filePicker.handleFilePickerIntentResult(intent, filePickerRequest) + + assertTrue(onSingleFileSelectedWasExecuted) + assertFalse(onMultipleFilesSelectedWasExecuted) + assertFalse(onDismissWasExecuted) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/AndroidManifest.xml b/mobile/android/android-components/components/feature/prompts/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..ee81dd1486 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/AndroidManifest.xml @@ -0,0 +1,25 @@ +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<manifest xmlns:android="http://schemas.android.com/apk/res/android"> + + <!-- Needed for uploading media files on devices with Android 13 and later. --> + <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> + <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> + <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /> + + <!-- Used for requesting partial video/image files access on devices with Android 14 and later. --> + <uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" /> + + <application android:supportsRtl="true"> + <provider + android:name="mozilla.components.feature.prompts.provider.FileProvider" + android:authorities="${applicationId}.feature.prompts.fileprovider" + android:exported="false" + android:grantUriPermissions="true"> + <meta-data + android:name="android.support.FILE_PROVIDER_PATHS" + android:resource="@xml/feature_prompts_file_paths" /> + </provider> + </application> +</manifest> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptContainer.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptContainer.kt new file mode 100644 index 0000000000..fb02e45d2e --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptContainer.kt @@ -0,0 +1,63 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts + +import android.content.Context +import android.content.Intent +import androidx.annotation.StringRes +import androidx.annotation.VisibleForTesting + +/** + * Wrapper to hold shared functionality between activities and fragments for [PromptFeature]. + */ +internal sealed class PromptContainer { + + /** + * Getter for [Context]. + */ + abstract val context: Context + + /** + * Launches an activity for which you would like a result when it finished. + */ + abstract fun startActivityForResult(intent: Intent, code: Int) + + /** + * Returns a localized string. + */ + abstract fun getString(@StringRes res: Int, vararg objects: Any): String + + internal class Activity( + private val activity: android.app.Activity, + ) : PromptContainer() { + + override val context get() = activity + + override fun startActivityForResult(intent: Intent, code: Int) = + activity.startActivityForResult(intent, code) + + override fun getString(res: Int, vararg objects: Any) = activity.getString(res, *objects) + } + + internal class Fragment( + private val fragment: androidx.fragment.app.Fragment, + ) : PromptContainer() { + + override val context get() = fragment.requireContext() + + @Suppress("DEPRECATION") + // https://github.com/mozilla-mobile/android-components/issues/10357 + override fun startActivityForResult(intent: Intent, code: Int) = + fragment.startActivityForResult(intent, code) + + override fun getString(res: Int, vararg objects: Any) = fragment.getString(res, *objects) + } + + @VisibleForTesting + internal class TestPromptContainer(override val context: Context) : PromptContainer() { + override fun startActivityForResult(intent: Intent, code: Int) = Unit + override fun getString(res: Int, vararg objects: Any) = context.getString(res, *objects) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptFeature.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptFeature.kt new file mode 100644 index 0000000000..481b0e5ce3 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptFeature.kt @@ -0,0 +1,1220 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts + +import android.app.Activity +import android.content.Intent +import androidx.annotation.VisibleForTesting +import androidx.annotation.VisibleForTesting.Companion.PRIVATE +import androidx.core.view.isVisible +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentManager +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.cancel +import kotlinx.coroutines.flow.map +import mozilla.components.browser.state.action.ContentAction +import mozilla.components.browser.state.selector.findTabOrCustomTab +import mozilla.components.browser.state.selector.findTabOrCustomTabOrSelectedTab +import mozilla.components.browser.state.state.SessionState +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.prompt.Choice +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.concept.engine.prompt.PromptRequest.Alert +import mozilla.components.concept.engine.prompt.PromptRequest.Authentication +import mozilla.components.concept.engine.prompt.PromptRequest.BeforeUnload +import mozilla.components.concept.engine.prompt.PromptRequest.Color +import mozilla.components.concept.engine.prompt.PromptRequest.Confirm +import mozilla.components.concept.engine.prompt.PromptRequest.Dismissible +import mozilla.components.concept.engine.prompt.PromptRequest.File +import mozilla.components.concept.engine.prompt.PromptRequest.MenuChoice +import mozilla.components.concept.engine.prompt.PromptRequest.MultipleChoice +import mozilla.components.concept.engine.prompt.PromptRequest.Popup +import mozilla.components.concept.engine.prompt.PromptRequest.Repost +import mozilla.components.concept.engine.prompt.PromptRequest.SaveCreditCard +import mozilla.components.concept.engine.prompt.PromptRequest.SaveLoginPrompt +import mozilla.components.concept.engine.prompt.PromptRequest.SelectAddress +import mozilla.components.concept.engine.prompt.PromptRequest.SelectCreditCard +import mozilla.components.concept.engine.prompt.PromptRequest.SelectLoginPrompt +import mozilla.components.concept.engine.prompt.PromptRequest.Share +import mozilla.components.concept.engine.prompt.PromptRequest.SingleChoice +import mozilla.components.concept.engine.prompt.PromptRequest.TextPrompt +import mozilla.components.concept.engine.prompt.PromptRequest.TimeSelection +import mozilla.components.concept.identitycredential.Account +import mozilla.components.concept.identitycredential.Provider +import mozilla.components.concept.storage.CreditCardEntry +import mozilla.components.concept.storage.CreditCardValidationDelegate +import mozilla.components.concept.storage.LoginEntry +import mozilla.components.concept.storage.LoginValidationDelegate +import mozilla.components.feature.prompts.address.AddressDelegate +import mozilla.components.feature.prompts.address.AddressPicker +import mozilla.components.feature.prompts.address.DefaultAddressDelegate +import mozilla.components.feature.prompts.creditcard.CreditCardDelegate +import mozilla.components.feature.prompts.creditcard.CreditCardPicker +import mozilla.components.feature.prompts.creditcard.CreditCardSaveDialogFragment +import mozilla.components.feature.prompts.dialog.AlertDialogFragment +import mozilla.components.feature.prompts.dialog.AuthenticationDialogFragment +import mozilla.components.feature.prompts.dialog.ChoiceDialogFragment +import mozilla.components.feature.prompts.dialog.ChoiceDialogFragment.Companion.MENU_CHOICE_DIALOG_TYPE +import mozilla.components.feature.prompts.dialog.ChoiceDialogFragment.Companion.MULTIPLE_CHOICE_DIALOG_TYPE +import mozilla.components.feature.prompts.dialog.ChoiceDialogFragment.Companion.SINGLE_CHOICE_DIALOG_TYPE +import mozilla.components.feature.prompts.dialog.ColorPickerDialogFragment +import mozilla.components.feature.prompts.dialog.ConfirmDialogFragment +import mozilla.components.feature.prompts.dialog.MultiButtonDialogFragment +import mozilla.components.feature.prompts.dialog.PromptAbuserDetector +import mozilla.components.feature.prompts.dialog.PromptDialogFragment +import mozilla.components.feature.prompts.dialog.Prompter +import mozilla.components.feature.prompts.dialog.SaveLoginDialogFragment +import mozilla.components.feature.prompts.dialog.TextPromptDialogFragment +import mozilla.components.feature.prompts.dialog.TimePickerDialogFragment +import mozilla.components.feature.prompts.ext.executeIfWindowedPrompt +import mozilla.components.feature.prompts.facts.emitCreditCardSaveShownFact +import mozilla.components.feature.prompts.facts.emitPromptConfirmedFact +import mozilla.components.feature.prompts.facts.emitPromptDismissedFact +import mozilla.components.feature.prompts.facts.emitPromptDisplayedFact +import mozilla.components.feature.prompts.facts.emitSuccessfulAddressAutofillFormDetectedFact +import mozilla.components.feature.prompts.facts.emitSuccessfulCreditCardAutofillFormDetectedFact +import mozilla.components.feature.prompts.file.FilePicker +import mozilla.components.feature.prompts.file.FileUploadsDirCleaner +import mozilla.components.feature.prompts.identitycredential.DialogColors +import mozilla.components.feature.prompts.identitycredential.DialogColorsProvider +import mozilla.components.feature.prompts.identitycredential.PrivacyPolicyDialogFragment +import mozilla.components.feature.prompts.identitycredential.SelectAccountDialogFragment +import mozilla.components.feature.prompts.identitycredential.SelectProviderDialogFragment +import mozilla.components.feature.prompts.login.LoginDelegate +import mozilla.components.feature.prompts.login.LoginExceptions +import mozilla.components.feature.prompts.login.LoginPicker +import mozilla.components.feature.prompts.login.StrongPasswordPromptViewListener +import mozilla.components.feature.prompts.login.SuggestStrongPasswordDelegate +import mozilla.components.feature.prompts.share.DefaultShareDelegate +import mozilla.components.feature.prompts.share.ShareDelegate +import mozilla.components.feature.session.SessionUseCases +import mozilla.components.feature.session.SessionUseCases.ExitFullScreenUseCase +import mozilla.components.feature.tabs.TabsUseCases +import mozilla.components.lib.state.ext.flowScoped +import mozilla.components.support.base.feature.ActivityResultHandler +import mozilla.components.support.base.feature.LifecycleAwareFeature +import mozilla.components.support.base.feature.OnNeedToRequestPermissions +import mozilla.components.support.base.feature.PermissionsFeature +import mozilla.components.support.base.feature.UserInteractionHandler +import mozilla.components.support.base.log.logger.Logger +import mozilla.components.support.ktx.kotlin.ifNullOrEmpty +import mozilla.components.support.ktx.kotlinx.coroutines.flow.ifAnyChanged +import java.lang.ref.WeakReference +import java.security.InvalidParameterException +import java.util.Collections +import java.util.Date +import java.util.WeakHashMap + +@VisibleForTesting(otherwise = PRIVATE) +internal const val FRAGMENT_TAG = "mozac_feature_prompt_dialog" + +/** + * Feature for displaying native dialogs for html elements like: input type + * date, file, time, color, option, menu, authentication, confirmation and alerts. + * + * There are some requests that are handled with intents instead of dialogs, + * like file choosers and others. For this reason, you have to keep the feature + * aware of the flow of requesting data from other apps, overriding + * onActivityResult in your [Activity] or [Fragment] and forward its calls + * to [onActivityResult]. + * + * This feature will subscribe to the currently selected session and display + * a suitable native dialog based on [Session.Observer.onPromptRequested] events. + * Once the dialog is closed or the user selects an item from the dialog + * the related [PromptRequest] will be consumed. + * + * @property container The [Activity] or [Fragment] which hosts this feature. + * @property store The [BrowserStore] this feature should subscribe to. + * @property customTabId Optional id of a custom tab. Instead of showing context + * menus for the currently selected tab this feature will show only context menus + * for this custom tab if an id is provided. + * @property fragmentManager The [FragmentManager] to be used when displaying + * a dialog (fragment). + * @property shareDelegate Delegate used to display share sheet. + * @property exitFullscreenUsecase Usecase allowing to exit browser tabs' fullscreen mode. + * @property isSaveLoginEnabled A callback invoked when a login prompt is triggered. If false, + * 'save login' prompts will not be shown. + * @property isCreditCardAutofillEnabled A callback invoked when credit card fields are detected in the webpage. + * If this resolves to `true` a prompt allowing the user to select the credit card details to be autocompleted + * will be shown. + * @property isAddressAutofillEnabled A callback invoked when address fields are detected in the webpage. + * If this resolves to `true` a prompt allowing the user to select the address details to be autocompleted + * will be shown. + * @property loginExceptionStorage An implementation of [LoginExceptions] that saves and checks origins + * the user does not want to see a save login dialog for. + * @property loginDelegate Delegate for login picker. + * @property suggestStrongPasswordDelegate Delegate for strong password generator. + * @property isSuggestStrongPasswordEnabled Feature flag denoting whether the suggest strong password + * feature is enabled or not. If this resolves to 'false', the feature will be hidden. + * @property onSaveLoginWithStrongPassword A callback invoked to save a new login that uses the + * generated strong password + * @property creditCardDelegate Delegate for credit card picker. + * @property addressDelegate Delegate for address picker. + * @property fileUploadsDirCleaner a [FileUploadsDirCleaner] to clean up temporary file uploads. + * @property onNeedToRequestPermissions A callback invoked when permissions + * need to be requested before a prompt (e.g. a file picker) can be displayed. + * Once the request is completed, [onPermissionsResult] needs to be invoked. + */ +@Suppress("LargeClass", "LongParameterList") +class PromptFeature private constructor( + private val container: PromptContainer, + private val store: BrowserStore, + private var customTabId: String?, + private val fragmentManager: FragmentManager, + private val identityCredentialColorsProvider: DialogColorsProvider = DialogColorsProvider { + DialogColors.default() + }, + private val tabsUseCases: TabsUseCases, + private val shareDelegate: ShareDelegate, + private val exitFullscreenUsecase: ExitFullScreenUseCase = SessionUseCases(store).exitFullscreen, + override val creditCardValidationDelegate: CreditCardValidationDelegate? = null, + override val loginValidationDelegate: LoginValidationDelegate? = null, + private val isSaveLoginEnabled: () -> Boolean = { false }, + private val isCreditCardAutofillEnabled: () -> Boolean = { false }, + private val isAddressAutofillEnabled: () -> Boolean = { false }, + override val loginExceptionStorage: LoginExceptions? = null, + private val loginDelegate: LoginDelegate = object : LoginDelegate {}, + private val suggestStrongPasswordDelegate: SuggestStrongPasswordDelegate = object : + SuggestStrongPasswordDelegate {}, + private val isSuggestStrongPasswordEnabled: Boolean = false, + private val onSaveLoginWithStrongPassword: (String, String) -> Unit = { _, _ -> }, + private val creditCardDelegate: CreditCardDelegate = object : CreditCardDelegate {}, + private val addressDelegate: AddressDelegate = DefaultAddressDelegate(), + private val fileUploadsDirCleaner: FileUploadsDirCleaner, + onNeedToRequestPermissions: OnNeedToRequestPermissions, +) : LifecycleAwareFeature, + PermissionsFeature, + Prompter, + ActivityResultHandler, + UserInteractionHandler { + // These three scopes have identical lifetimes. We do not yet have a way of combining scopes + private var handlePromptScope: CoroutineScope? = null + private var dismissPromptScope: CoroutineScope? = null + + @VisibleForTesting + var activePromptRequest: PromptRequest? = null + + internal val promptAbuserDetector = PromptAbuserDetector() + private val logger = Logger("PromptFeature") + + @VisibleForTesting(otherwise = PRIVATE) + internal var activePrompt: WeakReference<PromptDialogFragment>? = null + + // This set of weak references of fragments is only used for dismissing all prompts on navigation. + // For all other code only `activePrompt` is tracked for now. + @VisibleForTesting(otherwise = PRIVATE) + internal val activePromptsToDismiss = + Collections.newSetFromMap(WeakHashMap<PromptDialogFragment, Boolean>()) + + constructor( + activity: Activity, + store: BrowserStore, + customTabId: String? = null, + fragmentManager: FragmentManager, + tabsUseCases: TabsUseCases, + identityCredentialColorsProvider: DialogColorsProvider = DialogColorsProvider { DialogColors.default() }, + shareDelegate: ShareDelegate = DefaultShareDelegate(), + exitFullscreenUsecase: ExitFullScreenUseCase = SessionUseCases(store).exitFullscreen, + creditCardValidationDelegate: CreditCardValidationDelegate? = null, + loginValidationDelegate: LoginValidationDelegate? = null, + isSaveLoginEnabled: () -> Boolean = { false }, + isCreditCardAutofillEnabled: () -> Boolean = { false }, + isAddressAutofillEnabled: () -> Boolean = { false }, + loginExceptionStorage: LoginExceptions? = null, + loginDelegate: LoginDelegate = object : LoginDelegate {}, + suggestStrongPasswordDelegate: SuggestStrongPasswordDelegate = object : + SuggestStrongPasswordDelegate {}, + isSuggestStrongPasswordEnabled: Boolean = false, + onSaveLoginWithStrongPassword: (String, String) -> Unit = { _, _ -> }, + creditCardDelegate: CreditCardDelegate = object : CreditCardDelegate {}, + addressDelegate: AddressDelegate = DefaultAddressDelegate(), + fileUploadsDirCleaner: FileUploadsDirCleaner, + onNeedToRequestPermissions: OnNeedToRequestPermissions, + ) : this( + container = PromptContainer.Activity(activity), + store = store, + customTabId = customTabId, + fragmentManager = fragmentManager, + tabsUseCases = tabsUseCases, + identityCredentialColorsProvider = identityCredentialColorsProvider, + shareDelegate = shareDelegate, + exitFullscreenUsecase = exitFullscreenUsecase, + creditCardValidationDelegate = creditCardValidationDelegate, + loginValidationDelegate = loginValidationDelegate, + isSaveLoginEnabled = isSaveLoginEnabled, + isCreditCardAutofillEnabled = isCreditCardAutofillEnabled, + isAddressAutofillEnabled = isAddressAutofillEnabled, + loginExceptionStorage = loginExceptionStorage, + fileUploadsDirCleaner = fileUploadsDirCleaner, + onNeedToRequestPermissions = onNeedToRequestPermissions, + loginDelegate = loginDelegate, + suggestStrongPasswordDelegate = suggestStrongPasswordDelegate, + isSuggestStrongPasswordEnabled = isSuggestStrongPasswordEnabled, + onSaveLoginWithStrongPassword = onSaveLoginWithStrongPassword, + creditCardDelegate = creditCardDelegate, + addressDelegate = addressDelegate, + ) + + constructor( + fragment: Fragment, + store: BrowserStore, + customTabId: String? = null, + fragmentManager: FragmentManager, + tabsUseCases: TabsUseCases, + shareDelegate: ShareDelegate = DefaultShareDelegate(), + exitFullscreenUsecase: ExitFullScreenUseCase = SessionUseCases(store).exitFullscreen, + creditCardValidationDelegate: CreditCardValidationDelegate? = null, + loginValidationDelegate: LoginValidationDelegate? = null, + isSaveLoginEnabled: () -> Boolean = { false }, + isCreditCardAutofillEnabled: () -> Boolean = { false }, + isAddressAutofillEnabled: () -> Boolean = { false }, + loginExceptionStorage: LoginExceptions? = null, + loginDelegate: LoginDelegate = object : LoginDelegate {}, + suggestStrongPasswordDelegate: SuggestStrongPasswordDelegate = object : + SuggestStrongPasswordDelegate {}, + isSuggestStrongPasswordEnabled: Boolean = false, + onSaveLoginWithStrongPassword: (String, String) -> Unit = { _, _ -> }, + creditCardDelegate: CreditCardDelegate = object : CreditCardDelegate {}, + addressDelegate: AddressDelegate = DefaultAddressDelegate(), + fileUploadsDirCleaner: FileUploadsDirCleaner, + onNeedToRequestPermissions: OnNeedToRequestPermissions, + ) : this( + container = PromptContainer.Fragment(fragment), + store = store, + customTabId = customTabId, + fragmentManager = fragmentManager, + tabsUseCases = tabsUseCases, + shareDelegate = shareDelegate, + exitFullscreenUsecase = exitFullscreenUsecase, + creditCardValidationDelegate = creditCardValidationDelegate, + loginValidationDelegate = loginValidationDelegate, + isSaveLoginEnabled = isSaveLoginEnabled, + isCreditCardAutofillEnabled = isCreditCardAutofillEnabled, + isAddressAutofillEnabled = isAddressAutofillEnabled, + loginExceptionStorage = loginExceptionStorage, + fileUploadsDirCleaner = fileUploadsDirCleaner, + onNeedToRequestPermissions = onNeedToRequestPermissions, + loginDelegate = loginDelegate, + suggestStrongPasswordDelegate = suggestStrongPasswordDelegate, + isSuggestStrongPasswordEnabled = isSuggestStrongPasswordEnabled, + onSaveLoginWithStrongPassword = onSaveLoginWithStrongPassword, + creditCardDelegate = creditCardDelegate, + addressDelegate = addressDelegate, + ) + + private val filePicker = + FilePicker(container, store, customTabId, fileUploadsDirCleaner, onNeedToRequestPermissions) + + @VisibleForTesting(otherwise = PRIVATE) + internal var loginPicker = + with(loginDelegate) { + loginPickerView?.let { + LoginPicker(store, it, onManageLogins, customTabId) + } + } + + @VisibleForTesting(otherwise = PRIVATE) + internal var strongPasswordPromptViewListener = + with(suggestStrongPasswordDelegate) { + strongPasswordPromptViewListenerView?.let { + StrongPasswordPromptViewListener(store, it, customTabId) + } + } + + @VisibleForTesting(otherwise = PRIVATE) + internal var creditCardPicker = + with(creditCardDelegate) { + creditCardPickerView?.let { + CreditCardPicker( + store = store, + creditCardSelectBar = it, + manageCreditCardsCallback = onManageCreditCards, + selectCreditCardCallback = onSelectCreditCard, + sessionId = customTabId, + ) + } + } + + @VisibleForTesting(otherwise = PRIVATE) + internal var addressPicker = + with(addressDelegate) { + addressPickerView?.let { + AddressPicker( + store = store, + addressSelectBar = it, + onManageAddresses = onManageAddresses, + sessionId = customTabId, + ) + } + } + + override val onNeedToRequestPermissions + get() = filePicker.onNeedToRequestPermissions + + override fun onOpenLink(url: String) { + tabsUseCases.addTab( + url = url, + ) + } + + /** + * Starts observing the selected session to listen for prompt requests + * and displays a dialog when needed. + */ + @Suppress("ComplexMethod", "LongMethod") + override fun start() { + promptAbuserDetector.resetJSAlertAbuseState() + + handlePromptScope = store.flowScoped { flow -> + flow.map { state -> state.findTabOrCustomTabOrSelectedTab(customTabId) } + .ifAnyChanged { + arrayOf(it?.content?.promptRequests, it?.content?.loading) + } + .collect { state -> + state?.content?.let { content -> + if (content.promptRequests.lastOrNull() != activePromptRequest) { + // Dismiss any active select login or credit card prompt if it does + // not match the current prompt request for the session. + when (activePromptRequest) { + is SelectLoginPrompt -> { + loginPicker?.dismissCurrentLoginSelect(activePromptRequest as SelectLoginPrompt) + strongPasswordPromptViewListener?.dismissCurrentSuggestStrongPassword( + activePromptRequest as SelectLoginPrompt, + ) + } + + is SaveLoginPrompt -> { + (activePrompt?.get() as? SaveLoginDialogFragment)?.dismissAllowingStateLoss() + } + + is SaveCreditCard -> { + (activePrompt?.get() as? CreditCardSaveDialogFragment)?.dismissAllowingStateLoss() + } + + is SelectCreditCard -> { + creditCardPicker?.dismissSelectCreditCardRequest( + activePromptRequest as SelectCreditCard, + ) + } + + is SelectAddress -> { + addressPicker?.dismissSelectAddressRequest( + activePromptRequest as SelectAddress, + ) + } + + is SingleChoice, + is MultipleChoice, + is MenuChoice, + -> { + (activePrompt?.get() as? ChoiceDialogFragment)?.let { dialog -> + if (dialog.isAdded) { + dialog.dismissAllowingStateLoss() + } else { + activePromptsToDismiss.remove(dialog) + activePrompt?.clear() + } + } + } + + else -> { + // no-op + } + } + + onPromptRequested(state) + } else if (!content.loading) { + promptAbuserDetector.resetJSAlertAbuseState() + } else if (content.loading) { + dismissSelectPrompts() + } + + activePromptRequest = content.promptRequests.lastOrNull() + } + } + } + + // Dismiss all prompts when page URL or session id changes. See Fenix#5326 + dismissPromptScope = store.flowScoped { flow -> + flow.ifAnyChanged { state -> + arrayOf( + state.selectedTabId, + state.findTabOrCustomTabOrSelectedTab(customTabId)?.content?.url, + ) + }.collect { + dismissSelectPrompts() + + val prompt = activePrompt?.get() + + store.consumeAllSessionPrompts( + sessionId = prompt?.sessionId, + activePrompt, + predicate = { it.shouldDismissOnLoad }, + consume = { prompt?.dismiss() }, + ) + + // Let's make sure we do not leave anything behind.. + activePromptsToDismiss.forEach { fragment -> fragment.dismiss() } + } + } + + fragmentManager.findFragmentByTag(FRAGMENT_TAG)?.let { fragment -> + // There's still a [PromptDialogFragment] visible from the last time. Re-attach this feature so that the + // fragment can invoke the callback on this feature once the user makes a selection. This can happen when + // the app was in the background and on resume the activity and fragments get recreated. + reattachFragment(fragment as PromptDialogFragment) + } + } + + override fun stop() { + // Stops observing the selected session for incoming prompt requests. + handlePromptScope?.cancel() + dismissPromptScope?.cancel() + + // Dismisses the logins prompt so that it can appear on another tab + dismissSelectPrompts() + } + + override fun onBackPressed(): Boolean { + return dismissSelectPrompts() + } + + /** + * Notifies the feature of intent results for prompt requests handled by + * other apps like credit card and file chooser requests. + * + * @param requestCode The code of the app that requested the intent. + * @param data The result of the request. + * @param resultCode The code of the result. + */ + override fun onActivityResult(requestCode: Int, data: Intent?, resultCode: Int): Boolean { + if (requestCode == PIN_REQUEST) { + if (resultCode == Activity.RESULT_OK) { + creditCardPicker?.onAuthSuccess() + } else { + creditCardPicker?.onAuthFailure() + } + + return true + } + + return filePicker.onActivityResult(requestCode, resultCode, data) + } + + /** + * Notifies the feature that the biometric authentication was completed. It will then + * either process or dismiss the prompt request. + * + * @param isAuthenticated True if the user is authenticated successfully from the biometric + * authentication prompt or false otherwise. + */ + fun onBiometricResult(isAuthenticated: Boolean) { + if (isAuthenticated) { + creditCardPicker?.onAuthSuccess() + } else { + creditCardPicker?.onAuthFailure() + } + } + + /** + * Notifies the feature that the permissions request was completed. It will then + * either process or dismiss the prompt request. + * + * @param permissions List of permission requested. + * @param grantResults The grant results for the corresponding permissions + * @see [onNeedToRequestPermissions]. + */ + override fun onPermissionsResult(permissions: Array<String>, grantResults: IntArray) { + filePicker.onPermissionsResult(permissions, grantResults) + } + + /** + * Invoked when a native dialog needs to be shown. + * + * @param session The session which requested the dialog. + */ + @Suppress("NestedBlockDepth") + @VisibleForTesting(otherwise = PRIVATE) + internal fun onPromptRequested(session: SessionState) { + // Some requests are handle with intents + session.content.promptRequests.lastOrNull()?.let { promptRequest -> + store.state.findTabOrCustomTabOrSelectedTab(customTabId)?.let { + promptRequest.executeIfWindowedPrompt { exitFullscreenUsecase(it.id) } + } + + when (promptRequest) { + is File -> { + emitPromptDisplayedFact(promptName = "FilePrompt") + filePicker.handleFileRequest(promptRequest) + } + + is Share -> handleShareRequest(promptRequest, session) + is SelectCreditCard -> { + emitSuccessfulCreditCardAutofillFormDetectedFact() + if (isCreditCardAutofillEnabled() && promptRequest.creditCards.isNotEmpty()) { + creditCardPicker?.handleSelectCreditCardRequest(promptRequest) + } + } + + is SelectLoginPrompt -> { + if (promptRequest.logins.isEmpty()) { + if (isSuggestStrongPasswordEnabled) { + val currentUrl = + store.state.findTabOrCustomTabOrSelectedTab(customTabId)?.content?.url + if (currentUrl != null) { + strongPasswordPromptViewListener?.handleSuggestStrongPasswordRequest( + promptRequest, + currentUrl, + onSaveLoginWithStrongPassword, + ) + } + } + } else { + loginPicker?.handleSelectLoginRequest(promptRequest) + } + emitPromptDisplayedFact(promptName = "SelectLoginPrompt") + } + + is SelectAddress -> { + emitSuccessfulAddressAutofillFormDetectedFact() + if (isAddressAutofillEnabled() && promptRequest.addresses.isNotEmpty()) { + addressPicker?.handleSelectAddressRequest(promptRequest) + } + } + + else -> handleDialogsRequest(promptRequest, session) + } + } + } + + /** + * Invoked when a dialog is dismissed. This consumes the [PromptFeature] + * value from the session indicated by [sessionId]. + * + * @param sessionId this is the id of the session which requested the prompt. + * @param promptRequestUID identifier of the [PromptRequest] for which this dialog was shown. + * @param value an optional value provided by the dialog as a result of canceling the action. + */ + override fun onCancel(sessionId: String, promptRequestUID: String, value: Any?) { + store.consumePromptFrom(sessionId, promptRequestUID, activePrompt) { + emitPromptDismissedFact(promptName = it::class.simpleName.ifNullOrEmpty { "" }) + when (it) { + is BeforeUnload -> it.onStay() + is Popup -> { + val shouldNotShowMoreDialogs = value as Boolean + promptAbuserDetector.userWantsMoreDialogs(!shouldNotShowMoreDialogs) + it.onDeny() + } + + is Dismissible -> it.onDismiss() + else -> { + // no-op + } + } + } + } + + /** + * Invoked when the user confirms the action on the dialog. This consumes + * the [PromptFeature] value from the [SessionState] indicated by [sessionId]. + * + * @param sessionId that requested to show the dialog. + * @param promptRequestUID identifier of the [PromptRequest] for which this dialog was shown. + * @param value an optional value provided by the dialog as a result of confirming the action. + */ + @Suppress("UNCHECKED_CAST", "ComplexMethod") + override fun onConfirm(sessionId: String, promptRequestUID: String, value: Any?) { + store.consumePromptFrom(sessionId, promptRequestUID, activePrompt) { + when (it) { + is TimeSelection -> it.onConfirm(value as Date) + is Color -> it.onConfirm(value as String) + is Alert -> { + val shouldNotShowMoreDialogs = value as Boolean + promptAbuserDetector.userWantsMoreDialogs(!shouldNotShowMoreDialogs) + it.onConfirm(!shouldNotShowMoreDialogs) + } + + is SingleChoice -> it.onConfirm(value as Choice) + is MenuChoice -> it.onConfirm(value as Choice) + is BeforeUnload -> it.onLeave() + is Popup -> { + val shouldNotShowMoreDialogs = value as Boolean + promptAbuserDetector.userWantsMoreDialogs(!shouldNotShowMoreDialogs) + it.onAllow() + } + + is MultipleChoice -> it.onConfirm(value as Array<Choice>) + + is Authentication -> { + val (user, password) = value as Pair<String, String> + it.onConfirm(user, password) + } + + is TextPrompt -> { + val (shouldNotShowMoreDialogs, text) = value as Pair<Boolean, String> + + promptAbuserDetector.userWantsMoreDialogs(!shouldNotShowMoreDialogs) + it.onConfirm(!shouldNotShowMoreDialogs, text) + } + + is Share -> it.onSuccess() + + is SaveCreditCard -> it.onConfirm(value as CreditCardEntry) + is SaveLoginPrompt -> it.onConfirm(value as LoginEntry) + + is Confirm -> { + val (isCheckBoxChecked, buttonType) = + value as Pair<Boolean, MultiButtonDialogFragment.ButtonType> + promptAbuserDetector.userWantsMoreDialogs(!isCheckBoxChecked) + when (buttonType) { + MultiButtonDialogFragment.ButtonType.POSITIVE -> + it.onConfirmPositiveButton(!isCheckBoxChecked) + + MultiButtonDialogFragment.ButtonType.NEGATIVE -> + it.onConfirmNegativeButton(!isCheckBoxChecked) + + MultiButtonDialogFragment.ButtonType.NEUTRAL -> + it.onConfirmNeutralButton(!isCheckBoxChecked) + } + } + + is Repost -> it.onConfirm() + is PromptRequest.IdentityCredential.SelectProvider -> it.onConfirm(value as Provider) + is PromptRequest.IdentityCredential.SelectAccount -> it.onConfirm(value as Account) + is PromptRequest.IdentityCredential.PrivacyPolicy -> it.onConfirm(value as Boolean) + else -> { + // no-op + } + } + emitPromptConfirmedFact(it::class.simpleName.ifNullOrEmpty { "" }) + } + } + + /** + * Invoked when the user is requesting to clear the selected value from the dialog. + * This consumes the [PromptFeature] value from the [SessionState] indicated by [sessionId]. + * + * @param sessionId that requested to show the dialog. + * @param promptRequestUID identifier of the [PromptRequest] for which this dialog was shown. + */ + override fun onClear(sessionId: String, promptRequestUID: String) { + store.consumePromptFrom(sessionId, promptRequestUID, activePrompt) { + when (it) { + is TimeSelection -> it.onClear() + else -> { + // no-op + } + } + } + } + + /** + * Re-attaches a fragment that is still visible but not linked to this feature anymore. + */ + private fun reattachFragment(fragment: PromptDialogFragment) { + val session = store.state.findTabOrCustomTab(fragment.sessionId) + if (session?.content?.promptRequests?.isEmpty() != false) { + fragmentManager.beginTransaction() + .remove(fragment) + .commitAllowingStateLoss() + return + } + // Re-assign the feature instance so that the fragment can invoke us once the user makes a selection or cancels + // the dialog. + fragment.feature = this + } + + private fun handleShareRequest(promptRequest: Share, session: SessionState) { + emitPromptDisplayedFact(promptName = "ShareSheet") + shareDelegate.showShareSheet( + context = container.context, + shareData = promptRequest.data, + onDismiss = { + emitPromptDismissedFact(promptName = "ShareSheet") + onCancel(session.id, promptRequest.uid) + }, + onSuccess = { onConfirm(session.id, promptRequest.uid, null) }, + ) + } + + /** + * Called from on [onPromptRequested] to handle requests for showing native dialogs. + */ + @Suppress("ComplexMethod", "LongMethod") + @VisibleForTesting(otherwise = PRIVATE) + internal fun handleDialogsRequest( + promptRequest: PromptRequest, + session: SessionState, + ) { + // Requests that are handled with dialogs + val dialog = when (promptRequest) { + is SaveCreditCard -> { + if (!isCreditCardAutofillEnabled.invoke() || creditCardValidationDelegate == null || + !promptRequest.creditCard.isValid + ) { + dismissDialogRequest(promptRequest, session) + + if (creditCardValidationDelegate == null) { + logger.debug( + "Ignoring received SaveCreditCard because PromptFeature." + + "creditCardValidationDelegate is null. If you are trying to autofill " + + "credit cards, try attaching a CreditCardValidationDelegate to PromptFeature", + ) + } + + return + } + + emitCreditCardSaveShownFact() + + CreditCardSaveDialogFragment.newInstance( + sessionId = session.id, + promptRequestUID = promptRequest.uid, + shouldDismissOnLoad = false, + creditCard = promptRequest.creditCard, + ) + } + + is SaveLoginPrompt -> { + if (!isSaveLoginEnabled.invoke() || loginValidationDelegate == null) { + dismissDialogRequest(promptRequest, session) + + if (loginValidationDelegate == null) { + logger.debug( + "Ignoring received SaveLoginPrompt because PromptFeature." + + "loginValidationDelegate is null. If you are trying to autofill logins, " + + "try attaching a LoginValidationDelegate to PromptFeature", + ) + } + + return + } + + SaveLoginDialogFragment.newInstance( + sessionId = session.id, + promptRequestUID = promptRequest.uid, + shouldDismissOnLoad = false, + hint = promptRequest.hint, + // For v1, we only handle a single login and drop all others on the floor + entry = promptRequest.logins[0], + icon = session.content.icon, + ) + } + + is SingleChoice -> ChoiceDialogFragment.newInstance( + promptRequest.choices, + session.id, + promptRequest.uid, + true, + SINGLE_CHOICE_DIALOG_TYPE, + ) + + is MultipleChoice -> ChoiceDialogFragment.newInstance( + promptRequest.choices, + session.id, + promptRequest.uid, + true, + MULTIPLE_CHOICE_DIALOG_TYPE, + ) + + is MenuChoice -> ChoiceDialogFragment.newInstance( + promptRequest.choices, + session.id, + promptRequest.uid, + true, + MENU_CHOICE_DIALOG_TYPE, + ) + + is Alert -> { + with(promptRequest) { + AlertDialogFragment.newInstance( + session.id, + promptRequest.uid, + true, + title, + message, + promptAbuserDetector.areDialogsBeingAbused(), + ) + } + } + + is TimeSelection -> { + val selectionType = when (promptRequest.type) { + TimeSelection.Type.DATE -> TimePickerDialogFragment.SELECTION_TYPE_DATE + TimeSelection.Type.DATE_AND_TIME -> TimePickerDialogFragment.SELECTION_TYPE_DATE_AND_TIME + TimeSelection.Type.TIME -> TimePickerDialogFragment.SELECTION_TYPE_TIME + TimeSelection.Type.MONTH -> TimePickerDialogFragment.SELECTION_TYPE_MONTH + } + + with(promptRequest) { + TimePickerDialogFragment.newInstance( + session.id, + promptRequest.uid, + true, + initialDate, + minimumDate, + maximumDate, + selectionType, + stepValue, + ) + } + } + + is TextPrompt -> { + with(promptRequest) { + TextPromptDialogFragment.newInstance( + session.id, + promptRequest.uid, + true, + title, + inputLabel, + inputValue, + promptAbuserDetector.areDialogsBeingAbused(), + ) + } + } + + is Authentication -> { + with(promptRequest) { + AuthenticationDialogFragment.newInstance( + session.id, + promptRequest.uid, + true, + title, + message, + userName, + password, + onlyShowPassword, + uri, + ) + } + } + + is Color -> ColorPickerDialogFragment.newInstance( + session.id, + promptRequest.uid, + true, + promptRequest.defaultColor, + ) + + is Popup -> { + val title = container.getString(R.string.mozac_feature_prompts_popup_dialog_title) + val positiveLabel = container.getString(R.string.mozac_feature_prompts_allow) + val negativeLabel = container.getString(R.string.mozac_feature_prompts_deny) + + ConfirmDialogFragment.newInstance( + sessionId = session.id, + promptRequest.uid, + title = title, + message = promptRequest.targetUri, + positiveButtonText = positiveLabel, + negativeButtonText = negativeLabel, + hasShownManyDialogs = promptAbuserDetector.areDialogsBeingAbused(), + shouldDismissOnLoad = true, + ) + } + + is BeforeUnload -> { + val title = + container.getString(R.string.mozac_feature_prompt_before_unload_dialog_title) + val body = + container.getString(R.string.mozac_feature_prompt_before_unload_dialog_body) + val leaveLabel = + container.getString(R.string.mozac_feature_prompts_before_unload_leave) + val stayLabel = + container.getString(R.string.mozac_feature_prompts_before_unload_stay) + + ConfirmDialogFragment.newInstance( + sessionId = session.id, + promptRequest.uid, + title = title, + message = body, + positiveButtonText = leaveLabel, + negativeButtonText = stayLabel, + shouldDismissOnLoad = true, + ) + } + + is Confirm -> { + with(promptRequest) { + val positiveButton = positiveButtonTitle.ifEmpty { + container.getString(R.string.mozac_feature_prompts_ok) + } + val negativeButton = negativeButtonTitle.ifEmpty { + container.getString(R.string.mozac_feature_prompts_cancel) + } + + MultiButtonDialogFragment.newInstance( + session.id, + promptRequest.uid, + title, + message, + promptAbuserDetector.areDialogsBeingAbused(), + false, + positiveButton, + negativeButton, + neutralButtonTitle, + ) + } + } + + is Repost -> { + val title = container.context.getString(R.string.mozac_feature_prompt_repost_title) + val message = + container.context.getString(R.string.mozac_feature_prompt_repost_message) + val positiveAction = + container.context.getString(R.string.mozac_feature_prompt_repost_positive_button_text) + val negativeAction = + container.context.getString(R.string.mozac_feature_prompt_repost_negative_button_text) + + ConfirmDialogFragment.newInstance( + sessionId = session.id, + promptRequestUID = promptRequest.uid, + shouldDismissOnLoad = true, + title = title, + message = message, + positiveButtonText = positiveAction, + negativeButtonText = negativeAction, + ) + } + + is PromptRequest.IdentityCredential.SelectProvider -> { + SelectProviderDialogFragment.newInstance( + sessionId = session.id, + promptRequestUID = promptRequest.uid, + shouldDismissOnLoad = true, + providers = promptRequest.providers, + colorsProvider = identityCredentialColorsProvider, + ) + } + + is PromptRequest.IdentityCredential.SelectAccount -> { + SelectAccountDialogFragment.newInstance( + sessionId = session.id, + promptRequestUID = promptRequest.uid, + shouldDismissOnLoad = true, + accounts = promptRequest.accounts, + provider = promptRequest.provider, + colorsProvider = identityCredentialColorsProvider, + ) + } + + is PromptRequest.IdentityCredential.PrivacyPolicy -> { + val title = + container.getString( + R.string.mozac_feature_prompts_identity_credentials_privacy_policy_title, + promptRequest.providerDomain, + ) + val message = + container.getString( + R.string.mozac_feature_prompts_identity_credentials_privacy_policy_description, + promptRequest.host, + promptRequest.providerDomain, + promptRequest.privacyPolicyUrl, + promptRequest.termsOfServiceUrl, + ) + PrivacyPolicyDialogFragment.newInstance( + sessionId = session.id, + promptRequestUID = promptRequest.uid, + shouldDismissOnLoad = true, + title = title, + message = message, + icon = promptRequest.icon, + ) + } + + else -> throw InvalidParameterException("Not valid prompt request type $promptRequest") + } + + dialog.feature = this + + if (canShowThisPrompt(promptRequest)) { + // If the ChoiceDialogFragment's choices data were updated, + // we need to dismiss the previous dialog + activePrompt?.get()?.let { promptDialog -> + // ChoiceDialogFragment could update their choices data, + // and we need to dismiss the previous UI dialog, + // without consuming the engine callbacks, and allow to create a new dialog with the + // updated data. + if (promptDialog is ChoiceDialogFragment && + !session.content.promptRequests.any { it.uid == promptDialog.promptRequestUID } + ) { + // We want to avoid consuming the engine callbacks and allow a new dialog + // to be created with the updated data. + promptDialog.feature = null + promptDialog.dismiss() + } + } + + emitPromptDisplayedFact(promptName = dialog::class.simpleName.ifNullOrEmpty { "" }) + dialog.show(fragmentManager, FRAGMENT_TAG) + activePrompt = WeakReference(dialog) + + if (promptRequest.shouldDismissOnLoad) { + activePromptsToDismiss.add(dialog) + } + } else { + dismissDialogRequest(promptRequest, session) + } + promptAbuserDetector.updateJSDialogAbusedState() + } + + /** + * Dismiss and consume the given prompt request for the session. + */ + @VisibleForTesting + internal fun dismissDialogRequest(promptRequest: PromptRequest, session: SessionState) { + (promptRequest as Dismissible).onDismiss() + store.dispatch(ContentAction.ConsumePromptRequestAction(session.id, promptRequest)) + emitPromptDismissedFact(promptName = promptRequest::class.simpleName.ifNullOrEmpty { "" }) + } + + private fun canShowThisPrompt(promptRequest: PromptRequest): Boolean { + return when (promptRequest) { + is SingleChoice, + is MultipleChoice, + is MenuChoice, + is TimeSelection, + is File, + is Color, + is Authentication, + is BeforeUnload, + is SaveLoginPrompt, + is SelectLoginPrompt, + is SelectCreditCard, + is SaveCreditCard, + is SelectAddress, + is Share, + is PromptRequest.IdentityCredential.SelectProvider, + is PromptRequest.IdentityCredential.SelectAccount, + is PromptRequest.IdentityCredential.PrivacyPolicy, + -> true + + is Alert, is TextPrompt, is Confirm, is Repost, is Popup -> promptAbuserDetector.shouldShowMoreDialogs + } + } + + /** + * Dismisses the select prompts if they are active and visible. + * + * @returns true if a select prompt was dismissed, otherwise false. + */ + @VisibleForTesting + fun dismissSelectPrompts(): Boolean { + var result = false + + (activePromptRequest as? SelectLoginPrompt)?.let { selectLoginPrompt -> + loginPicker?.let { loginPicker -> + if (loginDelegate.loginPickerView?.asView()?.isVisible == true) { + loginPicker.dismissCurrentLoginSelect(selectLoginPrompt) + result = true + } + } + } + + (activePromptRequest as? SelectCreditCard)?.let { selectCreditCardPrompt -> + creditCardPicker?.let { creditCardPicker -> + if (creditCardDelegate.creditCardPickerView?.asView()?.isVisible == true) { + creditCardPicker.dismissSelectCreditCardRequest(selectCreditCardPrompt) + result = true + } + } + } + + (activePromptRequest as? SelectAddress)?.let { selectAddressPrompt -> + addressPicker?.let { addressPicker -> + if (addressDelegate.addressPickerView?.asView()?.isVisible == true) { + addressPicker.dismissSelectAddressRequest(selectAddressPrompt) + result = true + } + } + } + + return result + } + + companion object { + // The PIN request code + const val PIN_REQUEST = 303 + } +} + +/** + * Removes the [PromptRequest] indicated by [promptRequestUID] from the current Session if it it exists + * and offers a [consume] callback for other optional side effects. + * + * @param sessionId Session id of the tab or custom tab in which to try consuming [PromptRequests]. + * If the id is not provided or a tab with that id is not found the method will act on the current tab. + * @param promptRequestUID Id of the [PromptRequest] to be consumed. + * @param activePrompt The current active Prompt if known. If provided it will always be cleared, + * irrespective of if [PromptRequest] indicated by [promptRequestUID] is found and removed or not. + * @param consume callback with the [PromptRequest] if found, before being removed from the Session. + */ +internal fun BrowserStore.consumePromptFrom( + sessionId: String?, + promptRequestUID: String, + activePrompt: WeakReference<PromptDialogFragment>? = null, + consume: (PromptRequest) -> Unit, +) { + state.findTabOrCustomTabOrSelectedTab(sessionId)?.let { tab -> + activePrompt?.clear() + tab.content.promptRequests.firstOrNull { it.uid == promptRequestUID }?.let { + consume(it) + dispatch(ContentAction.ConsumePromptRequestAction(tab.id, it)) + } + } +} + +/** + * Removes the most recent [PromptRequest] of type [P] from the current Session if it it exists + * and offers a [consume] callback for other optional side effects. + * + * @param sessionId Session id of the tab or custom tab in which to try consuming [PromptRequests]. + * If the id is not provided or a tab with that id is not found the method will act on the current tab. + * @param activePrompt The current active Prompt if known. If provided it will always be cleared, + * irrespective of if [PromptRequest] indicated by [promptRequestUID] is found and removed or not. + * @param consume callback with the [PromptRequest] if found, before being removed from the Session. + */ +internal inline fun <reified P : PromptRequest> BrowserStore.consumePromptFrom( + sessionId: String?, + activePrompt: WeakReference<PromptDialogFragment>? = null, + consume: (P) -> Unit, +) { + state.findTabOrCustomTabOrSelectedTab(sessionId)?.let { tab -> + activePrompt?.clear() + tab.content.promptRequests.lastOrNull { it is P }?.let { + consume(it as P) + dispatch(ContentAction.ConsumePromptRequestAction(tab.id, it)) + } + } +} + +/** + * Filters and removes all [PromptRequest]s from the current Session if it it exists + * and offers a [consume] callback for other optional side effects on each filtered [PromptRequest]. + * + * @param sessionId Session id of the tab or custom tab in which to try consuming [PromptRequests]. + * If the id is not provided or a tab with that id is not found the method will act on the current tab. + * @param activePrompt The current active Prompt if known. If provided it will always be cleared, + * irrespective of if [PromptRequest] indicated by [promptRequestUID] is found and removed or not. + * @param predicate function allowing matching only specific [PromptRequest]s from all contained in the Session. + * @param consume callback with the [PromptRequest] if found, before being removed from the Session. + */ +internal fun BrowserStore.consumeAllSessionPrompts( + sessionId: String?, + activePrompt: WeakReference<PromptDialogFragment>? = null, + predicate: (PromptRequest) -> Boolean, + consume: (PromptRequest) -> Unit = { }, +) { + state.findTabOrCustomTabOrSelectedTab(sessionId)?.let { tab -> + activePrompt?.clear() + tab.content.promptRequests + .filter { predicate(it) } + .forEach { + consume(it) + dispatch(ContentAction.ConsumePromptRequestAction(tab.id, it)) + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptMiddleware.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptMiddleware.kt new file mode 100644 index 0000000000..5c0d3fe6cb --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/PromptMiddleware.kt @@ -0,0 +1,59 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts + +import kotlinx.coroutines.MainScope +import kotlinx.coroutines.launch +import mozilla.components.browser.state.action.BrowserAction +import mozilla.components.browser.state.action.ContentAction +import mozilla.components.browser.state.selector.findTab +import mozilla.components.browser.state.state.BrowserState +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.lib.state.Middleware +import mozilla.components.lib.state.MiddlewareContext + +/** + * [Middleware] implementation for managing [PromptRequest]s. + */ +class PromptMiddleware : Middleware<BrowserState, BrowserAction> { + + private val scope = MainScope() + + override fun invoke( + context: MiddlewareContext<BrowserState, BrowserAction>, + next: (BrowserAction) -> Unit, + action: BrowserAction, + ) { + when (action) { + is ContentAction.UpdatePromptRequestAction -> { + if (shouldBlockPrompt(action, context)) { + return + } + } + else -> { + // no-op + } + } + + next(action) + } + + private fun shouldBlockPrompt( + action: ContentAction.UpdatePromptRequestAction, + context: MiddlewareContext<BrowserState, BrowserAction>, + ): Boolean { + if (action.promptRequest is PromptRequest.Popup) { + context.state.findTab(action.sessionId)?.let { + if (it.content.promptRequests.lastOrNull { prompt -> prompt is PromptRequest.Popup } != null) { + scope.launch { + (action.promptRequest as PromptRequest.Popup).onDeny() + } + return true + } + } + } + return false + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/address/AddressAdapter.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/address/AddressAdapter.kt new file mode 100644 index 0000000000..055d231d1d --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/address/AddressAdapter.kt @@ -0,0 +1,68 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.address + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.annotation.VisibleForTesting +import androidx.recyclerview.widget.DiffUtil +import androidx.recyclerview.widget.ListAdapter +import androidx.recyclerview.widget.RecyclerView +import mozilla.components.concept.storage.Address +import mozilla.components.feature.prompts.R + +@VisibleForTesting +internal object AddressDiffCallback : DiffUtil.ItemCallback<Address>() { + override fun areItemsTheSame(oldItem: Address, newItem: Address) = + oldItem.guid == newItem.guid + + override fun areContentsTheSame(oldItem: Address, newItem: Address) = + oldItem == newItem +} + +/** + * RecyclerView adapter for displaying address items. + */ +internal class AddressAdapter( + private val onAddressSelected: (Address) -> Unit, +) : ListAdapter<Address, AddressViewHolder>(AddressDiffCallback) { + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AddressViewHolder { + val view = LayoutInflater + .from(parent.context) + .inflate(R.layout.mozac_feature_prompts_address_list_item, parent, false) + return AddressViewHolder(view, onAddressSelected) + } + + override fun onBindViewHolder(holder: AddressViewHolder, position: Int) { + holder.bind(getItem(position)) + } +} + +/** + * View holder for a address item. + */ +@VisibleForTesting +internal class AddressViewHolder( + itemView: View, + private val onAddressSelected: (Address) -> Unit, +) : RecyclerView.ViewHolder(itemView), View.OnClickListener { + @VisibleForTesting + lateinit var address: Address + + init { + itemView.setOnClickListener(this) + } + + fun bind(address: Address) { + this.address = address + itemView.findViewById<TextView>(R.id.address_name)?.text = address.addressLabel + } + + override fun onClick(v: View?) { + onAddressSelected(address) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/address/AddressDelegate.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/address/AddressDelegate.kt new file mode 100644 index 0000000000..00838b8965 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/address/AddressDelegate.kt @@ -0,0 +1,33 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.address + +import mozilla.components.concept.storage.Address +import mozilla.components.feature.prompts.concept.SelectablePromptView + +/** + * Delegate for address picker + */ +interface AddressDelegate { + /** + * The [SelectablePromptView] used for [AddressPicker] to display a + * selectable prompt list of address options. + */ + val addressPickerView: SelectablePromptView<Address>? + + /** + * Callback invoked when the user clicks "Manage addresses" from + * select address prompt. + */ + val onManageAddresses: () -> Unit +} + +/** + * Default implementation for address picker delegate + */ +class DefaultAddressDelegate( + override val addressPickerView: SelectablePromptView<Address>? = null, + override val onManageAddresses: () -> Unit = {}, +) : AddressDelegate diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/address/AddressPicker.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/address/AddressPicker.kt new file mode 100644 index 0000000000..b1be8ac212 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/address/AddressPicker.kt @@ -0,0 +1,89 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.address + +import mozilla.components.browser.state.action.ContentAction +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.concept.storage.Address +import mozilla.components.feature.prompts.concept.SelectablePromptView +import mozilla.components.feature.prompts.consumePromptFrom +import mozilla.components.feature.prompts.facts.emitAddressAutofillDismissedFact +import mozilla.components.feature.prompts.facts.emitAddressAutofillShownFact +import mozilla.components.support.base.log.logger.Logger + +/** + * Interactor that implements [SelectablePromptView.Listener] and notifies the feature about actions + * the user performed in the address picker. + * + * @property store The [BrowserStore] this feature should subscribe to. + * @property addressSelectBar The [SelectablePromptView] view into which the select address + * prompt will be inflated. + * @property onManageAddresses Callback invoked when user clicks on "Manage adresses" button from + * select address prompt. + * @property sessionId The session ID which requested the prompt. + */ +class AddressPicker( + private val store: BrowserStore, + private val addressSelectBar: SelectablePromptView<Address>, + private val onManageAddresses: () -> Unit = {}, + private var sessionId: String? = null, +) : SelectablePromptView.Listener<Address> { + + init { + addressSelectBar.listener = this + } + + /** + * Shows the select address prompt in response to the [PromptRequest] event. + * + * @param request The [PromptRequest] containing the the address request data to be shown. + */ + internal fun handleSelectAddressRequest(request: PromptRequest.SelectAddress) { + emitAddressAutofillShownFact() + addressSelectBar.showPrompt(request.addresses) + } + + /** + * Dismisses the active [PromptRequest.SelectAddress] request. + * + * @param promptRequest The current active [PromptRequest.SelectAddress] or null + * otherwise. + */ + @Suppress("TooGenericExceptionCaught") + fun dismissSelectAddressRequest(promptRequest: PromptRequest.SelectAddress? = null) { + emitAddressAutofillDismissedFact() + addressSelectBar.hidePrompt() + + try { + if (promptRequest != null) { + promptRequest.onDismiss() + sessionId?.let { + store.dispatch(ContentAction.ConsumePromptRequestAction(it, promptRequest)) + } + return + } + + store.consumePromptFrom<PromptRequest.SelectAddress>(sessionId) { + it.onDismiss() + } + } catch (e: RuntimeException) { + Logger.error("Can't dismiss select address prompt", e) + } + } + + override fun onOptionSelect(option: Address) { + store.consumePromptFrom<PromptRequest.SelectAddress>(sessionId) { + it.onConfirm(option) + } + + addressSelectBar.hidePrompt() + } + + override fun onManageOptions() { + onManageAddresses.invoke() + dismissSelectAddressRequest() + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/address/AddressSelectBar.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/address/AddressSelectBar.kt new file mode 100644 index 0000000000..693b2cde34 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/address/AddressSelectBar.kt @@ -0,0 +1,151 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.address + +import android.content.Context +import android.content.res.ColorStateList +import android.util.AttributeSet +import android.view.View +import androidx.appcompat.widget.AppCompatImageView +import androidx.appcompat.widget.AppCompatTextView +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.content.withStyledAttributes +import androidx.core.view.isVisible +import androidx.core.widget.ImageViewCompat +import androidx.core.widget.TextViewCompat +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import mozilla.components.concept.storage.Address +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.concept.SelectablePromptView +import mozilla.components.feature.prompts.facts.emitAddressAutofillExpandedFact +import mozilla.components.feature.prompts.facts.emitSuccessfulAddressAutofillSuccessFact +import mozilla.components.support.ktx.android.view.hideKeyboard + +/** + * A customizable "Select addresses" bar implementing [SelectablePromptView]. + */ +class AddressSelectBar @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0, +) : ConstraintLayout(context, attrs, defStyleAttr), SelectablePromptView<Address> { + + private var view: View? = null + private var recyclerView: RecyclerView? = null + private var headerView: AppCompatTextView? = null + private var expanderView: AppCompatImageView? = null + private var manageAddressesView: AppCompatTextView? = null + private var headerTextStyle: Int? = null + + private val listAdapter = AddressAdapter { address -> + listener?.apply { + onOptionSelect(address) + emitSuccessfulAddressAutofillSuccessFact() + } + } + + override var listener: SelectablePromptView.Listener<Address>? = null + + init { + context.withStyledAttributes( + attrs, + R.styleable.AddressSelectBar, + defStyleAttr, + 0, + ) { + val textStyle = + getResourceId( + R.styleable.AddressSelectBar_mozacSelectAddressHeaderTextStyle, + 0, + ) + + if (textStyle > 0) { + headerTextStyle = textStyle + } + } + } + + override fun hidePrompt() { + this.isVisible = false + recyclerView?.isVisible = false + manageAddressesView?.isVisible = false + + listAdapter.submitList(null) + + toggleSelectAddressHeader(shouldExpand = false) + } + + override fun showPrompt(options: List<Address>) { + if (view == null) { + view = View.inflate(context, LAYOUT_ID, this) + bindViews() + } + + listAdapter.submitList(options) + view?.isVisible = true + } + + private fun bindViews() { + recyclerView = findViewById<RecyclerView>(R.id.address_list).apply { + layoutManager = LinearLayoutManager(context, RecyclerView.VERTICAL, false) + adapter = listAdapter + } + + headerView = findViewById<AppCompatTextView>(R.id.select_address_header).apply { + setOnClickListener { + toggleSelectAddressHeader(shouldExpand = recyclerView?.isVisible != true) + } + + headerTextStyle?.let { appearance -> + TextViewCompat.setTextAppearance(this, appearance) + currentTextColor.let { color -> + TextViewCompat.setCompoundDrawableTintList(this, ColorStateList.valueOf(color)) + } + } + } + + expanderView = + findViewById<AppCompatImageView>(R.id.mozac_feature_address_expander).apply { + headerView?.currentTextColor?.let { + ImageViewCompat.setImageTintList(this, ColorStateList.valueOf(it)) + } + } + + manageAddressesView = findViewById<AppCompatTextView>(R.id.manage_addresses).apply { + setOnClickListener { + listener?.onManageOptions() + } + } + } + + /** + * Toggles the visibility of the list of address items in the prompt. + * + * @param shouldExpand True if the list of addresses should be displayed, false otherwise. + */ + private fun toggleSelectAddressHeader(shouldExpand: Boolean) { + recyclerView?.isVisible = shouldExpand + manageAddressesView?.isVisible = shouldExpand + + if (shouldExpand) { + emitAddressAutofillExpandedFact() + view?.hideKeyboard() + expanderView?.rotation = ROTATE_180 + headerView?.contentDescription = + context.getString(R.string.mozac_feature_prompts_collapse_address_content_description_2) + } else { + expanderView?.rotation = 0F + headerView?.contentDescription = + context.getString(R.string.mozac_feature_prompts_expand_address_content_description_2) + } + } + + companion object { + val LAYOUT_ID = R.layout.mozac_feature_prompts_address_select_prompt + + private const val ROTATE_180 = 180F + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/concept/PasswordPromptView.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/concept/PasswordPromptView.kt new file mode 100644 index 0000000000..71dd678d09 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/concept/PasswordPromptView.kt @@ -0,0 +1,42 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.concept + +/** + * An interface for views that can display a generated strong password prompt. + */ +interface PasswordPromptView { + + var listener: Listener? + + /** + * Shows a simple prompt with the given [generatedPassword]. + */ + fun showPrompt( + generatedPassword: String, + url: String, + onSaveLoginWithStrongPassword: (url: String, password: String) -> Unit, + ) + + /** + * Hides the prompt. + */ + fun hidePrompt() + + /** + * Interface to allow a class to listen to generated strong password event events. + */ + interface Listener { + /** + * Called when a user wants to use a strong generated password. + * + */ + fun onUseGeneratedPassword( + generatedPassword: String, + url: String, + onSaveLoginWithStrongPassword: (url: String, password: String) -> Unit, + ) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/concept/SelectablePromptView.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/concept/SelectablePromptView.kt new file mode 100644 index 0000000000..0db9a256a0 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/concept/SelectablePromptView.kt @@ -0,0 +1,49 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.concept + +import android.view.View + +/** + * An interface for views that can display an option selection prompt. + */ +interface SelectablePromptView<T> { + + var listener: Listener<T>? + + /** + * Shows an option selection prompt with the provided options. + * + * @param options A list of options to display in the prompt. + */ + fun showPrompt(options: List<T>) + + /** + * Hides the option selection prompt. + */ + fun hidePrompt() + + /** + * Casts this [SelectablePromptView] interface to an Android [View] object. + */ + fun asView(): View = (this as View) + + /** + * Interface to allow a class to listen to the option selection prompt events. + */ + interface Listener<in T> { + /** + * Called when an user selects an options from the prompt. + * + * @param option The selected option. + */ + fun onOptionSelect(option: T) + + /** + * Called when the user invokes the option to manage the list of options. + */ + fun onManageOptions() + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/creditcard/CreditCardDelegate.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/creditcard/CreditCardDelegate.kt new file mode 100644 index 0000000000..9723d0d521 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/creditcard/CreditCardDelegate.kt @@ -0,0 +1,34 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.creditcard + +import mozilla.components.concept.storage.CreditCardEntry +import mozilla.components.feature.prompts.concept.SelectablePromptView + +/** + * Delegate for credit card picker and related callbacks + */ +interface CreditCardDelegate { + /** + * The [SelectablePromptView] used for [CreditCardPicker] to display a + * selectable prompt list of credit cards. + */ + val creditCardPickerView: SelectablePromptView<CreditCardEntry>? + get() = null + + /** + * Callback invoked when a user selects "Manage credit cards" + * from the select credit card prompt. + */ + val onManageCreditCards: () -> Unit + get() = {} + + /** + * Callback invoked when a user selects a credit card option + * from the select credit card prompt + */ + val onSelectCreditCard: () -> Unit + get() = {} +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/creditcard/CreditCardItemViewHolder.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/creditcard/CreditCardItemViewHolder.kt new file mode 100644 index 0000000000..0c79c37086 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/creditcard/CreditCardItemViewHolder.kt @@ -0,0 +1,48 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.creditcard + +import android.view.View +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import mozilla.components.concept.storage.CreditCardEntry +import mozilla.components.feature.prompts.R +import mozilla.components.support.utils.creditCardIssuerNetwork + +/** + * View holder for displaying a credit card item. + * + * @param onCreditCardSelected Callback invoked when a credit card item is selected. + */ +class CreditCardItemViewHolder( + view: View, + private val onCreditCardSelected: (CreditCardEntry) -> Unit, +) : RecyclerView.ViewHolder(view) { + + /** + * Binds the view with the provided [CreditCardEntry]. + * + * @param creditCard The [CreditCardEntry] to display. + */ + fun bind(creditCard: CreditCardEntry) { + itemView.findViewById<ImageView>(R.id.credit_card_logo) + .setImageResource(creditCard.cardType.creditCardIssuerNetwork().icon) + + itemView.findViewById<TextView>(R.id.credit_card_number).text = + creditCard.obfuscatedCardNumber + + itemView.findViewById<TextView>(R.id.credit_card_expiration_date).text = + creditCard.expiryDate + + itemView.setOnClickListener { + onCreditCardSelected(creditCard) + } + } + + companion object { + val LAYOUT_ID = R.layout.mozac_feature_prompts_credit_card_list_item + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/creditcard/CreditCardPicker.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/creditcard/CreditCardPicker.kt new file mode 100644 index 0000000000..f6fd58d17c --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/creditcard/CreditCardPicker.kt @@ -0,0 +1,119 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.creditcard + +import androidx.annotation.VisibleForTesting +import mozilla.components.browser.state.action.ContentAction +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.concept.storage.CreditCardEntry +import mozilla.components.feature.prompts.concept.SelectablePromptView +import mozilla.components.feature.prompts.consumePromptFrom +import mozilla.components.feature.prompts.facts.emitCreditCardAutofillDismissedFact +import mozilla.components.feature.prompts.facts.emitCreditCardAutofillShownFact +import mozilla.components.support.base.log.logger.Logger + +/** + * Interactor that implements [SelectablePromptView.Listener] and notifies the feature about actions + * the user performed in the credit card picker. + * + * @property store The [BrowserStore] this feature should subscribe to. + * @property creditCardSelectBar The [SelectablePromptView] view into which the select credit card + * prompt will be inflated. + * @property manageCreditCardsCallback A callback invoked when a user selects "Manage credit cards" + * from the select credit card prompt. + * @property selectCreditCardCallback A callback invoked when a user selects a credit card option + * from the select credit card prompt + * @property sessionId The session ID which requested the prompt. + */ +class CreditCardPicker( + private val store: BrowserStore, + private val creditCardSelectBar: SelectablePromptView<CreditCardEntry>, + private val manageCreditCardsCallback: () -> Unit = {}, + private val selectCreditCardCallback: () -> Unit = {}, + private var sessionId: String? = null, +) : SelectablePromptView.Listener<CreditCardEntry> { + + init { + creditCardSelectBar.listener = this + } + + // The selected credit card option to confirm. + @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + internal var selectedCreditCard: CreditCardEntry? = null + + override fun onManageOptions() { + manageCreditCardsCallback.invoke() + dismissSelectCreditCardRequest() + } + + override fun onOptionSelect(option: CreditCardEntry) { + selectedCreditCard = option + creditCardSelectBar.hidePrompt() + selectCreditCardCallback.invoke() + } + + /** + * Called on a successful authentication to confirm the selected credit card option. + */ + fun onAuthSuccess() { + store.consumePromptFrom<PromptRequest.SelectCreditCard>(sessionId) { + selectedCreditCard?.let { creditCard -> + it.onConfirm(creditCard) + } + + selectedCreditCard = null + } + } + + /** + * Called on a failed authentication to dismiss the current select credit card prompt request. + */ + fun onAuthFailure() { + selectedCreditCard = null + + store.consumePromptFrom<PromptRequest.SelectCreditCard>(sessionId) { + it.onDismiss() + } + } + + /** + * Dismisses the active select credit card request. + * + * @param promptRequest The current active [PromptRequest.SelectCreditCard] or null + * otherwise. + */ + @Suppress("TooGenericExceptionCaught") + fun dismissSelectCreditCardRequest(promptRequest: PromptRequest.SelectCreditCard? = null) { + emitCreditCardAutofillDismissedFact() + creditCardSelectBar.hidePrompt() + + try { + if (promptRequest != null) { + promptRequest.onDismiss() + sessionId?.let { + store.dispatch(ContentAction.ConsumePromptRequestAction(it, promptRequest)) + } + return + } + + store.consumePromptFrom<PromptRequest.SelectCreditCard>(sessionId) { + it.onDismiss() + } + } catch (e: RuntimeException) { + Logger.error("Can't dismiss this select credit card prompt", e) + } + } + + /** + * Shows the select credit card prompt in response to the [PromptRequest] event. + * + * @param request The [PromptRequest] containing the the credit card request data to be shown. + */ + internal fun handleSelectCreditCardRequest(request: PromptRequest.SelectCreditCard) { + emitCreditCardAutofillShownFact() + creditCardSelectBar.showPrompt(request.creditCards) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/creditcard/CreditCardSaveDialogFragment.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/creditcard/CreditCardSaveDialogFragment.kt new file mode 100644 index 0000000000..d5c5b64518 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/creditcard/CreditCardSaveDialogFragment.kt @@ -0,0 +1,210 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.creditcard + +import android.app.Dialog +import android.content.DialogInterface +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.Button +import android.widget.FrameLayout +import android.widget.ImageView +import android.widget.TextView +import androidx.annotation.VisibleForTesting +import androidx.appcompat.widget.AppCompatTextView +import androidx.core.view.isVisible +import com.google.android.material.bottomsheet.BottomSheetBehavior +import com.google.android.material.bottomsheet.BottomSheetDialog +import kotlinx.coroutines.Dispatchers.IO +import kotlinx.coroutines.Dispatchers.Main +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext +import mozilla.components.concept.storage.CreditCardEntry +import mozilla.components.concept.storage.CreditCardValidationDelegate.Result +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.dialog.KEY_PROMPT_UID +import mozilla.components.feature.prompts.dialog.KEY_SESSION_ID +import mozilla.components.feature.prompts.dialog.KEY_SHOULD_DISMISS_ON_LOAD +import mozilla.components.feature.prompts.dialog.PromptDialogFragment +import mozilla.components.feature.prompts.facts.emitCreditCardAutofillCreatedFact +import mozilla.components.feature.prompts.facts.emitCreditCardAutofillUpdatedFact +import mozilla.components.support.ktx.android.content.appName +import mozilla.components.support.ktx.android.view.toScope +import mozilla.components.support.utils.creditCardIssuerNetwork +import mozilla.components.support.utils.ext.getParcelableCompat + +private const val KEY_CREDIT_CARD = "KEY_CREDIT_CARD" + +/** + * [android.support.v4.app.DialogFragment] implementation to display a dialog that allows + * user to save a new credit card or update an existing credit card. + */ +internal class CreditCardSaveDialogFragment : PromptDialogFragment() { + + @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + internal val creditCard by lazy { + safeArguments.getParcelableCompat(KEY_CREDIT_CARD, CreditCardEntry::class.java)!! + } + + @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + internal var confirmResult: Result = Result.CanBeCreated + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + return BottomSheetDialog(requireContext(), R.style.MozDialogStyle).apply { + setCancelable(true) + setOnShowListener { + val bottomSheet = + findViewById<View>(com.google.android.material.R.id.design_bottom_sheet) as FrameLayout + val behavior = BottomSheetBehavior.from(bottomSheet) + behavior.state = BottomSheetBehavior.STATE_EXPANDED + } + } + } + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle?, + ): View { + return LayoutInflater.from(requireContext()).inflate( + R.layout.mozac_feature_prompt_save_credit_card_prompt, + container, + false, + ) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + view.findViewById<ImageView>(R.id.credit_card_logo) + .setImageResource(creditCard.cardType.creditCardIssuerNetwork().icon) + + view.findViewById<TextView>(R.id.save_credit_card_message).text = + getString( + R.string.mozac_feature_prompts_save_credit_card_prompt_body_2, + context?.appName, + ) + + view.findViewById<TextView>(R.id.credit_card_number).text = creditCard.obfuscatedCardNumber + view.findViewById<TextView>(R.id.credit_card_expiration_date).text = creditCard.expiryDate + + view.findViewById<Button>(R.id.save_confirm).setOnClickListener { + feature?.onConfirm( + sessionId = sessionId, + promptRequestUID = promptRequestUID, + value = creditCard, + ) + dismiss() + emitSaveUpdateFact() + } + + view.findViewById<Button>(R.id.save_cancel).setOnClickListener { + feature?.onCancel( + sessionId = sessionId, + promptRequestUID = promptRequestUID, + ) + dismiss() + } + + updateUI(view) + } + + /** + * Emit the save or update fact based on the confirm action for the credit card. + */ + @VisibleForTesting + internal fun emitSaveUpdateFact() { + when (confirmResult) { + is Result.CanBeCreated -> { + emitCreditCardAutofillCreatedFact() + } + is Result.CanBeUpdated -> { + emitCreditCardAutofillUpdatedFact() + } + } + } + + override fun onCancel(dialog: DialogInterface) { + super.onCancel(dialog) + feature?.onCancel( + sessionId = sessionId, + promptRequestUID = promptRequestUID, + ) + } + + /** + * Updates the dialog based on whether a save or update credit card state should be displayed. + */ + private fun updateUI(view: View) = view.toScope().launch(IO) { + val validationDelegate = feature?.creditCardValidationDelegate ?: return@launch + confirmResult = validationDelegate.shouldCreateOrUpdate(creditCard) + + withContext(Main) { + when (confirmResult) { + is Result.CanBeCreated -> setViewText( + view = view, + header = requireContext().getString(R.string.mozac_feature_prompts_save_credit_card_prompt_title), + cancelButtonText = requireContext().getString(R.string.mozac_feature_prompt_not_now), + confirmButtonText = requireContext().getString(R.string.mozac_feature_prompt_save_confirmation), + ) + is Result.CanBeUpdated -> setViewText( + view = view, + header = requireContext().getString(R.string.mozac_feature_prompts_update_credit_card_prompt_title), + cancelButtonText = requireContext().getString(R.string.mozac_feature_prompts_cancel), + confirmButtonText = requireContext().getString(R.string.mozac_feature_prompt_update_confirmation), + showMessageBody = false, + ) + } + } + } + + /** + * Updates the header and button text in the dialog. + * + * @param view The view associated with the dialog. + * @param header The header text to be displayed. + * @param cancelButtonText The cancel button text to be displayed. + * @param confirmButtonText The confirm button text to be displayed. + * @param showMessageBody Whether or not to show the dialog message body text. + */ + @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + internal fun setViewText( + view: View, + header: String, + cancelButtonText: String, + confirmButtonText: String, + showMessageBody: Boolean = true, + ) { + view.findViewById<AppCompatTextView>(R.id.save_credit_card_message).isVisible = + showMessageBody + view.findViewById<AppCompatTextView>(R.id.save_credit_card_header).text = header + view.findViewById<Button>(R.id.save_cancel).text = cancelButtonText + view.findViewById<Button>(R.id.save_confirm).text = confirmButtonText + } + + companion object { + fun newInstance( + sessionId: String, + promptRequestUID: String, + shouldDismissOnLoad: Boolean, + creditCard: CreditCardEntry, + ): CreditCardSaveDialogFragment { + val fragment = CreditCardSaveDialogFragment() + val arguments = fragment.arguments ?: Bundle() + + with(arguments) { + putString(KEY_SESSION_ID, sessionId) + putString(KEY_PROMPT_UID, promptRequestUID) + putBoolean(KEY_SHOULD_DISMISS_ON_LOAD, shouldDismissOnLoad) + putParcelable(KEY_CREDIT_CARD, creditCard) + } + + fragment.arguments = arguments + return fragment + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/creditcard/CreditCardSelectBar.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/creditcard/CreditCardSelectBar.kt new file mode 100644 index 0000000000..93fcdeeca0 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/creditcard/CreditCardSelectBar.kt @@ -0,0 +1,152 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.creditcard + +import android.content.Context +import android.content.res.ColorStateList +import android.util.AttributeSet +import android.view.View +import androidx.appcompat.widget.AppCompatImageView +import androidx.appcompat.widget.AppCompatTextView +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.content.withStyledAttributes +import androidx.core.view.isVisible +import androidx.core.widget.ImageViewCompat +import androidx.core.widget.TextViewCompat +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import mozilla.components.concept.storage.CreditCardEntry +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.concept.SelectablePromptView +import mozilla.components.feature.prompts.facts.emitCreditCardAutofillExpandedFact +import mozilla.components.feature.prompts.facts.emitSuccessfulCreditCardAutofillSuccessFact +import mozilla.components.support.ktx.android.view.hideKeyboard + +/** + * A customizable "Select credit card" bar implementing [SelectablePromptView]. + */ +class CreditCardSelectBar @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0, +) : ConstraintLayout(context, attrs, defStyleAttr), SelectablePromptView<CreditCardEntry> { + + private var view: View? = null + private var recyclerView: RecyclerView? = null + private var headerView: AppCompatTextView? = null + private var expanderView: AppCompatImageView? = null + private var manageCreditCardsButtonView: AppCompatTextView? = null + private var headerTextStyle: Int? = null + + private val listAdapter = CreditCardsAdapter { creditCard -> + listener?.apply { + onOptionSelect(creditCard) + emitSuccessfulCreditCardAutofillSuccessFact() + } + } + + override var listener: SelectablePromptView.Listener<CreditCardEntry>? = null + + init { + context.withStyledAttributes( + attrs, + R.styleable.CreditCardSelectBar, + defStyleAttr, + 0, + ) { + val textStyle = + getResourceId( + R.styleable.CreditCardSelectBar_mozacSelectCreditCardHeaderTextStyle, + 0, + ) + + if (textStyle > 0) { + headerTextStyle = textStyle + } + } + } + + override fun hidePrompt() { + this.isVisible = false + recyclerView?.isVisible = false + manageCreditCardsButtonView?.isVisible = false + + listAdapter.submitList(null) + + toggleSelectCreditCardHeader(shouldExpand = false) + } + + override fun showPrompt(options: List<CreditCardEntry>) { + if (view == null) { + view = View.inflate(context, LAYOUT_ID, this) + bindViews() + } + + listAdapter.submitList(options) + view?.isVisible = true + } + + private fun bindViews() { + recyclerView = findViewById<RecyclerView>(R.id.credit_cards_list).apply { + layoutManager = LinearLayoutManager(context, RecyclerView.VERTICAL, false) + adapter = listAdapter + } + + headerView = findViewById<AppCompatTextView>(R.id.select_credit_card_header).apply { + setOnClickListener { + toggleSelectCreditCardHeader(shouldExpand = recyclerView?.isVisible != true) + } + + headerTextStyle?.let { + TextViewCompat.setTextAppearance(this, it) + currentTextColor.let { + TextViewCompat.setCompoundDrawableTintList(this, ColorStateList.valueOf(it)) + } + } + } + + expanderView = + findViewById<AppCompatImageView>(R.id.mozac_feature_credit_cards_expander).apply { + headerView?.currentTextColor?.let { + ImageViewCompat.setImageTintList(this, ColorStateList.valueOf(it)) + } + } + + manageCreditCardsButtonView = + findViewById<AppCompatTextView>(R.id.manage_credit_cards).apply { + setOnClickListener { + listener?.onManageOptions() + } + } + } + + /** + * Toggles the visibility of the list of credit cards in the prompt. + * + * @param shouldExpand True if the list of credit cards should be displayed, false otherwise. + */ + private fun toggleSelectCreditCardHeader(shouldExpand: Boolean) { + recyclerView?.isVisible = shouldExpand + manageCreditCardsButtonView?.isVisible = shouldExpand + + if (shouldExpand) { + view?.hideKeyboard() + expanderView?.rotation = ROTATE_180 + headerView?.contentDescription = + context.getString(R.string.mozac_feature_prompts_collapse_credit_cards_content_description_2) + emitCreditCardAutofillExpandedFact() + } else { + expanderView?.rotation = 0F + headerView?.contentDescription = + context.getString(R.string.mozac_feature_prompts_expand_credit_cards_content_description_2) + } + } + + companion object { + val LAYOUT_ID = R.layout.mozac_feature_prompts_credit_card_select_prompt + + private const val ROTATE_180 = 180F + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/creditcard/CreditCardsAdapter.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/creditcard/CreditCardsAdapter.kt new file mode 100644 index 0000000000..cfa7f4d265 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/creditcard/CreditCardsAdapter.kt @@ -0,0 +1,39 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.creditcard + +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.DiffUtil +import androidx.recyclerview.widget.ListAdapter +import mozilla.components.concept.storage.CreditCardEntry + +/** + * Adapter for a list of credit cards to be displayed. + * + * @param onCreditCardSelected Callback invoked when a credit card item is selected. + */ +class CreditCardsAdapter( + private val onCreditCardSelected: (CreditCardEntry) -> Unit, +) : ListAdapter<CreditCardEntry, CreditCardItemViewHolder>(DiffCallback) { + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CreditCardItemViewHolder { + val view = LayoutInflater.from(parent.context) + .inflate(CreditCardItemViewHolder.LAYOUT_ID, parent, false) + return CreditCardItemViewHolder(view, onCreditCardSelected) + } + + override fun onBindViewHolder(holder: CreditCardItemViewHolder, position: Int) { + holder.bind(getItem(position)) + } + + internal object DiffCallback : DiffUtil.ItemCallback<CreditCardEntry>() { + override fun areItemsTheSame(oldItem: CreditCardEntry, newItem: CreditCardEntry) = + oldItem.guid == newItem.guid + + override fun areContentsTheSame(oldItem: CreditCardEntry, newItem: CreditCardEntry) = + oldItem == newItem + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/AbstractPromptTextDialogFragment.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/AbstractPromptTextDialogFragment.kt new file mode 100644 index 0000000000..b1ee54fa98 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/AbstractPromptTextDialogFragment.kt @@ -0,0 +1,72 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.annotation.SuppressLint +import android.text.method.ScrollingMovementMethod +import android.view.LayoutInflater +import android.view.View +import android.widget.CheckBox +import android.widget.TextView +import androidx.annotation.IdRes +import androidx.appcompat.app.AlertDialog +import androidx.core.view.isVisible +import mozilla.components.feature.prompts.R + +internal const val KEY_MANY_ALERTS = "KEY_MANY_ALERTS" +internal const val KEY_USER_CHECK_BOX = "KEY_USER_CHECK_BOX" + +/** + * An abstract alert for showing a text message plus a checkbox for handling [hasShownManyDialogs]. + */ +internal abstract class AbstractPromptTextDialogFragment : PromptDialogFragment() { + + /** + * Tells if a checkbox should be shown for preventing this [sessionId] from showing more dialogs. + */ + internal val hasShownManyDialogs: Boolean by lazy { safeArguments.getBoolean(KEY_MANY_ALERTS) } + + /** + * Stores the user's decision from the checkbox + * for preventing this [sessionId] from showing more dialogs. + */ + internal var userSelectionNoMoreDialogs: Boolean + get() = safeArguments.getBoolean(KEY_USER_CHECK_BOX) + set(value) { + safeArguments.putBoolean(KEY_USER_CHECK_BOX, value) + } + + /** + * Creates custom view that adds a [TextView] + [CheckBox] and attach the corresponding + * events for handling [hasShownManyDialogs]. + */ + @SuppressLint("InflateParams") + internal fun setCustomMessageView(builder: AlertDialog.Builder): AlertDialog.Builder { + val inflater = LayoutInflater.from(requireContext()) + val view = inflater.inflate(R.layout.mozac_feature_prompt_with_check_box, null) + val textView = view.findViewById<TextView>(R.id.message) + textView.text = message + textView.movementMethod = ScrollingMovementMethod() + + addCheckBoxIfNeeded(view) + + builder.setView(view) + + return builder + } + + internal fun addCheckBoxIfNeeded( + view: View, + @IdRes id: Int = R.id.mozac_feature_prompts_no_more_dialogs_check_box, + ) { + if ((hasShownManyDialogs)) { + val checkBox = view.findViewById<CheckBox>(id) + checkBox.isVisible = true + checkBox.setOnCheckedChangeListener { _, isChecked -> + userSelectionNoMoreDialogs = isChecked + } + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/AlertDialogFragment.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/AlertDialogFragment.kt new file mode 100644 index 0000000000..d14bb23047 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/AlertDialogFragment.kt @@ -0,0 +1,80 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.app.Dialog +import android.content.DialogInterface +import android.os.Bundle +import androidx.appcompat.app.AlertDialog +import mozilla.components.ui.widgets.withCenterAlignedButtons + +/** + * [android.support.v4.app.DialogFragment] implementation to display web Alerts with native dialogs. + */ +internal class AlertDialogFragment : AbstractPromptTextDialogFragment() { + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + val builder = AlertDialog.Builder(requireContext()) + .setTitle(title) + .setCancelable(true) + .setPositiveButton(android.R.string.ok) { _, _ -> + onPositiveClickAction() + } + return setCustomMessageView(builder) + .create() + .withCenterAlignedButtons() + } + + override fun onCancel(dialog: DialogInterface) { + super.onCancel(dialog) + feature?.onCancel(sessionId, promptRequestUID) + } + + private fun onPositiveClickAction() { + if (!userSelectionNoMoreDialogs) { + feature?.onCancel(sessionId, promptRequestUID) + } else { + feature?.onConfirm(sessionId, promptRequestUID, userSelectionNoMoreDialogs) + } + } + + companion object { + /** + * A builder method for creating a [AlertDialogFragment] + * @param sessionId to create the dialog. + * @param promptRequestUID identifier of the [PromptRequest] for which this dialog is shown. + * @param shouldDismissOnLoad whether or not the dialog should automatically be dismissed + * when a new page is loaded. + * @param title the title of the dialog. + * @param message the message of the dialog. + * @param hasShownManyDialogs tells if this [sessionId] has shown many dialogs + * in a short period of time, if is true a checkbox will be part of the dialog, for the user + * to choose if wants to prevent this [sessionId] continuing showing dialogs. + */ + fun newInstance( + sessionId: String, + promptRequestUID: String, + shouldDismissOnLoad: Boolean, + title: String, + message: String, + hasShownManyDialogs: Boolean, + ): AlertDialogFragment { + val fragment = AlertDialogFragment() + val arguments = fragment.arguments ?: Bundle() + + with(arguments) { + putString(KEY_SESSION_ID, sessionId) + putString(KEY_PROMPT_UID, promptRequestUID) + putBoolean(KEY_SHOULD_DISMISS_ON_LOAD, shouldDismissOnLoad) + putString(KEY_TITLE, title) + putString(KEY_MESSAGE, message) + putBoolean(KEY_MANY_ALERTS, hasShownManyDialogs) + } + + fragment.arguments = arguments + return fragment + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/AuthenticationDialogFragment.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/AuthenticationDialogFragment.kt new file mode 100644 index 0000000000..af9ccd3a9b --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/AuthenticationDialogFragment.kt @@ -0,0 +1,189 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.annotation.SuppressLint +import android.app.Dialog +import android.content.DialogInterface +import android.os.Bundle +import android.text.Editable +import android.text.TextWatcher +import android.view.LayoutInflater +import android.view.View +import android.view.View.GONE +import androidx.annotation.StringRes +import androidx.annotation.VisibleForTesting +import androidx.annotation.VisibleForTesting.Companion.PRIVATE +import androidx.appcompat.app.AlertDialog +import mozilla.components.feature.prompts.R +import mozilla.components.ui.widgets.withCenterAlignedButtons + +private const val KEY_USERNAME_EDIT_TEXT = "KEY_USERNAME_EDIT_TEXT" +private const val KEY_PASSWORD_EDIT_TEXT = "KEY_PASSWORD_EDIT_TEXT" +private const val KEY_ONLY_SHOW_PASSWORD = "KEY_ONLY_SHOW_PASSWORD" +private const val KEY_URL = "KEY_SESSION_URL" + +/** + * [android.support.v4.app.DialogFragment] implementation to display a + * <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication">authentication</a> + * dialog with native dialogs. + */ +internal class AuthenticationDialogFragment : PromptDialogFragment() { + + internal val onlyShowPassword: Boolean by lazy { safeArguments.getBoolean(KEY_ONLY_SHOW_PASSWORD) } + + private var url: String? + get() = safeArguments.getString(KEY_URL, null) + set(value) { + safeArguments.putString(KEY_URL, value) + } + + internal var username: String + get() = safeArguments.getString(KEY_USERNAME_EDIT_TEXT, "") + set(value) { + safeArguments.putString(KEY_USERNAME_EDIT_TEXT, value) + } + + internal var password: String + get() = safeArguments.getString(KEY_PASSWORD_EDIT_TEXT, "") + set(value) { + safeArguments.putString(KEY_PASSWORD_EDIT_TEXT, value) + } + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + val builder = AlertDialog.Builder(requireContext()) + .setupTitle() + .setMessage(message) + .setCancelable(true) + .setNegativeButton(R.string.mozac_feature_prompts_cancel) { _, _ -> + feature?.onCancel(sessionId, promptRequestUID) + } + .setPositiveButton(android.R.string.ok) { _, _ -> + onPositiveClickAction() + } + return addLayout(builder).create().withCenterAlignedButtons() + } + + override fun onCancel(dialog: DialogInterface) { + super.onCancel(dialog) + feature?.onCancel(sessionId, promptRequestUID) + } + + private fun onPositiveClickAction() { + feature?.onConfirm(sessionId, promptRequestUID, username to password) + } + + @SuppressLint("InflateParams") + private fun addLayout(builder: AlertDialog.Builder): AlertDialog.Builder { + val inflater = LayoutInflater.from(requireContext()) + val view = inflater.inflate(R.layout.mozac_feature_prompt_auth_prompt, null) + + bindUsername(view) + bindPassword(view) + + return builder.setView(view) + } + + private fun bindUsername(view: View) { + // Username field uses the AutofillEditText so if the user focus is here, the autofill + // application can get the web domain info without searching through the view tree. + val usernameEditText = view.findViewById<AutofillEditText>(R.id.username) + usernameEditText.url = url + + if (onlyShowPassword) { + usernameEditText.visibility = GONE + } else { + usernameEditText.setText(username) + usernameEditText.addTextChangedListener( + object : TextWatcher { + override fun afterTextChanged(editable: Editable) { + username = editable.toString() + } + + override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) = Unit + + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) = Unit + }, + ) + } + } + + private fun bindPassword(view: View) { + // Password field uses the AutofillEditText so if the user focus is here, the autofill + // application can get the web domain info without searching through the view tree. + val passwordEditText = view.findViewById<AutofillEditText>(R.id.password) + passwordEditText.url = url + + passwordEditText.setText(password) + passwordEditText.addTextChangedListener( + object : TextWatcher { + override fun afterTextChanged(editable: Editable) { + password = editable.toString() + } + + override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) = Unit + + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) = Unit + }, + ) + } + + companion object { + /** + * A builder method for creating a [AuthenticationDialogFragment] + * @param sessionId the id of the session for which this dialog will be created. + * @param promptRequestUID identifier of the [PromptRequest] for which this dialog is shown. + * @param shouldDismissOnLoad whether or not the dialog should automatically be dismissed + * when a new page is loaded. + * @param title the title of the dialog. + * @param message the text that will go below title. + * @param username the default value of the username text field. + * @param password the default value of the password text field. + * @param onlyShowPassword indicates if the dialog should include an username text field. + */ + @Suppress("LongParameterList") + fun newInstance( + sessionId: String, + promptRequestUID: String, + shouldDismissOnLoad: Boolean, + title: String, + message: String, + username: String, + password: String, + onlyShowPassword: Boolean, + url: String?, + ): AuthenticationDialogFragment { + val fragment = AuthenticationDialogFragment() + val arguments = fragment.arguments ?: Bundle() + + with(arguments) { + putString(KEY_SESSION_ID, sessionId) + putString(KEY_PROMPT_UID, promptRequestUID) + putBoolean(KEY_SHOULD_DISMISS_ON_LOAD, shouldDismissOnLoad) + putString(KEY_TITLE, title) + putString(KEY_MESSAGE, message) + putBoolean(KEY_ONLY_SHOW_PASSWORD, onlyShowPassword) + putString(KEY_USERNAME_EDIT_TEXT, username) + putString(KEY_PASSWORD_EDIT_TEXT, password) + putString(KEY_URL, url) + } + + fragment.arguments = arguments + return fragment + } + + @StringRes + internal val DEFAULT_TITLE = R.string.mozac_feature_prompt_sign_in + } + + @VisibleForTesting(otherwise = PRIVATE) + internal fun AlertDialog.Builder.setupTitle(): AlertDialog.Builder { + return if (title.isEmpty()) { + setTitle(DEFAULT_TITLE) + } else { + setTitle(title) + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/AutofillEditText.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/AutofillEditText.kt new file mode 100644 index 0000000000..c094256f15 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/AutofillEditText.kt @@ -0,0 +1,31 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package mozilla.components.feature.prompts.dialog + +import android.content.Context +import android.os.Build +import android.util.AttributeSet +import android.view.ViewStructure +import androidx.appcompat.widget.AppCompatEditText + +/** + * [androidx.appcompat.widget.AppCompatEditText] implementation to add WebDomain information which + * allows autofill applications to detect which URL is requesting the authentication info. + */ +internal class AutofillEditText : AppCompatEditText { + internal var url: String? = null + + constructor (context: Context) : super(context) + + constructor (context: Context, attrs: AttributeSet?) : super(context, attrs) + + constructor (context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) + + override fun onProvideAutofillStructure(structure: ViewStructure?, flags: Int) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && url != null) { + structure?.setWebDomain(url) + } + super.onProvideAutofillStructure(structure, flags) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/BasicColorAdapter.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/BasicColorAdapter.kt new file mode 100644 index 0000000000..736ffde257 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/BasicColorAdapter.kt @@ -0,0 +1,131 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.graphics.Color +import android.graphics.Rect +import android.graphics.drawable.Drawable +import android.util.TypedValue +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.annotation.ColorInt +import androidx.annotation.VisibleForTesting +import androidx.core.content.ContextCompat +import androidx.core.graphics.BlendModeColorFilterCompat.createBlendModeColorFilterCompat +import androidx.core.graphics.BlendModeCompat +import androidx.core.graphics.BlendModeCompat.SRC_IN +import androidx.recyclerview.widget.DiffUtil +import androidx.recyclerview.widget.ListAdapter +import androidx.recyclerview.widget.RecyclerView +import mozilla.components.feature.prompts.R +import mozilla.components.support.utils.ColorUtils + +/** + * Represents an item in the [BasicColorAdapter] list. + * + * @property color color int that this item corresponds to. + * @property contentDescription accessibility description of this color. + * @property selected if true, this is the color that will be set when the dialog is closed. + */ +data class ColorItem( + @ColorInt val color: Int, + val contentDescription: String, + val selected: Boolean = false, +) + +private object ColorItemDiffCallback : DiffUtil.ItemCallback<ColorItem>() { + override fun areItemsTheSame(oldItem: ColorItem, newItem: ColorItem) = + oldItem.color == newItem.color + + override fun areContentsTheSame(oldItem: ColorItem, newItem: ColorItem) = + oldItem == newItem +} + +/** + * RecyclerView adapter for displaying color items. + */ +internal class BasicColorAdapter( + private val onColorSelected: (Int) -> Unit, +) : ListAdapter<ColorItem, ColorViewHolder>(ColorItemDiffCallback) { + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ColorViewHolder { + val view = LayoutInflater + .from(parent.context) + .inflate(R.layout.mozac_feature_prompts_color_item, parent, false) + return ColorViewHolder(view, onColorSelected) + } + + override fun onBindViewHolder(holder: ColorViewHolder, position: Int) { + holder.bind(getItem(position)) + } +} + +/** + * View holder for a color item. + */ +internal class ColorViewHolder( + itemView: View, + private val onColorSelected: (Int) -> Unit, +) : RecyclerView.ViewHolder(itemView), View.OnClickListener { + @VisibleForTesting + @ColorInt + internal var color: Int = Color.BLACK + + private val checkDrawable: Drawable? by lazy { + // Get the height of the row + val typedValue = TypedValue() + itemView.context.theme.resolveAttribute( + android.R.attr.listPreferredItemHeight, + typedValue, + true, + ) + var height = typedValue.getDimension(itemView.context.resources.displayMetrics).toInt() + + // Remove padding for the shadow + val backgroundPadding = Rect() + ContextCompat.getDrawable(itemView.context, R.drawable.color_picker_row_bg)?.getPadding(backgroundPadding) + height -= backgroundPadding.top + backgroundPadding.bottom + + ContextCompat.getDrawable(itemView.context, R.drawable.color_picker_checkmark)?.apply { + setBounds(0, 0, height, height) + } + } + + init { + itemView.setOnClickListener(this) + } + + fun bind(colorItem: ColorItem) { + // Save the color for the onClick callback + color = colorItem.color + + // Set the background to look like this item's color + itemView.background = itemView.background.apply { + colorFilter = createBlendModeColorFilterCompat( + colorItem.color, + BlendModeCompat.MODULATE, + ) + } + itemView.contentDescription = colorItem.contentDescription + + // Display the check mark + val check = if (colorItem.selected) { + checkDrawable?.apply { + val readableColor = ColorUtils.getReadableTextColor(color) + colorFilter = createBlendModeColorFilterCompat(readableColor, SRC_IN) + } + } else { + null + } + itemView.isActivated = colorItem.selected + (itemView as TextView).setCompoundDrawablesRelative(check, null, null, null) + } + + override fun onClick(v: View?) { + onColorSelected(color) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/ChoiceAdapter.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/ChoiceAdapter.kt new file mode 100644 index 0000000000..9f65ac6ab3 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/ChoiceAdapter.kt @@ -0,0 +1,217 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.CheckedTextView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import mozilla.components.concept.engine.prompt.Choice +import mozilla.components.feature.prompts.R + +/** + * RecyclerView adapter for displaying choice items. + */ +internal class ChoiceAdapter( + private val fragment: ChoiceDialogFragment, + private val inflater: LayoutInflater, +) : RecyclerView.Adapter<RecyclerView.ViewHolder>() { + + companion object { + internal const val TYPE_MULTIPLE = 1 + internal const val TYPE_SINGLE = 2 + internal const val TYPE_GROUP = 3 + internal const val TYPE_MENU = 4 + internal const val TYPE_MENU_SEPARATOR = 5 + } + + private val choices = mutableListOf<Choice>() + + init { + addItems(fragment.choices) + } + + override fun getItemViewType(position: Int): Int { + val item = choices[position] + return when { + fragment.isSingleChoice and item.isGroupType -> TYPE_GROUP + fragment.isSingleChoice -> TYPE_SINGLE + fragment.isMenuChoice -> if (item.isASeparator) TYPE_MENU_SEPARATOR else TYPE_MENU + item.isGroupType -> TYPE_GROUP + else -> TYPE_MULTIPLE + } + } + + override fun onCreateViewHolder(parent: ViewGroup, type: Int): RecyclerView.ViewHolder { + val layoutId = getLayoutId(type) + val view = inflater.inflate(layoutId, parent, false) + + return when (type) { + TYPE_GROUP -> GroupViewHolder(view) + + TYPE_MENU -> MenuViewHolder(view) + + TYPE_MENU_SEPARATOR -> MenuSeparatorViewHolder(view) + + TYPE_SINGLE -> SingleViewHolder(view) + + TYPE_MULTIPLE -> MultipleViewHolder(view) + + else -> throw IllegalArgumentException(" $type is not a valid layout type") + } + } + + override fun getItemCount(): Int = choices.size + + override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { + val choice = choices[position] + when (holder) { + is MenuSeparatorViewHolder -> return + + is GroupViewHolder -> { + holder.bind(choice) + } + + is SingleViewHolder -> { + holder.bind(choice, fragment) + } + + is MultipleViewHolder -> { + holder.bind(choice, fragment) + } + + is MenuViewHolder -> { + holder.bind(choice, fragment) + } + } + } + + private fun getLayoutId(itemType: Int): Int { + return when (itemType) { + TYPE_GROUP -> R.layout.mozac_feature_choice_group_item + TYPE_MULTIPLE -> R.layout.mozac_feature_multiple_choice_item + TYPE_SINGLE -> R.layout.mozac_feature_single_choice_item + TYPE_MENU -> R.layout.mozac_feature_menu_choice_item + TYPE_MENU_SEPARATOR -> R.layout.mozac_feature_menu_separator_choice_item + else -> throw IllegalArgumentException(" $itemType is not a valid layout dialog type") + } + } + + /** + * View holder for a single choice item. + */ + internal class SingleViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + internal val labelView = itemView.findViewById<CheckedTextView>(R.id.labelView) + + fun bind(choice: Choice, fragment: ChoiceDialogFragment) { + labelView.choice = choice + labelView.isChecked = choice.selected + + if (choice.enable) { + itemView.setOnClickListener { + val actualChoice = labelView.choice + fragment.onSelect(actualChoice) + labelView.toggle() + } + } else { + itemView.isClickable = false + } + } + } + + /** + * View holder for a Multiple choice item. + */ + internal class MultipleViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + internal val labelView = itemView.findViewById<CheckedTextView>(R.id.labelView) + + fun bind(choice: Choice, fragment: ChoiceDialogFragment) { + labelView.choice = choice + labelView.isChecked = choice in fragment.mapSelectChoice + + if (choice.enable) { + itemView.setOnClickListener { + val actualChoice = labelView.choice + with(fragment.mapSelectChoice) { + if (actualChoice in this) { + this -= actualChoice + } else { + this[actualChoice] = actualChoice + } + } + labelView.toggle() + } + } else { + itemView.isClickable = false + } + } + } + + /** + * View holder for a Menu choice item. + */ + internal class MenuViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + internal val labelView = itemView.findViewById<TextView>(R.id.labelView) + + fun bind(choice: Choice, fragment: ChoiceDialogFragment) { + labelView.choice = choice + + if (choice.enable) { + itemView.setOnClickListener { + val actualChoice = labelView.choice + fragment.onSelect(actualChoice) + } + } else { + itemView.isClickable = false + } + } + } + + /** + * View holder for a menu separator choice item. + */ + internal class MenuSeparatorViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) + + /** + * View holder for a group choice item. + */ + internal class GroupViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + internal val labelView = itemView.findViewById<TextView>(R.id.labelView) + + fun bind(choice: Choice) { + labelView.choice = choice + labelView.isEnabled = false + } + } + + private fun addItems(items: Array<Choice>, indent: String? = null) { + for (choice in items) { + if (indent != null && !choice.isGroupType) { + choice.label = indent + choice.label + } + + choices.add(choice) + + if (choice.isGroupType) { + val newIndent = if (indent != null) indent + '\t' else "\t" + addItems(requireNotNull(choice.children), newIndent) + } + + if (choice.selected) { + fragment.mapSelectChoice[choice] = choice + } + } + } +} + +internal var TextView.choice: Choice + get() = tag as Choice + set(value) { + this.text = value.label + this.isEnabled = value.enable + tag = value + } diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/ChoiceDialogFragment.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/ChoiceDialogFragment.kt new file mode 100644 index 0000000000..a15e09bf09 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/ChoiceDialogFragment.kt @@ -0,0 +1,145 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.annotation.SuppressLint +import android.app.Dialog +import android.content.DialogInterface +import android.os.Bundle +import android.os.Parcelable +import android.view.LayoutInflater +import android.view.View +import androidx.annotation.VisibleForTesting +import androidx.annotation.VisibleForTesting.Companion.PRIVATE +import androidx.appcompat.app.AlertDialog +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import mozilla.components.concept.engine.prompt.Choice +import mozilla.components.feature.prompts.R +import mozilla.components.support.utils.ext.getParcelableArrayCompat +import mozilla.components.ui.widgets.withCenterAlignedButtons + +private const val KEY_CHOICES = "KEY_CHOICES" +private const val KEY_DIALOG_TYPE = "KEY_DIALOG_TYPE" + +/** + * [android.support.v4.app.DialogFragment] implementation to display choice(options,optgroup and menu) + * web content in native dialogs. + */ +internal class ChoiceDialogFragment : PromptDialogFragment() { + + internal val choices: Array<Choice> by lazy { + safeArguments.getParcelableArrayCompat(KEY_CHOICES, Choice::class.java) ?: emptyArray() + } + + @VisibleForTesting + internal val dialogType: Int by lazy { safeArguments.getInt(KEY_DIALOG_TYPE) } + + internal val isSingleChoice get() = dialogType == SINGLE_CHOICE_DIALOG_TYPE + + internal val isMenuChoice get() = dialogType == MENU_CHOICE_DIALOG_TYPE + + internal val mapSelectChoice by lazy { HashMap<Choice, Choice>() } + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + return when (dialogType) { + SINGLE_CHOICE_DIALOG_TYPE -> createSingleChoiceDialog() + MULTIPLE_CHOICE_DIALOG_TYPE -> createMultipleChoiceDialog() + MENU_CHOICE_DIALOG_TYPE -> createSingleChoiceDialog() + else -> throw IllegalArgumentException(" $dialogType is not a valid choice dialog type") + } + } + + companion object { + fun newInstance( + choices: Array<Choice>, + sessionId: String, + promptRequestUID: String, + shouldDismissOnLoad: Boolean, + dialogType: Int, + ): ChoiceDialogFragment { + val fragment = ChoiceDialogFragment() + val arguments = fragment.arguments ?: Bundle() + + with(arguments) { + putParcelableArray(KEY_CHOICES, choices) + putString(KEY_SESSION_ID, sessionId) + putString(KEY_PROMPT_UID, promptRequestUID) + putBoolean(KEY_SHOULD_DISMISS_ON_LOAD, shouldDismissOnLoad) + putInt(KEY_DIALOG_TYPE, dialogType) + } + + fragment.arguments = arguments + + return fragment + } + + const val SINGLE_CHOICE_DIALOG_TYPE = 0 + const val MULTIPLE_CHOICE_DIALOG_TYPE = 1 + const val MENU_CHOICE_DIALOG_TYPE = 2 + } + + @SuppressLint("InflateParams") + internal fun createDialogContentView(inflater: LayoutInflater): View { + val index = choices.indexOfFirst { it.selected } + val view = inflater.inflate(R.layout.mozac_feature_choice_dialogs, null) + view.findViewById<RecyclerView>(R.id.recyclerView).apply { + layoutManager = LinearLayoutManager(context, RecyclerView.VERTICAL, false).also { + it.scrollToPosition(index) + } + adapter = ChoiceAdapter(this@ChoiceDialogFragment, inflater) + } + return view + } + + fun onSelect(selectedChoice: Choice) { + feature?.onConfirm(sessionId, promptRequestUID, selectedChoice) + dismiss() + } + + override fun onCancel(dialog: DialogInterface) { + super.onCancel(dialog) + feature?.onCancel(sessionId, promptRequestUID) + } + + private fun createSingleChoiceDialog(): AlertDialog { + val builder = AlertDialog.Builder(requireContext()) + val inflater = LayoutInflater.from(requireContext()) + val view = createDialogContentView(inflater) + + return builder.setView(view) + .setOnDismissListener { + feature?.onCancel(sessionId, promptRequestUID) + }.create() + } + + private fun createMultipleChoiceDialog(): AlertDialog { + val builder = AlertDialog.Builder(requireContext()) + val inflater = LayoutInflater.from(requireContext()) + val view = createDialogContentView(inflater) + + return builder.setView(view) + .setNegativeButton(R.string.mozac_feature_prompts_cancel) { _, _ -> + feature?.onCancel(sessionId, promptRequestUID) + } + .setPositiveButton(R.string.mozac_feature_prompts_ok) { _, _ -> + feature?.onConfirm(sessionId, promptRequestUID, mapSelectChoice.keys.toTypedArray()) + }.setOnDismissListener { + feature?.onCancel(sessionId, promptRequestUID) + }.create().withCenterAlignedButtons() + } +} + +@Suppress("UNCHECKED_CAST") +@VisibleForTesting(otherwise = PRIVATE) +internal fun Array<Parcelable>.toArrayOfChoices(): Array<Choice> { + return if (this.isArrayOf<Choice>()) { + this as Array<Choice> + } else { + Array(this.size) { index -> + this[index] as Choice + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/ColorPickerDialogFragment.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/ColorPickerDialogFragment.kt new file mode 100644 index 0000000000..83b849991e --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/ColorPickerDialogFragment.kt @@ -0,0 +1,164 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.annotation.SuppressLint +import android.app.Dialog +import android.content.DialogInterface +import android.graphics.Color +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import androidx.annotation.ColorInt +import androidx.annotation.VisibleForTesting +import androidx.appcompat.app.AlertDialog +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import mozilla.components.feature.prompts.R +import mozilla.components.ui.widgets.withCenterAlignedButtons + +private const val KEY_SELECTED_COLOR = "KEY_SELECTED_COLOR" + +private const val RGB_BIT_MASK = 0xffffff + +/** + * [androidx.fragment.app.DialogFragment] implementation for a color picker dialog. + */ +internal class ColorPickerDialogFragment : PromptDialogFragment(), DialogInterface.OnClickListener { + + @ColorInt + private var initiallySelectedCustomColor: Int? = null + private lateinit var defaultColors: List<ColorItem> + private lateinit var listAdapter: BasicColorAdapter + + @VisibleForTesting + internal var selectedColor: Int + get() = safeArguments.getInt(KEY_SELECTED_COLOR) + set(value) { + safeArguments.putInt(KEY_SELECTED_COLOR, value) + } + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog = + AlertDialog.Builder(requireContext()) + .setCancelable(true) + .setTitle(R.string.mozac_feature_prompts_choose_a_color) + .setNegativeButton(R.string.mozac_feature_prompts_cancel, this) + .setPositiveButton(R.string.mozac_feature_prompts_set_date, this) + .setView(createDialogContentView()) + .create() + .withCenterAlignedButtons() + + override fun onCancel(dialog: DialogInterface) { + super.onCancel(dialog) + onClick(dialog, DialogInterface.BUTTON_NEGATIVE) + } + + override fun onClick(dialog: DialogInterface?, which: Int) { + when (which) { + DialogInterface.BUTTON_POSITIVE -> + feature?.onConfirm(sessionId, promptRequestUID, selectedColor.toHexColor()) + DialogInterface.BUTTON_NEGATIVE -> feature?.onCancel(sessionId, promptRequestUID) + } + } + + @SuppressLint("InflateParams") + internal fun createDialogContentView(): View { + val view = LayoutInflater + .from(requireContext()) + .inflate(R.layout.mozac_feature_prompts_color_picker_dialogs, null) + + // Save the color selected when this dialog opened to show at the end + initiallySelectedCustomColor = selectedColor + + // Load list of colors from resources + val typedArray = resources.obtainTypedArray(R.array.mozac_feature_prompts_default_colors) + + defaultColors = List(typedArray.length()) { i -> + val color = typedArray.getColor(i, Color.BLACK) + if (color == initiallySelectedCustomColor) { + // No need to save the initial color, its already in the list + initiallySelectedCustomColor = null + } + + color.toColorItem() + } + typedArray.recycle() + + setupRecyclerView(view) + onColorChange(selectedColor) + return view + } + + private fun setupRecyclerView(view: View) { + listAdapter = BasicColorAdapter(this::onColorChange) + view.findViewById<RecyclerView>(R.id.recyclerView).apply { + layoutManager = LinearLayoutManager(context, RecyclerView.VERTICAL, false).apply { + stackFromEnd = true + } + adapter = listAdapter + setHasFixedSize(true) + itemAnimator = null + } + } + + /** + * Called when a new color is selected by the user. + */ + @VisibleForTesting + internal fun onColorChange(newColor: Int) { + selectedColor = newColor + + val colorItems = defaultColors.toMutableList() + val index = colorItems.indexOfFirst { it.color == newColor } + val lastColor = if (index > -1) { + colorItems[index] = colorItems[index].copy(selected = true) + initiallySelectedCustomColor + } else { + newColor + } + if (lastColor != null) { + colorItems.add(lastColor.toColorItem(selected = lastColor == newColor)) + } + + listAdapter.submitList(colorItems) + } + + companion object { + + fun newInstance( + sessionId: String, + promptRequestUID: String, + shouldDismissOnLoad: Boolean, + defaultColor: String, + ) = ColorPickerDialogFragment().apply { + arguments = (arguments ?: Bundle()).apply { + putString(KEY_SESSION_ID, sessionId) + putString(KEY_PROMPT_UID, promptRequestUID) + putBoolean(KEY_SHOULD_DISMISS_ON_LOAD, shouldDismissOnLoad) + putInt(KEY_SELECTED_COLOR, defaultColor.toColor()) + } + } + } +} + +internal fun Int.toColorItem(selected: Boolean = false): ColorItem { + return ColorItem( + color = this, + contentDescription = toHexColor(), + selected = selected, + ) +} + +internal fun String.toColor(): Int { + return try { + Color.parseColor(this) + } catch (e: IllegalArgumentException) { + Color.BLACK + } +} + +internal fun Int.toHexColor(): String { + return String.format("#%06x", RGB_BIT_MASK and this) +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/ConfirmDialogFragment.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/ConfirmDialogFragment.kt new file mode 100644 index 0000000000..9d04f7d26b --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/ConfirmDialogFragment.kt @@ -0,0 +1,84 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.app.Dialog +import android.content.DialogInterface +import android.os.Bundle +import androidx.annotation.VisibleForTesting +import androidx.appcompat.app.AlertDialog +import mozilla.components.ui.widgets.withCenterAlignedButtons + +internal const val KEY_POSITIVE_BUTTON = "KEY_POSITIVE_BUTTON" +internal const val KEY_NEGATIVE_BUTTON = "KEY_NEGATIVE_BUTTON" + +/** + * [android.support.v4.app.DialogFragment] implementation for a confirm dialog. + * The user has two possible options, allow the request or + * deny it (Positive and Negative buttons]. When the positive button is pressed the + * feature.onConfirm function will be called otherwise the feature.onCancel function will be called. + */ +internal class ConfirmDialogFragment : AbstractPromptTextDialogFragment() { + + @VisibleForTesting + internal val positiveButtonText: String by lazy { safeArguments.getString(KEY_POSITIVE_BUTTON)!! } + + @VisibleForTesting + internal val negativeButtonText: String by lazy { safeArguments.getString(KEY_NEGATIVE_BUTTON)!! } + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + val builder = AlertDialog.Builder(requireContext()) + .setCancelable(false) + .setTitle(title) + .setNegativeButton(negativeButtonText) { _, _ -> + feature?.onCancel(sessionId, promptRequestUID, userSelectionNoMoreDialogs) + } + .setPositiveButton(positiveButtonText) { _, _ -> + onPositiveClickAction() + } + return setCustomMessageView(builder) + .create() + .withCenterAlignedButtons() + } + + override fun onCancel(dialog: DialogInterface) { + super.onCancel(dialog) + feature?.onCancel(sessionId, promptRequestUID, userSelectionNoMoreDialogs) + } + + private fun onPositiveClickAction() { + feature?.onConfirm(sessionId, promptRequestUID, userSelectionNoMoreDialogs) + } + + companion object { + fun newInstance( + sessionId: String? = null, + promptRequestUID: String, + shouldDismissOnLoad: Boolean, + title: String, + message: String, + positiveButtonText: String, + negativeButtonText: String, + hasShownManyDialogs: Boolean = false, + ): ConfirmDialogFragment { + val fragment = ConfirmDialogFragment() + val arguments = fragment.arguments ?: Bundle() + + with(arguments) { + putString(KEY_SESSION_ID, sessionId) + putString(KEY_PROMPT_UID, promptRequestUID) + putBoolean(KEY_SHOULD_DISMISS_ON_LOAD, shouldDismissOnLoad) + putString(KEY_TITLE, title) + putString(KEY_MESSAGE, message) + putString(KEY_POSITIVE_BUTTON, positiveButtonText) + putString(KEY_NEGATIVE_BUTTON, negativeButtonText) + putBoolean(KEY_MANY_ALERTS, hasShownManyDialogs) + } + + fragment.arguments = arguments + return fragment + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/FullScreenNotificationDialog.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/FullScreenNotificationDialog.kt new file mode 100644 index 0000000000..3c403f3734 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/FullScreenNotificationDialog.kt @@ -0,0 +1,70 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.app.Dialog +import android.os.Bundle +import android.view.Gravity +import android.view.WindowManager +import androidx.annotation.LayoutRes +import androidx.appcompat.app.AlertDialog +import androidx.fragment.app.DialogFragment +import androidx.fragment.app.FragmentManager +import androidx.lifecycle.lifecycleScope +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch + +private const val TAG = "mozac_feature_prompts_full_screen_notification_dialog" +private const val SNACKBAR_DURATION_LONG_MS = 3000L + +/** + * UI to show a 'full screen mode' notification. + */ +interface FullScreenNotification { + /** + * Show the notification. + * + * @param fragmentManager the [FragmentManager] to add this notification to. + */ + fun show(fragmentManager: FragmentManager) +} + +/** + * [DialogFragment] that is configured to match the style and behaviour of a Snackbar. + * + * @property layout the layout to use for the dialog. + */ +class FullScreenNotificationDialog(@LayoutRes val layout: Int) : + DialogFragment(), FullScreenNotification { + override fun show(fragmentManager: FragmentManager) = super.show(fragmentManager, TAG) + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog = requireActivity().let { + val view = layoutInflater.inflate(layout, null) + AlertDialog.Builder(it).setView(view).create() + } + + override fun onStart() { + super.onStart() + + dialog?.let { dialog -> + dialog.window?.let { window -> + // Prevent any user input from key or other button events to it. + window.setFlags( + WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, + WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, + ) + + window.setGravity(Gravity.BOTTOM) + window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) + } + } + + // Attempt to automatically dismiss the dialog after the given duration. + lifecycleScope.launch { + delay(SNACKBAR_DURATION_LONG_MS) + dialog?.dismiss() + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/LoginDialogFacts.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/LoginDialogFacts.kt new file mode 100644 index 0000000000..6d9a985aa8 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/LoginDialogFacts.kt @@ -0,0 +1,45 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import mozilla.components.support.base.Component +import mozilla.components.support.base.facts.Action +import mozilla.components.support.base.facts.Fact +import mozilla.components.support.base.facts.collect + +/** + * Facts emitted for telemetry related to [LoginDialogFragment] + */ +class LoginDialogFacts { + /** + * Items that specify how the [LoginDialogFragment] was interacted with + */ + object Items { + const val DISPLAY = "display" + const val SAVE = "save" + const val NEVER_SAVE = "never_save" + const val CANCEL = "cancel" + } +} + +private fun emitLoginDialogFacts( + action: Action, + item: String, + value: String? = null, + metadata: Map<String, Any>? = null, +) { + Fact( + Component.FEATURE_PROMPTS, + action, + item, + value, + metadata, + ).collect() +} + +internal fun emitDisplayFact() = emitLoginDialogFacts(Action.CLICK, LoginDialogFacts.Items.DISPLAY) +internal fun emitNeverSaveFact() = emitLoginDialogFacts(Action.CLICK, LoginDialogFacts.Items.NEVER_SAVE) +internal fun emitSaveFact() = emitLoginDialogFacts(Action.CLICK, LoginDialogFacts.Items.SAVE) +internal fun emitCancelFact() = emitLoginDialogFacts(Action.CLICK, LoginDialogFacts.Items.CANCEL) diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/MultiButtonDialogFragment.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/MultiButtonDialogFragment.kt new file mode 100644 index 0000000000..0ace6d2366 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/MultiButtonDialogFragment.kt @@ -0,0 +1,99 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.app.Dialog +import android.content.DialogInterface +import android.os.Bundle +import androidx.appcompat.app.AlertDialog +import mozilla.components.ui.widgets.withCenterAlignedButtons + +private const val KEY_POSITIVE_BUTTON_TITLE = "KEY_POSITIVE_BUTTON_TITLE" +private const val KEY_NEGATIVE_BUTTON_TITLE = "KEY_NEGATIVE_BUTTON_TITLE" +private const val KEY_NEUTRAL_BUTTON_TITLE = "KEY_NEUTRAL_BUTTON_TITLE" + +/** + * [android.support.v4.app.DialogFragment] implementation to display a confirm dialog, + * it can have up to three buttons, they could be positive, negative or neutral. + */ +internal class MultiButtonDialogFragment : AbstractPromptTextDialogFragment() { + + internal val positiveButtonTitle: String? by lazy { safeArguments.getString(KEY_POSITIVE_BUTTON_TITLE) } + + internal val negativeButtonTitle: String? by lazy { safeArguments.getString(KEY_NEGATIVE_BUTTON_TITLE) } + + internal val neutralButtonTitle: String? by lazy { safeArguments.getString(KEY_NEUTRAL_BUTTON_TITLE) } + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + val builder = AlertDialog.Builder(requireContext()) + .setTitle(title) + .setCancelable(true) + .setupButtons() + return setCustomMessageView(builder) + .create() + .withCenterAlignedButtons() + } + + override fun onCancel(dialog: DialogInterface) { + super.onCancel(dialog) + feature?.onCancel(sessionId, promptRequestUID) + } + + private fun AlertDialog.Builder.setupButtons(): AlertDialog.Builder { + if (!positiveButtonTitle.isNullOrBlank()) { + setPositiveButton(positiveButtonTitle) { _, _ -> + feature?.onConfirm(sessionId, promptRequestUID, userSelectionNoMoreDialogs to ButtonType.POSITIVE) + } + } + if (!negativeButtonTitle.isNullOrBlank()) { + setNegativeButton(negativeButtonTitle) { _, _ -> + feature?.onConfirm(sessionId, promptRequestUID, userSelectionNoMoreDialogs to ButtonType.NEGATIVE) + } + } + if (!neutralButtonTitle.isNullOrBlank()) { + setNeutralButton(neutralButtonTitle) { _, _ -> + feature?.onConfirm(sessionId, promptRequestUID, userSelectionNoMoreDialogs to ButtonType.NEUTRAL) + } + } + return this + } + + companion object { + fun newInstance( + sessionId: String, + promptRequestUID: String, + title: String, + message: String, + hasShownManyDialogs: Boolean, + shouldDismissOnLoad: Boolean, + positiveButton: String = "", + negativeButton: String = "", + neutralButton: String = "", + ): MultiButtonDialogFragment { + val fragment = MultiButtonDialogFragment() + val arguments = fragment.arguments ?: Bundle() + + with(arguments) { + putString(KEY_SESSION_ID, sessionId) + putString(KEY_PROMPT_UID, promptRequestUID) + putString(KEY_TITLE, title) + putString(KEY_MESSAGE, message) + putBoolean(KEY_MANY_ALERTS, hasShownManyDialogs) + putBoolean(KEY_SHOULD_DISMISS_ON_LOAD, shouldDismissOnLoad) + putString(KEY_POSITIVE_BUTTON_TITLE, positiveButton) + putString(KEY_NEGATIVE_BUTTON_TITLE, negativeButton) + putString(KEY_NEUTRAL_BUTTON_TITLE, neutralButton) + } + fragment.arguments = arguments + return fragment + } + } + + enum class ButtonType { + POSITIVE, + NEGATIVE, + NEUTRAL, + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/PromptAbuserDetector.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/PromptAbuserDetector.kt new file mode 100644 index 0000000000..ac92f5e726 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/PromptAbuserDetector.kt @@ -0,0 +1,64 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import java.util.Date + +/** + * Helper class to identify if a website has shown many dialogs. + */ +internal class PromptAbuserDetector { + + internal var jsAlertCount = 0 + internal var lastDialogShownAt = Date() + var shouldShowMoreDialogs = true + private set + + fun resetJSAlertAbuseState() { + jsAlertCount = 0 + shouldShowMoreDialogs = true + } + + fun updateJSDialogAbusedState() { + if (!areDialogsAbusedByTime()) { + jsAlertCount = 0 + } + ++jsAlertCount + lastDialogShownAt = Date() + } + + fun userWantsMoreDialogs(checkBox: Boolean) { + shouldShowMoreDialogs = checkBox + } + + fun areDialogsBeingAbused(): Boolean { + return areDialogsAbusedByTime() || areDialogsAbusedByCount() + } + + internal fun areDialogsAbusedByTime(): Boolean { + return if (jsAlertCount == 0) { + false + } else { + val now = Date() + val diffInSeconds = (now.time - lastDialogShownAt.time) / SECOND_MS + diffInSeconds < MAX_SUCCESSIVE_DIALOG_SECONDS_LIMIT + } + } + + internal fun areDialogsAbusedByCount(): Boolean { + return jsAlertCount > MAX_SUCCESSIVE_DIALOG_COUNT + } + + companion object { + // Maximum number of successive dialogs before we prompt users to disable dialogs. + internal const val MAX_SUCCESSIVE_DIALOG_COUNT: Int = 2 + + // Minimum time required between dialogs in seconds before enabling the stop dialog. + internal const val MAX_SUCCESSIVE_DIALOG_SECONDS_LIMIT: Int = 3 + + // Number of milliseconds in 1 second. + internal const val SECOND_MS: Int = 1000 + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/PromptDialogFragment.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/PromptDialogFragment.kt new file mode 100644 index 0000000000..093c389cbf --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/PromptDialogFragment.kt @@ -0,0 +1,98 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import androidx.fragment.app.DialogFragment +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.concept.storage.CreditCardValidationDelegate +import mozilla.components.concept.storage.LoginValidationDelegate +import mozilla.components.feature.prompts.login.LoginExceptions + +internal const val KEY_SESSION_ID = "KEY_SESSION_ID" +internal const val KEY_TITLE = "KEY_TITLE" +internal const val KEY_MESSAGE = "KEY_MESSAGE" +internal const val KEY_PROMPT_UID = "KEY_PROMPT_UID" +internal const val KEY_SHOULD_DISMISS_ON_LOAD = "KEY_SHOULD_DISMISS_ON_LOAD" + +/** + * An abstract representation for all different types of prompt dialogs. + * for handling [PromptFeature] dialogs. + */ +internal abstract class PromptDialogFragment : DialogFragment() { + var feature: Prompter? = null + + internal val sessionId: String by lazy { requireNotNull(arguments).getString(KEY_SESSION_ID)!! } + + internal val promptRequestUID: String by lazy { requireNotNull(arguments).getString(KEY_PROMPT_UID)!! } + + /** + * Whether or not the dialog should automatically be dismissed when a new page is loaded. + */ + internal val shouldDismissOnLoad: Boolean by lazy { + safeArguments.getBoolean(KEY_SHOULD_DISMISS_ON_LOAD, true) + } + + internal val title: String by lazy { safeArguments.getString(KEY_TITLE)!! } + + internal val message: String by lazy { safeArguments.getString(KEY_MESSAGE)!! } + + val safeArguments get() = requireNotNull(arguments) +} + +internal interface Prompter { + + /** + * Validates whether or not a given [CreditCard] may be stored. + */ + val creditCardValidationDelegate: CreditCardValidationDelegate? + + /** + * Validates whether or not a given Login may be stored. + * + * Logging in will not prompt a save dialog if this is left null. + */ + val loginValidationDelegate: LoginValidationDelegate? + + /** + * Stores whether a site should never be prompted for logins saving. + */ + val loginExceptionStorage: LoginExceptions? + + /** + * Invoked when a dialog is dismissed. This consumes the [PromptRequest] indicated by [promptRequestUID] + * from the session indicated by [sessionId]. + * + * @param sessionId this is the id of the session which requested the prompt. + * @param promptRequestUID id of the [PromptRequest] for which this dialog was shown. + * @param value an optional value provided by the dialog as a result of cancelling the action. + */ + fun onCancel(sessionId: String, promptRequestUID: String, value: Any? = null) + + /** + * Invoked when the user confirms the action on the dialog. This consumes the [PromptRequest] indicated + * by [promptRequestUID] from the session indicated by [sessionId]. + * + * @param sessionId that requested to show the dialog. + * @param promptRequestUID id of the [PromptRequest] for which this dialog was shown. + * @param value an optional value provided by the dialog as a result of confirming the action. + */ + fun onConfirm(sessionId: String, promptRequestUID: String, value: Any?) + + /** + * Invoked when the user is requesting to clear the selected value from the dialog. + * This consumes the [PromptFeature] value from the session indicated by [sessionId]. + * + * @param sessionId that requested to show the dialog. + * @param promptRequestUID id of the [PromptRequest] for which this dialog was shown. + */ + fun onClear(sessionId: String, promptRequestUID: String) + + /** + * Invoked when the user is requesting to open a website from the dialog. + * + * @param url The url to be opened. + */ + fun onOpenLink(url: String) +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/SaveLoginDialogFragment.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/SaveLoginDialogFragment.kt new file mode 100644 index 0000000000..bcc36d12f9 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/SaveLoginDialogFragment.kt @@ -0,0 +1,428 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.app.Dialog +import android.content.DialogInterface +import android.content.res.ColorStateList +import android.graphics.Bitmap +import android.os.Bundle +import android.text.Editable +import android.text.TextWatcher +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.Button +import android.widget.FrameLayout +import android.widget.ImageView +import androidx.annotation.VisibleForTesting +import androidx.appcompat.widget.AppCompatTextView +import androidx.core.content.ContextCompat +import androidx.core.widget.ImageViewCompat +import com.google.android.material.bottomsheet.BottomSheetBehavior +import com.google.android.material.bottomsheet.BottomSheetDialog +import com.google.android.material.button.MaterialButton +import com.google.android.material.textfield.TextInputEditText +import com.google.android.material.textfield.TextInputLayout +import kotlinx.coroutines.CancellationException +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.Dispatchers.IO +import kotlinx.coroutines.Dispatchers.Main +import kotlinx.coroutines.Job +import kotlinx.coroutines.cancelAndJoin +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext +import mozilla.components.concept.storage.LoginEntry +import mozilla.components.concept.storage.LoginValidationDelegate.Result +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.ext.onDone +import mozilla.components.support.base.log.logger.Logger +import mozilla.components.support.ktx.android.content.res.resolveAttribute +import mozilla.components.support.ktx.android.view.hideKeyboard +import mozilla.components.support.ktx.android.view.toScope +import mozilla.components.support.utils.ext.getParcelableCompat +import kotlin.reflect.KProperty +import com.google.android.material.R as MaterialR + +private const val KEY_LOGIN_HINT = "KEY_LOGIN_HINT" +private const val KEY_LOGIN_USERNAME = "KEY_LOGIN_USERNAME" +private const val KEY_LOGIN_PASSWORD = "KEY_LOGIN_PASSWORD" +private const val KEY_LOGIN_ORIGIN = "KEY_LOGIN_ORIGIN" +private const val KEY_LOGIN_FORM_ACTION_ORIGIN = "KEY_LOGIN_FORM_ACTION_ORIGIN" +private const val KEY_LOGIN_HTTP_REALM = "KEY_LOGIN_HTTP_REALM" + +@VisibleForTesting internal const val KEY_LOGIN_ICON = "KEY_LOGIN_ICON" + +/** + * [android.support.v4.app.DialogFragment] implementation to display a + * dialog that allows users to save/update usernames and passwords for a given domain. + */ +@Suppress("LargeClass") +internal class SaveLoginDialogFragment : PromptDialogFragment() { + + private inner class SafeArgString(private val key: String) { + operator fun getValue(frag: SaveLoginDialogFragment, prop: KProperty<*>): String = + safeArguments.getString(key)!! + + operator fun setValue(frag: SaveLoginDialogFragment, prop: KProperty<*>, value: String) { + safeArguments.putString(key, value) + } + } + + private val origin by lazy { safeArguments.getString(KEY_LOGIN_ORIGIN)!! } + private val formActionOrigin by lazy { safeArguments.getString(KEY_LOGIN_FORM_ACTION_ORIGIN) } + private val httpRealm by lazy { safeArguments.getString(KEY_LOGIN_HTTP_REALM) } + + @VisibleForTesting + internal val icon by lazy { safeArguments.getParcelableCompat(KEY_LOGIN_ICON, Bitmap::class.java) } + + @VisibleForTesting + internal var username by SafeArgString(KEY_LOGIN_USERNAME) + + @VisibleForTesting + internal var password by SafeArgString(KEY_LOGIN_PASSWORD) + + @Volatile + private var loginValid = false + private var validateStateUpdate: Job? = null + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + return BottomSheetDialog(requireContext(), R.style.MozDialogStyle).apply { + setCancelable(true) + setOnShowListener { + /* + Note: we must include a short delay before expanding the bottom sheet. + This is because the keyboard is still in the process of hiding when `onShowListener` is triggered. + Because of this, we'll only be given a small portion of the screen to draw on which will set the bottom + anchor of this view incorrectly to somewhere in the center of the view. If we delay a small amount we + are given the correct amount of space and are properly anchored. + */ + CoroutineScope(IO).launch { + delay(KEYBOARD_HIDING_DELAY) + launch(Main) { + val bottomSheet = + findViewById<View>(MaterialR.id.design_bottom_sheet) as FrameLayout + val behavior = BottomSheetBehavior.from(bottomSheet) + behavior.state = BottomSheetBehavior.STATE_EXPANDED + } + } + } + } + } + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle?, + ): View { + /* + * If an implementation of [LoginExceptions] is hooked up to [PromptFeature], we will not + * show this save login dialog for any origin saved as an exception. + */ + CoroutineScope(IO).launch { + if (feature?.loginExceptionStorage?.isLoginExceptionByOrigin(origin) == true) { + feature?.onCancel(sessionId, promptRequestUID) + dismiss() + } + } + + return setupRootView(container) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + view.findViewById<AppCompatTextView>(R.id.host_name).text = origin + + view.findViewById<AppCompatTextView>(R.id.save_message).text = + getString(R.string.mozac_feature_prompt_login_save_headline_2) + + view.findViewById<Button>(R.id.save_confirm).setOnClickListener { + onPositiveClickAction() + } + + view.findViewById<Button>(R.id.save_cancel).apply { + setOnClickListener { + if (this.text == context?.getString(R.string.mozac_feature_prompt_never_save)) { + emitNeverSaveFact() + CoroutineScope(IO).launch { + feature?.loginExceptionStorage?.addLoginException(origin) + } + } + feature?.onCancel(sessionId, promptRequestUID) + dismiss() + } + } + + emitDisplayFact() + update() + } + + override fun onCancel(dialog: DialogInterface) { + super.onCancel(dialog) + feature?.onCancel(sessionId, promptRequestUID) + emitCancelFact() + } + + private fun onPositiveClickAction() { + feature?.onConfirm( + sessionId, + promptRequestUID, + LoginEntry( + origin = origin, + formActionOrigin = formActionOrigin, + httpRealm = httpRealm, + username = username, + password = password, + ), + ) + emitSaveFact() + dismiss() + } + + @VisibleForTesting + internal fun setupRootView(container: ViewGroup? = null): View { + val rootView = inflateRootView(container) + bindUsername(rootView) + bindPassword(rootView) + bindIcon(rootView) + return rootView + } + + @VisibleForTesting + internal fun inflateRootView(container: ViewGroup? = null): View { + return LayoutInflater.from(requireContext()).inflate( + R.layout.mozac_feature_prompt_save_login_prompt, + container, + false, + ) + } + + private fun bindUsername(view: View) { + val usernameEditText = view.findViewById<TextInputEditText>(R.id.username_field) + + usernameEditText.setText(username) + usernameEditText.addTextChangedListener( + object : TextWatcher { + override fun afterTextChanged(editable: Editable) { + username = editable.toString() + // Update accesses member state, so it must be called after username is set + update() + } + + override fun beforeTextChanged( + s: CharSequence?, + start: Int, + count: Int, + after: Int, + ) = Unit + + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) = + Unit + }, + ) + + with(usernameEditText) { + onDone(false) { + hideKeyboard() + clearFocus() + } + } + } + + private fun bindPassword(view: View) { + val passwordEditText = view.findViewById<TextInputEditText>(R.id.password_field) + + passwordEditText.addTextChangedListener( + object : TextWatcher { + override fun afterTextChanged(editable: Editable) { + // Note that password is accessed by `fun update` + password = editable.toString() + if (password.isEmpty()) { + setViewState( + loginValid = false, + passwordErrorText = + context?.getString(R.string.mozac_feature_prompt_error_empty_password), + ) + } else { + setViewState( + loginValid = true, + passwordErrorText = "", + ) + } + } + + override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) = + Unit + + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) = Unit + }, + ) + passwordEditText.setText(password) + + with(passwordEditText) { + onDone(false) { + hideKeyboard() + clearFocus() + } + } + } + + private fun bindIcon(view: View) { + val iconView = view.findViewById<ImageView>(R.id.host_icon) + if (icon != null) { + iconView.setImageBitmap(icon) + } else { + setImageViewTint(iconView) + } + } + + @VisibleForTesting + internal fun setImageViewTint(imageView: ImageView) { + val tintColor = ContextCompat.getColor( + requireContext(), + requireContext().theme.resolveAttribute(android.R.attr.textColorPrimary), + ) + ImageViewCompat.setImageTintList(imageView, ColorStateList.valueOf(tintColor)) + } + + /** + * Check current state then update view state to match. + */ + @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + fun update() = view?.toScope()?.launch(IO) { + val entry = LoginEntry( + origin = origin, + formActionOrigin = formActionOrigin, + httpRealm = httpRealm, + username = username, + password = password, + ) + + try { + validateStateUpdate?.cancelAndJoin() + } catch (cancellationException: CancellationException) { + Logger.error("Failed to cancel job", cancellationException) + } + + var validateDeferred: Deferred<Result>? + validateStateUpdate = launch validate@{ + if (!loginValid) { + // Don't run the validation logic if we know the login is invalid + return@validate + } + val validationDelegate = + feature?.loginValidationDelegate ?: return@validate + validateDeferred = validationDelegate.shouldUpdateOrCreateAsync(entry) + val result = validateDeferred?.await() + withContext(Main) { + when (result) { + Result.CanBeCreated -> { + setViewState( + headline = context?.getString(R.string.mozac_feature_prompt_login_save_headline_2), + negativeText = context?.getString(R.string.mozac_feature_prompt_never_save), + confirmText = context?.getString(R.string.mozac_feature_prompt_save_confirmation), + ) + } + is Result.CanBeUpdated -> { + setViewState( + headline = if (result.foundLogin.username.isEmpty()) { + context?.getString( + R.string.mozac_feature_prompt_login_add_username_headline, + ) + } else { + context?.getString(R.string.mozac_feature_prompt_login_update_headline_2) + }, + negativeText = context?.getString(R.string.mozac_feature_prompt_dont_update), + confirmText = + context?.getString(R.string.mozac_feature_prompt_update_confirmation), + ) + } + else -> { + // no-op + } + } + } + validateStateUpdate?.invokeOnCompletion { + if (it is CancellationException) { + validateDeferred?.cancel() + } + } + } + } + + private fun setViewState( + headline: String? = null, + negativeText: String? = null, + confirmText: String? = null, + loginValid: Boolean? = null, + passwordErrorText: String? = null, + ) { + if (headline != null) { + view?.findViewById<AppCompatTextView>(R.id.save_message)?.text = headline + } + + if (negativeText != null) { + view?.findViewById<MaterialButton>(R.id.save_cancel)?.text = negativeText + } + + val confirmButton = view?.findViewById<Button>(R.id.save_confirm) + if (confirmText != null) { + confirmButton?.text = confirmText + } + + if (loginValid != null) { + this.loginValid = loginValid + confirmButton?.isEnabled = loginValid + } + + if (passwordErrorText != null) { + view?.findViewById<TextInputLayout>(R.id.password_text_input_layout)?.error = + passwordErrorText + } + } + + companion object { + private const val KEYBOARD_HIDING_DELAY = 100L + + /** + * A builder method for creating a [SaveLoginDialogFragment] + * @param sessionId the id of the session for which this dialog will be created. + * @param promptRequestUID identifier of the [PromptRequest] for which this dialog is shown. + * @param shouldDismissOnLoad whether or not the dialog should automatically be dismissed + * when a new page is loaded. + * @param hint a value that helps to determine the appropriate prompting behavior. + * @param login represents login information on a given domain. + * */ + fun newInstance( + sessionId: String, + promptRequestUID: String, + shouldDismissOnLoad: Boolean, + hint: Int, + entry: LoginEntry, + icon: Bitmap? = null, + ): SaveLoginDialogFragment { + val fragment = SaveLoginDialogFragment() + val arguments = fragment.arguments ?: Bundle() + + with(arguments) { + putString(KEY_SESSION_ID, sessionId) + putString(KEY_PROMPT_UID, promptRequestUID) + putBoolean(KEY_SHOULD_DISMISS_ON_LOAD, shouldDismissOnLoad) + putInt(KEY_LOGIN_HINT, hint) + putString(KEY_LOGIN_USERNAME, entry.username) + putString(KEY_LOGIN_PASSWORD, entry.password) + putString(KEY_LOGIN_ORIGIN, entry.origin) + putString(KEY_LOGIN_FORM_ACTION_ORIGIN, entry.formActionOrigin) + putString(KEY_LOGIN_HTTP_REALM, entry.httpRealm) + putParcelable(KEY_LOGIN_ICON, icon) + } + + fragment.arguments = arguments + return fragment + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/TextPromptDialogFragment.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/TextPromptDialogFragment.kt new file mode 100644 index 0000000000..01492e96e4 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/TextPromptDialogFragment.kt @@ -0,0 +1,130 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.annotation.SuppressLint +import android.app.Dialog +import android.content.DialogInterface +import android.os.Bundle +import android.text.Editable +import android.text.TextWatcher +import android.view.LayoutInflater +import android.widget.EditText +import android.widget.TextView +import androidx.appcompat.app.AlertDialog +import mozilla.components.feature.prompts.R +import mozilla.components.ui.widgets.withCenterAlignedButtons + +private const val KEY_USER_EDIT_TEXT = "KEY_USER_EDIT_TEXT" +private const val KEY_LABEL_INPUT = "KEY_LABEL_INPUT" +private const val KEY_DEFAULT_INPUT_VALUE = "KEY_DEFAULT_INPUT_VALUE" + +/** + * [androidx.fragment.app.DialogFragment] implementation to display a + * <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt">Window.prompt()</a> with native dialogs. + */ +internal class TextPromptDialogFragment : AbstractPromptTextDialogFragment(), TextWatcher { + /** + * Contains the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt#Parameters">default()</a> + * value provided by this [sessionId]. + */ + internal val defaultInputValue: String? by lazy { safeArguments.getString(KEY_DEFAULT_INPUT_VALUE) } + + /** + * Contains the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt#Parameters">message</a> + * value provided by this [sessionId]. + */ + internal val labelInput: String? by lazy { safeArguments.getString(KEY_LABEL_INPUT) } + + private var userSelectionEditText: String + get() = safeArguments.getString(KEY_USER_EDIT_TEXT, defaultInputValue) + set(value) { + safeArguments.putString(KEY_USER_EDIT_TEXT, value) + } + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + val builder = AlertDialog.Builder(requireContext()) + .setTitle(title) + .setCancelable(true) + .setPositiveButton(android.R.string.ok) { _, _ -> + onPositiveClickAction() + } + return addLayout(builder).create().withCenterAlignedButtons() + } + + override fun onCancel(dialog: DialogInterface) { + feature?.onCancel(sessionId, promptRequestUID) + } + + private fun onPositiveClickAction() { + feature?.onConfirm(sessionId, promptRequestUID, userSelectionNoMoreDialogs to userSelectionEditText) + } + + @SuppressLint("InflateParams") + private fun addLayout(builder: AlertDialog.Builder): AlertDialog.Builder { + val inflater = LayoutInflater.from(requireContext()) + val view = inflater.inflate(R.layout.mozac_feature_text_prompt, null) + + val label = view.findViewById<TextView>(R.id.input_label) + val editText = view.findViewById<EditText>(R.id.input_value) + + label.text = labelInput + editText.setText(defaultInputValue) + editText.addTextChangedListener(this) + + addCheckBoxIfNeeded(view) + + return builder.setView(view) + } + + override fun afterTextChanged(editable: Editable) { + userSelectionEditText = editable.toString() + } + + override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) = Unit + + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) = Unit + + companion object { + /** + * A builder method for creating a [TextPromptDialogFragment] + * @param sessionId to create the dialog. + * @param promptRequestUID identifier of the [PromptRequest] for which this dialog is shown. + * @param shouldDismissOnLoad whether or not the dialog should automatically be dismissed + * when a new page is loaded. + * @param title the title of the dialog. + * @param inputLabel + * @param defaultInputValue + * @param hasShownManyDialogs tells if this [sessionId] has shown many dialogs + * in a short period of time, if is true a checkbox will be part of the dialog, for the user + * to choose if wants to prevent this [sessionId] continuing showing dialogs. + */ + fun newInstance( + sessionId: String, + promptRequestUID: String, + shouldDismissOnLoad: Boolean, + title: String, + inputLabel: String, + defaultInputValue: String, + hasShownManyDialogs: Boolean, + ): TextPromptDialogFragment { + val fragment = TextPromptDialogFragment() + val arguments = fragment.arguments ?: Bundle() + + with(arguments) { + putString(KEY_SESSION_ID, sessionId) + putString(KEY_PROMPT_UID, promptRequestUID) + putBoolean(KEY_SHOULD_DISMISS_ON_LOAD, shouldDismissOnLoad) + putString(KEY_TITLE, title) + putString(KEY_LABEL_INPUT, inputLabel) + putString(KEY_DEFAULT_INPUT_VALUE, defaultInputValue) + putBoolean(KEY_MANY_ALERTS, hasShownManyDialogs) + } + + fragment.arguments = arguments + return fragment + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/TimePickerDialogFragment.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/TimePickerDialogFragment.kt new file mode 100644 index 0000000000..60f1f3e415 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/dialog/TimePickerDialogFragment.kt @@ -0,0 +1,342 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package mozilla.components.feature.prompts.dialog + +import android.annotation.SuppressLint +import android.app.AlertDialog +import android.app.DatePickerDialog +import android.app.Dialog +import android.app.TimePickerDialog +import android.content.Context +import android.content.DialogInterface +import android.content.DialogInterface.BUTTON_NEGATIVE +import android.content.DialogInterface.BUTTON_NEUTRAL +import android.content.DialogInterface.BUTTON_POSITIVE +import android.os.Build +import android.os.Build.VERSION_CODES.M +import android.os.Bundle +import android.text.format.DateFormat +import android.view.LayoutInflater +import android.view.View +import android.widget.DatePicker +import android.widget.TimePicker +import androidx.annotation.VisibleForTesting +import androidx.annotation.VisibleForTesting.Companion.PRIVATE +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.ext.day +import mozilla.components.feature.prompts.ext.hour +import mozilla.components.feature.prompts.ext.millisecond +import mozilla.components.feature.prompts.ext.minute +import mozilla.components.feature.prompts.ext.month +import mozilla.components.feature.prompts.ext.second +import mozilla.components.feature.prompts.ext.toCalendar +import mozilla.components.feature.prompts.ext.year +import mozilla.components.feature.prompts.widget.MonthAndYearPicker +import mozilla.components.feature.prompts.widget.TimePrecisionPicker +import mozilla.components.support.utils.TimePicker.shouldShowSecondsPicker +import mozilla.components.support.utils.ext.getSerializableCompat +import mozilla.components.ui.widgets.withCenterAlignedButtons +import java.util.Calendar +import java.util.Date + +private const val KEY_INITIAL_DATE = "KEY_INITIAL_DATE" +private const val KEY_MIN_DATE = "KEY_MIN_DATE" +private const val KEY_MAX_DATE = "KEY_MAX_DATE" +private const val KEY_SELECTED_DATE = "KEY_SELECTED_DATE" +private const val KEY_SELECTION_TYPE = "KEY_SELECTION_TYPE" +private const val KEY_STEP_VALUE = "KEY_STEP_VALUE" + +/** + * [DialogFragment][androidx.fragment.app.DialogFragment] implementation to display date picker with a native dialog. + */ +internal class TimePickerDialogFragment : + PromptDialogFragment(), + DatePicker.OnDateChangedListener, + TimePicker.OnTimeChangedListener, + TimePickerDialog.OnTimeSetListener, + DatePickerDialog.OnDateSetListener, + DialogInterface.OnClickListener, + MonthAndYearPicker.OnDateSetListener, + TimePrecisionPicker.OnTimeSetListener { + private val initialDate: Date by lazy { + safeArguments.getSerializableCompat(KEY_INITIAL_DATE, Date::class.java) as Date + } + private val minimumDate: Date? by lazy { + safeArguments.getSerializableCompat(KEY_MIN_DATE, Date::class.java) as? Date + } + private val maximumDate: Date? by lazy { + safeArguments.getSerializableCompat(KEY_MAX_DATE, Date::class.java) as? Date + } + private val selectionType: Int by lazy { safeArguments.getInt(KEY_SELECTION_TYPE) } + private val stepSize: String? by lazy { safeArguments.getString(KEY_STEP_VALUE) } + + @VisibleForTesting(otherwise = PRIVATE) + internal var selectedDate: Date + get() = safeArguments.getSerializableCompat(KEY_SELECTED_DATE, Date::class.java) as Date + set(value) { + safeArguments.putSerializable(KEY_SELECTED_DATE, value) + } + + @Suppress("ComplexMethod") + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + val context = requireContext() + val dialog = when (selectionType) { + SELECTION_TYPE_TIME -> createTimePickerDialog(context) + SELECTION_TYPE_DATE -> initialDate.toCalendar().let { cal -> + DatePickerDialog( + context, + this@TimePickerDialogFragment, + cal.year, + cal.month, + cal.day, + ).apply { setMinMaxDate(datePicker) } + } + SELECTION_TYPE_DATE_AND_TIME -> AlertDialog.Builder(context) + .setView(inflateDateTimePicker(LayoutInflater.from(context))) + .create() + .also { + it.setButton(BUTTON_POSITIVE, context.getString(R.string.mozac_feature_prompts_set_date), this) + it.setButton(BUTTON_NEGATIVE, context.getString(R.string.mozac_feature_prompts_cancel), this) + } + SELECTION_TYPE_MONTH -> AlertDialog.Builder(context) + .setTitle(R.string.mozac_feature_prompts_set_month) + .setView(inflateDateMonthPicker()) + .create() + .also { + it.setButton(BUTTON_POSITIVE, context.getString(R.string.mozac_feature_prompts_set_date), this) + it.setButton(BUTTON_NEGATIVE, context.getString(R.string.mozac_feature_prompts_cancel), this) + } + else -> throw IllegalArgumentException() + } + + dialog.also { + it.setCancelable(true) + it.setButton(BUTTON_NEUTRAL, context.getString(R.string.mozac_feature_prompts_clear), this) + } + + return dialog + } + + /** + * Called when the user touches outside of the dialog. + */ + override fun onCancel(dialog: DialogInterface) { + super.onCancel(dialog) + onClick(dialog, BUTTON_NEGATIVE) + } + + override fun onStart() { + super.onStart() + + val alertDialog = dialog + if (alertDialog is AlertDialog) { + // We want to call the extension function after the show() call on the dialog, + // and the DialogFragment does that call during onStart(). + alertDialog.withCenterAlignedButtons() + } + } + + // Create the appropriate time picker dialog for the given step value. + private fun createTimePickerDialog(context: Context): AlertDialog { + // Create the Android time picker dialog + fun createTimePickerDialog(): AlertDialog { + return initialDate.toCalendar().let { cal -> + TimePickerDialog( + context, + this, + cal.hour, + cal.minute, + DateFormat.is24HourFormat(context), + ) + } + } + + // Create the custom time picker dialog + fun createTimeStepPickerDialog(stepValue: Float): AlertDialog { + return AlertDialog.Builder(context) + .setTitle(R.string.mozac_feature_prompts_set_time) + .setView( + TimePrecisionPicker( + context = requireContext(), + selectedTime = initialDate.toCalendar(), + maxTime = maximumDate?.toCalendar() + ?: TimePrecisionPicker.getDefaultMaxTime(), + minTime = minimumDate?.toCalendar() + ?: TimePrecisionPicker.getDefaultMinTime(), + stepValue = stepValue, + timeSetListener = this, + ), + ) + .create() + .also { + it.setButton( + BUTTON_POSITIVE, + context.getString(R.string.mozac_feature_prompts_set_date), + this, + ) + it.setButton( + BUTTON_NEGATIVE, + context.getString(R.string.mozac_feature_prompts_cancel), + this, + ) + } + } + + return if (!shouldShowSecondsPicker(stepSize?.toFloat())) { + createTimePickerDialog() + } else { + stepSize?.let { + createTimeStepPickerDialog(it.toFloat()) + } ?: createTimePickerDialog() + } + } + + @SuppressLint("InflateParams") + private fun inflateDateTimePicker(inflater: LayoutInflater): View { + val view = inflater.inflate(R.layout.mozac_feature_prompts_date_time_picker, null) + val datePicker = view.findViewById<DatePicker>(R.id.date_picker) + val dateTimePicker = view.findViewById<TimePicker>(R.id.datetime_picker) + val cal = initialDate.toCalendar() + + // Bind date picker + setMinMaxDate(datePicker) + datePicker.init(cal.year, cal.month, cal.day, this) + initTimePicker(dateTimePicker, cal) + + return view + } + + private fun inflateDateMonthPicker(): View { + return MonthAndYearPicker( + context = requireContext(), + selectedDate = initialDate.toCalendar(), + maxDate = maximumDate?.toCalendar() ?: MonthAndYearPicker.getDefaultMaxDate(), + minDate = minimumDate?.toCalendar() ?: MonthAndYearPicker.getDefaultMinDate(), + dateSetListener = this, + ) + } + + @Suppress("DEPRECATION") + private fun initTimePicker(picker: TimePicker, cal: Calendar) { + if (Build.VERSION.SDK_INT >= M) { + picker.hour = cal.hour + picker.minute = cal.minute + } else { + picker.currentHour = cal.hour + picker.currentMinute = cal.minute + } + picker.setIs24HourView(DateFormat.is24HourFormat(requireContext())) + picker.setOnTimeChangedListener(this) + } + + private fun setMinMaxDate(datePicker: DatePicker) { + minimumDate?.let { + datePicker.minDate = it.time + } + maximumDate?.let { + datePicker.maxDate = it.time + } + } + + override fun onTimeSet( + picker: TimePrecisionPicker, + hour: Int, + minute: Int, + second: Int, + millisecond: Int, + ) { + val calendar = selectedDate.toCalendar() + calendar.hour = hour + calendar.minute = minute + calendar.second = second + calendar.millisecond = millisecond + selectedDate = calendar.time + } + + override fun onDateChanged(view: DatePicker?, year: Int, monthOfYear: Int, dayOfMonth: Int) { + val calendar = Calendar.getInstance() + calendar.set(year, monthOfYear, dayOfMonth) + selectedDate = calendar.time + } + + override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int) { + onDateChanged(view, year, month, dayOfMonth) + onClick(null, BUTTON_POSITIVE) + } + + override fun onDateSet(picker: MonthAndYearPicker, month: Int, year: Int) { + onDateChanged(null, year, month, 0) + } + + override fun onTimeChanged(picker: TimePicker?, hourOfDay: Int, minute: Int) { + val calendar = selectedDate.toCalendar() + calendar.set(Calendar.HOUR_OF_DAY, hourOfDay) + calendar.set(Calendar.MINUTE, minute) + selectedDate = calendar.time + } + + override fun onTimeSet(view: TimePicker?, hourOfDay: Int, minute: Int) { + onTimeChanged(view, hourOfDay, minute) + onClick(null, BUTTON_POSITIVE) + } + + override fun onClick(dialog: DialogInterface?, which: Int) { + when (which) { + BUTTON_POSITIVE -> feature?.onConfirm(sessionId, promptRequestUID, selectedDate) + BUTTON_NEGATIVE -> feature?.onCancel(sessionId, promptRequestUID) + BUTTON_NEUTRAL -> feature?.onClear(sessionId, promptRequestUID) + } + } + + companion object { + /** + * A builder method for creating a [TimePickerDialogFragment] + * @param sessionId to create the dialog. + * @param promptRequestUID identifier of the [PromptRequest] for which this dialog is shown. + * @param shouldDismissOnLoad whether or not the dialog should automatically be dismissed + * when a new page is loaded. + * @param title of the dialog. + * @param initialDate date that will be selected by default. + * @param minDate the minimumDate date that will be allowed to be selected. + * @param maxDate the maximumDate date that will be allowed to be selected. + * @param selectionType indicate which type of time should be selected, valid values are + * ([TimePickerDialogFragment.SELECTION_TYPE_DATE], [TimePickerDialogFragment.SELECTION_TYPE_DATE_AND_TIME], + * and [TimePickerDialogFragment.SELECTION_TYPE_TIME]) + * @param stepValue value of time jumped whenever the time is incremented/decremented. + * + * @return a new instance of [TimePickerDialogFragment] + */ + fun newInstance( + sessionId: String, + promptRequestUID: String, + shouldDismissOnLoad: Boolean, + initialDate: Date, + minDate: Date?, + maxDate: Date?, + selectionType: Int = SELECTION_TYPE_DATE, + stepValue: String? = null, + ): TimePickerDialogFragment { + val fragment = TimePickerDialogFragment() + val arguments = fragment.arguments ?: Bundle() + fragment.arguments = arguments + with(arguments) { + putString(KEY_SESSION_ID, sessionId) + putString(KEY_PROMPT_UID, promptRequestUID) + putBoolean(KEY_SHOULD_DISMISS_ON_LOAD, shouldDismissOnLoad) + putSerializable(KEY_INITIAL_DATE, initialDate) + putSerializable(KEY_MIN_DATE, minDate) + putSerializable(KEY_MAX_DATE, maxDate) + putString(KEY_STEP_VALUE, stepValue) + putInt(KEY_SELECTION_TYPE, selectionType) + } + fragment.selectedDate = initialDate + return fragment + } + + const val SELECTION_TYPE_DATE = 1 + const val SELECTION_TYPE_DATE_AND_TIME = 2 + const val SELECTION_TYPE_TIME = 3 + const val SELECTION_TYPE_MONTH = 4 + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/ext/Calendar.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/ext/Calendar.kt new file mode 100644 index 0000000000..ac50247251 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/ext/Calendar.kt @@ -0,0 +1,65 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +@file:Suppress("TooManyFunctions") + +package mozilla.components.feature.prompts.ext + +import java.util.Calendar +import java.util.Date + +internal fun Date.toCalendar() = Calendar.getInstance().also { it.time = this } + +internal var Calendar.millisecond: Int + get() = get(Calendar.MILLISECOND) + set(value) { + set(Calendar.MILLISECOND, value) + } +internal var Calendar.second: Int + get() = get(Calendar.SECOND) + set(value) { + set(Calendar.SECOND, value) + } +internal var Calendar.minute: Int + get() = get(Calendar.MINUTE) + set(value) { + set(Calendar.MINUTE, value) + } +internal var Calendar.hour: Int + get() = get(Calendar.HOUR_OF_DAY) + set(value) { + set(Calendar.HOUR_OF_DAY, value) + } +internal var Calendar.day: Int + get() = get(Calendar.DAY_OF_MONTH) + set(value) { + set(Calendar.DAY_OF_MONTH, value) + } +internal var Calendar.year: Int + get() = get(Calendar.YEAR) + set(value) { + set(Calendar.YEAR, value) + } + +internal var Calendar.month: Int + get() = get(Calendar.MONTH) + set(value) { + set(Calendar.MONTH, value) + } + +internal fun Calendar.minMillisecond(): Int = getActualMinimum(Calendar.MILLISECOND) +internal fun Calendar.maxMillisecond(): Int = getActualMaximum(Calendar.MILLISECOND) +internal fun Calendar.minSecond(): Int = getActualMinimum(Calendar.SECOND) +internal fun Calendar.maxSecond(): Int = getActualMaximum(Calendar.SECOND) +internal fun Calendar.minMinute(): Int = getActualMinimum(Calendar.MINUTE) +internal fun Calendar.maxMinute(): Int = getActualMaximum(Calendar.MINUTE) +internal fun Calendar.minHour(): Int = getActualMinimum(Calendar.HOUR_OF_DAY) +internal fun Calendar.maxHour(): Int = getActualMaximum(Calendar.HOUR_OF_DAY) +internal fun Calendar.minMonth(): Int = getMinimum(Calendar.MONTH) +internal fun Calendar.maxMonth(): Int = getActualMaximum(Calendar.MONTH) +internal fun Calendar.minDay(): Int = getMinimum(Calendar.DAY_OF_MONTH) +internal fun Calendar.maxDay(): Int = getActualMaximum(Calendar.DAY_OF_MONTH) +internal fun Calendar.minYear(): Int = getMinimum(Calendar.YEAR) +internal fun Calendar.maxYear(): Int = getActualMaximum(Calendar.YEAR) +internal fun now() = Calendar.getInstance() diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/ext/EditText.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/ext/EditText.kt new file mode 100644 index 0000000000..370037df6a --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/ext/EditText.kt @@ -0,0 +1,25 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.ext + +import android.view.inputmethod.EditorInfo +import android.widget.EditText + +/** + * Extension function to handle keyboard Done action + * @param actionConsumed true if you have consumed the action, else false. + * @param onDonePressed callback to execute when Done key is pressed + */ +internal fun EditText.onDone(actionConsumed: Boolean, onDonePressed: () -> Unit) { + setOnEditorActionListener { _, actionId, _ -> + when (actionId) { + EditorInfo.IME_ACTION_DONE -> { + onDonePressed() + actionConsumed + } + else -> false + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/ext/PromptRequest.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/ext/PromptRequest.kt new file mode 100644 index 0000000000..17db873e40 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/ext/PromptRequest.kt @@ -0,0 +1,36 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.ext + +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.concept.engine.prompt.PromptRequest.Alert +import mozilla.components.concept.engine.prompt.PromptRequest.Confirm +import mozilla.components.concept.engine.prompt.PromptRequest.Popup +import mozilla.components.concept.engine.prompt.PromptRequest.TextPrompt +import kotlin.reflect.KClass + +/** + * List of all prompts who are not to be shown in fullscreen. + */ +@PublishedApi +internal val PROMPTS_TO_EXIT_FULLSCREEN_FOR = listOf<KClass<out PromptRequest>>( + Alert::class, + TextPrompt::class, + Confirm::class, + Popup::class, +) + +/** + * Convenience method for executing code if the current [PromptRequest] is one that + * should not be shown in fullscreen tabs. + */ +internal inline fun <reified T> T.executeIfWindowedPrompt( + block: () -> Unit, +) where T : PromptRequest { + PROMPTS_TO_EXIT_FULLSCREEN_FOR + .firstOrNull { + this::class == it + }?.let { block.invoke() } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/facts/AddressAutofillDialogFacts.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/facts/AddressAutofillDialogFacts.kt new file mode 100644 index 0000000000..c7142a12d1 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/facts/AddressAutofillDialogFacts.kt @@ -0,0 +1,76 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.facts + +import mozilla.components.support.base.Component +import mozilla.components.support.base.facts.Action +import mozilla.components.support.base.facts.Fact +import mozilla.components.support.base.facts.collect + +/** + * Facts emitted for telemetry related to the Autofill prompt feature for addresses. + */ +class AddressAutofillDialogFacts { + /** + * Specific types of telemetry items. + */ + object Items { + const val AUTOFILL_ADDRESS_FORM_DETECTED = "autofill_address_form_detected" + const val AUTOFILL_ADDRESS_SUCCESS = "autofill_address_success" + const val AUTOFILL_ADDRESS_PROMPT_SHOWN = "autofill_address_prompt_shown" + const val AUTOFILL_ADDRESS_PROMPT_EXPANDED = "autofill_address_prompt_expanded" + const val AUTOFILL_ADDRESS_PROMPT_DISMISSED = "autofill_address_prompt_dismissed" + } +} + +private fun emitAddressAutofillDialogFact( + action: Action, + item: String, + value: String? = null, + metadata: Map<String, Any>? = null, +) { + Fact( + Component.FEATURE_PROMPTS, + action, + item, + value, + metadata, + ).collect() +} + +internal fun emitSuccessfulAddressAutofillFormDetectedFact() { + emitAddressAutofillDialogFact( + Action.INTERACTION, + AddressAutofillDialogFacts.Items.AUTOFILL_ADDRESS_FORM_DETECTED, + ) +} + +internal fun emitSuccessfulAddressAutofillSuccessFact() { + emitAddressAutofillDialogFact( + Action.INTERACTION, + AddressAutofillDialogFacts.Items.AUTOFILL_ADDRESS_SUCCESS, + ) +} + +internal fun emitAddressAutofillShownFact() { + emitAddressAutofillDialogFact( + Action.INTERACTION, + AddressAutofillDialogFacts.Items.AUTOFILL_ADDRESS_PROMPT_SHOWN, + ) +} + +internal fun emitAddressAutofillExpandedFact() { + emitAddressAutofillDialogFact( + Action.INTERACTION, + AddressAutofillDialogFacts.Items.AUTOFILL_ADDRESS_PROMPT_EXPANDED, + ) +} + +internal fun emitAddressAutofillDismissedFact() { + emitAddressAutofillDialogFact( + Action.INTERACTION, + AddressAutofillDialogFacts.Items.AUTOFILL_ADDRESS_PROMPT_DISMISSED, + ) +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/facts/CreditCardAutofillDialogFacts.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/facts/CreditCardAutofillDialogFacts.kt new file mode 100644 index 0000000000..6160c82f52 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/facts/CreditCardAutofillDialogFacts.kt @@ -0,0 +1,100 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.facts + +import mozilla.components.support.base.Component +import mozilla.components.support.base.facts.Action +import mozilla.components.support.base.facts.Fact +import mozilla.components.support.base.facts.collect + +/** + * Facts emitted for telemetry related to the Autofill prompt feature for credit cards. + */ +class CreditCardAutofillDialogFacts { + /** + * Specific types of telemetry items. + */ + object Items { + const val AUTOFILL_CREDIT_CARD_FORM_DETECTED = "autofill_credit_card_form_detected" + const val AUTOFILL_CREDIT_CARD_SUCCESS = "autofill_credit_card_success" + const val AUTOFILL_CREDIT_CARD_PROMPT_SHOWN = "autofill_credit_card_prompt_shown" + const val AUTOFILL_CREDIT_CARD_PROMPT_EXPANDED = "autofill_credit_card_prompt_expanded" + const val AUTOFILL_CREDIT_CARD_PROMPT_DISMISSED = "autofill_credit_card_prompt_dismissed" + const val AUTOFILL_CREDIT_CARD_CREATED = "autofill_credit_card_created" + const val AUTOFILL_CREDIT_CARD_UPDATED = "autofill_credit_card_updated" + const val AUTOFILL_CREDIT_CARD_SAVE_PROMPT_SHOWN = "autofill_credit_card_save_prompt_shown" + } +} + +private fun emitCreditCardAutofillDialogFact( + action: Action, + item: String, + value: String? = null, + metadata: Map<String, Any>? = null, +) { + Fact( + Component.FEATURE_PROMPTS, + action, + item, + value, + metadata, + ).collect() +} + +internal fun emitSuccessfulCreditCardAutofillFormDetectedFact() { + emitCreditCardAutofillDialogFact( + Action.INTERACTION, + CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_FORM_DETECTED, + ) +} + +internal fun emitSuccessfulCreditCardAutofillSuccessFact() { + emitCreditCardAutofillDialogFact( + Action.INTERACTION, + CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_SUCCESS, + ) +} + +internal fun emitCreditCardAutofillShownFact() { + emitCreditCardAutofillDialogFact( + Action.INTERACTION, + CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_PROMPT_SHOWN, + ) +} + +internal fun emitCreditCardAutofillExpandedFact() { + emitCreditCardAutofillDialogFact( + Action.INTERACTION, + CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_PROMPT_EXPANDED, + ) +} + +internal fun emitCreditCardAutofillDismissedFact() { + emitCreditCardAutofillDialogFact( + Action.INTERACTION, + CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_PROMPT_DISMISSED, + ) +} + +internal fun emitCreditCardAutofillCreatedFact() { + emitCreditCardAutofillDialogFact( + Action.CONFIRM, + CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_CREATED, + ) +} + +internal fun emitCreditCardAutofillUpdatedFact() { + emitCreditCardAutofillDialogFact( + Action.CONFIRM, + CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_UPDATED, + ) +} + +internal fun emitCreditCardSaveShownFact() { + emitCreditCardAutofillDialogFact( + Action.DISPLAY, + CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_SAVE_PROMPT_SHOWN, + ) +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/facts/LoginAutofillDialogFacts.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/facts/LoginAutofillDialogFacts.kt new file mode 100644 index 0000000000..0098598137 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/facts/LoginAutofillDialogFacts.kt @@ -0,0 +1,60 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.facts + +import mozilla.components.support.base.Component +import mozilla.components.support.base.facts.Action +import mozilla.components.support.base.facts.Fact +import mozilla.components.support.base.facts.collect + +/** + * Facts emitted for telemetry related to the Autofill prompt feature for logins. + */ +class LoginAutofillDialogFacts { + /** + * Specific types of telemetry items. + */ + object Items { + const val AUTOFILL_LOGIN_PROMPT_SHOWN = "autofill_login_prompt_shown" + const val AUTOFILL_LOGIN_PROMPT_DISMISSED = "autofill_login_prompt_dismissed" + const val AUTOFILL_LOGIN_PERFORMED = "autofill_login_performed" + } +} + +private fun emitLoginAutofillDialogFact( + action: Action, + item: String, + value: String? = null, + metadata: Map<String, Any>? = null, +) { + Fact( + Component.FEATURE_PROMPTS, + action, + item, + value, + metadata, + ).collect() +} + +internal fun emitLoginAutofillShownFact() { + emitLoginAutofillDialogFact( + Action.INTERACTION, + LoginAutofillDialogFacts.Items.AUTOFILL_LOGIN_PROMPT_SHOWN, + ) +} + +internal fun emitLoginAutofillPerformedFact() { + emitLoginAutofillDialogFact( + Action.INTERACTION, + LoginAutofillDialogFacts.Items.AUTOFILL_LOGIN_PERFORMED, + ) +} + +internal fun emitLoginAutofillDismissedFact() { + emitLoginAutofillDialogFact( + Action.INTERACTION, + LoginAutofillDialogFacts.Items.AUTOFILL_LOGIN_PROMPT_DISMISSED, + ) +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/facts/PromptFacts.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/facts/PromptFacts.kt new file mode 100644 index 0000000000..c5374fe5aa --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/facts/PromptFacts.kt @@ -0,0 +1,61 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.facts + +import mozilla.components.support.base.Component +import mozilla.components.support.base.facts.Action +import mozilla.components.support.base.facts.Fact +import mozilla.components.support.base.facts.collect + +/** + * Facts emitted for different events related to the prompt feature. + */ +class PromptFacts { + /** + * Different events emitted by prompts. + */ + object Items { + const val PROMPT = "PROMPT" + } +} + +private fun emitFact( + action: Action, + item: String, + value: String? = null, + metadata: Map<String, Any>? = null, +) { + Fact( + Component.FEATURE_PROMPTS, + action, + item, + value, + metadata, + ).collect() +} + +internal fun emitPromptDisplayedFact(promptName: String) { + emitFact( + Action.DISPLAY, + PromptFacts.Items.PROMPT, + value = promptName, + ) +} + +internal fun emitPromptDismissedFact(promptName: String) { + emitFact( + Action.CANCEL, + PromptFacts.Items.PROMPT, + value = promptName, + ) +} + +internal fun emitPromptConfirmedFact(promptName: String) { + emitFact( + Action.CONFIRM, + PromptFacts.Items.PROMPT, + value = promptName, + ) +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/file/FilePicker.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/file/FilePicker.kt new file mode 100644 index 0000000000..a07fcab997 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/file/FilePicker.kt @@ -0,0 +1,247 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.file + +import android.app.Activity +import android.app.Activity.RESULT_OK +import android.content.Context +import android.content.Intent +import android.content.Intent.EXTRA_INITIAL_INTENTS +import android.content.pm.PackageManager.PERMISSION_GRANTED +import android.net.Uri +import android.provider.MediaStore.EXTRA_OUTPUT +import androidx.annotation.VisibleForTesting +import androidx.annotation.VisibleForTesting.Companion.PRIVATE +import androidx.fragment.app.Fragment +import mozilla.components.browser.state.selector.findCustomTabOrSelectedTab +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.concept.engine.prompt.PromptRequest.File +import mozilla.components.feature.prompts.PromptContainer +import mozilla.components.feature.prompts.consumePromptFrom +import mozilla.components.support.base.feature.OnNeedToRequestPermissions +import mozilla.components.support.base.feature.PermissionsFeature +import mozilla.components.support.base.log.logger.Logger +import mozilla.components.support.ktx.android.content.isPermissionGranted +import mozilla.components.support.ktx.android.net.getFileName +import mozilla.components.support.ktx.android.net.isUnderPrivateAppDirectory +import mozilla.components.support.utils.ext.getParcelableExtraCompat + +/** + * The image capture intent doesn't return the URI where the image is saved, + * so we track it here. + * + * Top-level scoped to survive activity recreation in the "Don't keep activities" scenario. + */ +@VisibleForTesting +internal var captureUri: Uri? = null + +/** + * @property container The [Activity] or [Fragment] which hosts the file picker. + * @property store The [BrowserStore] this feature should subscribe to. + * @property fileUploadsDirCleaner a [FileUploadsDirCleaner] to clean up temporary file uploads. + * @property onNeedToRequestPermissions a callback invoked when permissions + * need to be requested before a prompt (e.g. a file picker) can be displayed. + * Once the request is completed, [onPermissionsResult] needs to be invoked. + */ +internal class FilePicker( + private val container: PromptContainer, + private val store: BrowserStore, + private var sessionId: String? = null, + private var fileUploadsDirCleaner: FileUploadsDirCleaner, + override val onNeedToRequestPermissions: OnNeedToRequestPermissions, +) : PermissionsFeature { + + private val logger = Logger("FilePicker") + + /** + * Cache of the current request to be used after permission is granted. + */ + @VisibleForTesting + internal var currentRequest: PromptRequest? = null + + @Suppress("ComplexMethod") + fun handleFileRequest(promptRequest: File, requestPermissions: Boolean = true) { + // Track which permissions are needed. + val neededPermissions = mutableSetOf<String>() + // Build a list of intents for capturing media and opening the file picker to combine later. + val intents = mutableListOf<Intent>() + captureUri = null + + // Compare the accepted values against image/*, video/*, and audio/* + for (type in MimeType.values()) { + val hasPermission = container.context.isPermissionGranted(type.permission) + // The captureMode attribute can be used if the accepted types are exactly for + // image/*, video/*, or audio/*. + if (hasPermission && type.shouldCapture( + promptRequest.mimeTypes, + promptRequest.captureMode, + ) + ) { + type.buildIntent(container.context, promptRequest)?.also { + saveCaptureUriIfPresent(it) + container.startActivityForResult(it, FILE_PICKER_ACTIVITY_REQUEST_CODE) + return + } + } + // Otherwise, build the intent and create a chooser later + if (type.matches(promptRequest.mimeTypes)) { + if (hasPermission) { + type.buildIntent(container.context, promptRequest)?.also { + saveCaptureUriIfPresent(it) + intents.add(it) + } + } else { + neededPermissions.addAll(type.permission) + } + } + } + + val canSkipPermissionRequest = !requestPermissions && intents.isNotEmpty() + + if (neededPermissions.isEmpty() || canSkipPermissionRequest) { + // Combine the intents together using a chooser. + val lastIntent = intents.removeAt(intents.lastIndex) + val chooser = Intent.createChooser(lastIntent, null).apply { + putExtra(EXTRA_INITIAL_INTENTS, intents.toTypedArray()) + } + + container.startActivityForResult(chooser, FILE_PICKER_ACTIVITY_REQUEST_CODE) + } else { + askAndroidPermissionsForRequest(neededPermissions, promptRequest) + } + } + + /** + * Notifies the feature of intent results for prompt requests handled by + * other apps like file chooser requests. + * + * @param requestCode The code of the app that requested the intent. + * @param intent The result of the request. + */ + fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent?): Boolean { + var resultHandled = false + val request = getActivePromptRequest() ?: return false + if (requestCode == FILE_PICKER_ACTIVITY_REQUEST_CODE && request is File) { + store.consumePromptFrom(sessionId, request.uid) { + if (resultCode == RESULT_OK) { + handleFilePickerIntentResult(intent, request) + } else { + request.onDismiss() + } + } + resultHandled = true + } + if (request !is File) { + logger.error("Invalid PromptRequest expected File but $request was provided") + } + + return resultHandled + } + + private fun getActivePromptRequest(): PromptRequest? = + store.state.findCustomTabOrSelectedTab(sessionId)?.content?.promptRequests?.lastOrNull { prompt -> + prompt is File + } + + /** + * Notifies the feature that the permissions request was completed. It will then + * either process or dismiss the prompt request. + * + * @param permissions List of permission requested. + * @param grantResults The grant results for the corresponding permissions + * @see [onNeedToRequestPermissions]. + */ + override fun onPermissionsResult(permissions: Array<String>, grantResults: IntArray) { + if (grantResults.isNotEmpty() && grantResults.all { it == PERMISSION_GRANTED }) { + onPermissionsGranted() + } else { + onPermissionsDenied() + } + currentRequest = null + } + + /** + * Used in conjunction with [onNeedToRequestPermissions], to notify the feature + * that all the required permissions have been granted, and the pending [PromptRequest] + * can be performed. + * + * If the required permission has not been granted + * [onNeedToRequestPermissions] will be called. + */ + @VisibleForTesting(otherwise = PRIVATE) + internal fun onPermissionsGranted() { + // Try again handling the original request which we've cached before. + // Actually consuming it will be done in onActivityResult once the user returns from the file picker. + handleFileRequest(currentRequest as File, requestPermissions = false) + } + + /** + * Used in conjunction with [onNeedToRequestPermissions] to notify the feature that one + * or more required permissions have been denied. + */ + @VisibleForTesting(otherwise = PRIVATE) + internal fun onPermissionsDenied() { + // Nothing left to do. Consume / cleanup the requests. + store.consumePromptFrom<File>(sessionId) { request -> + request.onDismiss() + } + } + + @VisibleForTesting(otherwise = PRIVATE) + internal fun handleFilePickerIntentResult(intent: Intent?, request: File) { + if (intent?.clipData != null && request.isMultipleFilesSelection) { + intent.clipData?.run { + val uris = Array<Uri>(itemCount) { index -> getItemAt(index).uri } + // We want to verify that we are not exposing any private data + val sanitizedUris = uris.removeUrisUnderPrivateAppDir(container.context) + if (sanitizedUris.isEmpty()) { + request.onDismiss() + } else { + sanitizedUris.map { + enqueueForCleanup(container.context, it) + } + request.onMultipleFilesSelected(container.context, sanitizedUris) + } + } + } else { + val uri = intent?.data ?: captureUri + uri?.let { + // We want to verify that we are not exposing any private data + if (!it.isUnderPrivateAppDirectory(container.context)) { + enqueueForCleanup(container.context, it) + request.onSingleFileSelected(container.context, it) + } else { + request.onDismiss() + } + } ?: request.onDismiss() + } + + captureUri = null + } + + private fun saveCaptureUriIfPresent(intent: Intent) = + intent.getParcelableExtraCompat(EXTRA_OUTPUT, Uri::class.java)?.let { captureUri = it } + + @VisibleForTesting + fun askAndroidPermissionsForRequest(permissions: Set<String>, request: File) { + currentRequest = request + onNeedToRequestPermissions(permissions.toTypedArray()) + } + + private fun enqueueForCleanup(context: Context, uri: Uri) { + val contentResolver = context.contentResolver + val fileName = uri.getFileName(contentResolver) + fileUploadsDirCleaner.enqueueForCleanup(fileName) + } + + companion object { + const val FILE_PICKER_ACTIVITY_REQUEST_CODE = 7113 + } +} + +internal fun Array<Uri>.removeUrisUnderPrivateAppDir(context: Context): Array<Uri> { + return this.filter { !it.isUnderPrivateAppDirectory(context) }.toTypedArray() +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/file/FileUploadsDirCleaner.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/file/FileUploadsDirCleaner.kt new file mode 100644 index 0000000000..5a87b6ab00 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/file/FileUploadsDirCleaner.kt @@ -0,0 +1,86 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.file + +import androidx.annotation.VisibleForTesting +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.DelicateCoroutinesApi +import kotlinx.coroutines.Dispatchers.IO +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext +import mozilla.components.concept.engine.prompt.PromptRequest.File.Companion.DEFAULT_UPLOADS_DIR_NAME +import mozilla.components.support.base.log.logger.Logger +import java.io.File +import java.io.IOException + +/** + * A storage implementation for organizing temporal uploads metadata to be clean up. + */ +@OptIn(DelicateCoroutinesApi::class) +class FileUploadsDirCleaner( + private val scope: CoroutineScope = GlobalScope, + private val cacheDirectory: () -> File, +) { + private val logger = Logger("FileUploadsDirCleaner") + + private val cacheDir by lazy { cacheDirectory() } + + @VisibleForTesting + internal var fileNamesToBeDeleted: List<String> = emptyList() + + @VisibleForTesting + internal var dispatcher: CoroutineDispatcher = IO + + /** + * Enqueue the [fileName] for future clean up. + */ + internal fun enqueueForCleanup(fileName: String) { + fileNamesToBeDeleted += (fileName) + logger.info("File $fileName added to the upload cleaning queue.") + } + + /** + * Remove all the temporary file uploads. + */ + internal fun cleanRecentUploads() { + scope.launch(dispatcher) { + val cacheUploadDirectory = File(getCacheDir(), DEFAULT_UPLOADS_DIR_NAME) + fileNamesToBeDeleted = fileNamesToBeDeleted.filter { fileName -> + try { + File(cacheUploadDirectory, fileName).delete() + logger.info("Temporal file $fileName deleted") + false + } catch (e: IOException) { + logger.error("Unable to delete the temporal file $fileName", e) + true + } + } + } + } + + /** + * Remove the file uploads directory if exists. + */ + suspend fun cleanUploadsDirectory() { + withContext(dispatcher) { + val cacheUploadDirectory = File(getCacheDir(), DEFAULT_UPLOADS_DIR_NAME) + if (cacheUploadDirectory.exists()) { + // To not collide with users uploading while, we are cleaning + // previous files, lets rename the directory. + val cacheUploadDirectoryToDelete = File(getCacheDir(), "/uploads_to_be_deleted") + + cacheUploadDirectory.renameTo(cacheUploadDirectoryToDelete) + cacheUploadDirectoryToDelete.deleteRecursively() + logger.info("Removed the temporal files under /uploads") + } + } + } + + private suspend fun getCacheDir(): File = withContext(dispatcher) { + cacheDir + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/file/FileUploadsDirCleanerMiddleware.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/file/FileUploadsDirCleanerMiddleware.kt new file mode 100644 index 0000000000..41fb56ea59 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/file/FileUploadsDirCleanerMiddleware.kt @@ -0,0 +1,40 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.file + +import mozilla.components.browser.state.action.BrowserAction +import mozilla.components.browser.state.action.ContentAction +import mozilla.components.browser.state.action.TabListAction +import mozilla.components.browser.state.state.BrowserState +import mozilla.components.lib.state.Middleware +import mozilla.components.lib.state.MiddlewareContext + +/** + * [Middleware] that observe when a user navigates away from a site and clean up, + * temporary file uploads. + */ +class FileUploadsDirCleanerMiddleware( + private val fileUploadsDirCleaner: FileUploadsDirCleaner, +) : Middleware<BrowserState, BrowserAction> { + + override fun invoke( + context: MiddlewareContext<BrowserState, BrowserAction>, + next: (BrowserAction) -> Unit, + action: BrowserAction, + ) { + when (action) { + is TabListAction.SelectTabAction, + is ContentAction.UpdateUrlAction, + is ContentAction.UpdateLoadRequestAction, + -> { + fileUploadsDirCleaner.cleanRecentUploads() + } + else -> { + // no-op + } + } + next(action) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/file/MimeType.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/file/MimeType.kt new file mode 100644 index 0000000000..4f40081ebb --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/file/MimeType.kt @@ -0,0 +1,187 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.file + +import android.Manifest.permission.CAMERA +import android.Manifest.permission.READ_EXTERNAL_STORAGE +import android.Manifest.permission.READ_MEDIA_AUDIO +import android.Manifest.permission.READ_MEDIA_IMAGES +import android.Manifest.permission.READ_MEDIA_VIDEO +import android.Manifest.permission.READ_MEDIA_VISUAL_USER_SELECTED +import android.Manifest.permission.RECORD_AUDIO +import android.annotation.SuppressLint +import android.content.Context +import android.content.Intent +import android.content.Intent.ACTION_GET_CONTENT +import android.content.Intent.CATEGORY_OPENABLE +import android.content.Intent.EXTRA_ALLOW_MULTIPLE +import android.content.Intent.EXTRA_LOCAL_ONLY +import android.content.Intent.EXTRA_MIME_TYPES +import android.net.Uri +import android.os.Build +import android.provider.MediaStore.ACTION_IMAGE_CAPTURE +import android.provider.MediaStore.ACTION_VIDEO_CAPTURE +import android.provider.MediaStore.Audio.Media.RECORD_SOUND_ACTION +import android.provider.MediaStore.EXTRA_OUTPUT +import android.webkit.MimeTypeMap +import androidx.core.content.FileProvider.getUriForFile +import mozilla.components.concept.engine.prompt.PromptRequest.File +import java.io.IOException +import java.text.SimpleDateFormat +import java.util.Date +import java.util.Locale.US + +internal sealed class MimeType( + private val type: String, + val permission: List<String>, +) { + + data class Image( + private val getUri: (Context, String, java.io.File) -> Uri = { context, authority, file -> + getUriForFile(context, authority, file) + }, + ) : MimeType( + "image/", + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + listOf(CAMERA, READ_MEDIA_IMAGES, READ_MEDIA_VISUAL_USER_SELECTED) + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + listOf(CAMERA, READ_MEDIA_IMAGES) + } else { + listOf(CAMERA) + }, + ) { + /** + * Build an image capture intent using the application FileProvider. + * A FileProvider must be defined in your AndroidManifest.xml, see + * https://developer.android.com/training/camera/photobasics#TaskPath + */ + override fun buildIntent(context: Context, request: File): Intent? { + val intent = Intent(ACTION_IMAGE_CAPTURE).withDeviceSupport(context) ?: return null + + val photoFile = try { + val filename = SimpleDateFormat("yyyy-MM-ddHH.mm.ss", US).format(Date()) + java.io.File.createTempFile(filename, ".jpg", context.cacheDir) + } catch (e: IOException) { + return null + } + + val photoUri = getUri(context, "${context.packageName}.feature.prompts.fileprovider", photoFile) + + return intent.apply { putExtra(EXTRA_OUTPUT, photoUri) }.addCaptureHint(request.captureMode) + } + } + + object Video : MimeType( + "video/", + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + listOf(CAMERA, READ_MEDIA_VIDEO, READ_MEDIA_VISUAL_USER_SELECTED) + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + listOf(CAMERA, READ_MEDIA_VIDEO) + } else { + listOf(CAMERA) + }, + ) { + override fun buildIntent(context: Context, request: File) = + Intent(ACTION_VIDEO_CAPTURE).withDeviceSupport(context)?.addCaptureHint(request.captureMode) + } + + object Audio : MimeType( + "audio/", + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + listOf(RECORD_AUDIO, READ_MEDIA_AUDIO) + } else { + listOf(RECORD_AUDIO) + }, + ) { + override fun buildIntent(context: Context, request: File) = + Intent(RECORD_SOUND_ACTION).withDeviceSupport(context) + } + + object Wildcard : MimeType( + "*/", + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + listOf(READ_MEDIA_IMAGES, READ_MEDIA_AUDIO, READ_MEDIA_VIDEO) + } else { + listOf(READ_EXTERNAL_STORAGE) + }, + ) { + private val mimeTypeMap = MimeTypeMap.getSingleton() + + override fun matches(mimeTypes: Array<out String>) = true + + override fun shouldCapture(mimeTypes: Array<out String>, capture: File.FacingMode) = false + + override fun buildIntent(context: Context, request: File) = + Intent(ACTION_GET_CONTENT).apply { + type = "*/*" + addCategory(CATEGORY_OPENABLE) + putExtra(EXTRA_LOCAL_ONLY, true) + if (request.mimeTypes.isNotEmpty()) { + val types = request.mimeTypes + .map { + if (it.contains("/")) { + it + } else { + mimeTypeMap.getMimeTypeFromExtension(it) ?: "*/*" + } + } + .toTypedArray() + putExtra(EXTRA_MIME_TYPES, types) + } + putExtra(EXTRA_ALLOW_MULTIPLE, request.isMultipleFilesSelection) + } + } + + /** + * True if any of the given mime values match this type. If no values are specified, then + * there will not be a match. + */ + open fun matches(mimeTypes: Array<out String>) = + mimeTypes.isNotEmpty() && mimeTypes.any { it.startsWith(type) } + + open fun shouldCapture(mimeTypes: Array<out String>, capture: File.FacingMode) = + capture != File.FacingMode.NONE && + mimeTypes.isNotEmpty() && + mimeTypes.all { it.startsWith(type) } + + abstract fun buildIntent(context: Context, request: File): Intent? + + companion object { + /** + * List of all MimeTypes that can be iterated + */ + fun values() = listOf(Image(), Video, Audio, Wildcard) + + const val CAMERA_FACING = "android.intent.extras.CAMERA_FACING" + const val LENS_FACING_FRONT = "android.intent.extras.LENS_FACING_FRONT" + const val USE_FRONT_CAMERA = "android.intent.extra.USE_FRONT_CAMERA" + const val LENS_FACING_BACK = "android.intent.extras.LENS_FACING_BACK" + const val USE_BACK_CAMERA = "android.intent.extra.USE_BACK_CAMERA" + } +} + +/** + * Return the intent only if its type has any corresponding apps on the device. + */ +@SuppressLint("QueryPermissionsNeeded") // We expect our browsers to have the QUERY_ALL_PACKAGES permission +private fun Intent.withDeviceSupport(context: Context) = + if (resolveActivity(context.packageManager) != null) this else null + +/** + * Hacky request for specific camera orientation + * https://stackoverflow.com/questions/43841738 + */ +private fun Intent.addCaptureHint(capture: File.FacingMode): Intent? { + if (capture == File.FacingMode.FRONT_CAMERA) { + putExtra(MimeType.CAMERA_FACING, 1) + putExtra(MimeType.LENS_FACING_FRONT, 1) + putExtra(MimeType.USE_FRONT_CAMERA, true) + } else if (capture == File.FacingMode.BACK_CAMERA) { + putExtra(MimeType.CAMERA_FACING, 0) + putExtra(MimeType.LENS_FACING_BACK, 1) + putExtra(MimeType.USE_BACK_CAMERA, true) + } + return this +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/DialogColors.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/DialogColors.kt new file mode 100644 index 0000000000..246d8b2cb0 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/DialogColors.kt @@ -0,0 +1,57 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.identitycredential + +import androidx.compose.material.ContentAlpha +import androidx.compose.material.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color + +/** + * Represents the colors used by the dialogs. + */ +data class DialogColors( + val title: Color, + val description: Color, +) { + + companion object { + + /** + * Creates an [DialogColors] that represents the default colors used in an + * IdentityCredential dialog. + * + * @param title The text color for the title of a suggestion. + * @param description The text color for the description of a suggestion. + */ + @Composable + fun default( + title: Color = MaterialTheme.colors.onBackground, + description: Color = MaterialTheme.colors.onBackground.copy( + alpha = ContentAlpha.medium, + ), + ) = DialogColors( + title, + description, + ) + + /** + * Creates a provider that provides the default [DialogColors] + */ + fun defaultProvider() = DialogColorsProvider { default() } + } +} + +/** + * An [DialogColorsProvider] implementation can provide an [DialogColors] + */ +fun interface DialogColorsProvider { + + /** + * Provides [DialogColors] + */ + @Composable + fun provideColors(): DialogColors +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/IdentityCredentialItem.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/IdentityCredentialItem.kt new file mode 100644 index 0000000000..e89ce54259 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/IdentityCredentialItem.kt @@ -0,0 +1,106 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.identitycredential + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import mozilla.components.feature.prompts.identitycredential.previews.DialogPreviewMaterialTheme +import mozilla.components.feature.prompts.identitycredential.previews.LightDarkPreview + +/** + * List item used to display an IdentityCredential item that supports clicks + * + * @param title the Title of the item + * @param description The Description of the item. + * @param modifier The modifier to apply to this layout. + * @param onClick Invoked when the item is clicked. + * @param beforeItemContent An optional layout to display before the item. + * + */ +@Composable +internal fun IdentityCredentialItem( + title: String, + description: String, + modifier: Modifier = Modifier, + colors: DialogColors = DialogColors.default(), + onClick: () -> Unit, + beforeItemContent: (@Composable () -> Unit)? = null, +) { + Row( + modifier = modifier + .fillMaxWidth() + .clickable(onClick = onClick) + .padding(horizontal = 16.dp, vertical = 6.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + beforeItemContent?.invoke() + + Column { + Text( + text = title, + style = TextStyle( + fontSize = 16.sp, + lineHeight = 24.sp, + color = colors.title, + letterSpacing = 0.15.sp, + ), + maxLines = 1, + ) + + Text( + text = description, + style = TextStyle( + fontSize = 14.sp, + lineHeight = 20.sp, + color = colors.description, + letterSpacing = 0.25.sp, + ), + maxLines = 1, + ) + } + } +} + +@Composable +@LightDarkPreview +private fun ProviderItemPreview() { + DialogPreviewMaterialTheme { + IdentityCredentialItem( + modifier = Modifier.background(MaterialTheme.colors.background), + title = "Title", + description = "Description", + onClick = {}, + ) + } +} + +@Composable +@Preview(name = "Provider with a start-spacer") +private fun ProviderItemPreviewWithSpacer() { + IdentityCredentialItem( + modifier = Modifier.background(Color.White), + title = "Title", + description = "Description", + onClick = {}, + ) { + Spacer(modifier = Modifier.size(24.dp)) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/PrivacyPolicyDialogFragment.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/PrivacyPolicyDialogFragment.kt new file mode 100644 index 0000000000..60db3c282d --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/PrivacyPolicyDialogFragment.kt @@ -0,0 +1,130 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.identitycredential + +import android.app.Dialog +import android.content.DialogInterface +import android.os.Bundle +import android.text.SpannableStringBuilder +import android.text.method.LinkMovementMethod +import android.text.style.ClickableSpan +import android.text.style.URLSpan +import android.view.LayoutInflater +import android.view.View +import android.widget.TextView +import androidx.appcompat.app.AlertDialog +import androidx.core.text.HtmlCompat +import androidx.core.text.getSpans +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.dialog.AbstractPromptTextDialogFragment +import mozilla.components.feature.prompts.dialog.KEY_MESSAGE +import mozilla.components.feature.prompts.dialog.KEY_PROMPT_UID +import mozilla.components.feature.prompts.dialog.KEY_SESSION_ID +import mozilla.components.feature.prompts.dialog.KEY_SHOULD_DISMISS_ON_LOAD +import mozilla.components.feature.prompts.dialog.KEY_TITLE + +internal const val KEY_ICON = "KEY_ICON" + +/** + * [ A Federated Credential Management dialog for showing a privacy policy. + */ +internal class PrivacyPolicyDialogFragment : AbstractPromptTextDialogFragment() { + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + val builder = AlertDialog.Builder(requireContext()) + .setTitle(title) + .setCancelable(true) + .setPositiveButton(R.string.mozac_feature_prompts_identity_credentials_continue) { _, _ -> + onConfirmAction(true) + } + .setNegativeButton(R.string.mozac_feature_prompts_identity_credentials_cancel) { _, _ -> + onConfirmAction(false) + } + + return setMessage(builder) + .create() + } + + internal fun setMessage(builder: AlertDialog.Builder): AlertDialog.Builder { + val inflater = LayoutInflater.from(requireContext()) + val view = inflater.inflate(R.layout.mozac_feature_prompt_simple_text, null) + val textView = view.findViewById<TextView>(R.id.labelView) + val text = HtmlCompat.fromHtml(message, HtmlCompat.FROM_HTML_MODE_COMPACT) + + val spannableStringBuilder = SpannableStringBuilder(text) + spannableStringBuilder.getSpans<URLSpan>().forEach { link -> + addActionToLinks(spannableStringBuilder, link) + } + textView.text = spannableStringBuilder + textView.movementMethod = LinkMovementMethod.getInstance() + + builder.setView(view) + + return builder + } + + override fun onCancel(dialog: DialogInterface) { + super.onCancel(dialog) + feature?.onCancel(sessionId, promptRequestUID) + } + + private fun addActionToLinks( + spannableStringBuilder: SpannableStringBuilder, + link: URLSpan, + ) { + val start = spannableStringBuilder.getSpanStart(link) + val end = spannableStringBuilder.getSpanEnd(link) + val flags = spannableStringBuilder.getSpanFlags(link) + val clickable: ClickableSpan = object : ClickableSpan() { + override fun onClick(view: View) { + view.setOnClickListener { + dismiss() + feature?.onOpenLink(link.url) + } + } + } + spannableStringBuilder.setSpan(clickable, start, end, flags) + spannableStringBuilder.removeSpan(link) + } + + private fun onConfirmAction(confirmed: Boolean) { + feature?.onConfirm(sessionId, promptRequestUID, confirmed) + } + + companion object { + /** + * A builder method for creating a [PrivacyPolicyDialogFragment] + * @param sessionId to create the dialog. + * @param promptRequestUID identifier of the [PromptRequest] for which this dialog is shown. + * @param shouldDismissOnLoad whether or not the dialog should automatically be dismissed + * when a new page is loaded. + * @param title the title of the dialog. + * @param message the message of the dialog. + * @param icon an icon of the provider. + */ + fun newInstance( + sessionId: String, + promptRequestUID: String, + shouldDismissOnLoad: Boolean, + title: String, + message: String, + icon: String?, + ): PrivacyPolicyDialogFragment { + val fragment = PrivacyPolicyDialogFragment() + val arguments = fragment.arguments ?: Bundle() + + with(arguments) { + putString(KEY_SESSION_ID, sessionId) + putString(KEY_PROMPT_UID, promptRequestUID) + putString(KEY_TITLE, title) + putString(KEY_MESSAGE, message) + putBoolean(KEY_SHOULD_DISMISS_ON_LOAD, shouldDismissOnLoad) + putString(KEY_ICON, icon) + } + fragment.arguments = arguments + return fragment + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/SelectAccountDialog.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/SelectAccountDialog.kt new file mode 100644 index 0000000000..2054053b49 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/SelectAccountDialog.kt @@ -0,0 +1,172 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.identitycredential + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.asImageBitmap +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import mozilla.components.concept.identitycredential.Account +import mozilla.components.concept.identitycredential.Provider +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.identitycredential.previews.DialogPreviewMaterialTheme +import mozilla.components.feature.prompts.identitycredential.previews.LightDarkPreview +import mozilla.components.support.ktx.kotlin.base64ToBitmap + +/** + * A Federated Credential Management dialog for selecting an account. + * + * @param provider The [Provider] on which the user is logging in. + * @param colors The colors of the dialog. + * @param accounts The list of available accounts for this provider. + * @param modifier [Modifier] to be applied to the layout. + * @param onAccountClick Invoked when the user clicks on an item. + */ +@Composable +fun SelectAccountDialog( + provider: Provider, + accounts: List<Account>, + modifier: Modifier = Modifier, + colors: DialogColors = DialogColors.default(), + onAccountClick: (Account) -> Unit, +) { + Column( + modifier = modifier.fillMaxWidth(), + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.padding(16.dp), + ) { + provider.icon?.base64ToBitmap()?.asImageBitmap()?.let { + Image( + bitmap = it, + contentDescription = null, + contentScale = ContentScale.FillWidth, + modifier = Modifier + .size(16.dp), + ) + + Spacer(Modifier.width(4.dp)) + } + + Text( + text = stringResource( + id = R.string.mozac_feature_prompts_identity_credentials_choose_account_for_provider, + provider.name, + ), + style = TextStyle( + fontSize = 16.sp, + lineHeight = 24.sp, + color = colors.title, + letterSpacing = 0.15.sp, + ), + ) + } + + accounts.forEach { account -> + AccountItem(account = account, colors = colors, onClick = onAccountClick) + } + + Spacer(modifier = Modifier.height(16.dp)) + } +} + +@Composable +private fun AccountItem( + account: Account, + modifier: Modifier = Modifier, + colors: DialogColors = DialogColors.default(), + onClick: (Account) -> Unit, +) { + IdentityCredentialItem( + title = account.name, + description = account.email, + colors = colors, + modifier = modifier, + onClick = { onClick(account) }, + ) { + account.icon?.base64ToBitmap()?.asImageBitmap()?.let { bitmap -> + Image( + bitmap = bitmap, + contentDescription = null, + contentScale = ContentScale.FillWidth, + modifier = Modifier + .padding(horizontal = 16.dp) + .size(32.dp), + ) + } ?: Spacer( + Modifier + .padding(horizontal = 16.dp) + .width(32.dp), + ) + } +} + +@Composable +@Preview(name = "Provider with no favicon") +private fun AccountItemPreview() { + AccountItem( + modifier = Modifier.background(Color.White), + account = Account( + 0, + "user@mozilla.com", + "User", + USER_PICTURE, + ), + onClick = {}, + ) +} + +@Composable +@LightDarkPreview +private fun SelectAccountDialogPreview() { + DialogPreviewMaterialTheme { + SelectAccountDialog( + provider = Provider(0, GOOGLE_FAVICON, "Google", "google.com"), + accounts = listOf( + Account( + 0, + "user@mozilla.com", + "User", + USER_PICTURE, + ), + Account( + 1, + "user2@mozilla.com", + "Google", + null, + ), + ), + modifier = Modifier.background(Color.White), + onAccountClick = { }, + ) + } +} + +@Suppress("MaxLineLength") +private const val GOOGLE_FAVICON = + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAARCAYAAADUryzEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAH+SURBVHgBhVO/b9NQEL5z7Bi1lWJUCYRYHBaWDh6SKhspAYnRoVO3SqxIbiUGEEIRQ1kbxB9AM7VISJiNoSUeI6DCYmSpt1ZUak2U0GLXuZ7dOnUsp73l+e593/343hkhZYePKqp/EhhAoLOrRkEEmwgd/mrd3PpmJvGYdPbvl1cJYQkuMQI085KwfP1Lxwl9Mb74Uyu/J4BFuMIEoKp/HCixHyXYf1BqEF2QuS13gPQ2P1OyQt//ta0CYgOBFApg7ob13R5ij9rX1P67uzuDv/k45ASBMHfLOmsxabvVipqOo78pNZls/Nu8Df7vAgRBrphFHmfhCPeEggdT8zvg2dNrk8/2Rsi1N12dx1OyyIjghgnUOCBrB5/TIAJhNYkZuSNwBT4vsiNlVrrEFJHf3UE6q7DtTfO5N4Jg5W3u1Um0pPBza+eeE4nIH8aHozvQ7M+4J3JQtOumO65kbaU33BfWwOK9IPN5dzYkRy1JntAYR3640tOSy8YatKJVLm3Mt/moJrAWEL7+sfDRCp3qJ13peYIxsft0SezPxjo5X19OFaMEGgOk/7mflK12OM5QXPlAB/mwDjjA+tarSXP4M1XWdXVCLrS7Xi8ryUhCsV9a7jx5sRbpkL4trz9eJBQMnlBLExncypHU7CxsOHEQx5WJ5j4WoyQiiE6SlLRTu5e/Z+DrlXsAAAAASUVORK5CYII=" + +@Suppress("MaxLineLength") +private const val USER_PICTURE = + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAtfSURBVHgBnVdbbFv1Gf/Z52If28c+dnyLndgnl15D2iRNadrSNoUxAkgjTCBg08T6hrYHyrQXNE2UbdK0p5WnsT3Rt0p74DJQkabSZlxWCr3RdM2N1Ekcx3cf34/tc4732WiVmDpAi2Qlsezzff/v+93+JnzHn9nZWYnTq7O6YRxrqo0xk4mRg8F+yTDaaDYbisMhxSx2x3WfLzDXQuOtU6dOKd/luaZv+8DM9JTMW/gXXc6en8LMSI1mHWq9DrQN+Hx9YFm20wDMZgYw84hGBmG022ibzW9YbeZXX3755dj/1cDs9LRUN+qvaK3WSYblEQiGIPb4UFNrKBZyYM1m+AMRWK02qNUyqoUkBI6FzR2EwQjwB4NgWAuaevu0JoivnnrpxD0nYr538SlZNzWv8Qx7stNjm95rtFpgrQ44Pb2wii7oZhNcHh9EpwtGQ4GoZ6CXNwFlDVbeDLWpo6RWYZiNk1yrfu3U7/8k36sW899v/OxHT495fcFzkscrO0QnTVqnT7GwO50wTG3YnG7wdGrCALzeIDjOAqa8ilx6i1ahQ6moiAYlpDQWhpWBYLXAzFkk3dBmD91/eO7DDz9I/s8GZqbGZKvDeY7nGNnh8cLEcmgaBn2KAW+hBzEcbA4PgoEQ7DYRvGCnJnxobFzCRjwLtWGg0WzC0Ktw9IRRbrSgai3ksxlwbUj5XHbG5w2+vbKycHcd7H/+mJ4ek9SqcWFifK/cpkMvxTOwOkSIHgb52CLsNPZQWAZnFZGi025trEIe3oUjE8NYOVeCUmyCZXR0+q1Wq9gXFmGRp2CihxlNDRwdIpNKyt6A78IzzzwxfuLEV5i42wCqxisWwSZfuXoF49u9eGhPCDfWCHAtwOHyYWjbKNzuHsTia9hMrMMheVEvl6DGL0OnUzPmNvRWZ1gManU6gaFBDofgcDhQq9VgF2wYHh5CrVKSTTBeoYov3V3B1NhO2WQ2neU5Di3DBJvkRyaTwfcO7UR/wNM9XZBOrxTLuLO2BDeNXXK5EXTbYMlcRTpfpoJm1MoNWEkX7E4bJg5M4p0338TNG1dxZ2URiXiMfi/gy6UF5ArKlFsSz8zPzyvdBsLR6B9FURrroJ2hPavgqYAL6VQSOyIeHD2wC5OyFVG/gEy+BJNWR1Qy40CfgWuXPkYLApIZ0gdFJSoKNB0HgqEeCK4gPpi7iEq9SnQVsHTrChbmr2Bp8RbSWxumza30+8w08V3Xcdbl9qFKAlMoKSgoReJ8LwJ0Qq1agFsU0COaEe4N4Mj+/ZgeC2Hfdg8qW/OY+/gaYUXCnfUCWrTrjjKabAxabRajI8NYIHB2GNRPApXL5dDUDNRpZevJzM4yTH9mdV2f5fgOVfguvZLpTdRVAtQtKyZGZuCylBHqj0Bga2hXU2jVV9FRw1w6geRWGuFIH67djqParMDrFlBp6JjaF0CiUMJQr9jVBCcBuEp4qdVIsOhVVMoolUsSB32WtYnSMaI3iQ3tzuUhcfGj1+bs0q5S03Hg0afgMNN4N28CvB1NmlA2X8BmqoxclYdTcqPNV8HyTdhEBv1hK8qpLzE2KGMg2ofJPbtRUFkUiIolRUGrpRNd65g8PIFAKHiMfeDYzNjy8jzamgYrIdUpEvWcEiqVCoxWg0YGlLKrKKXpy80E0aaOIjVWbwCC04eA6McPiB0bGxu48sUKgd9As1LG9sB9xH0Vh/dsx7ufLGJ1dQEKTUGnOirpg6OjIR7PGOshxQOBoF6t0O7z1GELxVIZ5WIaIwNTqObTSN34HAyBq5hcIHES0DIJqGom0gQelVIBZpMJQ+Ee0MSJ6ylEfHQIdwCVxE2EXINIx26iWiyQqhpdBdV0DXMffATh0mWZXVmal5Jb67QDeqDF2pWEdCZB/DRgI5VYu/we4mtxOB08NHK8ldvLyClV+L1eEikvzBZijULqqhFWiLIj2/sw2OclCzHDYu9BKrZKwpWEw07PJnxUyjVomk56UCMdqUisXaCh1io0BB0i0wOfP0hfJi1gqNtcEklzGW6ngFI+gfNXV/HpigKWHM+9uowBXxxyrws8b4KVtHYjHoeFZDjsD8A7OAzOvxvZW/+g6dnIJ7SOpXSx1iYr76yqTWJlvm/bbqUvHCWV89ODBKptQl84QibD4pObC9g+so8ewON2LIv5LRqP1YWwy4L+HpF2rSC2vo5cJglVraNJrxYdJJ+Oo6VsUkEGh48ch42jE9dJrKi4QWsQSeL7w30YHxtXWLVciR2ePDR24fJH3WChtZoEQg9UwYWnH5mCvHs/gbFJjV3HzOQwMUNFu1FEs14CRzqRLRZpYla4nA5IPcNgmgVkie+h4jptgSgYlHF4YhTnb6ySXrjh9bUQ9Pq7IPRJnhjzwNEHD+4e2jam6QZWCKktKuYk/f7xE4/gwPgY1MImSpuLqFSb0CnpmIwqMSRLKcEgqvLw+0VEdoyibh9C77ZJcLT7jeWr8NpbCO08AsY9gB2DUSgN8griEEcOayO9iYT8GJZD77Ora3cuSoL9+am9E1iiBjL5DJ6aOYJtfh5K4l+o0P+KboFKWs/RnvcceZhKU9hQcsSALLjGJoK7D8IeHkfAG0DquooW7bdAvtDZu7VRgoOoHSB1zDts2LuTGg30wE/pSlObc8zIyM7YnbWtFyLhPuuAvA11SwBOYmZZyYCRImiLvVhYJaWrlLBj+ocwu0NdtjjDQ3CRXPOuQHevZvL9RrlAehFHYWuRdKUBv4uHKxilqGhFYW0BZ989T4ewkXNyuL2yCs7hPtHNhA89+OjpaLj/RZ3Q+bdz76Bf3olf/vq3IMcihyuS3daQWJknbDioWIPyIIki0S5J1iwQi+yip5sDGAqoxcQK2tkvoNfzCLhE3H//fgw9/iuiXAEv/PwX+Oh2gr5jQTK5+YZSUk903XBHdHjBYM0n+/oHEd+IYTASAjEPhloEQwU5E/k7acDHc3O49vln5Acl2GwcWHpfsNm7GeArerW7oZUnBWyS4Xg8bvT4I3CFd8PmCeHw3p04MOCGxDRwaXHtSVXVvrLjldiKsue+UbemN6dG9+7D+p1lpMm/K9kEaiQy5cwGFuevIyjxOHRwEgMDMiyUHSw8S/RqIpVMUgxnUFV1AirgpDim1XLknkECNWUxT5BknidtaZAy6tg3Mvjab/7y3tmvZUKf33uJxOhZXdek0fFJNIopCIzW3WUniDhFQq4c7Y46m02hohTI2VTyemogW0AimUeR1A2MBSwF1VAoAq3DfVaCpV0j2jEwtRSoZSVmZqrP/eHMRbVT92v3gunpGRnt5oVIdFiW5QHafQWRvih6JB/OvfdXVGis8a0kzESjo0cPIbX4z65rGkTh9fVNckSB3FFCb9AHod3C/bsG0CtZ4bAYBM5VygXumDscPd57/KXYPVNxjFbhc3vnElvxmeWFm1JHWjWDpVMSpRpqd8ciaUQmm8Xg2DHy+DxRqQKny0HaUAf1QVmiTvgQEB6eQKR/gDBA4+fbKNWNmJKvPTn63O8W8E33gkQykdw1IL9NCWVWtNukdDqFpeUFDG0fIRY48dj3H6fg4YGJlNJJ2WGLQGul7G+zW5BO5ij1ZAmUpBlWJzkixXeOTM3KxBgrc3z/T75e/J4NdCcRjytev/dMW2cEXrBMuaig1U45r7cPbl8veoJ9ECUP3Y5YLN++TVige4DNSoCkSFcg2zWx2P/Aw90swfHsaz67+Ny2h08k71XrWy+nszPPyg6v8xTHm563251d2nUuombBiYA8jE///ibUGtGS10gfdHz2yWViB6ccnH70jGESTr/++unYNz3/Wxu42whdz3NpZZbuiNNk/nt9kV3y1EOPSXfmP0OjXlUa5XTM7XZcv3Tx/Fy5xbwVi8W+0/X83zizJdeTv85mAAAAAElFTkSuQmCC" diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/SelectAccountDialogFragment.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/SelectAccountDialogFragment.kt new file mode 100644 index 0000000000..24395337f6 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/SelectAccountDialogFragment.kt @@ -0,0 +1,118 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.identitycredential + +import android.annotation.SuppressLint +import android.app.Dialog +import android.content.DialogInterface +import android.os.Bundle +import android.view.View +import androidx.annotation.VisibleForTesting +import androidx.appcompat.app.AlertDialog +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material.MaterialTheme +import androidx.compose.material.darkColors +import androidx.compose.material.lightColors +import androidx.compose.ui.platform.ComposeView +import mozilla.components.concept.identitycredential.Account +import mozilla.components.concept.identitycredential.Provider +import mozilla.components.feature.prompts.dialog.KEY_PROMPT_UID +import mozilla.components.feature.prompts.dialog.KEY_SESSION_ID +import mozilla.components.feature.prompts.dialog.KEY_SHOULD_DISMISS_ON_LOAD +import mozilla.components.feature.prompts.dialog.PromptDialogFragment +import mozilla.components.support.utils.ext.getParcelableArrayListCompat +import mozilla.components.support.utils.ext.getParcelableCompat + +private const val KEY_ACCOUNTS = "KEY_ACCOUNTS" +private const val KEY_PROVIDER = "KEY_PROVIDER" + +/** + * A Federated Credential Management dialog for selecting an account. + */ +internal class SelectAccountDialogFragment : PromptDialogFragment() { + + internal val accounts: List<Account> by lazy { + safeArguments.getParcelableArrayListCompat(KEY_ACCOUNTS, Account::class.java) ?: emptyList() + } + + private var colorsProvider: DialogColorsProvider = DialogColors.defaultProvider() + + internal val provider: Provider by lazy { + requireNotNull( + safeArguments.getParcelableCompat( + KEY_PROVIDER, + Provider::class.java, + ), + ) + } + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog = + AlertDialog.Builder(requireContext()) + .setCancelable(true) + .setView(createDialogContentView()) + .create() + + override fun onCancel(dialog: DialogInterface) { + super.onCancel(dialog) + feature?.onCancel(sessionId, promptRequestUID) + } + + @SuppressLint("InflateParams") + internal fun createDialogContentView(): View { + return ComposeView(requireContext()).apply { + setContent { + val colors = if (isSystemInDarkTheme()) darkColors() else lightColors() + MaterialTheme(colors) { + SelectAccountDialog( + provider = provider, + accounts = accounts, + colors = colorsProvider.provideColors(), + onAccountClick = ::onAccountChange, + ) + } + } + } + } + + /** + * Called when a new [Provider] is selected by the user. + */ + @VisibleForTesting + internal fun onAccountChange(account: Account) { + feature?.onConfirm(sessionId, promptRequestUID, account) + dismiss() + } + + companion object { + + /** + * A builder method for creating a [SelectAccountDialogFragment] + * @param sessionId The id of the session for which this dialog will be created. + * @param promptRequestUID Identifier of the [PromptRequest] for which this dialog is shown. + * @param accounts The list of available accounts. + * @param provider The provider on which the user is logging in. + * @param shouldDismissOnLoad Whether or not the dialog should automatically be dismissed + * when a new page is loaded. + * @param colorsProvider Provides [DialogColors] that define the colors in the Dialog + */ + fun newInstance( + sessionId: String, + promptRequestUID: String, + accounts: List<Account>, + provider: Provider, + shouldDismissOnLoad: Boolean, + colorsProvider: DialogColorsProvider, + ) = SelectAccountDialogFragment().apply { + arguments = (arguments ?: Bundle()).apply { + putString(KEY_SESSION_ID, sessionId) + putString(KEY_PROMPT_UID, promptRequestUID) + putBoolean(KEY_SHOULD_DISMISS_ON_LOAD, shouldDismissOnLoad) + putParcelableArrayList(KEY_ACCOUNTS, ArrayList(accounts)) + putParcelable(KEY_PROVIDER, provider) + } + this.colorsProvider = colorsProvider + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/SelectProviderDialog.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/SelectProviderDialog.kt new file mode 100644 index 0000000000..ed23b6b9f9 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/SelectProviderDialog.kt @@ -0,0 +1,144 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.identitycredential + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.asImageBitmap +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import mozilla.components.concept.identitycredential.Provider +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.identitycredential.previews.DialogPreviewMaterialTheme +import mozilla.components.feature.prompts.identitycredential.previews.LightDarkPreview +import mozilla.components.support.ktx.kotlin.base64ToBitmap + +/** + * A Federated Credential Management dialog for selecting a provider. + * @param providers The list of available providers. + * @param colors The colors of the dialog. + * @param modifier [Modifier] to be applied to the layout. + * @param onProviderClick Called when the user clicks on an item. + */ +@Composable +fun SelectProviderDialog( + providers: List<Provider>, + modifier: Modifier = Modifier, + colors: DialogColors = DialogColors.default(), + onProviderClick: (Provider) -> Unit, +) { + Column( + modifier = modifier.fillMaxWidth(), + ) { + Text( + text = stringResource(id = R.string.mozac_feature_prompts_identity_credentials_choose_provider), + style = TextStyle( + fontSize = 16.sp, + lineHeight = 24.sp, + color = colors.title, + letterSpacing = 0.15.sp, + fontWeight = FontWeight.Bold, + ), + modifier = Modifier.padding(16.dp), + ) + + providers.forEach { provider -> + ProviderItem(provider = provider, onClick = onProviderClick, colors = colors) + } + + Spacer(modifier = Modifier.height(16.dp)) + } +} + +@Composable +private fun ProviderItem( + provider: Provider, + modifier: Modifier = Modifier, + colors: DialogColors = DialogColors.default(), + onClick: (Provider) -> Unit, +) { + IdentityCredentialItem( + title = provider.name, + description = provider.domain, + modifier = modifier, + colors = colors, + onClick = { onClick(provider) }, + ) { + provider.icon?.base64ToBitmap()?.asImageBitmap()?.let { bitmap -> + Image( + bitmap = bitmap, + contentDescription = null, + contentScale = ContentScale.FillWidth, + modifier = Modifier + .padding(horizontal = 16.dp) + .size(24.dp), + ) + } ?: Spacer( + Modifier + .padding(horizontal = 16.dp) + .width(24.dp), + ) + } +} + +@Composable +@Preview(name = "Provider with no favicon") +private fun ProviderItemPreview() { + ProviderItem( + modifier = Modifier.background(Color.White), + provider = Provider( + 0, + null, + "Title", + "Description", + ), + onClick = {}, + ) +} + +@Composable +@LightDarkPreview +private fun SelectProviderDialogPreview() { + DialogPreviewMaterialTheme { + SelectProviderDialog( + providers = listOf( + Provider( + 0, + null, + "Title", + "Description", + ), + Provider( + 0, + GOOGLE_FAVICON, + "Google", + "google.com", + ), + ), + modifier = Modifier.background(MaterialTheme.colors.background), + ) { } + } +} + +@Suppress("MaxLineLength") +private const val GOOGLE_FAVICON = + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAARCAYAAADUryzEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAH+SURBVHgBhVO/b9NQEL5z7Bi1lWJUCYRYHBaWDh6SKhspAYnRoVO3SqxIbiUGEEIRQ1kbxB9AM7VISJiNoSUeI6DCYmSpt1ZUak2U0GLXuZ7dOnUsp73l+e593/343hkhZYePKqp/EhhAoLOrRkEEmwgd/mrd3PpmJvGYdPbvl1cJYQkuMQI085KwfP1Lxwl9Mb74Uyu/J4BFuMIEoKp/HCixHyXYf1BqEF2QuS13gPQ2P1OyQt//ta0CYgOBFApg7ob13R5ij9rX1P67uzuDv/k45ASBMHfLOmsxabvVipqOo78pNZls/Nu8Df7vAgRBrphFHmfhCPeEggdT8zvg2dNrk8/2Rsi1N12dx1OyyIjghgnUOCBrB5/TIAJhNYkZuSNwBT4vsiNlVrrEFJHf3UE6q7DtTfO5N4Jg5W3u1Um0pPBza+eeE4nIH8aHozvQ7M+4J3JQtOumO65kbaU33BfWwOK9IPN5dzYkRy1JntAYR3640tOSy8YatKJVLm3Mt/moJrAWEL7+sfDRCp3qJ13peYIxsft0SezPxjo5X19OFaMEGgOk/7mflK12OM5QXPlAB/mwDjjA+tarSXP4M1XWdXVCLrS7Xi8ryUhCsV9a7jx5sRbpkL4trz9eJBQMnlBLExncypHU7CxsOHEQx5WJ5j4WoyQiiE6SlLRTu5e/Z+DrlXsAAAAASUVORK5CYII=" diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/SelectProviderDialogFragment.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/SelectProviderDialogFragment.kt new file mode 100644 index 0000000000..db68fea6fe --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/SelectProviderDialogFragment.kt @@ -0,0 +1,103 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.identitycredential + +import android.annotation.SuppressLint +import android.app.Dialog +import android.content.DialogInterface +import android.os.Bundle +import android.view.View +import androidx.annotation.VisibleForTesting +import androidx.appcompat.app.AlertDialog +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material.MaterialTheme +import androidx.compose.material.darkColors +import androidx.compose.material.lightColors +import androidx.compose.ui.platform.ComposeView +import mozilla.components.concept.identitycredential.Provider +import mozilla.components.feature.prompts.dialog.KEY_PROMPT_UID +import mozilla.components.feature.prompts.dialog.KEY_SESSION_ID +import mozilla.components.feature.prompts.dialog.KEY_SHOULD_DISMISS_ON_LOAD +import mozilla.components.feature.prompts.dialog.PromptDialogFragment +import mozilla.components.support.utils.ext.getParcelableArrayListCompat + +private const val KEY_PROVIDERS = "KEY_PROVIDERS" + +/** + * A Federated Credential Management dialog for selecting a provider. + */ +internal class SelectProviderDialogFragment : PromptDialogFragment() { + + private val providers: List<Provider> by lazy { + safeArguments.getParcelableArrayListCompat(KEY_PROVIDERS, Provider::class.java) + ?: emptyList() + } + + private var colorsProvider: DialogColorsProvider = DialogColors.defaultProvider() + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog = + AlertDialog.Builder(requireContext()) + .setCancelable(true) + .setView(createDialogContentView()) + .create() + + override fun onCancel(dialog: DialogInterface) { + super.onCancel(dialog) + feature?.onCancel(sessionId, promptRequestUID) + } + + @SuppressLint("InflateParams") + internal fun createDialogContentView(): View { + return ComposeView(requireContext()).apply { + setContent { + val colors = if (isSystemInDarkTheme()) darkColors() else lightColors() + MaterialTheme(colors) { + SelectProviderDialog( + providers = providers, + onProviderClick = ::onProviderChange, + colors = DialogColors.default(), + ) + } + } + } + } + + /** + * Called when a new [Provider] is selected by the user. + */ + @VisibleForTesting + internal fun onProviderChange(provider: Provider) { + feature?.onConfirm(sessionId, promptRequestUID, provider) + dismiss() + } + + companion object { + + /** + * A builder method for creating a [SelectAccountDialogFragment] + * @param sessionId The id of the session for which this dialog will be created. + * @param promptRequestUID Identifier of the [PromptRequest] for which this dialog is shown. + * @param providers The list of available providers. + * @param shouldDismissOnLoad Whether or not the dialog should automatically be dismissed + * when a new page is loaded. + * @param colorsProvider Provides [DialogColors] that define the colors in the Dialog + */ + fun newInstance( + sessionId: String, + promptRequestUID: String, + providers: List<Provider>, + shouldDismissOnLoad: Boolean, + colorsProvider: DialogColorsProvider, + ) = SelectProviderDialogFragment().apply { + arguments = (arguments ?: Bundle()).apply { + putString(KEY_SESSION_ID, sessionId) + putString(KEY_PROMPT_UID, promptRequestUID) + putBoolean(KEY_SHOULD_DISMISS_ON_LOAD, shouldDismissOnLoad) + putParcelableArrayList(KEY_PROVIDERS, ArrayList(providers)) + } + this.colorsProvider = colorsProvider + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/previews/DialogPreviewMaterialTheme.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/previews/DialogPreviewMaterialTheme.kt new file mode 100644 index 0000000000..afae915e0d --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/previews/DialogPreviewMaterialTheme.kt @@ -0,0 +1,24 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.identitycredential.previews + +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material.MaterialTheme +import androidx.compose.material.darkColors +import androidx.compose.material.lightColors +import androidx.compose.runtime.Composable +import mozilla.components.ui.colors.PhotonColors + +@Composable +internal fun DialogPreviewMaterialTheme(content: @Composable () -> Unit) { + val colors = if (!isSystemInDarkTheme()) { + lightColors() + } else { + darkColors(background = PhotonColors.DarkGrey30) + } + MaterialTheme(colors = colors) { + content() + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/previews/LightDarkPreview.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/previews/LightDarkPreview.kt new file mode 100644 index 0000000000..83c80f9448 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/identitycredential/previews/LightDarkPreview.kt @@ -0,0 +1,16 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.identitycredential.previews + +import android.content.res.Configuration +import androidx.compose.ui.tooling.preview.Preview + +/** + * A wrapper annotation for the two uiMode that are commonly used + * in Compose preview functions. + */ +@Preview(uiMode = Configuration.UI_MODE_NIGHT_YES) +@Preview(uiMode = Configuration.UI_MODE_NIGHT_NO) +annotation class LightDarkPreview diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/BasicLoginAdapter.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/BasicLoginAdapter.kt new file mode 100644 index 0000000000..b765a9352a --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/BasicLoginAdapter.kt @@ -0,0 +1,67 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.login + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.annotation.VisibleForTesting +import androidx.recyclerview.widget.DiffUtil +import androidx.recyclerview.widget.ListAdapter +import androidx.recyclerview.widget.RecyclerView +import mozilla.components.concept.storage.Login +import mozilla.components.feature.prompts.R + +private object LoginItemDiffCallback : DiffUtil.ItemCallback<Login>() { + override fun areItemsTheSame(oldItem: Login, newItem: Login) = + oldItem.guid == newItem.guid + + override fun areContentsTheSame(oldItem: Login, newItem: Login) = + oldItem == newItem +} + +/** + * RecyclerView adapter for displaying login items. + */ +internal class BasicLoginAdapter( + private val onLoginSelected: (Login) -> Unit, +) : ListAdapter<Login, LoginViewHolder>(LoginItemDiffCallback) { + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): LoginViewHolder { + val view = LayoutInflater + .from(parent.context) + .inflate(R.layout.login_selection_list_item, parent, false) + return LoginViewHolder(view, onLoginSelected) + } + + override fun onBindViewHolder(holder: LoginViewHolder, position: Int) { + holder.bind(getItem(position)) + } +} + +/** + * View holder for a login item. + */ +internal class LoginViewHolder( + itemView: View, + private val onLoginSelected: (Login) -> Unit, +) : RecyclerView.ViewHolder(itemView), View.OnClickListener { + @VisibleForTesting + lateinit var login: Login + + init { + itemView.setOnClickListener(this) + } + + fun bind(login: Login) { + this.login = login + itemView.findViewById<TextView>(R.id.username)?.text = login.username + itemView.findViewById<TextView>(R.id.password)?.text = login.password + } + + override fun onClick(v: View?) { + onLoginSelected(login) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/LoginDelegate.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/LoginDelegate.kt new file mode 100644 index 0000000000..80f4d33297 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/LoginDelegate.kt @@ -0,0 +1,27 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.login + +import mozilla.components.concept.storage.Login +import mozilla.components.feature.prompts.concept.SelectablePromptView + +/** + * Delegate to display the login select prompt and related callbacks + */ +interface LoginDelegate { + /** + * The [SelectablePromptView] used for [LoginPicker] to display a + * selectable prompt list of logins. + */ + val loginPickerView: SelectablePromptView<Login>? + get() = null + + /** + * Callback invoked when a user selects "Manage logins" + * from the select login prompt. + */ + val onManageLogins: () -> Unit + get() = {} +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/LoginExceptions.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/LoginExceptions.kt new file mode 100644 index 0000000000..6364f28a99 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/LoginExceptions.kt @@ -0,0 +1,22 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.login + +/** + * Interface to be implemented by a storage layer to exclude the save logins prompt from showing. + */ +interface LoginExceptions { + /** + * Checks if a specific origin should show a save logins prompt or if it is an exception. + * @param origin The origin to search exceptions list for. + */ + fun isLoginExceptionByOrigin(origin: String): Boolean + + /** + * Adds a new origin to the exceptions list implementation. + * @param origin The origin to add to the list of exceptions. + */ + fun addLoginException(origin: String) +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/LoginPicker.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/LoginPicker.kt new file mode 100644 index 0000000000..224f4e770e --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/LoginPicker.kt @@ -0,0 +1,80 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.login + +import mozilla.components.browser.state.action.ContentAction +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.concept.storage.Login +import mozilla.components.feature.prompts.concept.SelectablePromptView +import mozilla.components.feature.prompts.consumePromptFrom +import mozilla.components.feature.prompts.facts.emitLoginAutofillDismissedFact +import mozilla.components.feature.prompts.facts.emitLoginAutofillPerformedFact +import mozilla.components.feature.prompts.facts.emitLoginAutofillShownFact +import mozilla.components.support.base.log.logger.Logger + +/** + * The [LoginPicker] displays a list of possible logins in a [SelectablePromptView] for a site after + * receiving a [PromptRequest.SelectLoginPrompt] when a user clicks into a login field and we have + * matching logins. It allows the user to select which one of these logins they would like to fill, + * or select an option to manage their logins. + * + * @property store The [BrowserStore] this feature should subscribe to. + * @property loginSelectBar The [SelectablePromptView] view into which the select login "prompt" will be inflated. + * @property manageLoginsCallback A callback invoked when a user selects "manage logins" from the + * select login prompt. + * @property sessionId This is the id of the session which requested the prompt. + */ +internal class LoginPicker( + private val store: BrowserStore, + private val loginSelectBar: SelectablePromptView<Login>, + private val manageLoginsCallback: () -> Unit = {}, + private var sessionId: String? = null, +) : SelectablePromptView.Listener<Login> { + + init { + loginSelectBar.listener = this + } + + internal fun handleSelectLoginRequest(request: PromptRequest.SelectLoginPrompt) { + emitLoginAutofillShownFact() + loginSelectBar.showPrompt(request.logins) + } + + override fun onOptionSelect(option: Login) { + store.consumePromptFrom<PromptRequest.SelectLoginPrompt>(sessionId) { + it.onConfirm(option) + } + emitLoginAutofillPerformedFact() + loginSelectBar.hidePrompt() + } + + override fun onManageOptions() { + manageLoginsCallback.invoke() + dismissCurrentLoginSelect() + } + + @Suppress("TooGenericExceptionCaught") + fun dismissCurrentLoginSelect(promptRequest: PromptRequest.SelectLoginPrompt? = null) { + try { + if (promptRequest != null) { + promptRequest.onDismiss() + sessionId?.let { + store.dispatch(ContentAction.ConsumePromptRequestAction(it, promptRequest)) + } + loginSelectBar.hidePrompt() + return + } + + store.consumePromptFrom<PromptRequest.SelectLoginPrompt>(sessionId) { + it.onDismiss() + } + } catch (e: RuntimeException) { + Logger.error("Can't dismiss this login select prompt", e) + } + emitLoginAutofillDismissedFact() + loginSelectBar.hidePrompt() + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/LoginSelectBar.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/LoginSelectBar.kt new file mode 100644 index 0000000000..1fc79d79e0 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/LoginSelectBar.kt @@ -0,0 +1,140 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.login + +import android.content.Context +import android.content.res.ColorStateList +import android.util.AttributeSet +import android.view.View +import androidx.appcompat.widget.AppCompatImageView +import androidx.appcompat.widget.AppCompatTextView +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.content.withStyledAttributes +import androidx.core.view.isVisible +import androidx.core.widget.ImageViewCompat +import androidx.core.widget.TextViewCompat +import androidx.recyclerview.widget.DividerItemDecoration +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import mozilla.components.concept.storage.Login +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.concept.SelectablePromptView +import mozilla.components.support.ktx.android.view.hideKeyboard + +/** + * A customizable multiple login selection bar implementing [SelectablePromptView]. + */ +class LoginSelectBar @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0, +) : ConstraintLayout(context, attrs, defStyleAttr), SelectablePromptView<Login> { + + var headerTextStyle: Int? = null + + init { + context.withStyledAttributes( + attrs, + R.styleable.LoginSelectBar, + defStyleAttr, + 0, + ) { + val textStyle = + getResourceId(R.styleable.LoginSelectBar_mozacLoginSelectHeaderTextStyle, 0) + if (textStyle > 0) { + headerTextStyle = textStyle + } + } + } + + override var listener: SelectablePromptView.Listener<Login>? = null + + override fun showPrompt(options: List<Login>) { + if (loginPickerView == null) { + loginPickerView = + View.inflate(context, R.layout.mozac_feature_login_multiselect_view, this) + bindViews() + } + + listAdapter.submitList(options) + loginPickerView?.isVisible = true + } + + override fun hidePrompt() { + this.isVisible = false + loginsList?.isVisible = false + listAdapter.submitList(mutableListOf()) + manageLoginsButton?.isVisible = false + toggleSavedLoginsHeader(shouldExpand = false) + } + + override fun asView(): View { + return super.asView() + } + + private var loginPickerView: View? = null + private var loginsList: RecyclerView? = null + private var manageLoginsButton: AppCompatTextView? = null + private var savedLoginsHeader: AppCompatTextView? = null + private var expandArrowHead: AppCompatImageView? = null + + private var listAdapter = BasicLoginAdapter { + listener?.onOptionSelect(it) + } + + private fun bindViews() { + manageLoginsButton = findViewById<AppCompatTextView>(R.id.manage_logins).apply { + setOnClickListener { + listener?.onManageOptions() + } + } + loginsList = findViewById(R.id.logins_list) + savedLoginsHeader = findViewById<AppCompatTextView>(R.id.saved_logins_header).apply { + headerTextStyle?.let { + TextViewCompat.setTextAppearance(this, it) + currentTextColor.let { + TextViewCompat.setCompoundDrawableTintList(this, ColorStateList.valueOf(it)) + } + } + setOnClickListener { + toggleSavedLoginsHeader(shouldExpand = loginsList?.isVisible != true) + } + } + expandArrowHead = + findViewById<AppCompatImageView>(R.id.mozac_feature_login_multiselect_expand).apply { + savedLoginsHeader?.currentTextColor?.let { + ImageViewCompat.setImageTintList(this, ColorStateList.valueOf(it)) + } + } + loginsList?.apply { + layoutManager = LinearLayoutManager(context, RecyclerView.VERTICAL, false).also { + val dividerItemDecoration = DividerItemDecoration(context, it.orientation) + addItemDecoration(dividerItemDecoration) + } + adapter = listAdapter + } + } + + private fun toggleSavedLoginsHeader(shouldExpand: Boolean) { + if (shouldExpand) { + loginsList?.isVisible = true + manageLoginsButton?.isVisible = true + loginPickerView?.hideKeyboard() + expandArrowHead?.rotation = ROTATE_180 + savedLoginsHeader?.contentDescription = + context.getString(R.string.mozac_feature_prompts_collapse_logins_content_description) + } else { + expandArrowHead?.rotation = 0F + loginsList?.isVisible = false + manageLoginsButton?.isVisible = false + savedLoginsHeader?.contentDescription = + context.getString(R.string.mozac_feature_prompts_expand_logins_content_description_2) + } + } + + companion object { + private const val ROTATE_180 = 180F + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/StrongPasswordPromptViewListener.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/StrongPasswordPromptViewListener.kt new file mode 100644 index 0000000000..69a1abf3a7 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/StrongPasswordPromptViewListener.kt @@ -0,0 +1,92 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.login + +import mozilla.components.browser.state.action.ContentAction +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.concept.storage.Login +import mozilla.components.feature.prompts.concept.PasswordPromptView +import mozilla.components.feature.prompts.consumePromptFrom +import mozilla.components.support.base.log.logger.Logger + +/** + * Displays a [PasswordPromptView] for a site after receiving a [PromptRequest.SelectLoginPrompt] + * when a user clicks into a login field and we don't have any matching logins. The user can receive + * a suggestion for a strong password that can be used for filling in the password field. + * + * @property browserStore The [BrowserStore] this feature should subscribe to. + * @property suggestStrongPasswordBar The view where the suggest strong password "prompt" will be inflated. + * @property sessionId This is the id of the session which requested the prompt. + */ +internal class StrongPasswordPromptViewListener( + private val browserStore: BrowserStore, + private val suggestStrongPasswordBar: PasswordPromptView, + private var sessionId: String? = null, +) : PasswordPromptView.Listener { + + init { + suggestStrongPasswordBar.listener = this + } + + internal fun handleSuggestStrongPasswordRequest( + request: PromptRequest.SelectLoginPrompt, + currentUrl: String, + onSaveLoginWithStrongPassword: (url: String, password: String) -> Unit, + ) { + request.generatedPassword?.let { + suggestStrongPasswordBar.showPrompt( + it, + currentUrl, + onSaveLoginWithStrongPassword, + ) + } + } + + @Suppress("TooGenericExceptionCaught") + fun dismissCurrentSuggestStrongPassword(promptRequest: PromptRequest.SelectLoginPrompt? = null) { + try { + if (promptRequest != null) { + promptRequest.onDismiss() + sessionId?.let { + browserStore.dispatch( + ContentAction.ConsumePromptRequestAction( + it, + promptRequest, + ), + ) + } + suggestStrongPasswordBar.hidePrompt() + return + } + + browserStore.consumePromptFrom<PromptRequest.SelectLoginPrompt>(sessionId) { + it.onDismiss() + } + } catch (e: RuntimeException) { + Logger.error("Can't dismiss this prompt", e) + } + suggestStrongPasswordBar.hidePrompt() + } + + override fun onUseGeneratedPassword( + generatedPassword: String, + url: String, + onSaveLoginWithStrongPassword: (url: String, password: String) -> Unit, + ) { + browserStore.consumePromptFrom<PromptRequest.SelectLoginPrompt>(sessionId) { + // Create complete login entry: https://bugzilla.mozilla.org/show_bug.cgi?id=1869575 + val createdLoginEntryWithPassword = Login( + guid = "", + origin = url, + username = "", + password = generatedPassword, + ) + it.onConfirm(createdLoginEntryWithPassword) + } + onSaveLoginWithStrongPassword.invoke(url, generatedPassword) + suggestStrongPasswordBar.hidePrompt() + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/SuggestStrongPasswordBar.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/SuggestStrongPasswordBar.kt new file mode 100644 index 0000000000..d18d027644 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/SuggestStrongPasswordBar.kt @@ -0,0 +1,110 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.login + +import android.content.Context +import android.content.res.ColorStateList +import android.util.AttributeSet +import android.view.View +import androidx.appcompat.widget.AppCompatTextView +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.content.withStyledAttributes +import androidx.core.view.isVisible +import androidx.core.widget.TextViewCompat +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.concept.PasswordPromptView + +/** + * A prompt bar implementing [PasswordPromptView] to display the strong generated password. + */ +class SuggestStrongPasswordBar @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0, +) : ConstraintLayout(context, attrs, defStyleAttr), PasswordPromptView { + + private var headerTextStyle: Int? = null + private var suggestStrongPasswordView: View? = null + private var suggestStrongPasswordHeader: AppCompatTextView? = null + private var useStrongPasswordTitle: AppCompatTextView? = null + + override var listener: PasswordPromptView.Listener? = null + + init { + context.withStyledAttributes( + attrs, + R.styleable.LoginSelectBar, + defStyleAttr, + 0, + ) { + val textStyle = + getResourceId(R.styleable.LoginSelectBar_mozacLoginSelectHeaderTextStyle, 0) + if (textStyle > 0) { + headerTextStyle = textStyle + } + } + } + + override fun showPrompt( + generatedPassword: String, + url: String, + onSaveLoginWithStrongPassword: (url: String, password: String) -> Unit, + ) { + if (suggestStrongPasswordView == null) { + suggestStrongPasswordView = + View.inflate(context, R.layout.mozac_feature_suggest_strong_password_view, this) + bindViews(generatedPassword, url, onSaveLoginWithStrongPassword) + } + suggestStrongPasswordView?.isVisible = true + useStrongPasswordTitle?.isVisible = false + } + + override fun hidePrompt() { + isVisible = false + } + + private fun bindViews( + strongPassword: String, + url: String, + onSaveLoginWithStrongPassword: (url: String, password: String) -> Unit, + ) { + suggestStrongPasswordHeader = + findViewById<AppCompatTextView>(R.id.suggest_strong_password_header).apply { + headerTextStyle?.let { + TextViewCompat.setTextAppearance(this, it) + currentTextColor.let { textColor -> + TextViewCompat.setCompoundDrawableTintList( + this, + ColorStateList.valueOf(textColor), + ) + } + } + setOnClickListener { + useStrongPasswordTitle?.let { + it.visibility = if (it.isVisible) { + GONE + } else { + VISIBLE + } + } + } + } + + useStrongPasswordTitle = findViewById<AppCompatTextView>(R.id.use_strong_password).apply { + text = context.getString( + R.string.mozac_feature_prompts_suggest_strong_password_message, + strongPassword, + ) + visibility = GONE + setOnClickListener { + listener?.onUseGeneratedPassword( + generatedPassword = strongPassword, + url = url, + onSaveLoginWithStrongPassword = onSaveLoginWithStrongPassword, + ) + } + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/SuggestStrongPasswordDelegate.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/SuggestStrongPasswordDelegate.kt new file mode 100644 index 0000000000..b77e544000 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/login/SuggestStrongPasswordDelegate.kt @@ -0,0 +1,19 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.login + +import mozilla.components.feature.prompts.concept.PasswordPromptView + +/** + * Delegate to display the suggest strong password prompt. + */ +interface SuggestStrongPasswordDelegate { + + /** + * The [PasswordPromptView] used for [StrongPasswordPromptViewListener] to display a simple prompt. + */ + val strongPasswordPromptViewListenerView: PasswordPromptView? + get() = null +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/provider/FileProvider.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/provider/FileProvider.kt new file mode 100644 index 0000000000..512dc3026c --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/provider/FileProvider.kt @@ -0,0 +1,18 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package mozilla.components.feature.prompts.provider + +/** + * A file provider to provide functionality for the feature prompts component. + * + * We need this class to create a fully qualified class name that doesn't clash with other + * file providers in other components see https://stackoverflow.com/a/43444164/5533820. + * + * Be aware, when creating new file resources avoid using common names like "@xml/file_paths", + * as other file providers could be using the same names and this could case unexpected behaviors. + * As a convention try to use unique names like using the name of the component as a prefix of the + * name of the file, like component_xxx_file_paths.xml. + */ +/** @suppress */ +class FileProvider : androidx.core.content.FileProvider() diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/share/ShareDelegate.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/share/ShareDelegate.kt new file mode 100644 index 0000000000..96d7bebaea --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/share/ShareDelegate.kt @@ -0,0 +1,51 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.share + +import android.content.Context +import mozilla.components.concept.engine.prompt.ShareData +import mozilla.components.support.ktx.android.content.share + +/** + * Delegate to display a share prompt. + */ +interface ShareDelegate { + + /** + * Displays a share sheet for the given [ShareData]. + * + * @param context Reference to context. + * @param shareData Data to share. + * @param onDismiss Callback to be invoked if the share sheet is dismissed and nothing + * is selected, or if it fails to load. + * @param onSuccess Callback to be invoked if the data is successfully shared. + */ + fun showShareSheet( + context: Context, + shareData: ShareData, + onDismiss: () -> Unit, + onSuccess: () -> Unit, + ) +} + +/** + * Default [ShareDelegate] implementation that displays the native share sheet. + */ +class DefaultShareDelegate : ShareDelegate { + + override fun showShareSheet( + context: Context, + shareData: ShareData, + onDismiss: () -> Unit, + onSuccess: () -> Unit, + ) { + val shareSucceeded = context.share( + text = listOfNotNull(shareData.url, shareData.text).joinToString(" "), + subject = shareData.title.orEmpty(), + ) + + if (shareSucceeded) onSuccess() else onDismiss() + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/widget/LoginPanelTextInputLayout.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/widget/LoginPanelTextInputLayout.kt new file mode 100644 index 0000000000..1cb7733079 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/widget/LoginPanelTextInputLayout.kt @@ -0,0 +1,55 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.widget + +import android.content.Context +import android.content.res.ColorStateList +import android.content.res.TypedArray +import android.util.AttributeSet +import androidx.annotation.StyleableRes +import androidx.core.content.ContextCompat +import androidx.core.content.withStyledAttributes +import com.google.android.material.textfield.TextInputLayout +import mozilla.components.feature.prompts.R + +internal class LoginPanelTextInputLayout( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0, +) : TextInputLayout(context, attrs, defStyleAttr) { + constructor(context: Context) : this(context, null, 0) + + constructor(context: Context, attrs: AttributeSet? = null) : this(context, attrs, 0) + + init { + context.withStyledAttributes( + attrs, + R.styleable.LoginPanelTextInputLayout, + defStyleAttr, + 0, + ) { + + defaultHintTextColor = ColorStateList.valueOf( + ContextCompat.getColor( + context, + R.color.mozacBoxStrokeColor, + ), + ) + + getColorOrNull(R.styleable.LoginPanelTextInputLayout_mozacInputLayoutErrorTextColor)?.let { color -> + setErrorTextColor(ColorStateList.valueOf(color)) + } + + getColorOrNull(R.styleable.LoginPanelTextInputLayout_mozacInputLayoutErrorIconColor)?.let { color -> + setErrorIconTintList(ColorStateList.valueOf(color)) + } + } + } + + private fun TypedArray.getColorOrNull(@StyleableRes styleableRes: Int): Int? { + val resourceId = this.getResourceId(styleableRes, 0) + return if (resourceId > 0) ContextCompat.getColor(context, resourceId) else null + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/widget/MonthAndYearPicker.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/widget/MonthAndYearPicker.kt new file mode 100644 index 0000000000..2b6d334a72 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/widget/MonthAndYearPicker.kt @@ -0,0 +1,178 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.widget + +import android.annotation.SuppressLint +import android.content.Context +import android.widget.NumberPicker +import android.widget.ScrollView +import androidx.annotation.VisibleForTesting +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.ext.month +import mozilla.components.feature.prompts.ext.now +import mozilla.components.feature.prompts.ext.year +import java.util.Calendar + +/** + * UI widget that allows to select a month and a year. + */ +@SuppressLint("ViewConstructor") // This view is only instantiated in code +internal class MonthAndYearPicker @JvmOverloads constructor( + context: Context, + private val selectedDate: Calendar = now(), + private val maxDate: Calendar = getDefaultMaxDate(), + private val minDate: Calendar = getDefaultMinDate(), + internal var dateSetListener: OnDateSetListener? = null, +) : ScrollView(context), NumberPicker.OnValueChangeListener { + + @VisibleForTesting + internal val monthView: NumberPicker + + @VisibleForTesting + internal val yearView: NumberPicker + private val monthsLabels: Array<out String> + + init { + inflate(context, R.layout.mozac_feature_promps_widget_month_picker, this) + + adjustMinMaxDateIfAreInIllogicalRange() + adjustIfSelectedDateIsInIllogicalRange() + + monthsLabels = context.resources.getStringArray(R.array.mozac_feature_prompts_months) + + monthView = findViewById(R.id.month_chooser) + yearView = findViewById(R.id.year_chooser) + + iniMonthView() + iniYearView() + } + + override fun onValueChange(view: NumberPicker, oldVal: Int, newVal: Int) { + var month = 0 + var year = 0 + when (view.id) { + R.id.month_chooser -> { + month = newVal + // Wrapping months to update greater fields + if (oldVal == view.maxValue && newVal == view.minValue) { + yearView.value += 1 + if (!yearView.value.isMinYear()) { + month = Calendar.JANUARY + } + } else if (oldVal == view.minValue && newVal == view.maxValue) { + yearView.value -= 1 + if (!yearView.value.isMaxYear()) { + month = Calendar.DECEMBER + } + } + year = yearView.value + } + R.id.year_chooser -> { + month = monthView.value + year = newVal + } + } + + selectedDate.month = month + selectedDate.year = year + updateMonthView(month) + dateSetListener?.onDateSet(this, month + 1, year) // Month is zero based + } + + private fun Int.isMinYear() = minDate.year == this + private fun Int.isMaxYear() = maxDate.year == this + + private fun iniMonthView() { + monthView.setOnValueChangedListener(this) + monthView.setOnLongPressUpdateInterval(SPEED_MONTH_SPINNER) + updateMonthView(selectedDate.month) + } + + private fun iniYearView() { + val year = selectedDate.year + val max = maxDate.year + val min = minDate.year + + yearView.init(year, min, max) + yearView.wrapSelectorWheel = false + yearView.setOnLongPressUpdateInterval(SPEED_YEAR_SPINNER) + } + + private fun updateMonthView(month: Int) { + var min = Calendar.JANUARY + var max = Calendar.DECEMBER + + if (selectedDate.year.isMinYear()) { + min = minDate.month + } + + if (selectedDate.year.isMaxYear()) { + max = maxDate.month + } + + monthView.apply { + displayedValues = null + minValue = min + maxValue = max + displayedValues = monthsLabels.copyOfRange(monthView.minValue, monthView.maxValue + 1) + value = month + wrapSelectorWheel = true + } + } + + private fun adjustMinMaxDateIfAreInIllogicalRange() { + // If the input date range is illogical/garbage, we should not restrict the input range (i.e. allow the + // user to select any date). If we try to make any assumptions based on the illogical min/max date we could + // potentially prevent the user from selecting dates that are in the developers intended range, so it's best + // to allow anything. + if (maxDate.before(minDate)) { + minDate.timeInMillis = getDefaultMinDate().timeInMillis + maxDate.timeInMillis = getDefaultMaxDate().timeInMillis + } + } + + private fun adjustIfSelectedDateIsInIllogicalRange() { + if (selectedDate.before(minDate) || selectedDate.after(maxDate)) { + selectedDate.timeInMillis = minDate.timeInMillis + } + } + + private fun NumberPicker.init(currentValue: Int, min: Int, max: Int) { + minValue = min + maxValue = max + value = currentValue + setOnValueChangedListener(this@MonthAndYearPicker) + } + + interface OnDateSetListener { + fun onDateSet(picker: MonthAndYearPicker, month: Int, year: Int) + } + + companion object { + + private const val SPEED_MONTH_SPINNER = 200L + private const val SPEED_YEAR_SPINNER = 100L + + @VisibleForTesting + internal const val DEFAULT_MAX_YEAR = 9999 + + @VisibleForTesting + internal const val DEFAULT_MIN_YEAR = 1 + + internal fun getDefaultMinDate(): Calendar { + return now().apply { + month = Calendar.JANUARY + year = DEFAULT_MIN_YEAR + } + } + + internal fun getDefaultMaxDate(): Calendar { + return now().apply { + month = Calendar.DECEMBER + year = DEFAULT_MAX_YEAR + } + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/widget/TimePrecisionPicker.kt b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/widget/TimePrecisionPicker.kt new file mode 100644 index 0000000000..f1855abdba --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/java/mozilla/components/feature/prompts/widget/TimePrecisionPicker.kt @@ -0,0 +1,231 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.widget + +import android.annotation.SuppressLint +import android.content.Context +import android.view.View +import android.widget.NumberPicker +import android.widget.ScrollView +import androidx.annotation.VisibleForTesting +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.ext.hour +import mozilla.components.feature.prompts.ext.maxHour +import mozilla.components.feature.prompts.ext.maxMillisecond +import mozilla.components.feature.prompts.ext.maxMinute +import mozilla.components.feature.prompts.ext.maxSecond +import mozilla.components.feature.prompts.ext.millisecond +import mozilla.components.feature.prompts.ext.minHour +import mozilla.components.feature.prompts.ext.minMillisecond +import mozilla.components.feature.prompts.ext.minMinute +import mozilla.components.feature.prompts.ext.minSecond +import mozilla.components.feature.prompts.ext.minute +import mozilla.components.feature.prompts.ext.now +import mozilla.components.feature.prompts.ext.second +import mozilla.components.support.utils.TimePicker.shouldShowMillisecondsPicker +import java.util.Calendar + +/** + * UI widget that allows to select a time with precision of seconds or milliseconds. + */ +@SuppressLint("ViewConstructor") // This view is only instantiated in code +internal class TimePrecisionPicker @JvmOverloads constructor( + context: Context, + private val selectedTime: Calendar = now(), + private val minTime: Calendar = getDefaultMinTime(), + private val maxTime: Calendar = getDefaultMaxTime(), + stepValue: Float, + private var timeSetListener: OnTimeSetListener? = null, +) : ScrollView(context), NumberPicker.OnValueChangeListener { + + @VisibleForTesting + internal val hourView: NumberPicker + + @VisibleForTesting + internal val minuteView: NumberPicker + + @VisibleForTesting + internal val secondView: NumberPicker + + @VisibleForTesting + internal val millisecondView: NumberPicker + + init { + inflate(context, R.layout.mozac_feature_prompts_time_picker, this) + + adjustMinMaxTimeIfInIllogicalRange() + + hourView = findViewById(R.id.hour_picker) + minuteView = findViewById(R.id.minute_picker) + secondView = findViewById(R.id.second_picker) + millisecondView = findViewById(R.id.millisecond_picker) + + // Hide the millisecond picker if this is not the desired precision defined by the step + if (!shouldShowMillisecondsPicker(stepValue)) { + millisecondView.visibility = GONE + findViewById<View>(R.id.millisecond_separator).visibility = GONE + } + + initHourView() + updateMinuteView() + minuteView.setOnValueChangedListener(this) + minuteView.setOnLongPressUpdateInterval(SPEED_MINUTE_SPINNER) + secondView.init( + selectedTime.second, + selectedTime.minSecond(), + selectedTime.maxSecond(), + ) + millisecondView.init( + selectedTime.millisecond, + selectedTime.minMillisecond(), + selectedTime.maxMillisecond(), + ) + } + + override fun onValueChange(view: NumberPicker, oldVal: Int, newVal: Int) { + var hour = selectedTime.hour + var minute = selectedTime.minute + var second = selectedTime.second + var millisecond = selectedTime.millisecond + + when (view.id) { + R.id.hour_picker -> { + hour = newVal + selectedTime.hour = hour + updateMinuteView() + } + R.id.minute_picker -> { + minute = newVal + selectedTime.minute = minute + } + R.id.second_picker -> { + second = newVal + selectedTime.set(Calendar.SECOND, second) + } + R.id.millisecond_picker -> { + millisecond = newVal + selectedTime.set(Calendar.MILLISECOND, millisecond) + } + } + + // Update the selected time with the latest values. + timeSetListener?.onTimeSet(this, hour, minute, second, millisecond) + } + + private fun adjustMinMaxTimeIfInIllogicalRange() { + // If the input time range is illogical, we should not restrict the input range. + if (maxTime.before(minTime)) { + minTime.timeInMillis = getDefaultMinTime().timeInMillis + maxTime.timeInMillis = getDefaultMaxTime().timeInMillis + } + } + + // Initialize the hour view with the min and max values. + private fun initHourView() { + val min = minTime.hour + val max = maxTime.hour + + if (selectedTime.hour < min || selectedTime.hour > max) { + selectedTime.hour = min + timeSetListener?.onTimeSet( + this, + selectedTime.hour, + selectedTime.minute, + selectedTime.second, + selectedTime.millisecond, + ) + } + + hourView.apply { + minValue = min + maxValue = max + displayedValues = ((min..max).map { it.toString() }).toTypedArray() + value = selectedTime.hour + wrapSelectorWheel = true + setOnValueChangedListener(this@TimePrecisionPicker) + setOnLongPressUpdateInterval(SPEED_HOUR_SPINNER) + } + } + + // Update the minute view. + private fun updateMinuteView() { + val min: Int = if (selectedTime.hour == minTime.hour) { + minTime.minute + } else { + selectedTime.minMinute() + } + val max: Int = if (selectedTime.hour == maxTime.hour) { + maxTime.minute + } else { + selectedTime.maxMinute() + } + // If the hour is set to min/max value, then constraint the minute to a valid value. + val minute = if (selectedTime.minute < min || selectedTime.minute > max) { + timeSetListener?.onTimeSet( + this, + selectedTime.hour, + min, + selectedTime.second, + selectedTime.millisecond, + ) + min + } else { + selectedTime.minute + } + + minuteView.apply { + displayedValues = null + minValue = min + maxValue = max + displayedValues = ((min..max).map { it.toString() }).toTypedArray() + value = minute + wrapSelectorWheel = true + } + } + + // Initialize the [NumberPicker]. + private fun NumberPicker.init(currentValue: Int, min: Int, max: Int) { + minValue = min + maxValue = max + value = currentValue + displayedValues = ((min..max).map { it.toString() }).toTypedArray() + setOnValueChangedListener(this@TimePrecisionPicker) + setOnLongPressUpdateInterval(SPEED_MINUTE_SPINNER) + } + + // Interface used to set the selected time with seconds/milliseconds precision + interface OnTimeSetListener { + fun onTimeSet( + picker: TimePrecisionPicker, + hour: Int, + minute: Int, + second: Int, + millisecond: Int, + ) + } + + companion object { + private const val SPEED_HOUR_SPINNER = 200L + private const val SPEED_MINUTE_SPINNER = 100L + + internal fun getDefaultMinTime(): Calendar { + return now().apply { + hour = minHour() + minute = minMinute() + second = minSecond() + millisecond = minMillisecond() + } + } + + internal fun getDefaultMaxTime(): Calendar { + return now().apply { + hour = maxHour() + minute = maxMinute() + second = maxSecond() + millisecond = maxMillisecond() + } + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/color/button_state_list.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/color/button_state_list.xml new file mode 100644 index 0000000000..ce7a07e0d5 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/color/button_state_list.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_enabled="false" android:alpha="0.50" android:color="?android:colorEdgeEffect" /> + <item android:color="?android:colorEdgeEffect"/> +</selector> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/drawable-hdpi/color_picker_row_bg.9.png b/mobile/android/android-components/components/feature/prompts/src/main/res/drawable-hdpi/color_picker_row_bg.9.png Binary files differnew file mode 100644 index 0000000000..68ac5ef730 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/drawable-hdpi/color_picker_row_bg.9.png diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/drawable-mdpi/color_picker_row_bg.9.png b/mobile/android/android-components/components/feature/prompts/src/main/res/drawable-mdpi/color_picker_row_bg.9.png Binary files differnew file mode 100644 index 0000000000..5d72bdd255 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/drawable-mdpi/color_picker_row_bg.9.png diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/drawable-xhdpi/color_picker_row_bg.9.png b/mobile/android/android-components/components/feature/prompts/src/main/res/drawable-xhdpi/color_picker_row_bg.9.png Binary files differnew file mode 100644 index 0000000000..f5f9283b4a --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/drawable-xhdpi/color_picker_row_bg.9.png diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/drawable-xxhdpi/color_picker_row_bg.9.png b/mobile/android/android-components/components/feature/prompts/src/main/res/drawable-xxhdpi/color_picker_row_bg.9.png Binary files differnew file mode 100644 index 0000000000..1d69dc96eb --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/drawable-xxhdpi/color_picker_row_bg.9.png diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/drawable/color_picker_checkmark.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/drawable/color_picker_checkmark.xml new file mode 100644 index 0000000000..f162dba5d1 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/drawable/color_picker_checkmark.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<shape xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="ring" + android:innerRadius="15dip" + android:thickness="4dip" + android:useLevel="false"> + <solid android:color="@android:color/white"/> +</shape> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/drawable/mozac_ic_password_reveal_two_state.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/drawable/mozac_ic_password_reveal_two_state.xml new file mode 100644 index 0000000000..79760e5aa8 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/drawable/mozac_ic_password_reveal_two_state.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:drawable="@drawable/mozac_ic_eye_24" android:state_checked="false" /> + <item android:drawable="@drawable/mozac_ic_eye_slash_24" /> +</selector> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/login_selection_list_item.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/login_selection_list_item.xml new file mode 100644 index 0000000000..e754c7b50b --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/login_selection_list_item.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/login_item" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="?android:attr/selectableItemBackground" + android:clickable="true" + android:focusable="true" + android:minHeight="?android:attr/listPreferredItemHeight" + android:paddingStart="63dp" + android:paddingTop="8dp" + android:paddingEnd="8dp" + android:paddingBottom="8dp"> + + <TextView + android:id="@+id/username" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:clickable="false" + android:focusable="false" + android:importantForAutofill="no" + android:textAppearance="?android:attr/textAppearanceListItem" + android:textIsSelectable="false" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:text="Username" /> + + <TextView + android:id="@+id/password" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:clickable="false" + android:focusable="false" + android:importantForAutofill="no" + android:inputType="textPassword" + android:textAppearance="?android:attr/textAppearanceListItemSecondary" + android:textIsSelectable="false" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/username" + tools:ignore="TextViewEdits" + tools:text="password" /> +</androidx.constraintlayout.widget.ConstraintLayout> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_choice_dialogs.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_choice_dialogs.xml new file mode 100644 index 0000000000..ef5562819c --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_choice_dialogs.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<androidx.recyclerview.widget.RecyclerView + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/recyclerView" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingBottom="16dp"/>
\ No newline at end of file diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_choice_group_item.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_choice_group_item.xml new file mode 100644 index 0000000000..7a166ded04 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_choice_group_item.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + +<TextView xmlns:android="http://schemas.android.com/apk/res/android" + style="?android:attr/listSeparatorTextViewStyle" + android:id="@+id/labelView"/>
\ No newline at end of file diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_login_multiselect_view.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_login_multiselect_view.xml new file mode 100644 index 0000000000..116eae6cb2 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_login_multiselect_view.xml @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<merge xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"> + + <ScrollView + android:id="@+id/login_scroll_view" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/scroll_child" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <androidx.appcompat.widget.AppCompatTextView + android:id="@+id/saved_logins_header" + android:layout_width="0dp" + android:layout_height="48dp" + android:background="?android:selectableItemBackground" + android:contentDescription="@string/mozac_feature_prompts_expand_logins_content_description_2" + android:drawablePadding="24dp" + android:gravity="center_vertical" + android:paddingStart="16dp" + android:paddingEnd="56dp" + android:text="@string/mozac_feature_prompts_saved_logins_2" + android:textColor="?android:colorEdgeEffect" + android:textSize="16sp" + app:drawableStartCompat="@drawable/mozac_ic_login_24" + app:drawableTint="?android:colorEdgeEffect" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <androidx.appcompat.widget.AppCompatImageView + android:id="@+id/mozac_feature_login_multiselect_expand" + android:layout_width="48dp" + android:layout_height="48dp" + android:layout_marginStart="8dp" + android:layout_marginEnd="8dp" + android:clickable="false" + android:focusable="false" + android:importantForAccessibility="no" + android:padding="16dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:srcCompat="@drawable/mozac_ic_chevron_down_24" + app:tint="?android:colorEdgeEffect" /> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/logins_list" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:visibility="gone" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" + app:layout_constraintTop_toBottomOf="@id/mozac_feature_login_multiselect_expand" + tools:listitem="@layout/login_selection_list_item" /> + + <androidx.appcompat.widget.AppCompatTextView + android:id="@+id/manage_logins" + android:layout_width="0dp" + android:layout_height="48dp" + android:background="?android:selectableItemBackground" + android:drawablePadding="24dp" + android:gravity="center_vertical" + android:paddingStart="16dp" + android:paddingEnd="0dp" + android:text="@string/mozac_feature_prompts_manage_logins_2" + android:textColor="?android:textColorPrimary" + android:textSize="16sp" + android:visibility="gone" + app:drawableStartCompat="@drawable/mozac_ic_settings_24" + app:drawableTint="?android:textColorPrimary" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/logins_list" /> + </androidx.constraintlayout.widget.ConstraintLayout> + </ScrollView> +</merge> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_menu_choice_item.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_menu_choice_item.xml new file mode 100644 index 0000000000..c491949485 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_menu_choice_item.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<TextView + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/labelView" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textAppearance="?android:attr/textAppearanceListItemSmall" + android:gravity="center_vertical" + android:background="?android:attr/selectableItemBackground" + android:paddingStart="?android:attr/listPreferredItemPaddingStart" + android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" + android:minHeight="?android:attr/listPreferredItemHeightSmall"/> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_menu_separator_choice_item.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_menu_separator_choice_item.xml new file mode 100644 index 0000000000..f3dcfa28a5 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_menu_separator_choice_item.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<View xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="2dp" + android:background="?android:attr/listDivider"/> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_multiple_choice_item.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_multiple_choice_item.xml new file mode 100644 index 0000000000..89a672cc21 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_multiple_choice_item.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:minHeight="?android:attr/listPreferredItemHeightSmall" + android:background="?android:attr/selectableItemBackground"> + + <CheckedTextView + android:id="@+id/labelView" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:minHeight="?android:attr/listPreferredItemHeightSmall" + android:checkMark="?android:attr/listChoiceIndicatorMultiple" + android:gravity="center_vertical" + android:paddingStart="?android:attr/listPreferredItemPaddingStart" + android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" + android:textAppearance="?android:attr/textAppearanceListItemSmall"/> +</LinearLayout>
\ No newline at end of file diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_promps_widget_month_picker.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_promps_widget_month_picker.xml new file mode 100644 index 0000000000..4d00492351 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_promps_widget_month_picker.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + +<merge xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + tools:parentTag="android.widget.ScrollView"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center" + android:orientation="horizontal"> + + <android.widget.NumberPicker + android:id="@+id/month_chooser" + android:layout_width="60dp" + android:layout_height="wrap_content" + android:layout_marginStart="1dp" + android:layout_marginEnd="1dp" + android:focusable="true" + android:focusableInTouchMode="true" /> + + <android.widget.NumberPicker + android:id="@+id/year_chooser" + android:layout_width="75dp" + android:layout_height="wrap_content" + android:layout_marginStart="1dp" + android:layout_marginEnd="1dp" + android:focusable="true" + android:focusableInTouchMode="true" /> + + </LinearLayout> +</merge> + + diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompt_auth_prompt.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompt_auth_prompt.xml new file mode 100644 index 0000000000..170da9e56e --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompt_auth_prompt.xml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + +<ScrollView + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:paddingStart="?android:attr/listPreferredItemPaddingLeft" + android:paddingEnd="?android:attr/listPreferredItemPaddingLeft"> + + <com.google.android.material.textfield.TextInputLayout + android:id="@+id/username_text_input_layout" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <mozilla.components.feature.prompts.dialog.AutofillEditText + android:id="@+id/username" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:hint="@string/mozac_feature_prompt_username_hint" + android:inputType="text" + android:autofillHints="username" + tools:ignore="UnusedAttribute"/> + + </com.google.android.material.textfield.TextInputLayout > + + <com.google.android.material.textfield.TextInputLayout + android:id="@+id/password_text_input_layout" + android:layout_width="match_parent" + android:layout_height="wrap_content" + app:passwordToggleEnabled="true"> + + <mozilla.components.feature.prompts.dialog.AutofillEditText + android:id="@+id/password" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:hint="@string/mozac_feature_prompt_password_hint" + android:inputType="textPassword" + android:autofillHints="password" + tools:ignore="UnusedAttribute"/> + + </com.google.android.material.textfield.TextInputLayout > + + </LinearLayout> +</ScrollView>
\ No newline at end of file diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompt_save_credit_card_prompt.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompt_save_credit_card_prompt.xml new file mode 100644 index 0000000000..03bb4d9a83 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompt_save_credit_card_prompt.xml @@ -0,0 +1,140 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="?android:windowBackground" + android:paddingStart="16dp" + android:paddingTop="16dp" + android:paddingEnd="16dp" + android:paddingBottom="16dp" + tools:ignore="Overdraw"> + + <androidx.appcompat.widget.AppCompatImageView + android:id="@+id/lock_icon" + android:layout_width="24dp" + android:layout_height="24dp" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:srcCompat="@drawable/mozac_ic_lock_24" + app:tint="?android:attr/textColorPrimary" + android:importantForAccessibility="no" /> + + <androidx.appcompat.widget.AppCompatTextView + android:id="@+id/save_credit_card_header" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:focusable="true" + android:focusableInTouchMode="true" + android:gravity="center_vertical" + android:textColor="?android:textColorPrimary" + android:textSize="16sp" + android:textStyle="bold" + android:layout_marginStart="12dp" + android:layout_marginEnd="12dp" + app:layout_constraintStart_toEndOf="@id/lock_icon" + app:layout_constraintTop_toTopOf="parent" + tools:text="Securely save this card?" /> + + <androidx.appcompat.widget.AppCompatTextView + android:id="@+id/save_credit_card_message" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:gravity="center_vertical" + android:text="@string/mozac_feature_prompts_save_credit_card_prompt_body" + android:textColor="?android:textColorSecondary" + android:textSize="14sp" + android:visibility="gone" + app:layout_constraintStart_toStartOf="@id/save_credit_card_header" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@id/save_credit_card_header" + app:layout_goneMarginTop="20dp" + tools:text="Card number will be encrypted. Security coded won\'t be saved." + tools:visibility="visible" /> + + <ImageView + android:id="@+id/credit_card_logo" + android:layout_width="40dp" + android:layout_height="40dp" + android:layout_marginTop="16dp" + android:scaleType="fitCenter" + android:importantForAccessibility="no" + app:layout_constraintStart_toStartOf="@id/save_credit_card_header" + app:layout_constraintTop_toBottomOf="@id/save_credit_card_message" /> + + <TextView + android:id="@+id/credit_card_number" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginTop="16dp" + android:layout_marginStart="16dp" + android:layout_marginEnd="48dp" + android:clickable="false" + android:focusable="false" + android:importantForAutofill="no" + android:textAppearance="?android:attr/textAppearanceListItem" + android:textIsSelectable="false" + app:layout_constraintBottom_toTopOf="@id/credit_card_expiration_date" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@id/credit_card_logo" + app:layout_constraintTop_toBottomOf="@id/save_credit_card_message" + app:layout_constraintVertical_chainStyle="packed" + tools:text="Card 0000000000" /> + + <TextView + android:id="@+id/credit_card_expiration_date" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="16dp" + android:layout_marginEnd="48dp" + android:clickable="false" + android:focusable="false" + android:importantForAutofill="no" + android:textAppearance="?android:attr/textAppearanceListItemSecondary" + android:textIsSelectable="false" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@id/credit_card_logo" + app:layout_constraintTop_toBottomOf="@id/credit_card_number" + tools:text="01/2022" /> + + <com.google.android.material.button.MaterialButton + android:id="@+id/save_cancel" + style="@style/Widget.MaterialComponents.Button.TextButton" + android:layout_width="wrap_content" + android:layout_height="48dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="12dp" + android:background="?android:attr/selectableItemBackground" + android:letterSpacing="0" + android:text="@string/mozac_feature_prompt_not_now" + android:textAlignment="center" + android:textAllCaps="false" + android:textColor="@color/button_state_list" + android:textSize="14sp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@id/save_confirm" + app:layout_constraintTop_toBottomOf="@id/credit_card_logo" + app:rippleColor="?android:textColorSecondary" /> + + <Button + android:id="@+id/save_confirm" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentEnd="true" + android:layout_marginTop="16dp" + android:text="@string/mozac_feature_prompt_save_confirmation" + android:textAlignment="center" + android:textAllCaps="false" + android:textColor="?android:windowBackground" + android:textSize="14sp" + android:textStyle="bold" + app:backgroundTint="@color/button_state_list" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@id/credit_card_logo" + app:rippleColor="?android:textColorSecondary" /> +</androidx.constraintlayout.widget.ConstraintLayout> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompt_save_login_prompt.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompt_save_login_prompt.xml new file mode 100644 index 0000000000..6deb56ffff --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompt_save_login_prompt.xml @@ -0,0 +1,144 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/feature_prompt_login_fragment" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="?android:windowBackground" + android:paddingStart="16dp" + android:paddingTop="16dp" + android:paddingEnd="16dp" + android:paddingBottom="16dp" + tools:ignore="Overdraw"> + + <androidx.appcompat.widget.AppCompatImageView + android:id="@+id/host_icon" + android:layout_width="24dp" + android:layout_height="24dp" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:srcCompat="@drawable/mozac_ic_globe_24" + android:importantForAccessibility="no" /> + + <androidx.appcompat.widget.AppCompatTextView + android:id="@+id/host_name" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:focusable="true" + android:focusableInTouchMode="true" + android:gravity="center_vertical" + android:textColor="?android:textColorPrimary" + android:textSize="16sp" + android:layout_marginStart="12dp" + android:layout_marginEnd="12dp" + app:layout_constraintStart_toEndOf="@+id/host_icon" + app:layout_constraintTop_toTopOf="parent" + tools:text="host.com" /> + + <androidx.appcompat.widget.AppCompatTextView + android:id="@+id/save_message" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginTop="16dp" + android:drawablePadding="16dp" + android:gravity="center_vertical" + android:textColor="?android:textColorPrimary" + android:textSize="16sp" + app:drawableStartCompat="@drawable/mozac_ic_login_24" + app:drawableTint="?android:textColorPrimary" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/host_name" + app:layout_goneMarginTop="8dp" + tools:text="@string/mozac_feature_prompt_login_save_headline_2" /> + + <mozilla.components.feature.prompts.widget.LoginPanelTextInputLayout + android:id="@+id/userNameLayout" + style="@style/MozTextInputLayout" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="30dp" + android:layout_marginTop="16dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/save_message"> + + <com.google.android.material.textfield.TextInputEditText + android:id="@+id/username_field" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:hint="@string/mozac_feature_prompt_username_hint" + android:imeOptions="actionDone" + android:singleLine="true" + android:textColor="?android:textColorPrimary" + android:textSize="16sp" /> + </mozilla.components.feature.prompts.widget.LoginPanelTextInputLayout> + + <mozilla.components.feature.prompts.widget.LoginPanelTextInputLayout + android:id="@+id/password_text_input_layout" + style="@style/MozTextInputLayout" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="30dp" + android:layout_marginTop="12dp" + app:errorEnabled="true" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/userNameLayout" + app:passwordToggleDrawable="@drawable/mozac_ic_password_reveal_two_state" + app:passwordToggleEnabled="true" + app:passwordToggleTint="?android:textColorPrimary"> + + <com.google.android.material.textfield.TextInputEditText + android:id="@+id/password_field" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:hint="@string/mozac_feature_prompt_password_hint" + android:imeOptions="actionDone" + android:inputType="textPassword" + android:singleLine="true" + android:textColor="?android:textColorPrimary" + android:textSize="16sp" /> + + </mozilla.components.feature.prompts.widget.LoginPanelTextInputLayout> + + <com.google.android.material.button.MaterialButton + android:id="@+id/save_cancel" + style="@style/Widget.MaterialComponents.Button.TextButton" + android:layout_width="wrap_content" + android:layout_height="48dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="12dp" + android:background="?android:attr/selectableItemBackground" + android:letterSpacing="0" + android:text="@string/mozac_feature_prompt_never_save" + android:textAlignment="center" + android:textAllCaps="false" + android:textColor="@color/button_state_list" + android:textSize="14sp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/save_confirm" + app:layout_constraintTop_toBottomOf="@+id/password_text_input_layout" + app:rippleColor="?android:textColorSecondary" /> + + <Button + android:id="@+id/save_confirm" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentEnd="true" + android:layout_marginTop="16dp" + android:text="@string/mozac_feature_prompt_save_confirmation" + android:textAlignment="center" + android:textAllCaps="false" + android:textColor="?android:windowBackground" + android:textSize="14sp" + android:textStyle="bold" + app:backgroundTint="@color/button_state_list" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@+id/password_text_input_layout" + app:rippleColor="?android:textColorSecondary" /> +</androidx.constraintlayout.widget.ConstraintLayout> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompt_simple_text.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompt_simple_text.xml new file mode 100644 index 0000000000..62c9bc86ec --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompt_simple_text.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<TextView xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/labelView" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center_vertical" + android:minHeight="?android:attr/listPreferredItemHeightSmall" + android:paddingStart="24dp" + android:paddingTop="16dp" + android:paddingEnd="24dp" + android:textAppearance="?android:attr/textAppearanceListItemSmall" /> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompt_with_check_box.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompt_with_check_box.xml new file mode 100644 index 0000000000..f094fe9c43 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompt_with_check_box.xml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + +<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingTop="?android:attr/listPreferredItemPaddingLeft" + android:paddingStart="?android:attr/listPreferredItemPaddingLeft" + android:paddingEnd="?android:attr/listPreferredItemPaddingLeft"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingStart="?android:attr/listPreferredItemPaddingLeft" + android:paddingEnd="?android:attr/listPreferredItemPaddingLeft"> + + <TextView + android:id="@+id/message" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:maxLines="30" + android:scrollbars="vertical" + android:textColor="?android:attr/textColorPrimary" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:text="Message" /> + + <CheckBox + android:id="@id/mozac_feature_prompts_no_more_dialogs_check_box" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:text="@string/mozac_feature_prompts_no_more_dialogs" + android:textColor="?android:attr/textColorPrimary" + android:visibility="gone" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/message" + tools:visibility="visible" /> + + </androidx.constraintlayout.widget.ConstraintLayout> +</ScrollView> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_address_list_item.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_address_list_item.xml new file mode 100644 index 0000000000..3a63084b7e --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_address_list_item.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/address_item" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="?android:attr/selectableItemBackground" + android:minHeight="?android:attr/listPreferredItemHeight"> + + <TextView + android:id="@+id/address_name" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="16dp" + android:layout_marginEnd="16dp" + android:clickable="false" + android:focusable="false" + android:importantForAutofill="no" + android:textAppearance="?android:attr/textAppearanceListItem" + android:textIsSelectable="false" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_chainStyle="packed" + tools:text="1230 Main St, Los Angeles, CA 90237" /> +</androidx.constraintlayout.widget.ConstraintLayout> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_address_select_prompt.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_address_select_prompt.xml new file mode 100644 index 0000000000..80a4660703 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_address_select_prompt.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<merge xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"> + + <ScrollView + android:id="@+id/address_scroll_view" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/scroll_child" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <androidx.appcompat.widget.AppCompatTextView + android:id="@+id/select_address_header" + android:layout_width="0dp" + android:layout_height="48dp" + android:background="?android:selectableItemBackground" + android:contentDescription="@string/mozac_feature_prompts_expand_address_content_description_2" + android:drawablePadding="24dp" + android:gravity="center_vertical" + android:paddingStart="16dp" + android:paddingEnd="56dp" + android:text="@string/mozac_feature_prompts_select_address_2" + android:textColor="?android:colorEdgeEffect" + android:textSize="16sp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <androidx.appcompat.widget.AppCompatImageView + android:id="@+id/mozac_feature_address_expander" + android:layout_width="48dp" + android:layout_height="48dp" + android:layout_marginStart="8dp" + android:layout_marginEnd="8dp" + android:clickable="false" + android:focusable="false" + android:importantForAccessibility="no" + android:padding="16dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:srcCompat="@drawable/mozac_ic_chevron_down_24" + app:tint="?android:colorEdgeEffect" /> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/address_list" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:visibility="gone" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" + app:layout_constraintTop_toBottomOf="@id/mozac_feature_address_expander" + tools:listitem="@layout/mozac_feature_prompts_address_list_item" /> + + <androidx.appcompat.widget.AppCompatTextView + android:id="@+id/manage_addresses" + android:layout_width="0dp" + android:layout_height="48dp" + android:background="?android:selectableItemBackground" + android:drawablePadding="24dp" + android:gravity="center_vertical" + android:paddingStart="24dp" + android:paddingEnd="0dp" + android:text="@string/mozac_feature_prompts_manage_address" + android:textColor="?android:textColorPrimary" + android:textSize="16sp" + android:visibility="gone" + app:drawableStartCompat="@drawable/mozac_ic_settings_24" + app:drawableTint="?android:textColorPrimary" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/address_list" /> + </androidx.constraintlayout.widget.ConstraintLayout> + </ScrollView> +</merge> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_color_item.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_color_item.xml new file mode 100644 index 0000000000..15f07d2dc6 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_color_item.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<TextView + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/color_item" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textAppearance="?android:attr/textAppearanceListItemSmall" + android:gravity="center_vertical" + android:background="@drawable/color_picker_row_bg" + android:minHeight="?android:attr/listPreferredItemHeight" /> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_color_picker_dialogs.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_color_picker_dialogs.xml new file mode 100644 index 0000000000..7c7e329fb8 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_color_picker_dialogs.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<androidx.recyclerview.widget.RecyclerView + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/recyclerView" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingTop="16dp" + tools:listitem="@layout/mozac_feature_prompts_color_item" /> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_credit_card_list_item.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_credit_card_list_item.xml new file mode 100644 index 0000000000..34bc24b7ef --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_credit_card_list_item.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/credit_card_item" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="?android:attr/selectableItemBackground" + android:minHeight="?android:attr/listPreferredItemHeight"> + + <ImageView + android:id="@+id/credit_card_logo" + android:layout_width="40dp" + android:layout_height="40dp" + android:layout_marginStart="16dp" + android:scaleType="fitCenter" + android:importantForAccessibility="no" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toBottomOf="parent" /> + + <TextView + android:id="@+id/credit_card_number" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="16dp" + android:layout_marginEnd="48dp" + android:clickable="false" + android:focusable="false" + android:importantForAutofill="no" + android:textAppearance="?android:attr/textAppearanceListItem" + android:textIsSelectable="false" + app:layout_constraintBottom_toTopOf="@id/credit_card_expiration_date" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@id/credit_card_logo" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_chainStyle="packed" + tools:text="Card 0000000000" /> + + <TextView + android:id="@+id/credit_card_expiration_date" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="16dp" + android:layout_marginEnd="48dp" + android:clickable="false" + android:focusable="false" + android:importantForAutofill="no" + android:textAppearance="?android:attr/textAppearanceListItemSecondary" + android:textIsSelectable="false" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@id/credit_card_logo" + app:layout_constraintTop_toBottomOf="@id/credit_card_number" + tools:text="01/2022" /> +</androidx.constraintlayout.widget.ConstraintLayout> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_credit_card_select_prompt.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_credit_card_select_prompt.xml new file mode 100644 index 0000000000..fad767dafd --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_credit_card_select_prompt.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<merge xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"> + + <ScrollView + android:id="@+id/credit_card_scroll_view" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/scroll_child" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <androidx.appcompat.widget.AppCompatTextView + android:id="@+id/select_credit_card_header" + android:layout_width="0dp" + android:layout_height="48dp" + android:background="?android:selectableItemBackground" + android:contentDescription="@string/mozac_feature_prompts_expand_credit_cards_content_description_2" + android:drawablePadding="24dp" + android:gravity="center_vertical" + android:paddingStart="16dp" + android:paddingEnd="56dp" + android:text="@string/mozac_feature_prompts_select_credit_card_2" + android:textColor="?android:colorEdgeEffect" + android:textSize="16sp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <androidx.appcompat.widget.AppCompatImageView + android:id="@+id/mozac_feature_credit_cards_expander" + android:layout_width="48dp" + android:layout_height="48dp" + android:layout_marginStart="8dp" + android:layout_marginEnd="8dp" + android:clickable="false" + android:focusable="false" + android:importantForAccessibility="no" + android:padding="16dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:srcCompat="@drawable/mozac_ic_chevron_down_24" + app:tint="?android:colorEdgeEffect" /> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/credit_cards_list" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:visibility="gone" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" + app:layout_constraintTop_toBottomOf="@id/mozac_feature_credit_cards_expander" + tools:listitem="@layout/mozac_feature_prompts_credit_card_list_item" /> + + <androidx.appcompat.widget.AppCompatTextView + android:id="@+id/manage_credit_cards" + android:layout_width="0dp" + android:layout_height="48dp" + android:background="?android:selectableItemBackground" + android:drawablePadding="24dp" + android:gravity="center_vertical" + android:paddingStart="24dp" + android:paddingEnd="0dp" + android:text="@string/mozac_feature_prompts_manage_credit_cards_2" + android:textColor="?android:textColorPrimary" + android:textSize="16sp" + android:visibility="gone" + app:drawableStartCompat="@drawable/mozac_ic_settings_24" + app:drawableTint="?android:textColorPrimary" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/credit_cards_list" /> + </androidx.constraintlayout.widget.ConstraintLayout> + </ScrollView> +</merge> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_date_time_picker.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_date_time_picker.xml new file mode 100644 index 0000000000..e33d882417 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_date_time_picker.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + +<ScrollView + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <DatePicker + android:id="@+id/date_picker" + android:layout_width="match_parent" + android:layout_height="wrap_content"/> + + <TimePicker + android:id="@+id/datetime_picker" + android:layout_width="match_parent" + android:layout_height="wrap_content"/> + + </LinearLayout> +</ScrollView> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_time_picker.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_time_picker.xml new file mode 100644 index 0000000000..68323699f5 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_prompts_time_picker.xml @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + +<merge xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + tools:parentTag="android.widget.ScrollView"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center" + android:orientation="horizontal"> + + <android.widget.NumberPicker + android:id="@+id/hour_picker" + android:layout_width="60dp" + android:layout_height="wrap_content" + android:layout_marginHorizontal="1dp" + android:focusable="true" + android:focusableInTouchMode="true" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/mozac_feature_prompts_second_separator" /> + + <android.widget.NumberPicker + android:id="@+id/minute_picker" + android:layout_width="75dp" + android:layout_height="wrap_content" + android:layout_marginHorizontal="1dp" + android:focusable="true" + android:focusableInTouchMode="true" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/mozac_feature_prompts_second_separator" /> + + <android.widget.NumberPicker + android:id="@+id/second_picker" + android:layout_width="75dp" + android:layout_height="wrap_content" + android:layout_marginHorizontal="1dp" + android:focusable="true" + android:focusableInTouchMode="true" /> + + <TextView + android:id="@+id/millisecond_separator" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/mozac_feature_prompts_millisecond_separator" /> + + <android.widget.NumberPicker + android:id="@+id/millisecond_picker" + android:layout_width="75dp" + android:layout_height="wrap_content" + android:layout_marginHorizontal="1dp" + android:focusable="true" + android:focusableInTouchMode="true" /> + + </LinearLayout> +</merge>
\ No newline at end of file diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_single_choice_item.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_single_choice_item.xml new file mode 100644 index 0000000000..d0373b3133 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_single_choice_item.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:minHeight="?android:attr/listPreferredItemHeightSmall" + android:background="?android:attr/selectableItemBackground"> + + <CheckedTextView + android:id="@+id/labelView" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:minHeight="?android:attr/listPreferredItemHeightSmall" + android:checkMark="?android:attr/listChoiceIndicatorSingle" + android:gravity="center_vertical" + android:paddingStart="?android:attr/listPreferredItemPaddingStart" + android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" + android:textAppearance="?android:attr/textAppearanceListItemSmall"/> +</LinearLayout>
\ No newline at end of file diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_suggest_strong_password_view.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_suggest_strong_password_view.xml new file mode 100644 index 0000000000..47ce784257 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_suggest_strong_password_view.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<merge xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:layout_width="match_parent" + android:layout_height="wrap_content"> + <androidx.appcompat.widget.AppCompatTextView + android:id="@+id/suggest_strong_password_header" + android:layout_width="0dp" + android:layout_height="48dp" + android:background="?android:selectableItemBackground" + android:contentDescription="@string/mozac_feature_prompts_suggest_strong_password_content_description" + android:drawablePadding="24dp" + android:gravity="center_vertical" + android:paddingStart="16dp" + android:paddingEnd="56dp" + android:text="@string/mozac_feature_prompts_suggest_strong_password" + android:textColor="?android:colorEdgeEffect" + android:textSize="16sp" + app:drawableStartCompat="@drawable/mozac_ic_login_24" + app:drawableTint="?android:colorEdgeEffect" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <androidx.appcompat.widget.AppCompatTextView + android:id="@+id/use_strong_password" + android:layout_width="0dp" + android:layout_height="48dp" + android:background="?android:selectableItemBackground" + android:drawablePadding="24dp" + android:gravity="center_vertical" + android:paddingStart="16dp" + android:paddingEnd="0dp" + android:text="@string/mozac_feature_prompts_suggest_strong_password_message" + android:textColor="?android:textColorPrimary" + android:textSize="16sp" + android:visibility="gone" + app:drawableStartCompat="@drawable/mozac_ic_lock_24" + app:drawableTint="?android:textColorPrimary" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/suggest_strong_password_header" /> + </androidx.constraintlayout.widget.ConstraintLayout> +</merge> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_text_prompt.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_text_prompt.xml new file mode 100644 index 0000000000..c3c9cdc776 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/layout/mozac_feature_text_prompt.xml @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + +<ScrollView + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:paddingTop="?android:attr/listPreferredItemPaddingLeft" + android:paddingStart="?android:attr/listPreferredItemPaddingLeft" + android:paddingEnd="?android:attr/listPreferredItemPaddingLeft"> + + <TextView + android:id="@+id/input_label" + android:layout_width="match_parent" + android:layout_height="wrap_content" + tools:text="Please enter your name" + android:labelFor="@+id/input_value" + android:contentDescription="@string/mozac_feature_prompts_content_description_input_label"/> + + <EditText + android:id="@+id/input_value" + android:layout_width="match_parent" + android:layout_height="wrap_content" + tools:ignore="Autofill" + android:inputType="text"/> + + <CheckBox + android:id="@id/mozac_feature_prompts_no_more_dialogs_check_box" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="@string/mozac_feature_prompts_no_more_dialogs" + android:visibility="gone" + tools:visibility="visible" + android:textColor="#aaa"/> + + </LinearLayout> +</ScrollView> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-am/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-am/strings.xml new file mode 100644 index 0000000000..a0d6b1b708 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-am/strings.xml @@ -0,0 +1,192 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">እሺ</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">ተወው</string> + + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">ይህ ገጽ ተጨማሪ መገናኛዎችን እንዳይፈጥር ይከለክሉት</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">አቀናብር</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">አጽዳ</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">ይግቡ</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">የተጠቃሚ ስም</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">የይለፍ ቃል</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">አታስቀምጥ</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">አሁን አይሆንም</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">በጭራሽ አታስቀምጥ</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">አሁን አይሆንም</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">አስቀምጥ</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">አታዘምን</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">አሁን አይሆንም</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">አዘምን</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">የይለፍ ቃል ባዶ መሆን የለበትም</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">የይለፍ ቃል ያስገቡ</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">መግባትን ማስቀመጥ አልተቻለም</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">የይለፍ ቃል ማስቀመጥ አልተቻለም</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">ይህ መግቢያ ይቀመጥ?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">የይለፍ ቃል ይቀመጥ?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">ይህ መግቢያ ይዘምን?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">የይለፍ ቃል ይዘምን?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">የተጠቃሚ ስም በተቀመጠው ይለፍ ቃል ላይ ይታከል?</string> + + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">የጽሑፍ ግብዓት መስክ ለማስገባት መለያ</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">ቀለም ይምረጡ</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">ፍቀድ</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">ከልክል</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">እርግጠኛ ነዎት?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">ከዚህ ድረ-ገፅ መውጣት ይፈልጋሉ? ያስገቡት ውሂብ ላይቀመጥ ይችላል</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">ቆይ</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">ውጣ</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">አንድ ወር ይምረጡ</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">ጥር</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">የካ</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">መጋ</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">ሚያ</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">ግን</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">ሰኔ</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">ሐም</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">ነሐ</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">መስ</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">ጥቅ</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">ሕዳ</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">ታሕ</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">ስዓት ይሙሉ</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">መግቢያዎችን ያስተዳድሩ</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">የይለፍ ቃሎችን አስተዳድር</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">የተጠቆሙ መግቢያዎችን ዘርጋ</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">የተቀመጡ የይለፍ ቃሎችን ዘርጋ</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">የተጠቆሙ መግቢያዎችን ሰብስብ</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">የተቀመጡ የይለፍ ቃሎችን ሰብስብ</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">የተጠቆሙ መግቢያዎች</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">የተቀመጡ የይለፍ ቃሎች</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">ጠንካራ የይለፍ ቃል ጥቆማ</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">ጠንካራ የይለፍ ቃል ጥቆማ</string> + + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">ጠንካራ የይለፍ ቃል ይጠቀሙ:- %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">ውሂብ ወደዚህ ድረ-ገፅ እንደገና ይላክ?</string> + + <string name="mozac_feature_prompt_repost_message">ይህን ገጽ ማደስ እንደ ክፍያ መላክ ወይም አስተያየት መለጠፍ ያሉ የቅርብ ጊዜ ድርጊቶችን ሁለት ጊዜ ማባዛት ይችላል።</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">ውሂብ እንደገና ላክ</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">ተወው</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">ክሬዲት ካርድ ይምረጡ</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">የተቀመጠ ካርድ ተጠቀም</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">የተጠቆሙ ክሬዲት ካርዶችን ዘርጋ</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">የተቀመጡ ካርዶችን ዘርጋ</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">የተጠቆሙ ክሬዲት ካርዶችን ሰብስብ</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">የተቀመጡ ካርዶችን ሰብስብ</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">ክሬዲት ካርዶችን ያስተዳድሩ</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">ካርዶችን ያስተዳድሩ</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">ይህን ካርድ ደህንነቱ በተጠበቀ ሁኔታ ይቀመጥ?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">የካርድ ማብቂያ ቀን ይዘምን?</string> + + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">የካርድ ቁጥር ይሰወራል ። የደህንነት የሚስጥር ፅሑፍ አይቀመጥም።</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s የካርድ ቁጥርዎን ያመስጥራል። የደህንነት ኮድዎ አይቀመጥም።</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">አድራሻ ይምረጡ</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">የተጠቆሙ አድራሻዎችን ዘርጋ</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">የተቀመጡ አድራሻዎችን ዘርጋ</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">የተጠቆሙ አድራሻዎችን ሰብስብ</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">የተቀመጡ አድራሻዎችን ሰብስብ</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">አድራሻዎችን ያስተዳድሩ</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">የመለያ ምስል</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">መለያ አቅራቢ ይምረጡ</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">በ%1$s መለያ ይግቡ</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">%1$sን እንደ መለያ አቅራቢ ይጠቀሙ</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ በ%2$s መለያ ወደ %1$s መግባት በ<a href="%3$s">የግላዊነት ፖሊሲ</a> እና <a href="%4$s">የአገልግሎት ውል</a> ተገዢ ነው]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">ቀጥል</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">ሰርዝ</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-an/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-an/strings.xml new file mode 100644 index 0000000000..7385652c19 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-an/strings.xml @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Vale</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Cancelar</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Privar que ista pachina creye dialogos adicionals</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Aplicar</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Borrar</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Iniciar sesión</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nombre d’usuario</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Clau</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">No alzar-lo</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">No alzar nunca</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Alzar-lo</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">No actualizar-lo</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Actualizar</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Lo campo Clau no puede estar vuedo</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">No se puede alzar l’inicio de sesión</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Alzar este inicio de sesión?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Actualizar este inicio de sesión?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Anyadir nombre de usuario a la clau alzada?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etiqueta pa escribir un campo de dentrada de texto</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Triar una color</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permitir</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Refusar</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">En yes seguro?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Quiers salir d’este puesto? Los datos que has escrito no s’alzarán</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">No salir</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Salir</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Triar un mes</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Chi</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Abr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">May</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Chun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Chul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Ago</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Set</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Oct</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Avi</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Chestiona os inicios de sesión</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Expande los inicios de sesión sucherius</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Reduce los inicios de sesión sucherius</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Inicios de sesión sucherius</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ar/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ar/strings.xml new file mode 100644 index 0000000000..a7a196cfa7 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ar/strings.xml @@ -0,0 +1,136 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">حسنا</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">ألغِ</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">امنع هذه الصفحة من إنشاء نوافذ حوار إضافية</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">حدد</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">امسح</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">لِج</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">اسم المستخدم</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">كلمة السر</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">لا تحفظ</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">لا تحفظ أبدًا</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">ليس الآن</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">احفظ</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">لا تُحدّث</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">حدّث</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">لا يمكن أن يكون حقل كلمة السر فارغًا</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">تعذّر حفظ جلسة الولوج</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">أنحفظ هذا الولوج؟</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">أنحدّث هذا الولوج؟</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">أنُضيف اسم المستخدم إلى كلمة المرور المحفوظة؟</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">تسمية لإدخال نص في حقل نصوص</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">اختر لونًا</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">اسمح</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">ارفض</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">أمتأكّد أنت؟</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">أتريد مغادرة هذا الموقع؟ قد لا تُحظ البيانات المُدخلة</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">سأبقى</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">غادِر</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">اختر شهرا</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">يناير</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">فبراير</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">مارس</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">أبريل</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">مايو</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">يونيو</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">يوليو</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">أغسطس</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">سبتمبر</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">أكتوبر</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">نوفمبر</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">ديسمبر</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">اضبط الوقت</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">أدِر جلسات الولوج</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">وسّع جلسات الولوج المقترحة</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">اطوِ جلسات الولوج المقترحة</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">جلسات الولوج المقترحة</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">أنُعيد إرسال البيانات إلى هذا الموقع؟</string> + <string name="mozac_feature_prompt_repost_message">بإنعاش هذه الصفحة قد تُكرّر آخر الإجراءات مثل إرسال النقود أو نشر تعليق.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">أعِد إرسال البيانات</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">ألغِ</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">اختر بطاقة ائتمان</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">وسّع بطاقات الائتمان المقترحة</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">اطوِ بطاقات الائتمان المقترحة</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">أدِر بطاقات الائتمان</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">أأحفظ هذه البطاقة بأمان؟</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">أتريد تحديث تاريخ انتهاء البطاقة؟</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">سيُعمّى رقم البطاقة. لن يُحفظ رمز الأمان.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">اختر العنوان</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">وسِّع العناوين المقترحة</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">اطوِ العناوين المقترحة</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">أدر العناوين</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">صورة الحساب</string> + <!-- Title of the Identity Credential provider dialog choose. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">اختر مزود ولوج</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">استخدم %1$s كمزود ولوج</string> + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ast/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ast/strings.xml new file mode 100644 index 0000000000..812ae26724 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ast/strings.xml @@ -0,0 +1,128 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">D\'acuerdu</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Encaboxar</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Evitar qu\'esta páxina cree diálogos adicionales</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Afitar</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Borrar</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Aniciu de sesión</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nome d\'usuariu</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Contraseña</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Nun guardar</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Nun guardar enxamás</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Agora non</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Guardar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Nun anovar</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Anovar</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">El campu «Contraseña» nun ha tar baleru</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Nun ye posible guardar la cuenta</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">¿Quies guardar esta cuenta?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">¿Quies anovar esta cuenta?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">¿Quies amestar el nome d\'usuariu a la contraseña guardada?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etiqueta pa introducir un campu d\'entrada de testu</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Escoyeta d\'un color</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permitir</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Negar</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">¿De xuru?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">¿Quies colar d\'esti sitiu? Ye posible que nun se guarden los datos introducíos</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Quedar</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Colar</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Escoyeta d\'un mes</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Xin</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Abr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">May</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Xun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Xnt</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Ago</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Set</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Och</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Pay</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Avi</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Xestión de cuentes</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Espander les cuentes suxeríes</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Recoyer les cuentes suxeríes</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Cuentes suxeríes</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">¿Quies volver unviar los datos a esti sitiu?</string> + <string name="mozac_feature_prompt_repost_message">Anovar esta páxina podría duplicar les aiciones de recién, como unviar un pagu o espublizar dos vegaes un artículu.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Volver unviar</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Encaboxar</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Seleiciona una tarxeta de creitu</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Espander les tarxetes de creitu</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Recoyer les tarxetes de creitu</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Xestión de tarxetes de creitu</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">¿Quies guardar esta tarxeta?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">¿Quies anovar la data de caducidá de la tarxeta?</string> + + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Cífrase\'l númberu de la tarxeta, mas nun se guarda\'l códigu de seguranza.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Seleición d\'unes señes</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Espander les señes suxeríes</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Recoyer les señes suxeríes</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Xestionar les señes</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-az/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-az/strings.xml new file mode 100644 index 0000000000..b292f9a227 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-az/strings.xml @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Tamam</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Ləğv et</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Bu səhifənin əlavə dialoqlar yaratmasını əngəllə</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Qur</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Təmizlə</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Daxil ol</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">İstifadəçi adı</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Parol</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Saxlama</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Heç vaxt saxlama</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Saxla</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Yeniləmə</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Yenilə</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Parol sahəsi boş olmamalıdır</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Daxil olmanı yadda saxlamaq mümkün olmadı</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Hesab yadda saxlansın?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Hesab yenilənsin?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Saxlanılmış parola istifadəçi adı əlavə edilsin?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Mətn girişi sahəsi üçün etiket</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Rəng seç</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">İcazə ver</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Rədd et</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Əminsiniz?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Saytı tərk etmək istəyirsiniz? Daxil etdiyiniz məlumatlar saxlanmamış ola bilərlər</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Qal</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Tərk et</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Ay seç</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Yan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Fev</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">May</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">İyn</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">İyl</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Avq</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sen</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Noy</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dek</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Hesabları idarə et</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Məsləhət görülən hesabları genişlət</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Məsləhət görülən hesabları daralt</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Məsləhət görülən hesablar</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Məlumat bu sayta təkrar göndərilsin?</string> + <string name="mozac_feature_prompt_repost_message">Bu səhifəni yeniləmə ödəniş və ya şərh yazma kimi son əməliyyatları təkrarlaya bilər.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Təkrar göndər</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Ləğv et</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-azb/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-azb/strings.xml new file mode 100644 index 0000000000..c76429897f --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-azb/strings.xml @@ -0,0 +1,192 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">تامام</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">لغو</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">بو صفحهنین ایضافی دیالوقلار یاراتماسینین قارشیسینی آلین</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">تنظیم ائله</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">پوز</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">گیریش</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">قوللانیجی آدی</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">رمز</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">ساخلاما</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">ایندی یوخ</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">هئچ زامان ساخلاما</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">ایندی یوخ</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">ساخلا</string> + + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">گونجل ائلهمه</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">ایندی یوخ</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">گونجلله</string> + + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">رمز یئرلیکی بوش اولمالیدیر</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">بیر رمز وئر</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">گیریشی ساخلاماق مومکون اولمادی</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">رمزی یاددا ساخلاماق مومکون دئییل</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">بو گیریش یاددا ساخلانسین؟</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">رمز یاددا ساخلانسین؟</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">بو گیریش گونجللنسین؟</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">رمز گونجللنسین؟</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">قوللانیجی آدی یاددا ساخلانمیش رمزه اکلنسین؟</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">متن گیریش یئرلیکینه گیرمک اتیکتی</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">بیر رنگ سئچ</string> + + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">ایجازه وئر</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">رد </string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">سیز آرخایینسیز؟</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">بو سایتدان آییرلماق ایستییرسیز؟ گیردیگینیز دیتالار یاددا ساخلانیلمایا بیلر.</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">قال</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">آیریل</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">بیر آی سئج</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">ژانویه</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">فوریه</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">مارس</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">آپریل</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">می</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">جون</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">جولای</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">آقوست</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">سپتامبر</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">اوکتوبر</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">نووامبر</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">دسامبر</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">چاغ تنظیمی</string> + + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">اوتوروملاری ایداره ائله</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">رمزلری ایداره ائله</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">توصیه اولونان گیریشلری گئنیشلت</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">ساخلانمیش رمزلری گئنیشلت</string> + + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">توصیه اولونان گیریشلری یئغ</string> + + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">ساخلانمیش رمزلری یئغ</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">توصیه اولونان گیریشلر</string> + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">ساخلانمیش رمزلر</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">گوجلو رمز تکلیف ائدین</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">گوجلو رمز تکلیف ائدین</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">گوجلو رمز ایستیفاده ائدین: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">دیتا بو سایتا یئنیدن گؤندریلسین؟</string> + + <string name="mozac_feature_prompt_repost_message">بو صفحهنین رفرشی اؤدهمه گؤندرمک ویا بیر باخیشی ایکی دفعه یایینلاماق کیمی سون حرکتلرین تیکرار اولماسینا باعیث اولار.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">دیتانی گئنه گؤندر</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">لغو</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">اعتباری کارتینی سئچین</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">ساخلانمیش کارتدان ایستیفاده ائدین</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">تکلیف اولونان اعتباری کارتلاری گئنیشلت</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">ساخلانمیش کارتلاری گئنیشلت</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">تکلیف اولونان اعتباری کارتلاری یئغ</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">ساخلانمیش کارتلاری یئغ</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">اعتباری کارتلاری ایداره ائله</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">کارتلاری ایداره ائله</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">بو کارت گوونلی شکیلده یاددا ساخلانسین؟</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">کارتین ایستیفاده موددیتی یئنیلنسین؟</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">کارت نومرهسی رمزلشدیریلهجک. گوونلیک کودو یاددا ساخلانمیاجاق.</string> + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s کارت نومرهزی رمزلهییر. گوونلیک کودو یاددا ساخلانمیاجاق</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">آدرس سئچین</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">تکلیف اولونان آدرسلری گئنیشلت</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">ساخلانمیش آدرسلری گئنیشلت</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">تکلیف اولونان آدرسلری یئغ</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">ساخلانمیش آدرسلری یئغ</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">آدرسلری ایداره ائله</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">حساب عکسی</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">حساب ایرائه وئرهنی سئچین</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">%1$s حسابی ایله گیرین</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">%1$s اوتورم آچما ایرائه وئرهنی کیمی ایشه آلین</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[%2$s حسابی ایله %1$s حسابینا داخیل اولماق اونلارین <a href="%3$s">گیزلیلیک سیاستینه</a> و <a href="%4$s">خیدمت شرطلرینه باخیر. </a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">ایدامه وئر</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">لغو</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ban/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ban/strings.xml new file mode 100644 index 0000000000..cc094372e7 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ban/strings.xml @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">CUMPU</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Sét</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Puyung</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Ten karaksa</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ten mangkin</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Raksa</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Anyarin</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Pilih warna</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Péb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Méi</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Agu</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sép</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dés</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-be/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-be/strings.xml new file mode 100644 index 0000000000..26e60b96c3 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-be/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Добра</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Адмяніць</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Забараніць гэтай старонцы ствараць дадатковыя дыялогі</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Устанавіць</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Ачысціць</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Увайсці</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Імя карыстальніка</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Пароль</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save" moz:removedIn="125" tools:ignore="UnusedResources">Не захоўваць</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2">Не зараз</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Ніколі не захоўваць</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Не зараз</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Захаваць</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update" moz:removedIn="125" tools:ignore="UnusedResources">Не абнаўляць</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2">Не зараз</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Абнавіць</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password" moz:removedIn="125" tools:ignore="UnusedResources">Поле пароля не павінна быць пустым</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2">Увядзіце пароль</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause" moz:removedIn="125" tools:ignore="UnusedResources">Немагчыма захаваць лагін</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2">Немагчыма захаваць пароль</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline" moz:removedIn="125" tools:ignore="UnusedResources">Захаваць гэты лагін?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2">Захаваць пароль?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline" moz:removedIn="125" tools:ignore="UnusedResources">Абнавіць гэты лагін?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2">Абнавіць пароль?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Дадаць імя карыстальніка да захаванага пароля?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Метка для тэкставага поля ўводу</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Выберыце колер</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Дазволіць</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Забараніць</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Вы ўпэўнены?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Ці хочаце пакінуць гэты сайт? Дадзеныя, якія вы ўвялі, могуць не захавацца</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Застацца</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Выйсці</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Выбраць месяц</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Сту</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Лют</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Сак</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Кра</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Май</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Чэр</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Ліп</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Жні</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Вер</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Кас</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Ліс</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Сне</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Усталяваць час</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins" moz:removedIn="125" tools:ignore="UnusedResources">Кіраваць лагінамі</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2">Кіраваць паролямі</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Разгарнуць прапанаваныя лагіны</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2">Разгарнуць захаваныя паролі</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Згарнуць прапанаваныя лагіны</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2">Згарнуць захаваныя паролі</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins" moz:removedIn="125" tools:ignore="UnusedResources">Прапанаваныя лагіны</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2">Захаваныя паролі</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Прапанаваць надзейны пароль</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Прапанаваць надзейны пароль</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Выкарыстаць надзейны пароль: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Адправіць дадзеныя на гэты сайт паўторна?</string> + <string name="mozac_feature_prompt_repost_message">Абнаўленне гэтай старонкі можа паўтарыць апошнія дзеянні, напрыклад, адправіць плацеж або размясціць каментарый двойчы.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Паўторна адправіць дадзеныя</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Адмяніць</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card" moz:removedIn="125" tools:ignore="UnusedResources">Выберыце крэдытную карту</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2">Выкарыстаць захаваную карту</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Разгарнуць прапанаваныя крэдытныя карты</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2">Разгарнуць захаваныя карты</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Згарнуць прапанаваныя крэдытныя карты</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2">Згарнуць захаваныя карты</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards" moz:removedIn="125" tools:ignore="UnusedResources">Кіраванне крэдытнымі картамі</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2">Кіраваць картамі</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Захаваць надзейна гэту карту?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Абнавіць тэрмін дзеяння карты?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body" moz:removedIn="125" tools:ignore="UnusedResources">Нумар карты будзе зашыфраваны. Код бяспекі не будзе захаваны.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2">%s шыфруе нумар вашай карты. Ваш код бяспекі не будзе захаваны.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Выбраць адрас</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Разгарнуць прапанаваныя адрасы</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2">Разгарнуць захаваныя адрасы</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Згарнуць прапанаваныя адрасы</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2">Згарнуць захаваныя адрасы</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Кіраваць адрасамі</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Відарыс уліковага запісу</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Выберыце правайдара ўваходу</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Увайсці з уліковым запісам %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Выкарыстоўваць %1$s у якасці правайдара ўваходу</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Уваход у %1$s з уліковым запісам %2$s рэгулюецца іх <a href="%3$s">палітыкай прыватнасці</a> і <a href="%4$s">умовамі выкарыстання</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Працягнуць</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Скасаваць</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-bg/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-bg/strings.xml new file mode 100644 index 0000000000..60cb450032 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-bg/strings.xml @@ -0,0 +1,188 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Добре</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Отказ</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Забраняване на страницата да създава нови диалогови прозорци</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Задаване</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Изчистване</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Вписване</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Потребителско име</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Парола</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save" moz:removedIn="125" tools:ignore="UnusedResources">Без запазване</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2">Не сега</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Без запазване</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Не сега</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Запазване</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update" moz:removedIn="125" tools:ignore="UnusedResources">Без обновяване</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2">Не сега</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Обновяване</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password" moz:removedIn="125" tools:ignore="UnusedResources">Полето за парола не трябва да е празно</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2">Въведете парола</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause" moz:removedIn="125" tools:ignore="UnusedResources">Данните за вход не могат да бъдат запазени</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2">Паролата не може да бъде запазена</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline" moz:removedIn="125" tools:ignore="UnusedResources">Запазване на регистрацията?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2">Запазване на паролата?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline" moz:removedIn="125" tools:ignore="UnusedResources">Обновяване на регистрацията?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2">Актуализиране на паролата?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Добавяне на потребител към запазената парола?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Етикет към поле изискващо въвеждане</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Избиране на цвят</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Разрешаване</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Забраняване</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Сигурни ли сте?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Желаете ли да напуснете страницата? Въведените данни може да не са запазени</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Оставане</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Напускане</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Избор на месец</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">ян</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">февр</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">март</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">апр</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">май</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">юни</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">юли</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">авг</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">септ</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">окт</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">ноем</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">дек</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Задаване на време</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins" moz:removedIn="125" tools:ignore="UnusedResources">Управление на регистрации</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2">Управление на пароли</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Разгъване на предложени регистрации</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2">Разгъване на запазените пароли</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Сгъване на предложени регистрации</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2">Сгъване на запазените пароли</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins" moz:removedIn="125" tools:ignore="UnusedResources">Предложени регистрации</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2">Запазени пароли</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Предлагане на силна парола</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Предлагане на силна парола</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Използвайте силна парола: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Повторно изпращане на данни до страницата?</string> + <string name="mozac_feature_prompt_repost_message">Презареждането на страницата може да дублира скорошни действия, като заплащане или публикуване на коментар два пъти.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Повторно изпращане на данни</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Отказ</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card" moz:removedIn="125" tools:ignore="UnusedResources">Изберете банкова карта</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2">Използване на запазена карта</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Разгъва предложения списък с банкови карти</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2">Разгъване на запазените карти</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Сгъва предложения списък с банкови карти</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2">Сгъване на запазените карти</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards" moz:removedIn="125" tools:ignore="UnusedResources">Управление на банкови карти</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2">Управление на карти</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Защитено запазване на картата?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Обновяване на валидността на картата?</string> + + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body" moz:removedIn="125" tools:ignore="UnusedResources">Номерът на карата ще бъде шифрован. Кодът за сигурност няма да бъде запазен.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2">%s шифрова номера на картата ви. Кодът ви за сигурност няма да бъде запазен.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Изберете адрес</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Разгъване на предложени адреси</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2">Разгъване на запазените адреси</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Свиване на предложени адреси</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2">Сгъване на запазените адреси</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Управление на адреси</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Профилна снимка</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Изберете доставчик на вход</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Вход в профила на %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Използвайте %1$s като доставчик на вход</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Входът в профила на %1$s с/ъс %2$s е предмет на тяхната <a href="%3$s">Политика за личните данни</a> и техните <a href="%4$s">Общи условия</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Продължаване</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Отказ</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-bn/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-bn/strings.xml new file mode 100644 index 0000000000..16a8f63c2b --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-bn/strings.xml @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ঠিক আছে</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">বাতিল</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">অতিরিক্ত ডায়ালগ তৈরি করা থেকে এই পাতাটিকে বিরত রাখুন</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">নির্ধারণ</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">পরিষ্কার</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">সাইন ইন</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">ব্যবহারকারীর নাম</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">পাসওয়ার্ড</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">সংরক্ষণ করবেন না</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">কখনও সংরক্ষণ করবেন না</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">সংরক্ষণ</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">হালনাগাদ করবেন না</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">আপডেট</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">পাসওয়ার্ডের জায়গাটি খালি রাখা যাবে না</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">লগইন সংরক্ষণ করা যায়নি</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">এই লগইন সংরক্ষণ করবেন?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">এই লগইন হালনাগাদ করবেন?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">সংরক্ষিত পাসওয়ার্ডে ব্যবহারকারীর নাম যুক্ত করবেন?</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">একটি রঙ নির্বাচন করুন</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">অনুমতি দিন</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">প্রত্যাখান করুন</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">আপনি কি নিশ্চিত?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">আপনি কি এই সাইটটি ছেড়ে যেতে চান? আপনার প্রবেশ করা ডাটা সংরক্ষণ নাও হতে পারে</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">থাকুন</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">ত্যাগ করুন</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">একটি মাস বাছাই করুন</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">May</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Aug</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Oct</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dec</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">লগইন ব্যবস্থাপনা করুন</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">প্রস্তাবিত লগইনগুলি সম্প্রসারিত করুন</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">প্রস্তাবিত লগইনগুলি সংকুচিত করুন</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">প্রস্তাবিত লগইনগুলি</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">সাইটে আবার তথ্য পাঠাবে?</string> + <string name="mozac_feature_prompt_repost_message">এই পৃষ্ঠাটি রিফ্রেশ করলে সাম্প্রতিক কাজ আবার হতে পারে যেমন কোনও অর্থ প্রদান বা দুইবার মন্তব্য পোস্ট করা।</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">তথ্য আবার পাঠাও</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">বাতিল</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-br/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-br/strings.xml new file mode 100644 index 0000000000..ee06036029 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-br/strings.xml @@ -0,0 +1,176 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Mat eo</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Nullañ</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Mirout ar bajennad-mañ ouzh krouiñ boestadoù emziviz ouzhpenn</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Arventennañ</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Skarzhañ</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Kennaskañ</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Anv arveriad</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Ger-tremen</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Na enrollañ</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Diwezhatoc’h</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Na enrollañ biken</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ket bremañ</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Enrollañ</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Na hizivaat</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Diwezhatoc’h</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Hizivaat</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Ar vaezienn ger-tremen a rank bezañ leuniet</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Enankit ur ger-tremen</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Ne cʼhaller ket enrollañ an titour kennaskañ</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">N’haller ket enrollañ ar ger-tremen</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Enrollañ an titour kennaskañ-mañ?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Enrollañ ar ger-tremen?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Hizivaat an titour kennaskañ-mañ?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Hizivaat ar ger-tremen?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Ouzhpennañ an anv arveriad dʼar gerioù-tremen enrollet?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Tikedenn evit ur vaezienn destenn.</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Dibab ul liv</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Aotren</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Nacʼhañ</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Sur ocʼh?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Fellout a ra deocʼh kuitaat al lecʼhienn-mañ? Ne vo ket enrollet ar roadennoù bet enanket ganeocʼh</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Chom</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Kuitaat</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Dibab ur miz</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Gen</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Cʼhw</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Meu</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Ebr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mae</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Mez</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Gou</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Eos</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Gwe</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Her</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Du</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Ker</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Dibab an eur</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Ardoer titouroù kennaskañ</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Merañ ar gerioù-tremen</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Brasaat an titouroù kennaskañ aliet</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Dispakañ ar gerioù-tremen enrollet</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Berraat an titouroù kennaskañ aliet</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Kuzhat ar gerioù-tremen enrollet</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Titouroù kennaskañ aliet</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Gerioù-tremen enrollet</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Kas roadennoù en-dro d’al lec’hienn?</string> + <string name="mozac_feature_prompt_repost_message">Azbevaat ar bajenn a c’hallfe eilañ ar gweredoù nevez, evel kas ur paeamant pe embann un evezhiadenn div wech.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Adkas roadennoù</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Nullañ</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Diuzañ ur gartenn gred</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Astenn ar cʼhartennoù kred kinniget</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Dispakañ ar c’hartennoù enrollet</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Bihanaat ar cʼhartennoù kred kinniget</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Kuzhat ar c’hartennoù enrollet</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Merañ ar cʼhartennoù kred</string> + + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Merañ ar c’hartennoù</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Enrollañ ar gartenn-mañ en surentez?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Hizivaat deiziad termen ar gartenn?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Enrigenet e vo niverenn ar gartenn. Ne vo ket enrollet ar c’hod surentez.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Dibab ur chomlec’h</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Displegañ ar chomlec’hioù kinniget</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Dispakañ ar chomlec’hioù enrollet</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Plegañ ar chomlec’hioù kinniget</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Kuzhat ar chomlec’hioù enrollet</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Merañ ar chomlec’hioù</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Skeudenn ar gont</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Dibab ur pourchaser dilesa</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Kennaskañ gant ur gont %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Ober gant %1$s evel pourchaser dilesa</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Kennaskañ ouzh %1$s gant ur gont %2$s a zo reolennet gant o <a href="%3$s">Reolenn a-fet buhez prevez</a> ha <a href="%4$s">divizoù arver</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Kenderc’hel</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Nullañ</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-bs/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-bs/strings.xml new file mode 100644 index 0000000000..d43b77b4a0 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-bs/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Otkaži</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Spriječi ovu stranicu da kreira dodatne dijaloge</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Postavi</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Očisti</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Prijava</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Korisničko ime</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Lozinka</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Nemoj spasiti</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Ne sada</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Nikad ne spašavaj</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ne sada</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Spasi</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Nemoj ažurirati</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Ne sada</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Ažuriraj</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Polje za lozinku ne smije biti prazno</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Unesite lozinku</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Ne mogu spasiti prijavu</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Nije moguće sačuvati lozinku</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Spasi ovu prijavu?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Sačuvati lozinku?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Ažurirati ovu prijavu?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Ažurirati lozinku?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Dodaj korisničko ime uz sačuvanu lozinku?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Oznaka za unos u tekstualno polje</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Izaberite boju</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Dozvoli</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Odbij</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Da li ste sigurni?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Želite li napustiti ovu stranicu? Podaci koje ste unijeli možda neće biti sačuvani</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Ostani</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Napusti</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Izaberite mjesec</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Maj</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Aug</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dec</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Postavi vrijeme</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Upravljanje prijavama</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Upravljajte lozinkama</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Proširi predložene prijave</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Proširi sačuvane lozinke</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Sažmi predložene prijave</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Sažmi sačuvane lozinke</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Predložene prijave</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Sačuvane lozinke</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Predloži jaku lozinku</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Predloži jaku lozinku</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Koristite jaku lozinku: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Ponovo poslati podatke na ovu stranicu?</string> + <string name="mozac_feature_prompt_repost_message">Osvježavanje ove stranice moglo bi ponoviti nedavne radnje, kao što su dvostruko plaćanje ili komentarisanje.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Ponovo pošalji podatke</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Otkaži</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Odaberite kreditnu karticu</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Koristi sačuvanu karticu</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Proširite predložene kreditne kartice</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Proširi sačuvane kartice</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Sažmi predložene kreditne kartice</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Sažmi sačuvane kartice</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Upravljaj kreditnim karticama</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Upravljajte karticama</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Sigurno sačuvati ovu karticu?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Ažuriraj datum isteka kartice?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Broj kartice će biti šifrovan. Sigurnosni kod neće biti sačuvan.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s šifruje broj vaše kartice. Vaš sigurnosni kod neće biti sačuvan.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Odaberi adresu</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Proširite predložene adrese</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Proširi sačuvane adrese</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Sažmi predložene adrese</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Sažmi sačuvane adrese</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Upravljaj adresama</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Slika računa</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Odaberi provajdera za prijavu</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Prijavite se sa %1$s računom</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Koristite %1$s kao provajdera za prijavu</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Prijava na %1$s sa %2$s računom podliježe njihovoj <a href="%3$s">Politici privatnosti</a> i <a href="%4$s">Uslovima korištenja usluge </a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Nastavi</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Otkaži</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ca/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ca/strings.xml new file mode 100644 index 0000000000..63d52c09b9 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ca/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">D’acord</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Cancel·la</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Evita que aquesta pàgina creï més diàlegs</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Defineix</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Esborra</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Inicia la sessió</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nom d’usuari</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Contrasenya</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">No desis</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Ara no</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">No desis mai</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ara no</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Desa</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">No actualitzis</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Ara no</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Actualitza</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">El camp de la contrasenya no pot estar buit</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Escriviu una contrasenya</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">No es pot desar l’inici de sessió</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">No s\'ha pogut desar la contrasenya</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Voleu desar aquest inici de sessió?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Voleu desar la contrasenya?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Voleu actualitzar aquest inici de sessió?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Voleu actualitzar la contrasenya?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Voleu afegir el nom d’usuari a la contrasenya desada?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etiqueta per introduir un camp d’entrada de text</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Trieu un color</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permet</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Denega</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Segur?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Voleu sortir d’aquest lloc? És possible que no es desin les dades que hàgiu introduït</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">No surtis</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Surt</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Trieu un mes</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">gen.</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">febr.</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">març</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">abr.</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">maig</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">juny</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">jul.</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">ag.</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">set.</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">oct.</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">nov.</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">des.</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Defineix l’hora</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Gestiona els inicis de sessió</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Gestiona les contrasenyes</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Amplia els inicis de sessió suggerits</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Amplia les contrasenyes desades</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Redueix els inicis de sessió suggerits</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Redueix les contrasenyes desades</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Inicis de sessió suggerits</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Contrasenyes desades</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Suggereix una contrasenya segura</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Suggereix una contrasenya segura</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Useu una contrasenya segura: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Voleu tornar a enviar les dades a aquest lloc?</string> + <string name="mozac_feature_prompt_repost_message">Actualitzar aquesta pàgina pot provocar la repetició de les accions recents, com ara enviar un pagament o publicar un comentari dues vegades.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Torna a enviar les dades</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Cancel·la</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Seleccioneu una targeta de crèdit</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Usa una targeta desada</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Amplia les targetes de crèdit suggerides</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Amplia les targetes desades</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Redueix les targetes de crèdit suggerides</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Redueix les targetes desades</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Gestiona les targetes de crèdit</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Gestiona les targetes</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Voleu desar aquesta targeta de forma segura?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Voleu actualitzar la data de caducitat de la targeta?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">El número de targeta es xifrarà. El codi de seguretat no es desarà.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s xifra el número de la targeta. El codi de seguretat no es desarà.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Trieu l’adreça</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Amplia les adreces suggerides</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Amplia les adreces desades</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Redueix les adreces suggerides</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Redueix les adreces desades</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Gestiona les adreces</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Imatge del compte</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Trieu un proveïdor d\'inici de sessió</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Inicia la sessió amb un compte de %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Usa %1$s com a proveïdor d\'inici de sessió</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[L\'inici de sessió a %1$s amb un compte de %2$s està subjecte a la seva <a href="%3$s">Política de privadesa</a> i a les <a href="%4$s">Condicions del servei </a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Continua</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Cancel·la</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-cak/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-cak/strings.xml new file mode 100644 index 0000000000..aae206423e --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-cak/strings.xml @@ -0,0 +1,189 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ÜTZ</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Tiq\'at</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Man tiya\' q\'ij chi re ruxaq re\' yerunük\' kitz\'aqat taq tzijonem</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Tib\'an runuk\'ulem</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Tijosq\'ïx</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Titikirisäx molojri\'ïl</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Rub\'i\' winäq</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Ewan tzij</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save" moz:removedIn="125" tools:ignore="UnusedResources">Man tiyak</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2">Wakami mani</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Majub\'ey tiyak</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Wakami mani</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Tiyak</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update" moz:removedIn="125" tools:ignore="UnusedResources">Man tik\'ex ruwäch</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2">Wakami mani</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Tik\'ex</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password" moz:removedIn="125" tools:ignore="UnusedResources">Man tikirel ta kowöl ri ruk\'ojlem ewan tzij</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2">Titz\'ib\'äx jun ewan tzij</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause" moz:removedIn="125" tools:ignore="UnusedResources">Man xtikïr ta xyak rutikirib\'al molojri\'ïl</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2">Man tikirel ta niyak ri ewan tzij</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline" moz:removedIn="125" tools:ignore="UnusedResources">¿La niyak rutikirib\'al re moloj re\'?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2">¿La niyak ewan tzij?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline" moz:removedIn="125" tools:ignore="UnusedResources">¿La nik\'ex rutikirib\'al re moloj re\'?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2">¿La nik\'ex ri ewan tzij?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">¿La nitz\'aqatisäx rub\'i\' winäq pa ri ewan tzij yakon?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etal richin ninim jun ruk\'ojlem rokem tz\'ib\'anïk</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Ticha\' jun b\'onil</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Tiya\' q\'ij</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Tiq\'at</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">¿La kan at jikïl?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">¿La nawajo\' yatel chupam re ruxaq re\'? Rik\'in jub\'a\' man xkeyak ta ri taq tzij xawokisaj</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Tik\'oje\' na</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Tel</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Tacha\' jun ik\'</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Ju\'ik\'</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Ka\'ik\'</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Oxik\'</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Kajik\'</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Ro\' ik\'</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Waqik\'</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Wuqik\'</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Waqxaqik\'</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">B\'elejik\'</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Lajik\'</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Julajik\'</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Kab\'lajik\'</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Tib\'an ruk\'ojlem wakami</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins" moz:removedIn="125" tools:ignore="UnusedResources">Tinuk\'samajïx rutikirib\'al molojri\'ïl</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2">Kenuk\'samajïx ewan taq tzij</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Kerik\' ri chilab\'en tikirib\'äl taq molojri\'ïl</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2">Kerik\' kij ri yakon ewan taq tzij</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Kek\'ol ri chilab\'en tikirib\'äl taq molojri\'ïl</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2">Kek\'ol ri yakon ewan taq tzij</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins" moz:removedIn="125" tools:ignore="UnusedResources">Chilab\'en taq molojri\'ïl</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2">Xeyak ewan taq tzij</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Tichilab\'ëx ütz ewan tzij</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Tichilab\'ëx ütz ewan tzij</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Ke\'awokisaj ütz ewan taq tzij: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">¿La nitaq chik tzij chi re re ruxaq?</string> + <string name="mozac_feature_prompt_repost_message">Nisamajïx chik re ruxaq rik\'in jub\'a\' nukamuluj samaj k\'a jub\'a\' b\'anon, achi\'el nitaq jun tojïk o kamul nrelesaj rutzijol jun na\'oj.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Titaq chik tzij</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Tiq\'at</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card" moz:removedIn="125" tools:ignore="UnusedResources">Ticha\' rutarjeta\' kre\'ito\'</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2">Tokisäx yakon tarjeta\'</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Kerik\' ri chilab\'en rutarjeta\' kre\ito\'</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2">Kerik yakon taq tarjeta\'</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Kek\'ol ri chilab\'en rutarjeta\' kre\ito\'</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2">Kek\'ol yakon taq tarjeta\'</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards" moz:removedIn="125" tools:ignore="UnusedResources">Kenuk\'samajïx kikre\'ito\' taq tarjeta\'</string> + + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2">Kenuk\'samajïx taq tarjeta\'</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">¿Jikïl tayaka\' re tarjeta\' re\'?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">¿Tik\'ex ruq\'ijul nik\'is tarjeta\'?</string> + + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body" moz:removedIn="125" tools:ignore="UnusedResources">Ri rajilab\'al tarjeta\' ewan rusik\'ixik. Man xtiyake\' ta ri rub\'itz\'ib\' jikomal.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2">%s nrewaj rusik\'ixij ri rajilab\'al atarjeta\'. Ri jikon rub\'itz\'ib\' man xtiyake\' ta kan.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Ticha\' ochochib\'äl</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Kerik\' ri chilab\'en ochochib\'äl</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2">Kerik\' yakon taq ochochib\'äl</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Kek\'ol ri chilab\'en ochochib\'äl</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2">Kek\'ol yakon taq ochochib\'äl</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Kenuk\'samajïx taq ochochib\'äl</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Ruwachib\'al rub\'i\' taqoya\'l</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Ticha\' jun ruya\'oj rutikirib\'al moloj</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Titikirisäx moloj rik\'in jun rub\'i\' rutaqoya\'l %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Tokisäx %1$s achi\'el ya\'öl rutikirib\'al moloj</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Tatikirisaj moloj pa %1$s rik\'in jun rub\'i\' rutaq\'oya\'l %2$s ruximon ri\' rik\'in ri <a href="%3$s">Runa\'ojil ichinanem</a> chuqa\' <a href="%4$s">Rutzijol Samak</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Titikïr chik el</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Tiq\'at</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ceb/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ceb/strings.xml new file mode 100644 index 0000000000..86e88d54d6 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ceb/strings.xml @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Cancel</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Pug-ngi ni nga page magbuhat ug dugang mga dialog</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Set</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Clear</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Sign in</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Username</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Password</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Ayaw i-save</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Dili mag-save</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Save</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Ayaw i-update</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Update</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Ang Password field dapat naa\'y sulod</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Dili makasave sa login</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">i-Save ni nga login?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">i-Update ni nga login?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">i-Dugang ang na-save nga password?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Label sa pag-butang ug text input field</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Pili ug color</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Allow</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Deny</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Sigurado ka?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Buot mo bang mohawa ani nga site? Ang data nga imong gi-butang basin dili ma-save</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Stay</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Leave</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Pili ug bulan</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">May</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Aug</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Oct</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dec</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">i-Manage ang mga login</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">i-Expand ang nasugyot nga mga login</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">i-Collapse ang nasugyot nga mga login</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Nasugyot nga mga login</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">i-Padala usab ang mga data dinhi nga site?</string> + <string name="mozac_feature_prompt_repost_message">Pag-refresh ani nga page posibleng maka-kopya sa bag-o nga mga aksyon, sama sa pagpadala ug bayad o pag-post sa usa ka komento makaduha. </string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Resend data</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Cancel</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Pili ug credit card</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">i-Expand ang nasugyot nga mga credit card</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">i-Collapse ang nasugyot nga mga credit card</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings --> + <string name="mozac_feature_prompts_manage_credit_cards">i-Manage ang mga credit card</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ckb/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ckb/strings.xml new file mode 100644 index 0000000000..20a7b4aa1d --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ckb/strings.xml @@ -0,0 +1,93 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">باشە</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">پاشگەزبوونەوە</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">ڕێگە مەدە ئەم پەڕەیە داواکردنی زیاتر بکاتەوە</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">دیاریبکە</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">پاککردنەوە</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">بچۆژوورەوە</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">ناوی بەکارهێنەر</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">وشەی تێپەڕبوون</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">پاشەکەوتی مەکە</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">هەرگیز پاشەکەوت مەکە</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">پاشەکەوتکردن</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">نوێی مەکەرەوە</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">نوێکردنەوە</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">خانەی وشەی تێپەڕبوون نابێت بەتاڵ بێت</string> + + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">نەتوانرا چوونەژوورەوە پاشەکەوت بکرێت</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">ئەم چوونەژوورەوەیە پاشەکەوت دەکەیت؟</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">ئەم چوونەژوورەوە نوێدەکەیتەوە؟</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">زیادکردنی ناوی بەکارهێنەر بۆ وشەی تێپەڕی هەڵگیراو؟</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">ڕەنگێک هەڵبژێرە</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">ڕێگەبدە</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">ڕێگەمەدە</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">ئایا تۆ دڵنیایت؟</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">دەتەویت ئەم ماڵپەڕە بەجێبهێڵیت؟ ئەو زانیارییانەی نووسیوتن لێرە لەوانەیە هەڵنەگیرێن.</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">بمێنەرەوە</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">جێیبهێلە</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">مانگێک هەڵبژێرە</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">کانوونی دووەم</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">شوبات</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">ئازار</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">نیسان</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">ئایار</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">حوزەیران</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">تەمموز</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">ئاب</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">ئەیلوول</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">تشرینی یەکەم</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">تشرینی دووەم</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">کانوونی یەکەم</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">بەڕێوەبردنی چوونەژوورەوەکان</string> + + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">چوونەژوورەوە پێشنیارکراوەکان</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">زانیاری دەنێریتەوە بۆ ئەم ماڵپەڕە؟</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">ناردنەوەی زانیاری</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">پاشگەزبوونەوە</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-co/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-co/strings.xml new file mode 100644 index 0000000000..7afbd91b65 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-co/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Vai</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Abbandunà</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Impedisce sta pagina d’apre dialoghi addiziunali</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Definisce</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Squassà</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Cunnettesi</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nome d’utilizatore</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Parolla d’intesa</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Ùn arregistrà micca</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Micca subitu</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Ùn arregistrà mai</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Micca subitu</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Arregistrà</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Ùn micca rinnovà</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Micca subitu</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Piglià in contu</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">U campu di a parolla d’intesa ùn deve micca esse viotu</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Stampittate una parolla d’intesa</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Impussibule d’arregistrà l’identificazione di cunnessione</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Ùn si pò micca arregistrà a parolla d’intesa</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Arregistrà st’identificazioni di cunnessione</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Arregistrà a parolla d’intesa ?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Mudificà st’identificazione di cunnessione ?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Mudificà a parolla d’intesa ?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Aghjunghje un nome d’utilizatore à a parolla d’intesa arregistrata ?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Discrizzione per a creazione d’un campu di scrittura di testu</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Sceglie un culore</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permette</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Ricusà</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Cunfirmazione</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Vulete abbandunà stu situ ? Certi dati chì vo avete stampittati puderianu esse persi</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Stà</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Abbandunà</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Sceglie un mese</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">ghje.</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">ferr.</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">marzu</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">apri.</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">magh.</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">ghju.</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">lugl.</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">aostu</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">sitt.</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">utto.</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">nuve.</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">dice.</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Sceglie l’ora</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Urganizà l’identificazioni di cunnessione</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Amministrà e parolle d’intesa</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Spiegà l’identificazioni di cunnessione suggerite</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Spiegà e parolle d’intesa arregistrate</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Ripiegà l’identificazioni di cunnessione suggerite</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Ripiegà e parolle d’intesa arregistrate</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Identificazioni di cunnessione suggerite</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Parolle d’intesa arregistrate</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Suggerisce una parolla d’intesa forte</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Suggerisce una parolla d’intesa forte</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Impiegà a parolla d’intesa forte : %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Rimandà i dati à stu situ ?</string> + <string name="mozac_feature_prompt_repost_message">L’attualizazione di sta pagina puderia ripete azzioni recente, cum’è l’aviu d’un pagamentu o a publicazione d’un cummentu in doppiu.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Rimandà i dati</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Abbandunà</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Selezziunà una carta bancaria</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Impiegà una carta arregistrata</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Spiegà e carte bancarie suggerite</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Spiegà e carte arregistrate</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Ripiegà e carte bancarie suggerite</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Ripiegà e carte arregistrate</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Urganizà e carte bancarie</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Amministrà e carte</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Arregistrà sta carta di manera sicura ?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Mudificà a data di scadenza di a carta ?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">U numeru di a carta serà cifratu. U codice di sicurità ùn serà micca arregistratu.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s cifra u vostru numeru di carta. U vostru codice di sicurità ùn serà micca arregistratu.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Selezziunà un indirizzu</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Spiegà l’indirizzi suggeriti</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Spiegà l’indirizzi arregistrati</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Ripiegà l’indirizzi suggeriti</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Ripiegà l’indirizzi arregistrati</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Urganizà l’indirizzi</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Fiura per u contu</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Sceglie un furnidore d’accessu</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Cunnittitevi cù un contu %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Impiegà %1$s cum’è furnidore di cunnessione</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Cunnettesi à %1$s cù un contu %2$s hè sottumessu à a so <a href="%3$s">pulitica di cunfidenzialità</a> è à e so <a href="%4$s">cundizioni d’utilizazione</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Cuntinuà</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Abbandunà</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-cs/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-cs/strings.xml new file mode 100644 index 0000000000..2a2beceeb8 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-cs/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Zrušit</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Zabránit stránce ve vytváření dalších dialogů</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Nastavit</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Vymazat</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Přihlášení</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Uživatelské jméno</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Heslo</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save" moz:removedIn="125" tools:ignore="UnusedResources">Neukládat</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2">Teď ne</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Nikdy neukládat</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Teď ne</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Uložit</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update" moz:removedIn="125" tools:ignore="UnusedResources">Neaktualizovat</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2">Teď ne</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Aktualizovat</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password" moz:removedIn="125" tools:ignore="UnusedResources">Heslo nesmí být prázdné</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2">Zadejte heslo</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause" moz:removedIn="125" tools:ignore="UnusedResources">Přihlašovací údaje nelze uložit</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2">Heslo není možné uložit</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline" moz:removedIn="125" tools:ignore="UnusedResources">Uložit tyto přihlašovací údaje?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2">Uložit heslo?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline" moz:removedIn="125" tools:ignore="UnusedResources">Aktualizovat tyto přihlašovací údaje?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2">Aktualizovat heslo?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Přidat k uloženému heslu uživatelské jméno?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Štítek vstupního pole pro zadání textu</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Vyberte barvu</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Povolit</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Zakázat</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Opravdu?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Opravdu chcete tuto stránku opustit? Zadané údaje se nemusí uložit</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Zůstat</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Opustit</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Vyberte měsíc</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Led</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Úno</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Bře</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Dub</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Kvě</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Čvn</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Čvc</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Srp</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Zář</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Říj</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Lis</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Pro</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Nastavit čas</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins" moz:removedIn="125" tools:ignore="UnusedResources">Správa přihlašovacích údajů</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2">Správa přihlašovacích údajů</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Zobrazit navrhované přihlašovací údaje</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2">Rozbalit uložená hesla</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Skýt navrhované přihlašovací údaje</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2">Sbalit uložená hesla</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins" moz:removedIn="125" tools:ignore="UnusedResources">Navrhované přihlašovací údaje</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2">Uložená hesla</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Navrhnout silné heslo</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Navrhnout silné heslo</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Použít silné heslo: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Chcete znovu odeslat data tomuto serveru?</string> + <string name="mozac_feature_prompt_repost_message">Opětovné načtení této stránky může zopakovat vaši nedávnou akci, například druhé odeslání stejné platby nebo komentáře.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Odeslat</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Zrušit</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card" moz:removedIn="125" tools:ignore="UnusedResources">Vyberte platební kartu</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2">Použít uloženou kartu</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Zobrazit návrhy platebních karet</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2">Rozbalit uložené karty</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Skrýt návrhy platebních karet</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2">Sbalit uložené karty</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards" moz:removedIn="125" tools:ignore="UnusedResources">Správa platebních karet</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2">Spravovat karty</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Bezpečně uložit tuto kartu?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Aktualizovat platnost karty?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body" moz:removedIn="125" tools:ignore="UnusedResources">Číslo karty bude uložené šifrované. Bezpečnostní kód uložen nebude.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2">%s zašifruje číslo vaší karty. Váš bezpečnostní kód nebude uložen.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Vyberte adresu</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Zobrazit navrhované adresy</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2">Rozbalit uložené adresy</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Skrýt navrhované adresy</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2">Sbalit uložené adresy</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Správa adres</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Obrázek účtu</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Výběr poskytovatele přihlášení</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Přihlášení pomocí účtu %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Použití %1$s jako poskytovatele přihlášení</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Přihlášení k %1$s pomocí účtu %2$s podléhá jejich <a href="%3$s">zásadám ochrany osobních údajů</a> a <a href="%4$s">podmínkám poskytování služby</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Pokračovat</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Zrušit</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-cy/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-cy/strings.xml new file mode 100644 index 0000000000..d6e70ad31a --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-cy/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Iawn</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Diddymu</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Atal y dudalen hon rhag creu deialogau ychwanegol</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Gosod</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Clirio</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Mewngofnodi</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Enw Defnyddiwr</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Cyfrinair</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Peidio â chadw</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Nid nawr</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Byth cadw</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Nid nawr</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Cadw</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Peidio â diweddaru</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Nid nawr</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Diweddaru</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Rhaid i faes cyfrinair beidio â bod yn wag</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Rhowch gyfrinair</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Methu cadw mewngofnod</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Methu cadw cyfrinair</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Cadw’r mewngofnod hwn?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Cadw cyfrinair?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Diweddaru’r mewngofnod hwn?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Diweddaru cyfrinair?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Ychwanegu enw defnyddiwr i gyfrinair wedi’i gadw?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Label ar gyfer mynd i faes mewnbwn testun</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Dewis lliw</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Caniatáu</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Gwrthod</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Ydych chi’n siŵr?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Ydych chi eisiau gadael y wefan hon? Efallai na fydd data rydych chi wedi’i roi’n cael ei gadw</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Aros</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Gadael</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Dewis mis</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Ion</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Chw</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Maw</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Ebr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mai</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Meh</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Gor</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Awst</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Med</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Hyd</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Tach</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Rhag</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Gosod yr amser</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Rheoli mewngofnodion</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Rheoli cyfrineiriau</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Ehangu’r mewngofnodion</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Ehangu cyfrineiriau sydd wedi\'u cadw</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Lleihau’r mewngofnodion</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Cau cyfrineiriau sydd wedi\'u cadw</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Mewngofnodion</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Cyfrineiriau wedi\'u cadw</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Awgrym o gyfrinair cryf</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Awgrym o gyfrinair cryf</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Defnyddiwch gyfrinair cryf: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Ail-anfon data i’r wefan hon?</string> + <string name="mozac_feature_prompt_repost_message">Gall adnewyddu’r dudalen hon ddyblygu gweithredoedd diweddar, fel anfon taliad neu gofnodi sylw ddwywaith.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Ail-anfon data</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Diddymu</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Dewiswch gerdyn credyd</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Defnyddio cerdyn sydd wedi\'i gadw</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Ehangu awgrymiad y cardiau credyd</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Ehangu cardiau sydd wedi\'u cadw</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Lleihau awgrymiad y cardiau credyd</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Cau cardiau sydd wedi\'u cadw</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Rheoli cardiau credyd</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Rheoli cardiau</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Cadw’r cerdyn hwn yn ddiogel?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Diweddaru dyddiad dod i ben cerdyn?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Bydd rhif y cerdyn yn cael ei amgryptio. Ni fydd y cod diogelwch yn cael ei gadw.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">Mae %s yn amgryptio rhif eich cerdyn. Ni fydd eich cod diogelwch yn cael ei gadw.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Dewiswch gyfeiriad</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Ehangu awgrymiadau cyfeiriadau</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Ehangu cyfeiriadau sydd wedi\'u cadw</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Lleihau awgrymiadau cyfeiriadau</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Cau cyfeiriadau sydd wedi\'u cadw</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Rheoli cyfeiriadau</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Llun cyfrif</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Dewiswch ddarparwr mewngofnodi</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Mewngofnodwch gyda chyfrif %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Defnyddiwch %1$s fel darparwr mewngofnodi</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Mae mewngofnodi i %1$s gyda chyfrif %2$s yn amodol ar eu <a href="%3$s">Polisi Preifatrwydd</a> a <a href="%4$s">Thelerau Gwasanaeth </a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Parhau</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Diddymu</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-da/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-da/strings.xml new file mode 100644 index 0000000000..df13afc653 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-da/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Annuller</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Fjern denne sides mulighed for at oprette flere dialogbokse</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Indstil</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Ryd</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Log ind</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Brugernavn</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Adgangskode</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Gem ikke</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Ikke nu</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Gem aldrig</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ikke nu</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Gem</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Opdater ikke</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Ikke nu</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Opdater</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Feltet Adgangskode må ikke være tomt</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Indtast en adgangskode</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Kunne ikke gemme login</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Kan ikke gemme adgangskode</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Gem dette login?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Gem adgangskode?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Opdater dette login?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Opdater adgangskode?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Føj brugernavn til gemt adgangskode?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etiket for indtastning af tekst i et input-felt</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Vælg en farve</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Tillad</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Afvis</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Er du sikker?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Vil du forlade dette websted? Data, du har indtastet, gemmes muligvis ikke</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Bliv</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Forlad</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Vælg en måned</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Maj</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Aug</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dec</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Vælg tidspunkt</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Håndter logins</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Håndter adgangskoder</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Udvid foreslåede logins</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Udvid gemte adgangskoder</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Sammenfold foreslåede logins</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Sammenfold gemte adgangskoder</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Foreslåede logins</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Gemte adgangskoder</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Foreslå stærk adgangskode</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Foreslå stærk adgangskode</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Brug stærk adgangskode: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Send data igen til dette websted?</string> + <string name="mozac_feature_prompt_repost_message">Genindlæsning af denne side kan gentage nylige handlinger, fx sådan at en betaling udføres igen eller en kommentar sendes to gange.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Send data igen</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Annuller</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Vælg betalingskort</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Brug gemt kort</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Udvid foreslåede betalingskort</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Udvid gemte kort</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Sammenfold foreslåede betalingskort</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Sammenfold gemte kort</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Håndter betalingskort</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Håndter kort</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Gem dette kort sikkert?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Opdater kortets udløbsdato?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Kortnummeret vil blive krypteret. Sikkerhedskoden vil ikke blive gemt.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s krypterer dit kortnummer. Din sikkerhedskode bliver ikke gemt.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Vælg adresse</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Udvid foreslåede adresser</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Udvid gemte adresser</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Sammenfold foreslåede adresser</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Sammenfold gemte adresser</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Håndter adresser</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Kontobillede</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Vælg en login-udbyder</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Log ind med en %1$s-konto</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Brug %1$s som login-udbyder</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Indlogning på %1$s med en %2$s-konto er underlagt deres <a href="%3$s">privatlivspolitik</a> og <a href="%4$s">tjenestevilkår</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Fortsæt</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Annuller</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-de/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-de/strings.xml new file mode 100644 index 0000000000..de995ecc07 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-de/strings.xml @@ -0,0 +1,199 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Abbrechen</string> + + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Diese Seite daran hindern, weitere Dialoge zu öffnen</string> + + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Übernehmen</string> + + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Leeren</string> + + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Anmelden</string> + + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Benutzername</string> + + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Passwort</string> + + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Nicht speichern</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Nicht jetzt</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Nie speichern</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Nicht jetzt</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Speichern</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Nicht aktualisieren</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Nicht jetzt</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Aktualisieren</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Das Passwortfeld darf nicht leer bleiben</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Passwort eingeben</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Zugangsdaten konnten nicht gespeichert werden</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Passwort kann nicht gespeichert werden</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Diese Zugangsdaten speichern?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Passwort speichern?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Diese Zugangsdaten aktualisieren?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Passwort aktualisieren?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Benutzernamen zum gespeicherten Passwort hinzufügen?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Beschriftung für ein Texteingabefeld</string> + + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Wählen Sie eine Farbe</string> + + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Erlauben</string> + + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Ablehnen</string> + + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Sind Sie sicher?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Möchten Sie diese Seite verlassen? Von Ihnen eingegebene Daten werden möglicherweise nicht gespeichert</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Bleiben</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Verlassen</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Monat auswählen</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mär</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mai</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Aug</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dez</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Zeit einstellen</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Zugangsdaten verwalten</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Passwörter verwalten</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Vorgeschlagene Zugangsdaten ausklappen</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Gespeicherte Passwörter ausklappen</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Vorgeschlagene Zugangsdaten einklappen</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Gespeicherte Passwörter einklappen</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Vorgeschlagene Zugangsdaten</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Gespeicherte Passwörter</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Starkes Passwort vorschlagen</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Starkes Passwort vorschlagen</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Verwenden Sie ein starkes Passwort: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Daten erneut an diese Website senden?</string> + <string name="mozac_feature_prompt_repost_message">Durch das Aktualisieren dieser Seite können die letzten Aktionen doppelt ausgeführt werden, z.&thinsp;B. das Senden einer Zahlung oder das zweimalige Posten eines Kommentars.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Erneut senden</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Abbrechen</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Kreditkarte auswählen</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Eine gespeicherte Karte verwenden</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Vorgeschlagene Kreditkarten ausklappen</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Gespeicherte Karten ausklappen</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Vorgeschlagene Kreditkarten einklappen</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Gespeicherte Karten einklappen</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Kreditkarten verwalten</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Karten verwalten</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Soll diese Karte sicher gespeichert werden?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Ablaufdatum der Karte aktualisieren?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Die Kartennummer wird verschlüsselt. Der Sicherheitscode wird nicht gespeichert.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s verschlüsselt Ihre Kartennummer. Ihr Sicherheitscode wird nicht gespeichert.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Adresse auswählen</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Vorgeschlagene Adressen ausklappen</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Gespeicherte Adressen ausklappen</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Vorgeschlagene Adressen einklappen</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Gespeicherte Adressen einklappen</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Adressen verwalten</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Kontobild</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Wählen Sie einen Login-Anbieter</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Melden Sie sich mit einem %1$s-Konto an</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">%1$s als Login-Anbieter verwenden</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Die Anmeldung bei %1$s mit einem %2$s-Konto unterliegt deren <a href="%3$s">Datenschutzerklärung</a> und <a href="%4$s">Nutzungsbedingungen </a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Weiter</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Abbrechen</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-dsb/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-dsb/strings.xml new file mode 100644 index 0000000000..36188bb0bc --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-dsb/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">W pórěźe</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Pśetergnuś</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Toś tomu bokoju napóranje pśidatnych dialogow zawoboraś</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Nastajiś</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Wuprozniś</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Pśizjawiś</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Wužywarske mě</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Gronidło</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Njeskładowaś</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Nic něnto</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Nigda njeskładowaś</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Nic něnto</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Składowaś</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Njeaktualizěrowaś</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Nic něnto</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Aktualizěrowaś</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Gronidłowe pólo njesmějo prozne byś</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Gronidło zapódaś</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Pśizjawjenje njedajo se składowaś</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Gronidło njedajo se składowaś</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Toś to pśizjawjenje składowaś?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Gronidło składowaś?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Toś to pśizjawjenje aktualizěrowaś?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Gronidło aktualizěrowaś?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Wužywaŕske mě skłaźonemu gronidłoju pśidaś?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Pópisanje za zapódaśe do tekstowego póla</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Wubjeŕśo barwu</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Dowóliś</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Wótpokazaś</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Sćo wěsty?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Cośo toś to sedło spušćiś? Zapódane daty njebudu se snaź składowaś</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Wóstaś</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Spušćiś</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Mjasec wubraś</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Měr</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Maj</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Awg</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Now</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dec</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Cas nastajiś</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Pśizjawjenja zastojaś</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Gronidła zastojaś</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Naraźone pśizjawjenja pokazaś</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Skłaźone gronidła pokazaś</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Naraźone pśizjawjenja schowaś</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Skłaźone gronidła schowaś</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Naraźone pśizjawjenja</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Skłaźone gronidła</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Mócne gronidło naraźiś</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Mócne gronidło naraźiś</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Mócne gronidło wužywaś: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Daty k toś tomu sedłoju znowego pósłaś?</string> + <string name="mozac_feature_prompt_repost_message">Aktualizěrowanje toś togo boka mógło nejnowše akcije pódwojś, na pśikład słanje płaśenja abo dwójne wótpósćełanje komentara.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Daty znowego pósłaś</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Pśetergnuś</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Kreditowu kórtu wubraś</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Skłaźonu kórtu wužywaś</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Naraźone kreditowe kórty pokazaś</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Skłaźone kórty pokazaś</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Naraźone kreditowe kórty schowaś</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Skłaźone kórty schowaś</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Kreditowe kórty zastojaś</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Kórty zastojaś</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Toś tu kórtu wěsće składowaś?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Datum spadnjenja kórty aktualizěrowaś?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Numer kórty buźo se koděrowaś. Wěstotny kod njebuźo se składowaś.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s waš kórtowy numer koděrujo. Waš wěstotny kod njebuźo se składowaś.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Adresu wubraś</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Naraźone adrese pokazaś</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Skłaźone adrese pokazaś</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Naraźone adrese schowaś</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Skłaźone adrese schowaś</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Adrese zastojaś</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Kontowy wobraz</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Wubjeŕśo pśizjawjeńskego póbitowarja</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Se z kontom %1$s pśizjawiś</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">%1$s ako pśizjawjeńskego póbitowarja wužywaś</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Pśizjawjenje pla %1$s z kontom %2$s jogo <a href="%3$s">pšawidłam priwatnosći</a> a <a href="%4$s">wužywańskim wuměnjenjam</a> pódlažy]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Dalej</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Pśetergnuś</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-el/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-el/strings.xml new file mode 100644 index 0000000000..44f632fa99 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-el/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Ακύρωση</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Να απαγορεύεται σε αυτή τη σελίδα να δημιουργεί επιπρόσθετους διαλόγους</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Ορισμός</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Απαλοιφή</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Σύνδεση</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Όνομα χρήστη</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Κωδικός πρόσβασης</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Χωρίς αποθήκευση</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Όχι τώρα</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Ποτέ αποθήκευση</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Όχι τώρα</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Αποθήκευση</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Να μη γίνει ενημέρωση</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Όχι τώρα</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Ενημέρωση</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Το πεδίο κωδικού πρόσβασης δεν πρέπει να είναι κενό</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Εισαγάγετε έναν κωδικό πρόσβασης</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Αποτυχία αποθήκευσης σύνδεσης</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Αδυναμία αποθήκευσης κωδικού πρόσβασης</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Αποθήκευση σύνδεσης;</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Αποθήκευση κωδικού πρόσβασης;</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Ενημέρωση σύνδεσης;</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Ενημέρωση κωδικού πρόσβασης;</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Προσθήκη ονόματος χρήστη στον αποθηκευμένο κωδικό πρόσβασης;</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Ετικέτα για εισαγωγή πεδίου κειμένου</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Επιλέξτε χρώμα</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Αποδοχή</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Άρνηση</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Είστε σίγουροι;</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Θέλετε να αποχωρήσετε από τον ιστότοπο; Τα καταχωρημένα δεδομένα ενδέχεται να μην αποθηκευτούν</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Παραμονή</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Αποχώρηση</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Επιλέξτε μήνα</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Ιαν</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Φεβ</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Μάρ</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Απρ</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Μάι</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Ιούν</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Ιούλ</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Αύγ</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Σεπ</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Οκτ</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Νοέ</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Δεκ</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Ορισμός ώρας</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Διαχείριση συνδέσεων</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Διαχείριση κωδικών πρόσβασης</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Ανάπτυξη προτεινόμενων συνδέσεων</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Ανάπτυξη των αποθηκευμένων κωδικών πρόσβασης</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Σύμπτυξη προτεινόμενων συνδέσεων</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Σύμπτυξη αποθηκευμένων κωδικών πρόσβασης</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Προτεινόμενες συνδέσεις</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Αποθηκευμένοι κωδικοί πρόσβασης</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Πρόταση ισχυρού κωδικού πρόσβασης</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Πρόταση ισχυρού κωδικού πρόσβασης</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Χρησιμοποιήστε ισχυρό κωδικό: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Επαναποστολή δεδομένων στον ιστότοπο;</string> + <string name="mozac_feature_prompt_repost_message">Η ανανέωση αυτής της σελίδας ίσως επαναλάβει τις πρόσφατες ενέργειες, όπως αποστολή πληρωμής ή δημοσίευση σχολίου δύο φορές.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Επαναποστολή δεδομένων</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Ακύρωση</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Επιλογή πιστωτικής κάρτας</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Χρήση αποθηκευμένης κάρτας</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Ανάπτυξη προτεινόμενων πιστωτικών καρτών</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Ανάπτυξη αποθηκευμένων καρτών</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Σύμπτυξη προτεινόμενων πιστωτικών καρτών</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Σύμπτυξη αποθηκευμένων καρτών</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Διαχείριση πιστωτικών καρτών</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Διαχείριση καρτών</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Ασφαλής αποθήκευση κάρτας;</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Ενημέρωση ημερομηνίας λήξης κάρτας;</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Ο αριθμός της κάρτας θα κρυπτογραφηθεί. Ο κωδικός ασφαλείας δεν θα αποθηκευτεί.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">Το %s κρυπτογραφεί τον αριθμό της κάρτας σας. Ο κωδικός ασφαλείας σας δεν θα αποθηκευτεί.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Επιλογή διεύθυνσης</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Ανάπτυξη προτεινόμενων διευθύνσεων</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Ανάπτυξη αποθηκευμένων διευθύνσεων</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Σύμπτυξη προτεινόμενων διευθύνσεων</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Σύμπτυξη αποθηκευμένων διευθύνσεων</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Διαχείριση διευθύνσεων</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Εικόνα λογαριασμού</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Επιλογή παρόχου σύνδεσης</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Σύνδεση με λογαριασμό %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Χρήση %1$s ως παρόχου σύνδεσης</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Η σύνδεση στο %1$s με λογαριασμό %2$s υπόκειται στην <a href="%3$s">Πολιτική απορρήτου</a> και τους <a href="%4$s">Όρους υπηρεσίας</a> του]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Συνέχεια</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Ακύρωση</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-en-rCA/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-en-rCA/strings.xml new file mode 100644 index 0000000000..e3e8443fe9 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-en-rCA/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Cancel</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Prevent this page from creating additional dialogs</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Set</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Clear</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Sign in</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Username</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Password</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save" moz:removedIn="125" tools:ignore="UnusedResources">Don’t save</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2">Not now</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Never save</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Not now</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Save</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update" moz:removedIn="125" tools:ignore="UnusedResources">Don’t update</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2">Not now</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Update</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password" moz:removedIn="125" tools:ignore="UnusedResources">Password field must not be empty</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2">Enter a password</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause" moz:removedIn="125" tools:ignore="UnusedResources">Unable to save login</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2">Can’t save password</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline" moz:removedIn="125" tools:ignore="UnusedResources">Save this login?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2">Save password?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline" moz:removedIn="125" tools:ignore="UnusedResources">Update this login?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2">Update password?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Add username to saved password?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Label for entering a text input field</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Choose a colour</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Allow</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Deny</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Are you sure?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Do you want to leave this site? Data you have entered may not be saved</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Stay</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Leave</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Pick a month</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">May</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Aug</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Oct</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dec</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Set time</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins" moz:removedIn="125" tools:ignore="UnusedResources">Manage logins</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2">Manage passwords</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Expand suggested logins</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2">Expand saved passwords</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Collapse suggested logins</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2">Collapse saved passwords</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins" moz:removedIn="125" tools:ignore="UnusedResources">Suggested logins</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2">Saved passwords</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Suggest strong password</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Suggest strong password</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Use strong password: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Resend data to this site?</string> + <string name="mozac_feature_prompt_repost_message">Refreshing this page could duplicate recent actions, such as sending a payment or posting a comment twice.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Resend data</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Cancel</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card" moz:removedIn="125" tools:ignore="UnusedResources">Select credit card</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2">Use saved card</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Expand suggested credit cards</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2">Expand saved cards</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Collapse suggested credit cards</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2">Collapse saved cards</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards" moz:removedIn="125" tools:ignore="UnusedResources">Manage credit cards</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2">Manage cards</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Securely save this card?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Update card expiration date?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body" moz:removedIn="125" tools:ignore="UnusedResources">Card number will be encrypted. Security code won’t be saved.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2">%s encrypts your card number. Your security code won’t be saved.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Select address</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Expand suggested addresses</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2">Expand saved addresses</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Collapse suggested addresses</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2">Collapse saved addresses</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Manage addresses</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Account picture</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Choose a login provider</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Sign in with a %1$s account</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Use %1$s as a login provider</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Logging in to %1$s with a %2$s account is subject to their <a href="%3$s">Privacy Policy</a> and <a href="%4$s">Terms of Service</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Continue</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Cancel</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-en-rGB/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-en-rGB/strings.xml new file mode 100644 index 0000000000..b4cf291d22 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-en-rGB/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Cancel</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Prevent this page from creating additional dialogues</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Set</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Clear</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Sign in</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Username</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Password</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Don’t save</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Not now</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Never save</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Not now</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Save</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Don’t update</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Not now</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Update</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Password field must not be empty</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Enter a password</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Unable to save login</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Can’t save password</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Save this login?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Save password?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Update this login?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Update password?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Add username to saved password?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Label for entering a text input field</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Choose a colour</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Allow</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Deny</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Are you sure?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Do you want to leave this site? Data you have entered may not be saved</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Stay</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Leave</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Pick a month</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">May</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Aug</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Oct</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dec</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Set time</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Manage logins</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Manage passwords</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Expand suggested logins</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Expand saved passwords</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Collapse suggested logins</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Collapse saved passwords</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Suggested logins</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Saved passwords</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Suggest strong password</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Suggest strong password</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Use strong password: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Resend data to this site?</string> + <string name="mozac_feature_prompt_repost_message">Refreshing this page could duplicate recent actions, such as sending a payment or posting a comment twice.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Resend data</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Cancel</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Select credit card</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Use saved card</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Expand suggested credit cards</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Expand saved cards</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Collapse suggested credit cards</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Collapse saved cards</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Manage credit cards</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Manage cards</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Securely save this card?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Update card expiration date?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Card number will be encrypted. Security code won’t be saved.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s encrypts your card number. Your security code won’t be saved.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Select address</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Expand suggested addresses</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Expand saved addresses</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Collapse suggested addresses</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Collapse saved addresses</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Manage addresses</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Account picture</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Choose a login provider</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Sign in with a %1$s account</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Use %1$s as a login provider</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Logging in to %1$s with a %2$s account is subject to their <a href="%3$s">Privacy Policy</a> and <a href="%4$s">Terms of Service</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Continue</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Cancel</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-eo/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-eo/strings.xml new file mode 100644 index 0000000000..a6cc86761b --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-eo/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Akcepti</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Nuligi</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Ne permesi al tiu ĉi paĝo la kreadon de novaj dialogoj</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Akcepti</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Viŝi</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Komenci seancon</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nomo de uzanto</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Pasvorto</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Ne konservi</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Ne nun</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Neniam konservi</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ne nun</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Konservi</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Ne ĝisdatigi</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Ne nun</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Ĝisdatigi</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">La pasvorto ne povas esti malplena</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Tajpu pasvorton</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Ne eblas konservi legitimilon</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Ne eblas konservi la pasvorton</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Ĉu konservi tiun ĉi legitimilon?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Ĉu konservi pasvorton?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Ĉu ĝisdatigi tiun ĉi akreditilon?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Ĉu ĝisdatigi pasvorton?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Ĉu aldoni nomon de uzanto al la konservita pasvorto?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etikedo por eniga teksta kampo</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Elekti koloron</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permesi</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Rifuzi</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Ĉu vi certas?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Ĉu vi volas foriri el tiu ĉi retejo? Enigitaj datumoj eble ne estos konservitaj.</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Resti</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Foriri</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Elekti monaton</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Maj</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Aŭg</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dec</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Difini horon</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Administri legitimilojn</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Administri pasvortojn</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Malfaldi sugestitajn legitimilojn</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Malfaldi konservitajn pasvortojn</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Faldi sugestitajn legitimilojn</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Faldi konservitajn pasvortojn</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Sugestitaj legitimiloj</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Konservitaj pasvortoj</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Sugesti fortan pasvorton</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Sugesti fortan pasvorton</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Uzi fortan pasvorton: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Ĉu resendi datumojn al tiu ĉi retejo?</string> + <string name="mozac_feature_prompt_repost_message">Reŝargo de tiu paĝo povus ripeti ĵusajn agojn, ekzemple resendon de pago aŭ komento.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Resendi datumojn</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Nuligi</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Elekti kreditkarton</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Uzi konservitan karton</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Malfaldi sugestitajn kreditkartojn</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Elporti konservitajn pasvortojn</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Faldi sugestitajn kreditkartojn</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Faldi konservitajn kartojn</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Administri kreditkartojn</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Administri kartojn</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Ĉu sekure konservi tiun ĉi kreditkarton?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Ĉu ĝisdatigi la daton de senvalidiĝo de kreditkarto?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">La numero de kreditkaro estos ĉifrita. La sekureca kodo ne estos konservita.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s ĉifras vian numeron de karto. Via sekureca kodo ne estos konservita.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Elekti adresojn</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Malfaldi sugestitajn adresojn</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Malfaldi konservitajn adresojn</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Faldi sugestitajn adresojn</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Faldi konservitajn adresojn</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Administri adresojn</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Bildo de profilo</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Elektu provanton de legitimo por uzantoj</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Komencu seancon kun konto de %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Uzi %1$s kiel provizanton de legitimilo</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Komenco de seanco en %1$s per konto de %2$s estas regata de ilia <a href="%3$s">politiko pri privateco</a> kaj <a href="%4$s">kondiĉoj de uzo</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Daŭrigi</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Nuligi</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-es-rAR/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-es-rAR/strings.xml new file mode 100644 index 0000000000..b16d50b15a --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-es-rAR/strings.xml @@ -0,0 +1,188 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Aceptar</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Cancelar</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Impedir que esta página cree diálogos adicionales</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Establecer</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Eliminar</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Iniciar sesión</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nombre de usuario</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Contraseña</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">No guardar</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">No ahora</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">No guardar nunca</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">No ahora</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Guardar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">No actualizar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">No ahora</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Actualizar</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">El campo de contraseña no puede estar vacío</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Ingresar una contraseña</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">No se puede guardar el inicio de sesión</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">No se puede guardar la contraseña</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">¿Guardar este inicio de sesión?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">¿Guardar contraseña?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">¿Actualizar este inicio de sesión?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">¿Actualizar contraseña?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">¿Agregar nombre de usuario a la contraseña guardada?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etiqueta para ingresar un campo de entrada de texto</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Elija un color</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permitir</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Denegar</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">¿Estás seguro?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">¿Querés salir de este sitio? Los datos que ingresaste pueden no guardarse</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Permanecer</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Salir</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Elegí un mes</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">En</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Abr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mayo</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Ago</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Oct</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dic</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Establecer hora</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Administrar inicios de sesión</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Administrar contraseñas</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Expandir los inicios de sesión sugeridos</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Expandir las contraseñas guardadas</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Contraer los inicios de sesión sugeridos</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Contraer contraseñas guardadas</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Inicios de sesión sugeridos</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Contraseñas guardadas</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Sugerir contraseña segura</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Sugerir contraseña segura</string> + + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Usar contraseña segura: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">¿Reenviar datos a este sitio?</string> + <string name="mozac_feature_prompt_repost_message">Recargar esta página podría duplicar acciones recientes, como enviar un pago o publicar un comentario dos veces.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Reenviar datos</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Cancelar</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Seleccionar tarjeta de crédito</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Usar tarjeta guardada</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Ampliar las tarjetas de crédito sugeridas</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Expandir tarjetas guardadas</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Contraer tarjetas de crédito sugeridas</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Contraer tarjetas guardadas</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Administrar tarjetas de crédito</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Administrar tarjetas</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">¿Guardar esta tarjeta de forma segura?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">¿Actualizar la fecha de vencimiento de la tarjeta?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">El número de tarjeta será cifrado. El código de seguridad no se guardará.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s cifra tu número de tarjeta. El código de seguridad no se guardará.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Seleccionar dirección</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Expandir direcciones sugeridas</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Expandir las direcciones guardadas</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Contraer direcciones sugeridas</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Contraer direcciones guardadas</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Administrar direcciones</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Foto de la cuenta</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Elegir un proveedor de inicio de sesión</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Iniciar sesión con una cuenta de %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Usar %1$s como proveedor de inicio de sesión</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Iniciar sesión en %1$s con una cuenta %2$s está sujeto a la <a href="%3$s">Política de privacidad</a> y <a href="%4$s">Términos de servicio</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Continuar</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Cancelar</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-es-rCL/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-es-rCL/strings.xml new file mode 100644 index 0000000000..ed1d9dd56f --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-es-rCL/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Aceptar</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Cancelar</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Evitar que esta página cree diálogos adicionales</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Ajustar</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Limpiar</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Conectarse</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nombre de usuario</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Contraseña</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">No guardar</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Ahora no</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Nunca guardar</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ahora no</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Guardar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">No actualizar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Ahora no</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Actualizar</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">El campo de contraseña no puede estar vacío</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Ingresar una contraseña</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">No se pudo guardar la credencial</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">No se puede guardar la contraseña</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">¿Guardar esta credencial?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">¿Guardar contraseña?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">¿Actualizar esta credencial?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">¿Actualizar contraseña?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">¿Añadir nombre de usuario a la contraseña guardada?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etiqueta para ingresar un campo de entrada de texto</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Elige un color</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permitir</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Denegar</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">¿De verdad quieres proceder?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">¿Quieres dejar este sitio? Los datos que ha ingresado podrían no estar guardados</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Mantenerse</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Salir</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Elige un mes</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Ene</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Abr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">May</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Ago</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Oct</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dic</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Ajustar hora</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Administrar credenciales</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Gestionar contraseñas</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Expandir credenciales sugeridas</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Expandir contraseñas guardadas</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Contraer credenciales sugeridas</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Contraer contraseñas guardadas</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Credenciales sugeridas</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Contraseñas guardadas</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Sugerir contraseña segura</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Sugerir contraseña segura</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Usar contraseña segura: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">¿Reenviar datos a este sitio?</string> + <string name="mozac_feature_prompt_repost_message">Recargar esta página podría duplicar acciones recientes, como enviar un pago o publicar un comentario dos veces.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Reenviar datos</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Cancelar</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Seleccionar tarjeta de crédito</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Usar tarjeta guardada</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Expandir tarjetas de crédito sugeridas</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Expandir tarjetas guardadas</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Ocultar tarjetas de crédito sugeridas</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Contraer tarjetas guardadas</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Gestionar tarjetas de crédito</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Gestionar tarjetas</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">¿Guardar esta tarjeta de forma segura?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">¿Actualizar la fecha de vencimiento de la tarjeta?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">El número de la tarjeta será encriptado. El código de seguridad no será guardo.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s cifra tu número de tarjeta. Tu código de seguridad no será guardado.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Seleccionar dirección</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Expandir direcciones sugeridas</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Expandir direcciones guardadas</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Ocultar direcciones sugeridas</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Contraer direcciones guardadas</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Gestionar direcciones</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Imagen de la cuenta</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Elige un proveedor de inicio de sesión</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Conéctate con una cuenta de %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Usar %1$s como proveedor de inicio de sesión</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Conectarse a %1$s con una cuenta de %2$s está sujeto a su <a href="%3$s">Política de privacidad</a> y <a href="%4$s">Términos de servicio</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Continuar</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Cancelar</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-es-rES/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-es-rES/strings.xml new file mode 100644 index 0000000000..2457b86e36 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-es-rES/strings.xml @@ -0,0 +1,188 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Vale</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Cancelar</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Evitar que esta página cree diálogos adicionales</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Establecer</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Limpiar</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Iniciar sesión</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nombre de usuario</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Contraseña</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">No guardar</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Ahora no</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">No guardar nunca</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ahora no</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Guardar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">No actualizar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Ahora no</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Actualizar</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">El campo de contraseña no puede estar vacío</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Introduce una contraseña</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">No se puede guardar el inicio de sesión</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">No se ha podido guardar la contraseña</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">¿Guardar este inicio de sesión?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">¿Guardar contraseña?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">¿Actualizar este inicio de sesión?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">¿Actualizar contraseña?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">¿Añadir nombre de usuario a la contraseña guardada?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etiqueta para ingresar un campo de entrada de texto</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Elegir un color</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permitir</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Denegar</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">¿Estás seguro?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">¿Quieres salir de este sitio? Los datos que has introducido puede que no estén guardados</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Permanecer</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Salir</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Elige un mes</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Enero</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Febrero</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Marzo</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Abril</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mayo</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Junio</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Julio</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Agosto</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sept</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Oct</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dic</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Establecer hora</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Administrar inicios de sesión</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Administrar contraseñas</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Expandir inicios de sesión sugeridos</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Expandir las contraseñas guardadas</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Contraer inicios de sesión sugeridos</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Contraer las contraseñas guardadas</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Inicios de sesión sugeridos</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Contraseñas guardadas</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Sugerir contraseña segura</string> + + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Sugerir contraseña segura</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Usar contraseña segura: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">¿Reenviar los datos a este sitio?</string> + <string name="mozac_feature_prompt_repost_message">Actualizar esta página podría duplicar acciones recientes, como hacer un pago o publicar un comentario dos veces.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Reenviar los datos</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Cancelar</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Seleccionar tarjeta de crédito</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Usar tarjeta guardada</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Expandir la lista de tarjetas de crédito sugeridas</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Expandir tarjetas guardadas</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Contraer la lista de tarjetas de crédito sugeridas</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Contraer tarjetas guardadas</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Administrar tarjetas de crédito</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Administrar tarjetas</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">¿Guardar esta tarjeta de forma segura?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">¿Actualizar la fecha de caducidad de la tarjeta?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">El número de tarjeta será cifrado. El código de seguridad no se guardará.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s cifra tu número de tarjeta. Tu código de seguridad no se guardará.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Seleccionar dirección</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Expandir direcciones sugeridas</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Expandir direcciones guardadas</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Contraer direcciones sugeridas</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Contraer direcciones guardadas</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Administrar direcciones</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Imagen de la cuenta</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Elegir un proveedor de inicio de sesión</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Conéctate con una cuenta de %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Usar %1$s como proveedor de inicio de sesión</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Iniciar sesión en %1$s con una cuenta %2$s está sujeto a la <a href="%3$s">Política de privacidad</a> y a los <a href="%4$s">Términos de servicio</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Continuar</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Cancelar</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-es-rMX/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-es-rMX/strings.xml new file mode 100644 index 0000000000..d38f4e62a5 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-es-rMX/strings.xml @@ -0,0 +1,144 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Aceptar</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Cancelar</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Prevenir esta página desde la creación de cuadros de diálogo adicionales</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Establecer</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Limpiar</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Iniciar sesión</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nombre de usuario</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Contraseña</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">No guardar</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Nunca guardar</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ahora no</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Guardar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">No actualizar</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Actualizar</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">El campo de contraseña no puede estar vacío</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">No se puede guardar el inicio de sesión</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">¿Guardar este inicio de sesión?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">¿Actualizar este inicio de sesión?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">¿Agregar nombre de usuario a la contraseña guardada?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etiqueta para ingresar un campo de entrada de texto</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Elegir un color</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permitir</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Denegar</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">¿Estás seguro?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">¿Deseas abandonar este sitio? Los datos que has ingresado podrían perderse</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Permanecer en el sitio</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Abandonar el sitio</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Eligir un mes</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Ene</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Abr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">May</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Ago</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Oct</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dic</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Establecer hora</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Administrar inicios de sesión</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Expandir los inicios de sesión sugeridos</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Contraer los inicios de sesión sugeridos</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Inicios de sesión sugeridos</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">¿Reenviar datos a este sitio?</string> + <string name="mozac_feature_prompt_repost_message">Actualizar esta página podría duplicar acciones recientes, como enviar un pago o publicar un comentario dos veces.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Reenviar datos</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Cancelar</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Seleccionar tarjeta de crédito</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Expandir sección de tarjetas de crédito sugeridas</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Ocultar las tarjetas de crédito sugeridas</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Administrar tarjetas de crédito</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">¿Guardar esta tarjeta de forma segura?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">¿Actualizar la fecha de vencimiento de la tarjeta?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">El número de tarjeta se encriptará. El código de seguridad no se guardará.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Seleccionar dirección</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Expandir direcciones sugeridas</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Ocultar direcciones sugeridas</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Administrar direcciones</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Imagen de la cuenta</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Elige un proveedor de inicio de sesión</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Conéctate con una cuenta de %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Usar %1$s como proveedor de inicio de sesión</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Iniciar sesión en %1$s con una cuenta de %2$s está sujeto a su <a href="%3$s">Política de Privacidad</a> y <a href="%4$s">Términos de Servicio.</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Continuar</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Cancelar</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-es/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-es/strings.xml new file mode 100644 index 0000000000..2457b86e36 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-es/strings.xml @@ -0,0 +1,188 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Vale</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Cancelar</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Evitar que esta página cree diálogos adicionales</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Establecer</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Limpiar</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Iniciar sesión</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nombre de usuario</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Contraseña</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">No guardar</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Ahora no</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">No guardar nunca</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ahora no</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Guardar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">No actualizar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Ahora no</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Actualizar</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">El campo de contraseña no puede estar vacío</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Introduce una contraseña</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">No se puede guardar el inicio de sesión</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">No se ha podido guardar la contraseña</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">¿Guardar este inicio de sesión?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">¿Guardar contraseña?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">¿Actualizar este inicio de sesión?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">¿Actualizar contraseña?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">¿Añadir nombre de usuario a la contraseña guardada?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etiqueta para ingresar un campo de entrada de texto</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Elegir un color</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permitir</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Denegar</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">¿Estás seguro?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">¿Quieres salir de este sitio? Los datos que has introducido puede que no estén guardados</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Permanecer</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Salir</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Elige un mes</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Enero</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Febrero</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Marzo</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Abril</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mayo</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Junio</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Julio</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Agosto</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sept</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Oct</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dic</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Establecer hora</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Administrar inicios de sesión</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Administrar contraseñas</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Expandir inicios de sesión sugeridos</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Expandir las contraseñas guardadas</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Contraer inicios de sesión sugeridos</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Contraer las contraseñas guardadas</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Inicios de sesión sugeridos</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Contraseñas guardadas</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Sugerir contraseña segura</string> + + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Sugerir contraseña segura</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Usar contraseña segura: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">¿Reenviar los datos a este sitio?</string> + <string name="mozac_feature_prompt_repost_message">Actualizar esta página podría duplicar acciones recientes, como hacer un pago o publicar un comentario dos veces.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Reenviar los datos</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Cancelar</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Seleccionar tarjeta de crédito</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Usar tarjeta guardada</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Expandir la lista de tarjetas de crédito sugeridas</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Expandir tarjetas guardadas</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Contraer la lista de tarjetas de crédito sugeridas</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Contraer tarjetas guardadas</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Administrar tarjetas de crédito</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Administrar tarjetas</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">¿Guardar esta tarjeta de forma segura?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">¿Actualizar la fecha de caducidad de la tarjeta?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">El número de tarjeta será cifrado. El código de seguridad no se guardará.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s cifra tu número de tarjeta. Tu código de seguridad no se guardará.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Seleccionar dirección</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Expandir direcciones sugeridas</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Expandir direcciones guardadas</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Contraer direcciones sugeridas</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Contraer direcciones guardadas</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Administrar direcciones</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Imagen de la cuenta</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Elegir un proveedor de inicio de sesión</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Conéctate con una cuenta de %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Usar %1$s como proveedor de inicio de sesión</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Iniciar sesión en %1$s con una cuenta %2$s está sujeto a la <a href="%3$s">Política de privacidad</a> y a los <a href="%4$s">Términos de servicio</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Continuar</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Cancelar</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-et/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-et/strings.xml new file mode 100644 index 0000000000..5d0f71851a --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-et/strings.xml @@ -0,0 +1,180 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Loobu</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Sellel lehel keelatakse lisanduvate dialoogide loomine</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Vali</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Tühjenda</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Logi sisse</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Kasutajanimi</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Parool</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Ära salvesta</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Mitte praegu</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Ära salvesta kunagi</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Mitte praegu</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Salvesta</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Ära uuenda</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Mitte praegu</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Uuenda</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Parooli väli ei tohi olla tühi</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Sisesta parool</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Kasutajatunnuste salvestamine pole võimalik</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Parooli ei saa salvestada</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Kas salvestada need kasutajatunnused?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Salvesta parool?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Kas uuendada kasutajatunnused?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Uuenda parool?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Kas lisada salvestatud paroolile kasutajanimi?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Nimetus sisestuskasti tekstiväljale</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Värvi valimine</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Luba</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Keela</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Kas oled kindel?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Kas soovid sellelt saidilt lahkuda? Sisestatud andmeid ei pruugita salvestada</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Jää</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Lahku</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Vali kuu</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">jaan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">veebr</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">mär</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">mai</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">juun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">juul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">aug</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">sept</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">dets</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Aja määramine</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Halda kasutajakontosid</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Halda paroole</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Laienda soovitatud kasutajakontosid</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Laienda salvestatud paroolid</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Ahenda soovitatud kasutajakontod</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Ahenda salvestatud paroolid</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Soovitatud kasutajakontod</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Salvestatud paroolid</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Soovita tugevat parooli</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Soovita tugevat parooli</string> + + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Kasuta tugevat parooli %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Kas saata andmed sellele saidile uuesti?</string> + <string name="mozac_feature_prompt_repost_message">Selle lehe värskendamine võib dubleerida hiljutisi toiminguid, nagu makse saatmine või kommentaari postitamine.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Saada andmed uuesti</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Loobu</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Vali krediitkaart</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Kasuta salvestatud kaarti</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Laienda soovitatud krediitkaarte</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Laienda salvestatud kaardid</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Ahenda soovitatud krediitkaarte</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Ahenda salvestatud kaardid</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Halda krediitkaarte</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Halda kaarte</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Kas salvestada see kaart turvaliselt?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Kas uuendada kaardi aegumiskuupäeva?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Kaardi number krüptitakse. Turvakoodi ei salvestata.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s krüpteerib kaardi numbri. Turvakoodi ei salvestata.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Vali aadress</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Laienda soovitatud aadressid</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Laienda salvestatud aadressid</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Ahenda soovitatud aadressid</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Ahenda salvestatud aadressid</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Halda aadresse</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Konto pilt</string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Jätka</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Loobu</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-eu/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-eu/strings.xml new file mode 100644 index 0000000000..3782fee0a2 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-eu/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Ados</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Utzi</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Eragotzi orri honi elkarrizketa-koadro gehiago sortzea</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Ezarri</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Garbitu</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Hasi saioa</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Erabiltzaile-izena</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Pasahitza</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Ez gorde</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Une honetan ez</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Ez gorde inoiz</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Une honetan ez</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Gorde</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Ez eguneratu</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Une honetan ez</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Eguneratu</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Pasahitzaren eremuak ezin du hutsik egon</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Idatzi pasahitz bat</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Ezin da saio-hasiera gorde</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Ezin da pasahitza gorde</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Gorde saio-hasiera hau?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Gorde pasahitza?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Eguneratu saio-hasiera hau?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Eguneratu pasahitza?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Gehitu erabiltzaile-izena gordetako pasahitzari?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Testua idazteko eremua sartzeko etiketa</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Aukeratu kolore bat</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Baimendu</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Ukatu</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Ziur zaude?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Gune hau utzi nahi duzu? Sartu dituzun datuak gal litezke</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Jarraitu hemen</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Utzi</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Hautatu hilabetea</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Urt</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Ots</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Api</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mai</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Eka</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Uzt</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Abu</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Ira</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Urr</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Aza</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Abe</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Ezarri denbora</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Kudeatu saio-hasierak</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Kudeatu pasahitzak</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Zabaldu iradokitako saio-hasierak</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Zabaldu gordetako pasahitzak</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Tolestu iradokitako saio-hasierak</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Tolestu gordetako pasahitzak</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Iradokitako saio-hasierak</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Gordetako pasahitzak</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Gomendatu pasahitz sendoa</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Gomendatu pasahitz sendoa</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Erabili pasahitz sendoa: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Birbidali datuak gune honetara?</string> + <string name="mozac_feature_prompt_repost_message">Orri hau berritzeak azken ekintzak bikoiztea eragin lezake, adibidez ordainketa bat egitea edo iruzkin bat birritan bidaltzea.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Birbidali datuak</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Utzi</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Hautatu kreditu-txartela</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Erabili gordetako txartela</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Zabaldu iradokitako kreditu-txartelak</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Zabaldu gordetako txartelak</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Tolestu iradokitako kreditu-txartelak</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Tolestu gordetako txartelak</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Kudeatu kreditu-txartelak</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Kudeatu txartelak</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Gorde txartela modu seguruan?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Eguneratu txartelaren iraungitze-data?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Txartel-zenbakia zifratu egingo da. Segurtasun-kodea ez da gordeko.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s(e)k zure txartel-zenbakia zifratzen du. Zure segurtasun-kodea ez da gordeko.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Hautatu helbidea</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Zabaldu iradokitako helbideak</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Zabaldu gordetako helbideak</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Tolestu iradokitako helbideak</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Tolestu gordetako helbideak</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Kudeatu helbideak</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Kontuaren argazkia</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Aukeratu saio-hasiera hornitzailea</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Hasi saioa %1$s kontuarekin</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Erabili %1$s saio-hasiera hornitzaile gisa</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[%1$s hornitzailean %2$s kontuarekin saioa hastea bere <a href="%3$s">pribatutasun-politika</a> eta <a href="%4$s">zerbitzuaren baldintzen</a> menpe dago]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Jarraitu</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Utzi</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-fa/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-fa/strings.xml new file mode 100644 index 0000000000..d827812d36 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-fa/strings.xml @@ -0,0 +1,138 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">تأیید</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">لغو</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">از ایجاد پنجرههای جدید توسط این صفحه جلوگیری شود.</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">تنظیم</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">پاک کردن</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">ورود</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">نام کاربری</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">گذرواژه</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">ذخیره نشود</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">هرگز ذخیره نکن</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">اکنون نه</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">ذخیره</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">بروزرسانی نکن</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">بروزرسانی</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">خانهٔ گذرواژه نباید خالی باشد</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">ذخیره ورود امکان پذیر نیست</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">ذخیره این ورود؟</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">بروزرسانی این ورود؟</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">افزودن نامکاربری به گذرواژه ذخیره شده؟</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">برچسب برای وارد کردن یک خانهٔ ورودی متنی</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">یک رنگ انتخاب کنید</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">اجازه دادن</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">رد کردن</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">آیا اطمینان دارید؟</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">می خواهید این پایگاه را ترک کنید؟ اطلاعاتی که وارد کردید ممکن است ذخیره نشود</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">ماندن</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">ترک کردن</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">یک ماه انتخاب کنید</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">ژانویه</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">فوریه</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">مارس</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">آوریل</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">مه</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">ژوئن</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">ژوئیه</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">اوت</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">سپتامبر</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">اکتبر</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">نوامبر</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">دسامبر</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">تنظیم زمان</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">مدیریت ورودها</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">ورودهای پیشنهادی را گسترش دهید</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">ورودهای پیشنهادی را گسترش دهید</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">ورودهای پیشنهاد شده</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">ارسال دوباره داده به این پایگاه؟</string> + <string name="mozac_feature_prompt_repost_message">بازخوانی این صفحه میتواند کنشهای اخیر مانند پرداخت یا ارسال نظر را دوباره تکرار کند.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">ارسال دوبارهٔ دادهها</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">لغو</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">انتخاب کارت اعتباری</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">کارتهای اعتباری بیشتر</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">کارتهای اعتباری کمتر</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">مدیریت کارتهای اعتباری</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">این کارت به صورت ایمن ذخیره شود؟</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">تاریخ انقضای کارت بهروز شود؟</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">شماره کارت رمزگذاری خواهد شد. رمز امنیتی ذخیره نخواهد شد.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">گزینش نشانی</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">گسترش نشانیهای پیشنهادی</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">جمع کردن نشانیهای پیشنهادی</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">مدیریت نشانیها</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">تصویر حساب</string> + <!-- Title of the Identity Credential provider dialog choose. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">انتخاب یک فراهمکنندهٔ ورود</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">استفاده از %1$s به عنوان یک فراهمکننده</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ورود به %1$s با یک حساب %2$s تحت <a href="%3$s">سیاست حفظ محرمانگی</a> و <a href="%4$s">شرایط ارائهٔ خدمات</a> آنهاست]]></string> + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ff/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ff/strings.xml new file mode 100644 index 0000000000..1316ca2667 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ff/strings.xml @@ -0,0 +1,79 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Moƴƴii</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Haaytu</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Haɗ ngoo hello sosde kaalde goɗɗe</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Teelto</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Momtu</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Seŋo</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Innde kuutoro</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Finnde</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Hoto danndu</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Hoto danndu abada</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Danndu</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Hesɗitin</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Gallol finnde fotaani wonde mehol</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Horiima danndude seŋorde</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Ɓeydu innde kuutoro e finnde danndaade?</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Yamir</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Haɗ</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Suɓo lewru</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Siilo</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Colte</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mbooy</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Duujal</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Seeɗto</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Korse</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Morso</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Juko</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Siilto</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Yarkomaa</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Jolal</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Bowte</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Laɓo kartal banke</string> + + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Uddit karte banke basiyaaɗe</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Uddu karte banke basiyaaɗe</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Toppito karte banke</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Danndu ngal kartal e kisnal?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Hesɗitin ñalngu kiiɗtugol kartal?</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-fi/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-fi/strings.xml new file mode 100644 index 0000000000..c0c777120e --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-fi/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Peruuta</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Estä tätä sivua luomasta lisäikkunoita</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Aseta</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Tyhjennä</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Kirjaudu sisään</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Käyttäjätunnus</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Salasana</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Älä tallenna</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Ei nyt</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Älä tallenna koskaan</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ei nyt</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Tallenna</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Älä päivitä</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Ei nyt</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Päivitä</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Salasanakenttä ei saa olla tyhjä</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Kirjoita salasana</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Kirjautumistietojen tallennus epäonnistui</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Salasanaa ei voi tallentaa</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Tallennetaanko tämä kirjautumistieto?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Tallennetaanko salasana?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Päivitetäänkö tämä kirjautumistieto?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Päivitetäänkö salasana?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Lisätäänkö käyttäjänimi tallennettuun salasanaan?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Selite tekstin kirjoittamiselle tekstikenttään</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Valitse väri</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Salli</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Estä</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Oletko varma?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Haluatko poistua tältä sivustolta? Kirjoittamasi tiedot eivät välttämättä tallennu</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Pysy</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Poistu</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Valitse kuukausi</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">tammi</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">helmi</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">maalis</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">huhti</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">touko</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">kesä</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">heinä</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">elo</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">syys</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">loka</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">marras</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">joulu</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Aseta aika</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Hallitse kirjautumistietoja</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Hallitse salasanoja</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Laajenna ehdotetut kirjautumistiedot</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Laajenna tallennetut salasanat</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Supista ehdotetut kirjautumistiedot</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Supista tallennetut salasanat</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Ehdotetut kirjautumistiedot</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Tallennetut salasanat</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Ehdota vahvaa salasanaa</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Ehdota vahvaa salasanaa</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Käytä vahvaa salasanaa: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Lähetetäänkö tiedot uudelleen tälle sivustolle?</string> + <string name="mozac_feature_prompt_repost_message">Tämän sivun päivittäminen saattaa kahdentaa viimeisimmät toiminnot, kuten maksun suorittamisen tai kommentin lähettämisen kahdesti.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Lähetä tiedot uudelleen</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Peruuta</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Valitse luottokortti</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Käytä tallennettua korttia</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Laajenna ehdotetut luottokortit</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Laajenna tallennetut kortit</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Supista ehdotetut luottokortit</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Supista tallennetut kortit</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Hallitse luottokortteja</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Hallitse kortteja</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Tallennetaanko tämä kortti turvallisesti?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Päivitetäänkö kortin viimeinen voimassaolopäivä?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Kortin numero salataan. Suojakoodia ei tallenneta.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s salaa korttisi numeron. Turvakoodiasi ei tallenneta.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Valitse osoite</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Laajenna ehdotetut osoitteet</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Laajenna tallennetut osoitteet</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Supista ehdotetut osoitteet</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Supista tallennetut osoitteet</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Hallitse osoitteita</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Tilin kuva</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Valitse kirjautumispalvelu</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Kirjaudu sisään %1$s-tilillä</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Käytä palvelua %1$s kirjautumiseen</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Kirjautuminen palvelun %1$s tilillä %2$s on kyseisen palvelun <a href="%3$s">tietosuojakäytännön</a> ja <a href="%4$s">käyttöehtojen</a> alaista]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Jatka</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Peruuta</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-fr/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-fr/strings.xml new file mode 100644 index 0000000000..4dfffcad53 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-fr/strings.xml @@ -0,0 +1,196 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Annuler</string> + + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Empêcher cette page d’ouvrir des dialogues supplémentaires</string> + + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Valider</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Effacer</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Se connecter</string> + + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nom d’utilisateur</string> + + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Mot de passe</string> + + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Ne pas enregistrer</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Plus tard</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Ne jamais enregistrer</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Pas pour cette fois</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Enregistrer</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Ne pas mettre à jour</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Plus tard</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Mettre à jour</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Le champ mot de passe ne doit pas être vide</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Saisissez un mot de passe</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Impossible d’enregistrer l’identifiant</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Impossible d’enregistrer le mot de passe</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Enregistrer ces identifiants ?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Enregistrer le mot de passe ?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Mettre à jour cet identifiant ?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Mettre à jour le mot de passe ?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Ajouter un nom d’utilisateur au mot de passe enregistré ?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Libellé pour la création d’un champ de saisie de texte</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Choisir une couleur</string> + + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Autoriser</string> + + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Refuser</string> + + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Confirmation</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Voulez-vous quitter ce site ? Des données saisies peuvent être perdues</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Rester</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Quitter</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Choisir un mois</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">janv.</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">févr.</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">mars</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">avr.</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">mai</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">juin</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">juil.</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">août</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">sept.</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">oct.</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">nov.</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">déc.</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Choisir l’heure</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Gérer les identifiants</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Gérer les mots de passe</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Développer les identifiants suggérés</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Développer les mots de passe enregistrés</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Réduire les identifiants suggérés</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Réduire les mots de passe enregistrés</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Identifiants suggérés</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Mots de passe enregistrés</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Suggérer un mot de passe fort</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Suggérer un mot de passe fort</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Utiliser un mot de passe fort : %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Renvoyer les données à ce site ?</string> + <string name="mozac_feature_prompt_repost_message">Actualiser cette page pourrait répéter des actions récentes, telles que l’envoi d’un paiement ou la publication d’un commentaire.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Renvoyer les données</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Annuler</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Sélectionner une carte bancaire</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Utiliser une carte enregistrée</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Développer les cartes bancaires suggérées</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Développer les cartes enregistrées</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Réduire les cartes bancaires suggérées</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Réduire les cartes enregistrées</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Gérer les cartes bancaires</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Gérer les cartes</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Enregistrer cette carte en toute sécurité ?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Mettre à jour la date d’expiration de la carte ?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Le numéro de carte sera chiffré. Le code de sécurité ne sera pas enregistré.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s chiffre votre numéro de carte. Votre code de sécurité ne sera pas enregistré.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Sélectionner une adresse</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Développer les adresses suggérées</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Développer les adresses enregistrées</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Réduire les adresses suggérées</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Réduire les adresses enregistrées</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Gérer les adresses</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Photo du profil</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Choisir un fournisseur de connexion</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Connectez-vous avec un compte %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Utiliser %1$s comme fournisseur de connexion</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Se connecter à %1$s avec un compte %2$s est soumis à la <a href="%3$s">politique de confidentialité</a> et aux <a href="%4$s">conditions d’utilisation</a> de ce dernier.]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Continuer</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Annuler</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-fur/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-fur/strings.xml new file mode 100644 index 0000000000..0e81b65ce8 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-fur/strings.xml @@ -0,0 +1,190 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Va ben</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Anule</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Impedìs a cheste pagjine di creâ altris dialics</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Stabilìs</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Nete</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Jentre</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Non utent</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Password</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">No sta salvâ</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">No cumò</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">No sta salvâ mai</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">No cumò</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Salve</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">No sta inzornâ</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">No cumò</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Inzorne</string> + + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Il cjamp de password nol à di sei vueit</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Inserìs une password</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Impussibil salvâ lis credenziâls</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Impussibil salvâ la password</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Salvâ cheste credenziâl?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Salvâ la password?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Inzornâ cheste credenziâl?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Inzornâ la password?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Zontâ il non utent ae password salvade?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etichete associade a un cjamp pal inseriment di test</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Sielç un colôr</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permet</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Dinee</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Bandonâ pardabon?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Desideristu bandonâ chest sît? I dâts inserîts a podaressin lâ pierdûts</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Reste</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Bandone</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Selezione un mês</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Zen</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Fev</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Avr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mai</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jug</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Lui</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Avo</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Set</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Otu</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dic</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Stabilìs ore</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Gjestìs credenziâls</string> + + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Gjestìs passwords</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Slargje lis credenziâls sugjeridis</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Slargje lis passwords salvadis</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Comprim lis credenziâls sugjeridis</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Strenç lis passwords salvadis</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Credenziâls sugjeridis</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Passwords salvadis</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Sugjerìs password complesse</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Sugjerìs password complesse</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Dopre password complesse: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Tornâ a inviâ i dâts a chest sît?</string> + <string name="mozac_feature_prompt_repost_message">Se tu tornis a cjariâ cheste pagjine tu podaressis causâ la ripetizion des azions resintis, come l’inviament di un paiament o publicâ un coment dôs voltis.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Torne invie i dâts</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Anule</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Selezione cjarte di credit</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Dopre cjarte salvade</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Slargje la liste des cjartis di credit sugjeridis</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Slargje lis cjartis salvadis</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Comprim la liste des cjartis di credit sugjeridis</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Strenç lis cjartis salvadis</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Gjestìs cjartis di credit</string> + + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Gjestìs cjartis</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Salvâ cheste cjarte in maniere sigure?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Inzornâ la date di scjadince de cjarte?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Il numar de cjarte al sarà cifrât. Il codiç di sigurece nol vignarà salvât.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s al cifre il numar de tô cjarte. Il codiç di sigurece nol vignarà salvât.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Selezione recapit</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Slargje i recapits sugjerîts</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Slargje lis direzions salvadis</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Comprim recapits sugjerîts</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Strenç lis direzions salvadis</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Gjestìs recapits</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Imagjin pal account</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Sielç un furnidôr di acès</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Jentre cuntun account %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Dopre %1$s come furnidôr di acès</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[L’acès a %1$s cuntun account %2$s al sotstà ae <a href="%3$s">Informative su la riservatece</a> e ai <a href="%4$s">Tiermins dal servizi</a> di chest ultin]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Continue</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Anule</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-fy-rNL/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-fy-rNL/strings.xml new file mode 100644 index 0000000000..648aa71c19 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-fy-rNL/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Annulearje</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Foarkomme dat dizze side ekstra dialoochfinsters makket</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Ynstelle</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Wiskje</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Oanmelde</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Brûkersnamme</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Wachtwurd</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Net bewarje</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">No net</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Nea bewarje</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">No net</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Bewarje</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Net bywurkje</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">No net</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Bywurkje</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Wachtwurdfjild mei net leech wêze</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Folje in wachtwurd yn</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Kin oanmelding net bewarje</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Kin wachtwurd net bewarje</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Dizze oanmelding bewarje?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Wachtwurd bewarje?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Dizze oanmelding bywurkje?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Wachtwurd bywurkje?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Brûkersnamme oan bewarre wachtwurd tafoegje?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Label foar it ynfieren fan in tekstynfierfjild</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Kies in kleur</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Tastean</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Wegerje</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Binne jo wis?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Wolle jo dizze website ferlitte? Ynfierde gegevens wurde mooglik net bewarre</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Bliuwe</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Ferlitte</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Kies in moanne</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">mrt</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">maa</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">aug</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">des</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Tiid ynstelle</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Oanmeldingen beheare</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Wachtwurden beheare</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Foarstelde oanmeldingen útklappe</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Bewarre wachtwurden te útklappe</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Foarstelde oanmeldingen ynklappe</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Bewarre wachtwurden ynklappe</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Foarstelde oanmeldingen</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Bewarre wachtwurden</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Sterk wachtwurd foarstelle</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Sterk wachtwurd foarstelle</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Sterk wachtwurd brûke: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Gegevens opnij nei dizze website ferstjoere?</string> + <string name="mozac_feature_prompt_repost_message">It opnij laden fan dizze side kin resinte aksjes duplisearje, lykas it ferstjoeren fan in betelling of it twa kear pleatsen fan in berjocht.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Gegevens opnij ferstjoere</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Annulearje</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Selektearje creditcard</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Bewarre kaart brûke</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Foarstelde creditcards útklappe</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Bewarre kaarten te útklappe</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Foarstelde creditcards ynklappe</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Bewarre kaarten ynklappe</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Creditcards beheare</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Kaarten beheare</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Dizze kaart feilich bewarje?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Ferrindatum kaart bywurkje?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">It kaartnûmer sil fersifere wurde. De befeiligingskoade wurdt net bewarre.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s fersiferet jo kaartnûmer. Jo befeiligingskoade wurdt net bewarre.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Adres selektearje</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Foarstelde adressen útklappe</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Bewarre adressen útklappe</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Foarstelde adressen ynklappe</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Bewarre adressen ynklappe</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Adressen beheare</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Accountôfbylding</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Kies in oanmeldprovider</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Meld jo oan mei in %1$s-account</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">%1$s as oanmeldprovider brûke</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Oanmelding by %1$s mei in %2$s-account falt ûnder harren <a href="%3$s">Privacybelied</a> en <a href="%4$s">Tsjinstbetingsten</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Trochgean</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Annulearje</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ga-rIE/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ga-rIE/strings.xml new file mode 100644 index 0000000000..ce1fcab220 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ga-rIE/strings.xml @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Cealaigh</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Ná lig don leathanach seo tuilleadh dialóg a chruthú</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Socraigh</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Glan</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Logáil isteach</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Ainm úsáideora</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Focal Faire</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Ná sábháil</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Sábháil</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Nuashonraigh</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Ní cheadaítear focal faire folamh</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Níorbh fhéidir an focal faire a shábháil</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Lipéad do réimse ionchurtha téacs</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Roghnaigh dath</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Ceadaigh</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Diúltaigh</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Roghnaigh mí</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Ean</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Fea</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Már</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Aib</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Bea</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Mei</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Iúil</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Lún</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">MFó</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">DFó</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Samh</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Nol</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-gd/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-gd/strings.xml new file mode 100644 index 0000000000..5ad7782f05 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-gd/strings.xml @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Ceart ma-thà</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Sguir dheth</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Na leig leis an duilleag seo còmhraidhean eile a chruthachadh</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Suidhich</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Falamhaich</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Clàraich a-steach</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Ainm-cleachdaiche</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Facal-faire</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Na sàbhail</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Na sàbhail idir</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Chan ann an-dràsta</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Sàbhail</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Na ùraich</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Ùraich</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Chan fhaod raon an fhacail-fhaire a bhith bàn</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Cha ghabh an clàradh a-steach a shàbhaladh</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">A bheil thu airson an clàradh a-steach seo a shàbhaladh?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">A bheil thu airson an clàradh a-steach seo ùrachadh?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">A bheil thu airson an t-ainm-cleachdaiche seo a chur ris an fhacal-fhaire a shàbhail thu?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Leubail airson raon ion-chur teacsa a chur a-steach</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Tagh dath</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Ceadaich</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Diùlt</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">A bheil thu cinnteach?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">A bheil thu airson an làrach seo fhàgail? Dh‘fhaoidte nach deach dàta a chuir thu a-steach a shàbhaladh fhathast</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Fuirich</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Fàg an-seo</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Tagh mìos</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Faoi</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Gearr</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Màrt</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Gibl</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Cèit</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Ògmh</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Iuch</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Lùna</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sult</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Dàmh</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Samh</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dùbh</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Suidhich àm</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Stiùirich na clàraidhean a-steach</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Leudaich na mholar de chlàraidhean a-steach</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Co-theannaich na mholar de chlàraidhean a-steach</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Clàraidhean a-steach a mholamaid</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">A bheil thu airson an dàta a chur gun làrach seo a-rithist?</string> + <string name="mozac_feature_prompt_repost_message">Ma nì thu ath-nuadhachadh air an duilleag seo, dh’fhaoidte gun dèid gnìomhan a rinn thu o chionn goirid, can pàigheadh a chur thu no beachd a phostaich thu, a dhèanamh a-rithist.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Cuir an dàta a-rithist</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Sguir dheth</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Tagh cairt-chreideis</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Leudaich na cairtean-creideis a mholamaid</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Co-theannaich na cairtean-creideis a mholamaid</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Stiùirich na cairtean-creideis</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">A bheil thu airson a’ chairt seo a shàbhaladh air dòigh thèarainte?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">A bheil thu airson an latha a dh’fhalbhas an ùine air a’ chairt ùrachadh?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Thèid àireamh na cairte a chrioptachadh. Cha tèid an còd tèarainteachd a shàbhaladh.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Tagh seòladh</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Leudaich na seòlaidhean a tha gam moladh</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Co-theannaich na seòlaidhean a tha gam moladh</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Stiùirich na seòlaidhean</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-gl/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-gl/strings.xml new file mode 100644 index 0000000000..785542bd46 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-gl/strings.xml @@ -0,0 +1,189 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Aceptar</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Cancelar</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Evitar que esta páxina cree diálogos adicionais</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Estabelecer</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Limpar</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Acceder</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nome de usuario</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Contrasinal</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save" moz:removedIn="125" tools:ignore="UnusedResources">Non gardar</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2">Agora non</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Non gardar nunca</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Agora non</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Gardar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update" moz:removedIn="125" tools:ignore="UnusedResources">Non actualizar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2">Agora non</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Actualizar</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password" moz:removedIn="125" tools:ignore="UnusedResources">O campo de contrasinal non debe estar baleiro</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2">Introduza un contrasinal</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause" moz:removedIn="125" tools:ignore="UnusedResources">Non foi posíbel gardar o acceso</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2">Non se pode gardar o contrasinal</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline" moz:removedIn="125" tools:ignore="UnusedResources">Gardar esta identificación?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2">Gardar o contrasinal?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline" moz:removedIn="125" tools:ignore="UnusedResources">Actualizar esta identificación?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2">Actualizar o contrasinal?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Engadir nome de usuario ao contrasinal gardado?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etiqueta para introducir un campo de entrada de texto</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Escolla unha cor</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permitir</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Denegar</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Confirma?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Desexa abandonar este sitio? Pode que os datos introducidos non se garden</string> + + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Permanecer</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Abandonar</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Escolla un mes</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Xan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Abr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Maio</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Xuñ</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Xul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Ago</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Set</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Out</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dec</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Establecer a hora</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins" moz:removedIn="125" tools:ignore="UnusedResources">Xestionar as identificacións</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2">Xestionar os contrasinais</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Expandir os inicios de sesión suxeridos</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2">Expandir os contrasinais gardados</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Contraer os inicios de sesión suxeridos</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2">Contraer os contrasinais gardados</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins" moz:removedIn="125" tools:ignore="UnusedResources">Inicios de sesión suxeridos</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2">Contrasinais gardados</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Suxerir contrasinais fortes</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Suxerir contrasinais fortes</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Usar un contrasinal forte: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Reenviar os datos a este sitio?</string> + <string name="mozac_feature_prompt_repost_message">Actualizar esta páxina pode duplicar accións recentes, como enviar un pago ou publicar un comentario dúas veces.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Reenviar datos</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Cancelar</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card" moz:removedIn="125" tools:ignore="UnusedResources">Seleccionar a tarxeta de crédito</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2">Usar unha tarxeta gardada</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Ampliar as tarxetas de crédito suxeridas</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2">Expandir as tarxetas gardadas</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Contraer as tarxetas de crédito suxeridas</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2">Contraer as tarxetas gardadas</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards" moz:removedIn="125" tools:ignore="UnusedResources">Xestionar as tarxetas de crédito</string> + + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2">Xestionar tarxetas</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Gardar esta tarxeta de forma segura?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Actualizar a data de caducidade da tarxeta?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body" moz:removedIn="125" tools:ignore="UnusedResources">O número de tarxeta cifrarase. O código de seguridade non se gardará.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2">%s cifra o seu número de tarxeta. O seu código de seguranza non se gardará.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Seleccione o enderezo</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Expandir os enderezos suxeridos</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2">Amplíe os enderezos gardados</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Contraer os enderezos suxeridos</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2">Contraer os enderezos gardados</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Xestionar enderezos</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Imaxe da conta</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Escolla un provedor de inicio de sesión</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Iniciar sesión cunha conta %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Use %1$s como provedor de inicio de sesión</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Iniciar sesión en %1$s cunha conta de %2$s está suxeito á súa <a href="%3$s">Política de privacidade</a> e ás súas <a href="%4$s">Condicións de servizo </a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Continuar</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Cancelar</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-gn/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-gn/strings.xml new file mode 100644 index 0000000000..ed14962d6b --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-gn/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">MONEĨ</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Heja</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Ani emoneĩ ko kuatiaroguépe omoheñóivo ñomongeta</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Mboheko</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Mopotĩ</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Eñepyrũ tembiapo</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Poruhára réra</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Ñe’ẽñemi</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save" moz:removedIn="125" tools:ignore="UnusedResources">Ani eñongatu</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2">Ani ko’ág̃a</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Aníke eñongatu</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ani ko’ág̃a</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Ñongatu</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update" moz:removedIn="125" tools:ignore="UnusedResources">Ani embohekopyahu</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2">Ani ko’ág̃a</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Mbohekopyahu</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password" moz:removedIn="125" tools:ignore="UnusedResources">Pe ñe’ẽñemi kora ndopytaiva’erã nandi</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2">Emoinge ñe’ẽñemi</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause" moz:removedIn="125" tools:ignore="UnusedResources">Nereñongatukuaái tembiapo ñepyrũ</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2">Noñeñongatúi ñe’ẽñemi</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline" moz:removedIn="125" tools:ignore="UnusedResources">¿Tembiapo ñepyrũ ñongatu?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2">¿Eñongatu ñe’ẽñemi?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline" moz:removedIn="125" tools:ignore="UnusedResources">¿Tembiapo ñepyrũ mbohekopyahu?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2">¿Embohekopyahu ñe’ẽñemi?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">¿Embojuaju poruhára réra ñe’ẽñemi ñongatupyrépe?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Teramoĩ eike hag̃ua moñe’ẽrã jeikeha korápe</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Eiporavo sa’y</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Moneĩ</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Mbotove</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">¿Eikuaaporãpa?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">¿Esẽse ko tendágui? Umi mba’ekuaarã emoingéva oñeñongatu’ỹva</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Pyta</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Ñesẽ</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Eiporavo peteĩ jasy</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jasyteĩ</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Jasykõi</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Jasyapy</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Jasyrundy</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Jasypo</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jasypoteĩ</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jasypokõi</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Jasypoapy</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Jasyporundy</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Jasypa</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Jasypateĩ</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Jasypakõi</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Emoĩ aravo</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins" moz:removedIn="125" tools:ignore="UnusedResources">Tembiapo ñepyrũ ñangarekohára</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2">Eñangareko ñe’ẽñemíre</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Emoasãi tembiapo ñepyrũ je’epyre</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2">Emyasãi ñe’ẽñemi ñongatupyre</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Emomichĩ tembiapo ñepyrũ je’epyre</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2">Emoñynỹi ñe’ẽñemi ñongatupyre</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins" moz:removedIn="125" tools:ignore="UnusedResources">Tembiapo ñepyrũ je’epyre</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2">Ñe’ẽñemi ñongatupyre</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Eikuave’ẽ ñe’ẽñemi hekorosãva</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Eikuave’ẽ ñe’ẽñemi hekorosãva</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Eiporu ñe’ẽñemi hekorosãva: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">¿Emondojey mba’ekuaarã ko tendápe?</string> + <string name="mozac_feature_prompt_repost_message">Emyanyhẽjeývo ko kuatiarogue ombohetakuaa ejaporamóva, omondokuaa jehepyme’ẽ térã omoherakuãjo’a nde jehaipy.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Emondojey mba’ekuaarã</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Heja</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card" moz:removedIn="125" tools:ignore="UnusedResources">Eiporavo kuatia’atã ñemurã</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2">Eiporu kuatia’atã ñongatupyre</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Emoasãi kuatia’atã ñemurã rysýi je’epyre</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2">Emyasãi kuatia’atã ñongatupyre</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Eñomi kuatia’atã ñemurã je’epyre</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2">Emoñynỹi kuatia’atã ñongatupyre</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards" moz:removedIn="125" tools:ignore="UnusedResources">Eñangareko kuatia’atã ñemurãre</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2">Eñangareko kuatia’atã</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">¿Eñongatu ko kuatia’atã oĩ porã hag̃uáme?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">¿Embohekopyahu kuatia’atã arange paha?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body" moz:removedIn="125" tools:ignore="UnusedResources">Kuatia’atã papapy ipe’ahañemíta. Pe’ahañemi noñeñongatumo’ãi.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2">%s ombopapapy nde kuatia’atã. Nde rekorosãrã ayvu noñeñongatumo’ãi.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Eiporavo kundaharape</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Emoasãi kundaharape je’epyréva</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2">Emyasãi kundaharape ñongatupyre</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Emomichĩ kundaharape je’epyréva</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2">Emoñynỹi kundaharape ñongatupyre</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Eñangareko kundaharapére</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Mba’ete ra’ãnga</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Eiporavo tembiapo ñepyrũ me’ẽhára</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Eñepyrũ tembiapo %1$s mba’etépe</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Eiporu %1$s tembiapo ñepyrũ me’ẽhárõ</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Emba’apo %1$s peteĩ mba’ete %2$s ndive ojokupytýva <a href="%3$s">Porureko ñemigua</a> ha avei <a href="%4$s">Mba’epytyvõrã ñemboguata</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Eku’ejey</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Heja</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-gu-rIN/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-gu-rIN/strings.xml new file mode 100644 index 0000000000..fd199216f6 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-gu-rIN/strings.xml @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">રદ કરો</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">આ પૃષ્ઠને અતિરિક્ત સંવાદો બનાવવાથી રોકો</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">ગોઠવો</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">સાફ કરો</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">સાઇન ઇન કરો</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">વપરાશકર્તા નામ</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">પાસવર્ડ</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">સાચવો નહીં</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">સાચવો</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">અપડેટ કરશો નહીં</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">અપડેટ કરો</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">પાસવર્ડની જગ્યા ખાલી ન હોવો જોઈએ</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">લાૅગ-ઇન સાચવવામાં અસમર્થ</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">તમે આ લૉગિનને સાચવવા માંગો છો?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">તમે આ લૉગિનને અપડેટ કરવા માંગો છો?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">શું તમે સાચવેલા પાસવર્ડમાં વપરાશકર્તા નામ ઉમેરવા માંગો છો?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">ટેક્સ્ટ ઇનપુટ ક્ષેત્ર દાખલ કરવા માટેનું લેબલ</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">રંગ પસંદ કરો</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">પરવાનગી આપો</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">નકારો</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">શું તમે ચોક્કસ છો?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">શું તમે આ સાઇટ છોડવા માંગો છો? તમે દાખલ કરેલો ડેટા સાચવવામાં આવશે નહીં</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">રહો</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">છોડો</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">મહિનો પસંદ કરો</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">જાન્યુઆરી</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">ફેબ્રુઆરી</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">માર્ચ</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">એપ્રિલ</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">મે</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">જૂન</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">જુલાઈ</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">ઑગસ્ટ</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">સપ્ટેમ્બર</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">ઑક્ટોબર</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">નવેમ્બર</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">ડિસેમ્બર</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-hi-rIN/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-hi-rIN/strings.xml new file mode 100644 index 0000000000..c4c9f6ae09 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-hi-rIN/strings.xml @@ -0,0 +1,108 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ठीक है</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">रद्द करें</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">इस पृष्ठ को अतरिक्त सूचना प्रदान करने से रोकें</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">सेट करें</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">मिटाएं</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">साइन इन करें</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">उपयोगकर्ता नाम</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">पासवर्ड</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">मत सहेजें</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">कभी नहीं सहेजें</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">सहेजें</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">अपडेट न करें</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">अद्यतित करें</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">पासवर्ड क्षेत्र रिक्त नहीं होनी चाहिए</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">लॉगिन जानकारी सजेहने में असफल</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">इस लॉगिन को सहेजना चाहते हैं?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">इस लॉगिन को अपडेट करना चाहते हैं?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">सहेजे गए पासवर्ड में उपयोगकर्ता नाम जोड़ना चाहते हैं?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">पाठ इनपुट क्षेत्र दर्ज करने के लिए लेबल</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">एक रंग चुनें</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">अनुमति दें</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">अस्वीकार करें</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">क्या आपको यकीन है?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">क्या आप इस साइट को छोड़ना चाहते हैं? आपके द्वारा दर्ज किया गया डेटा सहेजा नहीं जा सकता है</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">रुकें</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">छोड़ें</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">एक महीना चुनें</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">जनवरी</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">फरवरी</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">मार्च</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">अप्रैल</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">मई</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">जून</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">जुलाई</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">अगस्त</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">सितंबर</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">अक्टूबर</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">नवंबर</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">दिसंबर</string> + + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">लॉगिन प्रबंधित करें</string> + + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">सुझाए गए लॉगिन का विस्तार करें</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">सुझाए गए लॉगिन संक्षिप्त करें</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">सुझाए गए लॉगिन</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">इस साइट पर डेटा फिर से भेजें?</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">डेटा फिर से भेजें</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">रद्द करें</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">क्रेडिट कार्ड चुनें</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">सुझाए गए क्रेडिट कार्ड का विस्तार करें</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings --> + <string name="mozac_feature_prompts_manage_credit_cards">क्रेडिट कार्ड प्रबंधित करें</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-hil/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-hil/strings.xml new file mode 100644 index 0000000000..2647f4d9b5 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-hil/strings.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Sige</string> + + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Password</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Save</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Magapabilin</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Magpili sang bulan</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Enero</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Pebrero</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Marso</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Abril</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mayo</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Hunyo</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Hulyo</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Agosto</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Setiyembre</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Oktubre</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nobiyembre</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Disiyembre</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-hr/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-hr/strings.xml new file mode 100644 index 0000000000..b23b6aba5b --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-hr/strings.xml @@ -0,0 +1,144 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">U redu</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Odustani</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Onemogući ovoj stranici stvaranje dodatnih dijaloga</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Postavi</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Izbriši</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Prijavi se</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Korisničko ime</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Lozinka</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Nemoj spremiti</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Nikad ne spremaj</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ne sada</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Spremi</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Nemoj aktualizirati</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Aktualiziraj</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Polje lozinke ne smije biti prazno</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Nije moguće spremiti prijavu</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Spremiti ovu prijavu?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Aktualizirati ovu prijavu?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Dodati korisničko ime spremljenoj lozinki?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Oznaka za unašanje polja za unos teksta</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Odaberi boju</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Dozvoli</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Zabrani</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Sigurno?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Želiš napustiti ovu stranicu? Upisani podaci se možda neće spremiti</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Ostani</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Napusti</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Odaberi mjesec</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Sij</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Velj</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Ožu</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Tra</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Svi</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Lip</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Srp</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Kol</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Ruj</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Lis</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Stu</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Pro</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Postavi vrijeme</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Upravljaj prijavama</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Proširi predložene prijave</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Sažmi predložene prijave</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Predložene prijave</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Ponovno poslati podatke ovoj stranici?</string> + <string name="mozac_feature_prompt_repost_message">Osvježavanje ove stranice moglo bi ponoviti nedavne radnje, kao što su dvostruko plaćanje ili komentiranje.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Ponovno pošalji podatke</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Odustani</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Odaberi kreditnu karticu</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Proširi predložene kreditne kartice</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Sažmi predložene kreditne kartice</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Upravljaj kreditnim karticama</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Sigurno spremi ovu karticu?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Ažuriraj datum isteka kartice?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Broj kartice će biti šifriran. Sigurnosni kod neće biti spremljen.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Odaberite adresu</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Proširi predložene adrese</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Sažmi predložene adrese</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Upravljanje adresama</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Slika računa</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Odaberite davatelja usluge prijave</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Prijavite se s računom %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Koristite %1$s kao davatelja usluge prijave</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Prijava u %1$s s %2$s računom podliježe njihovoj <a href="%3$s">politici privatnosti</a> i <a href="%4$s">Uvjetima usluge</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Nastavi</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Odustani</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-hsb/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-hsb/strings.xml new file mode 100644 index 0000000000..23d8daba55 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-hsb/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">W porjadku</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Přetorhnyć</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Tutu stronu při wutworjenju přidatnych dialogow haćić</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Nastajić</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Zhašeć</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Přizjewić</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Wužiwarske mjeno</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Hesło</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Njeskładować</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Nic nětko</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Ženje njeskładować</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Nic nětko</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Składować</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Njeaktualizować</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Nic nětko</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Aktualizować</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Hesłowe polo njesmě prózdne być</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Hesło zapodać</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Přizjewjenje njeda so składować</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Hesło njeda so składować</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Tute přizjewjenje składować?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Hesło składować?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Tute přizjewjenje aktualizować?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Hesło aktualizować?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Wužiwarske mjeno składowanemu hesłu přidać?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Popis za zapodaće do tekstoweho pola</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Wubjerće barbu</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Dowolić</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Wotpokazać</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Sće wěsty?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Chceće tute sydło wopušćić? Zapodate daty njebudu so snano składować</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Wostać</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Wopušćić</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Měsac wubrać</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Měr</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mej</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Awg</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Now</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dec</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Čas nastajić</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Přizjewjenja rjadować</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Hesła rjadować</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Namjetowane přizjewjenja pokazać</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Składowane hesła pokazać</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Namjetowane přizjewjenja schować</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Składowane hesła schować</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Namjetowane přizjewjenja</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Składowane hesła</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Sylne hesło namjetować</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Sylne hesło namjetować</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Sylne hesło wužiwać: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Daty k tutomu sydłu znowa pósłać?</string> + <string name="mozac_feature_prompt_repost_message">Aktualizowanje tuteje strony móhło najnowše akcije podwojić, na přikład słanje płaćenja abo dwójne wotesyłanje komentara.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Daty znowa pósłać</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Přetorhnyć</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Kreditnu kartu wubrać</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Składowanu kartu wužiwać</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Namjetowane kreditne karty pokazać</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Składowane karty pokazać</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Namjetowane kreditne karty schować</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Składowane karty schować</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Kreditne karty rjadować</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Karty rjadować</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Tutu kartu wěsće składować?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Datum spadnjenja karty aktualizować?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Čisło karty budźe so zaklučować. Wěstotny kod njebudźe so składować.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s waše kartowe čisło zaklučuje. Waš wěstotny kod njebudźe so składować.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Adresu wubrać</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Namjetowane adresy pokazać</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Składowane adresy pokazać</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Namjetowane adresy schować</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Składowane adresy schować</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Adresy rjadować</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Kontowy wobraz</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Wubjerće přizjewjenskeho poskićowarja</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">So z kontom %1$s přizjewić</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">%1$s jako přizjewjenskeho poskićowarja wužiwać</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Přizjewjenje pola %1$s z kontom %2$s jeho <a href="%3$s">prawidłam priwatnosće</a> a <a href="%4$s">wužiwanskim wuměnjenjam</a> podleži]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Dale</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Přetorhnyć</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-hu/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-hu/strings.xml new file mode 100644 index 0000000000..a480fe2bdd --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-hu/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Rendben</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Mégse</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Az oldal ne hozhasson létre további párbeszédablakokat</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Beállítás</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Törlés</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Bejelentkezés</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Felhasználónév</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Jelszó</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Ne mentse</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Most nem</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Sose mentse</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Most nem</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Mentés</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Ne frissítse</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Most nem</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Frissítés</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">A jelszómező nem lehet üres</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Adjon meg egy jelszót</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">A bejelentkezés nem menthető</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">A jelszó nem menthető</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Menti ezt a bejelentkezést?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Menti a jelszót?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Frissíti ezt a bejelentkezést?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Jelszó frissítése?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Hozzáadja a felhasználónevet a mentett jelszóhoz?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Címke a szövegbeviteli mezőhöz</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Válasszon színt</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Engedélyezés</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Tiltás</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Biztos benne?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Elhagyja ezt az oldalt? A bevitt adatok lehet, hogy nem lettek elmentve.</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Maradás</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Távozás</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Válasszon hónapot</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">jan.</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">febr.</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">márc.</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">ápr.</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">máj.</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">jún.</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">júl.</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">aug.</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">szept.</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">okt.</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">nov.</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">dec.</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Idő beállítása</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Bejelentkezések kezelése</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Jelszavak kezelése</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Javasolt bejelentkezések kibontása</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Mentett jelszavak kibontása</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Javasolt bejelentkezések összecsukása</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Mentett jelszavak összecsukása</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Javasolt bejelentkezések</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Mentett jelszavak</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Erős jelszó javaslata</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Erős jelszó javaslata</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Erős jelszó használata: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Újraküldi az adatokat ennek a webhelynek?</string> + <string name="mozac_feature_prompt_repost_message">Az oldal frissítése megismételheti a legutóbbi műveleteket, például újra fizethet vagy még egyszer elküldheti ugyanazt a hozzászólást.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Adatok újraküldése</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Mégse</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Válasszon bankkártyát</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Mentett kártya használata</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Javasolt bankkártyák kibontása</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Mentett kártyák kibontása</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Javasolt bankkártyák összecsukása</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Mentett kártyák összecsukása</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Bankkártyák kezelése</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Kártyák kezelése</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Elmenti biztonságosan ezt a kártyát?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Frissíti a kártya lejárati dátumát?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">A kártyaszám titkosítva lesz. A biztonsági kód nem kerül mentésre.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">A %s titkosítja a kártyaszámát. A biztonsági kód nem lesz mentve.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Cím kiválasztása</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Javasolt címek kibontása</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Mentett címek kibontása</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Javasolt címek összecsukása</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Mentett címek összecsukása</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Címek kezelése</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Fiók képe</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Válasszon bejelentkezési szolgáltatót</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Jelentkezzen be a %1$s-fiókjába</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">A(z) %1$s használata bejelentkezési szolgáltatóként</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[A(z) %2$s fiókkal a(z) %1$s szolgáltatásba való bejelentkezésre az <a href="%3$s">Adatvédelmi irányelvek</a> és a <a href="%4$s">Szolgáltatási feltételei</a> vonatkoznak]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Folytatás</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Mégse</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-hy-rAM/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-hy-rAM/strings.xml new file mode 100644 index 0000000000..8190f8d45b --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-hy-rAM/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Լավ</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Չեղարկել</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Կասեցնել այս էջը հավելյալ երկխոսություններ ստեղծելուց</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Կայել</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Մաքրել</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Մուտք գործել</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Օգտվողի անուն</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Գաղտնաբառ</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Չպահպանել</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Ոչ հիմա</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Երբեք չպահպանել</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ոչ հիմա</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Պահպանել</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Չթարմացնել</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Ոչ հիմա</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Թարմացնել</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Գաղտնաբառի դաշտը չպետք է դատարկ լինի</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Մուտքագրեք գաղտնաբառ</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Անհնար է պահել մուտքանունը</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Հնարավոր չէ պահել գաղտնաբառը</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Պահպանե՞լ մուտքանունը</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Պահե՞լ գաղտնաբառը</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Թարմացնե՞լ մուտքանունը:</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Թարմացնե՞լ գաղտնաբառը:</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Ավելացնե՞լ օգտվողի անունը գաղտնաբառին:</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Պիտակ`գրվածքի մուտքի դաշտ մուտքագրելու համար</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Ընտրեք գույնը</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Թույլատրել</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Արգելել</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Համոզվա՞ծ եք</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Ցանկանո՞ւմ եք լքել այս կայքը: Ձեր մուտքագրած տվյալները, հնարավոր է, չպահպանվեն:</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Մնալ</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Լքել</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Ընտրեք ամիսը</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Հուն</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Փետ</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Մարտ</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Ապր</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Մայիս</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Հուն</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Հուլ</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Օգս</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Սեպ</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Հոկ</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Նոյ</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Դեկ</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Կայել ժամանակ</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Կառավարել մուտքանունները</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Կառավարել գաղտնաբառերը</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Ընդլայնել առաջարկվող մուտքանունները</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Ընդարձակել պահված գաղտնաբառերը</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Կոծկել առաջարկվող մուտքանունները</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Կոծկել պահված գաղտնաբառերը</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Առաջարկվող մուտքանուններ</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Պահված գաղտնաբառեր</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Առաջարկել ուժեղ գաղտնաբառ</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Առաջարկել ուժեղ գաղտնաբառ</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Օգտագործեք ուժեղ գաղտնաբառ՝ %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Կրկին ուղարկել տվյալները այս կայքի համար:</string> + <string name="mozac_feature_prompt_repost_message">Տվյալ էջի թարմացումը կարող է կրկնօրինակել վերջին գործողությունները, ինչպես օրինակ՝ վճարումը կամ մեկնաբանության կրկնակի հրապարակումը:</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Կրկին ուղարկել</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Չեղարկել</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Ընտրեք բանկային քարտ</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Օգտագործել պահված քարտը</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Ընդարձակել առաջարկվող բանկային քարտերը</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Ընդարձակել պահված քարտերը</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Կոծկել առաջարկվող բանկային քարտերը</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Կոծկել պահված քարտերը</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Կառավարել բանկային քարտերը</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Կառավարել քարտերը</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Ապահով պահե՞լ այս քարտը:</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Թարմացնե՞լ քարտի գործողության ժամկետը:</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Քարտի համարը կկոդավորվի: Անվտանգության կոդը չի պահվի:</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s-ը գաղտնագրում է ձեր քարտի համարը: Անվտանգության ձեր կոդը չի պահպանվի:</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Ընտրեք հասցե</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Ընդլայնել առաջարկվող հասցեները</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Ընդարձակել պահված հասցեները</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Կոծկել առաջարկվող հասցեները</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Կոծկել պահված հասցեները</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Կառավարել հասցեները</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Հաշվի նկար</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Ընտրեք մուտքի մատակարար</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Մուտք գործեք %1$s հաշիվով</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Օգտագործեք %1$s որպես մուտքի մատակարար</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[%1$s մուտք գործելը %2$s հաշվով ենթակա է իրենց <a href="%3$s">Գաղտնիության դրույթներին</a> և <a href="%4$s">Ծառայության պայմաններին</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Շարունակել</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Չեղարկել</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ia/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ia/strings.xml new file mode 100644 index 0000000000..d81b6b52e4 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ia/strings.xml @@ -0,0 +1,188 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Cancellar</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Impedir iste pagina de crear altere dialogos</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Definir</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Vacuar</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Aperir session</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nomine de usator</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Contrasigno</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Non salvar</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Non ora</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Non salvar mais</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Non ora</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Salvar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Non actualisar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Non ora</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Actualisar</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Le campo del contrasigno non debe esser vacue</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Insere un contrasigno</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Impossibile salvar le credentiales</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Impossibile salvar le contrasigno</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Salvar iste credentiales?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Salvar le contrasigno?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Actualisar iste credentiales?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Actualisar le contrasigno?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Adder le nomine de usator al contrasigno salvate?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etiquetta pro introduction de un texto de campo de entrata</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Eliger un color</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permitter</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Denegar</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Es tu secur?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Vole tu lassar iste sito? Le datos que tu ha inserite non pote esser salvate</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Remaner</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Quitar</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Elige un mense</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Maio</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">aug</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">oct</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">dec</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Adjustar le hora</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Gerer credentiales</string> + + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Gerer contrasignos</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Expander le credentiales suggerite</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Expander le contrasignos salvate</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Collaber le credentiales suggerite</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Comprimer le contrasignos salvate</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Credentiales suggerite</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Contrasignos salvate</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Suggerer contrasigno complexe</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Suggerer contrasigno complexe</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Usa contrasigno forte: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Reinviar le datos a iste sito?</string> + <string name="mozac_feature_prompt_repost_message">Actualisar iste pagina pote duplicar activitates recente, tal como inviar un pagamento o un commento duo vices.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Reinviar datos</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Cancellar</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Eliger le carta de credito</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Usar un carta salvate</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Expander le cartas de credito suggerite</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Expander le cartas salvate</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Collaber le cartas de credito suggerite</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Comprimer le cartas salvate</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Gerer le cartas de credito</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Gerer le cartas</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Securmente salveguardar iste carta?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Actualisar le data de expiration del carta?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Le numero de carta sera cryptate. Le codice de securitate non sera salvate.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s crypta tu numero de carta. Tu codice de securitate non sera salvate.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Seliger adress</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Expander adresses suggerite</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Expander adresses salvate</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Collaber adresses suggerite</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Collaber adresses salvate</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Gerer adresses</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Imagine del conto</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Selige un fornitor de accesso</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Aperir session con un conto %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Usar %1$s como fornitor de accesso</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Le accesso a %1$s con un conto %2$s es subjecte a lor <a href="%3$s">Politica de confidentialitate</a> e <a href="%4$s">Terminos de servicio</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Continuar</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Cancellar</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-in/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-in/strings.xml new file mode 100644 index 0000000000..7f0fdf319c --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-in/strings.xml @@ -0,0 +1,138 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Oke</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Batal</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Cegah laman ini membuat dialog lainnya</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Setel</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Hapus</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Masuk</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nama Pengguna</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Sandi</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Jangan simpan</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Jangan pernah simpan</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Tidak sekarang</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Simpan</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Jangan perbarui</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Perbarui</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Bidang kata sandi tidak boleh kosong</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Gagal menyimpan info masuk</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Simpan info masuk ini?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Perbarui info masuk ini?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Tambahkan nama pengguna ke kata sandi yang disimpan?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Label untuk memasukkan input teks</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Pilih warna</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Izinkan</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Tolak</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Yakin?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Apakah Anda ingin meninggalkan situs ini? Data yang Anda masukkan mungkin tidak disimpan</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Tetap di sini</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Tinggalkan</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Pilih bulan</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mei</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Agu</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Des</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Atur waktu</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Kelola info masuk</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Perlihatkan log masuk yang disarankan</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Ciutkan log masuk yang disarankan</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Log masuk yang disarankan</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Kirim ulang data ke situs ini?</string> + <string name="mozac_feature_prompt_repost_message">Menyegarkan halaman ini dapat mengulang tindakan yang baru saja dilakukan, seperti melakukan pembayaran atau mengirim komentar dua kali</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Kirim ulang data</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Batal</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Pilih kartu kredit</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Perluas kartu kredit yang disarankan</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Ciutkan kartu kredit yang disarankan</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Kelola kartu kredit</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Simpan kartu ini dengan aman?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Perbarui tanggal kedaluwarsa kartu?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Nomor kartu akan dienkripsi. Kode keamanan tidak akan disimpan.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Pilih alamat</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Bentangkan alamat yang disarankan</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Ciutkan alamat yang disarankan</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Kelola alamat</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Gambar akun</string> + <!-- Title of the Identity Credential provider dialog choose. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Pilih penyedia log masuk</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Pilih %1$s sebagai penyedia info masuk</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Masuk ke %1$s dengan akun %2$s tunduk pada <a href="%3$s">Kebijakan Privasi</a> dan <a href="%4$s">Ketentuan Layanan</a>]]></string> + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-is/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-is/strings.xml new file mode 100644 index 0000000000..790b620f4d --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-is/strings.xml @@ -0,0 +1,189 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Í lagi</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Hætta við</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Koma í veg fyrir að þessi síða búi til fleiri glugga</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Stilla</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Hreinsa</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Innskráning</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Notendanafn</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Lykilorð</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Ekki vista</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Ekki núna</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Aldrei vista</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ekki núna</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Vista</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Ekki uppfæra</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Ekki núna</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Uppfæra</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Lykilorðareiturinn má ekki vera tómur</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Settu inn lykilorð</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Gat ekki vistað innskráningarupplýsingar</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Get ekki vistað lykilorð</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Vista þessa innskráningu?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Vista lykilorð?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Uppfæra þessa innskráningu?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Uppfæra lykilorð?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Bæta notandanafni við vistað lykilorð?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Svæði til þess að setja heiti á innsláttartexta svæði</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Velja lit</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Leyfa</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Hafna</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Ertu viss?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Viltu yfirgefa þessa síðu? Ekki er víst að gögnin sem þú hefur slegið inn séu vistuð</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Vera áfram</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Yfirgefa</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Veldu mánuð</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Maí</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jún</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Júl</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Ágú</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nóv</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Des</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Stilla tíma</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Sýsla með innskráningar</string> + + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Sýsla með lykilorð</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Fletta út tillögum að innskráningu</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Fletta út vistuð lykilorð</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Fella saman tillögur að innskráningu</string> + + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Fella saman vistuð lykilorð</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Tillögur að innskráningu</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Vistuð lykilorð</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Stinga upp á sterku lykilorði</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Stinga upp á sterku lykilorði</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Notaðu sterkt lykilorð: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Senda gögn til baka á þetta vefsvæði?</string> + <string name="mozac_feature_prompt_repost_message">Ef þú endurlest þessa síðu gæti það endurtekið nýlegar aðgerðir, eins og að senda greiðslu eða setja inn athugasemd tvisvar.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Endursenda gögn</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Hætta við</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Veldu greiðslukort</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Nota vistað kort</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Fletta út tillögum að greiðslukortum</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Fletta út vistuð greiðslukort</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Fella saman tillögur að greiðslukortum</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Fella saman vistuð greiðslukort</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Sýsla með greiðslukort</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Sýsla með greiðslukort</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Vista þetta kort á öruggan hátt?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Uppfæra gildistíma korts?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Kortanúmer verður dulritað. Öryggiskóði verður ekki vistaður.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s dulkóðar kortanúmerið þitt. Öryggiskóðinn þinn verður ekki vistaður.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Veldu póstfang</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Fletta út tillögum að póstföngum</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Fletta út vistuðum heimilisföngum</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Fella saman tillögur að póstföngum</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Fella saman vistuð heimilisföng</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Sýsla með póstföng</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Mynd fyrir notandaaðgang</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Veldu innskráningarveitu</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Skráðu þig inn með %1$s reikningi</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Nota %1$s sem innskráningarveitu</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Innskráning á %1$s með %2$s reikningi er háð <a href="%3$s">persónuverndarstefnu</a> og <a href="%4$s">þjónustuskilmálum þeirra </a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Halda áfram</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Hætta við</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-it/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-it/strings.xml new file mode 100644 index 0000000000..55f0558393 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-it/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Annulla</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Impedisci a questa pagina di aprire ulteriori finestre di dialogo</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Imposta</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Annulla</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Accedi</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nome utente</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Password</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Non salvare</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Non adesso</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Non salvare mai</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Non adesso</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Salva</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Non aggiornare</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Non adesso</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Aggiorna</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">È necessario inserire una password</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Inserisci una password</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Impossibile salvare le credenziali</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Impossibile salvare la password</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Salvare queste credenziali?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Salvare la password?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Aggiornare queste credenziali?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Aggiornare la password?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Aggiungere il nome utente alle credenziali salvate?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etichetta associata a un campo per l’inserimento di testo</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Scegli un colore</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permetti</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Nega</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Abbandonare la pagina?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Vuoi abbandonare questo sito? I dati inseriti potrebbero non essere stati salvati</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Non abbandonare</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Abbandona</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Seleziona mese</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Gen</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mag</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Giu</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Lug</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Ago</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Set</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Ott</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dic</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Imposta ora</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Gestione credenziali</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Gestisci password</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Espandi le credenziali suggerite</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Espandi le password salvate</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Comprimi le credenziali suggerite</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Comprimi le password salvate</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Credenziali suggerite</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Password salvate</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Suggerisci password complessa</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Suggerisci password complessa</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Utilizza password complessa: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Inviare nuovamente i dati a questo sito?</string> + <string name="mozac_feature_prompt_repost_message">Il ricaricamento può causare la ripetizione di azioni recenti svolte sulla pagina, generando, per esempio, pagamenti o commenti duplicati.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Reinvia i dati</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Annulla</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Seleziona carta di credito</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Utilizza carta salvata</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Espandi l’elenco delle carte di credito suggerite</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Espandi le carte salvate</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Comprimi l’elenco delle carte di credito suggerite</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Comprimi le carte salvate</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Gestisci carte di credito</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Gestisci carte</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Salvare questa carta in modo sicuro?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Aggiornare la data di scadenza della carta?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Il numero della carta sarà crittato. Il codice di sicurezza non verrà salvato.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s critta il numero della tua carta. Il codice di sicurezza non verrà salvato.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Seleziona indirizzo</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Espandi gli indirizzi suggeriti</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Espandi gli indirizzi salvati</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Comprimi gli indirizzi suggeriti</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Comprimi gli indirizzi salvati</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Gestisci indirizzi</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Immagine per l’account</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Scegli un provider di accesso</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Accedi con un account %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Utilizza %1$s come provider di accesso</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[L’accesso a %1$s con un account %2$s è soggetto all’<a href="%3$s">Informativa sulla privacy</a> e alle <a href="%4$s">Condizioni di utilizzo del servizio</a> di quest’ultimo.]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Continua</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Annulla</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-iw/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-iw/strings.xml new file mode 100644 index 0000000000..879dd4dcc2 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-iw/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">אישור</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">ביטול</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">למנוע מדף זה ליצור תיבות דו־שיח נוספות</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">הגדרה</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">ניקוי</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">כניסה</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">שם משתמש</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">ססמה</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">לא לשמור</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">לא כעת</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">לעולם לא לשמור</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">לא כעת</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">לשמור</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">לא לעדכן</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">לא כעת</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">עדכון</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">שדה הססמה לא יכול להישאר ריק</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">נא להכניס ססמה</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">לא ניתן לשמור את הכניסה</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">לא ניתן לשמור את הססמה</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">לשמור כניסה זו?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">לשמור את הססמה?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">לעדכן כניסה זו?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">לעדכן את הססמה?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">להוסיף שם משתמש לססמה השמורה?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">תווית להזנת שדה קלט טקסט</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">בחירת צבע</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">לאפשר</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">לדחות</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">להמשיך?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">האם ברצונך לעזוב את האתר הזה? ייתכן שנתונים שהזנת לא יישמרו</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">להישאר</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">לעזוב</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">בחירת חודש</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">ינו׳</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">פבר׳</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">מרץ</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">אפר׳</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">מאי</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">יונ׳</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">יול׳</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">אוג׳</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">ספט׳</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">אוק׳</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">נוב׳</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">דצמ׳</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">הגדרת זמן</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">ניהול כניסות</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">ניהול ססמאות</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">הרחבת הכניסות המוצעות</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">הרחבת ססמאות שמורות</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">צמצום הכניסות המוצעות</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">צמצום ססמאות שמורות</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">כניסות מוצעות</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">ססמאות שמורות</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">קבלת הצעה לססמה חזקה</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">קבלת הצעה לססמה חזקה</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">שימוש בססמה חזקה: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">לשלוח את הנתונים לאתר הזה שוב?</string> + <string name="mozac_feature_prompt_repost_message">רענון העמוד הזה עשוי להוביל לשכפול הפעולות האחרונות, כגון ביצוע תשלום או פרסום תגובה פעמיים.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">שליחת נתונים מחדש</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">ביטול</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">בחירת כרטיס אשראי</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">שימוש בכרטיס השמור</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">הרחבת כרטיסי האשראי המוצעים</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">הרחבת כרטיסים שמורים</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">צמצום כרטיסי האשראי המוצעים</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">צמצום כרטיסים שמורים</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">ניהול כרטיסי אשראי</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">ניהול כרטיסים</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">לשמור את הכרטיס הזה באופן מאובטח?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">לעדכן את תאריך התפוגה של הכרטיס?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">מספר הכרטיס יוצפן. קוד האבטחה לא יישמר.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s מצפין את מספר הכרטיס שלך. קוד האבטחה שלך לא יישמר.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">בחירת כתובת</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">הרחבת הכתובות המוצעות</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">הרחבת כתובות דוא״ל</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">צמצום הכתובות המוצעות</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">צמצום כתובות דוא״ל</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">ניהול כתובות</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">תמונת חשבון</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">בחירת ספק התחברות</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">כניסה עם חשבון %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">שימוש ב־%1$s כספק התחברות</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[הכניסה ל־%1$s עם חשבון %2$s כפופה ל<a href="%3$s">מדיניות הפרטיות</a> ול<a href="%4$s">תנאי השימוש</a> שלהם]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">המשך</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">ביטול</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ja/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ja/strings.xml new file mode 100644 index 0000000000..9b0ba18b32 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ja/strings.xml @@ -0,0 +1,199 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">キャンセル</string> + + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">このページによる追加のダイアログ表示を抑止する</string> + + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">設定</string> + + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">消去</string> + + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">ログイン</string> + + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">ユーザー名</string> + + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">パスワード</string> + + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">保存しない</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">後で</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">保存しない</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">今はしない</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">保存する</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">更新しない</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">後で</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">更新</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">パスワードを入力してください</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">パスワードを入力してください</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">ログイン情報を保存できません</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">パスワードを保存できません</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">このログイン情報を保存しますか?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">パスワードを保存しますか?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">このログイン情報を更新しますか?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">パスワードを更新しますか?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">保存されたパスワードにユーザー名を追加しますか?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">テキスト入力フィールドに入力するためのラベル</string> + + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">色を選択</string> + + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">許可</string> + + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">拒否</string> + + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">本当によろしいですか?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">このサイトを離れますか? 入力したデータが保存されない可能性があります</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">留まる</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">移動する</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">月を選択してください</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">1月</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">2月</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">3月</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">4月</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">5月</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">6月</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">7月</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">8月</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">9月</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">10月</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">11月</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">12月</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">時刻の設定</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">ログイン情報の管理</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">パスワードを管理</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">提案されたログイン情報を展開</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">保存したパスワードを展開</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">提案されたログイン情報を折りたたむ</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">保存したパスワードを折りたたむ</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">提案されたログイン情報</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">保存されたパスワード</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">強固なパスワードを提案する</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">強固なパスワードを提案する</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">強固なパスワードを使用してください: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">このサイトにデータを再送信しますか?</string> + <string name="mozac_feature_prompt_repost_message">このページを更新すると、支払いの送信やコメントの投稿が 2 回行われるなど、直前の操作が重複する可能性があります。</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">データを再送信</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">キャンセル</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">クレジットカードを選択</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">保存したカード情報を使用</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">提案されたクレジットカード情報を展開する</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">保存したカード情報を展開</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">提案されたクレジットカード情報を折りたたむ</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">保存したカード情報を折りたたむ</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">クレジットカードを管理</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">カード情報を管理</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">このカードの情報を安全に保存しますか?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">カードの有効期限を更新しますか?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">カード番号は暗号化されます。セキュリティコードは保存されません。</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s がカード番号を暗号化します。セキュリティコードは保存しません。</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">アドレスの選択</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">提案されたアドレス情報を展開する</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">保存したアドレス情報を展開</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">提案されたアドレス情報を折りたたむ</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">保存したアドレス情報を折りたたむ</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">アドレスの管理</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">アカウント写真</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">ログインプロバイダーを選択してください</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">%1$s アカウントでログイン</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">ログインプロバイダーとして %1$s を使用する</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[%2$s アカウントで %1$s にログインすると、その <a href="%3$s">プライバシー ポリシー</a> と <a href="%4$s">サービス利用規約</a> に同意したものとみなされます]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">続ける</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">キャンセル</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ka/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ka/strings.xml new file mode 100644 index 0000000000..4f60984371 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ka/strings.xml @@ -0,0 +1,144 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">კარგი</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">გაუქმება</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">მომდევნო ამომხტომი სარკმლების შეზღუდვა</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">დაყენება</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">გასუფთავება</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">შესვლა</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">მომხმარებლის სახელი</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">პაროლი</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">შენახვის გარეშე</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">არასოდეს შეინახოს</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">ახლა არა</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">შენახვა</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">არ განახლდეს</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">განახლება</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">პაროლის ველი ვერ იქნება ცარიელი</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">მონაცემების შენახვა ვერ მოხერხდა</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">შეინახოს ეს მონაცემები?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">განახლდეს ეს მონაცემები?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">დაემატოს სახელი შენახულ პაროლს?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">წარწერა ტექსტის შესაყვანი ველისთვის</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">ფერის შერჩევა</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">დაშვება</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">უარყოფა</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">დარწმუნებული ხართ?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">გსურთ დატოვოთ ეს საიტი? თქვენ მიერ შეყვანილი მონაცემები არ შეინახება</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">დარჩენა</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">დატოვება</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">თვის შერჩევა</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">იან</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">თებ</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">მარ</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">აპრ</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">მაი</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">ივნ</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">ივლ</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">აგვ</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">სექ</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">ოქტ</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">ნოე</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">დეკ</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">დროის მითითება</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">ანგარიშების მართვა</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">შემოთავაზებების გაშლა</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">შემოთავაზებების აკეცვა</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">შემოთავაზებული ანგარიშები</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">ხელახლა გაეგზავნოს მონაცემები ამ საიტს?</string> + <string name="mozac_feature_prompt_repost_message">გვერდის გაახლებით, შესაძლოა გამეორდეს ბოლო მოქმედება, მაგალითად თანხის ჩამოჭრა ან კომენტარის დატოვება.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">კვლავ გაგზავნა</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">გაუქმება</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">საკრედიტო ბარათის არჩევა</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">შემოთავაზებული საკრედიტო ბარათების ჩამოშლა</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">შემოთავაზებული საკრედიტო ბარათების აკეცვა</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">საკრედიტო ბარათების მართვა</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">შეინახოს ეს ბარათი უსაფრთხოდ?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">განახლდეს ბარათის ვადის თარიღი?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">ბარათის ნომერი დაიშიფრება. უსაფრთხოების კოდი არ შეინახება.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">მისამართის შერჩევა</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">შემოთავაზებების გაშლა</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">შემოთავაზებების აკეცვა</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">მისამართების მართვა</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">ანგარიშის სურათი</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">აირჩიეთ შესვლის უზრუნველმყოფი</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">შესვლისთვის გამოიყენეთ %1$s-ანგარიში</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">გამოიყენეთ %1$s ანგარიშის უზრუნველმყოფად</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[შესვლისთვის როცა %1$s გამოიყენება %2$s ანგარიშით, ექვემდებარება მათს <a href="%3$s">პირადულობის დებულებასა</a> და <a href="%4$s">მომსახურების პირობებს</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">განაგრძეთ</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">გაუქმება</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-kaa/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-kaa/strings.xml new file mode 100644 index 0000000000..4c58d61726 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-kaa/strings.xml @@ -0,0 +1,134 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">YAQSHI</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Biykarlaw</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Bul bette qosımsha dialog aynalar jaratılıwına tıyım salıw</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Ornatıw</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Tazalaw</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Kiriw</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Paydalanıwshı atı</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Parol</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Saqlamaw</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Heshqashan saqlamaw</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Házir emes</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Saqlaw</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Jańalanbasın</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Jańalaw</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Parol qatarı bos bolmawı kerek</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Logindi saqlaw múmkin emes</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Logindi saqlayıq pa?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Bul login jańalansın ba?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Saqlaǵan parolge paydalanıwshı atı qosılsın ba?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Tekst kirgiziw maydanı ushın belgi</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Reńdi tańlań</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Ruqsat beriw</string> + + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Biykarlaw</string> + + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Isenimińiz kámil me?</string> + + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Bul sayttan shıǵıwdı qáleysiz be? Siz kirgizgen maǵlıwmat saqlanbawı múmkin</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Qalıw</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Shıǵıp ketiw</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Aydı tańlań</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Dáliw</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Hút</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Hamal</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Sáwir</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Jawza</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Saratan</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Áset</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Súmbile</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Miyzan</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Aqırap</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Qawıs</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Jeddi</string> + + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Waqıttı ornatıw</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Loginlerdi basqarıw</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Usınıs etilgen loginlerdi keńeytiw</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Usınıs etilgen loginlerdi qısqartıw</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Usınıs etilgen loginler</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Bul saytqa maǵlıwmatlar qayta jiberilsin be?</string> + <string name="mozac_feature_prompt_repost_message">Bul betti jańalaw nátiyjesinde pikir jazıw yamasa tólemdi jiberiw sıyaqlı sóńǵı háreketler qaytalanıwı múmkin.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Maǵlıwmatlardı qayta jiberiw</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Biykarlaw</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Bank kartasın tańlań</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Usınıs etilgen bank kartaların keńeytiw</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Usınıs etilgen bank kartaların qısqartıw</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Bank kartaların basqarıw</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Bul karta qáwipsiz saqlansın ba?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Karta ámel qılıw múddeti jańalansın ba?</string> + + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Karta nomeri shifrlenedi. Qupıyalıq kodı saqlanbaydı.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Mánzildi tańlań</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Usınıs etilgen mánzillerdi keńeytiriw</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Usınıs etilgen mánzillerdi qısqartıw</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Mánzillerdi basqarıw</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-kab/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-kab/strings.xml new file mode 100644 index 0000000000..dc9067b13a --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-kab/strings.xml @@ -0,0 +1,175 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">IH</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Sefsex</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Sewḥel asebter-agi seg ulday n tnaka n udiwenni nniḍen</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Sbadu</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Sfeḍ</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Kcem</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Isem n useqdac</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Awal uffir</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save" moz:removedIn="125" tools:ignore="UnusedResources">Ur seklas ara</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2">Mačči tura</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Urǧin sekles</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Mačči tura</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Sekles</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update" moz:removedIn="125" tools:ignore="UnusedResources">Ur leqqem ara</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2">Mačči tura</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Leqqem</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password" moz:removedIn="125" tools:ignore="UnusedResources">Urti n wawal uffir ur ilaq ara ad yili d ilem</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2">Sekcem awal uffir</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause" moz:removedIn="125" tools:ignore="UnusedResources">Ur yezmir ara ad isekles anekcum</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2">Ur sseklas ara awal uffir</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline" moz:removedIn="125" tools:ignore="UnusedResources">Sekles anekcum-agi?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2">Sekles awal uffir?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline" moz:removedIn="125" tools:ignore="UnusedResources">Leqqem anekcum-agi?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2">Leqqem awal uffir?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Rnu isem n useqdac ɣer wawal uffir yettwaskelsen?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Tacreḍt i tmerna n wurti n tira n uḍris</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Fren ini</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Sireg</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Gdel</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">S tidet?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Teffɣeḍ ad teffɣeḍ seg usmel-a? Isefka i teskecmeḍ yezmer ur ttwaseklasen ara</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Qqim</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Ffeɣ</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Fren aggur</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Yen</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Fuṛ</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Meɣ</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Yeb</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Maggu</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Yun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Yul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Ɣuc</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Cta</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Tub</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Wam</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Duj</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Sbadu akud</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins" moz:removedIn="125" tools:ignore="UnusedResources">Sefrek inekcam</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2">Sefrek awalen uffiren</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Sken-d inekcam isumar</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Ffer inekcam isumar</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins" moz:removedIn="125" tools:ignore="UnusedResources">Inekcam yettwasumren</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2">Awalen uffiren yettwakelsen</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">SuƔer awal uffir iǧehden</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Sumer awal uffir iǧehden</string> + + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Seqdec awan n uεeddi iǧehden: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Ales tuzna n yisefka ɣer usmel-a?</string> + <string name="mozac_feature_prompt_repost_message">Asmiren n usebter-a yezmer ad d-yerr tigawin n melmi kan, am tuzna n lexlaṣ neɣ asuffeɣ n uwennit snat tikkal.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Ales tuzna n yisefka</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Sefsex</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card" moz:removedIn="125" tools:ignore="UnusedResources">Fren takarḍa n usmad</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2">Seqdec tkarḍa yettwaskelsen</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Semɣer tikerḍiwin n usmad i d-yettusumren</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Fneẓ tikerḍiwin n usmad i d-yettusumren</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards" moz:removedIn="125" tools:ignore="UnusedResources">Sefrektikarḍiwin n usmad</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2">Sefrek tikarḍiwin</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Asekles n tkarḍa-a s wudem aɣellsan?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Leqqem azemz n keffu n tkarḍa?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body" moz:removedIn="125" tools:ignore="UnusedResources">Uṭṭun n tkarḍa ad yettwawgelhen. Tangalt n tɣellist ur tettwaseklas ara.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Fren tansa</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Snefli tansiwin d-yettwasumren</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Fneẓ tansiwin d-yettwasumren</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2">Fneẓ tansiwin i yettwaskelsen</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Sefrek tansiwin</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Tugna n umiḍan</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Fren asaǧǧăw n unekcum</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Qqen s umidan %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Seqdec %1$s am usaǧǧaw n tuqqna</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Tuqqna ɣer %1$s s umiḍan %2$s ad yili ddaw <a href="%3$s">Tsertit tabaḍnit</a> d <a href="%4$s">Tewtilin n useqdec</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Kemmel</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Sefsex</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-kk/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-kk/strings.xml new file mode 100644 index 0000000000..2dc4c617a5 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-kk/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ОК</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Бас тарту</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Бұл параққа қосымша сұхбаттарды жасауға тыйым салу</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Орнату</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Тазарту</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Кіру</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Пайдаланушы аты</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Пароль</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Сақтамау</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Қазір емес</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Ешқашан сақтамау</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Қазір емес</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Сақтау</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Жаңартпау</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Қазір емес</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Жаңарту</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Пароль өрісі бос болмауы тиіс</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Парольді енгізіңіз</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Логинді сақтау мүмкін емес</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Парольді сақтау мүмкін емес</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Бұл логинді сақтау керек пе?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Парольді сақтау керек пе?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Бұл логинді жаңарту керек пе?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Парольді жаңарту керек пе?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Пайдаланушы атын сақталған парольге қосу керек пе?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Мәтінді енгізу өрісінің белгісі</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Түсті таңдау</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Рұқсат ету</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Тыйым салу</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Сіз сенімдісіз бе?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Осы сайттан кеткіңіз келе ме? Сіз енгізген деректер сақталмауы мүмкін</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Қалу</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Кету</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Айды таңдау</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Қаң</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Ақп</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Нау</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Сәу</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Мам</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Мау</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Шіл</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Там</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Қыр</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Қаз</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Қар</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Жел</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Уақытты орнату</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Логиндерді басқару</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Парольдерді басқару</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Ұсынылған логиндерді жазық қылу</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Сақталған парольдерді жазық қылу</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Ұсынылған логиндерді қайыру</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Сақталған парольдерді бүктеу</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Ұсынылған логиндер</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Сақталған парольдер</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Мықты парольді ұсыну</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Мықты парольді ұсыну</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Мықты парольді қолдану: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Осы сайтқа деректерді қайта жіберу керек пе?</string> + <string name="mozac_feature_prompt_repost_message">Бұл парақты жаңарту төлемдерді жіберу немесе пікірді екі рет жіберу сияқты соңғы әрекеттерді қайталауы мүмкін.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Деректерді қайта жіберу</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Бас тарту</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Несиелік картаны таңдау</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Сақталған картаны пайдалану</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Ұсынылған несиелік карталарды жаю</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Сақталған карталарды жазық қылу</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Ұсынылған несиелік карталарды жию</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Сақталған карталарды бүктеу</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Несиелік карталарды басқару</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Карталарды басқару</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Бұл картаны қауіпсіз сақтау керек пе?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Картаның жарамдылық мерзімін жаңарту керек пе?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Карта нөмірі шифрленеді. Қауіпсіздік коды сақталмайды.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%sкартаңыздың нөмірін шифрлейді. Қауіпсіздік кодыңыз сақталмайтын болады.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Адресті таңдау</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Ұсынылған адрестерді жазық қылу</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Сақталған адрестерді жазық қылу</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Ұсынылған адрестерді бүктеу</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Сақталған адрестерді бүктеу</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Адрестерді басқару</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Тіркелгі суреті</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Жүйеге кіру провайдерін таңдау</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">%1$s тіркелгісімен кіру</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Жүйеге кіру провайдері ретінде %1$s қолдану</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ %2$s тіркелгісімен %1$s ішіне кіру олардың <a href="%3$s">Жекелік саясаты</a> және <a href="%4$s">Қолдану шарттарымен</a> реттеледі]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Жалғастыру</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Болдырмау</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-kmr/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-kmr/strings.xml new file mode 100644 index 0000000000..f8ee9e3735 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-kmr/strings.xml @@ -0,0 +1,170 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Baş e</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Betal bike</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Nehêle ku ev malper diyalogên ekstra çêbike</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Saz bike</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Paqij bike</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Têkeve</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Navê bikarhêner</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Pêborîn</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save" moz:removedIn="125" tools:ignore="UnusedResources">Tomar neke</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2">Ne niha</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Qet tomar neke</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ne niha</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Tomar bike</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update" moz:removedIn="125" tools:ignore="UnusedResources">Nûve neke</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2">Ne niha</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Nûve bike</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password" moz:removedIn="125" tools:ignore="UnusedResources">Divê qada pêborînê vala nemîne</string> + + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2">Şîfreyekê binivîse</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause" moz:removedIn="125" tools:ignore="UnusedResources">Hesab nehate tomarkirin</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2">Şîfre nayê tomarkirin</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline" moz:removedIn="125" tools:ignore="UnusedResources">Vî hesabî tomar bike?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2">Şîfreyê tomar bike?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline" moz:removedIn="125" tools:ignore="UnusedResources">Vî hesabî nûve bike?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2">Şîfreyê venû bike?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Navê bikarhêner tevlî pêborîna tomarkirî bike?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etîketa qada têketina metinê</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Rengekî hilbijêre</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Destûrê bide</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Red bike</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Bi rastî jî?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Tu dixwazî ji vê malperê derkevî? Dibe ku daneyên te têxistine neyên tomarkirin</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Lê bimîne</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Derkeve</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Mehekê hilbijêre</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Rêb</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Sib</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Ada</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Nîs</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Gul</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Hez</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Tîr</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Teb</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Îlo</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Cot</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Mij</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Ber</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Demê eyar bike</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins" moz:removedIn="125" tools:ignore="UnusedResources">Hesaban birêve bibe</string> + + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2">Şîfreyan bi krê ve bibe</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Hesabên pêşniyarkirî fireh bike</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2">Şîfreyên tomarkirî fireh bike</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Hesabên pêşniyarkirî teng bike</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2">Şîfreyên tomarkirî teng bike</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins" moz:removedIn="125" tools:ignore="UnusedResources">Hesabên pêşniyarkirî</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2">Şîdreyên tomarkirî</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Şîfreyên xurt pêşniyar bike</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Daneyan dîsa ji vê malperê re bişîne?</string> + <string name="mozac_feature_prompt_repost_message">Nûkirina vê rûpelê, dibe ku kirinên vê dawiyê ducar bike. (wekî; şandina pereyan an jî şandina şîroveyekê)</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Daneyan dîsa bişîne</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Betal bike</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card" moz:removedIn="125" tools:ignore="UnusedResources">Karta krediyê hilbijêre</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Kartên krediyê yên pêşniyarkirî fireh bike</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Kartên krediyê yên pêşniyarkirî teng bike</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards" moz:removedIn="125" tools:ignore="UnusedResources">Kartên krediyê bi rê ve bibe</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Vê kardê bi awayekî ewle hilînî?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Dîroka dawî ya kardê venû bikin?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body" moz:removedIn="125" tools:ignore="UnusedResources">Hejmara kardê dê bê şîfrekirin. Koda ewlekariyê dê neyê hilanîn.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Navnîşanê hilbijêre</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Navnîşanên pêşniyarkirî berfireh bike</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Hesabên pêşniyarkirî teng bike</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Navnîşanan bi rê ve bibe</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Wêneyê hesabî</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Peydakera têketinê hilbijêre</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Bi hesabekî %1$s têkevê</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">%1$sê wekî peydakera têketinê bi kar bîne</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Têketina %1$s bi hesabekî %2$s ve girêdayî <a href="%3$s">Siyaseta nepenîtiyê</a> û <a href="%4$s">Şertên karûbarê wan e. </a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Bidomîne</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Betal bike</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-kn/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-kn/strings.xml new file mode 100644 index 0000000000..57aab051b4 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-kn/strings.xml @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">ರದ್ದು ಮಾಡು</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">ಹೆಚ್ಚುವರಿ ಸಂವಾದ ಚೌಕಗಳನ್ನು ರಚಿಸದಂತೆ ಈ ಪುಟವನ್ನು ತಡೆ</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">ನಿಶ್ಚಯಿಸು</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">ಅಳಿಸು</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">ಸೈನ್ ಇನ್</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">ಬಳಕೆದಾರನ ಹೆಸರು</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">ಗುಪ್ತಪದ</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">ಉಳಿಸಬೇಡ</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">ಎಂದಿಗೂ ಉಳಿಸಬೇಡ</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">ಉಳಿಸು</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">ಪರಿಷ್ಕರಿಸಬೇಡ</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">ಪರಿಷ್ಕರಿಸು</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">ಪಾಸ್ವರ್ಡ್ ಕ್ಷೇತ್ರವು ಖಾಲಿಯಾಗಿರಬಾರದು</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">ಚಿತ್ರವನ್ನು ಉಳಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">ಈ ಲಾಗಿನ್ ಅನ್ನು ಉಳಿಸುವುದೇ?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">ಈ ಲಾಗಿನ್ ಅನ್ನು ನವೀಕರಿಸುವುದೇ?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">ಉಳಿಸಿದ ಪಾಸ್ವರ್ಡ್ಗೆ ಬಳಕೆದಾರಹೆಸರನ್ನು ಸೇರಿಸುವುದೇ?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">ಪಠ್ಯ ಇನ್ಪುಟ್ ಕ್ಷೇತ್ರವನ್ನು ನಮೂದಿಸಲು ಲೇಬಲ್</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">ಒಂದು ಬಣ್ಣವನ್ನು ಆರಿಸಿ</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">ಅನುಮತಿಸು</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">ನಿರಾಕರಿಸು</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">ನೀವು ಖಚಿತವೆ?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">ನೀವು ಈ ಸೈಟ್ ಅನ್ನು ಬಿಡಲು ಬಯಸುವಿರಾ? ನೀವು ನಮೂದಿಸಿದ ಡೇಟಾವನ್ನು ಉಳಿಸಲಾಗುವುದಿಲ್ಲ</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">ಉಳಿಯಿರಿ</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">ಹೊರನೆಡೆ</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">ತಿಂಗಳೊಂದನ್ನು ಆರಿಸಿ</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">ಜನವರಿ</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">ಫೆಬ್ರವರಿ</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">ಮಾರ್ಚ್</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">ಎಪ್ರಿಲ್</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">ಮೇ</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">ಜೂನ್</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">ಜುಲೈ</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">ಆಗಸ್ಟ್</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">ಸೆಪ್ಟೆಂಬರ್</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">ಅಕ್ಟೋಬರ್</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">ನವೆಂಬರ್</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">ಡಿಸೆಂಬರ್</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ko/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ko/strings.xml new file mode 100644 index 0000000000..69b227b800 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ko/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">확인</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">취소</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">이 페이지에서 추가 대화 상자 생성 막기</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">설정</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">지우기</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">로그인</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">사용자 이름</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">비밀번호</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">저장 안 함</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">나중에</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">저장 안 함</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">나중에</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">저장</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">업데이트 안 함</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">나중에</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">업데이트</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">비밀번호 필드는 비워 둘 수 없습니다</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">비밀번호 입력</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">로그인을 저장할 수 없음</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">비밀번호를 저장할 수 없음</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">이 로그인을 저장하시겠습니까?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">비밀번호를 저장하시겠습니까?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">이 로그인을 업데이트하시겠습니까?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">비밀번호를 업데이트하시겠습니까?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">저장된 비밀번호에 사용자 이름을 추가하시겠습니까?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">텍스트 입력을 위한 라벨</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">색상 선택</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">허용</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">거부</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">계속하시겠습니까?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">이 사이트를 나가시겠습니까? 입력한 데이터가 저장되지 않을 수 있습니다</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">유지</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">나가기</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">월 선택</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">1월</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">2월</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">3월</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">4월</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">5월</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">6월</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">7월</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">8월</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">9월</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">10월</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">11월</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">12월</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">시간 설정</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">로그인 관리</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">비밀번호 관리</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">제안된 로그인 펼치기</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">저장된 비밀번호 펼치기</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">제안된 로그인 접기</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">저장된 비밀번호 접기</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">제안된 로그인</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">저장된 비밀번호</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">강력한 비밀번호 제안</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">강력한 비밀번호 제안</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">강력한 비밀번호 사용: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">이 사이트로 데이터를 다시 보내시겠습니까?</string> + <string name="mozac_feature_prompt_repost_message">이 페이지를 새로 고침하면 결제를 두 번 보내거나 댓글을 두 번 게시하는 등 최근 작업이 중복될 수 있습니다.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">데이터 다시 보내기</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">취소</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">신용 카드 선택</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">저장된 카드 사용</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">제안된 신용 카드 펼치기</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">저장된 비밀번호 펼치기</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">제안된 신용 카드 접기</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">저장된 비밀번호 접기</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">신용 카드 관리</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">카드 관리</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">이 카드를 안전하게 저장하시겠습니까?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">카드 유효 기간을 업데이트하시겠습니까?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">카드 번호는 암호화됩니다. 보안 코드는 저장되지 않습니다.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s는 카드 번호를 암호화합니다. 보안 코드는 저장되지 않습니다.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">주소 선택</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">제안된 주소 펼치기</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">저장된 주소 펼치기</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">제안된 주소 접기</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">저장된 주소 접기</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">주소 관리</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">계정 사진</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">로그인 공급자 선택</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">%1$s 계정으로 로그인</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">로그인 공급자로 %1$s 사용</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ %2$s 계정으로 %1$s에 로그인하면 해당 계정의 <a href="%3$s">개인정보처리방침</a> 및 <a href="%4$s">서비스 약관</a>이 적용됩니다.]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">계속</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">취소</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-lij/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-lij/strings.xml new file mode 100644 index 0000000000..7b1c8bb127 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-lij/strings.xml @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Va ben</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Anulla</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">No fâ arvî atri barcoin de dialogo a sta pagina</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Inpòsta</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Scancella</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Intra</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nomme utente</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Poula segreta</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">No sarvâ</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Sarva</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">No agiornâ</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Agiorna</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Ti devi scrive \'na poula segreta</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">No pòsso sarvâ l\'acesso</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Sarvâ st\'acesso?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Agiornâ st\'acesso?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Azonze sto nomme utente a-e poule segrete sarvæ?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etichetta asociâ a un canpo de testo</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Çerni un cô</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permetti</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">No permette</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">T\'ê seguo?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Ti veu anâ via da-o scito? I dæti inserii porievan no ese sarvæ</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Stanni chi</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Vanni via</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Çerni un meize</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Zen</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Fre</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Arv</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Maz</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Zug</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Lug</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Agó</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Set</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Òtô</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dex</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-lo/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-lo/strings.xml new file mode 100644 index 0000000000..69dc7e9f93 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-lo/strings.xml @@ -0,0 +1,146 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ຕົກລົງ</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">ຍົກເລີກ</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">ປ້ອງກັນຫນ້ານີ້ບໍ່ໃຫ້ສະແດງໄດອະລັອກເພີ່ມອີກ</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">ຕັ້ງຄ່າ</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">ລົບລ້າງ</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">ເຂົ້າສູ່ລະບົບ</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">ຊື່ຜູ້ໃຊ້</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">ລະຫັດຜ່ານ</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">ບໍ່ບັນທຶກ</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">ບໍ່ຕ້ອງບັນທຶກ</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">ບໍ່ແມ່ນຕອນນີ້</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">ບັນທຶກ</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">ບໍ່ຕ້ອງອັບເດດ</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">ອັບເດດ</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">ປ່ອງປ້ອນລະຫັດຜ່ານຈະຕ້ອງບໍ່ຫວ່າງເປົ່າ</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">ບໍ່ສາມາດບັກທຶກການເຂົ້າສູ່ລະບົບໄດ້</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">ບັນທຶກການເຂົ້າສູ່ລະບົບນີ້ໄວ້ບໍ?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">ອັບເດດການເຂົ້າສູ່ລະບົບນີ້ບໍ?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">ເພີ່ມຊື່ຜູ້ໃຊ້ເພື່ອບັນທຶກລະຫັດຜ່ານໄວ້ບໍ?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">ປ້າຍກຳກັບສຳລັບການປ້ອນຂໍ້ມູນໃສ່ໃນຊ່ອງຂໍ້ຄວາມ</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">ເລືອກສີ</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">ອະນຸຍາດ</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">ປະຕິເສດ</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">ທ່ານແນ່ໃຈແລ້ວບໍ່?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">ທ່ານຕ້ອງການອອກຈາກເວັບໄຊທນີ້ບໍ? ຂໍ້ມູນທີ່ທ່ານໄດ້ປ້ອນໃສ່ອາດຈະບໍ່ໄດ້ຮັບການບັນທຶກ</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">ຢູ່</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">ອອກ</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">ເລືອກເດືອນ</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">ມັງກອນ</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">ກຸມພາ</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">ມີນາ</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">ເມສາ</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">ພຶດສະພາ</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">ມິຖຸນາ</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">ກໍລະກົດ</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">ສິງຫາ</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">ກັນຍາ</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">ຕຸລາ</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">ພະຈິກ</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">ທັນວາ</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">ກໍານົດເວລາ</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">ຈັດການການເຂົ້າສູ່ລະບົບ</string> + + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">ຂະຫຍາຍການເຂົ້າສູ່ລະບົບທີ່ແນະນຳ</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">ຍຸບການເຂົ້າສູ່ລະບົບທີ່ແນະນຳ</string> + + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">ການລັອກອິນທີ່ໄດ້ຮັບການແນະນຳ</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">ສົ່ງຂໍ້ມູນຄືນສູ່ເວັບໄຊທນີ້ອີກບໍ?</string> + <string name="mozac_feature_prompt_repost_message">ການລີເຟສຫນ້ານີ້ອາດຈະເຮັດໃຫ້ການກະທຳກ່ອນຫນ້ານີ້ຊໍ້າກັນເຊັ່ນວ່າ: ການສົ່ງລາຍການຈ່າຍເງິນ ຫລື ການໂພສຄອມເມັ້ນ 2 ຄັ້ງ.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">ສົ່ງຂໍ້ມູນຄືນໃຫມ່</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">ຍົກເລີກ</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">ເລືອກບັດເຄດິດ</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">ຂະຫຍາຍການແນະນຳຂອງບັດເຄດິດ</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">ຍຸບການແນະນຳຂອງບັດເຄດິດ</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">ຈັດການບັດເຄດິດ</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">ຕ້ອງການບັນທຶກບັດນີ້ຢ່າງປອດໄພຫລືບໍ?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">ຕ້ອງການອັບເດດວັນໝົດອາຍຸຂອງບັດບໍ?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">ໝາຍເລກບັດຈະຖືກເຂົ້າລະຫັດ. ລະຫັດຄວາມປອດໄພຈະບໍ່ຖືກບັນທຶກໄວ້.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">ເລືອກທີ່ຢູ່</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">ຂະຫຍາຍທີ່ຢູ່ທີ່ແນະນຳ</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">ຫຍໍ້ທີ່ຢູ່ທີ່ແນະນຳ</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">ຈັດການທີ່ຢູ່</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">ຮູບບັນຊີ</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">ເລືອກຜູ້ໃຫ້ບໍລິການເຂົ້າສູ່ລະບົບ</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">ເຂົ້າສູ່ລະບົບດ້ວຍບັນຊີ %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">ໃຊ້ %1$s ເປັນຜູ້ໃຫ້ບໍລິການເຂົ້າສູ່ລະບົບ</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ການເຂົ້າສູ່ລະບົບ %1$s ດ້ວຍບັນຊີ %2$s ແມ່ນຢູ່ພາຍໃຕ້ <a href="%3$s">ນະໂຍບາຍຄວາມເປັນສ່ວນຕົວ</a> ແລະ <a href="%4$s">ເງື່ອນໄຂການໃຫ້ບໍລິການ </a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">ສືບຕໍ່</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">ຍົກເລີກ</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-lt/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-lt/strings.xml new file mode 100644 index 0000000000..dfba6170a3 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-lt/strings.xml @@ -0,0 +1,130 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Gerai</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Atsisakyti</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Nebeleisti šiam tinklalapiui kurti naujų dialogo langų</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Nustatyti</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Išvalyti</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Prisijunkite</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Naudotojo vardas</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Slaptažodis</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Neįsiminti</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Niekada neįrašyti</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ne dabar</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Įsiminti</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Neatnaujinti</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Atnaujinti</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Slaptažodžio laukas negali būti tuščias</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Nepavyko įrašyti prisijungimo</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Įrašyti šį prisijungimą?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Atnaujinti šį prisijungimą?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Pridėti naudotojo vardą prie įrašyto slaptažodžio?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Teksto įvesties lauko pavadinimas</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Pasirinkite spalvą</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Leisti</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Drausti</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Ar tikrai to norite?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Ar tikrai norite užverti šią svetainę? Jūsų įvesti duomenys gali būti neįrašyti</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Likti</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Išeiti</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Nurodykite mėnesį</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Sau</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Vas</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Kov</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Bal</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Geg</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Bir</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Lie</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Rgp</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Rgs</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Spa</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Lap</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Grd</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Nustatyti laiką</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Tvarkyti prisijungimus</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Išskleisti siūlomus prisijungimus</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Suskleisti siūlomus prisijungimus</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Siūlomi prisijungimai</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Dar kartą siųsti duomenis į šią svetainę?</string> + <string name="mozac_feature_prompt_repost_message">Šio tinklalapio įkėlimas iš naujo gali pakartoti paskiausius veiksmus, tokius kaip mokėjimo nusiuntimas ar komentaro parašymas.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Persiųsti duomenis</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Atsisakyti</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Pasirinkite mokėjimo kortelę</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Išskleisti siūlomas mokėjimo korteles</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Suskleisti siūlomas mokėjimo korteles</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Tvarkyti mokėjimo korteles</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Saugiai išsaugoti šią kortelę?</string> + + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Atnaujinti kortelės galiojimo datą?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Kortelės numeris bus užšifruotas. Saugos kodas nebus išsaugotas.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Pasirinkite adresą</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Išskleisti siūlomus adresus</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Sutraukti siūlomus adresus</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Tvarkyti adresus</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-mix/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-mix/strings.xml new file mode 100644 index 0000000000..b81c10ce38 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-mix/strings.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Vaá</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Kunchatu</string> + + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Stòo</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Tu un seè</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Chika vaá</string> + + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Yoo u un</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ml/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ml/strings.xml new file mode 100644 index 0000000000..3f1aae6abc --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ml/strings.xml @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ശരി</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">റദ്ദാക്കുക</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">അധിക ഡയലോഗുകൾ സൃഷ്ടിക്കുന്നതിൽ നിന്ന് ഈ പേജിനെ തടയുക</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">ക്രമീകരിക്കുക</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">മായ്ക്കുക</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">പ്രവേശിക്കുക</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">ഉപയോക്തൃനാമം</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">രഹസ്യവാക്ക്</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">സൂക്ഷിക്കേണ്ട</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">സൂക്ഷിക്കുക</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">പുതുക്കേണ്ടതില്ല</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">പുതുക്കുക</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">രഹസ്യവാക്ക് ശൂന്യമായിരിക്കരുത്</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">ലോഗിൻ സൂക്ഷിക്കുവാനായില്ല</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">ഈ ലോഗിൻ സംരക്ഷിക്കണോ?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">ഈ ലോഗിൻ പുതുക്കണോ?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">സംരക്ഷിച്ച രഹസ്യവാക്കിലേക്ക് ഉപയോക്തൃനാമം ചേർക്കണോ?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">ഒരു വാചക ഇൻപുട്ട് ഫീൽഡ് നൽകുന്നതിനുള്ള ലേബൽ</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">ഒരു നിറം തിരഞ്ഞെടുക്കുക</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">അനുവദിക്കുക</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">നിരസിക്കുക</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">താങ്കൾക്ക് ഉറപ്പാണോ?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">നിങ്ങൾക്ക് ഈ സൈറ്റ് വിടണോ? നിങ്ങൾ നൽകിയ ഡാറ്റ സംരക്ഷിച്ചേക്കില്ല</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">തുടരുക</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">വിടുക</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">ഒരു മാസം തിരഞ്ഞെടുക്കുക</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">ജനു</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">ഫെബ്രു</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">മാർ</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">ഏപ്രി</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">മെയ്</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">ജൂൺ</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">ജൂലൈ</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">ഓഗ</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">സെപ്തം</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">ഒക്ടോ</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">നവം</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">ഡിസം</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-mr/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-mr/strings.xml new file mode 100644 index 0000000000..984e1ad59f --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-mr/strings.xml @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ठीक आहे</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">रद्द करा</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">या पृष्ठास अतिरिक्त संवाद तयार करण्यापासून प्रतिबंधित करा</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">निश्चित करा</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">पुसा</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">साइन इन करा</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">वापरकर्ता नाव</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">पासवर्ड</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">जतन करू नका</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">कधीही जतन करू नका</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">जतन करा</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">अद्यावत करू नका</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">अद्ययावत करा</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">पासवर्ड क्षेत्र रिक्त नसावे</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">लॉगिन जतन करण्यात अक्षम</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">हे लॉगिन जतन करायचे?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">हे लॉगिन अद्यतन करायचे?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">जतन केलेल्या संकेतशब्दामध्ये वापरकर्तानाव जोडायचे?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">मजकूर इनपुट फील्ड प्रविष्ट करण्यासाठी लेबल</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">एक रंग निवडा</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">परवानगी द्या</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">नकारा</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">आपणास खात्री आहे का?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">आपण ही साइट सोडू इच्छिता? आपण प्रविष्ट केलेला डेटा कदाचित जतन केला जाणार नाही</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">थांबा</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">सोडा</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">महिना निवडा</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">जाने</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">फेब्रु</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">मार्च</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">एप्रिल</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">मे</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">जून</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">जुलै</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">ऑगस्ट</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">सप्टें</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">ऑक्टो</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">नोव्हें</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">डिसें</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">लॉगिन व्यवस्थापित करा</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">सूचित लॉगिन विस्तृत करा</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">सूचित लॉगिन संकुचित करा</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">सूचित लॉगिन</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">या साइटवर डेटा पुन्हा पाठवायचा?</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">डेटा पुन्हा पाठवा</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">रद्द करा</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-my/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-my/strings.xml new file mode 100644 index 0000000000..bc07bc46a3 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-my/strings.xml @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">အိုကေ</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">ပယ်ဖျက်ပါ</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">ဤစာမျက်နှာအား နောက်ထပ် ဒိုင်ယာလော့ဂ်များ ဖန်တီးခြင်းမှ ပိတ်ထားမည်</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">သတ်မှတ်ရန်</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">ရှင်းလင်းပါ</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">၀င်ပါ</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">သုံးစွဲသူ အမည်</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">စကားဝှက်</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">မသိမ်းပါနဲ့</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">ဘယ်တော့မျှ မသိမ်းပါ</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">သိမ်းပါ</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">မပြင်ဆင် ပါနှင့်</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">ပြင်ဆင်ပါ</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">လျှို့ဝှက်နံပါတ်ဖြည့်စွက်ပေးပါ</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">လော့အင်ကိုမသိမ်းဆည်းနိုင်ပါ</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">ဤ ဝင်ရောက်မှု ကို သိမ်းမည်လား။</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">ဤ ဝင်ရောက်မှု ကို ပြင်ဆင်မည်လား?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">အခု သုံးဆွဲသူအား သိမ်းထားမည်လား?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">စာသားထည့်သွင်းရန်ပြထားသောလမ်းညွှန်စာသား</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">အရောင်ရွေးပါ</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">ခွင့်ပြုပါ</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">တားမြစ်ပါ</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">သင် သေချာ သလား?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">ဒီ ဆိုက် မှ ထွက်လို သလား? သင် ထည့်သွင်းသော အချက်အလက်များ မသိမ်းရသေးပါ။</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">နေမည်</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">ထွက်ခွာမည်</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">လ အားရွေးပါ</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">ဇန်နဝါရီ</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">ဖေဖော်ဝါရီ</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">မတ်</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">ဧပြီ</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">မေ</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">ဇွန်</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">ဇူလိုင်</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">သြဂုတ်</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">စက်တင်ဘာ</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">အောက်တိုဘာ</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">နိုဝင်ဘာ</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">ဒီဇင်ဘာ</string> + + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">လော့အင် များ စီမံပါ</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">အကြံပြု လော့အင် များ ကို ဖြန့်ချပါ</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">အကြံပြု လော့အင်များ ကို ပြန်သိမ်းပါ</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">အကြံပြုထားသော လော့အင်များ</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">ဤ ဆိုက် သို့ အချက်အလက်များ ပြန်ပို့မည်လား။</string> + <string name="mozac_feature_prompt_repost_message">ဤ စာမျက်နှာအား ပြန်လည်စတင်ခြင်းသည် ငွေပေးချေခြင်း သို့မဟုတ် မှက်ချက်များတင်ခြင်းကဲ့သို့သော လက်တလောလုပ်ဆောင်ချက်များအား နှစ်ကြိမ်ဖြစ်စေနိုင်သည်။</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">အချက်အလက် ပြန်ပို့ ရန်</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">ပယ်ဖျက်ပါ</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">အကြွေးဝယ်ကဒ် ကိုရွေးပါ။</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">အကြုံပြုထားသော အကြွေးဝယ်ကတ်များကို ဖြန့်ချပါ</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">အကြုံပြုထားသော အကြွေးဝယ်ကတ်များကို ပြန်သိမ်းပါ</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">အကြွေးဝယ်ကတ်များကို စီမံပါ</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-nb-rNO/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-nb-rNO/strings.xml new file mode 100644 index 0000000000..a35beb81bf --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-nb-rNO/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Avbryt</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Forhindre dette nettstedet fra å lage flere dialoger</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Angi</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Tøm</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Logg inn</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Brukernavn</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Passord</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Ikke lagre</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Ikke nå</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Lagre aldri</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ikke nå</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Lagre</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Ikke oppdater</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Ikke nå</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Oppdater</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Passordfeltet kan ikke stå tomt</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Skriv inn et passord</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Klarte ikke å lagre innloggingen</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Kan ikke lagre passordet</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Lagre denne innloggingen?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Lagre passord?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Vil du oppdatere denne innloggingen?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Oppdatere passord?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Vil du legge til brukernavn til lagret passord?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etikett for utfylling av et skrivefelt</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Velg en farge</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Tillat</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Avvis</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Er du sikker?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Vil du forlate dette nettstedet? Data du har lagt inn, blir kanskje ikke lagret</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Bli</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Forlat</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Velg en måned</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mai</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Aug</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Des</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Angi tid</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Behandle innlogginger</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Behandle passord</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Utvid foreslåtte innlogginger</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Utvid lagrede passord</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Slå sammen foreslåtte innlogginger</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Skjul lagrede passord</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Foreslåtte innlogginger</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Lagrede passord</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Foreslå sterkt passord</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Foreslå sterkt passord</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Bruk sterkt passord: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Send data på nytt til dette nettstedet?</string> + <string name="mozac_feature_prompt_repost_message">Oppdatering av denne siden kan duplisere nylige handlinger, for eksempel å sende en betaling eller legge igjen en kommentar to ganger.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Send data på nytt</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Avbryt</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Velg betalingskort</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Bruk lagret kort</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Utvid foreslåtte betalingskort</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Utvid lagrede kort</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Slå sammen foreslåtte betalingskort</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Skjul lagrede kort</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Behandle betalingskort</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Behandle kort</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Lagre dette kortet trygt?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Oppdatere kortets utløpsdato?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Kortnummer vil bli kryptert. Sikkerhetskoden blir ikke lagret.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s krypterer kortnummeret ditt. Sikkerhetskoden din blir ikke lagret.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Velg adresse</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Utvid foreslåtte adresser</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Utvid lagrede adresser</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Slå sammen foreslåtte adresser</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Skjul lagrede adresser</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Behandle adresser</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Kontobilde</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Velg en innloggingsleverandør</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Logg på med en %1$s-konto</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Bruk %1$s som innloggingsleverandør</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Å logge på %1$s med en %2$s-konto er underlagt deres <a href="%3$s">personvernbestemmelser</a> og <a href="%4$s">tjenestevilkår</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Fortsett</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Avbryt</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ne-rNP/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ne-rNP/strings.xml new file mode 100644 index 0000000000..b47563813a --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ne-rNP/strings.xml @@ -0,0 +1,111 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">टीक छ</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">रद्द गर्नुहोस्</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">यस पृष्ठलाई थप संवादहरू सिर्जना हुनबाट रोक्नुहोस्</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">सेट गर्नुहोस्</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">खाली गर्नुहोस्</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">साइन इन</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">प्रयोगकर्ताको नाम</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">पासवर्ड</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">सेभ नगर्नुहोस्</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">कहिल्यै सेभ नगर्नुहोस्</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">सेभ</string> + + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">अद्यावधिक नगर्नुहोस्</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">अद्यावधिक</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">पासवर्ड लेख्ने ठाउँ खाली राख्न हुँदैन</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">लगइन सेभ गर्न सकिएन</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">यो लगइन सेभ गर्न चाहानुहुन्छ ?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">यो लगइन अद्यावधिक गर्न चाहानुहुन्छ ?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">सेभ गरिएको पासवर्डमा प्रयोगकर्ता नाम थप्न चाहानुहुन्छ ?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">अक्षर आगत क्षेत्र प्रविष्ट गर्नको लागि लेबल</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">एउटा रङ्ग छान्नुहोस्</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">अनुमति दिनुहोस्</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">अस्वीकार गर्नुहोस्</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">के तपाईँ निश्चित हुनुहुन्छ ?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">के तपाईं यो साइट छोड्न चाहनुहुन्छ? तपाईंले प्रविष्ट गर्नुभएको डाटा सेभ नहुन पनि सक्छ</string> + + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">यहि रहनुहोस्</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">छोड्नुहोस्</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">कुनै एउटा महिना छान्नुहोस्</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">जनवरी</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">फेब्रुअरी</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">मार्च</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">अप्रिल</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">मे</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">जुन</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">जुलाई</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">अगस्ट</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">सेप्टेम्बर</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">अक्टोबर</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">नोभेम्बर</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">डिसेम्बर</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">लगइनहरु प्रबन्ध गर्नुहोस्</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">सुझाब गरिएका लगइनहरू विस्तार गर्नुहोस्</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">सुझाब गरिएका लगइनहरू संक्षिप्त गर्नुहोस्</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">सुझाब गरिएका लगइनहरु</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">यस साइटमा डाटा पुन: पठाउन चाहानुहुन्छ?</string> + <string name="mozac_feature_prompt_repost_message">यो पृष्ठ ताजा गर्दा अहिलेका कार्यहरू नक्कल हुन सक्छ, जस्तै भुक्तानी पठाउने वा दुई पटक टिप्पणी पोष्ट गर्ने।</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">डाटा पुन: पठाउनुहोस्</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">रद्द गर्नुहोस्</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">क्रेडिट कार्ड छान्नुहोस्</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">सुझाव गरिएका क्रेडिट कार्डहरू विस्तार गर्नुहोस्</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">सुझाव गरिएका क्रेडिट कार्डहरू संक्षिप्त गर्नुहोस्</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings --> + <string name="mozac_feature_prompts_manage_credit_cards">क्रेडिट कार्डहरू ब्यवस्थापन गर्नुहोस्</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-nl/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-nl/strings.xml new file mode 100644 index 0000000000..8f4e475773 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-nl/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Annuleren</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Voorkomen dat deze pagina extra dialoogvensters maakt</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Instellen</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Wissen</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Aanmelden</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Gebruikersnaam</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Wachtwoord</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Niet opslaan</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Niet nu</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Nooit opslaan</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Niet nu</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Opslaan</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Niet bijwerken</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Niet nu</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Bijwerken</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Wachtwoordveld mag niet leeg zijn</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Vul een wachtwoord in</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Kan aanmelding niet opslaan</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Kan wachtwoord niet opslaan</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Deze aanmelding opslaan?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Wachtwoord opslaan?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Deze aanmelding bijwerken?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Wachtwoord bijwerken?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Gebruikersnaam aan opgeslagen wachtwoord toevoegen?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Label voor het invullen van een tekstinvoerveld</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Kies een kleur</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Toestaan</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Weigeren</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Weet u het zeker?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Wilt u deze website verlaten? Ingevoerde gegevens worden mogelijk niet opgeslagen</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Blijven</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Verlaten</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Kies een maand</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">mrt</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">mei</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">aug</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">dec</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Tijd instellen</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Aanmeldingen beheren</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Wachtwoorden beheren</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Voorgestelde aanmeldingen uitvouwen</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Opgeslagen wachtwoorden uitvouwen</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Voorgestelde aanmeldingen inklappen</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Opgeslagen wachtwoorden inklappen</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Voorgestelde aanmeldingen</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Opgeslagen wachtwoorden</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Sterk wachtwoord voorstellen</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Sterk wachtwoord voorstellen</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Sterk wachtwoord gebruiken: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Gegevens opnieuw naar deze website verzenden?</string> + <string name="mozac_feature_prompt_repost_message">Het opnieuw laden van deze pagina kan recente acties dupliceren, zoals het verzenden van een betaling of het tweemaal plaatsen van een bericht.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Gegevens opnieuw verzenden</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Annuleren</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Selecteer creditcard</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Opgeslagen kaart gebruiken</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Voorgestelde creditcards uitbreiden</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Opgeslagen kaarten uitvouwen</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Voorgestelde creditcards inklappen</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Opgeslagen kaarten inklappen</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Creditcards beheren</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Kaarten beheren</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Deze kaart veilig opslaan?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Vervaldatum kaart bijwerken?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Het kaartnummer wordt versleuteld. De beveiligingscode wordt niet opgeslagen.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s versleutelt uw kaartnummer. Uw beveiligingscode wordt niet opgeslagen.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Adres selecteren</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Voorgestelde adressen uitvouwen</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Opgeslagen adressen uitvouwen</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Voorgestelde adressen inklappen</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Opgeslagen adressen inklappen</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Adressen beheren</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Accountafbeelding</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Kies een aanmeldprovider</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Aanmelden met een %1$s-account</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">%1$s als aanmeldprovider gebruiken</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Aanmelding bij %1$s met een %2$s-account valt onder hun <a href="%3$s">Privacybeleid</a> en <a href="%4$s">Servicevoorwaarden</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Doorgaan</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Annuleren</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-nn-rNO/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-nn-rNO/strings.xml new file mode 100644 index 0000000000..6266243205 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-nn-rNO/strings.xml @@ -0,0 +1,174 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Avbryt</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Hindre denne nettsaden frå å lage fleire dialogar</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Spesifiser</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Tøm</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Logg inn</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Brukarnamn</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Passord</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save" moz:removedIn="125" tools:ignore="UnusedResources">Ikkje lagre</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2">Ikkje no</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Lagre aldri</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ikkje no</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Lagre</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update" moz:removedIn="125" tools:ignore="UnusedResources">Ikkje oppdater</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2">Ikkje no</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Oppdater</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password" moz:removedIn="125" tools:ignore="UnusedResources">Passordfeltet kan ikkje stå tomt</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2">Skriv inn passord</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause" moz:removedIn="125" tools:ignore="UnusedResources">Klarte ikkje å lagre innlogginga</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline" moz:removedIn="125" tools:ignore="UnusedResources">Lagre denne innlogginga?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2">Lagre passord?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline" moz:removedIn="125" tools:ignore="UnusedResources">Vil du oppdatere denne innlogginga?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2">Oppdatere passord?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Leggje brukarnamn til lagra passord?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etikett for utfylling av eit skrivefelt</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Vel ein farge</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Tillat</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Avvis</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Er du sikker?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Vil du forlate denne nettstaden Data du har lagt inn, vert kanskje ikkje lagra</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Bli</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Forlat</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Vel ein månad</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mai</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Aug</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Des</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Oppgi tid</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins" moz:removedIn="125" tools:ignore="UnusedResources">Handsam innloggingar</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2">Handsam passord</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Utvid føreslåtte innloggingar</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2">Utvid lagra passord</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Slå saman føreslåtte innloggingar</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins" moz:removedIn="125" tools:ignore="UnusedResources">Føreslåtte innloggingar</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2">Lagra passord</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Føreslå sterkt passord</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Føreslå sterkt passord</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Bruk sterkt passord: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Sende data på nytt til denne nettstaden?</string> + <string name="mozac_feature_prompt_repost_message">Oppdatering av denne sida kan duplisere nylege handlingar, til dømes å sende ei betaling eller leggje igjen ein kommentar to gongar.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Send data på nytt</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Avbryt</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card" moz:removedIn="125" tools:ignore="UnusedResources">Vel betalingskort</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2">Bruk lagra kort</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Utvid føreslått betalingskort</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Minimer føreslått betalingskort</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards" moz:removedIn="125" tools:ignore="UnusedResources">Handsam betalingskort</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2">Handsam kort</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Lagre dette kortet trygt?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Oppdatere siste bruksdato for kortet?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body" moz:removedIn="125" tools:ignore="UnusedResources">Kortnummeret vil bli kryptert. Tryggingskoden vert ikkje lagra.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Vel adresse</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Utvid føreslåtte adresser</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2">Utvid lagra adresser</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Slå saman føreslåtte adresser</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Handsam adresser</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Kontobilde</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Vel ein innloggingsleverandør</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Log inn med ein %1$s-konto</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Bruk %1$s som innloggingsleverandør</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Å logge på %1$s med ein %2$s-konto er underlagt <a href="%3$s">personvernerklæringa</a> og <a href="%4$s">tenestevilkåra</a> deira]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Fortset</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Avbryt</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-oc/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-oc/strings.xml new file mode 100644 index 0000000000..f835c12ef6 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-oc/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">D’acòrdi</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Anullar</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Empachar aquesta pagina de dobrir de dialògs suplementaris</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Definir</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Escafar</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Se connectar</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nom d’utilizaire</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Senhal</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Enregistrar pas</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Pas ara</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Enregistrar pas jamai</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Pas ara</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Enregistrar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Metre pas a jorn</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Pas ara</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Metre a jorn</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Lo camp senhal pòt pas èsser void</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Picatz un senhal</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Impossible d’enregistrar l’identificant</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Enregistrament de senhal impossible</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Salvar aqueste identificant ?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Salvar lo senhal ?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Metre a jorn aqueste identificant ?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Actualizar lo senhal ?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Apondre un nom d’utilizaire al senhal salvat ?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etiqueta per la creacion d’un camp de picada de tèxt</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Causir una color</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Autorizar</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Refusar</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">O confirmatz ?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Volètz quitar aqueste site ? Las donadas qu’ajatz picadas seràn benlèu pas enregistradas.</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Demorar</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Quitar</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Causir un mes</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Gen</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Març</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Abril</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mai</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Junh</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Julh</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Ago</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Set</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Oct</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dec</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Causida del temps</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Gerir los identificants</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Gerir los senhals</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Espandir los identificants suggerits</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Desplegar los senhals salvats</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Plegar los identificants suggerits</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Plegar los senhals salvats</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Identificants recomandats</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Senhals salvats</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Suggerir un senhal fòrt</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Suggerir un senhal fòrt</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Utilizar un senhal fòrt : %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Tornar enviar las donadas a aqueste site ?</string> + <string name="mozac_feature_prompt_repost_message">L’actualizacion d’aquesta pagina poiriá menar a la duplicacion d’accions recentas coma enviar un pagament o publicar un comentari dos còps.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Tornar enviar</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Anullar</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Seleccionar carta de crèdit</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Utilizar una carta enregistrada</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Espandir las cartas de crèdit suggeridas</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Desplegar las cartas enregistradas</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Plegar las cartas de crèdit suggeridas</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Plegar las cartas enregistradas</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Gerir las cartas de crèdit</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Gerir las cartas</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Salvar d’un biais segur aquesta carta ?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Actualizar la data d’expiracion de la carta ?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Los numèros de carta son chifrats. Se gardarà pas lo còdi de seguretat.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s chifra lo numèro de carta. Lo còdi de seguretat s’enregistrarà pas.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Seleccion d’adreça</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Espandir las adreças suggeridas</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Desplegar las adreças enregistradas</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Plegar las adreças suggeridas</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Plegar las adreças enregistradas</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Gestion de las adreças</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Imatge del compte</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Causir un provesidor d’identificants</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Se connectar amb un compte %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Causir %1$s coma provesidor d’identificants</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[La connexion a %1$s amb un compte %2$s es somesa a la <a href="%3$s">politica de confidencialitat</a> e a las <a href="%4$s">condicions d’utilizacion</a> d’aqueste.]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Contunhar</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Anullar</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-or/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-or/strings.xml new file mode 100644 index 0000000000..37034a6663 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-or/strings.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ଠିକ୍ ଅଛି</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">ବାତିଲ କରନ୍ତୁ</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">ଉପଭୋକ୍ତାଙ୍କ ନାମ</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">ପାସ୍ୱାର୍ଡ଼</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">ପାସ୍ୱାର୍ଡ଼ ଖାଲି ଛଡ଼ାଯିବା ଉଚିତ୍ ନୁହେଁ</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">ସଞ୍ଚିତ ପାସ୍ୱାର୍ଡ଼ ପାଇଁ ଉପଭୋକ୍ତାଙ୍କ ନାମ ଯୋଡ଼ିବେ?</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">ଏକ ରଙ୍ଗ ବାଛନ୍ତୁ</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">ଆପଣ ନିଶ୍ଚିତ ଅଛନ୍ତି ତ?</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">ରୁହନ୍ତୁ</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">ଛାଡ଼ନ୍ତୁ</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">ମାସ ବାଛନ୍ତୁ</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">ଜାନୁ</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">ଫେବୃ</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">ମାର୍ଚ୍ଚ</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">ଅପ୍ରେ</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">ମଇ</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">ଜୁନ</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">ଜୁଲା</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">ଅଗଷ୍ଟ</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">ସେପ୍ଟେ</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">ଅକ୍ଟୋ</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">ନଭେ</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">ଡିସେ</string> + + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">ବାତିଲ କରନ୍ତୁ</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-pa-rIN/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-pa-rIN/strings.xml new file mode 100644 index 0000000000..8cc587826d --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-pa-rIN/strings.xml @@ -0,0 +1,188 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ਠੀਕ ਹੈ</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">ਰੱਦ ਕਰੋ</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">ਇਸ ਸਫ਼ੇ ਨੂੰ ਹੋਰ ਡਾਈਲਾਗ ਬਣਾਉਣ ਤੋਂ ਰੋਕੋ</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">ਸੈੱਟ ਕਰੋ</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">ਸਾਫ਼ ਕਰੋ</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">ਸਾਈਨ ਇਨ</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">ਵਰਤੋਂਕਾਰ ਨਾਂ</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">ਪਾਸਵਰਡ</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">ਨਾ ਸੰਭਾਲੋ</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">ਹੁਣੇ ਨਹੀਂ</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">ਕਦੇ ਨਾ ਸੰਭਾਲੋ</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">ਹੁਣੇ ਨਹੀਂ</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">ਸੰਭਾਲੋ</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">ਅੱਪਡੇਟ ਨਾ ਕਰੋ</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">ਹੁਣੇ ਨਹੀਂ</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">ਅੱਪਡੇਟ ਕਰੋ</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">ਪਾਸਵਰਡ ਖੇਤਰ ਖਾਲੀ ਨਹੀਂ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">ਪਾਸਵਰਡ ਦਿਓ</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">ਲਾਗਇਨ ਸੰਭਾਲਣ ਲਈ ਅਸਮਰੱਥ</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">ਪਾਸਵਰਡ ਸੰਭਾਲਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ ਹੈ</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">ਇਹ ਲਾਗਇਨ ਸੰਭਾਲਣਾ ਹੈ?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">ਪਾਸਵਰਡ ਸੰਭਾਲਣਾ ਹੈ?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">ਇਹ ਲਾਗਇਨ ਅੱਪਡੇਟ ਕਰਨਾ ਹੈ?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">ਪਾਸਵਰਡ ਅੱਪਡੇਟ ਕਰਨਾ ਹੈ?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">ਵਰਤੋਂਕਾਰ-ਨਾਂ ਨੂੰ ਸੰਭਾਲੇ ਪਾਸਵਰਡ ਵਿੱਚ ਜੋੜਨਾ ਹੈ?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">ਲਿਖਣ ਵਾਲੇ ਖਾਨੇ ਵਿੱਚ ਜਾਣ ਲਈ ਲੇਬਲ</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">ਰੰਗ ਚੁਣੋ</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">ਆਗਿਆ ਦਿਓ</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">ਇਨਕਾਰ ਕਰੋ</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">ਕੀ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">ਕੀ ਤੁਸੀਂ ਇਹ ਸਾਈਟ ਛੱਡਣਾ ਚਾਹੁੰਦੇ ਹੋ? ਤੁਹਾਡੇ ਵਲੋਂ ਦਿੱਤਾ ਡਾਟਾ ਸੰਭਾਲਿਆ ਨਹੀਂ ਵੀ ਗਿਆ ਹੋ ਸਕਦਾ ਹੈ</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">ਇੱਥੇ ਹੀ ਰਹੋ</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">ਛੱਡੋ</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">ਮਹੀਨਾ ਚੁਣੋ</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">ਜਨ</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">ਫਰ</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">ਮਾਰਚ</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">ਅਪ</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">ਮਈ</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">ਜੂਨ</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">ਜੁਲ</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">ਅਗ</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">ਸਤੰ</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">ਅਕਤੂ</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">ਨਵੰ</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">ਦਸੰ</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">ਸਮਾਂ ਸੈੱਟ ਕਰੋ</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">ਲਾਗਇਨਾਂ ਦਾ ਇੰਤਜ਼ਾਮ</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">ਪਾਸਵਰਡਾਂ ਦਾ ਇੰਤਜ਼ਾਮ</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">ਸੁਝਾਏ ਲਾਗਇਨ ਫੈਲਾਓ</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">ਸੰਭਾਲੇ ਹੋਏ ਪਾਸਵਰਡਾਂ ਨੂੰ ਫੈਲਾਓ</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">ਸੁਝਾਏ ਲਾਗਇਨ ਸਮੇਟੋ</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">ਸੰਭਾਲੇ ਹੋਏ ਪਾਸਵਰਡਾਂ ਨੂੰ ਸਮੇਟੋ</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">ਸੁਝਾਏ ਗਏ ਲਾਗਇਨ</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">ਸੰਭਾਲੇ ਹੋਏ ਪਾਸਵਰਡ</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">ਮਜ਼ਬੂਤ ਪਾਸਵਰਡ ਲਈ ਸੁਝਾਅ</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">ਮਜ਼ਬੂਤ ਪਾਸਵਰਡ ਲਈ ਸੁਝਾਅ</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">ਮਜ਼ਬੂਤ ਪਾਸਵਰਡ ਨੂੰ ਵਰਤੋਂ: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">ਇਸ ਸਾਈਟ ਲਈ ਡਾਟਾ ਮੁੜ-ਭੇਜਣਾ ਹੈ?</string> + <string name="mozac_feature_prompt_repost_message">ਇਸ ਸਫ਼ੇ ਨੂੰ ਮੁੜ-ਤਾਜ਼ਾ ਕਰਨ ਨਾਲ ਤਾਜ਼ਾ ਕਾਰਵਾਈਆਂ ਨੂੰ ਦੁਹਰਾਇਆ ਜਾਵੇਗਾ +ਜਿਵੇਂ ਕਿ ਭੁਗਤਾਨ ਭੇਜਣ ਜਾਂ ਟਿੱਪਣੀ ਨੂੰ ਦੋ ਵਾਰ ਪੋਸਟ ਕੀਤਾ ਜਾਵੇਗਾ।</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">ਡਾਟਾ ਮੁੜ-ਭੇਜੋ</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">ਰੱਦ ਕਰੋ</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">ਕਰੈਡਿਟ ਕਾਰਡ ਚੁਣੋ</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">ਸੰਭਾਲੇ ਕਾਰਡ ਨੂੰ ਵਰਤੋਂ</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">ਸੁਝਾਏ ਗਏ ਕਰੈਡਿਟ ਕਾਰਡ ਨੂੰ ਫੈਲਾਓ</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">ਸੰਭਾਲੇ ਹੋਏ ਕਾਰਡਾਂ ਨੂੰ ਫੈਲਾਓ</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">ਸੁਝਾਏ ਗਏ ਕਰੈਡਿਟ ਕਾਰਡ ਨੂੰ ਸਮੇਟੋ</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">ਸੰਭਾਲੇ ਹੋਏ ਕਾਰਡਾਂ ਨੂੰ ਸਮੇਟੋ</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">ਕਰੈਡਿਟ ਕਾਰਡਾਂ ਦਾ ਇੰਤਜ਼ਾਮ ਕਰੋ</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">ਕਾਰਡਾਂ ਦਾ ਇੰਤਜ਼ਾਮ ਕਰੋ</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">ਇਹ ਕਾਰਡ ਨੂੰ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਸੰਭਾਲਣਾ ਹੈ?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">ਕਾਰਡ ਦੀ ਮਿਆਦ ਪੁੱਗਣ ਦੀ ਤਾਰੀਖ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨਾ ਹੈ?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">ਕਾਰਡ ਨੰਬਰ ਨੂੰ ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ ਜਾਵੇਗਾ। ਸੁਰੱਖਿਆ ਕੋਡ ਸੰਭਾਲਿਆ ਨਹੀਂ ਜਾਵੇਗਾ।</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s ਤੁਹਾਡੇ ਕਾਰਡ ਨੂੰ ਇੰਕ੍ਰਿਪਟ ਕਰਦਾ ਹੈ। ਤੁਹਾਡੇ ਸੁਰੱਖਿਆ ਕੋਡ ਨੂੰ ਸੰਭਾਲਿਆ ਨਹੀਂ ਜਾਵੇਗਾ।</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">ਸਿਰਨਾਵਾਂ ਚੁਣੋ</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">ਸੁਝਾਏ ਸਿਰਨਾਵਿਆਂ ਨੂੰ ਫੈਲਾਓ</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">ਸੰਭਾਲੇ ਹੋਏ ਸਿਰਨਾਵਿਆਂ ਨੂੰ ਫੈਲਾਓ</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">ਸੁਝਾਏ ਸਿਰਨਾਵਿਆਂ ਨੂੰ ਸਮੇਟੋ</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">ਸੰਭਾਲੇ ਹੋਏ ਸਿਰਨਾਵਿਆਂ ਨੂੰ ਸਮੇਟੋ</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">ਸਿਰਨਾਵਿਆਂ ਦਾ ਇੰਤਜ਼ਾਮ ਕਰੋ</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">ਖਾਤੇ ਦੀ ਤਸਵੀਰ</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">ਲਾਗਇਨ ਪੂਰਕ ਚੁਣੋ</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">%1$s ਖਾਤੇ ਨਾਲ ਸਾਈਨ ਇਨ ਕਰੋ</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">%1$s ਨੂੰ ਲਾਗਇਨ ਪੂਰਕ ਵਜੋਂ ਵਰਤੋਂ</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[%1$s ਵਿੱਚ %2$s ਖਾਤੇ ਨਾਲ ਲਾਗਇਨ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ, ਜੋ ਕਿ <a href="%3$s">ਪਰਦੇਦਾਰੀ ਨੀਤੀ</a> ਅਤੇ <a href="%4$s">ਸੇਵਾ ਦੀਆਂ ਸ਼ਰਤਾਂ</a> ਦੇ ਅਧੀਨ ਹੈ।]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">ਜਾਰੀ ਰੱਖੋ</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">ਰੱਦ ਕਰੋ</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-pa-rPK/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-pa-rPK/strings.xml new file mode 100644 index 0000000000..f3e24af90d --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-pa-rPK/strings.xml @@ -0,0 +1,156 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ٹھیک اے</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">رد کرو</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">ایس صفحے توں کوئی ہور سوال روکو</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">پا لاؤ</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">صاف کرو</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">لوگ این کرو</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">ورتنوالے دا ناں</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">پاسورڈ</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">ایہہ نہ رکھو</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">کدے نہ رکھو</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">ہݨے نہیں</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">سانجھا کرو</string> + + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">ایہنوں نہ نواں کرو</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">نواں کرو</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">پاسورڈ نہیں پایا</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">پاسورڈ رکھ نہیں سکدا</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">پاسورڈ رکھیو؟</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">ایہنوں نواں کریو؟</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">پاسورڈ نال ورتنوالے دا ناں وی رکھیو؟</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">لکھت دی تھاں لئی تفصیل</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">رنگ چݨو</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">اجازت دیو</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">اجازت نہ دیو</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">تسیں پکے او؟</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">تسیں پکے او، ایس سائٹ توں چھڈݨا چاہیدے؟ کوئی کجھ پاۓ گئے ڈیٹے نہیں رکھےگا۔</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">ایتھوں ای رہو</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">چڈو</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">مہینہ چݨو</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">جنوری</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">فیوری</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">مارچ</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">اپریل</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">مئی</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">جون</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">جولائی</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">اگست</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">سرمبر</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">اکتوبر</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">نومبر</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">دسمبر</string> + + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">ویلے نوں بدلو</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">پاسورڈاں دا انتظام</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">تجویز دے ویروے ویکھو</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">تجویز لُکاؤ</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">تجویز دے ویروے</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">مضبوط پاسورڈ لئی تجویز کرو</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">مضبوط پاسورڈ لئی تجویز کرو</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">مضبوط پاسورڈ نوں ورتوں: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">فیر بھیجیو؟</string> + <string name="mozac_feature_prompt_repost_message">ایس صفحے نوں مڑ تازہ کرن نال تاشہ کاروائیاں نوں دہرایا جاۓگا؛ جیویں کہ بھگتان بھیجݨ یاں ٹپݨی نوں دو وار پا لایا جاۓگا۔</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">آہو، فیر بھیجو</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">رد کرو</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">کریڈٹ کارڈ چݨو</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">تجویز دے کارڈ ویکھو</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">تجویز دے کارڈ لکاؤ</string> + + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">کریڈٹ کارڈاں دا انتظام کرو</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">سرکھیت نال کارڈ دا نمبر رکھو؟</string> + + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">تسیں کارڈ دی میاد پگݨ دی تاریخ نوں بدلݨا چاہیدے او؟</string> + + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">کارڈ نمبر نوں اوہلا پا لا جاۓگا۔ سرکھیا کوڈ رکھ نہیں جاۓگا۔</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">پتہ چݨو</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">ہور پتے ویکھو</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">تجویز دے پتے لکاؤ</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">پتیاں دا انتظام</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">کھاتے دی تصویر</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">لاگ ان دیݨ والا چݨو</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">%1$s کھاتے نال لاگ ان کرو</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">%1$s نوں لاگ ان دیݨ والے وجوں ورتوں</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[%1$s وچ %2$s کھاتے نال لاگ ان کیتا جا رہا اے، جو کہ <a href="%3$s">پردے داری نیتی</a> تے <a href="%4$s">سیوا دیاں شرطاں</a> دے ادھین اے]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">جاری رکھو</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">رد کرو</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-pl/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-pl/strings.xml new file mode 100644 index 0000000000..92107e968f --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-pl/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Anuluj</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Zabroń tej stronie otwierać kolejne okna dialogowe</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Ustaw</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Wyczyść</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Logowanie</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nazwa użytkownika</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Hasło</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Nie zachowuj</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Nie teraz</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Nigdy nie zachowuj</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Nie teraz</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Zachowaj</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Nie aktualizuj</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Nie teraz</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Aktualizuj</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Pole hasła nie może być puste</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Wpisz hasło</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Nie można zachować danych logowania</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Nie można zachować hasła</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Czy zachować te dane logowania?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Czy zachować hasło?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Czy zaktualizować te dane logowania?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Czy zaktualizować hasło?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Czy dodać nazwę użytkownika do zachowanego hasła?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etykieta przechodzenia do pola wprowadzania tekstu</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Wybierz kolor</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Zezwól</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Zabroń</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Potwierdzenie</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Czy chcesz opuścić tę stronę? Wprowadzone dane mogły nie zostać zapisane.</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Zostań</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Opuść</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Wybierz miesiąc</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">sty</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">lut</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">kwi</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">maj</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">cze</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">lip</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">sie</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">wrz</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">paź</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">lis</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">gru</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Ustaw czas</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Zarządzaj danymi logowania</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Zarządzaj hasłami</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Rozwiń podpowiadane dane logowania</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Rozwiń zachowane hasła</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Zwiń podpowiadane dane logowania</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Zwiń zachowane hasła</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Podpowiadane dane logowania</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Zachowane hasła</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Zaproponuj silne hasło</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Zaproponuj silne hasło</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Użyj silnego hasła: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Czy ponownie przesłać dane do tej witryny?</string> + <string name="mozac_feature_prompt_repost_message">Odświeżenie tej strony może spowodować powtórzenie ostatnich działań, na przykład jeszcze raz wysłać płatność lub opublikować komentarz dwa razy.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Prześlij ponownie</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Anuluj</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Wybierz kartę płatniczą</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Użyj zachowanej karty</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Rozwiń podpowiadane karty płatnicze</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Rozwiń zachowane karty</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Zwiń podpowiadane karty płatnicze</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Zwiń zachowane karty</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Zarządzaj kartami płatniczymi</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Zarządzaj kartami</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Czy bezpiecznie zachować tę kartę?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Czy zaktualizować datę ważności karty?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Numer karty zostanie zaszyfrowany. Kod zabezpieczający nie zostanie zachowany.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s szyfruje numer karty. Kod zabezpieczający nie zostanie zachowany.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Wybierz adres</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Rozwiń podpowiadane adresy</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Rozwiń zachowane adresy</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Zwiń podpowiadane adresy</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Zwiń zachowane adresy</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Zarządzaj adresami</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Obraz konta</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Wybierz dostawcę logowania</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Zaloguj się za pomocą konta %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Używaj konta %1$s jako dostawcę logowania</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Logowanie na %1$s za pomocą konta %2$s podlega <a href="%3$s">zasadom ochrony prywatności</a> i <a href="%4$s">regulaminowi usługi</a> danego konta]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Kontynuuj</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Anuluj</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-pt-rBR/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-pt-rBR/strings.xml new file mode 100644 index 0000000000..de8cab92f6 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-pt-rBR/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Cancelar</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Impedir que esta página crie diálogos adicionais</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Definir</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Limpar</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Entrar</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nome de usuário</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Senha</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Não salvar</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Agora não</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Nunca salvar</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Agora não</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Salvar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Não atualizar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Agora não</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Atualizar</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">O campo da senha não deve ficar vazio</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Digite uma senha</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Não foi possível salvar a conta</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Não foi possível salvar a senha</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Salvar esta conta?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Salvar senha?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Atualizar esta conta?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Atualizar senha?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Adicionar nome de usuário à senha salva?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etiqueta para inserir um campo de entrada de texto</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Escolha uma cor</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permitir</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Negar</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Tem certeza?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Quer sair deste site? Os dados que você digitou podem não ser salvos</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Ficar</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Sair</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Escolha um mês</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Fev</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Abr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mai</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Ago</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Set</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Out</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dez</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Ajustar hora</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Gerenciar contas</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Gerenciar senhas</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Expandir sugestão de contas</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Expandir senhas salvas</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Recolher sugestão de contas</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Recolher senhas salvas</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Sugestão de contas</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Senhas salvas</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Sugerir senha forte</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Sugerir senha forte</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Usar senha forte: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Reenviar dados para este site?</string> + <string name="mozac_feature_prompt_repost_message">Atualizar esta página pode duplicar ações recentes, como enviar um pagamento ou publicar um comentário duas vezes.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Reenviar dados</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Cancelar</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Selecionar cartão de crédito</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Usar cartão salvo</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Expandir sugestões de cartão de crédito</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Expandir cartões salvos</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Recolher sugestões de cartão de crédito</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Recolher cartões salvos</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Gerenciar cartões de crédito</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Gerenciar cartões</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Salvar este cartão com segurança?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Atualizar data de validade do cartão?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">O número do cartão será criptografado. O código de segurança não será salvo.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">O %s criptografa o número do seu cartão. O código de segurança não é salvo.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Selecionar endereço</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Expandir endereços sugeridos</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Expandir endereços salvos</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Recolher endereços sugeridos</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Recolher endereços salvos</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Gerenciar endereços</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Imagem da conta</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Escolha um provedor de autenticação</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Entre com uma conta %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Usar %1$s como um provedor acesso a contas</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Entrar em %1$s com uma conta %2$s está sujeito à sua <a href="%3$s">política de privacidade</a> e seus <a href="%4$s">termos do serviço</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Avançar</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Cancelar</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-pt-rPT/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-pt-rPT/strings.xml new file mode 100644 index 0000000000..42564fdfe1 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-pt-rPT/strings.xml @@ -0,0 +1,188 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Cancelar</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Impedir esta página de criar novas janelas</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Definir</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Limpar</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Iniciar sessão</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nome de utilizador</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Palavra-passe</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Não guardar</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Agora não</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Nunca guardar</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Agora não</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Guardar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Não atualizar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Agora não</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Atualizar</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">O campo de palavra-passe não deve estar vazio</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Introduza uma palavra-passe</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Não foi possível guardar a credencial</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Não foi possível guardar a palavra-passe</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Guardar esta credencial?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Guardar palavra-passe?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Atualizar esta credencial?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Atualizar palavra-passe?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Adicionar nome de utilizador à palavra-passe guardada?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etiqueta para introduzir um campo de entrada de texto</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Escolha uma cor</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permitir</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Recusar</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Tem a certeza?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Deseja sair deste site? Os dados que introduziu poderão não ser guardados</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Ficar</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Sair</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Selecione um mês</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Fev</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Abr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mai</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Ago</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Set</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Out</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dez</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Definir hora</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Gerir credenciais</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Gerir palavras-passes</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Expandir credenciais sugeridas</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Expandir palavras-passe guardadas</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Colapsar credenciais sugeridas</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Colapsar palavras-passe guardadas</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Credenciais sugeridas</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Palavras-passe guardadas</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Sugerir palavra-passe forte</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Sugerir palavra-passe forte</string> + + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Utilizar palavra-passe forte: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Reenviar dados para este site?</string> + <string name="mozac_feature_prompt_repost_message">Atualizar esta página pode duplicar ações recentes, tais como enviar um pagamento ou publicar novamente um comentário. </string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Reenviar dados</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Cancelar</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Selecionar cartão de crédito</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Utilizar cartão guardado</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Expandir os cartões de créditos sugeridos</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Expandir cartões guardados</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Colapsar os cartões de crédito sugeridos</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Colapsar cartões guardados</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Gerir cartões de crédito</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Gerir cartões</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Guardar este cartão com segurança?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Atualizar a data de validade do cartão?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">O número do cartão será encriptado. O código de segurança não será guardado.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">O %s encripta o número do seu cartão. O seu código de segurança não será guardado.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Selecionar endereço</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Expandir endereços sugeridos</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Expandir endereços guardados</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Colapsar endereços sugeridas</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Colapsar endereços guardados</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Gerir endereços</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Imagem da conta</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Escolha um fornecedor de autenticação</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Iniciar sessão com uma conta %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Utilizar %1$s como fornecedor de início de sessão</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Ao iniciar sessão em %1$s com uma conta %2$s está sujeito à sua <a href="%3$s">Política de Privacidade</a> e <a href="%4$s">Termos de Serviço</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Continuar</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Cancelar</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-rm/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-rm/strings.xml new file mode 100644 index 0000000000..2b7976fc10 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-rm/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Interrumper</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Impedir che questa pagina creeschia ulteriurs dialogs</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Definir</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Svidar</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">S\'annunziar</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Num d\'utilisader</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Pled-clav</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Betg memorisar</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Betg ussa</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Mai memorisar</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Betg ussa</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Memorisar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Betg actualisar</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Betg ussa</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Actualisar</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Il champ dal pled-clav na dastga betg esser vid</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Endatar in pled-clav</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Impussibel da memorisar las datas d\'annunzia</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Impussibel da memorisar il pled-clav</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Memorisar questa infurmaziun d\'annunzia?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Memorisar il pled-clav?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Actualisar questa infurmaziun d\'annunzia?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Actualisar il pled-clav?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Agiuntar in num d\'utilisader al pled-clav memorisà?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Legenda dad in champ per inserir text</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Tscherner ina colur</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permetter</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Refusar</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Es ti segir?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Vuls ti propi bandunar questa pagina? Las datas che ti has endatà n\'èn forsa betg memorisadas</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Restar</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Bandunar</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Tscherner in mais</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">schan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">favr</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">mars</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">avr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">matg</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">zercl</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">fan</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">avu</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">sett</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">oct</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">dec</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Drizzar l\'ura</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Administrar las datas d\'annunzia</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Administrar ils pleds-clav</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Expander las datas d\'annunzia proponidas</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Extender ils pleds-clav memorisads</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Reducir las datas d\'annunzia proponidas</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Reducir ils pleds-clav memorisads</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Datas d\'annunzia proponidas</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Pleds-clav memorisads</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Proponer in ferm pled-clav</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Proponer in ferm pled-clav</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Utilisar in ferm pled-clav: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Anc ina giada trametter las datas a questa website?</string> + <string name="mozac_feature_prompt_repost_message">Cun actualisar questa pagina vegnan eventualmain duplitgadas acziuns recentas (sco far in pajament u publitgar duas giadas in commentari).</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Trametter anc ina giada</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Interrumper</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Tscherner ina carta da credit</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Utilisar ina carta memorisada</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Expander las cartas da credit proponidas</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Extender las cartas memorisadas</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Reducir las cartas da credit proponidas</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Reducir las cartas memorisadas</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Administrar las cartas da credit</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Administrar las cartas</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Memorisar questa carta a moda segira?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Actualisar la data da scadenza da la carta?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Il numer da la carta vegn criptà. Il code da segirezza na vegn betg memorisà.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s criptescha il numer da tia carta. Tes code da segirezza na vegn betg memorisà.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Tscherner l\'adressa</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Expander las adressas proponidas</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Extender las adressas proponidas</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Cumprimer las adressas proponidas</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Reducir las adressas memorisadas</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Administrar las adressas</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Maletg da conto</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Tscherner in purschider per l\'annunzia</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">T\'annunzia cun in conto %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Utilisar %1$s sco purschider d\'annunzia</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[L\'annunzia tar %1$s cun in conto da %2$s è suttamessa a las <a href="%3$s">Directivas per la protecziun da datas</a> e las <a href="%4$s">Cundiziuns d\'utilisaziun</a> correspundentas]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Cuntinuar</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Interrumper</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ro/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ro/strings.xml new file mode 100644 index 0000000000..2459648434 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ro/strings.xml @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Anulare</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Împiedică acestă pagină să creeze dialoguri adiționale</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Setează</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Şterge</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Autentificare</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nume de utilizator</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Parolă</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Nu salva</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Nu salva niciodată</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Salvează</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Nu actualiza</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Actualizează</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Câmpul de parolă nu trebuie să fie gol</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Datele de autentificare nu au putut fi salvate</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Salvezi aceste date de autentificare?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Actualizezi aceste date de autentificare?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Adaugi numele de utilizator la parola salvată?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etichetă pentru crearea unui câmp de introducere text</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Alege o culoare</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permite</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Refuză</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Ești sigur(ă)?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Vrei să ieși de pe acest site? Datele pe care le-ai introdus nu vor fi salvate</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Rămâi</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Ieși</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Alege o lună</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Ian</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mai</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Iun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Iul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Aug</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Oct</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dec</string> + + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Extinde datele de autentificare sugerate</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Restrânge datele de autentificare sugerate</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Date de autentificare sugerate</string> + + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Retrimite datele</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Anulează</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ru/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ru/strings.xml new file mode 100644 index 0000000000..ca198e6cd5 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ru/strings.xml @@ -0,0 +1,188 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ОК</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Отмена</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Не давать этой странице создавать дополнительные диалоговые окна</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Установить</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Очистить</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Войти</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Имя пользователя</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Пароль</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Не сохранять</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Не сейчас</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Никогда не сохранять</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Не сейчас</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Сохранить</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Не обновлять</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Не сейчас</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Обновить</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Поле пароля не может быть пустым</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Введите пароль</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Не удалось сохранить логин</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Не удалось сохранить пароль</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Сохранить этот логин?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Сохранить пароль?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Обновить этот логин?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Обновить пароль?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Добавить имя пользователя к сохранённому паролю?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Метка для текстового поля ввода</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Выберите цвет</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Разрешить</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Не разрешать</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Вы уверены?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Вы действительно хотите покинуть этот сайт? Все введённые данные могут быть потеряны</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Остаться</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Уйти</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Выберите месяц</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Янв</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Фев</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Мар</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Апр</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Май</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Июн</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Июл</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Авг</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Сен</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Окт</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Ноя</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Дек</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Установка времени</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Управление паролями</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Управление паролями</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Развернуть предлагаемые пароли</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Развернуть сохранённые пароли</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Свернуть предлагаемые пароли</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Свернуть сохранённые пароли</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Предлагаемые пароли</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Сохранённые пароли</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Предложить надежный пароль</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Предложить надежный пароль</string> + + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Используйте надежный пароль: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Отправить данные на этот сайт снова?</string> + <string name="mozac_feature_prompt_repost_message">Обновление этой страницы может повторить последние выполненные действия, например, снова отправив платёж или комментарий.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Отправить данные снова</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Отмена</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Выберите банковскую карту</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Использовать сохранённую карту</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Развернуть предлагаемые банковские карты</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Развернуть сохранённые карты</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Свернуть предлагаемые банковские карты</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Свернуть сохранённые карты</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Управление банковскими картами</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Управление картами</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Сохранить надёжно эту карту?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Обновить срок действия карты?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Номер карты будет зашифрован. Код безопасности не будет сохранён.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s шифрует номер вашей карты. Ваш код безопасности не будет сохранён.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Выберите адрес</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Развернуть предлагаемые адреса</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Развернуть сохранённые адреса</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Свернуть предлагаемые адреса</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Свернуть сохранённые адреса</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Управление адресами</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Фото аккаунта</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Выберите провайдера входа</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Войти с аккаунтом %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Использовать %1$s в качестве провайдера входа</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Вход в %1$s с учётной записью %2$s регулируется их <a href="%3$s">Политикой конфиденциальности</a> и <a href="%4$s">Условиями использования</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Продолжить</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Отменить</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-sat/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-sat/strings.xml new file mode 100644 index 0000000000..b915c490ce --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-sat/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ᱴᱷᱤᱠ</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">ᱵᱟᱹᱰᱨᱟᱹ</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">ᱱᱚᱶᱟ ᱥᱟᱦᱴᱟ ᱟᱠᱚᱴᱮᱢ ᱵᱟᱹᱲᱛᱤ ᱠᱟᱛᱷᱟ ᱵᱮᱱᱟᱣ ᱠᱷᱚᱱ</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">ᱥᱟᱡᱟᱣ ᱢᱮ</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">ᱯᱷᱟᱨᱪᱟ</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">ᱵᱚᱞᱚᱱ ᱥᱩᱦᱤ</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹᱜ ᱧᱩᱛᱩᱢ</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save" moz:removedIn="125" tools:ignore="UnusedResources">ᱟᱞᱚᱢ ᱥᱟᱺᱪᱟᱣᱜ-ᱟ</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2">ᱱᱤᱛᱚᱜ ᱫᱚ ᱵᱟᱝᱟ</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">ᱛᱤᱥ ᱦᱚᱸ ᱵᱟᱝ ᱥᱟᱺᱪᱟᱣᱜ-ᱟ</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">ᱱᱤᱛᱚᱜ ᱫᱚ ᱵᱟᱝᱟ</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">ᱥᱟᱺᱪᱟᱣ ᱢᱮ</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update" moz:removedIn="125" tools:ignore="UnusedResources">ᱟᱞᱚᱢ ᱦᱟᱹᱞᱤᱭᱟᱜ-ᱟ</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2">ᱱᱤᱛᱚᱜ ᱫᱚ ᱵᱟᱝᱟ</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">ᱦᱟᱹᱞᱤᱭᱟᱹᱜ ᱢᱮ</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password" moz:removedIn="125" tools:ignore="UnusedResources">ᱥᱟᱵᱟᱫᱽ ᱜᱟᱫᱮᱞ ᱠᱷᱟᱹᱞᱤ ᱟᱞᱚ ᱛᱟᱦᱮᱸᱱ ᱢᱟ</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2">ᱢᱤᱫᱴᱟᱹᱝ ᱥᱟᱵᱟᱫ ᱟᱫᱮᱨ ᱢᱮ</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause" moz:removedIn="125" tools:ignore="UnusedResources">ᱞᱚᱜᱤᱱ ᱵᱟᱭ ᱥᱟᱺᱪᱟᱣ ᱫᱟᱲᱮᱭᱟᱜ ᱠᱟᱱᱟ</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2">ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱥᱟᱧᱪᱟᱣ ᱵᱟᱭ ᱜᱟᱱ ᱞᱮᱱᱟ</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline" moz:removedIn="125" tools:ignore="UnusedResources">ᱱᱚᱶᱟ ᱞᱚᱜᱤᱱ ᱥᱟᱺᱪᱟᱣ ᱢᱮ?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2">ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱠᱚ ᱥᱟᱺᱪᱟᱣᱟ ?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline" moz:removedIn="125" tools:ignore="UnusedResources">ᱱᱚᱶᱟ ᱞᱚᱜᱤᱱ ᱦᱟᱹᱞᱤᱭᱟᱜ ᱢᱮ?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2">ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱦᱟᱹᱞᱤᱭᱟᱹᱠ ᱟ ?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">ᱥᱟᱺᱪᱟᱣᱠᱟᱱ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱨᱮ ᱵᱮᱵᱷᱟᱨᱤᱡ ᱧᱩᱛᱩᱢ ᱥᱮᱞᱮᱫᱽ ᱟᱢ?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">ᱚᱱᱚᱞ ᱟᱫᱮᱨ ᱡᱟᱭᱜᱟ ᱨᱮᱭᱟᱜ ᱞᱮᱵᱮᱞ</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">ᱨᱚᱝ ᱵᱟᱪᱷᱟᱣ ᱛᱟᱞᱟᱝ ᱢᱮ</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">ᱦᱮᱥᱟᱨᱤᱭᱟᱹ</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">ᱵᱟᱝ ᱦᱮᱥᱟᱨᱭ</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">ᱟᱢ ᱜᱚᱴᱟ ᱛᱮ ᱢᱮᱱᱟᱢ-ᱟ?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">ᱪᱮᱫ ᱟᱢ ᱱᱚᱶᱟ ᱥᱟᱭᱤᱴ ᱵᱟᱹᱜᱤ ᱥᱟᱱᱟᱢ ᱠᱟᱱᱟ? ᱰᱟᱴᱟ ᱡᱟᱦᱸᱟ ᱟᱢ ᱟᱫᱮᱨ ᱞᱮᱫᱟᱢ ᱚᱱᱟ ᱥᱟᱺᱪᱟᱣ ᱵᱟᱝ ᱦᱩᱭᱩᱜ-ᱟ</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">ᱛᱟᱦᱮᱸᱱ ᱢᱮ</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">ᱵᱟᱹᱜᱤ ᱢᱮ</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">ᱪᱟᱸᱫᱚ ᱵᱟᱪᱷᱟᱣ ᱢᱮ</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">ᱯᱩᱥ</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">ᱢᱟᱜ</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">ᱯᱷᱟ</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">ᱪᱟᱹᱛ</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">ᱵᱟᱹᱭ</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">ᱡᱷᱮ</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">ᱟᱥᱟ</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">ᱥᱟᱱ</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">ᱵᱷᱟ</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">ᱟᱥᱤ</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">ᱠᱟᱨ</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">ᱟᱜᱷ</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">ᱚᱠᱛᱚ ᱥᱮᱴ ᱢᱮ</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins" moz:removedIn="125" tools:ignore="UnusedResources">ᱞᱚᱜᱤᱱ ᱵᱮᱵᱚᱥᱛᱷᱟ ᱠᱚ</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2">ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫ ᱢᱮᱱᱮᱡᱽ ᱢᱮ</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">ᱵᱟᱛᱟᱣᱟᱠᱟᱱ ᱞᱚᱜᱤᱱ ᱠᱚ ᱴᱟᱨᱟᱝ ᱪᱷᱚᱭ ᱢᱮ</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2">ᱥᱟᱺᱪᱟᱣ ᱟᱠᱟᱱ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱠᱚ ᱯᱟᱥᱱᱟᱣ ᱢᱮ</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">ᱵᱟᱛᱟᱣᱟᱠᱟᱱ ᱞᱚᱜᱤᱱ ᱠᱚ ᱠᱟᱹᱴᱤᱡ ᱪᱷᱚᱭ ᱢᱮ</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2">ᱥᱟᱺᱪᱟᱣᱟᱜ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱠᱚ ᱫᱟᱥᱟᱣ ᱢᱮ</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins" moz:removedIn="125" tools:ignore="UnusedResources">ᱵᱟᱛᱟᱣᱟᱠᱟᱱ ᱞᱚᱜᱤᱱ ᱠᱚ</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2">ᱥᱟᱧᱪᱟᱣ ᱠᱟᱱ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱠᱚ</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">ᱟᱸᱴ ᱫᱟᱫᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱵᱟᱛᱟᱣ ᱢᱮ …</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">ᱟᱸᱴ ᱫᱟᱫᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱵᱟᱛᱟᱣ ᱢᱮ …</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">ᱟᱹᱴ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱵᱮᱵᱷᱟᱨ ᱢᱮ ᱺ %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">ᱱᱚᱶᱟ ᱥᱟᱭᱤᱴ ᱞᱟᱹᱜᱤᱫ ᱰᱟᱴᱟ ᱫᱩᱦᱲᱟᱹ ᱵᱷᱮᱡᱟᱭ ᱟᱢ ᱥᱮ?</string> + <string name="mozac_feature_prompt_repost_message">ᱥᱟᱦᱴᱟ ᱨᱤᱯᱷᱨᱮᱥ ᱞᱮᱠᱷᱟᱱ ᱱᱤᱛᱚᱜᱟᱜ ᱠᱟᱹᱢᱤ ᱠᱚ ᱰᱩᱯᱞᱤᱠᱮᱴ ᱫᱟᱲᱮᱭᱟᱜᱼᱟᱭ, ᱡᱮᱢᱚᱱ ᱯᱩᱭᱥᱟᱹ ᱵᱷᱮᱡᱟ ᱠᱚ ᱟᱨ ᱵᱟᱝ ᱠᱚᱢᱮᱴ ᱠᱚ ᱵᱟᱨ ᱡᱮᱠᱷᱟ ᱵᱷᱮᱡᱟ ᱠᱚ ᱾</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">ᱰᱟᱴᱟ ᱫᱩᱦᱲᱟ ᱵᱷᱮᱡᱟᱭᱢᱮ</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">ᱵᱟᱹᱰᱨᱟᱹ</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card" moz:removedIn="125" tools:ignore="UnusedResources">ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱵᱟᱪᱷᱟᱣ ᱢᱮ</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2">ᱥᱟᱧᱪᱟᱣ ᱠᱟᱱ ᱠᱟᱰ ᱵᱮᱵᱷᱟᱨ ᱢᱮ</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">ᱵᱟᱛᱟᱣ ᱟᱠᱟᱱ ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱡᱷᱟᱹᱞ ᱪᱷᱚᱭ ᱢᱮ</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2">ᱥᱟᱺᱪᱟᱣ ᱟᱠᱟᱱ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱠᱚ ᱯᱟᱥᱱᱟᱣ ᱢᱮ</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">ᱵᱟᱛᱟᱣ ᱟᱠᱟᱱ ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱦᱚᱯᱚᱱ ᱪᱷᱚᱭ ᱢᱮ</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2">ᱥᱟᱧᱪᱟᱣ ᱠᱟᱱ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽᱠᱚ ᱫᱟᱥᱟᱣ ᱢᱮ</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards" moz:removedIn="125" tools:ignore="UnusedResources">ᱠᱨᱮᱰᱤᱴ ᱠᱟᱰ ᱠᱚ ᱢᱮᱱᱮᱡᱽ ᱢᱮ</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2">ᱠᱟᱰ ᱢᱮᱱᱮᱡᱽ ᱢᱮ</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">ᱱᱚᱶᱟ ᱠᱟᱰ ᱫᱚ ᱨᱩᱠᱷᱤᱭᱟᱹ ᱥᱟᱹᱦᱤᱡ ᱫᱚᱦᱚᱭ ᱟᱢ ᱥᱮ ?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">ᱠᱟᱰ ᱪᱟᱵᱟ ᱢᱟᱦᱟᱸ ᱦᱟᱹᱞᱤᱭᱟᱹᱭᱟᱹᱠ ᱟᱢ ᱥᱮ ?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body" moz:removedIn="125" tools:ignore="UnusedResources">ᱠᱟᱰ ᱱᱚᱢᱵᱚᱨ ᱫᱚ ᱨᱩᱠᱷᱤᱭᱟᱹᱜᱼᱟ ᱾ ᱨᱩᱠᱷᱤᱭᱟᱹ ᱠᱳᱰ ᱫᱚ ᱵᱟᱝ ᱥᱟᱧᱪᱟᱣᱜᱼᱟ ᱾</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2">%s ᱫᱚ ᱟᱢᱟᱜ ᱠᱟᱰ ᱱᱚᱢᱵᱚᱨ ᱮ ᱮᱱᱠᱨᱤᱯᱴ ᱟ ᱾ ᱟᱢᱟᱜ ᱥᱤᱠᱭᱚᱨᱤᱴᱤ ᱠᱳᱰ ᱵᱟᱭ ᱥᱟᱧᱪᱟᱣᱜ ᱟ ᱾</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">ᱴᱷᱤᱠᱬᱟᱹ ᱢᱮᱴᱟᱣ ᱢᱮ</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">ᱵᱟᱛᱟᱣᱟᱠᱟᱱ ᱞᱚᱜᱤᱱ ᱠᱚ ᱯᱟᱥᱱᱟᱣ ᱪᱷᱚᱭ ᱢᱮ</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2">ᱥᱟᱧᱪᱟᱣ ᱟᱠᱟᱱ ᱴᱷᱤᱠᱬᱟᱹ ᱠᱚ ᱯᱟᱥᱱᱟᱣ ᱢᱮ</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">ᱵᱟᱛᱟᱣᱟᱠᱟᱱ ᱞᱚᱜᱤᱱ ᱠᱚ ᱦᱚᱯᱚᱱ ᱪᱷᱚᱭ ᱢᱮ</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2">ᱥᱟᱧᱪᱟᱣᱟᱜ ᱴᱷᱤᱠᱬᱟᱹ ᱠᱚ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">ᱴᱷᱤᱠᱬᱟᱹᱤᱭᱟᱹ ᱡᱚᱛᱚᱱ ᱮᱢ</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">ᱠᱷᱟᱛᱟ ᱪᱤᱛᱟᱹᱨ</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">ᱢᱤᱫᱴᱟᱝ ᱵᱚᱞᱚ ᱮᱢᱚᱜᱤᱡ ᱵᱟᱪᱷᱟᱣ ᱢᱮ</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">%1$s ᱠᱷᱟᱛᱟ ᱵᱷᱵᱷᱟᱨ ᱟᱛᱮᱫ ᱥᱩᱦᱤ ᱮᱢ ᱢᱮ</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">%1$s ᱫᱚ ᱢᱤᱫᱴᱟᱝ ᱵᱚᱞᱚ ᱮᱢᱤᱡ ᱞᱮᱠᱷᱟ ᱵᱮᱵᱷᱟᱨ ᱢᱮ</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[%1$s ᱨᱮ %2$s ᱠᱷᱟᱛᱟ ᱛᱮ ᱵᱚᱞᱚ ᱠᱟᱛᱮ ᱚᱱᱟ ᱠᱚᱣᱟᱜ <a href="%3$s">ᱯᱨᱟᱭᱵᱷᱮᱥᱤ ᱱᱤᱛᱤ</a> ᱟᱨ <a href="%4$s">ᱠᱟᱹᱢᱤ ᱨᱮᱭᱟᱜ ᱥᱚᱨᱛᱚ</a> ᱨᱮᱭᱟᱜ ᱚᱫᱷᱤᱱ ᱨᱮ ᱢᱮᱱᱟᱜ ᱠᱟᱫᱟ ᱾]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">ᱞᱮᱛᱟᱲ</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">ᱵᱟᱹᱰᱨᱟᱹ</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-sc/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-sc/strings.xml new file mode 100644 index 0000000000..e4dd91d8c6 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-sc/strings.xml @@ -0,0 +1,174 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">AB</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Annulla</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Èvita chi custa pàgina creet àteros diàlogos</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Cunfigura</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Isbòida</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Identìfica·ti</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nòmine utente</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Crae</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Non sarves</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Immoe nono</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Non sarves mai</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Immoe nono</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Sarva</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">No atualizes</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Immoe nono</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Atualiza</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Sa crae non podet èssere bòida</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Inserta una crae</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Impossìbile sarvare is credentziales</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Impossìbile sarvare sa crae</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Boles sarvare custa credentziale?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Boles sarvare sa crae?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Boles atualizare custa credentziale?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Boles atualizare sa crae?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Boles agiùnghere su nòmine de utente a sa crae sarvada?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Eticheta pro introduire unu campu de intrada de testu</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Sèbera unu colore</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Permite</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Refuda</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Seguru?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Boles lassare custu situ? Podet dare chi is datos insertados non bèngiant sarvados</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Abarra</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Lassa</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Piga unu mese</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Ghe</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Fre</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Abr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Maj</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Làm</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Arg</string> + + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Aus</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Cab</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Làd</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">StA</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Ida</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Cunfigura s’ora</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Gesti is credentziales</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Gesti is craes</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Ismànnia is credentziales cussigiadas</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Mìnima is credentziales cussigiadas</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Credentziales cussigiadas</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Craes sarvadas</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Cussìgia una crae segura</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Cussìgia una crae segura</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Imprea una crae segura: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Boles torrare a inviare is datos a su situ?</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Torra a imbiare is datos</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Annulla</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Seletziona una carta de crèditu</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Imprea una carta sarvada</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Ismànnia is cartas de crèditu cussigiadas</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Mìnima is cartas de crèditu cussigiadas</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Gesti is cartas de crèditu</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Gesti is cartas</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Boles sarvare custa carta cun seguresa?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Boles atualizare sa data de iscadèntzia de sa carta?</string> + + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Su nùmeru de carta at a èssere tzifradu. Su còdighe de seguresa no at a èssere sarvadu.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s tzifrat su nùmeru de sa carta tua. Su còdighe de seguresa no at a èssere sarvadu.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Seletziona un’indiritzu</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Ismànnia is indiritzos cussigiados</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Mìnima is indiritzos cussigiados</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Gesti is indiritzos</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Immàgine de su contu</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Sèbera unu frunidore de atzessu</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Identìfica·ti cun unu contu de %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Imprea %1$s comente frunidore de atzessu</string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Sighi</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Annulla</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-si/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-si/strings.xml new file mode 100644 index 0000000000..841bbc61d9 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-si/strings.xml @@ -0,0 +1,189 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">හරි</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">අවලංගු</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">මෙම පිටුව අමතර කවුළු සෑදීමෙන් වළක්වන්න</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">සකසන්න</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">මකන්න</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">පිවිසෙන්න</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">පරිශීලක නාමය</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">මුරපදය</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">සුරකින්න එපා</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">දැන් නොවේ</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">කිසිවිට නොසුරකින්න</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">දැන් නොවේ</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">සුරකින්න</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">යාවත්කාල නොකරන්න</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">දැන් නොවේ</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">යාවත්කාල</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">මුරපද ක්ෂේත්රය හිස් නොවිය යුතුය</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">මුරපදය යොදන්න</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">පිවිසුම සුරැකීමට නොහැකිය</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">මුරපදය සුරැකීමට නොහැකිය</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">මෙම පිවිසුම සුරකින්නද?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">මුරපදය සුරකින්නද?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">පිවිසුම සංශෝධනයක්ද?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">මුරපදය යාවත්කාල කරන්නද?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">සුරැකි මුරපදයට පරි. නාමය එක් කරන්නද?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">පෙළ ආදාන ක්ෂේත්රයක් ඇතුල් කිරීමට නම්පත</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">වර්ණයක් තෝරන්න</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">ඉඩ දෙන්න</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">ප්රතික්ෂේප</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">ඔබට විශ්වාස ද?</string> + + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">ඔබට මෙම අඩවිය හැර යාමට අවශ්යද? ඔබ ඇතුල් කළ දත්ත නොසුරැකෙනු ඇත</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">රැඳෙන්න</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">හැරයන්න</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">මාසයක් තෝරන්න</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">දුරුතු</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">නවම්</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">මැදින්</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">බක්</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">වෙසක්</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">පොසොන්</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">ඇසළ</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">නිකිණි</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">බිනර</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">වප්</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">ඉල්</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">උඳු</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">කාලය සකසන්න</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">පිවිසුම් කළමනාකරණය</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">මුරපද කළමනාකරණය</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">යෝජිත පිවිසුම් විහිදන්න</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">සුරැකි මුරපද විහිදන්න</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">යෝජිත පිවිසුම් හකුලන්න</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">සුරැකි මුරපද හකුළන්න</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">යෝජිත පිවිසුම්</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">සුරැකි මුරපද</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">ශක්තිමත් මුරපදයක් යෝජනා කරන්න</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">ශක්තිමත් මුරපදයක් යෝජනා කරන්න</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">ශක්තිමත් මුරපදයක් භාවිතා කරන්න: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">අඩවියට දත්ත යළි යවන්නද?</string> + <string name="mozac_feature_prompt_repost_message">මෙම පිටුව නැවුම් කිරීමෙන් ගෙවීමක් යැවීම හෝ අදහසක් පළ කිරීම වැනි මෑත ක්රියාමාර්ග දෙවරක් අනුපිටපත් විය හැකිය.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">දත්ත යළි යවන්න</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">අවලංගු</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">ණයපතක් තෝරන්න</string> + + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">සුරැකි පත යොදාගන්න</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">යෝජිත ණයපත් විහිදන්න</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">සුරැකි පත් විහිදන්න</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">යෝජිත ණයපත් හකුලන්න</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">සුරැකි පත් හකුළන්න</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">ණයපත් කළමනාකරණය</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">පත් කළමනාකරණය</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">මෙම පත ආරක්ෂිතව සුරකින්නද?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">පත ඉකුත්වන දිනය යාවත්කාල කරන්නද?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">පතෙහි අංකය සංකේතනය වනු ඇත. ආරක්ෂණ කේතය සුරැකෙන්නේ නැත.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s ඔබගේ පතෙහි අංකය සංකේතනය කරයි. ඔබගේ ආරක්ෂණ කේතය සුරැකෙන්නේ නැත.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">ලිපිනය තෝරන්න</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">යෝජිත ලිපින විහිදන්න</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">සුරැකි ලිපින විහිදන්න</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">යෝජිත ලිපින හකුලන්න</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">සුරැකි ලිපින හකුළන්න</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">ලිපින කළමනාකරණය</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">ගිණුමේ ඡායාරූපය</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">පිවිසුම් ප්රතිපාදකයක් තෝරන්න</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">%1$s ගිණුමකින් පිවිසෙන්න</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">පිවිසුම් ප්රතිපාදකයක් ලෙස %1$s යොදාගන්න</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ %2$s ගිණුමක් සමඟින් %1$s වෙත පිවිසීමෙන් ඔවුන්ගේ <a href="%4$s">සේවාවේ නියම</a> සහ <a href="%3$s">රහස්යතා ප්රතිපත්තියට</a> යටත් වේ]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">ඉදිරියට</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">අවලංගු</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-sk/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-sk/strings.xml new file mode 100644 index 0000000000..b0d1818daa --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-sk/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Zrušiť</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Zabrániť tejto stránke otvárať ďalšie okná</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Nastaviť</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Vymazať</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Prihlásiť sa</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Používateľské meno</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Heslo</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Neuložiť</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Teraz nie</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Nikdy neukladať</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Teraz nie</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Uložiť</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Neaktualizovať</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Teraz nie</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Aktualizovať</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Pole s heslom nesmie byť prázdne</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Zadajte heslo</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Prihlasovacie údaje sa nepodarilo uložiť</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Heslo nie je možné uložiť</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Chcete uložiť tieto prihlasovacie údaje?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Uložiť heslo?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Chcete aktualizovať tieto prihlasovacie údaje?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Aktualizovať heslo?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Chcete k uloženému heslu pridať používateľské meno?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Štítok na zadanie poľa pre zadávanie textu</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Vyberte farbu</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Povoliť</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Zakázať</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Naozaj?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Chcete zostať na tejto stránke? Zadané údaje nemusia byť uložené</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Zostať</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Odísť</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Výber mesiaca</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Máj</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jún</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Júl</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Aug</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dec</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Nastaviť čas</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Spravovať prihlasovacie údaje</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Spravovať heslá</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Rozbaliť navrhované prihlasovacie údaje</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Rozbaliť uložené heslá</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Zbaliť navrhované prihlasovacie údaje</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Zbaliť uložené heslá</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Navrhované prihlasovacie údaje</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Uložené heslá</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Navrhnúť silné heslo</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Navrhnúť silné heslo</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Použiť silné heslo: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Znova odoslať údaje tejto stránke?</string> + <string name="mozac_feature_prompt_repost_message">Obnovením tejto stránky môžete zopakovať posledné akcie, ako je odosielanie platby alebo opätovné uverejnenie komentára.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Znova odoslať údaje</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Zrušiť</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Vyberte platobnú kartu</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Použiť uloženú kartu</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Rozbaliť navrhované platobné karty</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Rozbaliť uložené karty</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Zbaliť navrhované platobné karty</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Zbaliť uložené karty</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Spravovať platobné karty</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Spravovať karty</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Bezpečne uložiť túto kartu?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Aktualizovať dátum vypršania platnosti karty?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Číslo karty bude zašifrované. Bezpečnostný kód sa neuloží.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s zašifruje číslo vašej karty. Váš bezpečnostný kód sa neuloží.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Vyberte adresu</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Rozbaliť navrhované adresy</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Rozbaliť uložené adresy</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Zbaliť navrhované adresy</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Zbaliť uložené adresy</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Spravovať adresy</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Obrázok účtu</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Vyberte poskytovateľa prihlásenia</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Prihláste sa pomocou účtu %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Použite %1$s ako poskytovateľa prihlásenia</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Na prihlásenie do %1$s pomocou účtu %2$s sa vzťahujú <a href="%3$s">Pravidlá ochrany osobných údajov</a> a <a href="%4$s">Zmluvné podmienky</a> daného účtu]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Pokračovať</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Zrušiť</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-skr/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-skr/strings.xml new file mode 100644 index 0000000000..66973e343c --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-skr/strings.xml @@ -0,0 +1,190 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ٹھیک ہے</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">منسوخ</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">ایں ورقے کوں وادھوں ڈائیلاگ بݨاوݨ کنوں روکو</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">ٹھیک کرو</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">صاف کرو</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">سائن ان</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">ورتݨ ناں</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">پاس ورڈ</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save" moz:removedIn="125" tools:ignore="UnusedResources">محفوظ نہ کرو</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2">ہݨ کائناں</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">کݙاہیں وی محفوظ نہ کرو</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">ہݨ کائناں</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">محفوظ کرو</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update" moz:removedIn="125" tools:ignore="UnusedResources">اپ ڈیٹ نہ کرو</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2">ہݨ کائناں</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">اپ ڈیٹ کرو</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password" moz:removedIn="125" tools:ignore="UnusedResources">پاس ورڈ خانہ خالی کائنی ہووݨاں چاہیدا</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2">پاس ورڈ درج کرو</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause" moz:removedIn="125" tools:ignore="UnusedResources">لاگ ان محفوظ کرݨ کنوں قاصر</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2">پاس ورڈ محفوظ کائنی کر سڳدا</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline" moz:removedIn="125" tools:ignore="UnusedResources">ایہ لاگ ان محفوظ کروں؟</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2">پاس ورڈ محفوظ کروں؟</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline" moz:removedIn="125" tools:ignore="UnusedResources">ایہ لاگ ان اپ ڈیٹ کروں؟</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2">پاس ورڈ اپ ڈیٹ کروں؟</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">محفوظ تھئے پاس ورڈ وچ ورتݨ ناں شامل کروں؟</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">عبارت ان پُٹ خانے وچ درج کرݨ کیتے لیبل</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">رنگ چُݨو</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">اجازت ݙیوو</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">انکار کرو</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">بھلا تہاکوں پک ہے؟</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">بھلا تساں ایہ سائٹ چھوڑݨ چاہندے ہو؟ تھی سڳدے تہاݙا درج تھیا ڈیٹا محفوظ نہ تھیوے</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">راہوو</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">چھوڑو</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">ہک مہینہ چُݨو</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">جنورى</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">فرورى</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">مارچ</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">اپريل</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">مئی</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">جون</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">جولائى</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">اگست</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">ستمبر</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">اکتوبر</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">نومبر</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">دسمبر</string> + + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">وقت ٹھیک کرو</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins" moz:removedIn="125" tools:ignore="UnusedResources">لاگ ان منیج کرو</string> + + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2">پاس ورڈز دا بندوبست کرو</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">تجویز تھئے لاگ اناں کوں ودھاؤ</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2">محفوظ تھئے پاس ورڈ کھنڈاؤ</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">تجویز تھئے لاگ اناں کوں کٹھا کرو</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2">محفوظ تھئے پاس ورڈ ولھیٹو</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins" moz:removedIn="125" tools:ignore="UnusedResources">تجویز تھئے لاگ ان</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2">محفوظ تھئے پاس ورڈ</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">تکڑا پاس ورڈ تجویز کرو</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">تکڑا پاس ورڈ تجویز کرو</string> + + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">تَکڑا پاس ورڈ وَرتو: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">ایں سائٹ تے ڈیٹا ولدا بھیڄوں؟</string> + <string name="mozac_feature_prompt_repost_message">ایں ورقے کوں تازہ کرݨ نال حالیہ عملاں دی ݙوجھی نقل بݨ سڳدی ہے۔ جیویں جو پیسیاں دی ادائیگی پٹھݨ یا ݙو واری تبصرہ کرݨ۔</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">ڈیٹا ولدا پٹھو</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">منسوخ</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card" moz:removedIn="125" tools:ignore="UnusedResources">کریڈٹ کارڈ چݨو</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2">محفوظ تھیا کارڈ ورتو</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">تجویز تھئے کریڈٹ کارڈاں کوں ودھاؤ</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2">محفوظ تھئے کارڈ کھنڈاؤ</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">تجویز تھئے کریڈٹ کارڈاں کوں کٹھا کرو</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2">محفوظ تھئے کارڈ ولھیٹو</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards" moz:removedIn="125" tools:ignore="UnusedResources">کریڈیٹ کارڈ منیج کرو</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2">کارڈز منیج کرو</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">ایہ کارڈ حفاظت نال محفوظ کروں؟</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">کارڈ مُکݨ تریخ اپ ڈیٹ کروں؟</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body" moz:removedIn="125" tools:ignore="UnusedResources">کارڈ نمبر دی خفیہ کاری کیتی ویسی۔ حفاظتی کوڈ محفوظ کائناں کیتا ویسی۔</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2">%s تُہاݙے کارڈ نمبر کوں انکرپٹ کرین٘دا ہِے۔ تُہاݙا سیکیورٹی کوڈ محفوظ کائناں تھیسی۔</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">پتہ چُݨو</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">تجویز تھئے پتیاں کوں ودھاؤ</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2">محفوظ تھئے پتے کھنڈاؤ</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">تجویز تھئے پتیاں کوں کٹھا کرو</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2">محفوظ تھئے پتے ولھیٹو</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">پتے منیج کرو</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">کھاتہ تصویر</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">لاگ ان مہیا کار چݨو</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">%1$s کھاتے نال سائن ان تھیوو</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">%1$s کوں لاگ ان مہیاکار دے طور تے ورتو</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ہِک %2$s اکاؤنٹ دے نال %1$s وِچ لاگ اِن کرݨ اِنّھاں دے <a href="%3$s">رازداری پالیسی</a> اَتے <a href="%4$s">خدمت دیاں شرطاں</a>دے تابع ہِے۔]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">جاری</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">منسوخ</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-sl/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-sl/strings.xml new file mode 100644 index 0000000000..dec932c1c5 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-sl/strings.xml @@ -0,0 +1,183 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">V redu</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Prekliči</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Tej strani prepreči ustvarjanje novih pogovornih oken</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Nastavi</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Počisti</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Prijava</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Uporabniško ime</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Geslo</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Ne shrani</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Ne zdaj</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Nikoli ne shranjuj</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ne zdaj</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Shrani</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Ne posodobi</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Ne zdaj</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Posodobi</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Polje za geslo ne sme biti prazno</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Vnesite geslo</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Ni mogoče shraniti povezave</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Gesla ni mogoče shraniti</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Shranim to prijavo?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Posodobim to prijavo?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Dodaj shranjenemu geslu uporabniško ime?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Oznaka polja za vnos besedila</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Izberite barvo</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Dovoli</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Zavrni</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Ali ste prepričani?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Ali res želite zapustiti to spletno mesto? Podatki, ki ste jih vnesli, morda ne bodo shranjeni</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Ostani na strani</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Zapusti stran</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Izberi mesec</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Maj</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Avg</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dec</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Nastavi čas</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Upravljanje prijav</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Upravljanje gesel</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Razširi predlagane prijave</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Prikaži shranjena gesla</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Strni predlagane prijave</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Skrij shranjena gesla</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Predlagane prijave</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Shranjena gesla</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Predlagaj močno geslo</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Predlagaj močno geslo</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Uporabi močno geslo: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Ponovno pošlji podatke spletnemu mestu?</string> + <string name="mozac_feature_prompt_repost_message">Osvežitev te strani lahko podvoji nedavna dejanja, kot je pošiljanje plačila ali objava komentarja.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Znova pošlji podatke</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Prekliči</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Izberite kreditno kartico</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Uporabi shranjeno kartico</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Razširi predlagane kreditne kartice</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Prikaži shranjene kartice</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Strni predlagane kreditne kartice</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Skrij shranjene kartice</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Upravljanje kreditnih kartic</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Upravljanje kartic</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Želite varno shraniti to kartico?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Posodobi datum poteka veljavnosti kartice?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Številka kartice bo šifrirana. Varnostna koda ne bo shranjena.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s šifrira številko vaše kartice. Varnostna koda se ne bo shranila.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Izbira naslova</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Razširi predlagane naslove</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Prikaži shranjene naslove</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Strni predlagane naslove</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Skrij shranjene naslove</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Upravljanje naslovov</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Slika računa</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Izberite ponudnika prijave</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Prijava z računom %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Uporabi %1$s kot ponudnika prijave</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Pri prijavi v %1$s z računom %2$s veljajo njihovi <a href="%4$s">pogoji uporabe</a> in <a href="%3$s">pravilnik o zasebnosti</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Nadaljuj</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Prekliči</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-sq/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-sq/strings.xml new file mode 100644 index 0000000000..8a5a8bcaff --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-sq/strings.xml @@ -0,0 +1,188 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Anuloje</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Pengoja kësaj faqeje krijimin e dialogëve shtesë</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Vëre</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Spastroje</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Hyni</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Emër përdoruesi</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Fjalëkalim</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Mos e ruaj</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Jo tani</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Mos e ruaj kurrë</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Jo tani</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Ruaje</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Mos e përditëso</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Jo tani</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Përditësoje</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Fusha e fjalëkalimit s’duhet të jetë e zbrazët</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Jepni një fjalëkalim</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">S’arrihet të ruhen kredenciale hyrjesh</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">S’ruhet dot fjalëkalimi</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Të ruhen këto kredenciale hyrjesh?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Të ruhet fjalëkalimi?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Të përditësohen këto kredenciale hyrjesh?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Të përditësohet fjalëkalimi?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Të shtohet emri i përdoruesit te fjalëkalimi i ruajtur?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etiketë për dhënie te një fushë futjeje tekstesh</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Zgjidhni një ngjyrë</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Lejoje</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Mohoje</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Jeni i sigurt?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Doni ta braktisni këtë sajt? Të dhënat që keni dhënë mund të mos ruhen</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Qëndro</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Braktise</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Zgjidhni një muaj</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Shk</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Pri</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Maj</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Qer</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Kor</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Gus</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sht</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Tet</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nën</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dhj</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Ujdisni kohën</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Administroni kredenciale hyrjesh</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Administroni fjalëkalime</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Zgjeroji kredencialet e sugjeruara të hyrjeve</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Zgjero fjalëkalimet e ruajtur</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Tkurri kredencialet e sugjeruara të hyrjeve</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Tkurri fjalëkalimet e ruajtur</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Kredenciale të sugjeruara hyrjesh</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Fjalëkalime të ruajtur</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Sugjero fjalëkalim të fuqishëm</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Sugjero fjalëkalim të fuqishëm</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Përdor fjalëkalim të fuqishëm: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Të ridërgohen të dhëna te ky sajt?</string> + <string name="mozac_feature_prompt_repost_message">Rifreskimi i kësaj faqeje mund të përsëdytëte veprime tani së fundi, të tilla si dërgimi i një pagese apo postimi i një komenti dy herë.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Ridërgoji të dhënat</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Anuloje</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Përzgjidhni kartë krediti</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Përdor kartë të ruajtur</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Zgjero karta kreditit të sugjeruara</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Zgjero karta të ruajtura</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Tkurri kartat e kreditit të sugjeruara</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Tkurri kartat e ruajtura</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Administroni karta krediti</string> + + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Administroni karta</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Të ruhet në mënyrë të sigurt kjo kartë?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Të përditësohet data e skadimit të kartës?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Numri i kartës do të fshehtëzohet. Kodi i sigurisë s’do të ruhet.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s-i e fshehtëzon numrin e kartës tuaj. Kodi juaj i sigurisë s’do të ruhet.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Përzgjidhni adresë</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Zgjeroji adresat e sugjeruara</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Zgjeroji adresat e ruajtura</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Tkurri adresat e sugjeruara</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Tkurri adresat e ruajtura</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Administroni adresa</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Foto llogarie</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Zgjidhni një shërbim hyrjesh</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Bëni hyrjen me një llogari %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Përdor %1$s si shërbim hyrjesh</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Hyrja te %1$s me një llogari %2$s është subjekt i <a href="%3$s">Rregullave të Privatësisë</a> dhe <a href="%4$s">Kushteve të Shërbimit</a> të tyre]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Vazhdo</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Anuloje</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-sr/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-sr/strings.xml new file mode 100644 index 0000000000..a231fed4e9 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-sr/strings.xml @@ -0,0 +1,144 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ОК</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Откажи</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Онемогући овој страници да ствара додатне дијалоге</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Постави</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Обриши</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Пријави се</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Корисничко име</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Лозинка</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Немој сачувати</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Никада не чувај</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Не сада</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Сачувај</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Немој ажурирати</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Ажурирај</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Поље за лозинку не сме бити празно</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Није могуће сачувати пријаву</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Сачувати ову пријаву?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Ажурирати ову пријаву?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Додати корисничко име у сачувану лозинку?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Ознака за попуњавање поља за унос текста</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Изаберите боју</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Дозволи</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Забрани</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Да ли сте сигурни?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Да ли желите да напустите ову страницу? Подаци које сте унели се можда неће сачувати</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Остани</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Напусти</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Изаберите месец</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Јан</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Феб</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Мар</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Апр</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Мај</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Јун</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Јул</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Авг</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Сеп</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Окт</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Нов</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Дец</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Постави време</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Управљај пријавама</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Прошири предложене пријаве</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Скупи предложене пријаве</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Предложене пријаве</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Желите ли поново послати податке на ову страницу?</string> + <string name="mozac_feature_prompt_repost_message">Освежавање ове странице може резултовати дуплирањем недавних радњи, као што је дупло слање уплате или постављање коментара.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Поново пошаљи податке</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Откажи</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Изабери кредитну картицу</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Рашири препоручене кредитне картице</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Скупи препоручене кредитне картице</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Управљај кредитним картицама</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Безбедно сачувати ову картицу?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Ажурирати датум истека картице?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Број картице биће шифрован. Безбедносни код неће бити сачуван.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Изабери адресу</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Рашири предложене адресе</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Скупи предложене адресе</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Управљај адресама</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Слика налога</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Изаберите добављача за пријаву</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Пријавите се преко %1$s налога</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Користите %1$s као добављач пријављивања</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Пријављивање на %1$s преко %2$s налога подлеже њиховој <a href="%3$s">политици приватности</a> и <a href="%4$s">условима коришћења</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Настави</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Откажи</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-su/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-su/strings.xml new file mode 100644 index 0000000000..8069cf1b66 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-su/strings.xml @@ -0,0 +1,151 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">HEUG</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Bolay</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Nyegah ieu kaca tina ngadamel dialog anu sanés</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Setél</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Beresihan</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Asup</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Sandiasma</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Kecap sandi</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Ulah diteundeun</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Ulah diteundeun</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Engké deui</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Teundeun</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Ulah ngapdét</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Apdét</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Widang kecap sandi henteu kaci kosong</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Teu bisa neundeun login</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Teundeun ieu login?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Apdét ieu login?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Tambahkeun sandiasma kana kecap sandi anu diteundeun?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Label pikeun nuliskeun widang input téks</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Pilih kelir</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Idinan</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Tolak</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Anjeun yakin?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Arék ninggalkeun ieu loka? Data anu geus diasupkeun bisa leungit</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Cicing</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Tinggalkeun</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Pilih sasih</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Péb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Méi</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Agu</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sép</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nop</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dés</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Setél wanci</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Kokolakeun login</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Legaan saran login</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Leutikan saran login</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Saran login</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Usulkeun kecap sandi anu wedel</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Usulkeun kecap sandi anu wedel</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Paké kecap sandi anu wedel: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Kirimkeun deui data ka ieu loka?</string> + <string name="mozac_feature_prompt_repost_message">Nyegerkeun ieu kaca bisa ngaduplikasi peta panganyarna, contona mayar atawa ngirim koméntar dua kali.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Kirimkeun deui data</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Bolay</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Pilih kartu kiridit</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Legaan kartu kiridit anu disarankeun</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Tilep saran kartu kiridit</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Kokolakeun kartu kiridit</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Teundeun ieu kartu sacara aman?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Mutahirkeun titimangsa kadaluwarsa kartu?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Nomer kartu bakal diénkrip. Kode kaamanan moal diteundeun.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Pilih alamat</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Legaan saran alamat</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Leutikan saran alamat</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Kokolakeun alamat</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Gambar akun</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Pilih panyadia login</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Asup maké akun %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Paké %1$s salaku panyadia login</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Asup log ka %1$s maké akun %2$s nurut kana <a href="%3$s">Kawijakan Pripasi</a> jeung <a href="%4$s">Katangtuan Layanan.</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Tuluykeun</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Bolay</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-sv-rSE/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-sv-rSE/strings.xml new file mode 100644 index 0000000000..a4c4cb0a83 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-sv-rSE/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Avbryt</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Förhindra att den här sidan skapar fler dialogrutor</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Ange</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Rensa</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Logga in</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Användarnamn</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Lösenord</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Spara inte</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Inte nu</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Spara aldrig</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Inte nu</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Spara</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Uppdatera inte</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Inte nu</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Uppdatera</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Lösenordsfältet får inte vara tomt</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Ange ett lösenord</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Kunde inte spara inloggningsuppgifter</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Det går inte att spara lösenordet</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Spara den här inloggningen?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Spara lösenord?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Vill du uppdatera den här inloggningen?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Uppdatera lösenord?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Lägg till användarnamn till det sparade lösenordet?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Etikett för att ange ett textinmatningsfält</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Välj en färg</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Tillåt</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Neka</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Är du säker?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Vill du lämna den här webbplatsen? Data du har angett kanske inte sparas</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Stanna</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Lämna</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Välj en månad</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Maj</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Aug</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dec</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Ange tid</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Hantera inloggningar</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Hantera lösenord</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Expandera föreslagna inloggningar</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Expandera sparade lösenord</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Komprimera föreslagna inloggningar</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Komprimera sparade lösenord</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Föreslagna inloggningar</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Sparade lösenord</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Föreslå ett starkt lösenord</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Föreslå ett starkt lösenord</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Använd starkt lösenord: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Skicka data igen till den här webbplatsen?</string> + <string name="mozac_feature_prompt_repost_message">Uppdatering av den här sidan kan duplicera senaste åtgärder, till exempel att skicka en betalning eller lägga upp en kommentar två gånger.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Skicka data igen</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Avbryt</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Välj kreditkort</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Använd sparat kort</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Expandera föreslagna kreditkort</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Expandera sparade kort</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Komprimera föreslagna kreditkort</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Komprimera sparade kort</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Hantera kreditkort</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Hantera kort</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Vill du spara det här kortet säkert?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Uppdatera kortets utgångsdatum?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Kortnummer kommer att krypteras. Säkerhetskoden kommer inte att sparas.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s krypterar ditt kortnummer. Din säkerhetskod kommer inte att sparas.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Välj adress</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Expandera föreslagna adresser</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Expandera sparade adresser</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Komprimera föreslagna adresser</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Komprimera sparade adresser</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Hantera adresser</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Kontobild</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Välj en inloggningsleverantör</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Logga in med ett %1$s-konto</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Använd %1$s som inloggningsleverantör</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Att logga in på %1$s med ett %2$s-konto omfattas av deras <a href="%3$s">sekretesspolicy</a> och <a href="%4$s">användarvillkor </a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Fortsätt</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Avbryt</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ta/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ta/strings.xml new file mode 100644 index 0000000000..c65df4f77b --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ta/strings.xml @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">சரி</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">இரத்து</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">கூடுதல் உரையாடல்களை உருவாக்குவதிலிருந்து இந்தப் பக்கத்தைத் தடுக்கவும்</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">அமை</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">துடை</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">உள்நுழை</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">பயனர்பெயர்</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">கடவுச்சொல்</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">சேமிக்காதே</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">ஒருபோதும் சேமிக்காதே</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">சேமி</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">புதுப்பிக்காதே</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">புதுப்பி</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">கடவுச்சொல் களம் காலியாக இருக்கக்கூடாது</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">புகுபதிகையைச் சேமிக்க இயலவில்லை</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">இப்புகுபதிகையைச் சேமிக்கவா?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">இப்புகுபதிகையைப் புதுப்பிக்கவா?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">சேமிக்கப்பட்ட கடவுச்சொல்லிற்குப் பயனர்பெயரைச் சேர்க்கவா?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">உரை உள்ளீட்டுக் களத்தில் உள்ளிடுவதற்கான அடையாளம்</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">வண்ணத்தைத் தேர்வுசெய்க</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">அனுமதி</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">நிராகரி</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">உறுதியாக?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">இத்தளத்தை விட்டு வெளியேற விரும்புகிறீர்களா? நீங்கள் உள்ளிட்ட தரவு சேமிக்கப்படாமல் போகலாம்</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">இரு</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">வெளியேறு</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">ஒரு மாதத்தை தேர்ந்தெடு</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">ஜன</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">பிப்</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">மார்</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">ஏப்</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">மே</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">யூன்</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">யூலை</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">ஆக</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">செப்</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">அக்</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">நவ</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">டிச</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">உள்நுழைவுகளை நிர்வகி</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">பரிந்துரைத்த உள்நுழைவுகளை விரிவாக்குங்கள்</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">பரிந்துரைத்த உள்நுழைவுகளை விரிவாக்கு</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">பரிந்துரைத்த உள்நுழைவுகள்</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">இத்தளத்திற்குத் தரவை மீண்டும் அனுப்பவா?</string> + <string name="mozac_feature_prompt_repost_message">இந்தப் பக்கத்தைப் புதுப்பிப்பது அண்மையச் செயல்களை திரும்பச் செய்யக்கூடும், இருமுறை பணம் அனுப்புதல் அல்லது இருமுறை கருத்திடல் போன்றவை.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">தரவை மீண்டும் அனுப்பு</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">இரத்துசெய்</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-te/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-te/strings.xml new file mode 100644 index 0000000000..292fec853a --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-te/strings.xml @@ -0,0 +1,100 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">సరే</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">రద్దుచేయి</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">అదనపు డైలాగులు సృష్టించకుండా ఈ పేజీని నివారించు</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">అమర్చు</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">తుడిచివేయి</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">ప్రవేశించు</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">వాడుకరి పేరు</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">సంకేతపదం</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">భద్రపరచవద్దు</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">ఎప్పుడూ భద్రపరచవద్దు</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">ఇప్పుడు కాదు</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">భద్రపరుచు</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">తాజాకరించవద్దు</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">తాజాకరించు</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">సంకేతపదం ఖాళీగా ఉండకూడదు</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">ప్రవేశ వివరాలను భద్రపరచలేకపోతున్నాం</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">ఈ ప్రవేశాన్ని భద్రపరచాలా?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">ఈ ప్రవేశాన్ని తాజాకరించాలా?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">భద్రపరచిన సంకేతపదానికి వాడుకరి పేరును చేర్చాలా?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">పాఠ్య ఖాళీని పూరించడానికి లేబుల్</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">ఒక రంగును ఎంచుకోండి</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">అనుమతించు</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">తిరస్కరించు</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">మీరు నిశ్చితమేనా?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">ఈ సైటును వదిలి వెళ్లాలనుకుంటున్నారా? మీరు నమోదు చేసిన డేటా భద్రపరచబడకపోవచ్చు</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">ఉండు</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">వదలివెళ్ళు</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">ఒక నెల ఎంచుకోండి</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">జన</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">ఫిబ్ర</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">మార్చి</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">ఏప్రి</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">మే</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">జూన్</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">జూలై</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">ఆగ</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">సెప్టెం</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">అక్టో</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">నవం</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">డిసెం</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">ప్రవేశాలను నిర్వహించండి</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">సూచించిన ప్రవేశాలను విస్తరించు</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">సూచించిన ప్రవేశాలను కుదించు</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">సూచించిన ప్రవేశాలు</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">ఈ సైటుకి డేటాని మళ్ళీ పంపాలా?</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">డేటాను మళ్ళీ పంపించు</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">రద్దుచేయి</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-tg/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-tg/strings.xml new file mode 100644 index 0000000000..58703d132c --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-tg/strings.xml @@ -0,0 +1,188 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ХУБ</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Бекор кардан</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Ин саҳифаро аз эҷоди равзанаҳои гуфтугӯии иловагӣ пешгирӣ намоед</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Танзим кардан</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Пок кардан</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Ворид шудан</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Номи корбар</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Ниҳонвожа</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Нигоҳ дошта нашавад</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Ҳоло не</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Ҳеҷ гоҳ нигоҳ дошта нашавад</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Ҳоло не</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Нигоҳ доштан</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Навсозӣ карда нашавад</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Ҳоло не</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Навсозӣ кардан</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Ҷойи ниҳонвожа бояд холӣ набошад</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Ниҳонвожаеро ворид намоед</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Нигоҳ доштани маълумоти воридшавӣ ғайриимкон аст</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Ниҳонвожа нигоҳ дошта нашуд</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Маълумоти воридшавии ҷориро нигоҳ медоред?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Ниҳонвожаро нигоҳ медоред?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Маълумоти воридшавии ҷориро аз нав нигоҳ медоред?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Ниҳонвожаро аз нав нигоҳ медоред?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Номи корбарро ба ниҳонвожаи нигоҳдошташуда илова мекунед?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Нишона барои ворид кардани майдони воридкунии матн</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Рангеро интихоб кунед</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Иҷозат додан</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Рад кардан</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Шумо мутмаин ҳастед?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Шумо мехоҳед, ки ин сомонаро тарк намоед? Маълумоте, ки шумо ворид кардед, метавонад нигоҳ дошта нашавад</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Истодан</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Тарк кардан</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Моҳеро интихоб намоед</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Янв</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Фев</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Мар</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Апр</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Май</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Июн</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Июл</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Авг</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Сен</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Окт</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Ноя</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Дек</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Танзими вақт</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Идоракунии воридшавӣ</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Идоракунии ниҳонвожаҳо</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Намоиш додани воридшавиҳои пешниҳодшуда</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Баркушодани ниҳонвожаҳои нигоҳдошташуда</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Пинҳон кардани воридшавиҳои пешниҳодшуда</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Пинҳон кардани ниҳонвожаҳои нигоҳдошташуда</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Воридшавиҳои пешниҳодшуда</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Ниҳонвожаҳои нигоҳдошташуда</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Пешниҳод кардани ниҳонвожаи боқувват</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Пешниҳод кардани ниҳонвожаи боқувват</string> + + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Аз ниҳонвожаи қавӣ истифода баред: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Маълумотро ба ин сомона аз нав мефиристонед?</string> + <string name="mozac_feature_prompt_repost_message">Амали навсозии ин саҳифа метавонад амалҳои охиринро такрор намояд, масалан, амали пардохт ё интишори шарҳ метавонад дубора иҷро карда шавад.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Аз нав фиристодани маълумот</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Бекор кардан</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Корти кредитиро интихоб кунед</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Истифодаи корти нигоҳдошташуда</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Кортҳои кредитии пешниҳодшударо нишон диҳед</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Баркушодани кортҳои нигоҳдошташуда</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Кортҳои кредитии пешниҳодшударо пинҳон кунед</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Пинҳон кардани кортҳои нигоҳдошташуда</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Идоракунии кортҳои кредитӣ</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Идоракунии кортҳо</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Ин кортро ба таври бехатар нигоҳ медоред?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Санаи анҷоми муҳлати кори кортро нав мекунед?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Рақами корт рамзгузорӣ карда мешавад. Рамзи амниятӣ нигоҳ дошта намешавад.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">«%s» рақами корти шуморо рамзгузорӣ мекунад. Рамзи амниятии шумо нигоҳ дошта намешавад.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Интихоб кардани нишонӣ</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Намоиш додани нишониҳои пешниҳодшуда</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Баркушодани нишониҳои нигоҳдошташуда</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Пинҳон кардани нишониҳои пешниҳодшуда</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Пинҳон кардани нишониҳои нигоҳдошташуда</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Идоракунии нишониҳо</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Акси ҳисоб</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Интихоби таъминкунандаи воридшавӣ</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Бо ҳисоби «%1$s» ворид шавед</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Истифода бурдани «%1$s» ҳамчун таъминкунандаи воридшавӣ</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Вақте ки шумо ба «%1$s» бо ҳисоби «%2$s» ворид мешавед, <a href="%3$s">Сиёсати махфият</a> ва <a href="%4$s">Шартҳои хизматрасонии</a> марбут ба он татбиқ карда мешавад]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Идома додан</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Бекор кардан</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-th/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-th/strings.xml new file mode 100644 index 0000000000..b8bf2bd77c --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-th/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ตกลง</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">ยกเลิก</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">ป้องกันไม่ให้หน้านี้แสดงกล่องโต้ตอบเพิ่มอีก</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">ตั้ง</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">ล้าง</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">ลงชื่อเข้า</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">ชื่อผู้ใช้</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">รหัสผ่าน</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">ไม่บันทึก</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">ยังไม่ทำตอนนี้</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">ไม่บันทึกเสมอ</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">ไม่ใช่ตอนนี้</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">บันทึก</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">ไม่อัปเดต</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">ยังไม่ทำตอนนี้</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">อัปเดต</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">ช่องป้อนรหัสผ่านจะต้องไม่ว่างเปล่า</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">ป้อนรหัสผ่าน</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">ไม่สามารถบันทึกการเข้าสู่ระบบ</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">ไม่สามารถบันทึกรหัสผ่านได้</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">บันทึกการเข้าสู่ระบบนี้?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">บันทึกรหัสผ่านหรือไม่?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">อัปเดตการเข้าสู่ระบบนี้?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">ปรับปรุงรหัสผ่านหรือไม่?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">เพิ่มชื่อผู้ใช้ในรหัสผ่านที่บันทึกไว้?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">ป้ายกำกับสำหรับช่องป้อนข้อความ</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">เลือกสี</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">อนุญาต</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">ปฏิเสธ</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">คุณแน่ใจหรือไม่?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">คุณต้องการออกจากไซต์นี้หรือไม่? ข้อมูลที่คุณใส่อาจไม่ถูกบันทึก</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">อยู่ต่อ</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">ออก</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">เลือกเดือน</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">ม.ค.</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">ก.พ.</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">มี.ค.</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">เม.ย.</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">พ.ค.</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">มิ.ย.</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">ก.ค.</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">ส.ค.</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">ก.ย.</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">ต.ค.</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">พ.ย.</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">ธ.ค.</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">ตั้งเวลา</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">จัดการการเข้าสู่ระบบ</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">จัดการรหัสผ่าน</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">ขยายการเข้าสู่ระบบที่เสนอแนะ</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">ขยายรหัสผ่านที่บันทึกไว้</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">ยุบการเข้าสู่ระบบที่เสนอแนะ</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">ยุบรหัสผ่านที่บันทึกไว้</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">การเข้าสู่ระบบที่เสนอแนะ</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">รหัสผ่านที่บันทึกไว้</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">แนะนำรหัสผ่านที่คาดเดายาก</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">แนะนำรหัสผ่านที่คาดเดายาก</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">ใช้รหัสผ่านที่คาดเดายาก: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">ส่งข้อมูลไปยังไซต์นี้อีกครั้งไหม</string> + <string name="mozac_feature_prompt_repost_message">การเรียกหน้านี้ใหม่อาจทำให้เกิดการกระทำซ้ำเช่นการส่งการชำระเงินหรือโพสต์ความคิดเห็นซ้ำ</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">ส่งข้อมูลอีกครั้ง</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">ยกเลิก</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">เลือกบัตรเครดิต</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">ใช้บัตรที่บันทึกไว้</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">ขยายบัตรเครดิตที่เสนอแนะ</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">ขยายบัตรที่บันทึกไว้</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">ยุบบัตรเครดิตที่เสนอแนะ</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">ยุบบัตรที่บันทึกไว้</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">จัดการบัตรเครดิต</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">จัดการบัตร</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">ต้องการบันทึกบัตรนี้อย่างปลอดภัยหรือไม่?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">ต้องการปรับปรุงวันหมดอายุบัตรหรือไม่?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">หมายเลขบัตรจะถูกเข้ารหัส รหัสความปลอดภัยจะไม่ถูกบันทึก</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s จะเข้ารหัสหมายเลขบัตรของคุณ รหัสความปลอดภัยของคุณจะไม่ถูกบันทึก</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">เลือกที่อยู่</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">ขยายที่อยู่ที่เสนอแนะ</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">ขยายที่อยู่ที่บันทึกไว้</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">ยุบที่อยู่ที่เสนอแนะ</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">ยุบที่อยู่ที่บันทึกไว้</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">จัดการที่อยู่</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">รูปภาพบัญชี</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">เลือกผู้ให้บริการเข้าสู่ระบบ</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">ลงชื่อเข้าด้วยบัญชี %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">ใช้ %1$s เป็นผู้ให้บริการเข้าสู่ระบบ</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[การลงชื่อเข้าใช้ %1$s ด้วยบัญชี %2$s อยู่ภายใต้<a href="%3$s">นโยบายความเป็นส่วนตัว</a>และ<a href="%4$s">ข้อกำหนดในการให้บริการ</a>ของผู้ให้บริการ]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">ดำเนินการต่อ</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">ยกเลิก</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-tl/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-tl/strings.xml new file mode 100644 index 0000000000..ac77bdfebf --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-tl/strings.xml @@ -0,0 +1,123 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Kanselahin</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Pigilan ang pahinang ito sa pagpapakita ng mga karagdagang dialog</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Itakda</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Alisin</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Mag-sign in</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Username</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Password</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Huwag i-save</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Huwag kailanman i-save</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Hindi Ngayon</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">i-Save</string> + + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Huwag i-update</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">I-update</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Hindi dapat blangko ang password field</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Hindi mai-save ang login</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">i-Save ang login na ito?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">i-Update ang pag-login na ito?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Idagdag ang username sa naka-save na password?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Label para sa paglagay sa text input field</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Pumili ng kulay</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Payagan</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Tanggihan</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Sigurado ka ba?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Gusto mo bang umalis sa site na ito? Hindi mase-save ang data na naipasok mo na</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Manatili</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Umalis na</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Pumili ng buwan</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Ene</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Peb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Abr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">May</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Hun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Hul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Ago</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Set</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nob</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dis</string> + + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">i-Manage ang mga login</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Palawakin ang mga minumungkahing login</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Itago ang mga minumungkahing login</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Mga minumungkahing login</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Muling ipadala ang data sa site na ito?</string> + <string name="mozac_feature_prompt_repost_message">Ang pag-refresh sa pahinang ito ay maaaring magpadoble ng mga aksyon, gaya ng pagpapadala ng bayad o mag-post ng komento nang dalawang beses.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Ipadala muli ang data</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Kanselahin</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Pumili ng credit card</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Palawakin ang naka-mungkahing mga credit card</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Itago ang mga minungkahing credit card</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Pamahalaan ang mga credit card</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">I save and Card</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">I update and expiration ng card?</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Mamili ng address</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Pamahalaan ang mga address</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-tok/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-tok/strings.xml new file mode 100644 index 0000000000..888800ee55 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-tok/strings.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">pona</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">ala</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">o ken ala e lipu lili sin tan lipu ni</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">o weka</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">o kama</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">nimi</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">nimi open</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">o awen ala</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">ala la o awen</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">o awen</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">o sin ala</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">o sin</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">o pana e nimi open</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">mi ken ala awen e nimi open</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">o awen ala awen e nimi open ni?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">o sin ala sin e nimi open ni?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">sina pana ala pana e nimi tawa nimi open ni?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">nimi pi poki sitelen</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">o jo e kule</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">o ken</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">o ken ala</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">sina wile ala wile?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">sina weka ala weka tan lipu ni? sona sina li ken awen ala.</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">ala</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">weka</string> + + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">o ante e nimi open</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">o lukin mute e nimi open</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">o lukin lili e nimi open mute</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">nimi open pi lipu ni</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">o pana ala pana sin e sona tawa lipu ni?</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">pana</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">ala</string> + + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">o lukin mute e lipu mani</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">o lukin lili e lipu mani</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings --> + <string name="mozac_feature_prompts_manage_credit_cards">o ante e lipu mani</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-tr/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-tr/strings.xml new file mode 100644 index 0000000000..868387a034 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-tr/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Tamam</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">İptal</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Bu sayfanın ek iletişim kutuları oluşturmasının önle</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Ayarlandı</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Temizle</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Giriş yap</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Kullanıcı adı</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Parola</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Kaydetme</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Şimdi değil</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Asla kaydetme</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Şimdi değil</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Kaydet</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Güncelleme</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Şimdi değil</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Güncelle</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Parola alanı boş olmamalıdır</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Parola girin</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Hesap kaydedilemedi</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Parola kaydedilemedi</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Bu hesap kaydedilsin mi?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Parola kaydedilsin mi?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Bu hesap güncellensin mi?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Parola güncellensin mi?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Kayıtlı parolaya kullanıcı adı eklensin mi?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Metin giriş alanı etiketi</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Bir renk seçin</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">İzin ver</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Reddet</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Emin misiniz?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Bu siteden çıkmak istiyor musunuz? Girdiğiniz veriler kaydedilmeyebilir</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Sitede kal</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Çık</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Bir ay seçin</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Oca</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Şub</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Nis</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">May</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Haz</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Tem</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Ağu</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Eyl</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Eki</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Kas</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Ara</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Zamanı ayarla</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Hesapları yönet</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Parolaları yönet</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Önerilen hesapları genişlet</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Kayıtlı parolaları genişlet</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Önerilen hesapları daralt</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Kayıtlı parolaları daralt</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Önerilen hesaplar</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Kayıtlı parolalar</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Güçlü parola öner</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Güçlü parola öner</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Güçlü parola kullan: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Veriler siteye yeniden gönderilsin mi?</string> + <string name="mozac_feature_prompt_repost_message">Bu sayfayı tazelemek, son yaptığınız eylemleri (örn. ödeme yapma veya yorum gönderme) tekrarlayabilir.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Verileri yeniden gönder</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">İptal</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Kredi kartı seç</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Kayıtlı kartı kullan</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Önerilen kredi kartlarını genişlet</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Kayıtlı kartları genişlet</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Önerilen kredi kartlarını daralt</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Kayıtlı kartları daralt</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Kredi kartlarını yönet</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Kartları yönet</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Bu kart güvenli bir şekilde kaydedilsin mi?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Kartın son kullanma tarihi güncellensin mi?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Kart numarası şifrelenecektir. Güvenlik kodu kaydedilmeyecektir.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s kart numaranızı şifreler. Güvenlik kodunuz kaydedilmez.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Adres seçin</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Önerilen adresleri genişlet</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Kayıtlı adresleri genişlet</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Önerilen adresleri daralt</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Kayıtlı adresleri daralt</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Adresleri yönet</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Hesap resmi</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Oturum açma sağlayıcısı seç</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">%1$s hesabıyla oturum aç</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Oturum açma sağlayıcısı olarak %1$s kullan</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[%2$s hesabıyla %1$s üzerinde oturum açtığınızda bu sağlayıcının <a href="%3$s">Gizlilik Politikası</a> ve <a href="%4$s">Hizmet Koşulları</a>’na tabi olursunuz]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">İleri</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Vazgeç</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-trs/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-trs/strings.xml new file mode 100644 index 0000000000..3656a7f581 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-trs/strings.xml @@ -0,0 +1,142 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Gā\'ue</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Dūyichin\'</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Nāgi\'iaj da\' si giri pajinâ nan a\'ngô sa gīrij</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Nāgi\'iaj yītïnj</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Nā\'nïn\'</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Gāyi\'ì sēsiûn</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Si yūguî rè\'</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Da\'nga\' huìi</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Sī na\'nïn sà\'t</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Nitāj āmān nā\'nïnj sà\'t</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Sī ga\'hue akuan\' nïn</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Nā\'nïnj sà\'</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Sī nagi\'iaj nākàt</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Nāgi\'iaj nākà</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Nitāj si da\'ui gūnàj gātsì riña huāj da\'nga\' huìi</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Na\'ue nā\'nïnj sà\'aj riña gayì\'ìt sēsiûn</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Nā\'nïnj sà\'t riña gayì\'ìt sēsiûn nan anj.</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Nāgi\'iaj nākat riña gayì\'ìt sēsiûn nan anj.</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Nūtà\'t si yūguît riña da\'nga\' huì na\'nïn sà\' raj.</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Gāchrūn \'ngō etikêta si ruhuât gātūy hiūj dan</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Nāguī \'ngō kōlô</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Gā\'nïn</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Sī ga\'nïnjt</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Huā nīkā ruhuâ raj.</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Ruhuât gāhuīt riña sitiô nan anj. Ga\'ue nārè\' nej nuguan\' ngà duguatûjt</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Gūnàj gīnut</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Gāhuī riña sîtio</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Nāguī \'ngō ahuii</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Ahui yi\'î hio\'o</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Ahui gūdukuu</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Ahui unu\'</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Ahui ñan\'ānj du\'ui</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Ahui diû huaan</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Ahui numân gumàan</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Ahui hiej</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Ahui yi\'naa</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Ahui umin rikî\'</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Ahui nîma</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Ahui Sāndrisìi</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Ahui hio\' yi</string> + + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Gānïn ‘ngō diû</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Gīni’hiāj rayi’î riña ayi’ìt sēsiûn</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Nāgi’hiaj nìko nej riña ayi’ìt sesiûn huaa</string> + + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Gāchrī huì nej riña ayi’ìt sesiûn huaa</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Nej riña ayi’ìt sesiûn huaa</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Nā’nïnjt nej dato riña sitiô nan anj.</string> + <string name="mozac_feature_prompt_repost_message">Sisī nāgi’hiaj nākàt pajinâ nan nī gā’hue nāhuin huà’ nej sa gi’hiaj nākàt, dàj rû’ gā’nïnjt ‘ngō san’ānj an asi huà’ gāhuī ‘ngō nuguan’ gā’nïnjt.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Nā’nïnj ñû gān’ānj nej dâto</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Dūyichin\'</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Nāguī tarjeta san’ānj an</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Nāgi’hiaj da’ gatū doj nej tarjeta san’ānj an</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Gāchrī huì nej tarjeta san’ānj huāa</string> + + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Ni’hiāj dàj gā nej tarjeta san’ānj an</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Nā’nïnj sà’ hue’êt tarjeta nan anj.</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Nāgi’hiāj nākàt diû gisìj gīrè’ tarjeta nan anj</string> + + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Nāruguì’ da’ga’ nīkāj si tarjetât. Si nanun sà’ da’nga’ gāhui rayi’ij.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Nāguī ‘ngō dīreksiûn</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Nāgi’hiaj nìko nej direksiûn huaa</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Gāchrī huì nej direksiûn huaa</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Ni’hiāj dàj gā nej dīreksiûn</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Ñadu’hua ginù riña kuênda</string> + <!-- Title of the Identity Credential provider dialog choose. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Nāna’huì’ ‘ngō sa rūgûñu’ūnj gāyi’ì’ sēsiûn</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Gārasun %1$s da’ rūgûñu’ūnj man gāyi’ìt sēsiûn</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Gāyi’ì sēsiûn riña %1$s ngà ‘ngō %2$s kuendâ nīkò’ rukû <a href="%3$s">Nuguan’ guendâ gā huì gāchē nunt</a> nī <a href="%4$s">Sa da’huît gīni’înt da’ gā’hue gārasunt</a>]]></string> + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-tt/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-tt/strings.xml new file mode 100644 index 0000000000..497b129f7f --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-tt/strings.xml @@ -0,0 +1,128 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ОК</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Баш тарту</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Бу битне өстәмә диалог тәрәзәләрен ачудан тый</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Урнаштыру</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Чистарту</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Керү</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Кулланучы исеме</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Парол</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Сакламау</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Беркайчан да cакламау</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Хәзер түгел</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Саклау</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Яңартмау</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Яңарту</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Серсүз кыры буш булырга тиеш түгел</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Логинны саклап булмый</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Бу логин саклансынмы?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Бу логин яңартылсынмы?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Сакланган серсүз янына кулланучы исеме өстәлсенме?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Текст кертү кырының тамгасы</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Төс сайлау</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Рөхсәт итү</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Кире кагу</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Моны раслыйсызмы?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Сез бу сайттан чыгарга телисезме? Сез керткән мәгълүмат сакланмаган булырга мөмкин</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Калу</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Чыгу</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Айны сайлау</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Гый</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Фев</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Мар</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Апр</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Май</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Июн</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Июл</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Авг</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Сен</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Окт</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Ноя</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Дек</string> + + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Вакытны билгеләү</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Логиннар белән идарә итү</string> + + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Тәкъдим ителгән логиннарны киңәйтү</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Тәкъдим ителгән логиннарны төрү</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Тәкъдим ителгән логиннар</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Бу сайтка мәгълүматны яңадан җибәрергәме?</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Мәгълүматны яңадан җибәрү</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Баш тарту</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Кредит картасын сайлау</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Тәкъдим ителгән кредит карталарын җәю</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Тәкъдим ителгән кредит карталарын төрү</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Кредит карталары белән идарә итү</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Бу картаны хәвефсез рәвештә саклансынмы?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Картаның вакыты чыгу датасы яңартылсынмы?</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Адрес сайлау</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Тәкъдим ителгән адресларны ачып салу</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Тәкъдим ителгән адресларны төрү</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Адреслар белән идарә итү</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-tzm/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-tzm/strings.xml new file mode 100644 index 0000000000..f1f4000754 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-tzm/strings.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">WAXXA</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Sfeḍ</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Kcem</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Isem n unessemres</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Taguri n uzerray</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Sti yan uklu</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">ssureg</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">S tidet?</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Qqim</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Ffeɣ</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Fren yan uyyur</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Yen</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Bṛa</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Maṛ</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Ibr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">May</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Yun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Yul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Ɣuc</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Cut</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Kṭu</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nwa</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Duj</string> + + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Ssuter ifeska</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ug/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ug/strings.xml new file mode 100644 index 0000000000..e044589822 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ug/strings.xml @@ -0,0 +1,190 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ماقۇل</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">بىكار قىلىش</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">بۇ بەتنىڭ تېخىمۇ كۆپ سۆزلەشكۈ قۇرۇشىنىڭ ئالدىنى ئالىدۇ</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">تەڭشەك</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">تازىلاش</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">كىرىش</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">ئىشلەتكۈچى</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">پارول</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">ساقلىما</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">ھازىر ئەمەس</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">ھەرگىز ساقلىما</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">ھازىر ئەمەس</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">ساقلا</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">يېڭىلانمىسۇن</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">ھازىر ئەمەس</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">يېڭىلاش</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">ئىم بۆلىكى بوش قالمايدۇ</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">ئىم كىرگۈزۈلىدۇ</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">كىرىش ئۇچۇرىنى ساقلىيالمايدۇ</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">ئىم ساقلىيالمايدۇ</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">بۇ كىرىشنى ساقلامدۇ؟</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">ئىم ساقلامدۇ؟</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">بۇ كىرىشنى يېڭىلامدۇ؟</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">ئىم يېڭىلامدۇ؟</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">ساقلانغان ئىمغا ئىشلەتكۈچى ئاتىنى قوشامدۇ؟</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">تېكىست كىرگۈزۈش بۆلىكىنىڭ بەلگىسى</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">رەڭ تاللىنىدۇ</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">رۇخسەت قىلىش</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">رەت قىلىش</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">جەزملەشتۈرەمسىز؟</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">بۇ تور بېكەتتىن ئايرىلامسىز؟ سىز كىرگۈزگەن سانلىق مەلۇماتلار ساقلانماسلىقى مۇمكىن</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">قېپقال</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">ئايرىل</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">ئاي تاللاڭ</string> + + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">يانۋار</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">فېۋرال</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">مارت</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">ئاپرېل</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">ماي</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">ئىيۇن</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">ئىيۇل</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">ئاۋغۇست</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">سېنتەبر</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">ئۆكتەبر</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">نويابر</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">دېكابر</string> + + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">ۋاقىت تەڭشىكى</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">كىرىشنى باشقۇرۇش</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">ئىم باشقۇرۇش</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">تەۋسىيە كىرىشنى كېڭەيتىدۇ</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">ساقلىغان ئىمنى ياي</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">تەۋسىيە كىرىشنى يىغ</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">ساقلىغان ئىمنى يىغ</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">تەۋسىيە كىرىش</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">ساقلانغان ئىم</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">كۈچلۈك ئىم تەۋسىيە قىلىنىدۇ</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">كۈچلۈك ئىم تەۋسىيە قىلىنىدۇ</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">كۈچلۈك ئىم ئىشلىتىش: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">بۇ بېكەتكە سانلىق مەلۇماتنى قايتا يوللامدۇ؟</string> + <string name="mozac_feature_prompt_repost_message">بۇ بەت يېڭىلانسا چىقىم قىلىش ياكى ئىنكاسنى ئىككى قېتىم يوللاشقا ئوخشاش يېقىنقى مەشغۇلاتلارنى كۆپەيتىدۇ.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">سانلىق مەلۇماتنى قايتا يوللايدۇ</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">بىكار قىلىش</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">ئىناۋەتلىك كارتا تاللىنىدۇ</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">ساقلانغان كارتىنى ئىشلەت</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">تەۋسىيە قىلىنغان ئىناۋەتلىك كارتىنى كېڭەيتىدۇ</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">ساقلانغان كارتىنى ياي</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">تەۋسىيە قىلىنغان ئىناۋەتلىك كارتىنى يىغىدۇ</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">ساقلانغان كارتىنى يىغ</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">ئىناۋەتلىك كارتا باشقۇرۇش</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">كارتا باشقۇرۇش</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">بۇ كارتىنى بىخەتەر ساقلامدۇ؟</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">كارتىنىڭ مۇددىتى توشۇش قەرەلىنى يېڭىلامدۇ؟</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">كارتا نومۇرى شىفىرلىنىدۇ. بىخەتەرلىك كودى ساقلانمايدۇ.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s كارتا نومۇرىڭىزنى شىفىرلايدۇ. بىخەتەرلىك كودىڭىز ساقلانمايدۇ.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">ئادرېس تاللىنىدۇ</string> + + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">تەۋسىيە ئادرېسنى كېڭەيتىدۇ</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">ساقلانغان ئادرېسنى ياي</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">تەۋسىيە ئادرېسنى يىغىدۇ</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">ساقلانغان ئادرېسنى يىغ</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">ئادرېس باشقۇرۇش</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">ھېسابات رەسىمى</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">تىزىمغا كىرىشنى تەمىنلىگۈچى تاللىنىدۇ</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">%1$s ھېساباتىدا تىزىمغا كىرىدۇ</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">تىزىمغا كىرىشنى تەمىنلىگۈچىگە %1$s نى ئىشلىتىدۇ</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[بىر %2$s ھېساباتىدا %1$s غا تىزىمغا كىرىشتە ئۇلارنىڭ <a href="%3$s">شەخسىيەت تۈزۈمى</a> ۋە <a href="%4$s">مۇلازىمەت ماددىلىرى</a>غا بويسۇنىدۇ]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">داۋاملاشتۇر</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">ۋاز كەچ</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-uk/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-uk/strings.xml new file mode 100644 index 0000000000..53c48170b5 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-uk/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Скасувати</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Заборонити цій сторінці створювати додаткові діалогові вікна</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Встановити</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Очистити</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Увійти</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Ім’я користувача</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Пароль</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Не зберігати</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Не зараз</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Ніколи не зберігати</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Не зараз</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Зберегти</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Не оновлювати</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Не зараз</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Оновити</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Поле пароля не повинно бути порожнім</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Введіть пароль</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Не вдається зберегти запис</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Не вдається зберегти пароль</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Зберегти цей пароль?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Зберегти пароль?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Оновити цей пароль?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Оновити пароль?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Додати ім’я користувача до збереженого пароля?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Мітка для введення поля введення тексту</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Оберіть колір</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Дозволити</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Заборонити</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Ви впевнені?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Ви хочете піти з цього сайту? Введені вами дані можуть не зберегтися</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Залишитись</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Піти</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Оберіть місяць</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Січ</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Лют</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Бер</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Кві</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Тра</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Чер</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Лип</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Сер</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Вер</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Жов</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Лис</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Гру</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Налаштувати час</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Керувати паролями</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Керувати паролями</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Розгорнути запропоновані паролі</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Розгорнути збережені паролі</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Згорнути запропоновані паролі</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Згорнути збережені паролі</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Пропоновані паролі</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Збережені паролі</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Запропонувати надійний пароль</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Запропонувати надійний пароль</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Використати надійний пароль: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Надіслати дані на цей сайт повторно?</string> + <string name="mozac_feature_prompt_repost_message">Оновлення цієї сторінки може повторити нещодавні дії, наприклад, надіслати платіж або опублікувати коментар двічі.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Повторно надіслати дані</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Скасувати</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Виберіть кредитну картку</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Використати збережену картку</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Розгорнути запропоновані кредитні картки</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Розгорнути збережені картки</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Згорнути запропоновані кредитні картки</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Згорнути збережені картки</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Керувати кредитними картками</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Керувати картками</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Зберегти надійно цю картку?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Оновити термін дії картки?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Номер картки буде зашифровано. Код безпеки не буде збережено.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s шифрує номер вашої картки. Ваш код безпеки не буде збережено.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Вибрати адресу</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Розгорнути пропоновані адреси</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Розгорнути збережені адреси</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Згорнути пропоновані адреси</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Згорнути збережені адреси</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Керувати адресами</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Зображення облікового запису</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Оберіть постачальника послуг входу</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Увійдіть з обліковим записом %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Використовувати %1$s як постачальника авторизації</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Вхід до %1$s з використанням облікового запису %2$s регулюється <a href="%3$s">Політикою приватності</a> та <a href="%4$s">Умовами надання послуг</a> постачальника послуг авторизації]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Продовжити</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Скасувати</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-ur/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ur/strings.xml new file mode 100644 index 0000000000..3e5299b140 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-ur/strings.xml @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ٹھیک ہے</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">منسوخ کریں</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">اس صفحہ کو اور مکالمے بنانے سے روکیں</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">سیٹ کریں</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">صاف کریں</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">سائن ان کریں</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">صارف کا نام</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">پاس ورڈ</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">محفوظ مت کریں</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">کبھی بھی محفوظ نہ کریں</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">محفوظ کریں</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">تازہ کاری نا کریں</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">تازہ کاری کریں</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">پاسورڈ فیلڈ خالی نہیں ہونا چاہئے</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">لاگ ان کو محفوظ کرنے سے قاصر</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">اس لاگ ان کو محفوظ کریں؟</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">اس لاگ ان کو تازہ کاری کریں؟</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">صارف نام کو محفوظ کردہ پاسورڈ میں رکھیں؟</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">ایک متنی انپُٹ فیلڈ داخل کرنے کے لئے لیبل</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">رنگ کا انتخاب کریں</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">اجازت دیں</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">انکار کریں</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">کیا آپ کو یقین ہے؟</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">کیا آپ اس سائٹ کو چھوڑنا چاہتے ہیں؟ ہوسکتا ہے کہ آپ نے جو ڈیٹا داخل کیا وہ محفوظ نہ ہو</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">ٹھہریں</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">چھوڑيں</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">ایک مہینہ منتخب کریں</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">جنورى</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">فرورى</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">مارچ</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">اپريل</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">مئی</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">جون</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">جولائى</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">اگست</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">ستمبر</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">اکتوبر</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">نومبر</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">دسمبر</string> + + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">لاگ ان بندوبست کریں</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">تجویز کردہ لاگ ان کو وسعت دیں</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">تجویز کردہ لاگ ان کو ختم کریں</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">تجویز شدہ لاگ ان</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">اس سائٹ پر ڈیٹا دوبارہ ارسال کریں؟</string> + <string name="mozac_feature_prompt_repost_message">اس صفحہ کو ریفریش کرنے سے حالیہ کارروائیوں کی نقل بن سکتی ہے، جیسے کہ پیسوں کی ادائیگی بھیجنا یا دو بار تبصرہ پوسٹ کرنا۔</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">ڈیٹا کو دوبارہ ارسال کریں</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">منسوخ کریں</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">کریڈٹ کارڈ منتخب کریں</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">تجویز کردہ کریڈٹ کارڈز کو وسعت دیں</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">تجویز کردہ کریڈٹ کارڈز کو سکیڑیں</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings --> + <string name="mozac_feature_prompts_manage_credit_cards">کریڈٹ کارڈز کا منظم کریں</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-uz/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-uz/strings.xml new file mode 100644 index 0000000000..8198f89c0f --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-uz/strings.xml @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Bekor qilish</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Bu sahifada qoʻshimcha oynalar yaratishni toʻxtatish</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Oʻrnatish</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Tozalash</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Kirish</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Foydalanuvchi</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Parol</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Saqlanmasin</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Hech qachon saqlanmasin</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Hozir emas</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Saqlash</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Yangilanmasin</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Yangilash</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Parol maydoni boʻsh qolmasligi kerak</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Login saqlanmadi</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Bu login saqlansinmi?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Bu login yangilansinmi?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Saqlangan parolga foydalanuvchi nomi qoʻshilsinmi?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Matn kiritish maydoni uchun yorliq</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Rangni tanlang</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Ruxsat berish</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Rad qilish</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Ishonchingiz komilmi?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Bu saytdan chiqishni xohlaysizmi? Siz kiritgan maʼlumot saqlanmasligi mumkin</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Qolaman</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Ketaman</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Oyni tanlang</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Yan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Fev</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">May</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Iyun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Iyul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Avg</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sen</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Okt</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Noy</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dek</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Vaqtni kiritish</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Loginlarni boshqarish</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Tavsiya etilgan loginlarni kengaytirish</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Tavsiya etilgan loginlarni yigʻish</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Tavsiya etilgan loginlar</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Bu saytga maʼlumotlar qayta yuborilsinmi?</string> + <string name="mozac_feature_prompt_repost_message">Bu sahifani yangilash toʻlovni yuborish yoki ikki marta sharh qoldirish kabi soʻnggi amallarni takrorlashi mumkin.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Maʼlumotlarni qayta yuborish</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Bekor qilish</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Kredit kartani tanlash</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Tavsiya etilgan kredit kartalarni kengaytirish</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Tavsiya etiladigan kredit kartalarni yigʻish</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Kredit kartalarni boshqarish</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Bu karta xavfsiz saqlansinmi?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Karta amal qilish muddati yangilansinmi?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Karta raqami shifrlanadi. Xavfsizlik kodi saqlanmaydi.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Manzilni tanlang</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Tavsiya etilgan manzillarni kengaytirish</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Tavsiya etilgan manzillarni yigʻish</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Manzillarni boshqarish</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-vec/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-vec/strings.xml new file mode 100644 index 0000000000..3fbe68316e --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-vec/strings.xml @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Anuƚa</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Inpedisi a sta pàgina de vèrxere altre fenèstre de diaƚogo</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Inposta</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Pulisi</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Va rento</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Nòme utente</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Password</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">No stà salvare</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Salva</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Axorna</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Bixogna meter rento na password</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">No xe mìa posibiƚe salvare ƚa password</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Eticheta par meter rento el testo en on canpo</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Seji a coƚore</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Parmeti</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Nega</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Seƚesiona on mexe</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Xan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Avr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Mai</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Xun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Luj</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Ago</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Set</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Oto</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dex</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-vi/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-vi/strings.xml new file mode 100644 index 0000000000..c3ade7b30b --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-vi/strings.xml @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Hủy bỏ</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Ngăn trang này tạo ra các hộp thoại bổ sung</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Thiết lập</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Xóa</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Đăng nhập</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Tên đăng nhập</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Mật khẩu</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Không lưu</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">Không phải bây giờ</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Không bao giờ lưu</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Không phải bây giờ</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Lưu</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Đừng cập nhật</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">Không phải bây giờ</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Cập nhật</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Trường mật khẩu không được để trống</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">Nhập mật khẩu</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Không thể lưu thông tin đăng nhập</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">Không thể lưu mật khẩu</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Lưu thông tin đăng nhập này?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">Lưu mật khẩu?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Cập nhật thông tin đăng nhập này?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">Cập nhật lại mật khẩu?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Thêm tên người dùng vào mật khẩu đã lưu?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Nhãn để nhập trường văn bản</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Chọn một màu</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Cho phép</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Từ chối</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Bạn có chắc không?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Bạn có muốn rời khỏi trang web này? Dữ liệu bạn đã nhập có thể không được lưu</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Ở lại</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Rời khỏi</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Chọn tháng</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Thg01</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Thg02</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Thg03</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Thg04</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Thg05</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Thg06</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Thg07</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Thg08</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Thg09</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Thg10</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Thg11</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Thg12</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Cài đặt thời gian</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Quản lý đăng nhập</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">Quản lý mật khẩu</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Mở rộng thông tin đăng nhập được đề xuất</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">Mở rộng mật khẩu đã lưu</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Thu gọn thông tin đăng nhập được đề xuất</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">Thu gọn mật khẩu đã lưu</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Thông tin đăng nhập được đề xuất</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">Mật khẩu đã lưu</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Đề xuất mật khẩu mạnh</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Đề xuất mật khẩu mạnh</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Sử dụng mật khẩu mạnh: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Gửi lại dữ liệu cho trang web này?</string> + <string name="mozac_feature_prompt_repost_message">Việc làm mới trang này có thể trùng lặp với các hành động gần đây, chẳng hạn như gửi thanh toán hoặc đăng nhận xét hai lần.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Gửi lại dữ liệu</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Huỷ bỏ</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Chọn thẻ tín dụng</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">Sử dụng thẻ đã lưu</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Mở rộng thẻ tín dụng được đề xuất</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">Mở rộng thẻ đã lưu</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Thu gọn thẻ tín dụng được đề xuất</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">Thu gọn thẻ đã lưu</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Quản lý thẻ tín dụng</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">Quản lý thẻ tín dụng</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Lưu thẻ này một cách an toàn?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Cập nhật ngày hết hạn thẻ?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">Số thẻ sẽ được mã hóa. Mã bảo mật sẽ không được lưu.</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s mã hóa số thẻ của bạn. Mã bảo mật của bạn sẽ không được lưu.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Chọn địa chỉ</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Mở rộng các địa chỉ được đề xuất</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">Mở rộng địa chỉ đã lưu</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Thu gọn các địa chỉ được đề xuất</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">Thu gọn địa chỉ đã lưu</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Quản lý địa chỉ</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Ảnh tài khoản</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Chọn một nhà cung cấp đăng nhập</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Đăng nhập bằng tài khoản %1$s</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Sử dụng %1$s làm nhà cung cấp thông tin đăng nhập</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[ Đăng nhập vào %1$s với tài khoản %2$s phải tuân theo <a href="%3$s">chính sách bảo mật</a> và <a href="%4$s">điều khoản dịch vụ</a> của họ]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Tiếp tục</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Hủy bỏ</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-yo/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-yo/strings.xml new file mode 100644 index 0000000000..ec27325d62 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-yo/strings.xml @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">Ó DÁA</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Parẹ́</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Ṣe ìdíwọ́ fún ojú-ìwé yìí láti ṣẹ̀dá ìsọ̀rọ̀ńgbèsì mìíràn</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Ṣètò</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Parẹ́</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Wọlé</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Orúkọ aṣàmúlò</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Pásíwọọ̀dù</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">Má fi pamọ́</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Má fi pamọ̀ láéláé</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Kìí ṣe báyìí</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Fipamọ́</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">Má sẹ ìsọdituntun</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Ìsọdituntun</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">Àye pásíwọọ̀dù ò gbọdọ̀ gbófo</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">Kò le fi ohun-ìwọlé pamọ́</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">Fi ohun-ìwọlé yìí pamọ́?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">Ṣe ìsọdituntun fún ohun-ìwọlé yìí?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Ṣe àfikún orúkọ-aṣàmúlò mọ́ ọ̀rọ̀-ìṣínà tó wà ní ìpamọ́?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Lébẹ́ẹ̀lì fún títẹ ọ̀rọ̀ sí</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Yan àwọ̀ kan</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Gbà láàyè</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Kọ̀</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Ṣé ó dá ọ lójú?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Ṣé o fẹ́ fi sáìtì yí sílẹ̀? Dátà tí o tẹ̀ lè má wá sí ní ìpamọ́</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Dúró</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Fi kalẹ̀</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Mú oṣù kan</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Ṣẹrẹ</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Èrèlé</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Ẹrẹ́nà</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Igbe</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">Èbìbí</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Okúdù</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Agẹmọ</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Ògún</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Ọwẹ́wẹ̀</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Ọ̀wàwà</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Béélú</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Ọpẹ́</string> + + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">Ṣàkóso àwọn ohun-ìwọlé</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">Ṣe ìpọ̀si fún àbá àwọn ohun-ìwọlé</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">Pa àbá àwọn ohun-ìwọlé rẹ́</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">Àbá àwọn ohun-ìwọlé</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Tún dátà ráńṣẹ́ sí sáìtì yí?</string> + <string name="mozac_feature_prompt_repost_message">Dídá ojú-ìwé yìí padà lé è sọ àwọn ìṣẹ̀lẹ̀ àìpẹ́ di méjì, gẹ́gẹ́ bíi ka máa fi owó ránṣé tàbí fífi ọ̀rọ̀ àsọyé ránṣẹ́ lẹ́ẹ̀mejì.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Fi dátà ráńṣẹ́ lẹ́ẹ̀kan si</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Parẹ́</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">Yan káàdì ìyáwó</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">Fẹ àwọn káàdì ìyáwó tí a dábàá</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">Wó àwọn káàdì ìyáwó tí a dábàá</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">Sàkóso àwọn káàdì ìyáwó</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Fí káàdì yí pamọ́ dáada?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title"> Ṣe ìsọdituntun fún ọjọ́ òpin-ìlò káàdì?</string> + + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">A ó sọ nọ́ḿbà káàdì di kóòdù. A ò ní ṣe ìfipamọ́ kóòdù ààbò.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Yan àdírẹ́ẹ̀sì</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">Fẹ àwọn adírẹ́sì tí a dábàá</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">Wó àwọn àdírẹ́sì tí a dábàá</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Ṣàkóso àwọn àdírẹ́sì</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-zam/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-zam/strings.xml new file mode 100644 index 0000000000..e8273d25d2 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-zam/strings.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">ăɁ</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">B-láɁ=y</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Tòmbî</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">-taɁ lélù lèɁn</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Chó lèl</string> + + </resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-zh-rCN/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-zh-rCN/strings.xml new file mode 100644 index 0000000000..4287c42133 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-zh-rCN/strings.xml @@ -0,0 +1,199 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">确定</string> + + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">取消</string> + + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">阻止此页面创建更多对话框</string> + + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">设置</string> + + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">清除</string> + + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">登录</string> + + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">用户名</string> + + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">密码</string> + + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">不保存</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">暂时不要</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">永不保存</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">暂时不要</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">保存</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">不更新</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">暂时不要</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">更新</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">密码不能为空</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">请输入密码</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">无法保存登录信息</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">无法保存密码</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">要保存此登录信息吗?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">要保存密码吗?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">要更新此登录信息吗?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">要更新密码吗?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">要将用户名添加到已存密码吗?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">文本输入栏的标签</string> + + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">选择颜色</string> + + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">允许</string> + + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">拒绝</string> + + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">您确定吗?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">您确定要离开此网站吗?您所输入的数据可能尚未保存</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">留下</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">离开</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">选择月份</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">1 月</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">2 月</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">3 月</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">4 月</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">5 月</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">6 月</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">7 月</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">8 月</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">9 月</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">10 月</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">11 月</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">12 月</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">设置时间</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">管理登录信息</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">管理密码</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">展开推荐的登录信息</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">展开保存的密码</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">折叠推荐的登录信息</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">折叠保存的密码</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">推荐的登录信息</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">保存的密码</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">建议高强度密码</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">建议高强度密码</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">使用高强度密码:%1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">重新发送数据至此网站?</string> + <string name="mozac_feature_prompt_repost_message">刷新页面可能会再次执行最近的操作,例如重复付款或发表评论。</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">重新发送数据</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">取消</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">选择信用卡</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">使用保存的信用卡</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">展开建议的信用卡</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">展开保存的信用卡</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">折叠建议的信用卡</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">折叠保存的信用卡</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">管理信用卡</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">管理信用卡</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">安全地保存此卡片?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">是否要更新卡片有效期?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">卡号将被加密,且不会保存安全码。</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s 会将卡号加密保存。安全码不会被保存。</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">选择地址</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">展开建议的地址</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">展开保存的地址</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">折叠建议的地址</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">折叠保存的地址</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">管理地址</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">头像</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">选择一个登录方式</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">使用 %1$s 账户登录</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">使用 %1$s 登录</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[使用 %2$s 账户登录 %1$s 须遵守其<a href="%3$s">隐私政策</a>和<a href="%4$s">服务条款</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">继续</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">取消</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values-zh-rTW/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values-zh-rTW/strings.xml new file mode 100644 index 0000000000..d435190102 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values-zh-rTW/strings.xml @@ -0,0 +1,199 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">確定</string> + + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">取消</string> + + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">避免此頁面產生更多對話框</string> + + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">設定</string> + + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">清除</string> + + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">登入</string> + + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">使用者名稱</string> + + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">密碼</string> + + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save">不要儲存</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2" tools:ignore="UnusedResources">現在不要</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">永不儲存</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">現在不要</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">儲存</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update">不要更新</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2" tools:ignore="UnusedResources">現在不要</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">更新</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password">密碼不得為空白</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2" tools:ignore="UnusedResources">輸入密碼</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause">無法儲存登入資訊</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2" tools:ignore="UnusedResources">無法儲存密碼</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline">要儲存這筆登入資訊嗎?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2" tools:ignore="UnusedResources">要儲存密碼嗎?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline">要更新這筆登入資訊嗎?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2" tools:ignore="UnusedResources">要更新密碼嗎?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">要將使用者名稱加進儲存的密碼資訊嗎?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">文字輸入欄位的標籤</string> + + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">選擇一種色彩</string> + + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">允許</string> + + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">拒絕</string> + + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">您確定嗎?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">您確定要離開此網站嗎?您所輸入的資料可能還沒儲存</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">留下來</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">離開</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">挑選月份</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">1 月</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">2 月</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">3 月</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">4 月</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">5 月</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">6 月</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">7 月</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">8 月</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">9 月</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">10 月</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">11 月</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">12 月</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">設定時間</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins">管理登入密碼</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2" tools:ignore="UnusedResources">管理密碼</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description">展開建議的登入資訊</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2" tools:ignore="UnusedResources">展開儲存的密碼</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description">摺疊建議的登入資訊</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2" tools:ignore="UnusedResources">摺疊儲存的密碼</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins">建議的登入資訊</string> + + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2" tools:ignore="UnusedResources">已存密碼</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">建議安全的密碼</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">建議安全的密碼</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">使用安全的密碼:%1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">要重新發送資料到這個網站嗎?</string> + <string name="mozac_feature_prompt_repost_message">重新整理頁面可能會再次執行最近的操作,例如重複付款或張貼留言。</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">重送資料</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">取消</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card">選擇信用卡</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2" tools:ignore="UnusedResources">使用儲存的卡片資訊</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description">展開建議的信用卡</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2" tools:ignore="UnusedResources">展開儲存的卡片資訊</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description">摺疊建議的信用卡</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2" tools:ignore="UnusedResources">摺疊儲存的卡片資訊</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards">管理信用卡</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2" tools:ignore="UnusedResources">管理卡片</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">安全地儲存這張卡的資料?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">是否要更新卡片效期?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body">將加密卡號,也不會儲存安全碼。</string> + + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2" tools:ignore="UnusedResources">%s 會加密您的卡號,且不會儲存安全碼。</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">選擇地址</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description">展開建議的地址</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2" tools:ignore="UnusedResources">展開儲存的地址資訊</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description">摺疊建議的地址</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2" tools:ignore="UnusedResources">摺疊儲存的地址資訊</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">管理已存地址</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">帳號圖片</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">選擇登入資訊服務提供者</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">使用 %1$s 帳號登入</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">使用 %1$s 登入</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[使用 %2$s 帳號登入 %1$s 須遵守該登入服務的<a href="%3$s">隱私權保護政策</a>及<a href="%4$s">服務條款</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">繼續</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">取消</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values/attrs.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values/attrs.xml new file mode 100644 index 0000000000..de216bfa8b --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values/attrs.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<resources> + <declare-styleable name="LoginPanelTextInputLayout"> + <attr name="mozacInputLayoutErrorTextColor" format="reference"/> + <attr name="mozacInputLayoutErrorIconColor" format="reference"/> + <attr name="mozacPromptLoginEditTextCursorColor" format="reference"/> + </declare-styleable> + + <declare-styleable name="LoginSelectBar"> + <attr name="mozacLoginSelectHeaderTextStyle" format="reference"/> + </declare-styleable> + + <declare-styleable name="CreditCardSelectBar"> + <attr name="mozacSelectCreditCardHeaderTextStyle" format="reference"/> + </declare-styleable> + + <declare-styleable name="AddressSelectBar"> + <attr name="mozacSelectAddressHeaderTextStyle" format="reference"/> + </declare-styleable> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values/colors.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values/colors.xml new file mode 100644 index 0000000000..0cae21eca4 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values/colors.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<resources xmlns:tools="http://schemas.android.com/tools"> + <array name="mozac_feature_prompts_default_colors"> + <item>#D73920</item> + <item>#FF8605</item> + <item>#FFCB13</item> + <item>#5FAD47</item> + <item>#21A1DE</item> + <item>#102457</item> + <item>#5B2067</item> + <item>#D4DDE4</item> + <item>#FFFFFF</item> + </array> + <color name="mozacBoxStrokeColor">#828282</color> + <color tools:override="true" tools:ignore="UnusedResources" + name="mtrl_textinput_default_box_stroke_color">@color/mozacBoxStrokeColor</color> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values/ids.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values/ids.xml new file mode 100644 index 0000000000..9ba0f9c8e8 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values/ids.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<resources> + <item name="mozac_feature_prompts_no_more_dialogs_check_box" type="id"/> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values/quarantined_strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values/quarantined_strings.xml new file mode 100644 index 0000000000..5943e14165 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values/quarantined_strings.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<!-- Strings in this file are not yet ready for localization. --> +<resources> + <!-- Text of the title of a dialog when a page is requesting to open a new window. --> + <string name="mozac_feature_prompts_popup_dialog_title">Prevent this site from opening a pop-up window?</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values/strings-no-translatable.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values/strings-no-translatable.xml new file mode 100644 index 0000000000..b30bbc6b64 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values/strings-no-translatable.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<resources> + <!-- Months of the years, used on the month chooser dialog. --> + <string-array name="mozac_feature_prompts_months"> + <item>@string/mozac_feature_prompts_jan</item> + <item>@string/mozac_feature_prompts_feb</item> + <item>@string/mozac_feature_prompts_mar</item> + <item>@string/mozac_feature_prompts_apr</item> + <item>@string/mozac_feature_prompts_may</item> + <item>@string/mozac_feature_prompts_jun</item> + <item>@string/mozac_feature_prompts_jul</item> + <item>@string/mozac_feature_prompts_aug</item> + <item>@string/mozac_feature_prompts_sep</item> + <item>@string/mozac_feature_prompts_oct</item> + <item>@string/mozac_feature_prompts_nov</item> + <item>@string/mozac_feature_prompts_dec</item> + </string-array> + <!-- Text used for the millisecond separator in the time picker. --> + <string name="mozac_feature_prompts_millisecond_separator">.</string> + <!-- Text used for the second separator in the time picker. --> + <string name="mozac_feature_prompts_second_separator">:</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values/strings.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values/strings.xml new file mode 100644 index 0000000000..1f5415543c --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values/strings.xml @@ -0,0 +1,188 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<resources xmlns:tools="http://schemas.android.com/tools" xmlns:moz="http://mozac.org/tools"> + <!-- Text for confirmation for a positive action in dialog --> + <string name="mozac_feature_prompts_ok">OK</string> + <!-- Text for confirmation for a negative action in dialog. --> + <string name="mozac_feature_prompts_cancel">Cancel</string> + <!-- When a page shows many dialogs, this checkbox will appear for letting the user choose to prevent showing more dialogs. --> + <string name="mozac_feature_prompts_no_more_dialogs">Prevent this page from creating additional dialogs</string> + <!-- Text for a positive button, when an user selects a date in date/time picker. --> + <string name="mozac_feature_prompts_set_date">Set</string> + <!-- Text for a button that clears the selected input in the date/time picker. --> + <string name="mozac_feature_prompts_clear">Clear</string> + <!-- Text for the title of an authentication dialog. --> + <string name="mozac_feature_prompt_sign_in">Sign in</string> + <!-- Text for username field in an authentication dialog. --> + <string name="mozac_feature_prompt_username_hint">Username</string> + <!-- Text for password field in an authentication dialog. --> + <string name="mozac_feature_prompt_password_hint">Password</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save" moz:removedIn="125" tools:ignore="UnusedResources">Don’t save</string> + <!-- Negative confirmation that we should not save the new or updated login --> + <string name="mozac_feature_prompt_dont_save_2">Not now</string> + <!-- Negative confirmation that we should never save a login for this site --> + <string name="mozac_feature_prompt_never_save">Never save</string> + <!-- Negative confirmation that we should not save a credit card for this site --> + <string name="mozac_feature_prompt_not_now">Not now</string> + <!-- Positive confirmation that we should save the new or updated login --> + <string name="mozac_feature_prompt_save_confirmation">Save</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update" moz:removedIn="125" tools:ignore="UnusedResources">Don’t update</string> + <!-- Negative confirmation that we should not save the updated login --> + <string name="mozac_feature_prompt_dont_update_2">Not now</string> + <!-- Positive confirmation that we should save the updated login --> + <string name="mozac_feature_prompt_update_confirmation">Update</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password" moz:removedIn="125" tools:ignore="UnusedResources">Password field must not be empty</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_empty_password_2">Enter a password</string> + <!-- Error text displayed underneath the login field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause" moz:removedIn="125" tools:ignore="UnusedResources">Unable to save login</string> + <!-- Error text displayed underneath the password field when it is in an error case --> + <string name="mozac_feature_prompt_error_unknown_cause_2">Can’t save password</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new login. --> + <string name="mozac_feature_prompt_login_save_headline" moz:removedIn="125" tools:ignore="UnusedResources">Save this login?</string> + <!-- Prompt message displayed when app detects a user has entered a new username and password and user decides if app should save the new password. --> + <string name="mozac_feature_prompt_login_save_headline_2">Save password?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_update_headline" moz:removedIn="125" tools:ignore="UnusedResources">Update this login?</string> + <!-- Prompt message displayed when app detects a user has entered a new password for an existing login and user decides if app should update the password. --> + <string name="mozac_feature_prompt_login_update_headline_2">Update password?</string> + <!-- Prompt message displayed when app detects a user has entered a username for an existing login without a username and user decides if app should update the login. --> + <string name="mozac_feature_prompt_login_add_username_headline">Add username to saved password?</string> + <!-- Text for a label for the field when prompt requesting a text is shown. --> + <!-- For more info take a look here https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt --> + <string name="mozac_feature_prompts_content_description_input_label">Label for entering a text input field</string> + <!-- Title of a color picker dialog, this text is shown above a color picker. --> + <string name="mozac_feature_prompts_choose_a_color">Choose a color</string> + <!-- Text of a confirm button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_allow">Allow</string> + <!-- Text of a negative button in dialog requesting to open a new window. --> + <string name="mozac_feature_prompts_deny">Deny</string> + <!-- Title of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_title">Are you sure?</string> + <!-- Body text of the dialog shown when a user is leaving a website and there is still data not saved yet. --> + <string name="mozac_feature_prompt_before_unload_dialog_body">Do you want to leave this site? Data you have entered may not be saved</string> + <!-- Stay button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to stay in the website. --> + <string name="mozac_feature_prompts_before_unload_stay">Stay</string> + <!-- Leave button of the dialog shown when a user is leaving a website and there is still data not saved yet, this indicates that the user wants to leave in the website. --> + <string name="mozac_feature_prompts_before_unload_leave">Leave</string> + <!-- Title of the month chooser dialog. --> + <string name="mozac_feature_prompts_set_month">Pick a month</string> + <!-- January (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jan">Jan</string> + <!-- February month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_feb">Feb</string> + <!-- March month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_mar">Mar</string> + <!-- April month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_apr">Apr</string> + <!-- May month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_may">May</string> + <!-- June month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jun">Jun</string> + <!-- July month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_jul">Jul</string> + <!-- August month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_aug">Aug</string> + <!-- September month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_sep">Sep</string> + <!-- October month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_oct">Oct</string> + <!-- November month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_nov">Nov</string> + <!-- December month of the year (short description), used on the month chooser dialog. --> + <string name="mozac_feature_prompts_dec">Dec</string> + <!-- Title of the time picker dialog. --> + <string name="mozac_feature_prompts_set_time">Set time</string> + <!-- Option in expanded select login prompt that links to login settings --> + <string name="mozac_feature_prompts_manage_logins" moz:removedIn="125" tools:ignore="UnusedResources">Manage logins</string> + <!-- Option in expanded select password prompt that links to password settings --> + <string name="mozac_feature_prompts_manage_logins_2">Manage passwords</string> + <!-- Content description for expanding the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Expand suggested logins</string> + <!-- Content description for expanding the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_expand_logins_content_description_2">Expand saved passwords</string> + <!-- Content description for collapsing the saved logins options in the select login prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Collapse suggested logins</string> + <!-- Content description for collapsing the saved passwords options in the select password prompt --> + <string name="mozac_feature_prompts_collapse_logins_content_description_2">Collapse saved passwords</string> + <!-- Header for the select login prompt to allow users to fill a form with a saved login --> + <string name="mozac_feature_prompts_saved_logins" moz:removedIn="125" tools:ignore="UnusedResources">Suggested logins</string> + <!-- Header for the select password prompt to allow users to fill a form with a saved password --> + <string name="mozac_feature_prompts_saved_logins_2">Saved passwords</string> + + <!-- Content description for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password_content_description">Suggest strong password</string> + <!-- Header for the suggest strong password prompt to allow users to fill a form with a suggested strong password --> + <string name="mozac_feature_prompts_suggest_strong_password">Suggest strong password</string> + <!-- Title for using the suggest strong password confirmation dialog. %1$s will be replaced with the generated password --> + <string name="mozac_feature_prompts_suggest_strong_password_message">Use strong password: %1$s</string> + + <!-- Strings shown in a dialog that appear when users try to refresh a certain kind of webpages --> + <string name="mozac_feature_prompt_repost_title">Resend data to this site?</string> + <string name="mozac_feature_prompt_repost_message">Refreshing this page could duplicate recent actions, such as sending a payment or posting a comment twice.</string> + <!-- Pressing this will dismiss the dialog and reload the page sending again the previous data --> + <string name="mozac_feature_prompt_repost_positive_button_text">Resend data</string> + <!-- Pressing this will dismiss the dialog and not refresh the webpage --> + <string name="mozac_feature_prompt_repost_negative_button_text">Cancel</string> + + <!-- Credit Card Autofill --> + <!-- Header for the select credit card prompt to allow users to fill a form with a saved credit card. --> + <string name="mozac_feature_prompts_select_credit_card" moz:removedIn="125" tools:ignore="UnusedResources">Select credit card</string> + <!-- Header for the select card prompt to allow users to fill a form with a saved card. --> + <string name="mozac_feature_prompts_select_credit_card_2">Use saved card</string> + <!-- Content description for expanding the select credit card options in the select credit card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Expand suggested credit cards</string> + <!-- Content description for expanding the saved card options in the select card prompt. --> + <string name="mozac_feature_prompts_expand_credit_cards_content_description_2">Expand saved cards</string> + <!-- Content description for collapsing the select credit card options in the select credit prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Collapse suggested credit cards</string> + <!-- Content description for collapsing the saved card options in the select prompt. --> + <string name="mozac_feature_prompts_collapse_credit_cards_content_description_2">Collapse saved cards</string> + <!-- Option in the expanded select credit card prompt that links to credit cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards" moz:removedIn="125" tools:ignore="UnusedResources">Manage credit cards</string> + <!-- Option in the expanded select card prompt that links to cards settings. --> + <string name="mozac_feature_prompts_manage_credit_cards_2">Manage cards</string> + <!-- Text for the title of a save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_title">Securely save this card?</string> + <!-- Text for the title of an update credit card dialog. --> + <string name="mozac_feature_prompts_update_credit_card_prompt_title">Update card expiration date?</string> + <!-- Subtitle text displayed under the title of the save credit card dialog. --> + <string name="mozac_feature_prompts_save_credit_card_prompt_body" moz:removedIn="125" tools:ignore="UnusedResources">Card number will be encrypted. Security code won’t be saved.</string> + <!-- Subtitle text displayed under the title of the saved card dialog. Parameter will be replaced by app name--> + <string name="mozac_feature_prompts_save_credit_card_prompt_body_2">%s encrypts your card number. Your security code won’t be saved.</string> + + <!-- Address Autofill --> + <!-- Header for the select address prompt to allow users to fill a form with a saved address. --> + <string name="mozac_feature_prompts_select_address_2">Select address</string> + <!-- Content description for expanding the select addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Expand suggested addresses</string> + <!-- Content description for expanding the saved addresses options in the select address prompt. --> + <string name="mozac_feature_prompts_expand_address_content_description_2">Expand saved addresses</string> + <!-- Content description for collapsing the select address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description" moz:removedIn="125" tools:ignore="UnusedResources">Collapse suggested addresses</string> + <!-- Content description for collapsing the saved address options in the select address prompt. --> + <string name="mozac_feature_prompts_collapse_address_content_description_2">Collapse saved addresses</string> + <!-- Text for the manage addresses button. --> + <string name="mozac_feature_prompts_manage_address">Manage addresses</string> + + <!-- Federated Credential Management prompts --> + <!--Content description for the Account picture in the Select Account FedCM prompt --> + <string name="mozac_feature_prompts_account_picture">Account picture</string> + <!-- Title of the Identity Credential provider dialog chooser. --> + <string name="mozac_feature_prompts_identity_credentials_choose_provider">Choose a login provider</string> + <!-- Title of an account picker dialog for identity credentials. The %1$s will be replaced with the name of the provider --> + <string name="mozac_feature_prompts_identity_credentials_choose_account_for_provider">Sign in with a %1$s account</string> + <!-- Title of the Identity Credential privacy policy dialog title. The %1$s will be replaced with the name of the provider. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_title">Use %1$s as a login provider</string> + <!-- Title of the Identity Credential privacy policy dialog description. The %1$s will be replaced with the name of the provider, %2$s will be replaced with the account, %3$s will be replaced with the privacy policy url and %4$s will be replaced with the terms of service. --> + <string name="mozac_feature_prompts_identity_credentials_privacy_policy_description"><![CDATA[Logging in to %1$s with a %2$s account is subject to their <a href="%3$s">Privacy Policy</a> and <a href="%4$s">Terms of Service</a>]]></string> + <!-- Text for the positive button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_continue">Continue</string> + <!-- Text for the cancel button of the Identity Credential dialogs. --> + <string name="mozac_feature_prompts_identity_credentials_cancel">Cancel</string> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/values/styles.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/values/styles.xml new file mode 100644 index 0000000000..b883675d27 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<resources> + <style name="MozTextInputLayout" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox"> + <item name="boxStrokeColor">@color/mozacBoxStrokeColor</item> + <item name="boxStrokeWidth">2dp</item> + <item name="android:theme">@style/MozacPromptLoginTextInputLayoutCursorAppearance</item> + </style> + <style name="MozDialogStyle" parent="Theme.Design.Light.BottomSheetDialog"> + <item name="android:windowIsFloating">false</item> + <item name="android:windowSoftInputMode">adjustResize</item> + </style> + <style name="MozacPromptLoginTextInputLayoutCursorAppearance" parent="ThemeOverlay.MaterialComponents.TextInputEditText.OutlinedBox"> + <item name="colorControlActivated">?mozacPromptLoginEditTextCursorColor</item> + </style> +</resources> diff --git a/mobile/android/android-components/components/feature/prompts/src/main/res/xml/feature_prompts_file_paths.xml b/mobile/android/android-components/components/feature/prompts/src/main/res/xml/feature_prompts_file_paths.xml new file mode 100644 index 0000000000..9ec37fe478 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/main/res/xml/feature_prompts_file_paths.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this file, + - You can obtain one at http://mozilla.org/MPL/2.0/. --> +<paths> + <cache-path name="feature-prompts-images" path="." /> +</paths> diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/PromptContainerTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/PromptContainerTest.kt new file mode 100644 index 0000000000..5da08da439 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/PromptContainerTest.kt @@ -0,0 +1,76 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts + +import android.app.Activity +import android.content.Context +import android.content.Intent +import androidx.fragment.app.Fragment +import mozilla.components.support.test.mock +import org.junit.Assert.assertEquals +import org.junit.Before +import org.junit.Test +import org.mockito.ArgumentMatchers.anyInt +import org.mockito.Mock +import org.mockito.Mockito.doReturn +import org.mockito.Mockito.verify +import org.mockito.MockitoAnnotations.openMocks + +class PromptContainerTest { + + @Mock private lateinit var activity: Activity + + @Mock private lateinit var fragment: Fragment + + @Before + fun setup() { + openMocks(this) + } + + @Test + fun `get context from activity`() { + val container: PromptContainer = PromptContainer.Activity(activity) + assertEquals(activity, container.context) + } + + @Test + fun `get context from fragment`() { + val mockContext: Context = mock() + val container = PromptContainer.Fragment(fragment) + doReturn(mockContext).`when`(fragment).requireContext() + + assertEquals(mockContext, container.context) + } + + @Suppress("DEPRECATION") + // https://github.com/mozilla-mobile/android-components/issues/10357 + @Test + fun `startActivityForResult must delegate its calls either to an activity or a fragment`() { + val intent: Intent = mock() + val code = 1 + + var container: PromptContainer = PromptContainer.Activity(activity) + container.startActivityForResult(intent, code) + verify(activity).startActivityForResult(intent, code) + + container = PromptContainer.Fragment(fragment) + container.startActivityForResult(intent, code) + verify(fragment).startActivityForResult(intent, code) + } + + @Test + fun `getString must delegate its calls either to an activity or a fragment`() { + doReturn("").`when`(activity).getString(anyInt(), *emptyArray()) + doReturn("").`when`(fragment).getString(anyInt(), *emptyArray()) + + var container: PromptContainer = PromptContainer.Activity(activity) + container.getString(R.string.mozac_feature_prompts_ok) + verify(activity).getString(R.string.mozac_feature_prompts_ok, *emptyArray()) + + container = PromptContainer.Fragment(fragment) + container.getString(R.string.mozac_feature_prompts_ok) + verify(fragment).getString(R.string.mozac_feature_prompts_ok, *emptyArray()) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/PromptFeatureTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/PromptFeatureTest.kt new file mode 100644 index 0000000000..3c1cfba67c --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/PromptFeatureTest.kt @@ -0,0 +1,2850 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts + +import android.app.Activity +import android.app.Activity.RESULT_CANCELED +import android.app.Activity.RESULT_OK +import android.content.ClipData +import android.content.ContentResolver +import android.content.Context +import android.content.Intent +import android.graphics.Bitmap +import android.net.Uri +import android.view.View +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentManager +import androidx.fragment.app.FragmentTransaction +import androidx.test.ext.junit.runners.AndroidJUnit4 +import kotlinx.coroutines.ExperimentalCoroutinesApi +import mozilla.components.browser.state.action.ContentAction +import mozilla.components.browser.state.action.TabListAction +import mozilla.components.browser.state.state.BrowserState +import mozilla.components.browser.state.state.ContentState +import mozilla.components.browser.state.state.TabSessionState +import mozilla.components.browser.state.state.createCustomTab +import mozilla.components.browser.state.state.createTab +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.prompt.Choice +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.concept.engine.prompt.PromptRequest.Alert +import mozilla.components.concept.engine.prompt.PromptRequest.Authentication +import mozilla.components.concept.engine.prompt.PromptRequest.Authentication.Level.NONE +import mozilla.components.concept.engine.prompt.PromptRequest.Authentication.Method.HOST +import mozilla.components.concept.engine.prompt.PromptRequest.Color +import mozilla.components.concept.engine.prompt.PromptRequest.MenuChoice +import mozilla.components.concept.engine.prompt.PromptRequest.MultipleChoice +import mozilla.components.concept.engine.prompt.PromptRequest.SingleChoice +import mozilla.components.concept.engine.prompt.PromptRequest.TextPrompt +import mozilla.components.concept.engine.prompt.ShareData +import mozilla.components.concept.storage.Address +import mozilla.components.concept.storage.CreditCardEntry +import mozilla.components.concept.storage.Login +import mozilla.components.concept.storage.LoginEntry +import mozilla.components.feature.prompts.address.AddressDelegate +import mozilla.components.feature.prompts.address.AddressPicker +import mozilla.components.feature.prompts.concept.SelectablePromptView +import mozilla.components.feature.prompts.creditcard.CreditCardDelegate +import mozilla.components.feature.prompts.creditcard.CreditCardPicker +import mozilla.components.feature.prompts.creditcard.CreditCardSaveDialogFragment +import mozilla.components.feature.prompts.dialog.ChoiceDialogFragment +import mozilla.components.feature.prompts.dialog.ConfirmDialogFragment +import mozilla.components.feature.prompts.dialog.MultiButtonDialogFragment +import mozilla.components.feature.prompts.dialog.PromptDialogFragment +import mozilla.components.feature.prompts.dialog.SaveLoginDialogFragment +import mozilla.components.feature.prompts.facts.CreditCardAutofillDialogFacts +import mozilla.components.feature.prompts.file.FilePicker.Companion.FILE_PICKER_ACTIVITY_REQUEST_CODE +import mozilla.components.feature.prompts.login.LoginDelegate +import mozilla.components.feature.prompts.login.LoginPicker +import mozilla.components.feature.prompts.share.ShareDelegate +import mozilla.components.feature.session.SessionUseCases +import mozilla.components.support.base.Component +import mozilla.components.support.base.facts.Action +import mozilla.components.support.base.facts.processor.CollectionProcessor +import mozilla.components.support.test.any +import mozilla.components.support.test.eq +import mozilla.components.support.test.ext.joinBlocking +import mozilla.components.support.test.libstate.ext.waitUntilIdle +import mozilla.components.support.test.mock +import mozilla.components.support.test.robolectric.testContext +import mozilla.components.support.test.rule.MainCoroutineRule +import mozilla.components.support.test.whenever +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertNotNull +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mockito.doReturn +import org.mockito.Mockito.never +import org.mockito.Mockito.spy +import org.mockito.Mockito.times +import org.mockito.Mockito.verify +import org.mockito.Mockito.`when` +import org.robolectric.Robolectric +import java.lang.ref.WeakReference +import java.security.InvalidParameterException +import java.util.Date + +@RunWith(AndroidJUnit4::class) +class PromptFeatureTest { + + @get:Rule + val coroutinesTestRule = MainCoroutineRule() + + private lateinit var store: BrowserStore + private lateinit var fragmentManager: FragmentManager + private lateinit var loginPicker: LoginPicker + private lateinit var creditCardPicker: CreditCardPicker + private lateinit var addressPicker: AddressPicker + + private val tabId = "test-tab" + private fun tab(): TabSessionState? { + return store.state.tabs.find { it.id == tabId } + } + + @Before + @ExperimentalCoroutinesApi + fun setUp() { + store = BrowserStore( + BrowserState( + tabs = listOf( + createTab("https://www.mozilla.org", id = tabId), + ), + customTabs = listOf( + createCustomTab("https://www.mozilla.org", id = "custom-tab"), + ), + selectedTabId = tabId, + ), + ) + loginPicker = mock() + creditCardPicker = mock() + addressPicker = mock() + fragmentManager = mockFragmentManager() + } + + @Test + fun `PromptFeature acts on the selected session by default`() { + val feature = spy( + PromptFeature( + fragment = mock(), + fileUploadsDirCleaner = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + ) { }, + ) + feature.start() + + val promptRequest = SingleChoice(arrayOf(), {}, {}) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + verify(feature).onPromptRequested(store.state.tabs.first()) + } + + @Test + fun `PromptFeature acts on a given custom tab session`() { + val feature = spy( + PromptFeature( + fragment = mock(), + store = store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + customTabId = "custom-tab", + fragmentManager = fragmentManager, + ) { }, + ) + feature.start() + + val promptRequest = SingleChoice(arrayOf(), {}, {}) + store.dispatch(ContentAction.UpdatePromptRequestAction("custom-tab", promptRequest)) + .joinBlocking() + verify(feature).onPromptRequested(store.state.customTabs.first()) + } + + @Test + fun `PromptFeature acts on the selected session if there is no custom tab ID`() { + val feature = spy( + PromptFeature( + fragment = mock(), + store = store, + tabsUseCases = mock(), + customTabId = tabId, + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + ) { }, + ) + + val promptRequest = SingleChoice(arrayOf(), {}, {}) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + feature.start() + verify(feature).onPromptRequested(store.state.tabs.first()) + } + + @Test + fun `New promptRequests for selected session will cause fragment transaction`() { + val feature = + PromptFeature( + fragment = mock(), + store = store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + ) { } + feature.start() + + val singleChoiceRequest = SingleChoice(arrayOf(), {}, {}) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, singleChoiceRequest)) + .joinBlocking() + verify(fragmentManager).beginTransaction() + } + + @Test + fun `New promptRequests for selected session will not cause fragment transaction if feature is stopped`() { + val feature = + PromptFeature( + fragment = mock(), + tabsUseCases = mock(), + store = store, + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + ) { } + feature.start() + feature.stop() + + val singleChoiceRequest = SingleChoice(arrayOf(), {}, {}) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, singleChoiceRequest)) + .joinBlocking() + verify(fragmentManager, never()).beginTransaction() + } + + @Test + fun `Feature will re-attach to already existing fragment`() { + val fragment: ChoiceDialogFragment = mock() + doReturn(tabId).`when`(fragment).sessionId + doReturn(fragment).`when`(fragmentManager).findFragmentByTag(FRAGMENT_TAG) + + val singleChoiceRequest = SingleChoice(arrayOf(), {}, {}) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, singleChoiceRequest)) + .joinBlocking() + + val feature = + PromptFeature( + activity = mock(), + tabsUseCases = mock(), + store = store, + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + ) { } + feature.start() + verify(fragment).feature = feature + } + + @Test + fun `Existing fragment will be removed if session has no prompt request`() { + val fragment: ChoiceDialogFragment = mock() + doReturn(tabId).`when`(fragment).sessionId + doReturn(fragment).`when`(fragmentManager).findFragmentByTag(FRAGMENT_TAG) + + val transaction: FragmentTransaction = mock() + doReturn(transaction).`when`(fragmentManager).beginTransaction() + doReturn(transaction).`when`(transaction).remove(any()) + + val feature = + PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + ) { } + feature.start() + + verify(fragment, never()).feature = feature + verify(fragmentManager).beginTransaction() + verify(transaction).remove(fragment) + } + + @Test + fun `Existing fragment will be removed if session does not exist anymore`() { + val fragment: ChoiceDialogFragment = mock() + doReturn("invalid-tab").`when`(fragment).sessionId + doReturn(fragment).`when`(fragmentManager).findFragmentByTag(FRAGMENT_TAG) + + val singleChoiceRequest = SingleChoice(arrayOf(), {}, {}) + store.dispatch(ContentAction.UpdatePromptRequestAction("invalid-tab", singleChoiceRequest)) + .joinBlocking() + + val transaction: FragmentTransaction = mock() + doReturn(transaction).`when`(fragmentManager).beginTransaction() + doReturn(transaction).`when`(transaction).remove(any()) + + val feature = + PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + ) { } + feature.start() + + verify(fragment, never()).feature = feature + verify(fragmentManager).beginTransaction() + verify(transaction).remove(fragment) + } + + @Test + fun `Calling onStop will attempt to dismiss the select prompts`() { + val feature = spy( + PromptFeature( + mock<Activity>(), + store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + ) { }, + ) + + feature.stop() + + verify(feature).dismissSelectPrompts() + } + + @Test + fun `GIVEN loginPickerView is visible WHEN dismissSelectPrompts THEN dismissCurrentLoginSelect called and true returned`() { + // given + val loginPickerView: SelectablePromptView<Login> = mock() + val feature = spy( + PromptFeature( + mock<Activity>(), + store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + fileUploadsDirCleaner = mock(), + loginDelegate = object : LoginDelegate { + override val loginPickerView = loginPickerView + override val onManageLogins = {} + }, + ) { }, + ) + val selectLoginPrompt = mock<PromptRequest.SelectLoginPrompt>() + whenever(loginPickerView.asView()).thenReturn(mock()) + whenever(loginPickerView.asView().visibility).thenReturn(View.VISIBLE) + feature.loginPicker = loginPicker + feature.activePromptRequest = selectLoginPrompt + + // when + val result = feature.dismissSelectPrompts() + + // then + verify(feature.loginPicker!!).dismissCurrentLoginSelect(selectLoginPrompt) + assertEquals(true, result) + } + + @Test + fun `GIVEN saveLoginPrompt is visible WHEN prompt is removed from state THEN dismiss saveLoginPrompt`() { + // given + val loginUsername = "username" + val loginPassword = "password" + val entry: LoginEntry = mock() + `when`(entry.username).thenReturn(loginUsername) + `when`(entry.password).thenReturn(loginPassword) + val promptRequest = PromptRequest.SaveLoginPrompt(2, listOf(entry), { }, { }) + val saveLoginPrompt: SaveLoginDialogFragment = mock() + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)) + .joinBlocking() + store.waitUntilIdle() + + val feature = spy( + PromptFeature( + mock<Activity>(), + store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + fileUploadsDirCleaner = mock(), + exitFullscreenUsecase = mock(), + isSaveLoginEnabled = { true }, + loginValidationDelegate = mock(), + ) { }, + ) + + feature.start() + feature.activePrompt = WeakReference(saveLoginPrompt) + feature.activePromptRequest = promptRequest + + // when + store.dispatch(ContentAction.ConsumePromptRequestAction(tabId, promptRequest)) + .joinBlocking() + + // then + verify(saveLoginPrompt).dismissAllowingStateLoss() + } + + @Test + fun `GIVEN isSaveLoginEnabled is false WHEN saveLoginPrompt request is handled THEN dismiss saveLoginPrompt`() { + val promptRequest = spy( + PromptRequest.SaveLoginPrompt( + hint = 2, + logins = emptyList(), + onConfirm = {}, + onDismiss = {}, + ), + ) + val feature = spy( + PromptFeature( + activity = mock(), + store = store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + fragmentManager = fragmentManager, + isSaveLoginEnabled = { false }, + ) {}, + ) + val session = tab()!! + + feature.handleDialogsRequest(promptRequest, session) + + store.waitUntilIdle() + + verify(feature).dismissDialogRequest(promptRequest, session) + } + + @Test + fun `GIVEN loginValidationDelegate is null WHEN saveLoginPrompt request is handled THEN dismiss saveLoginPrompt`() { + val promptRequest = spy( + PromptRequest.SaveLoginPrompt( + hint = 2, + logins = emptyList(), + onConfirm = {}, + onDismiss = {}, + ), + ) + val feature = spy( + PromptFeature( + activity = mock(), + store = store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + fragmentManager = fragmentManager, + isSaveLoginEnabled = { true }, + ) {}, + ) + val session = tab()!! + + feature.handleDialogsRequest(promptRequest, session) + + store.waitUntilIdle() + + verify(feature).dismissDialogRequest(promptRequest, session) + } + + @Test + fun `WHEN dismissDialogRequest is called THEN dismiss and consume the prompt request`() { + val tab = createTab("https://www.mozilla.org", id = tabId) + val store = spy( + BrowserStore( + BrowserState( + tabs = listOf(tab), + customTabs = listOf( + createCustomTab("https://www.mozilla.org", id = "custom-tab"), + ), + selectedTabId = tabId, + ), + ), + ) + val feature = PromptFeature( + activity = mock(), + store = store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + fragmentManager = fragmentManager, + ) {} + + var onDismissWasCalled = false + val promptRequest = PromptRequest.SaveLoginPrompt( + hint = 2, + logins = emptyList(), + onConfirm = {}, + onDismiss = { onDismissWasCalled = true }, + ) + + feature.dismissDialogRequest(promptRequest, tab) + + store.waitUntilIdle() + + verify(store).dispatch(ContentAction.ConsumePromptRequestAction(tab.id, promptRequest)) + assertTrue(onDismissWasCalled) + } + + @Test + fun `GIVEN loginPickerView is not visible WHEN dismissSelectPrompts THEN dismissCurrentLoginSelect called and false returned`() { + // given + val loginPickerView: SelectablePromptView<Login> = mock() + val feature = spy( + PromptFeature( + mock<Activity>(), + store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + loginDelegate = object : LoginDelegate { + override val loginPickerView = loginPickerView + override val onManageLogins = {} + }, + ) { }, + ) + val selectLoginPrompt = mock<PromptRequest.SelectLoginPrompt>() + whenever(loginPickerView.asView()).thenReturn(mock()) + whenever(loginPickerView.asView().visibility).thenReturn(View.GONE) + feature.loginPicker = loginPicker + feature.activePromptRequest = selectLoginPrompt + + // when + val result = feature.dismissSelectPrompts() + + // then + assertEquals(false, result) + } + + @Test + fun `GIVEN PromptFeature WHEN onBackPressed THEN dismissSelectPrompts is called`() { + // given + val loginPickerView: SelectablePromptView<Login> = mock() + val feature = spy( + PromptFeature( + mock<Activity>(), + store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + fileUploadsDirCleaner = mock(), + loginDelegate = object : LoginDelegate { + override val loginPickerView = loginPickerView + override val onManageLogins = {} + }, + ) { }, + ) + val selectLoginPrompt = mock<PromptRequest.SelectLoginPrompt>() + whenever(loginPickerView.asView()).thenReturn(mock()) + whenever(loginPickerView.asView().visibility).thenReturn(View.VISIBLE) + feature.loginPicker = loginPicker + feature.activePromptRequest = selectLoginPrompt + + // when + val result = feature.onBackPressed() + + // then + verify(feature).dismissSelectPrompts() + assertEquals(true, result) + } + + @Test + fun `Calling dismissSelectPrompts should dismiss the login picker if the login prompt is active`() { + val loginPickerView: SelectablePromptView<Login> = mock() + val feature = spy( + PromptFeature( + mock<Activity>(), + store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + loginDelegate = object : LoginDelegate { + override val loginPickerView = loginPickerView + override val onManageLogins = {} + }, + ) { }, + ) + val selectLoginPrompt = mock<PromptRequest.SelectLoginPrompt>() + whenever(loginPickerView.asView()).thenReturn(mock()) + whenever(loginPickerView.asView().visibility).thenReturn(View.VISIBLE) + + feature.loginPicker = loginPicker + feature.activePromptRequest = mock<SingleChoice>() + feature.dismissSelectPrompts() + verify(feature.loginPicker!!, never()).dismissCurrentLoginSelect(any()) + + feature.loginPicker = loginPicker + feature.activePromptRequest = selectLoginPrompt + feature.dismissSelectPrompts() + verify(feature.loginPicker!!).dismissCurrentLoginSelect(selectLoginPrompt) + } + + @Test + fun `GIVEN creditCardPickerView is visible WHEN dismissSelectPrompts is called THEN dismissSelectCreditCardRequest returns true`() { + val creditCardPickerView: SelectablePromptView<CreditCardEntry> = mock() + val feature = spy( + PromptFeature( + mock<Activity>(), + store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + fileUploadsDirCleaner = mock(), + creditCardDelegate = object : CreditCardDelegate { + override val creditCardPickerView = creditCardPickerView + override val onSelectCreditCard = {} + override val onManageCreditCards = {} + }, + ) { }, + ) + val selectCreditCardRequest = mock<PromptRequest.SelectCreditCard>() + feature.creditCardPicker = creditCardPicker + feature.activePromptRequest = selectCreditCardRequest + + whenever(creditCardPickerView.asView()).thenReturn(mock()) + whenever(creditCardPickerView.asView().visibility).thenReturn(View.VISIBLE) + + val result = feature.dismissSelectPrompts() + + verify(feature.creditCardPicker!!).dismissSelectCreditCardRequest(selectCreditCardRequest) + assertEquals(true, result) + } + + @Test + fun `GIVEN creditCardPickerView is not visible WHEN dismissSelectPrompts is called THEN dismissSelectPrompt returns false`() { + val creditCardPickerView: SelectablePromptView<CreditCardEntry> = mock() + val feature = spy( + PromptFeature( + mock<Activity>(), + store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + fileUploadsDirCleaner = mock(), + creditCardDelegate = object : CreditCardDelegate { + override val creditCardPickerView = creditCardPickerView + override val onSelectCreditCard = {} + override val onManageCreditCards = {} + }, + ) { }, + ) + val selectCreditCardRequest = mock<PromptRequest.SelectCreditCard>() + feature.creditCardPicker = creditCardPicker + feature.activePromptRequest = selectCreditCardRequest + + whenever(creditCardPickerView.asView()).thenReturn(mock()) + whenever(creditCardPickerView.asView().visibility).thenReturn(View.GONE) + + val result = feature.dismissSelectPrompts() + + assertEquals(false, result) + } + + @Test + fun `GIVEN an active select credit card request WHEN onBackPressed is called THEN dismissSelectPrompts is called`() { + val creditCardPickerView: SelectablePromptView<CreditCardEntry> = mock() + val feature = spy( + PromptFeature( + mock<Activity>(), + store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + fileUploadsDirCleaner = mock(), + creditCardDelegate = object : CreditCardDelegate { + override val creditCardPickerView = creditCardPickerView + override val onSelectCreditCard = {} + override val onManageCreditCards = {} + }, + ) { }, + ) + val selectCreditCardRequest = mock<PromptRequest.SelectCreditCard>() + feature.creditCardPicker = creditCardPicker + feature.activePromptRequest = selectCreditCardRequest + + whenever(creditCardPickerView.asView()).thenReturn(mock()) + whenever(creditCardPickerView.asView().visibility).thenReturn(View.VISIBLE) + + val result = feature.onBackPressed() + + verify(feature).dismissSelectPrompts() + assertEquals(true, result) + } + + @Test + fun `WHEN dismissSelectPrompts is called THEN the active credit card picker should be dismissed`() { + val creditCardPickerView: SelectablePromptView<CreditCardEntry> = mock() + val feature = spy( + PromptFeature( + mock<Activity>(), + store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + creditCardDelegate = object : CreditCardDelegate { + override val creditCardPickerView = creditCardPickerView + override val onSelectCreditCard = {} + override val onManageCreditCards = {} + }, + ) { }, + ) + feature.creditCardPicker = creditCardPicker + feature.activePromptRequest = mock<SingleChoice>() + + whenever(creditCardPickerView.asView()).thenReturn(mock()) + whenever(creditCardPickerView.asView().visibility).thenReturn(View.VISIBLE) + + feature.dismissSelectPrompts() + verify(feature.creditCardPicker!!, never()).dismissSelectCreditCardRequest(any()) + + val selectCreditCardRequest = mock<PromptRequest.SelectCreditCard>() + feature.activePromptRequest = selectCreditCardRequest + + feature.dismissSelectPrompts() + + verify(feature.creditCardPicker!!).dismissSelectCreditCardRequest(selectCreditCardRequest) + } + + @Test + fun `WHEN dismissSelectPrompts is called THEN the active addressPicker dismiss should be called`() { + val addressPickerView: SelectablePromptView<Address> = mock() + val addressDelegate: AddressDelegate = mock() + val feature = spy( + PromptFeature( + mock<Activity>(), + store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + addressDelegate = addressDelegate, + ) { }, + ) + feature.addressPicker = addressPicker + feature.activePromptRequest = mock<SingleChoice>() + + whenever(addressDelegate.addressPickerView).thenReturn(addressPickerView) + whenever(addressPickerView.asView()).thenReturn(mock()) + whenever(addressPickerView.asView().visibility).thenReturn(View.VISIBLE) + + feature.dismissSelectPrompts() + verify(feature.addressPicker!!, never()).dismissSelectAddressRequest(any()) + + val selectAddressPromptRequest = mock<PromptRequest.SelectAddress>() + feature.activePromptRequest = selectAddressPromptRequest + + feature.dismissSelectPrompts() + + verify(feature.addressPicker!!).dismissSelectAddressRequest(selectAddressPromptRequest) + + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + } + + @Test + fun `GIVEN addressPickerView is not visible WHEN dismissSelectPrompts is called THEN dismissSelectPrompts returns false`() { + val addressPickerView: SelectablePromptView<Address> = mock() + val addressDelegate: AddressDelegate = mock() + val feature = spy( + PromptFeature( + mock<Activity>(), + store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + fragmentManager = fragmentManager, + addressDelegate = addressDelegate, + ) { }, + ) + val selectAddressRequest = mock<PromptRequest.SelectAddress>() + feature.addressPicker = addressPicker + feature.activePromptRequest = selectAddressRequest + + whenever(addressDelegate.addressPickerView).thenReturn(addressPickerView) + whenever(addressPickerView.asView()).thenReturn(mock()) + whenever(addressPickerView.asView().visibility).thenReturn(View.GONE) + + val result = feature.dismissSelectPrompts() + + assertEquals(false, result) + } + + @Test + fun `Calling onCancel will consume promptRequest`() { + val feature = + PromptFeature( + activity = mock(), + store = store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + fragmentManager = fragmentManager, + ) { } + + val singleChoiceRequest = SingleChoice(arrayOf(), {}, {}) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, singleChoiceRequest)) + .joinBlocking() + + assertEquals(1, tab()!!.content.promptRequests.size) + assertEquals(singleChoiceRequest, tab()!!.content.promptRequests[0]) + feature.onCancel(tabId, singleChoiceRequest.uid) + + store.waitUntilIdle() + assertTrue(tab()?.content?.promptRequests?.isEmpty() ?: false) + } + + @Test + fun `Selecting an item in a single choice dialog will consume promptRequest`() { + val feature = + PromptFeature( + activity = mock(), + store = store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + feature.start() + + val singleChoiceRequest = SingleChoice(arrayOf(), {}, {}) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, singleChoiceRequest)) + .joinBlocking() + + assertEquals(1, tab()!!.content.promptRequests.size) + assertEquals(singleChoiceRequest, tab()!!.content.promptRequests[0]) + feature.onConfirm(tabId, singleChoiceRequest.uid, mock<Choice>()) + + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + } + + @Test + fun `Selecting an item in a menu choice dialog will consume promptRequest`() { + val feature = + PromptFeature( + activity = mock(), + store = store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + feature.start() + + val menuChoiceRequest = MenuChoice(arrayOf(), {}, {}) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, menuChoiceRequest)) + .joinBlocking() + + assertEquals(1, tab()!!.content.promptRequests.size) + assertEquals(menuChoiceRequest, tab()!!.content.promptRequests[0]) + feature.onConfirm(tabId, menuChoiceRequest.uid, mock<Choice>()) + + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + } + + @Test + fun `Selecting items on multiple choice dialog will consume promptRequest`() { + val feature = + PromptFeature( + activity = mock(), + store = store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + feature.start() + + val multipleChoiceRequest = MultipleChoice(arrayOf(), {}, {}) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, multipleChoiceRequest)) + .joinBlocking() + + assertEquals(1, tab()!!.content.promptRequests.size) + assertEquals(multipleChoiceRequest, tab()!!.content.promptRequests[0]) + feature.onConfirm(tabId, multipleChoiceRequest.uid, arrayOf<Choice>()) + + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + } + + @Test + fun `onNoMoreDialogsChecked will consume promptRequest`() { + val feature = + PromptFeature( + activity = mock(), + store = store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + + var onShowNoMoreAlertsWasCalled = false + var onDismissWasCalled = false + + val promptRequest = Alert( + "title", + "message", + false, + { onShowNoMoreAlertsWasCalled = true }, + { onDismissWasCalled = true }, + ) + + feature.start() + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + feature.onConfirm(tabId, promptRequest.uid, false) + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + assertTrue(onShowNoMoreAlertsWasCalled) + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + feature.onCancel(tabId, promptRequest.uid) + store.waitUntilIdle() + assertTrue(onDismissWasCalled) + } + + @Test + fun `Calling onCancel with an alert request will consume promptRequest and call onDismiss`() { + val feature = + PromptFeature( + activity = mock(), + store = store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + var onDismissWasCalled = false + val promptRequest = Alert("title", "message", false, {}, { onDismissWasCalled = true }) + + feature.start() + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + feature.onCancel(tabId, promptRequest.uid) + store.waitUntilIdle() + assertTrue(onDismissWasCalled) + assertTrue(tab()!!.content.promptRequests.isEmpty()) + } + + @Test + fun `onConfirmTextPrompt will consume promptRequest`() { + val feature = + PromptFeature( + activity = mock(), + fileUploadsDirCleaner = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + var onConfirmWasCalled = false + var onDismissWasCalled = false + + val promptRequest = TextPrompt( + "title", + "message", + "input", + false, + { _, _ -> onConfirmWasCalled = true }, + { onDismissWasCalled = true }, + ) + + feature.start() + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + feature.onConfirm(tabId, promptRequest.uid, false to "") + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + assertTrue(onConfirmWasCalled) + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + feature.onCancel(tabId, promptRequest.uid) + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + assertTrue(onDismissWasCalled) + } + + @Test + fun `Calling onCancel with an TextPrompt request will consume promptRequest and call onDismiss`() { + val feature = + PromptFeature( + activity = mock(), + fileUploadsDirCleaner = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + var onDismissWasCalled = false + + val promptRequest = TextPrompt( + "title", + "message", + "value", + false, + { _, _ -> }, + { onDismissWasCalled = true }, + ) + + feature.start() + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + + feature.onCancel(tabId, promptRequest.uid) + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + assertTrue(onDismissWasCalled) + } + + @Test + fun `selecting a time will consume promptRequest`() { + val timeSelectionTypes = listOf( + PromptRequest.TimeSelection.Type.DATE, + PromptRequest.TimeSelection.Type.DATE_AND_TIME, + PromptRequest.TimeSelection.Type.TIME, + PromptRequest.TimeSelection.Type.MONTH, + ) + + timeSelectionTypes.forEach { type -> + val feature = PromptFeature( + activity = mock(), + fileUploadsDirCleaner = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + var onClearWasCalled = false + var selectedDate: Date? = null + val promptRequest = PromptRequest.TimeSelection( + "title", + Date(0), + null, + null, + null, + type, + { date -> selectedDate = date }, + { onClearWasCalled = true }, + { }, + ) + + feature.start() + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)) + .joinBlocking() + + val now = Date() + feature.onConfirm(tabId, promptRequest.uid, now) + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + + assertEquals(now, selectedDate) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)) + .joinBlocking() + + feature.onClear(tabId, promptRequest.uid) + assertTrue(onClearWasCalled) + feature.stop() + } + } + + @Test(expected = InvalidParameterException::class) + fun `calling handleDialogsRequest with invalid type will throw an exception`() { + val feature = + PromptFeature( + activity = mock(), + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + store = store, + fragmentManager = fragmentManager, + ) { } + feature.handleDialogsRequest(mock<PromptRequest.File>(), mock()) + } + + @Test + fun `onActivityResult with RESULT_OK and isMultipleFilesSelection false will consume PromptRequest`() { + var onSingleFileSelectionWasCalled = false + + val onSingleFileSelection: (Context, Uri) -> Unit = { _, _ -> + onSingleFileSelectionWasCalled = true + } + + val filePickerRequest = + PromptRequest.File(emptyArray(), false, onSingleFileSelection, { _, _ -> }) { } + val activity = mock<Activity>() + doReturn(mock<ContentResolver>()).`when`(activity).contentResolver + + val feature = + PromptFeature( + activity = activity, + fileUploadsDirCleaner = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + ) { } + val intent = Intent() + + intent.data = mock() + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, filePickerRequest)) + .joinBlocking() + + feature.onActivityResult(FILE_PICKER_ACTIVITY_REQUEST_CODE, intent, RESULT_OK) + store.waitUntilIdle() + assertTrue(onSingleFileSelectionWasCalled) + assertTrue(tab()!!.content.promptRequests.isEmpty()) + } + + @Test + fun `onActivityResult with RESULT_OK and isMultipleFilesSelection true will consume PromptRequest of the actual session`() { + var onMultipleFileSelectionWasCalled = false + + val onMultipleFileSelection: (Context, Array<Uri>) -> Unit = { _, _ -> + onMultipleFileSelectionWasCalled = true + } + + val filePickerRequest = + PromptRequest.File(emptyArray(), true, { _, _ -> }, onMultipleFileSelection) {} + val activity = mock<Activity>() + doReturn(mock<ContentResolver>()).`when`(activity).contentResolver + + val feature = + PromptFeature( + activity = activity, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + store = store, + fragmentManager = fragmentManager, + ) { } + val intent = Intent() + + intent.clipData = mock() + val item = mock<ClipData.Item>() + + doReturn(mock<Uri>()).`when`(item).uri + + intent.clipData?.apply { + doReturn(1).`when`(this).itemCount + doReturn(item).`when`(this).getItemAt(0) + } + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, filePickerRequest)) + .joinBlocking() + + feature.onActivityResult(FILE_PICKER_ACTIVITY_REQUEST_CODE, intent, RESULT_OK) + store.waitUntilIdle() + assertTrue(onMultipleFileSelectionWasCalled) + assertTrue(tab()!!.content.promptRequests.isEmpty()) + } + + @Test + fun `onActivityResult with RESULT_CANCELED will consume PromptRequest call onDismiss`() { + var onDismissWasCalled = false + + val filePickerRequest = + PromptRequest.File(emptyArray(), true, { _, _ -> }, { _, _ -> }) { + onDismissWasCalled = true + } + + val feature = + PromptFeature( + activity = mock(), + store = store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + fragmentManager = fragmentManager, + ) { } + val intent = Intent() + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, filePickerRequest)) + .joinBlocking() + + feature.onActivityResult(FILE_PICKER_ACTIVITY_REQUEST_CODE, intent, RESULT_CANCELED) + store.waitUntilIdle() + assertTrue(onDismissWasCalled) + assertTrue(tab()!!.content.promptRequests.isEmpty()) + } + + @Test + fun `WHEN onActivityResult is called with PIN_REQUEST and RESULT_OK THEN onAuthSuccess) is called`() { + val creditCardPickerView: SelectablePromptView<CreditCardEntry> = mock() + val feature = + PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + creditCardDelegate = object : CreditCardDelegate { + override val creditCardPickerView = creditCardPickerView + override val onSelectCreditCard = {} + override val onManageCreditCards = {} + }, + isCreditCardAutofillEnabled = { true }, + ) { } + feature.creditCardPicker = creditCardPicker + val intent = Intent() + + feature.onActivityResult(PromptFeature.PIN_REQUEST, intent, RESULT_OK) + + verify(creditCardPicker).onAuthSuccess() + } + + @Test + fun `WHEN onActivityResult is called with PIN_REQUEST and RESULT_CANCELED THEN onAuthFailure is called`() { + val creditCardPickerView: SelectablePromptView<CreditCardEntry> = mock() + val feature = + PromptFeature( + activity = mock(), + store = store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + fragmentManager = fragmentManager, + creditCardDelegate = object : CreditCardDelegate { + override val creditCardPickerView = creditCardPickerView + override val onSelectCreditCard = {} + override val onManageCreditCards = {} + }, + isCreditCardAutofillEnabled = { true }, + ) { } + feature.creditCardPicker = creditCardPicker + val intent = Intent() + + feature.onActivityResult(PromptFeature.PIN_REQUEST, intent, RESULT_CANCELED) + + verify(creditCardPicker).onAuthFailure() + } + + @Test + fun `GIVEN user successfully authenticates by biometric prompt WHEN onBiometricResult is called THEN onAuthSuccess is called`() { + val creditCardPickerView: SelectablePromptView<CreditCardEntry> = mock() + val feature = + PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + fileUploadsDirCleaner = mock(), + creditCardDelegate = object : CreditCardDelegate { + override val creditCardPickerView = creditCardPickerView + override val onSelectCreditCard = {} + override val onManageCreditCards = {} + }, + isCreditCardAutofillEnabled = { true }, + ) { } + feature.creditCardPicker = creditCardPicker + + feature.onBiometricResult(isAuthenticated = true) + + verify(creditCardPicker).onAuthSuccess() + } + + @Test + fun `GIVEN user fails to authenticate by biometric prompt WHEN onBiometricResult is called THEN onAuthFailure) is called`() { + val creditCardPickerView: SelectablePromptView<CreditCardEntry> = mock() + val feature = + PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + creditCardDelegate = object : CreditCardDelegate { + override val creditCardPickerView = creditCardPickerView + override val onSelectCreditCard = {} + override val onManageCreditCards = {} + }, + isCreditCardAutofillEnabled = { true }, + ) { } + feature.creditCardPicker = creditCardPicker + + feature.onBiometricResult(isAuthenticated = false) + + verify(creditCardPicker).onAuthFailure() + } + + @Test + fun `Selecting a login confirms the request`() { + var onDismissWasCalled = false + var confirmedLogin: Login? = null + + val login = + Login(guid = "A", origin = "https://www.mozilla.org", username = "username", password = "password") + val login2 = + Login(guid = "B", origin = "https://www.mozilla.org", username = "username2", password = "password") + + val loginPickerRequest = PromptRequest.SelectLoginPrompt( + logins = listOf(login, login2), + generatedPassword = null, + onConfirm = { confirmedLogin = it }, + onDismiss = { onDismissWasCalled = true }, + ) + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, loginPickerRequest)) + .joinBlocking() + + loginPickerRequest.onConfirm(login) + + store.waitUntilIdle() + + assertEquals(confirmedLogin, login) + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, loginPickerRequest)) + .joinBlocking() + loginPickerRequest.onDismiss() + + store.waitUntilIdle() + + assertTrue(onDismissWasCalled) + } + + @Test + fun `WHEN a credit card is selected THEN confirm the prompt request with the selected credit card`() { + val creditCard = CreditCardEntry( + guid = "id", + name = "Banana Apple", + number = "4111111111111110", + expiryMonth = "5", + expiryYear = "2030", + cardType = "amex", + ) + var onDismissCalled = false + var onConfirmCalled = false + var confirmedCreditCard: CreditCardEntry? = null + + val selectCreditCardRequest = PromptRequest.SelectCreditCard( + creditCards = listOf(creditCard), + onDismiss = { + onDismissCalled = true + }, + onConfirm = { + confirmedCreditCard = it + onConfirmCalled = true + }, + ) + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, selectCreditCardRequest)) + .joinBlocking() + + selectCreditCardRequest.onConfirm(creditCard) + + store.waitUntilIdle() + + assertEquals(creditCard, confirmedCreditCard) + assertTrue(onConfirmCalled) + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, selectCreditCardRequest)) + .joinBlocking() + selectCreditCardRequest.onDismiss() + + store.waitUntilIdle() + + assertTrue(onDismissCalled) + } + + @Test + fun `Calling onConfirmAuthentication will consume promptRequest`() { + val feature = + PromptFeature( + activity = mock(), + fileUploadsDirCleaner = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + + var onConfirmWasCalled = false + var onDismissWasCalled = false + + val promptRequest = Authentication( + uri = "https://www.mozilla.org", + title = "title", + message = "message", + userName = "username", + password = "password", + method = HOST, + level = NONE, + onlyShowPassword = false, + previousFailed = false, + isCrossOrigin = false, + onConfirm = { _, _ -> onConfirmWasCalled = true }, + onDismiss = { onDismissWasCalled = true }, + ) + + feature.start() + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + + feature.onConfirm(tabId, promptRequest.uid, "" to "") + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + assertTrue(onConfirmWasCalled) + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + + feature.onCancel(tabId, promptRequest.uid) + store.waitUntilIdle() + assertTrue(onDismissWasCalled) + } + + @Test + fun `Calling onConfirm on a BeforeUnload request will consume promptRequest`() { + val fragment: Fragment = mock() + whenever(fragment.getString(R.string.mozac_feature_prompt_before_unload_dialog_title)).thenReturn( + "", + ) + whenever(fragment.getString(R.string.mozac_feature_prompt_before_unload_dialog_body)).thenReturn( + "", + ) + whenever(fragment.getString(R.string.mozac_feature_prompts_before_unload_stay)).thenReturn("") + whenever(fragment.getString(R.string.mozac_feature_prompts_before_unload_leave)).thenReturn( + "", + ) + + val feature = + PromptFeature( + fragment = fragment, + store = store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + + var onLeaveWasCalled = false + + val promptRequest = PromptRequest.BeforeUnload( + title = "title", + onLeave = { onLeaveWasCalled = true }, + onStay = { }, + ) + + feature.start() + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + + feature.onConfirm(tabId, promptRequest.uid, "" to "") + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + assertTrue(onLeaveWasCalled) + } + + @Test + fun `Calling onCancel on a authentication request will consume promptRequest and call onDismiss`() { + val feature = + PromptFeature( + activity = mock(), + fileUploadsDirCleaner = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + var onDismissWasCalled = false + + val promptRequest = Authentication( + uri = "https://www.mozilla.org", + title = "title", + message = "message", + userName = "username", + password = "password", + method = HOST, + level = NONE, + onlyShowPassword = false, + previousFailed = false, + isCrossOrigin = false, + onConfirm = { _, _ -> }, + onDismiss = { onDismissWasCalled = true }, + ) + + feature.start() + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + + feature.onCancel(tabId, promptRequest.uid) + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + assertTrue(onDismissWasCalled) + } + + @Test + fun `Calling onConfirm on a color request will consume promptRequest`() { + val feature = + PromptFeature( + activity = mock(), + store = store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + + var onConfirmWasCalled = false + var onDismissWasCalled = false + + val promptRequest = Color( + "#e66465", + { + onConfirmWasCalled = true + }, + ) { + onDismissWasCalled = true + } + + feature.start() + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + + feature.onConfirm(tabId, promptRequest.uid, "#f6b73c") + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + assertTrue(onConfirmWasCalled) + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + + feature.onCancel(tabId, promptRequest.uid) + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + assertTrue(onDismissWasCalled) + } + + @Test + fun `Calling onConfirm on a popup request will consume promptRequest`() { + val fragment: Fragment = mock() + whenever(fragment.getString(R.string.mozac_feature_prompts_popup_dialog_title)).thenReturn("") + whenever(fragment.getString(R.string.mozac_feature_prompts_allow)).thenReturn("") + whenever(fragment.getString(R.string.mozac_feature_prompts_deny)).thenReturn("") + + val feature = + PromptFeature( + fragment = fragment, + store = store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + var onConfirmWasCalled = false + + val promptRequest = PromptRequest.Popup( + "http://www.popuptest.com/", + { onConfirmWasCalled = true }, + { }, + ) {} + + feature.start() + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + + feature.onConfirm(tabId, promptRequest.uid, true) + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + assertTrue(onConfirmWasCalled) + } + + @Test + fun `Calling onCancel on a popup request will consume promptRequest`() { + val fragment: Fragment = mock() + whenever(fragment.getString(R.string.mozac_feature_prompts_popup_dialog_title)).thenReturn("") + whenever(fragment.getString(R.string.mozac_feature_prompts_allow)).thenReturn("") + whenever(fragment.getString(R.string.mozac_feature_prompts_deny)).thenReturn("") + + val feature = + PromptFeature( + fragment = fragment, + fileUploadsDirCleaner = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + var onCancelWasCalled = false + + val promptRequest = PromptRequest.Popup( + "http://www.popuptest.com/", + onAllow = { }, + onDeny = { + onCancelWasCalled = true + }, + ) + + feature.start() + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + + feature.onCancel(tabId, promptRequest.uid, true) + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + assertTrue(onCancelWasCalled) + } + + @Test + fun `Calling onCancel on a BeforeUnload request will consume promptRequest`() { + val fragment: Fragment = mock() + whenever(fragment.getString(R.string.mozac_feature_prompt_before_unload_dialog_title)).thenReturn( + "", + ) + whenever(fragment.getString(R.string.mozac_feature_prompt_before_unload_dialog_body)).thenReturn( + "", + ) + whenever(fragment.getString(R.string.mozac_feature_prompts_before_unload_stay)).thenReturn("") + whenever(fragment.getString(R.string.mozac_feature_prompts_before_unload_leave)).thenReturn( + "", + ) + + val feature = + PromptFeature( + fragment = fragment, + fileUploadsDirCleaner = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + var onCancelWasCalled = false + + val promptRequest = PromptRequest.BeforeUnload("http://www.test.com/", { }) { + onCancelWasCalled = true + } + + feature.start() + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + + feature.onCancel(tabId, promptRequest.uid) + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + assertTrue(onCancelWasCalled) + } + + @Test + fun `Calling onConfirm on a confirm request will consume promptRequest`() { + val feature = + PromptFeature( + activity = mock(), + fileUploadsDirCleaner = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + var onPositiveButtonWasCalled = false + var onNegativeButtonWasCalled = false + var onNeutralButtonWasCalled = false + + val onConfirmPositiveButton: (Boolean) -> Unit = { + onPositiveButtonWasCalled = true + } + + val onConfirmNegativeButton: (Boolean) -> Unit = { + onNegativeButtonWasCalled = true + } + + val onConfirmNeutralButton: (Boolean) -> Unit = { + onNeutralButtonWasCalled = true + } + + val promptRequest = PromptRequest.Confirm( + "title", + "message", + false, + "positive", + "negative", + "neutral", + onConfirmPositiveButton, + onConfirmNegativeButton, + onConfirmNeutralButton, + ) {} + + feature.start() + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + feature.onConfirm(tabId, promptRequest.uid, true to MultiButtonDialogFragment.ButtonType.POSITIVE) + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + assertTrue(onPositiveButtonWasCalled) + + feature.promptAbuserDetector.resetJSAlertAbuseState() + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + feature.onConfirm(tabId, promptRequest.uid, true to MultiButtonDialogFragment.ButtonType.NEGATIVE) + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + assertTrue(onNegativeButtonWasCalled) + + feature.promptAbuserDetector.resetJSAlertAbuseState() + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + feature.onConfirm(tabId, promptRequest.uid, true to MultiButtonDialogFragment.ButtonType.NEUTRAL) + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + assertTrue(onNeutralButtonWasCalled) + } + + @Test + fun `Calling onCancel on a confirm request will consume promptRequest`() { + val feature = + PromptFeature( + activity = mock(), + fileUploadsDirCleaner = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + var onCancelWasCalled = false + + val onConfirm: (Boolean) -> Unit = { } + + val onDismiss: () -> Unit = { + onCancelWasCalled = true + } + + val promptRequest = PromptRequest.Confirm( + "title", + "message", + false, + "positive", + "negative", + "neutral", + onConfirm, + onConfirm, + onConfirm, + onDismiss, + ) + + feature.start() + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + + feature.onCancel(tabId, promptRequest.uid) + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + assertTrue(onCancelWasCalled) + } + + @Test + fun `When dialogs are being abused prompts are not allowed`() { + val feature = + PromptFeature( + activity = mock(), + fileUploadsDirCleaner = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + var onDismissWasCalled: Boolean + val onDismiss = { onDismissWasCalled = true } + val alertRequest = Alert("", "", false, {}, onDismiss) + val textRequest = TextPrompt("", "", "", false, { _, _ -> }, onDismiss) + val confirmRequest = + PromptRequest.Confirm("", "", false, "+", "-", "", {}, {}, {}, onDismiss) + + val promptRequests = arrayOf<PromptRequest>(alertRequest, textRequest, confirmRequest) + + feature.start() + feature.promptAbuserDetector.userWantsMoreDialogs(false) + + promptRequests.forEach { request -> + onDismissWasCalled = false + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, request)).joinBlocking() + verify(fragmentManager, never()).beginTransaction() + assertTrue(onDismissWasCalled) + } + } + + @Test + fun `When dialogs are being abused but the page is refreshed prompts are allowed`() { + val feature = + PromptFeature( + activity = mock(), + fileUploadsDirCleaner = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + var onDismissWasCalled = false + val onDismiss = { onDismissWasCalled = true } + val alertRequest = Alert("", "", false, {}, onDismiss) + + feature.start() + feature.promptAbuserDetector.userWantsMoreDialogs(false) + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, alertRequest)).joinBlocking() + + verify(fragmentManager, never()).beginTransaction() + assertTrue(onDismissWasCalled) + + // Simulate reloading page + store.dispatch(ContentAction.UpdateLoadingStateAction(tabId, true)).joinBlocking() + store.dispatch(ContentAction.UpdateLoadingStateAction(tabId, false)).joinBlocking() + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, alertRequest)).joinBlocking() + + assertTrue(feature.promptAbuserDetector.shouldShowMoreDialogs) + verify(fragmentManager).beginTransaction() + } + + @Test + fun `User can stop further popups from being displayed on the current page`() { + val feature = PromptFeature( + activity = Robolectric.buildActivity(Activity::class.java).setup().get(), + store = store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + ) { } + + var onDenyCalled = false + val onDeny = { onDenyCalled = true } + val popupPrompt = PromptRequest.Popup("https://firefox.com", onAllow = { }, onDeny = onDeny) + + feature.start() + assertTrue(feature.promptAbuserDetector.shouldShowMoreDialogs) + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, popupPrompt)).joinBlocking() + verify(fragmentManager, times(1)).beginTransaction() + feature.onCancel(tabId, popupPrompt.uid, true) + assertFalse(feature.promptAbuserDetector.shouldShowMoreDialogs) + assertTrue(onDenyCalled) + + onDenyCalled = false + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, popupPrompt)).joinBlocking() + verify(fragmentManager, times(1)).beginTransaction() + assertFalse(feature.promptAbuserDetector.shouldShowMoreDialogs) + assertTrue(onDenyCalled) + } + + @Test + fun `When page is refreshed login dialog is dismissed`() { + val loginPickerView: SelectablePromptView<Login> = mock() + val feature = + PromptFeature( + activity = mock(), + store = store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + loginDelegate = object : LoginDelegate { + override val loginPickerView = loginPickerView + override val onManageLogins = {} + }, + ) { } + feature.loginPicker = loginPicker + val onLoginDismiss: () -> Unit = {} + val onLoginConfirm: (Login) -> Unit = {} + + val login = Login(guid = "A", origin = "origin", username = "username", password = "password") + val selectLoginRequest = + PromptRequest.SelectLoginPrompt(listOf(login), null, onLoginConfirm, onLoginDismiss) + + whenever(loginPickerView.asView()).thenReturn(mock()) + whenever(loginPickerView.asView().visibility).thenReturn(View.VISIBLE) + + feature.start() + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, selectLoginRequest)) + .joinBlocking() + + verify(loginPicker).handleSelectLoginRequest(selectLoginRequest) + + // Simulate reloading page + store.dispatch(ContentAction.UpdateLoadingStateAction(tabId, true)).joinBlocking() + + verify(loginPicker).dismissCurrentLoginSelect(selectLoginRequest) + } + + @Test + fun `WHEN page is refreshed THEN credit card prompt is dismissed`() { + val creditCardPickerView: SelectablePromptView<CreditCardEntry> = mock() + val feature = + PromptFeature( + activity = mock(), + store = store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + creditCardDelegate = object : CreditCardDelegate { + override val creditCardPickerView = creditCardPickerView + override val onSelectCreditCard = {} + override val onManageCreditCards = {} + }, + isCreditCardAutofillEnabled = { true }, + ) { } + feature.creditCardPicker = creditCardPicker + val onDismiss: () -> Unit = {} + val onConfirm: (CreditCardEntry) -> Unit = {} + val creditCard = CreditCardEntry( + guid = "1", + name = "Banana Apple", + number = "4111111111111110", + expiryMonth = "5", + expiryYear = "2030", + cardType = "", + ) + val selectCreditCardRequest = + PromptRequest.SelectCreditCard(listOf(creditCard), onConfirm, onDismiss) + + whenever(creditCardPickerView.asView()).thenReturn(mock()) + whenever(creditCardPickerView.asView().visibility).thenReturn(View.VISIBLE) + + feature.start() + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, selectCreditCardRequest)) + .joinBlocking() + + verify(creditCardPicker).handleSelectCreditCardRequest(selectCreditCardRequest) + + // Simulate reloading page + store.dispatch(ContentAction.UpdateLoadingStateAction(tabId, true)).joinBlocking() + + verify(creditCardPicker).dismissSelectCreditCardRequest(selectCreditCardRequest) + } + + @Test + fun `Share prompt calls ShareDelegate`() { + val delegate: ShareDelegate = mock() + val activity: Activity = mock() + val feature = spy( + PromptFeature( + activity, + store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + customTabId = "custom-tab", + shareDelegate = delegate, + fragmentManager = fragmentManager, + ) { }, + ) + feature.start() + + val promptRequest = PromptRequest.Share(ShareData("Title", "Text", null), {}, {}, {}) + store.dispatch(ContentAction.UpdatePromptRequestAction("custom-tab", promptRequest)) + .joinBlocking() + + verify(feature).onPromptRequested(store.state.customTabs.first()) + verify(delegate).showShareSheet( + eq(activity), + eq(promptRequest.data), + onDismiss = any(), + onSuccess = any(), + ) + } + + @Test + fun `GIVEN credit card autofill enabled and cards available WHEN getting a SelectCreditCard request THEN that request is handled`() { + val feature = spy( + PromptFeature( + mock<Activity>(), + store, + tabsUseCases = mock(), + customTabId = "custom-tab", + fragmentManager = fragmentManager, + fileUploadsDirCleaner = mock(), + isCreditCardAutofillEnabled = { true }, + ) { }, + ) + feature.creditCardPicker = creditCardPicker + feature.start() + val selectCreditCardRequest = PromptRequest.SelectCreditCard(listOf(mock()), {}, {}) + + store.dispatch(ContentAction.UpdatePromptRequestAction("custom-tab", selectCreditCardRequest)) + .joinBlocking() + + verify(feature).onPromptRequested(store.state.customTabs.first()) + verify(creditCardPicker).handleSelectCreditCardRequest(selectCreditCardRequest) + } + + @Test + fun `GIVEN credit card autofill enabled but no cards available WHEN getting a SelectCreditCard request THEN that request is not acted upon`() { + val feature = spy( + PromptFeature( + mock<Activity>(), + store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + customTabId = "custom-tab", + fragmentManager = fragmentManager, + isCreditCardAutofillEnabled = { true }, + ) { }, + ) + feature.creditCardPicker = creditCardPicker + feature.start() + val selectCreditCardRequest = PromptRequest.SelectCreditCard(emptyList(), {}, {}) + + store.dispatch(ContentAction.UpdatePromptRequestAction("custom-tab", selectCreditCardRequest)) + .joinBlocking() + + verify(feature).onPromptRequested(store.state.customTabs.first()) + verify(creditCardPicker, never()).handleSelectCreditCardRequest(selectCreditCardRequest) + } + + @Test + fun `GIVEN credit card autofill disabled and cards available WHEN getting a SelectCreditCard request THEN that request is handled`() { + val feature = spy( + PromptFeature( + mock<Activity>(), + store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + customTabId = "custom-tab", + fragmentManager = fragmentManager, + isCreditCardAutofillEnabled = { false }, + ) { }, + ) + feature.creditCardPicker = creditCardPicker + feature.start() + val selectCreditCardRequest = PromptRequest.SelectCreditCard(listOf(mock()), {}, {}) + + store.dispatch(ContentAction.UpdatePromptRequestAction("custom-tab", selectCreditCardRequest)) + .joinBlocking() + + verify(feature).onPromptRequested(store.state.customTabs.first()) + verify(creditCardPicker, never()).handleSelectCreditCardRequest(selectCreditCardRequest) + } + + @Test + fun `GIVEN a custom tab WHEN a new prompt is requested THEN exit fullscreen`() { + val exitFullScreenUseCase: SessionUseCases.ExitFullScreenUseCase = mock() + val feature = PromptFeature( + fragment = mock(), + store = store, + fileUploadsDirCleaner = mock(), + tabsUseCases = mock(), + customTabId = "custom-tab", + fragmentManager = fragmentManager, + exitFullscreenUsecase = exitFullScreenUseCase, + ) { } + val promptRequest: Alert = mock() + + store.dispatch(ContentAction.UpdatePromptRequestAction("custom-tab", promptRequest)).joinBlocking() + feature.start() + + verify(exitFullScreenUseCase).invoke("custom-tab") + } + + @Test + fun `GIVEN a normal tab WHEN a new prompt is requested THEN exit fullscreen`() { + val exitFullScreenUseCase: SessionUseCases.ExitFullScreenUseCase = mock() + val feature = PromptFeature( + fragment = mock(), + fileUploadsDirCleaner = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = exitFullScreenUseCase, + ) { } + val promptRequest: Alert = mock() + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + feature.start() + + verify(exitFullScreenUseCase).invoke(tabId) + } + + @Test + fun `GIVEN a private tab WHEN a new prompt is requested THEN exit fullscreen`() { + val privateTabId = "private-tab" + val exitFullScreenUseCase: SessionUseCases.ExitFullScreenUseCase = mock() + store = BrowserStore( + initialState = store.state.copy( + tabs = store.state.tabs + TabSessionState( + id = privateTabId, + content = ContentState(url = "", private = true), + ), + selectedTabId = privateTabId, + ), + ) + val feature = PromptFeature( + fragment = mock(), + store = store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = exitFullScreenUseCase, + ) { } + val promptRequest: Alert = mock() + + store.dispatch(ContentAction.UpdatePromptRequestAction(privateTabId, promptRequest)).joinBlocking() + feature.start() + + verify(exitFullScreenUseCase).invoke(privateTabId) + } + + @Test + fun `GIVEN isCreditCardAutofillEnabled is false WHEN SaveCreditCard request is handled THEN dismiss SaveCreditCard`() { + val creditCardEntry = CreditCardEntry( + guid = "1", + name = "Banana Apple", + number = "4111111111111110", + expiryMonth = "5", + expiryYear = "2030", + cardType = "", + ) + val promptRequest = spy( + PromptRequest.SaveCreditCard( + creditCard = creditCardEntry, + onConfirm = {}, + onDismiss = {}, + ), + ) + val feature = spy( + PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + fileUploadsDirCleaner = mock(), + creditCardValidationDelegate = mock(), + isCreditCardAutofillEnabled = { false }, + ) {}, + ) + val session = tab()!! + + feature.handleDialogsRequest(promptRequest, session) + + store.waitUntilIdle() + + verify(feature).dismissDialogRequest(promptRequest, session) + } + + @Test + fun `GIVEN creditCardValidationDelegate is null WHEN SaveCreditCard request is handled THEN dismiss SaveCreditCard`() { + val creditCardEntry = CreditCardEntry( + guid = "1", + name = "Banana Apple", + number = "4111111111111110", + expiryMonth = "5", + expiryYear = "2030", + cardType = "", + ) + val promptRequest = spy( + PromptRequest.SaveCreditCard( + creditCard = creditCardEntry, + onConfirm = {}, + onDismiss = {}, + ), + ) + val feature = spy( + PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + fileUploadsDirCleaner = mock(), + creditCardValidationDelegate = null, + isCreditCardAutofillEnabled = { true }, + ) {}, + ) + val session = tab()!! + + feature.handleDialogsRequest(promptRequest, session) + + store.waitUntilIdle() + + verify(feature).dismissDialogRequest(promptRequest, session) + } + + @Test + fun `GIVEN prompt request credit card is invalid WHEN SaveCreditCard request is handled THEN dismiss SaveCreditCard`() { + val invalidMonth = "" + val invalidYear = "" + val creditCardEntry = CreditCardEntry( + guid = "1", + name = "Banana Apple", + number = "4111111111111110", + expiryMonth = invalidMonth, + expiryYear = invalidYear, + cardType = "", + ) + val promptRequest = spy( + PromptRequest.SaveCreditCard( + creditCard = creditCardEntry, + onConfirm = {}, + onDismiss = {}, + ), + ) + val feature = spy( + PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + creditCardValidationDelegate = mock(), + fileUploadsDirCleaner = mock(), + isCreditCardAutofillEnabled = { true }, + ) {}, + ) + val session = tab()!! + + feature.handleDialogsRequest(promptRequest, session) + + store.waitUntilIdle() + + verify(feature).dismissDialogRequest(promptRequest, session) + } + + @Test + fun `Selecting an item in a share dialog will consume promptRequest`() { + val delegate: ShareDelegate = mock() + val feature = PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + fileUploadsDirCleaner = mock(), + exitFullscreenUsecase = mock(), + shareDelegate = delegate, + ) { } + feature.start() + + var onSuccessCalled = false + + val shareRequest = PromptRequest.Share( + ShareData("Title", "Text", null), + onSuccess = { onSuccessCalled = true }, + onFailure = {}, + onDismiss = {}, + ) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, shareRequest)).joinBlocking() + + assertEquals(1, tab()!!.content.promptRequests.size) + assertEquals(shareRequest, tab()!!.content.promptRequests[0]) + feature.onConfirm(tabId, shareRequest.uid, null) + + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + assertTrue(onSuccessCalled) + } + + @Test + fun `Dismissing a share dialog will consume promptRequest`() { + val delegate: ShareDelegate = mock() + val feature = PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + shareDelegate = delegate, + ) { } + feature.start() + + var onDismissCalled = false + + val shareRequest = PromptRequest.Share( + ShareData("Title", "Text", null), + onSuccess = {}, + onFailure = {}, + onDismiss = { onDismissCalled = true }, + ) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, shareRequest)).joinBlocking() + + assertEquals(1, tab()!!.content.promptRequests.size) + assertEquals(shareRequest, tab()!!.content.promptRequests[0]) + feature.onCancel(tabId, shareRequest.uid) + + store.waitUntilIdle() + assertTrue(tab()!!.content.promptRequests.isEmpty()) + assertTrue(onDismissCalled) + } + + @Test + fun `dialog will be dismissed if tab ID changes`() { + val feature = spy( + PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + shareDelegate = mock(), + ) { }, + ) + feature.start() + + val shareRequest = PromptRequest.Share( + ShareData("Title", "Text", null), + onSuccess = {}, + onFailure = {}, + onDismiss = {}, + ) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, shareRequest)).joinBlocking() + + val fragment = mock<PromptDialogFragment>() + whenever(fragment.shouldDismissOnLoad).thenReturn(true) + whenever(fragment.sessionId).thenReturn(tabId) + feature.activePrompt = WeakReference(fragment) + + val secondTabId = "second-test-tab" + store.dispatch( + TabListAction.AddTabAction( + TabSessionState( + id = secondTabId, + content = ContentState(url = "mozilla.org"), + ), + select = true, + ), + ).joinBlocking() + + verify(fragment, times(1)).dismiss() + } + + @Test + fun `dialog will be dismissed if tab changes`() { + val feature = spy( + PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + shareDelegate = mock(), + ) { }, + ) + feature.start() + + val shareRequest = PromptRequest.Share( + ShareData("Title", "Text", null), + onSuccess = {}, + onFailure = {}, + onDismiss = {}, + ) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, shareRequest)).joinBlocking() + + val fragment = mock<PromptDialogFragment>() + whenever(fragment.shouldDismissOnLoad).thenReturn(true) + whenever(fragment.sessionId).thenReturn(tabId) + feature.activePrompt = WeakReference(fragment) + + val newTabId = "test-tab-2" + + store.dispatch(TabListAction.SelectTabAction(newTabId)).joinBlocking() + + verify(fragment, times(1)).dismiss() + } + + @Test + fun `dialog will be dismissed if tab URL changes`() { + val feature = spy( + PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + fileUploadsDirCleaner = mock(), + exitFullscreenUsecase = mock(), + shareDelegate = mock(), + ) { }, + ) + feature.start() + + val shareRequest = PromptRequest.Share( + ShareData("Title", "Text", null), + onSuccess = {}, + onFailure = {}, + onDismiss = {}, + ) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, shareRequest)).joinBlocking() + + val fragment = mock<PromptDialogFragment>() + whenever(fragment.shouldDismissOnLoad).thenReturn(true) + feature.activePrompt = WeakReference(fragment) + + store.dispatch(ContentAction.UpdateUrlAction(tabId, "mozilla.org")).joinBlocking() + verify(fragment, times(1)).dismiss() + } + + @Test + fun `prompt will always start the save login dialog with an icon`() { + val feature = PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + fileUploadsDirCleaner = mock(), + shareDelegate = mock(), + isSaveLoginEnabled = { true }, + loginValidationDelegate = mock(), + ) { } + val loginUsername = "username" + val loginPassword = "password" + val entry: LoginEntry = mock() + `when`(entry.username).thenReturn(loginUsername) + `when`(entry.password).thenReturn(loginPassword) + val loginsPrompt = PromptRequest.SaveLoginPrompt(2, listOf(entry), { }, { }) + val websiteIcon: Bitmap = mock() + val contentState: ContentState = mock() + val session: TabSessionState = mock() + val sessionId = "sessionId" + `when`(contentState.icon).thenReturn(websiteIcon) + `when`(session.content).thenReturn(contentState) + `when`(session.id).thenReturn(sessionId) + + feature.handleDialogsRequest( + loginsPrompt, + session, + ) + + // Only interested in the icon, but it doesn't hurt to be sure we show a properly configured dialog. + assertTrue(feature.activePrompt!!.get() is SaveLoginDialogFragment) + val dialogFragment = feature.activePrompt!!.get() as SaveLoginDialogFragment + assertEquals(loginUsername, dialogFragment.username) + assertEquals(loginPassword, dialogFragment.password) + assertEquals(websiteIcon, dialogFragment.icon) + assertEquals(sessionId, dialogFragment.sessionId) + } + + @Test + fun `save login dialog will not be dismissed on page load`() { + val feature = spy( + PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + shareDelegate = mock(), + ) { }, + ) + feature.start() + + val shareRequest = PromptRequest.Share( + ShareData("Title", "Text", null), + onSuccess = {}, + onFailure = {}, + onDismiss = {}, + ) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, shareRequest)).joinBlocking() + + val fragment = spy( + SaveLoginDialogFragment.newInstance( + tabId, + shareRequest.uid, + false, + 0, + LoginEntry( + origin = "https://www.mozilla.org", + username = "username", + password = "password", + ), + ), + ) + feature.activePrompt = WeakReference(fragment) + + store.dispatch(ContentAction.UpdateProgressAction(tabId, 0)).joinBlocking() + store.dispatch(ContentAction.UpdateProgressAction(tabId, 10)).joinBlocking() + store.dispatch(ContentAction.UpdateProgressAction(tabId, 100)).joinBlocking() + + verify(fragment, times(0)).dismiss() + } + + @Test + fun `confirm dialogs will not be automatically dismissed`() { + val feature = spy( + PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + shareDelegate = mock(), + ) { }, + ) + feature.start() + + val promptRequest = PromptRequest.Confirm( + "title", + "message", + false, + "positive", + "negative", + "neutral", + { }, + { }, + { }, + { }, + ) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)).joinBlocking() + + val prompt = feature.activePrompt?.get() + assertNotNull(prompt) + assertFalse(prompt!!.shouldDismissOnLoad) + } + + @Test + fun `A Repost PromptRequest prompt will be shown as a ConfirmDialogFragment`() { + val feature = PromptFeature( + // Proper activity here to allow for the feature to properly execute "container.context.getString" + activity = Robolectric.buildActivity(Activity::class.java).setup().get(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + fileUploadsDirCleaner = mock(), + shareDelegate = mock(), + isSaveLoginEnabled = { true }, + loginValidationDelegate = mock(), + ) { } + val repostPromptRequest: PromptRequest.Repost = mock() + doReturn("uid").`when`(repostPromptRequest).uid + + feature.handleDialogsRequest(repostPromptRequest, mock()) + + val dialog: ConfirmDialogFragment = feature.activePrompt!!.get() as ConfirmDialogFragment + assertEquals(testContext.getString(R.string.mozac_feature_prompt_repost_title), dialog.title) + assertEquals(testContext.getString(R.string.mozac_feature_prompt_repost_message), dialog.message) + assertEquals( + testContext.getString(R.string.mozac_feature_prompt_repost_positive_button_text), + dialog.positiveButtonText, + ) + assertEquals( + testContext.getString(R.string.mozac_feature_prompt_repost_negative_button_text), + dialog.negativeButtonText, + ) + } + + @Test + fun `Positive button on a Repost dialog will call onAccept and consume the dialog`() { + val feature = PromptFeature( + activity = Robolectric.buildActivity(Activity::class.java).setup().get(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + fileUploadsDirCleaner = mock(), + exitFullscreenUsecase = mock(), + ) { } + feature.start() + + var acceptCalled = false + val repostRequest = PromptRequest.Repost( + { acceptCalled = true }, + { }, + ) + store + .dispatch(ContentAction.UpdatePromptRequestAction(tabId, repostRequest)) + .joinBlocking() + + assertEquals(1, tab()!!.content.promptRequests.size) + assertEquals(repostRequest, tab()!!.content.promptRequests[0]) + feature.onConfirm(tabId, repostRequest.uid, null) + + store.waitUntilIdle() + assertTrue(acceptCalled) + assertTrue(tab()!!.content.promptRequests.isEmpty()) + } + + @Test + fun `Negative button on a Repost dialog will call onDismiss and consume the dialog`() { + val feature = PromptFeature( + activity = Robolectric.buildActivity(Activity::class.java).setup().get(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + fileUploadsDirCleaner = mock(), + exitFullscreenUsecase = mock(), + ) { } + feature.start() + + var dismissCalled = false + val repostRequest = PromptRequest.Repost( + { }, + { dismissCalled = true }, + ) + store + .dispatch(ContentAction.UpdatePromptRequestAction(tabId, repostRequest)) + .joinBlocking() + + assertEquals(1, tab()!!.content.promptRequests.size) + assertEquals(repostRequest, tab()!!.content.promptRequests[0]) + feature.onCancel(tabId, repostRequest.uid) + + store.waitUntilIdle() + assertTrue(dismissCalled) + assertTrue(tab()!!.content.promptRequests.isEmpty()) + } + + @Test + fun `WHEN onConfirm is called on a SaveCreditCard dialog THEN a confirm request will consume the dialog`() { + val feature = PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + fileUploadsDirCleaner = mock(), + isCreditCardAutofillEnabled = { true }, + creditCardValidationDelegate = mock(), + ) { } + val creditCardEntry = CreditCardEntry( + guid = "1", + name = "Banana Apple", + number = "4111111111111110", + expiryMonth = "5", + expiryYear = "2030", + cardType = "", + ) + + val request = PromptRequest.SaveCreditCard( + creditCard = creditCardEntry, + onConfirm = {}, + onDismiss = {}, + ) + + feature.start() + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, request)).joinBlocking() + + assertEquals(1, tab()!!.content.promptRequests.size) + + feature.onConfirm( + sessionId = tabId, + promptRequestUID = request.uid, + value = creditCardEntry, + ) + + store.waitUntilIdle() + + assertTrue(tab()!!.content.promptRequests.isEmpty()) + } + + @Test + fun `WHEN a credit card is confirmed to save THEN confirm the prompt request with the selected credit card`() { + val creditCardEntry = CreditCardEntry( + guid = "1", + name = "Banana Apple", + number = "4111111111111110", + expiryMonth = "5", + expiryYear = "2030", + cardType = "", + ) + var onDismissCalled = false + var onConfirmCalled = false + var confirmedCreditCard: CreditCardEntry? = null + + val request = PromptRequest.SaveCreditCard( + creditCard = creditCardEntry, + onConfirm = { + confirmedCreditCard = it + onConfirmCalled = true + }, + onDismiss = { + onDismissCalled = true + }, + ) + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, request)).joinBlocking() + + request.onConfirm(creditCardEntry) + + store.waitUntilIdle() + + assertEquals(creditCardEntry, confirmedCreditCard) + assertTrue(onConfirmCalled) + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, request)).joinBlocking() + + request.onDismiss() + + store.waitUntilIdle() + + assertTrue(onDismissCalled) + } + + @Test + fun `WHEN the save credit card dialog fragment is created THEN the credit card entry is passed into the instance`() { + val feature = PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + fileUploadsDirCleaner = mock(), + isCreditCardAutofillEnabled = { true }, + creditCardValidationDelegate = mock(), + ) { } + val creditCardEntry = CreditCardEntry( + guid = "1", + name = "Banana Apple", + number = "4111111111111110", + expiryMonth = "5", + expiryYear = "2030", + cardType = "", + ) + val request = PromptRequest.SaveCreditCard( + creditCard = creditCardEntry, + onConfirm = {}, + onDismiss = {}, + ) + + val contentState: ContentState = mock() + val session: TabSessionState = mock() + val sessionId = "sessionId" + + `when`(session.content).thenReturn(contentState) + `when`(session.id).thenReturn(sessionId) + + feature.handleDialogsRequest( + promptRequest = request, + session = session, + ) + + assertTrue(feature.activePrompt!!.get() is CreditCardSaveDialogFragment) + + val dialogFragment = feature.activePrompt!!.get() as CreditCardSaveDialogFragment + + assertEquals(sessionId, dialogFragment.sessionId) + assertEquals(creditCardEntry, dialogFragment.creditCard) + } + + @Test + fun `GIVEN SaveCreditCard prompt is shown WHEN prompt is removed from state THEN dismiss SaveCreditCard prompt`() { + val creditCardEntry = CreditCardEntry( + guid = "1", + name = "Banana Apple", + number = "4111111111111110", + expiryMonth = "5", + expiryYear = "2030", + cardType = "", + ) + val promptRequest = PromptRequest.SaveCreditCard( + creditCard = creditCardEntry, + onConfirm = {}, + onDismiss = {}, + ) + val dialogFragment: CreditCardSaveDialogFragment = mock() + + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, promptRequest)) + .joinBlocking() + store.waitUntilIdle() + + val feature = PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + fileUploadsDirCleaner = mock(), + isCreditCardAutofillEnabled = { true }, + creditCardValidationDelegate = mock(), + ) { } + + feature.start() + feature.activePrompt = WeakReference(dialogFragment) + feature.activePromptRequest = promptRequest + + store.dispatch(ContentAction.ConsumePromptRequestAction(tabId, promptRequest)) + .joinBlocking() + + verify(dialogFragment).dismissAllowingStateLoss() + } + + @Test + fun `WHEN SaveCreditCard is handled THEN the credit card save prompt shown fact is emitted`() { + val feature = PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + fileUploadsDirCleaner = mock(), + isCreditCardAutofillEnabled = { true }, + creditCardValidationDelegate = mock(), + ) { } + val creditCardEntry = CreditCardEntry( + guid = "1", + name = "CC", + number = "4111111111111110", + expiryMonth = "5", + expiryYear = "2030", + cardType = "", + ) + val request = PromptRequest.SaveCreditCard( + creditCard = creditCardEntry, + onConfirm = {}, + onDismiss = {}, + ) + val session: TabSessionState = mock() + val sessionId = "sessionId" + `when`(session.id).thenReturn(sessionId) + + CollectionProcessor.withFactCollection { facts -> + feature.handleDialogsRequest( + promptRequest = request, + session = session, + ) + + val fact = facts.find { it.item == CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_SAVE_PROMPT_SHOWN }!! + assertEquals(Component.FEATURE_PROMPTS, fact.component) + assertEquals(Action.DISPLAY, fact.action) + assertEquals( + CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_SAVE_PROMPT_SHOWN, + fact.item, + ) + } + } + + @Test + fun `WHEN choice promptRequest is dismissed by the engine THEN the active prompt will be cleared`() { + val feature = spy( + PromptFeature( + activity = mock(), + store = store, + tabsUseCases = mock(), + fileUploadsDirCleaner = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + shareDelegate = mock(), + ) { }, + ) + feature.start() + + val singleChoicePrompt = SingleChoice( + choices = arrayOf(), + onConfirm = {}, + onDismiss = {}, + ) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, singleChoicePrompt)) + .joinBlocking() + val fragment = mock<ChoiceDialogFragment>() + whenever(fragment.isAdded).thenReturn(false) + + store.dispatch(ContentAction.ConsumePromptRequestAction(tabId, singleChoicePrompt)) + .joinBlocking() + assertEquals(null, feature.activePrompt?.get()) + assertTrue(feature.activePromptsToDismiss.isEmpty()) + } + + @Test + fun `WHEN promptRequest is updated THEN the replaced active prompt will be dismissed`() { + val feature = spy( + PromptFeature( + activity = mock(), + fileUploadsDirCleaner = mock(), + store = store, + tabsUseCases = mock(), + fragmentManager = fragmentManager, + exitFullscreenUsecase = mock(), + shareDelegate = mock(), + ) { }, + ) + feature.start() + + val previousPrompt = SingleChoice( + choices = arrayOf(), + onConfirm = {}, + onDismiss = {}, + ) + val updatedPrompt = SingleChoice( + choices = arrayOf(), + onConfirm = {}, + onDismiss = {}, + ) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, previousPrompt)).joinBlocking() + + val fragment = mock<ChoiceDialogFragment>() + whenever(fragment.shouldDismissOnLoad).thenReturn(true) + whenever(fragment.isAdded).thenReturn(true) + feature.activePrompt = WeakReference(fragment) + + store.dispatch(ContentAction.ReplacePromptRequestAction(tabId, previousPrompt.uid, updatedPrompt)).joinBlocking() + verify(fragment).dismiss() + } + + private fun mockFragmentManager(): FragmentManager { + val fragmentManager: FragmentManager = mock() + val transaction: FragmentTransaction = mock() + doReturn(transaction).`when`(fragmentManager).beginTransaction() + doReturn(transaction).`when`(transaction).remove(any()) + return fragmentManager + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/PromptMiddlewareTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/PromptMiddlewareTest.kt new file mode 100644 index 0000000000..6e2e9c84da --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/PromptMiddlewareTest.kt @@ -0,0 +1,111 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts + +import kotlinx.coroutines.ExperimentalCoroutinesApi +import mozilla.components.browser.state.action.ContentAction +import mozilla.components.browser.state.state.BrowserState +import mozilla.components.browser.state.state.TabSessionState +import mozilla.components.browser.state.state.createTab +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.support.test.ext.joinBlocking +import mozilla.components.support.test.rule.MainCoroutineRule +import org.junit.Assert.assertEquals +import org.junit.Before +import org.junit.Rule +import org.junit.Test +import org.mockito.Mockito.never +import org.mockito.Mockito.spy +import org.mockito.Mockito.verify + +class PromptMiddlewareTest { + + @get:Rule + val coroutinesTestRule = MainCoroutineRule() + + private lateinit var store: BrowserStore + + private val tabId = "test-tab" + private fun tab(): TabSessionState? { + return store.state.tabs.find { it.id == tabId } + } + + @Before + @ExperimentalCoroutinesApi + fun setUp() { + store = BrowserStore( + BrowserState( + tabs = listOf( + createTab("https://www.mozilla.org", id = tabId), + ), + selectedTabId = tabId, + ), + middleware = listOf(PromptMiddleware()), + ) + } + + @Test + fun `Process only one popup prompt request at a time`() { + val onDeny = spy { } + val popupPrompt1 = PromptRequest.Popup("https://firefox.com", onAllow = { }, onDeny = onDeny) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, popupPrompt1)).joinBlocking() + assertEquals(1, tab()!!.content.promptRequests.size) + assertEquals(popupPrompt1, tab()!!.content.promptRequests[0]) + verify(onDeny, never()).invoke() + + val popupPrompt2 = PromptRequest.Popup("https://firefox.com", onAllow = { }, onDeny = onDeny) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, popupPrompt2)).joinBlocking() + assertEquals(1, tab()!!.content.promptRequests.size) + assertEquals(popupPrompt1, tab()!!.content.promptRequests[0]) + verify(onDeny).invoke() + } + + @Test + fun `Process popup followed by other prompt request`() { + val onDeny = spy { } + val popupPrompt = PromptRequest.Popup("https://firefox.com", onAllow = { }, onDeny = onDeny) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, popupPrompt)).joinBlocking() + assertEquals(1, tab()!!.content.promptRequests.size) + assertEquals(popupPrompt, tab()!!.content.promptRequests[0]) + verify(onDeny, never()).invoke() + + val alert = PromptRequest.Alert("title", "message", false, { }, { }) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, alert)).joinBlocking() + assertEquals(2, tab()!!.content.promptRequests.size) + assertEquals(popupPrompt, tab()!!.content.promptRequests[0]) + assertEquals(alert, tab()!!.content.promptRequests[1]) + } + + @Test + fun `Process popup after other prompt request`() { + val alert = PromptRequest.Alert("title", "message", false, { }, { }) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, alert)).joinBlocking() + assertEquals(1, tab()!!.content.promptRequests.size) + assertEquals(alert, tab()!!.content.promptRequests[0]) + + val onDeny = spy { } + val popupPrompt = PromptRequest.Popup("https://firefox.com", onAllow = { }, onDeny = onDeny) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, popupPrompt)).joinBlocking() + assertEquals(2, tab()!!.content.promptRequests.size) + assertEquals(alert, tab()!!.content.promptRequests[0]) + assertEquals(popupPrompt, tab()!!.content.promptRequests[1]) + verify(onDeny, never()).invoke() + } + + @Test + fun `Process other prompt requests`() { + val alert = PromptRequest.Alert("title", "message", false, { }, { }) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, alert)).joinBlocking() + assertEquals(1, tab()!!.content.promptRequests.size) + assertEquals(alert, tab()!!.content.promptRequests[0]) + + val beforeUnloadPrompt = PromptRequest.BeforeUnload("title", onLeave = { }, onStay = { }) + store.dispatch(ContentAction.UpdatePromptRequestAction(tabId, beforeUnloadPrompt)).joinBlocking() + assertEquals(2, tab()!!.content.promptRequests.size) + assertEquals(alert, tab()!!.content.promptRequests[0]) + assertEquals(beforeUnloadPrompt, tab()!!.content.promptRequests[1]) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/address/AddressAdapterTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/address/AddressAdapterTest.kt new file mode 100644 index 0000000000..5423741dab --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/address/AddressAdapterTest.kt @@ -0,0 +1,82 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.address + +import android.view.LayoutInflater +import android.widget.TextView +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.concept.storage.Address +import mozilla.components.feature.prompts.R +import mozilla.components.support.test.robolectric.testContext +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +class AddressAdapterTest { + + private val address = Address( + guid = "1", + name = "Jane Marie Doe", + organization = "Mozilla", + streetAddress = "1230 Main st", + addressLevel3 = "Location3", + addressLevel2 = "Location2", + addressLevel1 = "Location1", + postalCode = "90237", + country = "USA", + tel = "00", + email = "email", + ) + + @Test + fun testAddressDiffCallback() { + val address2 = address.copy() + + assertTrue( + AddressDiffCallback.areItemsTheSame(address, address2), + ) + assertTrue( + AddressDiffCallback.areContentsTheSame(address, address2), + ) + + val address3 = address.copy(guid = "2") + + assertFalse( + AddressDiffCallback.areItemsTheSame(address, address3), + ) + assertFalse( + AddressDiffCallback.areItemsTheSame(address, address3), + ) + } + + @Test + fun `WHEN an address is bound to the adapter THEN set the address display name`() { + val view = + LayoutInflater.from(testContext) + .inflate(R.layout.mozac_feature_prompts_address_list_item, null) + val addressName: TextView = view.findViewById(R.id.address_name) + + AddressViewHolder(view, onAddressSelected = {}).bind(address) + + assertEquals(address.addressLabel, addressName.text) + } + + @Test + fun `WHEN an address item is clicked THEN call the onAddressSelected callback`() { + var addressSelected = false + val view = + LayoutInflater.from(testContext) + .inflate(R.layout.mozac_feature_prompts_address_list_item, null) + val onAddressSelect: (Address) -> Unit = { addressSelected = true } + + AddressViewHolder(view, onAddressSelect).bind(address) + view.performClick() + + assertTrue(addressSelected) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/address/AddressPickerTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/address/AddressPickerTest.kt new file mode 100644 index 0000000000..7469f498c4 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/address/AddressPickerTest.kt @@ -0,0 +1,145 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.address + +import mozilla.components.browser.state.state.BrowserState +import mozilla.components.browser.state.state.ContentState +import mozilla.components.browser.state.state.CustomTabSessionState +import mozilla.components.browser.state.state.TabSessionState +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.concept.storage.Address +import mozilla.components.feature.prompts.facts.AddressAutofillDialogFacts +import mozilla.components.support.base.Component +import mozilla.components.support.base.facts.Action +import mozilla.components.support.base.facts.Fact +import mozilla.components.support.base.facts.FactProcessor +import mozilla.components.support.base.facts.Facts +import mozilla.components.support.test.mock +import mozilla.components.support.test.whenever +import org.junit.Assert.assertEquals +import org.junit.Before +import org.junit.Test +import org.mockito.Mockito.verify + +class AddressPickerTest { + + private lateinit var store: BrowserStore + private lateinit var state: BrowserState + private lateinit var addressPicker: AddressPicker + private lateinit var addressSelectBar: AddressSelectBar + + private val address = Address( + guid = "1", + name = "Jane Marie Doe", + organization = "Mozilla", + streetAddress = "1230 Main st", + addressLevel3 = "Location3", + addressLevel2 = "Location2", + addressLevel1 = "Location1", + postalCode = "90237", + country = "USA", + tel = "00", + email = "email", + ) + + private var onDismissCalled = false + private var confirmedAddress: Address? = null + + private val promptRequest = PromptRequest.SelectAddress( + addresses = listOf(address), + onDismiss = { onDismissCalled = true }, + onConfirm = { confirmedAddress = it }, + ) + + @Before + fun setup() { + store = mock() + state = mock() + addressSelectBar = mock() + addressPicker = AddressPicker( + store = store, + addressSelectBar = addressSelectBar, + ) + + whenever(store.state).thenReturn(state) + } + + @Test + fun `WHEN onOptionSelect is called with an address THEN selectAddressCallback is invoked and prompt is hidden`() { + val content: ContentState = mock() + whenever(content.promptRequests).thenReturn(listOf(promptRequest)) + val selectedTab = TabSessionState("browser-tab", content, mock(), mock()) + whenever(state.selectedTabId).thenReturn(selectedTab.id) + whenever(state.tabs).thenReturn(listOf(selectedTab)) + + addressPicker.onOptionSelect(address) + + verify(addressSelectBar).hidePrompt() + assertEquals(address, confirmedAddress) + } + + @Test + fun `GIVEN a prompt request WHEN handleSelectAddressRequest is called THEN the prompt is shown with the provided addresses`() { + val facts = mutableListOf<Fact>() + Facts.registerProcessor( + object : FactProcessor { + override fun process(fact: Fact) { + facts.add(fact) + } + }, + ) + + assertEquals(0, facts.size) + + addressPicker.handleSelectAddressRequest(promptRequest) + + assertEquals(1, facts.size) + facts[0].apply { + assertEquals(Component.FEATURE_PROMPTS, component) + assertEquals(Action.INTERACTION, action) + assertEquals(AddressAutofillDialogFacts.Items.AUTOFILL_ADDRESS_PROMPT_SHOWN, item) + } + + verify(addressSelectBar).showPrompt(promptRequest.addresses) + } + + @Test + fun `GIVEN a custom tab and a prompt request WHEN handleSelectAddressRequest is called THEN the prompt is shown with the provided addresses`() { + val customTabContent: ContentState = mock() + val customTab = CustomTabSessionState(id = "custom-tab", content = customTabContent, trackingProtection = mock(), config = mock()) + whenever(customTabContent.promptRequests).thenReturn(listOf(promptRequest)) + whenever(state.customTabs).thenReturn(listOf(customTab)) + + addressPicker.handleSelectAddressRequest(promptRequest) + + verify(addressSelectBar).showPrompt(promptRequest.addresses) + } + + @Test + fun `WHEN onManageOptions is called THEN onManageAddresses is invoked and prompt is hidden`() { + val facts = mutableListOf<Fact>() + Facts.registerProcessor( + object : FactProcessor { + override fun process(fact: Fact) { + facts.add(fact) + } + }, + ) + + assertEquals(0, facts.size) + + addressPicker.onManageOptions() + + assertEquals(1, facts.size) + facts[0].apply { + assertEquals(Component.FEATURE_PROMPTS, component) + assertEquals(Action.INTERACTION, action) + assertEquals(AddressAutofillDialogFacts.Items.AUTOFILL_ADDRESS_PROMPT_DISMISSED, item) + } + + verify(addressSelectBar).hidePrompt() + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/address/AddressSelectBarTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/address/AddressSelectBarTest.kt new file mode 100644 index 0000000000..fbffde17c8 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/address/AddressSelectBarTest.kt @@ -0,0 +1,141 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.address + +import android.widget.LinearLayout +import androidx.appcompat.widget.AppCompatTextView +import androidx.core.view.isVisible +import androidx.recyclerview.widget.RecyclerView +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.concept.storage.Address +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.concept.SelectablePromptView +import mozilla.components.feature.prompts.facts.AddressAutofillDialogFacts +import mozilla.components.support.base.Component +import mozilla.components.support.base.facts.Action +import mozilla.components.support.base.facts.Fact +import mozilla.components.support.base.facts.FactProcessor +import mozilla.components.support.base.facts.Facts +import mozilla.components.support.test.ext.appCompatContext +import mozilla.components.support.test.mock +import mozilla.components.support.test.robolectric.testContext +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertNull +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mockito.verify + +@RunWith(AndroidJUnit4::class) +class AddressSelectBarTest { + + private lateinit var addressSelectBar: AddressSelectBar + + private val address = Address( + guid = "1", + name = "Jane Marie Doe", + organization = "Mozilla", + streetAddress = "1230 Main st", + addressLevel3 = "Location3", + addressLevel2 = "Location2", + addressLevel1 = "Location1", + postalCode = "90237", + country = "USA", + tel = "00", + email = "email", + ) + + @Before + fun setup() { + addressSelectBar = AddressSelectBar(appCompatContext) + } + + @Test + fun `WHEN showPrompt is called THEN the select bar is shown`() { + val addresses = listOf(address) + + addressSelectBar.showPrompt(addresses) + + assertTrue(addressSelectBar.isVisible) + } + + @Test + fun `WHEN hidePrompt is called THEN the select bar is hidden`() { + assertTrue(addressSelectBar.isVisible) + + addressSelectBar.hidePrompt() + + assertFalse(addressSelectBar.isVisible) + } + + @Test + fun `WHEN the selectBar header is clicked two times THEN the list of addresses is shown, then hidden`() { + val facts = mutableListOf<Fact>() + Facts.registerProcessor( + object : FactProcessor { + override fun process(fact: Fact) { + facts.add(fact) + } + }, + ) + + addressSelectBar.showPrompt(listOf(address)) + + assertEquals(0, facts.size) + + addressSelectBar.findViewById<AppCompatTextView>(R.id.select_address_header).performClick() + + assertEquals(1, facts.size) + facts[0].apply { + assertEquals(Component.FEATURE_PROMPTS, component) + assertEquals(Action.INTERACTION, action) + assertEquals(AddressAutofillDialogFacts.Items.AUTOFILL_ADDRESS_PROMPT_EXPANDED, item) + } + + assertTrue(addressSelectBar.findViewById<RecyclerView>(R.id.address_list).isVisible) + + addressSelectBar.findViewById<AppCompatTextView>(R.id.select_address_header).performClick() + + assertFalse(addressSelectBar.findViewById<RecyclerView>(R.id.address_list).isVisible) + } + + @Test + fun `GIVEN a listener WHEN an address is clicked THEN onOptionSelected is called`() { + val listener: SelectablePromptView.Listener<Address> = mock() + + assertNull(addressSelectBar.listener) + + addressSelectBar.listener = listener + + val facts = mutableListOf<Fact>() + Facts.registerProcessor( + object : FactProcessor { + override fun process(fact: Fact) { + facts.add(fact) + } + }, + ) + + addressSelectBar.showPrompt(listOf(address)) + val adapter = addressSelectBar.findViewById<RecyclerView>(R.id.address_list).adapter as AddressAdapter + val holder = adapter.onCreateViewHolder(LinearLayout(testContext), 0) + adapter.bindViewHolder(holder, 0) + + assertEquals(0, facts.size) + + holder.itemView.performClick() + + assertEquals(1, facts.size) + facts[0].apply { + assertEquals(Component.FEATURE_PROMPTS, component) + assertEquals(Action.INTERACTION, action) + assertEquals(AddressAutofillDialogFacts.Items.AUTOFILL_ADDRESS_SUCCESS, item) + } + + verify(listener).onOptionSelect(address) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/creditcard/CreditCardItemViewHolderTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/creditcard/CreditCardItemViewHolderTest.kt new file mode 100644 index 0000000000..27d49e7026 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/creditcard/CreditCardItemViewHolderTest.kt @@ -0,0 +1,71 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.creditcard + +import android.view.LayoutInflater +import android.view.View +import android.widget.ImageView +import android.widget.TextView +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.concept.storage.CreditCardEntry +import mozilla.components.feature.prompts.R +import mozilla.components.support.test.mock +import mozilla.components.support.test.robolectric.testContext +import mozilla.components.support.utils.CreditCardNetworkType +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNotNull +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +class CreditCardItemViewHolderTest { + + private lateinit var view: View + private lateinit var cardLogoView: ImageView + private lateinit var cardNumberView: TextView + private lateinit var expirationDateView: TextView + private lateinit var onCreditCardSelected: (CreditCardEntry) -> Unit + + private val creditCard = CreditCardEntry( + guid = "1", + name = "Banana Apple", + number = "4111111111111111", + expiryMonth = "5", + expiryYear = "2030", + cardType = CreditCardNetworkType.VISA.cardName, + ) + + @Before + fun setup() { + view = LayoutInflater.from(testContext).inflate(CreditCardItemViewHolder.LAYOUT_ID, null) + cardLogoView = view.findViewById(R.id.credit_card_logo) + cardNumberView = view.findViewById(R.id.credit_card_number) + expirationDateView = view.findViewById(R.id.credit_card_expiration_date) + onCreditCardSelected = mock() + } + + @Test + fun `GIVEN a credit card item WHEN bind is called THEN set the card number, logo and expiry date`() { + CreditCardItemViewHolder(view, onCreditCardSelected).bind(creditCard) + + assertNotNull(cardLogoView.drawable) + assertEquals(creditCard.obfuscatedCardNumber, cardNumberView.text) + assertEquals("0${creditCard.expiryMonth}/${creditCard.expiryYear}", expirationDateView.text) + } + + @Test + fun `GIVEN a credit card item WHEN a credit item is clicked THEN onCreditCardSelected is called with the given credit card item`() { + var onCreditCardSelectedCalled: CreditCardEntry? = null + val onCreditCardSelected = { creditCard: CreditCardEntry -> + onCreditCardSelectedCalled = creditCard + } + CreditCardItemViewHolder(view, onCreditCardSelected).bind(creditCard) + + view.performClick() + + assertEquals(creditCard, onCreditCardSelectedCalled) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/creditcard/CreditCardPickerTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/creditcard/CreditCardPickerTest.kt new file mode 100644 index 0000000000..1df4372bcf --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/creditcard/CreditCardPickerTest.kt @@ -0,0 +1,190 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.creditcard + +import mozilla.components.browser.state.action.ContentAction +import mozilla.components.browser.state.state.BrowserState +import mozilla.components.browser.state.state.ContentState +import mozilla.components.browser.state.state.CustomTabSessionState +import mozilla.components.browser.state.state.TabSessionState +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.concept.storage.CreditCardEntry +import mozilla.components.support.test.any +import mozilla.components.support.test.mock +import mozilla.components.support.test.whenever +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNull +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.mockito.Mockito.never +import org.mockito.Mockito.verify + +class CreditCardPickerTest { + + private lateinit var store: BrowserStore + private lateinit var state: BrowserState + private lateinit var creditCardPicker: CreditCardPicker + private lateinit var creditCardSelectBar: CreditCardSelectBar + + private val creditCard = CreditCardEntry( + guid = "1", + name = "Banana Apple", + number = "4111111111111110", + expiryMonth = "5", + expiryYear = "2030", + cardType = "", + ) + var onDismissCalled = false + var confirmedCreditCard: CreditCardEntry? = null + private val promptRequest = PromptRequest.SelectCreditCard( + creditCards = listOf(creditCard), + onDismiss = { onDismissCalled = true }, + onConfirm = { confirmedCreditCard = it }, + ) + + var manageCreditCardsCalled = false + var selectCreditCardCalled = false + private val manageCreditCardsCallback: () -> Unit = { manageCreditCardsCalled = true } + private val selectCreditCardCallback: () -> Unit = { selectCreditCardCalled = true } + + @Before + fun setup() { + store = mock() + state = mock() + creditCardSelectBar = mock() + creditCardPicker = CreditCardPicker( + store = store, + creditCardSelectBar = creditCardSelectBar, + manageCreditCardsCallback = manageCreditCardsCallback, + selectCreditCardCallback = selectCreditCardCallback, + ) + + whenever(store.state).thenReturn(state) + } + + @Test + fun `WHEN onOptionSelect is called with a credit card THEN selectCreditCardCallback is invoked and prompt is hidden`() { + assertNull(creditCardPicker.selectedCreditCard) + + setupSessionState(promptRequest) + + creditCardPicker.onOptionSelect(creditCard) + + verify(creditCardSelectBar).hidePrompt() + + assertTrue(selectCreditCardCalled) + assertEquals(creditCard, creditCardPicker.selectedCreditCard) + } + + @Test + fun `WHEN onManageOptions is called THEN manageCreditCardsCallback is invoked and prompt is hidden`() { + setupSessionState(promptRequest) + + creditCardPicker.onManageOptions() + + verify(creditCardSelectBar).hidePrompt() + + assertTrue(manageCreditCardsCalled) + assertTrue(onDismissCalled) + } + + @Test + fun `GIVEN a prompt request WHEN handleSelectCreditCardRequest is called THEN the prompt is shown with the provided request credit cards`() { + creditCardPicker.handleSelectCreditCardRequest(promptRequest) + + verify(creditCardSelectBar).showPrompt(promptRequest.creditCards) + } + + @Test + fun `GIVEN a custom tab and a prompt request WHEN handleSelectCreditCardRequest is called THEN the prompt is shown with the provided request credit cards`() { + val customTabContent: ContentState = mock() + val customTab = CustomTabSessionState(id = "custom-tab", content = customTabContent, trackingProtection = mock(), config = mock()) + + whenever(customTabContent.promptRequests).thenReturn(listOf(promptRequest)) + whenever(state.customTabs).thenReturn(listOf(customTab)) + + creditCardPicker.handleSelectCreditCardRequest(promptRequest) + + verify(creditCardSelectBar).showPrompt(promptRequest.creditCards) + } + + @Test + fun `GIVEN a selected credit card WHEN onAuthSuccess is called THEN the confirmed credit card is received`() { + assertNull(creditCardPicker.selectedCreditCard) + + setupSessionState(promptRequest) + + creditCardPicker.onOptionSelect(creditCard) + creditCardPicker.onAuthSuccess() + + assertEquals(creditCard, confirmedCreditCard) + assertNull(creditCardPicker.selectedCreditCard) + } + + @Test + fun `GIVEN a selected credit card WHEN onAuthFailure is called THEN the prompt request is dismissed`() { + assertNull(creditCardPicker.selectedCreditCard) + + setupSessionState(promptRequest) + + creditCardPicker.onOptionSelect(creditCard) + creditCardPicker.onAuthFailure() + + assertNull(creditCardPicker.selectedCreditCard) + assertTrue(onDismissCalled) + } + + @Test + fun `WHEN dismissSelectCreditCardRequest is invoked without a parameter THEN the active prompt request is dismissed and removed from the session`() { + val session = setupSessionState(promptRequest) + creditCardPicker = CreditCardPicker( + store = store, + creditCardSelectBar = creditCardSelectBar, + manageCreditCardsCallback = manageCreditCardsCallback, + selectCreditCardCallback = selectCreditCardCallback, + sessionId = session.id, + ) + + verify(store, never()).dispatch(any()) + creditCardPicker.dismissSelectCreditCardRequest() + + assertTrue(onDismissCalled) + verify(store).dispatch(ContentAction.ConsumePromptRequestAction(session.id, promptRequest)) + } + + @Test + fun `WHEN dismissSelectCreditCardRequest is invoked with the active prompt request as parameter THEN the request is dismissed and removed from the session`() { + val session = setupSessionState(promptRequest) + creditCardPicker = CreditCardPicker( + store = store, + creditCardSelectBar = creditCardSelectBar, + manageCreditCardsCallback = manageCreditCardsCallback, + selectCreditCardCallback = selectCreditCardCallback, + sessionId = session.id, + ) + + verify(store, never()).dispatch(any()) + creditCardPicker.dismissSelectCreditCardRequest(promptRequest) + + assertTrue(onDismissCalled) + verify(store).dispatch(ContentAction.ConsumePromptRequestAction(session.id, promptRequest)) + } + + private fun setupSessionState(request: PromptRequest? = null): TabSessionState { + val promptRequest: PromptRequest = request ?: mock() + val content: ContentState = mock() + + whenever(content.promptRequests).thenReturn(listOf(promptRequest)) + + val selected = TabSessionState("browser-tab", content, mock(), mock()) + + whenever(state.selectedTabId).thenReturn(selected.id) + whenever(state.tabs).thenReturn(listOf(selected)) + + return selected + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/creditcard/CreditCardSaveDialogFragmentTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/creditcard/CreditCardSaveDialogFragmentTest.kt new file mode 100644 index 0000000000..9d40249e2a --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/creditcard/CreditCardSaveDialogFragmentTest.kt @@ -0,0 +1,315 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.creditcard + +import android.widget.Button +import android.widget.FrameLayout +import android.widget.ImageView +import android.widget.TextView +import androidx.appcompat.widget.AppCompatTextView +import androidx.core.view.isVisible +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.concept.storage.CreditCardEntry +import mozilla.components.concept.storage.CreditCardValidationDelegate +import mozilla.components.feature.prompts.PromptFeature +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.facts.CreditCardAutofillDialogFacts +import mozilla.components.support.base.Component +import mozilla.components.support.base.facts.Action +import mozilla.components.support.base.facts.processor.CollectionProcessor +import mozilla.components.support.test.any +import mozilla.components.support.test.ext.appCompatContext +import mozilla.components.support.test.mock +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertNotNull +import org.junit.Assert.assertTrue +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mockito.doAnswer +import org.mockito.Mockito.doNothing +import org.mockito.Mockito.doReturn +import org.mockito.Mockito.spy +import org.mockito.Mockito.verify + +@RunWith(AndroidJUnit4::class) +class CreditCardSaveDialogFragmentTest { + + private val creditCard = CreditCardEntry( + guid = "1", + name = "Banana Apple", + number = "4111111111111110", + expiryMonth = "5", + expiryYear = "2030", + cardType = "amex", + ) + private val sessionId = "sessionId" + private val promptRequestUID = "uid" + + @Test + fun `WHEN the credit card save dialog fragment view is created THEN the credit card entry is displayed`() { + val fragment = spy( + CreditCardSaveDialogFragment.newInstance( + sessionId = sessionId, + promptRequestUID = promptRequestUID, + shouldDismissOnLoad = true, + creditCard = creditCard, + ), + ) + + doReturn(appCompatContext).`when`(fragment).requireContext() + doAnswer { + FrameLayout(appCompatContext).apply { + addView( + AppCompatTextView(appCompatContext).apply { + id = R.id.save_credit_card_header + }, + ) + addView( + AppCompatTextView(appCompatContext).apply { + id = R.id.save_credit_card_message + }, + ) + addView(Button(appCompatContext).apply { id = R.id.save_confirm }) + addView(Button(appCompatContext).apply { id = R.id.save_cancel }) + addView(ImageView(appCompatContext).apply { id = R.id.credit_card_logo }) + addView(TextView(appCompatContext).apply { id = R.id.credit_card_number }) + addView(TextView(appCompatContext).apply { id = R.id.credit_card_expiration_date }) + } + }.`when`(fragment).onCreateView(any(), any(), any()) + + val view = fragment.onCreateView(mock(), mock(), mock()) + fragment.onViewCreated(view, mock()) + + val cardNumberTextView = view.findViewById<TextView>(R.id.credit_card_number) + val iconImageView = view.findViewById<ImageView>(R.id.credit_card_logo) + val expiryDateView = view.findViewById<TextView>(R.id.credit_card_expiration_date) + + assertEquals(creditCard.obfuscatedCardNumber, cardNumberTextView.text) + assertEquals(creditCard.expiryDate, expiryDateView.text) + assertNotNull(iconImageView.drawable) + } + + @Test + fun `WHEN setViewText is called with new header and button text THEN the header and button text are updated in the view`() { + val fragment = spy( + CreditCardSaveDialogFragment.newInstance( + sessionId = sessionId, + promptRequestUID = promptRequestUID, + shouldDismissOnLoad = true, + creditCard = creditCard, + ), + ) + + doReturn(appCompatContext).`when`(fragment).requireContext() + doAnswer { + FrameLayout(appCompatContext).apply { + addView( + AppCompatTextView(appCompatContext).apply { + id = R.id.save_credit_card_header + }, + ) + addView( + AppCompatTextView(appCompatContext).apply { + id = R.id.save_credit_card_message + }, + ) + addView(Button(appCompatContext).apply { id = R.id.save_confirm }) + addView(Button(appCompatContext).apply { id = R.id.save_cancel }) + addView(ImageView(appCompatContext).apply { id = R.id.credit_card_logo }) + addView(TextView(appCompatContext).apply { id = R.id.credit_card_number }) + addView(TextView(appCompatContext).apply { id = R.id.credit_card_expiration_date }) + } + }.`when`(fragment).onCreateView(any(), any(), any()) + + val view = fragment.onCreateView(mock(), mock(), mock()) + fragment.onViewCreated(view, mock()) + + val headerTextView = view.findViewById<AppCompatTextView>(R.id.save_credit_card_header) + val messageTextView = view.findViewById<AppCompatTextView>(R.id.save_credit_card_message) + val cancelButtonView = view.findViewById<Button>(R.id.save_cancel) + val confirmButtonView = view.findViewById<Button>(R.id.save_confirm) + + val header = "header" + val cancelButtonText = "cancelButtonText" + val confirmButtonText = "confirmButtonText" + + fragment.setViewText( + view = view, + header = header, + cancelButtonText = cancelButtonText, + confirmButtonText = confirmButtonText, + showMessageBody = false, + ) + + assertEquals(header, headerTextView.text) + assertEquals(cancelButtonText, cancelButtonView.text) + assertEquals(confirmButtonText, confirmButtonView.text) + assertFalse(messageTextView.isVisible) + + fragment.setViewText( + view = view, + header = header, + cancelButtonText = cancelButtonText, + confirmButtonText = confirmButtonText, + showMessageBody = true, + ) + + assertTrue(messageTextView.isVisible) + } + + @Test + fun `WHEN the confirm button is clicked THEN the prompt feature is notified`() { + val mockFeature: PromptFeature = mock() + val fragment = spy( + CreditCardSaveDialogFragment.newInstance( + sessionId = sessionId, + promptRequestUID = promptRequestUID, + shouldDismissOnLoad = true, + creditCard = creditCard, + ), + ) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + doAnswer { + FrameLayout(appCompatContext).apply { + addView( + AppCompatTextView(appCompatContext).apply { + id = R.id.save_credit_card_header + }, + ) + addView( + AppCompatTextView(appCompatContext).apply { + id = R.id.save_credit_card_message + }, + ) + addView(Button(appCompatContext).apply { id = R.id.save_confirm }) + addView(Button(appCompatContext).apply { id = R.id.save_cancel }) + addView(ImageView(appCompatContext).apply { id = R.id.credit_card_logo }) + addView(TextView(appCompatContext).apply { id = R.id.credit_card_number }) + addView(TextView(appCompatContext).apply { id = R.id.credit_card_expiration_date }) + } + }.`when`(fragment).onCreateView(any(), any(), any()) + doNothing().`when`(fragment).dismiss() + + val view = fragment.onCreateView(mock(), mock(), mock()) + fragment.onViewCreated(view, mock()) + + val buttonView = view.findViewById<Button>(R.id.save_confirm) + + buttonView.performClick() + + verify(mockFeature).onConfirm( + sessionId = sessionId, + promptRequestUID = promptRequestUID, + value = creditCard, + ) + } + + @Test + fun `WHEN the cancel button is clicked THEN the prompt feature is notified`() { + val mockFeature: PromptFeature = mock() + val fragment = spy( + CreditCardSaveDialogFragment.newInstance( + sessionId = sessionId, + promptRequestUID = promptRequestUID, + shouldDismissOnLoad = true, + creditCard = creditCard, + ), + ) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + doAnswer { + FrameLayout(appCompatContext).apply { + addView( + AppCompatTextView(appCompatContext).apply { + id = R.id.save_credit_card_header + }, + ) + addView( + AppCompatTextView(appCompatContext).apply { + id = R.id.save_credit_card_message + }, + ) + addView(Button(appCompatContext).apply { id = R.id.save_confirm }) + addView(Button(appCompatContext).apply { id = R.id.save_cancel }) + addView(ImageView(appCompatContext).apply { id = R.id.credit_card_logo }) + addView(TextView(appCompatContext).apply { id = R.id.credit_card_number }) + addView(TextView(appCompatContext).apply { id = R.id.credit_card_expiration_date }) + } + }.`when`(fragment).onCreateView(any(), any(), any()) + doNothing().`when`(fragment).dismiss() + + val view = fragment.onCreateView(mock(), mock(), mock()) + fragment.onViewCreated(view, mock()) + + val buttonView = view.findViewById<Button>(R.id.save_cancel) + + buttonView.performClick() + + verify(mockFeature).onCancel( + sessionId = sessionId, + promptRequestUID = promptRequestUID, + ) + } + + @Test + fun `WHEN the confirm save button is clicked THEN the appropriate fact is emitted`() { + val fragment = spy( + CreditCardSaveDialogFragment.newInstance( + sessionId = sessionId, + promptRequestUID = promptRequestUID, + shouldDismissOnLoad = true, + creditCard = creditCard, + ), + ) + + fragment.confirmResult = CreditCardValidationDelegate.Result.CanBeCreated + + CollectionProcessor.withFactCollection { facts -> + fragment.emitSaveUpdateFact() + + assertEquals(1, facts.size) + val fact = facts.single() + assertEquals(Component.FEATURE_PROMPTS, fact.component) + assertEquals(Action.CONFIRM, fact.action) + assertEquals( + CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_CREATED, + fact.item, + ) + } + } + + @Test + fun `WHEN the confirm update button is clicked THEN the appropriate fact is emitted`() { + val fragment = spy( + CreditCardSaveDialogFragment.newInstance( + sessionId = sessionId, + promptRequestUID = promptRequestUID, + shouldDismissOnLoad = true, + creditCard = creditCard, + ), + ) + + fragment.confirmResult = CreditCardValidationDelegate.Result.CanBeUpdated(mock()) + + CollectionProcessor.withFactCollection { facts -> + fragment.emitSaveUpdateFact() + + assertEquals(1, facts.size) + val fact = facts.single() + assertEquals(Component.FEATURE_PROMPTS, fact.component) + assertEquals(Action.CONFIRM, fact.action) + assertEquals( + CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_UPDATED, + fact.item, + ) + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/creditcard/CreditCardSelectBarTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/creditcard/CreditCardSelectBarTest.kt new file mode 100644 index 0000000000..f3b8bcfb8d --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/creditcard/CreditCardSelectBarTest.kt @@ -0,0 +1,146 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.creditcard + +import android.widget.LinearLayout +import androidx.appcompat.widget.AppCompatTextView +import androidx.core.view.isVisible +import androidx.recyclerview.widget.RecyclerView +import androidx.test.ext.junit.runners.AndroidJUnit4 +import kotlinx.coroutines.test.runTest +import mozilla.components.concept.storage.CreditCardEntry +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.concept.SelectablePromptView +import mozilla.components.feature.prompts.facts.CreditCardAutofillDialogFacts +import mozilla.components.support.base.Component +import mozilla.components.support.base.facts.Action +import mozilla.components.support.base.facts.Fact +import mozilla.components.support.base.facts.FactProcessor +import mozilla.components.support.base.facts.Facts +import mozilla.components.support.test.ext.appCompatContext +import mozilla.components.support.test.mock +import mozilla.components.support.test.robolectric.testContext +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertNull +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mockito.verify + +@RunWith(AndroidJUnit4::class) +class CreditCardSelectBarTest { + + private lateinit var creditCardSelectBar: CreditCardSelectBar + + private val creditCard = CreditCardEntry( + guid = "1", + name = "Banana Apple", + number = "4111111111111110", + expiryMonth = "5", + expiryYear = "2030", + cardType = "", + ) + + @Before + fun setup() { + creditCardSelectBar = CreditCardSelectBar(appCompatContext) + } + + @Test + fun `GIVEN a list of credit cards WHEN prompt is shown THEN credit cards are shown`() { + val creditCards = listOf(creditCard) + + creditCardSelectBar.showPrompt(creditCards) + + assertTrue(creditCardSelectBar.isVisible) + } + + @Test + fun `WHEN the prompt is hidden THEN view is hidden`() { + creditCardSelectBar.hidePrompt() + + assertFalse(creditCardSelectBar.isVisible) + } + + @Test + fun `GIVEN a listener WHEN manage credit cards button is clicked THEN onManageOptions is called`() { + val listener: SelectablePromptView.Listener<CreditCardEntry> = mock() + + assertNull(creditCardSelectBar.listener) + + creditCardSelectBar.listener = listener + + creditCardSelectBar.showPrompt(listOf(creditCard)) + creditCardSelectBar.findViewById<AppCompatTextView>(R.id.manage_credit_cards).performClick() + + verify(listener).onManageOptions() + } + + @Test + fun `GIVEN a listener WHEN a credit card is selected THEN onOptionSelect is called`() = runTest { + val listener: SelectablePromptView.Listener<CreditCardEntry> = mock() + creditCardSelectBar.listener = listener + + val facts = mutableListOf<Fact>() + Facts.registerProcessor( + object : FactProcessor { + override fun process(fact: Fact) { + facts.add(fact) + } + }, + ) + + creditCardSelectBar.showPrompt(listOf(creditCard)) + + val adapter = creditCardSelectBar.findViewById<RecyclerView>(R.id.credit_cards_list).adapter as CreditCardsAdapter + val holder = adapter.onCreateViewHolder(LinearLayout(testContext), 0) + adapter.bindViewHolder(holder, 0) + + holder.itemView.performClick() + + assertEquals(1, facts.size) + + facts[0].apply { + assertEquals(Component.FEATURE_PROMPTS, component) + assertEquals(Action.INTERACTION, action) + assertEquals(CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_SUCCESS, item) + } + verify(listener).onOptionSelect(creditCard) + } + + @Test + fun `WHEN the header is clicked THEN view is expanded or collapsed`() { + val facts = mutableListOf<Fact>() + Facts.registerProcessor( + object : FactProcessor { + override fun process(fact: Fact) { + facts.add(fact) + } + }, + ) + + creditCardSelectBar.showPrompt(listOf(creditCard)) + + creditCardSelectBar.findViewById<AppCompatTextView>(R.id.select_credit_card_header).performClick() + + assertTrue(creditCardSelectBar.findViewById<RecyclerView>(R.id.credit_cards_list).isVisible) + assertTrue(creditCardSelectBar.findViewById<AppCompatTextView>(R.id.manage_credit_cards).isVisible) + + assertEquals(1, facts.size) + + facts[0].apply { + assertEquals(Component.FEATURE_PROMPTS, component) + assertEquals(Action.INTERACTION, action) + assertEquals(CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_PROMPT_EXPANDED, item) + } + + creditCardSelectBar.findViewById<AppCompatTextView>(R.id.select_credit_card_header).performClick() + + assertFalse(creditCardSelectBar.findViewById<RecyclerView>(R.id.credit_cards_list).isVisible) + assertFalse(creditCardSelectBar.findViewById<AppCompatTextView>(R.id.manage_credit_cards).isVisible) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/creditcard/CreditCardsAdapterTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/creditcard/CreditCardsAdapterTest.kt new file mode 100644 index 0000000000..6eb7318d87 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/creditcard/CreditCardsAdapterTest.kt @@ -0,0 +1,49 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.creditcard + +import mozilla.components.concept.storage.CreditCardEntry +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Test + +class CreditCardsAdapterTest { + + @Test + fun testDiffCallback() { + val creditCard1 = CreditCardEntry( + guid = "1", + name = "Banana Apple", + number = "4111111111111110", + expiryMonth = "5", + expiryYear = "2030", + cardType = "amex", + ) + val creditCard2 = creditCard1.copy() + + assertTrue( + CreditCardsAdapter.DiffCallback.areItemsTheSame(creditCard1, creditCard2), + ) + assertTrue( + CreditCardsAdapter.DiffCallback.areContentsTheSame(creditCard1, creditCard2), + ) + + val creditCard3 = CreditCardEntry( + guid = "2", + name = "Pineapple Orange", + number = "4111111111115555", + expiryMonth = "1", + expiryYear = "2030", + cardType = "amex", + ) + + assertFalse( + CreditCardsAdapter.DiffCallback.areItemsTheSame(creditCard1, creditCard3), + ) + assertFalse( + CreditCardsAdapter.DiffCallback.areContentsTheSame(creditCard1, creditCard3), + ) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/AlertDialogFragmentTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/AlertDialogFragmentTest.kt new file mode 100644 index 0000000000..f9e897dc55 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/AlertDialogFragmentTest.kt @@ -0,0 +1,147 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.content.DialogInterface.BUTTON_POSITIVE +import android.os.Looper.getMainLooper +import android.widget.CheckBox +import android.widget.TextView +import androidx.appcompat.app.AlertDialog +import androidx.core.view.isVisible +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.feature.prompts.PromptFeature +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.R.id +import mozilla.components.support.test.ext.appCompatContext +import mozilla.components.support.test.mock +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.Mockito.doReturn +import org.mockito.Mockito.spy +import org.mockito.Mockito.verify +import org.mockito.MockitoAnnotations.openMocks +import org.robolectric.Shadows.shadowOf +import androidx.appcompat.R as appcompatR + +@RunWith(AndroidJUnit4::class) +class AlertDialogFragmentTest { + + @Mock private lateinit var mockFeature: Prompter + + @Before + fun setup() { + openMocks(this) + } + + @Test + fun `build dialog`() { + val fragment = spy( + AlertDialogFragment.newInstance("sessionId", "uid", true, "title", "message", true), + ) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + + dialog.show() + + val titleTextView = dialog.findViewById<TextView>(appcompatR.id.alertTitle) + val messageTextView = dialog.findViewById<TextView>(R.id.message) + val checkBox = dialog.findViewById<CheckBox>(id.mozac_feature_prompts_no_more_dialogs_check_box) + + assertEquals(fragment.sessionId, "sessionId") + assertEquals(fragment.promptRequestUID, "uid") + assertEquals(fragment.message, "message") + assertEquals(fragment.hasShownManyDialogs, true) + + assertEquals(titleTextView.text, "title") + assertEquals(fragment.title, "title") + assertEquals(messageTextView.text.toString(), "message") + assertTrue(checkBox.isVisible) + } + + @Test + fun `Alert with hasShownManyDialogs equals false should not have a checkbox`() { + val fragment = spy( + AlertDialogFragment.newInstance("sessionId", "uid", false, "title", "message", false), + ) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + + dialog.show() + + val checkBox = dialog.findViewById<CheckBox>(id.mozac_feature_prompts_no_more_dialogs_check_box) + + assertFalse(checkBox.isVisible) + } + + @Test + fun `Clicking on positive button notifies the feature`() { + val mockFeature: PromptFeature = mock() + + val fragment = spy( + AlertDialogFragment.newInstance("sessionId", "uid", true, "title", "message", false), + ) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val positiveButton = (dialog as AlertDialog).getButton(BUTTON_POSITIVE) + positiveButton.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onCancel("sessionId", "uid") + } + + @Test + fun `After checking no more dialogs checkbox feature onNoMoreDialogsChecked must be called`() { + val fragment = spy( + AlertDialogFragment.newInstance("sessionId", "uid", false, "title", "message", true), + ) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val checkBox = dialog.findViewById<CheckBox>(id.mozac_feature_prompts_no_more_dialogs_check_box) + + checkBox.isChecked = true + + val positiveButton = (dialog as AlertDialog).getButton(BUTTON_POSITIVE) + positiveButton.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onConfirm("sessionId", "uid", true) + } + + @Test + fun `touching outside of the dialog must notify the feature onCancel`() { + val fragment = spy( + AlertDialogFragment.newInstance("sessionId", "uid", true, "title", "message", true), + ) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + fragment.onCancel(mock()) + + verify(mockFeature).onCancel("sessionId", "uid") + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/AuthenticationDialogFragmentTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/AuthenticationDialogFragmentTest.kt new file mode 100644 index 0000000000..dc0b8f238c --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/AuthenticationDialogFragmentTest.kt @@ -0,0 +1,196 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.content.DialogInterface +import android.os.Looper.getMainLooper +import android.view.View.GONE +import android.widget.TextView +import androidx.appcompat.app.AlertDialog +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.feature.prompts.R.id +import mozilla.components.support.test.ext.appCompatContext +import mozilla.components.support.test.mock +import org.junit.Assert.assertEquals +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.Mockito.doReturn +import org.mockito.Mockito.spy +import org.mockito.Mockito.verify +import org.mockito.MockitoAnnotations.openMocks +import org.robolectric.Shadows.shadowOf +import androidx.appcompat.R as appcompatR + +@RunWith(AndroidJUnit4::class) +class AuthenticationDialogFragmentTest { + + @Mock private lateinit var mockFeature: Prompter + + @Before + fun setup() { + openMocks(this) + } + + @Test + fun `build dialog`() { + val fragment = spy( + AuthenticationDialogFragment.newInstance( + "sessionId", + "uid", + true, + "title", + "message", + "username", + "password", + onlyShowPassword = false, + url = "https://mozilla.com", + ), + ) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + + dialog.show() + + val titleTextView = dialog.findViewById<TextView>(appcompatR.id.alertTitle) + val messageTextView = dialog.findViewById<TextView>(android.R.id.message) + val usernameEditText = dialog.findViewById<AutofillEditText>(id.username) + val passwordEditText = dialog.findViewById<AutofillEditText>(id.password) + + assertEquals(fragment.sessionId, "sessionId") + assertEquals(fragment.promptRequestUID, "uid") + assertEquals(fragment.title, "title") + assertEquals(fragment.message, "message") + assertEquals(fragment.username, "username") + assertEquals(fragment.password, "password") + assertEquals(fragment.onlyShowPassword, false) + + assertEquals(titleTextView.text, "title") + assertEquals(messageTextView.text, "message") + assertEquals(usernameEditText.text.toString(), "username") + assertEquals(passwordEditText.text.toString(), "password") + + usernameEditText.setText("new_username") + passwordEditText.setText("new_password") + + assertEquals(usernameEditText.text.toString(), "new_username") + assertEquals(usernameEditText.url, "https://mozilla.com") + assertEquals(passwordEditText.text.toString(), "new_password") + assertEquals(passwordEditText.url, "https://mozilla.com") + } + + @Test + fun `dialog with onlyShowPassword must not have a username field`() { + val fragment = spy( + AuthenticationDialogFragment.newInstance( + "sessionId", + "uid", + false, + "title", + "message", + "username", + "password", + true, + url = "https://mozilla.com", + ), + ) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + + dialog.show() + + val usernameEditText = dialog.findViewById<AutofillEditText>(id.username) + + assertEquals(usernameEditText.visibility, GONE) + } + + @Test + fun `when the title is not provided the dialog must has a default value`() { + val fragment = spy( + AuthenticationDialogFragment.newInstance( + "sessionId", + "uid", + true, + "", + "message", + "username", + "password", + true, + url = "https://mozilla.com", + ), + ) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + + dialog.show() + + val titleTextView = dialog.findViewById<TextView>(appcompatR.id.alertTitle) + + val defaultTitle = appCompatContext.getString(AuthenticationDialogFragment.DEFAULT_TITLE) + assertEquals(titleTextView.text.toString(), defaultTitle) + } + + @Test + fun `Clicking on positive button notifies the feature`() { + val fragment = spy( + AuthenticationDialogFragment.newInstance( + "sessionId", + "uid", + false, + "title", + "message", + "username", + "password", + false, + url = "https://mozilla.com", + ), + ) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val positiveButton = (dialog as AlertDialog).getButton(DialogInterface.BUTTON_POSITIVE) + positiveButton.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onConfirm("sessionId", "uid", "username" to "password") + } + + @Test + fun `touching outside of the dialog must notify the feature onCancel`() { + val fragment = spy( + AuthenticationDialogFragment.newInstance( + "sessionId", + "uid", + true, + "title", + "message", + "username", + "password", + false, + url = "https://mozilla.com", + ), + ) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + fragment.onCancel(mock()) + + verify(mockFeature).onCancel("sessionId", "uid") + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/ChoiceDialogFragmentTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/ChoiceDialogFragmentTest.kt new file mode 100644 index 0000000000..54500d2c19 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/ChoiceDialogFragmentTest.kt @@ -0,0 +1,692 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.content.DialogInterface.BUTTON_NEGATIVE +import android.content.DialogInterface.BUTTON_POSITIVE +import android.os.Looper.getMainLooper +import android.os.Parcelable +import android.view.LayoutInflater +import android.widget.LinearLayout +import android.widget.TextView +import androidx.appcompat.app.AlertDialog +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.concept.engine.prompt.Choice +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.dialog.ChoiceAdapter.Companion.TYPE_GROUP +import mozilla.components.feature.prompts.dialog.ChoiceAdapter.Companion.TYPE_MENU +import mozilla.components.feature.prompts.dialog.ChoiceAdapter.Companion.TYPE_MENU_SEPARATOR +import mozilla.components.feature.prompts.dialog.ChoiceAdapter.Companion.TYPE_MULTIPLE +import mozilla.components.feature.prompts.dialog.ChoiceAdapter.Companion.TYPE_SINGLE +import mozilla.components.feature.prompts.dialog.ChoiceAdapter.GroupViewHolder +import mozilla.components.feature.prompts.dialog.ChoiceAdapter.MenuViewHolder +import mozilla.components.feature.prompts.dialog.ChoiceAdapter.MultipleViewHolder +import mozilla.components.feature.prompts.dialog.ChoiceAdapter.SingleViewHolder +import mozilla.components.feature.prompts.dialog.ChoiceDialogFragment.Companion.MENU_CHOICE_DIALOG_TYPE +import mozilla.components.feature.prompts.dialog.ChoiceDialogFragment.Companion.MULTIPLE_CHOICE_DIALOG_TYPE +import mozilla.components.feature.prompts.dialog.ChoiceDialogFragment.Companion.SINGLE_CHOICE_DIALOG_TYPE +import mozilla.components.feature.prompts.dialog.ChoiceDialogFragment.Companion.newInstance +import mozilla.components.support.test.ext.appCompatContext +import mozilla.components.support.test.robolectric.testContext +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertNotNull +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.Mockito.doNothing +import org.mockito.Mockito.doReturn +import org.mockito.Mockito.spy +import org.mockito.Mockito.times +import org.mockito.Mockito.verify +import org.mockito.MockitoAnnotations.openMocks +import org.robolectric.Shadows.shadowOf + +@RunWith(AndroidJUnit4::class) +class ChoiceDialogFragmentTest { + + @Mock private lateinit var mockFeature: Prompter + private val item = Choice(id = "", label = "item1") + private val subItem = Choice(id = "", label = "sub-item1") + private val separator = Choice(id = "", label = "item1", isASeparator = true) + + @Before + fun setup() { + openMocks(this) + } + + @Test + fun `Build single choice dialog`() { + val fragment = spy(newInstance(arrayOf(), "sessionId", "uid", true, SINGLE_CHOICE_DIALOG_TYPE)) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + + assertNotNull(dialog) + } + + @Test + fun `cancelling the dialog cancels the feature`() { + val fragment = spy(newInstance(arrayOf(), "sessionId", "uid", false, SINGLE_CHOICE_DIALOG_TYPE)) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + doNothing().`when`(fragment).dismiss() + + assertNotNull(dialog) + + dialog.show() + + fragment.onCancel(dialog) + + verify(mockFeature).onCancel("sessionId", "uid") + } + + @Test + fun `Build menu choice dialog`() { + val fragment = spy(newInstance(arrayOf(), "sessionId", "uid", true, MENU_CHOICE_DIALOG_TYPE)) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + + assertNotNull(dialog) + } + + @Test + fun `Build multiple choice dialog`() { + val fragment = spy(newInstance(arrayOf(), "sessionId", "uid", false, MULTIPLE_CHOICE_DIALOG_TYPE)) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + + assertNotNull(dialog) + } + + @Test(expected = Exception::class) + fun `Building a unknown dialog type will throw an exception`() { + val fragment = spy(newInstance(arrayOf(), "sessionId", "uid", true, -1)) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + fragment.onCreateDialog(null) + } + + @Test + fun `Will show a single choice item`() { + val choices = arrayOf(item) + + val fragment = spy(newInstance(choices, "sessionId", "uid", false, SINGLE_CHOICE_DIALOG_TYPE)) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val adapter = getAdapterFrom(fragment) + val holder = adapter.onCreateViewHolder(LinearLayout(testContext), TYPE_SINGLE) as SingleViewHolder + val labelView = holder.labelView + adapter.bindViewHolder(holder, 0) + + assertEquals(1, adapter.itemCount) + assertEquals("item1", labelView.text) + } + + @Test + fun `Will show a menu choice item`() { + val choices = arrayOf(item) + + val fragment = spy(newInstance(choices, "sessionId", "uid", true, MENU_CHOICE_DIALOG_TYPE)) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val adapter = getAdapterFrom(fragment) + val holder = adapter.onCreateViewHolder(LinearLayout(testContext), TYPE_MENU) as MenuViewHolder + val labelView = holder.labelView + adapter.bindViewHolder(holder, 0) + + assertEquals(1, adapter.itemCount) + assertEquals("item1", labelView.text) + } + + @Test + fun `Will show a menu choice separator item`() { + val choices = arrayOf(separator) + + val fragment = spy(newInstance(choices, "sessionId", "uid", false, MENU_CHOICE_DIALOG_TYPE)) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val adapter = getAdapterFrom(fragment) + val holder = adapter.onCreateViewHolder(LinearLayout(testContext), TYPE_MENU_SEPARATOR) + adapter.bindViewHolder(holder, 0) + + assertEquals(1, adapter.itemCount) + assertNotNull(holder.itemView) + } + + @Test(expected = Exception::class) + fun `Will throw an exception to try to create a invalid choice type item`() { + val choices = arrayOf(separator) + + val fragment = spy(newInstance(choices, "sessionId", "uid", true, MENU_CHOICE_DIALOG_TYPE)) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val adapter = getAdapterFrom(fragment) + adapter.onCreateViewHolder(LinearLayout(testContext), -1) + } + + @Test + fun `Will adapter will return correct view type `() { + val choices = arrayOf( + item, + Choice(id = "", label = "item1", children = arrayOf()), + Choice(id = "", label = "menu", children = arrayOf()), + Choice(id = "", label = "separator", children = arrayOf(), isASeparator = true), + Choice(id = "", label = "multiple choice"), + ) + + var fragment = spy(newInstance(choices, "sessionId", "uid", false, SINGLE_CHOICE_DIALOG_TYPE)) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + var adapter = getAdapterFrom(fragment) + var type = adapter.getItemViewType(0) + + assertEquals(type, TYPE_SINGLE) + + fragment = spy(newInstance(choices, "sessionId", "uid", true, MULTIPLE_CHOICE_DIALOG_TYPE)) + doReturn(appCompatContext).`when`(fragment).requireContext() + + adapter = getAdapterFrom(fragment) + + type = adapter.getItemViewType(1) + assertEquals(type, TYPE_GROUP) + + fragment = spy(newInstance(choices, "sessionId", "uid", false, MENU_CHOICE_DIALOG_TYPE)) + doReturn(appCompatContext).`when`(fragment).requireContext() + + adapter = getAdapterFrom(fragment) + + type = adapter.getItemViewType(2) + assertEquals(type, TYPE_MENU) + + type = adapter.getItemViewType(3) + assertEquals(type, TYPE_MENU_SEPARATOR) + + fragment = spy(newInstance(choices, "sessionId", "uid", true, MULTIPLE_CHOICE_DIALOG_TYPE)) + doReturn(appCompatContext).`when`(fragment).requireContext() + + adapter = getAdapterFrom(fragment) + + type = adapter.getItemViewType(4) + assertEquals(type, TYPE_MULTIPLE) + } + + @Test + fun `Will show a multiple choice item`() { + val choices = + arrayOf(Choice(id = "", label = "item1", children = arrayOf(Choice(id = "", label = "sub-item1")))) + + val fragment = spy(newInstance(choices, "sessionId", "uid", false, MULTIPLE_CHOICE_DIALOG_TYPE)) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val adapter = getAdapterFrom(fragment) + + val holder = + adapter.onCreateViewHolder(LinearLayout(testContext), TYPE_MULTIPLE) as MultipleViewHolder + val groupHolder = adapter.onCreateViewHolder(LinearLayout(testContext), TYPE_GROUP) as GroupViewHolder + + adapter.bindViewHolder(holder, 0) + adapter.bindViewHolder(groupHolder, 1) + + assertEquals(2, adapter.itemCount) + assertEquals("item1", holder.labelView.text) + assertEquals("sub-item1", groupHolder.labelView.text.trim()) + } + + @Test + fun `Will show a multiple choice item with selected element`() { + val choices = arrayOf( + Choice( + id = "", + label = "item1", + children = arrayOf(Choice(id = "", label = "sub-item1", selected = true)), + ), + ) + + val fragment = spy(newInstance(choices, "sessionId", "uid", true, MULTIPLE_CHOICE_DIALOG_TYPE)) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val adapter = getAdapterFrom(fragment) + + assertEquals(2, adapter.itemCount) + + val groupHolder = adapter.onCreateViewHolder(LinearLayout(testContext), TYPE_GROUP) as GroupViewHolder + val holder = + adapter.onCreateViewHolder(LinearLayout(testContext), TYPE_MULTIPLE) as MultipleViewHolder + + adapter.bindViewHolder(groupHolder, 0) + adapter.bindViewHolder(holder, 1) + + assertEquals("item1", (groupHolder.labelView as TextView).text) + assertEquals("sub-item1", holder.labelView.text.trim()) + assertEquals(true, holder.labelView.isChecked) + } + + @Test + fun `Clicking on single choice item notifies the feature`() { + val choices = arrayOf(item) + + val fragment = spy(newInstance(choices, "sessionId", "uid", false, SINGLE_CHOICE_DIALOG_TYPE)) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + doNothing().`when`(fragment).dismiss() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val adapter = getAdapterFrom(fragment) + + val holder = adapter.onCreateViewHolder(LinearLayout(testContext), TYPE_SINGLE) as SingleViewHolder + + adapter.bindViewHolder(holder, 0) + + holder.itemView.performClick() + shadowOf(getMainLooper()).idle() + verify(mockFeature).onConfirm("sessionId", "uid", choices.first()) + + dialog.dismiss() + shadowOf(getMainLooper()).idle() + verify(mockFeature).onCancel("sessionId", "uid") + } + + @Test + fun `Clicking on menu choice item notifies the feature`() { + val choices = arrayOf(item) + + val fragment = spy(newInstance(choices, "sessionId", "uid", true, MENU_CHOICE_DIALOG_TYPE)) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + doNothing().`when`(fragment).dismiss() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val adapter = getAdapterFrom(fragment) + + val holder = adapter.onCreateViewHolder(LinearLayout(testContext), TYPE_MENU) + + adapter.bindViewHolder(holder, 0) + + holder.itemView.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onConfirm("sessionId", "uid", choices.first()) + + dialog.dismiss() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onCancel("sessionId", "uid") + } + + @Test + fun `Clicking on multiple choice item notifies the feature`() { + val choices = + arrayOf(Choice(id = "", label = "item1", children = arrayOf(subItem))) + val fragment = spy(newInstance(choices, "sessionId", "uid", false, MULTIPLE_CHOICE_DIALOG_TYPE)) + + fragment.feature = mockFeature + doReturn(appCompatContext).`when`(fragment).requireContext() + doNothing().`when`(fragment).dismiss() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val adapter = dialog.findViewById<RecyclerView>(R.id.recyclerView).adapter as ChoiceAdapter + + val holder = adapter.onCreateViewHolder(LinearLayout(testContext), TYPE_MULTIPLE) + + adapter.bindViewHolder(holder, 1) + + holder.itemView.performClick() + + assertTrue(fragment.mapSelectChoice.isNotEmpty()) + + val positiveButton = (dialog as AlertDialog).getButton(BUTTON_POSITIVE) + positiveButton.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onConfirm("sessionId", "uid", fragment.mapSelectChoice.keys.toTypedArray()) + + val negativeButton = dialog.getButton(BUTTON_NEGATIVE) + negativeButton.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature, times(2)).onCancel("sessionId", "uid") + } + + @Test + fun `Clicking on selected multiple choice item will notify feature`() { + val choices = + arrayOf(item.copy(selected = true)) + val fragment = spy(newInstance(choices, "sessionId", "uid", true, MULTIPLE_CHOICE_DIALOG_TYPE)) + + fragment.feature = mockFeature + doReturn(appCompatContext).`when`(fragment).requireContext() + doNothing().`when`(fragment).dismiss() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val adapter = dialog.findViewById<RecyclerView>(R.id.recyclerView).adapter as ChoiceAdapter + + val holder = + adapter.onCreateViewHolder(LinearLayout(testContext), TYPE_MULTIPLE) as MultipleViewHolder + + adapter.bindViewHolder(holder, 0) + + assertTrue(holder.labelView.isChecked) + + holder.itemView.performClick() + + assertTrue(fragment.mapSelectChoice.isEmpty()) + + val positiveButton = (dialog as AlertDialog).getButton(BUTTON_POSITIVE) + positiveButton.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onConfirm("sessionId", "uid", fragment.mapSelectChoice.keys.toTypedArray()) + } + + @Test + fun `single choice item with multiple sub-menu groups`() { + val choices = arrayOf( + Choice( + id = "group1", + label = "group1", + children = arrayOf(Choice(id = "item_group_1", label = "item group 1")), + ), + Choice( + id = "group2", + label = "group2", + children = arrayOf(Choice(id = "item_group_2", label = "item group 2")), + ), + ) + + val fragment = spy(newInstance(choices, "sessionId", "uid", false, SINGLE_CHOICE_DIALOG_TYPE)) + fragment.feature = mockFeature + doReturn(appCompatContext).`when`(fragment).requireContext() + doNothing().`when`(fragment).dismiss() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val adapter = dialog.findViewById<RecyclerView>(R.id.recyclerView).adapter as ChoiceAdapter + + val groupViewHolder = adapter.onCreateViewHolder(LinearLayout(testContext), adapter.getItemViewType(0)) + as GroupViewHolder + + adapter.bindViewHolder(groupViewHolder, 0) + + assertFalse(groupViewHolder.labelView.isEnabled) + assertEquals(groupViewHolder.labelView.text, "group1") + + val singleViewHolder = + adapter.onCreateViewHolder(LinearLayout(testContext), adapter.getItemViewType(1)) as SingleViewHolder + + adapter.bindViewHolder(singleViewHolder, 1) + + with(singleViewHolder) { + assertTrue(labelView.isEnabled) + + val choiceGroup1 = choices[0].children!![0] + assertEquals(labelView.text, choiceGroup1.label) + + itemView.performClick() + verify(mockFeature).onConfirm("sessionId", "uid", choiceGroup1) + } + } + + @Test + fun `disabled single choice item is not clickable`() { + val choices = arrayOf( + Choice(id = "item1", label = "Enabled choice"), + Choice(id = "item2", enable = false, label = "Disabled choice"), + ) + + val fragment = + spy(newInstance(choices, "sessionId", "uid", false, SINGLE_CHOICE_DIALOG_TYPE)) + fragment.feature = mockFeature + doReturn(appCompatContext).`when`(fragment).requireContext() + doNothing().`when`(fragment).dismiss() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val adapter = dialog.findViewById<RecyclerView>(R.id.recyclerView).adapter as ChoiceAdapter + + // test disabled item + val disabledItemViewHolder = + adapter.onCreateViewHolder(LinearLayout(testContext), adapter.getItemViewType(1)) + as SingleViewHolder + + adapter.bindViewHolder(disabledItemViewHolder, 1) + + with(disabledItemViewHolder) { + assertEquals(labelView.text, "Disabled choice") + assertFalse(labelView.isEnabled) + assertFalse(itemView.isClickable) + } + } + + @Test + fun `enabled single choice item is clickable`() { + val choices = arrayOf( + Choice(id = "item1", label = "Enabled choice"), + Choice(id = "item2", enable = false, label = "Disabled choice"), + ) + + val fragment = spy(newInstance(choices, "sessionId", "uid", false, SINGLE_CHOICE_DIALOG_TYPE)) + fragment.feature = mockFeature + doReturn(appCompatContext).`when`(fragment).requireContext() + doNothing().`when`(fragment).dismiss() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val adapter = dialog.findViewById<RecyclerView>(R.id.recyclerView).adapter as ChoiceAdapter + + // test enabled item + val enabledItemViewHolder = + adapter.onCreateViewHolder(LinearLayout(testContext), adapter.getItemViewType(0)) as SingleViewHolder + + adapter.bindViewHolder(enabledItemViewHolder, 0) + + with(enabledItemViewHolder) { + assertEquals(labelView.text, "Enabled choice") + assertTrue(labelView.isEnabled) + assertTrue(itemView.isClickable) + } + } + + @Test + fun `disabled multiple choice item is not clickable`() { + val choices = arrayOf( + Choice(id = "item1", label = "Enabled choice"), + Choice(id = "item2", enable = false, label = "Disabled choice"), + ) + + val fragment = + spy(newInstance(choices, "sessionId", "uid", false, MULTIPLE_CHOICE_DIALOG_TYPE)) + fragment.feature = mockFeature + doReturn(appCompatContext).`when`(fragment).requireContext() + doNothing().`when`(fragment).dismiss() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val adapter = dialog.findViewById<RecyclerView>(R.id.recyclerView).adapter as ChoiceAdapter + + // test disabled item + val disabledItemViewHolder = + adapter.onCreateViewHolder(LinearLayout(testContext), adapter.getItemViewType(1)) + as MultipleViewHolder + + adapter.bindViewHolder(disabledItemViewHolder, 1) + + with(disabledItemViewHolder) { + assertEquals(labelView.text, "Disabled choice") + assertFalse(labelView.isEnabled) + assertFalse(itemView.isClickable) + } + } + + @Test + fun `enabled multiple choice item is clickable`() { + val choices = arrayOf( + Choice(id = "item1", label = "Enabled choice"), + Choice(id = "item2", enable = false, label = "Disabled choice"), + ) + + val fragment = spy(newInstance(choices, "sessionId", "uid", false, MULTIPLE_CHOICE_DIALOG_TYPE)) + fragment.feature = mockFeature + doReturn(appCompatContext).`when`(fragment).requireContext() + doNothing().`when`(fragment).dismiss() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val adapter = dialog.findViewById<RecyclerView>(R.id.recyclerView).adapter as ChoiceAdapter + + // test enabled item + val enabledItemViewHolder = + adapter.onCreateViewHolder(LinearLayout(testContext), adapter.getItemViewType(0)) as MultipleViewHolder + + adapter.bindViewHolder(enabledItemViewHolder, 0) + + with(enabledItemViewHolder) { + assertEquals(labelView.text, "Enabled choice") + assertTrue(labelView.isEnabled) + assertTrue(itemView.isClickable) + } + } + + @Test + fun `disabled menu choice item is not clickable`() { + val choices = arrayOf( + Choice(id = "item1", label = "Enabled choice"), + Choice(id = "item2", enable = false, label = "Disabled choice"), + ) + + val fragment = + spy(newInstance(choices, "sessionId", "uid", false, MENU_CHOICE_DIALOG_TYPE)) + fragment.feature = mockFeature + doReturn(appCompatContext).`when`(fragment).requireContext() + doNothing().`when`(fragment).dismiss() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val adapter = dialog.findViewById<RecyclerView>(R.id.recyclerView).adapter as ChoiceAdapter + + // test disabled item + val disabledItemViewHolder = + adapter.onCreateViewHolder(LinearLayout(testContext), adapter.getItemViewType(1)) + as MenuViewHolder + + adapter.bindViewHolder(disabledItemViewHolder, 1) + + with(disabledItemViewHolder) { + assertEquals(labelView.text, "Disabled choice") + assertFalse(labelView.isEnabled) + assertFalse(itemView.isClickable) + } + } + + @Test + fun `enabled menu choice item is clickable`() { + val choices = arrayOf( + Choice(id = "item1", label = "Enabled choice"), + Choice(id = "item2", enable = false, label = "Disabled choice"), + ) + + val fragment = spy(newInstance(choices, "sessionId", "uid", false, MENU_CHOICE_DIALOG_TYPE)) + fragment.feature = mockFeature + doReturn(appCompatContext).`when`(fragment).requireContext() + doNothing().`when`(fragment).dismiss() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val adapter = dialog.findViewById<RecyclerView>(R.id.recyclerView).adapter as ChoiceAdapter + + // test enabled item + val enabledItemViewHolder = + adapter.onCreateViewHolder(LinearLayout(testContext), adapter.getItemViewType(0)) as MenuViewHolder + + adapter.bindViewHolder(enabledItemViewHolder, 0) + + with(enabledItemViewHolder) { + assertEquals(labelView.text, "Enabled choice") + assertTrue(labelView.isEnabled) + assertTrue(itemView.isClickable) + } + } + + @Test + fun `scroll to selected item`() { + // array of 20 choices; 10th one is selected + val choices = Array(20) { index -> + if (index == 10) { + item.copy(selected = true, label = "selected") + } else { + item.copy(label = "item$index") + } + } + val fragment = newInstance(choices, "sessionId", "uid", true, SINGLE_CHOICE_DIALOG_TYPE) + val inflater = LayoutInflater.from(testContext) + val dialog = fragment.createDialogContentView(inflater) + val recyclerView = dialog.findViewById<RecyclerView>(R.id.recyclerView) + val layoutManager = recyclerView.layoutManager as LinearLayoutManager + // these two lines are a bit of a hack to get the layout manager to draw the view. + recyclerView.measure(0, 0) + recyclerView.layout(0, 0, 100, 250) + + val selectedItemIndex = layoutManager.findLastCompletelyVisibleItemPosition() + assertEquals(10, selectedItemIndex) + } + + @Test + fun `test toArrayOfChoices`() { + val parcelables = Array<Parcelable>(1) { Choice(id = "id", label = "label") } + val choice = parcelables.toArrayOfChoices() + assertNotNull(choice) + } + + private fun getAdapterFrom(fragment: ChoiceDialogFragment): ChoiceAdapter { + val inflater = LayoutInflater.from(testContext) + val view = fragment.createDialogContentView(inflater) + val recyclerViewId = R.id.recyclerView + + return view.findViewById<RecyclerView>(recyclerViewId).adapter as ChoiceAdapter + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/ColorPickerDialogFragmentTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/ColorPickerDialogFragmentTest.kt new file mode 100644 index 0000000000..e452e75897 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/ColorPickerDialogFragmentTest.kt @@ -0,0 +1,159 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.content.DialogInterface +import android.os.Looper.getMainLooper +import android.widget.LinearLayout +import android.widget.TextView +import androidx.appcompat.app.AlertDialog +import androidx.recyclerview.widget.RecyclerView +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.feature.prompts.R +import mozilla.components.support.test.ext.appCompatContext +import mozilla.components.support.test.mock +import mozilla.components.support.test.robolectric.testContext +import org.junit.Assert.assertEquals +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.Mockito.doReturn +import org.mockito.Mockito.spy +import org.mockito.Mockito.verify +import org.mockito.MockitoAnnotations.openMocks +import org.robolectric.Shadows.shadowOf + +@RunWith(AndroidJUnit4::class) +class ColorPickerDialogFragmentTest { + + @Mock private lateinit var mockFeature: Prompter + + @Before + fun setup() { + openMocks(this) + } + + @Test + fun `build dialog`() { + val fragment = spy( + ColorPickerDialogFragment.newInstance("sessionId", "uid", true, "#e66465"), + ) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + + dialog.show() + + assertEquals(fragment.sessionId, "sessionId") + assertEquals(fragment.promptRequestUID, "uid") + assertEquals(fragment.selectedColor.toHexColor(), "#e66465") + } + + @Test + fun `clicking on positive button notifies the feature`() { + val fragment = spy( + ColorPickerDialogFragment.newInstance("sessionId", "uid", false, "#e66465"), + ) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + fragment.onColorChange("#4f4663".toColor()) + + val positiveButton = (dialog as AlertDialog).getButton(DialogInterface.BUTTON_POSITIVE) + positiveButton.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onConfirm("sessionId", "uid", "#4f4663") + } + + @Test + fun `clicking on negative button notifies the feature`() { + val fragment = spy( + ColorPickerDialogFragment.newInstance("sessionId", "uid", true, "#e66465"), + ) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val negativeButton = (dialog as AlertDialog).getButton(DialogInterface.BUTTON_NEGATIVE) + negativeButton.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onCancel("sessionId", "uid") + } + + @Test + fun `touching outside of the dialog must notify the feature onCancel`() { + val fragment = spy( + ColorPickerDialogFragment.newInstance("sessionId", "uid", false, "#e66465"), + ) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + fragment.onCancel(mock()) + + verify(mockFeature).onCancel("sessionId", "uid") + } + + @Test + fun `will show a color item`() { + val fragment = spy( + ColorPickerDialogFragment.newInstance("sessionId", "uid", true, "#e66465"), + ) + doReturn(appCompatContext).`when`(fragment).requireContext() + + val adapter = getAdapterFrom(fragment) + val holder = adapter.onCreateViewHolder(LinearLayout(testContext), 0) + adapter.bindViewHolder(holder, 0) + + val selectedColor = appCompatContext.resources + .obtainTypedArray(R.array.mozac_feature_prompts_default_colors).let { + it.getColor(0, 0) + } + + assertEquals(selectedColor, holder.color) + } + + @Test + fun `clicking on a item will update the selected color`() { + val fragment = spy( + ColorPickerDialogFragment.newInstance("sessionId", "uid", false, "#e66465"), + ) + doReturn(appCompatContext).`when`(fragment).requireContext() + + val adapter = getAdapterFrom(fragment) + val holder = adapter.onCreateViewHolder(LinearLayout(testContext), 0) + val colorItem = holder.itemView as TextView + adapter.bindViewHolder(holder, 0) + + colorItem.performClick() + + val selectedColor = appCompatContext.resources + .obtainTypedArray(R.array.mozac_feature_prompts_default_colors).let { + it.getColor(0, 0) + } + assertEquals(fragment.selectedColor, selectedColor) + } + + private fun getAdapterFrom(fragment: ColorPickerDialogFragment): BasicColorAdapter { + val view = fragment.createDialogContentView() + val recyclerViewId = R.id.recyclerView + + return view.findViewById<RecyclerView>(recyclerViewId).adapter as BasicColorAdapter + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/ConfirmDialogFragmentTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/ConfirmDialogFragmentTest.kt new file mode 100644 index 0000000000..20a1cfc76a --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/ConfirmDialogFragmentTest.kt @@ -0,0 +1,126 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.content.DialogInterface +import android.os.Looper.getMainLooper +import android.widget.TextView +import androidx.appcompat.app.AlertDialog +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.feature.prompts.R +import mozilla.components.support.test.ext.appCompatContext +import org.junit.Assert +import org.junit.Assert.assertEquals +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.Mockito +import org.mockito.Mockito.doReturn +import org.mockito.Mockito.spy +import org.mockito.Mockito.verify +import org.mockito.MockitoAnnotations.openMocks +import org.robolectric.Shadows.shadowOf +import androidx.appcompat.R as appcompatR + +@RunWith(AndroidJUnit4::class) +class ConfirmDialogFragmentTest { + + @Mock private lateinit var mockFeature: Prompter + private lateinit var fragment: ConfirmDialogFragment + + @Before + fun setup() { + openMocks(this) + fragment = spy( + ConfirmDialogFragment.newInstance( + "sessionId", + "uid", + true, + "title", + "message", + "positiveLabel", + "negativeLabel", + ), + ) + } + + @Test + fun `build dialog`() { + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + + dialog.show() + + val titleTextView = dialog.findViewById<TextView>(appcompatR.id.alertTitle) + val messageTextView = dialog.findViewById<TextView>(R.id.message) + + assertEquals(fragment.sessionId, "sessionId") + assertEquals(fragment.promptRequestUID, "uid") + assertEquals(fragment.message, "message") + + val positiveButton = (dialog as AlertDialog).getButton(DialogInterface.BUTTON_POSITIVE) + val negativeButton = dialog.getButton(DialogInterface.BUTTON_NEGATIVE) + + assertEquals("title", titleTextView.text) + assertEquals("message", messageTextView.text.toString()) + assertEquals("positiveLabel", positiveButton.text) + assertEquals("negativeLabel", negativeButton.text) + } + + @Test + fun `clicking on positive button notifies the feature`() { + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val positiveButton = (dialog as AlertDialog).getButton(DialogInterface.BUTTON_POSITIVE) + positiveButton.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onConfirm("sessionId", "uid", false) + } + + @Test + fun `clicking on negative button notifies the feature`() { + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val negativeButton = (dialog as AlertDialog).getButton(DialogInterface.BUTTON_NEGATIVE) + negativeButton.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onCancel("sessionId", "uid", false) + } + + @Test + fun `cancelling the dialog cancels the feature`() { + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + Mockito.doNothing().`when`(fragment).dismiss() + + Assert.assertNotNull(dialog) + + dialog.show() + + fragment.onCancel(dialog) + + verify(mockFeature).onCancel("sessionId", "uid", false) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/MultiButtonDialogFragmentTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/MultiButtonDialogFragmentTest.kt new file mode 100644 index 0000000000..07e060c578 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/MultiButtonDialogFragmentTest.kt @@ -0,0 +1,252 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.content.DialogInterface +import android.content.DialogInterface.BUTTON_POSITIVE +import android.os.Looper.getMainLooper +import android.widget.CheckBox +import android.widget.TextView +import androidx.appcompat.app.AlertDialog +import androidx.core.view.isVisible +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.R.id +import mozilla.components.support.test.ext.appCompatContext +import mozilla.components.support.test.mock +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.Mockito.doReturn +import org.mockito.Mockito.spy +import org.mockito.Mockito.verify +import org.mockito.MockitoAnnotations.openMocks +import org.robolectric.Shadows.shadowOf +import androidx.appcompat.R as appcompatR + +@RunWith(AndroidJUnit4::class) +class MultiButtonDialogFragmentTest { + + @Mock private lateinit var mockFeature: Prompter + + @Before + fun setup() { + openMocks(this) + } + + @Test + fun `Build dialog`() { + val fragment = spy( + MultiButtonDialogFragment.newInstance( + "sessionId", + "uid", + "title", + "message", + true, + false, + "positiveButton", + "negativeButton", + "neutralButton", + ), + ) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + + dialog.show() + + val titleTextView = dialog.findViewById<TextView>(appcompatR.id.alertTitle) + val messageTextView = dialog.findViewById<TextView>(R.id.message) + val checkBox = dialog.findViewById<CheckBox>(id.mozac_feature_prompts_no_more_dialogs_check_box) + val positiveButton = (dialog as AlertDialog).getButton(BUTTON_POSITIVE) + val negativeButton = (dialog).getButton(DialogInterface.BUTTON_NEGATIVE) + val neutralButton = (dialog).getButton(DialogInterface.BUTTON_NEUTRAL) + + assertEquals(fragment.sessionId, "sessionId") + assertEquals(fragment.promptRequestUID, "uid") + assertEquals(fragment.message, "message") + assertEquals(fragment.hasShownManyDialogs, true) + + assertEquals(titleTextView.text, "title") + assertEquals(fragment.title, "title") + assertEquals(messageTextView.text.toString(), "message") + assertTrue(checkBox.isVisible) + + assertEquals(positiveButton.text, "positiveButton") + assertEquals(negativeButton.text, "negativeButton") + assertEquals(neutralButton.text, "neutralButton") + } + + @Test + fun `Dialog with hasShownManyDialogs equals false should not have a checkbox`() { + val fragment = spy( + MultiButtonDialogFragment.newInstance( + "sessionId", + "uid", + "title", + "message", + false, + false, + "positiveButton", + "negativeButton", + "neutralButton", + ), + ) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + + dialog.show() + + val checkBox = dialog.findViewById<CheckBox>(id.mozac_feature_prompts_no_more_dialogs_check_box) + + assertFalse(checkBox.isVisible) + } + + @Test + fun `Clicking on a positive button notifies the feature`() { + val fragment = spy( + MultiButtonDialogFragment.newInstance( + "sessionId", + "uid", + "title", + "message", + false, + false, + "positiveButton", + ), + ) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val positiveButton = (dialog as AlertDialog).getButton(BUTTON_POSITIVE) + positiveButton.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onConfirm("sessionId", "uid", false to MultiButtonDialogFragment.ButtonType.POSITIVE) + } + + @Test + fun `Clicking on a negative button notifies the feature`() { + val fragment = spy( + MultiButtonDialogFragment.newInstance( + "sessionId", + "uid", + "title", + "message", + false, + false, + negativeButton = "negative", + ), + ) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val negativeButton = (dialog as AlertDialog).getButton(DialogInterface.BUTTON_NEGATIVE) + negativeButton.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onConfirm("sessionId", "uid", false to MultiButtonDialogFragment.ButtonType.NEGATIVE) + } + + @Test + fun `Clicking on a neutral button notifies the feature`() { + val fragment = spy( + MultiButtonDialogFragment.newInstance( + "sessionId", + "uid", + "title", + "message", + false, + false, + neutralButton = "neutral", + ), + ) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val neutralButton = (dialog as AlertDialog).getButton(DialogInterface.BUTTON_NEUTRAL) + neutralButton.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onConfirm("sessionId", "uid", false to MultiButtonDialogFragment.ButtonType.NEUTRAL) + } + + @Test + fun `After checking no more dialogs checkbox onConfirm must be called with NoMoreDialogs equals true`() { + val fragment = spy( + MultiButtonDialogFragment.newInstance( + "sessionId", + "uid", + "title", + "message", + true, + false, + positiveButton = "positive", + ), + ) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val checkBox = dialog.findViewById<CheckBox>(id.mozac_feature_prompts_no_more_dialogs_check_box) + + checkBox.isChecked = true + + val positiveButton = (dialog as AlertDialog).getButton(BUTTON_POSITIVE) + positiveButton.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onConfirm("sessionId", "uid", true to MultiButtonDialogFragment.ButtonType.POSITIVE) + } + + @Test + fun `Touching outside of the dialog must notify the feature onCancel`() { + val fragment = spy( + MultiButtonDialogFragment.newInstance( + "sessionId", + "uid", + "title", + "message", + true, + false, + positiveButton = "positive", + ), + ) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + fragment.onCancel(mock()) + + verify(mockFeature).onCancel("sessionId", "uid") + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/SaveLoginDialogFragmentTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/SaveLoginDialogFragmentTest.kt new file mode 100644 index 0000000000..3ac2c1404c --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/SaveLoginDialogFragmentTest.kt @@ -0,0 +1,132 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.graphics.Bitmap +import android.graphics.drawable.BitmapDrawable +import android.widget.FrameLayout +import android.widget.ImageView +import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.google.android.material.textfield.TextInputEditText +import junit.framework.TestCase +import mozilla.components.concept.storage.LoginEntry +import mozilla.components.feature.prompts.R +import mozilla.components.support.test.any +import mozilla.components.support.test.ext.appCompatContext +import mozilla.components.support.test.mock +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mockito.doAnswer +import org.mockito.Mockito.doReturn +import org.mockito.Mockito.spy +import org.mockito.Mockito.times +import org.mockito.Mockito.verify +import org.mockito.Mockito.`when` +import org.robolectric.Shadows +import mozilla.components.ui.icons.R as iconsR + +@RunWith(AndroidJUnit4::class) +class SaveLoginDialogFragmentTest : TestCase() { + @Test + fun `dialog should always set the website icon if it is available`() { + val sessionId = "sessionId" + val requestUID = "uid" + val shouldDismissOnLoad = true + val hint = 42 + val loginUsername = "username" + val loginPassword = "password" + val entry: LoginEntry = mock() // valid image to be used as favicon + `when`(entry.username).thenReturn(loginUsername) + `when`(entry.password).thenReturn(loginPassword) + val icon: Bitmap = mock() + val fragment = spy( + SaveLoginDialogFragment.newInstance( + sessionId, + requestUID, + shouldDismissOnLoad, + hint, + entry, + icon, + ), + ) + doReturn(appCompatContext).`when`(fragment).requireContext() + doAnswer { + FrameLayout(appCompatContext).apply { + addView(TextInputEditText(appCompatContext).apply { id = R.id.username_field }) + addView(TextInputEditText(appCompatContext).apply { id = R.id.password_field }) + addView(ImageView(appCompatContext).apply { id = R.id.host_icon }) + } + }.`when`(fragment).inflateRootView(any()) + + val fragmentView = fragment.onCreateView(mock(), mock(), mock()) + + verify(fragment).inflateRootView(any()) + verify(fragment).setupRootView(any()) + assertEquals(sessionId, fragment.sessionId) + assertEquals(requestUID, fragment.promptRequestUID) + // Using assertTrue since assertEquals / assertSame would fail here + assertTrue(loginUsername == fragmentView.findViewById<TextInputEditText>(R.id.username_field).text.toString()) + assertTrue(loginPassword == fragmentView.findViewById<TextInputEditText>(R.id.password_field).text.toString()) + + // Actually verifying that the provided image is used + verify(fragment, times(0)).setImageViewTint(any()) + assertSame(icon, (fragmentView.findViewById<ImageView>(R.id.host_icon).drawable as BitmapDrawable).bitmap) + } + + @Test + fun `dialog should use a default tinted icon if favicon is not available`() { + val sessionId = "sessionId" + val requestUID = "uid" + val shouldDismissOnLoad = false + val hint = 42 + val loginUsername = "username" + val loginPassword = "password" + val entry: LoginEntry = mock() + `when`(entry.username).thenReturn(loginUsername) + `when`(entry.password).thenReturn(loginPassword) + val icon: Bitmap? = null // null favicon + val fragment = spy( + SaveLoginDialogFragment.newInstance( + sessionId, + requestUID, + shouldDismissOnLoad, + hint, + entry, + icon, + ), + ) + val defaultIconResource = iconsR.drawable.mozac_ic_globe_24 + doReturn(appCompatContext).`when`(fragment).requireContext() + doAnswer { + FrameLayout(appCompatContext).apply { + addView(TextInputEditText(appCompatContext).apply { id = R.id.username_field }) + addView(TextInputEditText(appCompatContext).apply { id = R.id.password_field }) + addView( + ImageView(appCompatContext).apply { + id = R.id.host_icon + setImageResource(defaultIconResource) + }, + ) + } + }.`when`(fragment).inflateRootView(any()) + + val fragmentView = fragment.onCreateView(mock(), mock(), mock()) + + verify(fragment).inflateRootView(any()) + verify(fragment).setupRootView(any()) + assertEquals(sessionId, fragment.sessionId) + // Using assertTrue since assertEquals / assertSame would fail here + assertTrue(loginUsername == fragmentView.findViewById<TextInputEditText>(R.id.username_field).text.toString()) + assertTrue(loginPassword == fragmentView.findViewById<TextInputEditText>(R.id.password_field).text.toString()) + + // Actually verifying that the tinted default image is used + val iconView = fragmentView.findViewById<ImageView>(R.id.host_icon) + verify(fragment).setImageViewTint(iconView) + assertNotNull(iconView.imageTintList) + // The icon sent was null, we want the default instead + assertNotNull(iconView.drawable) + assertEquals(defaultIconResource, Shadows.shadowOf(iconView.drawable).createdFromResId) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/TextPromptDialogFragmentTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/TextPromptDialogFragmentTest.kt new file mode 100644 index 0000000000..b0fee5f9a1 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/TextPromptDialogFragmentTest.kt @@ -0,0 +1,153 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.content.DialogInterface.BUTTON_POSITIVE +import android.os.Looper.getMainLooper +import android.widget.CheckBox +import android.widget.TextView +import androidx.appcompat.app.AlertDialog +import androidx.core.view.isVisible +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.feature.prompts.R.id +import mozilla.components.support.test.ext.appCompatContext +import mozilla.components.support.test.mock +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.Mockito.doReturn +import org.mockito.Mockito.spy +import org.mockito.Mockito.verify +import org.mockito.MockitoAnnotations +import org.robolectric.Shadows.shadowOf +import androidx.appcompat.R as appcompatR + +@RunWith(AndroidJUnit4::class) +class TextPromptDialogFragmentTest { + + @Mock private lateinit var mockFeature: Prompter + + @Before + fun setup() { + MockitoAnnotations.openMocks(this) + } + + @Test + fun `build dialog`() { + val fragment = spy( + TextPromptDialogFragment.newInstance("sessionId", "uid", true, "title", "label", "defaultValue", true), + ) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + + dialog.show() + + val titleTextView = dialog.findViewById<TextView>(appcompatR.id.alertTitle) + val inputLabel = dialog.findViewById<TextView>(id.input_label) + val inputValue = dialog.findViewById<TextView>(id.input_value) + val checkBox = dialog.findViewById<CheckBox>(id.mozac_feature_prompts_no_more_dialogs_check_box) + + assertEquals(fragment.sessionId, "sessionId") + assertEquals(fragment.promptRequestUID, "uid") + assertEquals(fragment.title, "title") + assertEquals(fragment.labelInput, "label") + assertEquals(fragment.defaultInputValue, "defaultValue") + assertEquals(fragment.hasShownManyDialogs, true) + + assertEquals(titleTextView.text, "title") + assertEquals(fragment.title, "title") + assertEquals(inputLabel.text, "label") + assertEquals(inputValue.text.toString(), "defaultValue") + assertTrue(checkBox.isVisible) + + checkBox.isChecked = true + assertTrue(fragment.userSelectionNoMoreDialogs) + + inputValue.text = "NewValue" + assertEquals(inputValue.text.toString(), "NewValue") + } + + @Test + fun `TextPrompt with hasShownManyDialogs equals false should not have a checkbox`() { + val fragment = spy( + TextPromptDialogFragment.newInstance("sessionId", "uid", false, "title", "label", "defaultValue", false), + ) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + + dialog.show() + + val checkBox = dialog.findViewById<CheckBox>(id.mozac_feature_prompts_no_more_dialogs_check_box) + + assertFalse(checkBox.isVisible) + } + + @Test + fun `Clicking on positive button notifies the feature`() { + val fragment = spy( + TextPromptDialogFragment.newInstance("sessionId", "uid", true, "title", "label", "defaultValue", false), + ) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val positiveButton = (dialog as AlertDialog).getButton(BUTTON_POSITIVE) + positiveButton.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onConfirm("sessionId", "uid", false to "defaultValue") + } + + @Test + fun `After checking no more dialogs checkbox feature onNoMoreDialogsChecked must be called`() { + val fragment = spy( + TextPromptDialogFragment.newInstance("sessionId", "uid", false, "title", "label", "defaultValue", true), + ) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val checkBox = dialog.findViewById<CheckBox>(id.mozac_feature_prompts_no_more_dialogs_check_box) + + checkBox.isChecked = true + + val positiveButton = (dialog as AlertDialog).getButton(BUTTON_POSITIVE) + positiveButton.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onConfirm("sessionId", "uid", true to "defaultValue") + } + + @Test + fun `touching outside of the dialog must notify the feature onCancel`() { + val fragment = spy( + TextPromptDialogFragment.newInstance("sessionId", "uid", true, "title", "label", "defaultValue", true), + ) + + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + fragment.onCancel(mock()) + + verify(mockFeature).onCancel("sessionId", "uid") + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/TimePickerDialogFragmentTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/TimePickerDialogFragmentTest.kt new file mode 100644 index 0000000000..722c836f80 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/dialog/TimePickerDialogFragmentTest.kt @@ -0,0 +1,284 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.dialog + +import android.app.AlertDialog +import android.app.DatePickerDialog +import android.app.TimePickerDialog +import android.content.DialogInterface.BUTTON_NEUTRAL +import android.content.DialogInterface.BUTTON_POSITIVE +import android.os.Looper.getMainLooper +import android.widget.DatePicker +import android.widget.NumberPicker +import android.widget.TimePicker +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.dialog.TimePickerDialogFragment.Companion.SELECTION_TYPE_DATE_AND_TIME +import mozilla.components.feature.prompts.dialog.TimePickerDialogFragment.Companion.SELECTION_TYPE_MONTH +import mozilla.components.feature.prompts.dialog.TimePickerDialogFragment.Companion.SELECTION_TYPE_TIME +import mozilla.components.feature.prompts.ext.month +import mozilla.components.feature.prompts.ext.toCalendar +import mozilla.components.feature.prompts.ext.year +import mozilla.components.support.ktx.kotlin.toDate +import mozilla.components.support.test.any +import mozilla.components.support.test.eq +import mozilla.components.support.test.ext.appCompatContext +import mozilla.components.support.test.mock +import mozilla.components.support.test.robolectric.testContext +import org.junit.Assert.assertEquals +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.Mockito.doReturn +import org.mockito.Mockito.spy +import org.mockito.Mockito.verify +import org.mockito.MockitoAnnotations.openMocks +import org.robolectric.Shadows.shadowOf +import java.util.Calendar +import java.util.Date + +@RunWith(AndroidJUnit4::class) +class TimePickerDialogFragmentTest { + + @Mock private lateinit var mockFeature: Prompter + + @Before + fun setup() { + openMocks(this) + } + + @Test + fun `build dialog`() { + val initialDate = "2019-11-29".toDate("yyyy-MM-dd") + val minDate = "2019-11-28".toDate("yyyy-MM-dd") + val maxDate = "2019-11-30".toDate("yyyy-MM-dd") + val fragment = spy( + TimePickerDialogFragment.newInstance("sessionId", "uid", true, initialDate, minDate, maxDate), + ) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val datePicker = (dialog as DatePickerDialog).datePicker + assertEquals("sessionId", fragment.sessionId) + assertEquals("uid", fragment.promptRequestUID) + assertEquals(2019, datePicker.year) + assertEquals(11, datePicker.month + 1) + assertEquals(29, datePicker.dayOfMonth) + assertEquals(minDate, Date(datePicker.minDate)) + assertEquals(maxDate, Date(datePicker.maxDate)) + } + + @Test + fun `Clicking on positive, neutral and negative button notifies the feature`() { + val initialDate = "2019-11-29".toDate("yyyy-MM-dd") + val fragment = spy( + TimePickerDialogFragment.newInstance("sessionId", "uid", false, initialDate, null, null), + ) + fragment.feature = mockFeature + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val positiveButton = (dialog as AlertDialog).getButton(BUTTON_POSITIVE) + positiveButton.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onConfirm(eq("sessionId"), eq("uid"), any()) + + val neutralButton = dialog.getButton(BUTTON_NEUTRAL) + neutralButton.performClick() + shadowOf(getMainLooper()).idle() + + verify(mockFeature).onClear("sessionId", "uid") + } + + @Test + fun `touching outside of the dialog must notify the feature onCancel`() { + val fragment = spy( + TimePickerDialogFragment.newInstance("sessionId", "uid", true, Date(), null, null), + ) + fragment.feature = mockFeature + doReturn(testContext).`when`(fragment).requireContext() + fragment.onCancel(mock()) + verify(mockFeature).onCancel("sessionId", "uid") + } + + @Test + fun `onTimeChanged must update the selectedDate`() { + val dialogPicker = TimePickerDialogFragment.newInstance("sessionId", "uid", false, Date(), null, null) + + dialogPicker.onTimeChanged(mock(), 1, 12) + + val calendar = dialogPicker.selectedDate.toCalendar() + + assertEquals(calendar.hour, 1) + assertEquals(calendar.minutes, 12) + } + + @Test + fun `building a date and time picker`() { + val initialDate = "2018-06-12T19:30".toDate("yyyy-MM-dd'T'HH:mm") + val minDate = "2018-06-07T00:00".toDate("yyyy-MM-dd'T'HH:mm") + val maxDate = "2018-06-14T00:00".toDate("yyyy-MM-dd'T'HH:mm") + val fragment = spy( + TimePickerDialogFragment.newInstance( + "sessionId", + "uid", + true, + initialDate, + minDate, + maxDate, + SELECTION_TYPE_DATE_AND_TIME, + ), + ) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val datePicker = dialog.findViewById<DatePicker>(R.id.date_picker) + + assertEquals(2018, datePicker.year) + assertEquals(6, datePicker.month + 1) + assertEquals(12, datePicker.dayOfMonth) + + assertEquals(minDate, Date(datePicker.minDate)) + assertEquals(maxDate, Date(datePicker.maxDate)) + + val timePicker = dialog.findViewById<TimePicker>(R.id.datetime_picker) + + assertEquals(19, timePicker.hour) + assertEquals(30, timePicker.minute) + } + + @Test + fun `building a month picker`() { + val initialDate = "2018-06".toDate("yyyy-MM") + val minDate = "2018-04".toDate("yyyy-MM") + val maxDate = "2018-09".toDate("yyyy-MM") + + val initialDateCal = initialDate.toCalendar() + val minCal = minDate.toCalendar() + val maxCal = maxDate.toCalendar() + + val fragment = spy( + TimePickerDialogFragment.newInstance( + "sessionId", + "uid", + false, + initialDate, + minDate, + maxDate, + SELECTION_TYPE_MONTH, + ), + ) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + + val monthPicker = dialog.findViewById<NumberPicker>(R.id.month_chooser) + val yearPicker = dialog.findViewById<NumberPicker>(R.id.year_chooser) + + assertEquals(initialDateCal.year, yearPicker.value) + assertEquals(initialDateCal.month, monthPicker.value) + + assertEquals(minCal.year, yearPicker.minValue) + assertEquals(minCal.month, monthPicker.minValue) + + assertEquals(maxCal.year, yearPicker.maxValue) + assertEquals(maxCal.month, monthPicker.maxValue) + + fragment.onDateSet(mock(), 8, 2019) + val selectedDate = fragment.selectedDate.toCalendar() + + assertEquals(2019, selectedDate.year) + assertEquals(7, selectedDate.month) + } + + @Test + fun `building a time picker`() { + val initialDate = "2018-06-12T19:30".toDate("yyyy-MM-dd'T'HH:mm") + val minDate = "2018-06-07T00:00".toDate("yyyy-MM-dd'T'HH:mm") + val maxDate = "2018-06-14T00:00".toDate("yyyy-MM-dd'T'HH:mm") + val fragment = spy( + TimePickerDialogFragment.newInstance( + "sessionId", + "uid", + true, + initialDate, + minDate, + maxDate, + SELECTION_TYPE_TIME, + ), + ) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + assertTrue(dialog is TimePickerDialog) + } + + @Test(expected = IllegalArgumentException::class) + fun `creating a TimePickerDialogFragment with an invalid type selection will throw an exception`() { + val initialDate = "2018-06-12T19:30".toDate("yyyy-MM-dd'T'HH:mm") + val minDate = "2018-06-07T00:00".toDate("yyyy-MM-dd'T'HH:mm") + val maxDate = "2018-06-14T00:00".toDate("yyyy-MM-dd'T'HH:mm") + val fragment = spy( + TimePickerDialogFragment.newInstance( + "sessionId", + "uid", + false, + initialDate, + minDate, + maxDate, + -223, + ), + ) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + } + + @Test(expected = IllegalArgumentException::class) + fun `creating a TimePickerDialogFragment with empty title and an invalid type selection will throw an exception `() { + val initialDate = "2018-06-12T19:30".toDate("yyyy-MM-dd'T'HH:mm") + val minDate = "2018-06-07T00:00".toDate("yyyy-MM-dd'T'HH:mm") + val maxDate = "2018-06-14T00:00".toDate("yyyy-MM-dd'T'HH:mm") + val fragment = spy( + TimePickerDialogFragment.newInstance( + "sessionId", + "uid", + true, + initialDate, + minDate, + maxDate, + -223, + ), + ) + + doReturn(appCompatContext).`when`(fragment).requireContext() + + val dialog = fragment.onCreateDialog(null) + dialog.show() + } + + private val Calendar.minutes: Int + get() = get(Calendar.MINUTE) + private val Calendar.hour: Int + get() = get(Calendar.HOUR_OF_DAY) +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/ext/EditTextTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/ext/EditTextTest.kt new file mode 100644 index 0000000000..5e82b01242 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/ext/EditTextTest.kt @@ -0,0 +1,44 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.ext + +import android.view.inputmethod.EditorInfo +import android.widget.EditText +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.support.test.robolectric.testContext +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mockito.never +import org.mockito.Mockito.spy +import org.mockito.Mockito.verify + +@RunWith(AndroidJUnit4::class) +class EditTextTest { + private val onDonePressed: () -> Unit = spy {} + + @Test + fun `GIVEN a callback, WHEN action done is performed - IME_ACTION_DONE -, THEN onDonePress should be called`() { + val view = EditText(testContext) + val editorInfo = EditorInfo() + val inputConnection = view.onCreateInputConnection(editorInfo) + + view.onDone(false, onDonePressed) + inputConnection.performEditorAction(EditorInfo.IME_ACTION_DONE) + + verify(onDonePressed).invoke() + } + + @Test + fun `GIVEN a callback, WHEN a different action is performed - IME_ACTION_SEARCH -, THEN onDonePress shouldn't be called `() { + val view = EditText(testContext) + val editorInfo = EditorInfo() + val inputConnection = view.onCreateInputConnection(editorInfo) + + view.onDone(false, onDonePressed) + inputConnection.performEditorAction(EditorInfo.IME_ACTION_SEARCH) + + verify(onDonePressed, never()).invoke() + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/ext/PromptRequestTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/ext/PromptRequestTest.kt new file mode 100644 index 0000000000..07e3d50b24 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/ext/PromptRequestTest.kt @@ -0,0 +1,55 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.ext + +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.concept.engine.prompt.PromptRequest.Alert +import mozilla.components.concept.engine.prompt.PromptRequest.Confirm +import mozilla.components.concept.engine.prompt.PromptRequest.Popup +import mozilla.components.concept.engine.prompt.PromptRequest.SingleChoice +import mozilla.components.concept.engine.prompt.PromptRequest.TextPrompt +import mozilla.components.support.test.mock +import org.junit.Assert.assertEquals +import org.junit.Test +import kotlin.reflect.KClass + +class PromptRequestTest { + @Test + fun `GIVEN only a subset of prompts should be shown in fullscreen WHEN checking which are not THEN return the expected result`() { + val expected = listOf<KClass<out PromptRequest>>( + Alert::class, + TextPrompt::class, + Confirm::class, + Popup::class, + ) + + assertEquals(expected, PROMPTS_TO_EXIT_FULLSCREEN_FOR) + } + + @Test + fun `GIVEN a prompt which should not be shown in fullscreen WHEN trying to execute code such prompts THEN execute the code`() { + var invocations = 0 + val alert: Alert = mock() + val text: TextPrompt = mock() + val confirm: Confirm = mock() + val popup: Popup = mock() + val windowedPrompts = listOf(alert, text, confirm, popup) + + windowedPrompts.forEachIndexed { index, prompt -> + prompt.executeIfWindowedPrompt { invocations++ } + assertEquals(index + 1, invocations) + } + } + + @Test + fun `GIVEN a prompt which should be shown in fullscreen WHEN trying to execute code for windowed prompts THEN don't do anything`() { + var invocations = 0 + val choice: SingleChoice = mock() + + choice.executeIfWindowedPrompt { invocations++ } + + assertEquals(0, invocations) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/facts/AddressAutofillDialogFactsTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/facts/AddressAutofillDialogFactsTest.kt new file mode 100644 index 0000000000..3d990f063b --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/facts/AddressAutofillDialogFactsTest.kt @@ -0,0 +1,94 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.facts + +import mozilla.components.support.base.Component +import mozilla.components.support.base.facts.Action +import mozilla.components.support.base.facts.processor.CollectionProcessor +import org.junit.Assert.assertEquals +import org.junit.Test + +class AddressAutofillDialogFactsTest { + + @Test + fun `Emits facts for address autofill form detected events`() { + CollectionProcessor.withFactCollection { facts -> + + emitSuccessfulAddressAutofillFormDetectedFact() + + assertEquals(1, facts.size) + + facts[0].apply { + assertEquals(Component.FEATURE_PROMPTS, component) + assertEquals(Action.INTERACTION, action) + assertEquals(AddressAutofillDialogFacts.Items.AUTOFILL_ADDRESS_FORM_DETECTED, item) + } + } + } + + @Test + fun `Emits facts for autofill success events`() { + CollectionProcessor.withFactCollection { facts -> + + emitSuccessfulAddressAutofillSuccessFact() + + assertEquals(1, facts.size) + + facts[0].apply { + assertEquals(Component.FEATURE_PROMPTS, component) + assertEquals(Action.INTERACTION, action) + assertEquals(AddressAutofillDialogFacts.Items.AUTOFILL_ADDRESS_SUCCESS, item) + } + } + } + + @Test + fun `Emits facts for autofill shown events`() { + CollectionProcessor.withFactCollection { facts -> + + emitAddressAutofillShownFact() + + assertEquals(1, facts.size) + + facts[0].apply { + assertEquals(Component.FEATURE_PROMPTS, component) + assertEquals(Action.INTERACTION, action) + assertEquals(AddressAutofillDialogFacts.Items.AUTOFILL_ADDRESS_PROMPT_SHOWN, item) + } + } + } + + @Test + fun `Emits facts for autofill expanded events`() { + CollectionProcessor.withFactCollection { facts -> + + emitAddressAutofillExpandedFact() + + assertEquals(1, facts.size) + + facts[0].apply { + assertEquals(Component.FEATURE_PROMPTS, component) + assertEquals(Action.INTERACTION, action) + assertEquals(AddressAutofillDialogFacts.Items.AUTOFILL_ADDRESS_PROMPT_EXPANDED, item) + } + } + } + + @Test + fun `Emits facts for autofill dismissed events`() { + CollectionProcessor.withFactCollection { facts -> + + emitAddressAutofillDismissedFact() + + assertEquals(1, facts.size) + + facts[0].apply { + assertEquals(Component.FEATURE_PROMPTS, component) + assertEquals(Action.INTERACTION, action) + assertEquals(AddressAutofillDialogFacts.Items.AUTOFILL_ADDRESS_PROMPT_DISMISSED, item) + } + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/facts/CreditCardAutofillDialogFactsTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/facts/CreditCardAutofillDialogFactsTest.kt new file mode 100644 index 0000000000..9de04521c3 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/facts/CreditCardAutofillDialogFactsTest.kt @@ -0,0 +1,147 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.facts + +import mozilla.components.support.base.Component +import mozilla.components.support.base.facts.Action +import mozilla.components.support.base.facts.processor.CollectionProcessor +import org.junit.Assert.assertEquals +import org.junit.Test + +class CreditCardAutofillDialogFactsTest { + + @Test + fun `Emits facts for autofill form detected events`() { + CollectionProcessor.withFactCollection { facts -> + + emitSuccessfulCreditCardAutofillFormDetectedFact() + + assertEquals(1, facts.size) + + facts[0].apply { + assertEquals(Component.FEATURE_PROMPTS, component) + assertEquals(Action.INTERACTION, action) + assertEquals(CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_FORM_DETECTED, item) + } + } + } + + @Test + fun `Emits facts for autofill success events`() { + CollectionProcessor.withFactCollection { facts -> + + emitSuccessfulCreditCardAutofillSuccessFact() + + assertEquals(1, facts.size) + + facts[0].apply { + assertEquals(Component.FEATURE_PROMPTS, component) + assertEquals(Action.INTERACTION, action) + assertEquals(CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_SUCCESS, item) + } + } + } + + @Test + fun `Emits facts for autofill shown events`() { + CollectionProcessor.withFactCollection { facts -> + + emitCreditCardAutofillShownFact() + + assertEquals(1, facts.size) + + facts[0].apply { + assertEquals(Component.FEATURE_PROMPTS, component) + assertEquals(Action.INTERACTION, action) + assertEquals(CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_PROMPT_SHOWN, item) + } + } + } + + @Test + fun `Emits facts for autofill expanded events`() { + CollectionProcessor.withFactCollection { facts -> + + emitCreditCardAutofillExpandedFact() + + assertEquals(1, facts.size) + + facts[0].apply { + assertEquals(Component.FEATURE_PROMPTS, component) + assertEquals(Action.INTERACTION, action) + assertEquals(CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_PROMPT_EXPANDED, item) + } + } + } + + @Test + fun `Emits facts for autofill dismissed events`() { + CollectionProcessor.withFactCollection { facts -> + + emitCreditCardAutofillDismissedFact() + + assertEquals(1, facts.size) + + facts[0].apply { + assertEquals(Component.FEATURE_PROMPTS, component) + assertEquals(Action.INTERACTION, action) + assertEquals(CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_PROMPT_DISMISSED, item) + } + } + } + + @Test + fun `Emits facts for autofill confirm and create events`() { + CollectionProcessor.withFactCollection { facts -> + + emitCreditCardAutofillCreatedFact() + + assertEquals(1, facts.size) + + val fact = facts.single() + assertEquals(Component.FEATURE_PROMPTS, fact.component) + assertEquals(Action.CONFIRM, fact.action) + assertEquals( + CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_CREATED, + fact.item, + ) + } + } + + @Test + fun `Emits facts for autofill confirm and update events`() { + CollectionProcessor.withFactCollection { facts -> + + emitCreditCardAutofillUpdatedFact() + + assertEquals(1, facts.size) + + val fact = facts.single() + assertEquals(Component.FEATURE_PROMPTS, fact.component) + assertEquals(Action.CONFIRM, fact.action) + assertEquals( + CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_UPDATED, + fact.item, + ) + } + } + + @Test + fun `Emits facts for autofill save prompt shown event`() { + CollectionProcessor.withFactCollection { facts -> + emitCreditCardSaveShownFact() + + assertEquals(1, facts.size) + + val fact = facts.single() + assertEquals(Component.FEATURE_PROMPTS, fact.component) + assertEquals(Action.DISPLAY, fact.action) + assertEquals( + CreditCardAutofillDialogFacts.Items.AUTOFILL_CREDIT_CARD_SAVE_PROMPT_SHOWN, + fact.item, + ) + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/file/FilePickerTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/file/FilePickerTest.kt new file mode 100644 index 0000000000..4f52501984 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/file/FilePickerTest.kt @@ -0,0 +1,405 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.file + +import android.Manifest +import android.app.Activity.RESULT_CANCELED +import android.app.Activity.RESULT_OK +import android.content.ClipData +import android.content.Context +import android.content.Intent +import android.content.pm.PackageManager.PERMISSION_DENIED +import android.content.pm.PackageManager.PERMISSION_GRANTED +import android.net.Uri +import androidx.core.net.toUri +import androidx.test.core.app.ApplicationProvider +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.browser.state.action.ContentAction +import mozilla.components.browser.state.state.BrowserState +import mozilla.components.browser.state.state.ContentState +import mozilla.components.browser.state.state.CustomTabSessionState +import mozilla.components.browser.state.state.TabSessionState +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.feature.prompts.PromptContainer +import mozilla.components.feature.prompts.file.FilePicker.Companion.FILE_PICKER_ACTIVITY_REQUEST_CODE +import mozilla.components.support.test.any +import mozilla.components.support.test.eq +import mozilla.components.support.test.mock +import mozilla.components.support.test.robolectric.grantPermission +import mozilla.components.support.test.robolectric.testContext +import mozilla.components.support.test.whenever +import org.junit.Assert.assertArrayEquals +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertNull +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mockito.anyInt +import org.mockito.Mockito.doReturn +import org.mockito.Mockito.never +import org.mockito.Mockito.spy +import org.mockito.Mockito.verify +import org.mockito.Mockito.verifyNoInteractions +import java.io.File + +@RunWith(AndroidJUnit4::class) +class FilePickerTest { + + private val noopSingle: (Context, Uri) -> Unit = { _, _ -> } + private val noopMulti: (Context, Array<Uri>) -> Unit = { _, _ -> } + private val request = PromptRequest.File( + mimeTypes = emptyArray(), + onSingleFileSelected = noopSingle, + onMultipleFilesSelected = noopMulti, + onDismiss = {}, + ) + + private lateinit var fragment: PromptContainer + private lateinit var store: BrowserStore + private lateinit var state: BrowserState + private lateinit var filePicker: FilePicker + private lateinit var fileUploadsDirCleaner: FileUploadsDirCleaner + + @Before + fun setup() { + fileUploadsDirCleaner = mock() + fragment = spy(PromptContainer.TestPromptContainer(testContext)) + state = mock() + store = mock() + whenever(store.state).thenReturn(state) + filePicker = FilePicker( + fragment, + store, + fileUploadsDirCleaner = fileUploadsDirCleaner, + ) { } + } + + @Test + fun `FilePicker acts on a given (custom tab) session or the selected session`() { + val customTabContent: ContentState = mock() + whenever(customTabContent.promptRequests).thenReturn(listOf(request)) + val customTab = CustomTabSessionState(id = "custom-tab", content = customTabContent, trackingProtection = mock(), config = mock()) + + whenever(state.customTabs).thenReturn(listOf(customTab)) + filePicker = FilePicker( + fragment, + store, + customTab.id, + fileUploadsDirCleaner = mock(), + ) { } + filePicker.onActivityResult(FILE_PICKER_ACTIVITY_REQUEST_CODE, 0, null) + verify(store).dispatch(ContentAction.ConsumePromptRequestAction(customTab.id, request)) + + val selected = prepareSelectedSession(request) + filePicker = FilePicker( + fragment, + store, + fileUploadsDirCleaner = mock(), + ) { } + filePicker.onActivityResult(FILE_PICKER_ACTIVITY_REQUEST_CODE, 0, null) + verify(store).dispatch(ContentAction.ConsumePromptRequestAction(selected.id, request)) + } + + @Test + fun `handleFilePickerRequest without the required permission will call askAndroidPermissionsForRequest`() { + var onRequestPermissionWasCalled = false + val context = ApplicationProvider.getApplicationContext<Context>() + + filePicker = spy( + FilePicker( + fragment, + store, + fileUploadsDirCleaner = mock(), + ) { + onRequestPermissionWasCalled = true + }, + ) + + doReturn(context).`when`(fragment).context + + filePicker.handleFileRequest(request) + + assertTrue(onRequestPermissionWasCalled) + verify(filePicker).askAndroidPermissionsForRequest(any(), eq(request)) + verify(fragment, never()).startActivityForResult(Intent(), 1) + } + + @Test + fun `handleFilePickerRequest with the required permission will call startActivityForResult`() { + var onRequestPermissionWasCalled = false + + filePicker = FilePicker( + fragment, + store, + fileUploadsDirCleaner = mock(), + ) { + onRequestPermissionWasCalled = true + } + + grantPermission(Manifest.permission.READ_EXTERNAL_STORAGE) + + filePicker.handleFileRequest(request) + + assertFalse(onRequestPermissionWasCalled) + verify(fragment).startActivityForResult(any(), anyInt()) + } + + @Test + fun `onPermissionsGranted will forward call to filePickerRequest`() { + stubContext() + filePicker = spy(filePicker) + filePicker.currentRequest = request + + filePicker.onPermissionsGranted() + + // The original prompt that started the request permission flow is persisted in the store + // That should not be accesses / modified in any way. + verifyNoInteractions(store) + // After the permission is granted we should retry picking a file based on the original request. + verify(filePicker).handleFileRequest(eq(request), eq(false)) + } + + @Test + fun `onPermissionsDeny will call onDismiss and consume the file PromptRequest of the actual session`() { + var onDismissWasCalled = false + val filePickerRequest = request.copy { + onDismissWasCalled = true + } + + val selected = prepareSelectedSession(filePickerRequest) + + stubContext() + + filePicker.onPermissionsDenied() + + assertTrue(onDismissWasCalled) + verify(store).dispatch(ContentAction.ConsumePromptRequestAction(selected.id, filePickerRequest)) + } + + @Test + fun `onActivityResult with RESULT_OK and isMultipleFilesSelection false will consume PromptRequest of the actual session`() { + var onSingleFileSelectionWasCalled = false + + val onSingleFileSelection: (Context, Uri) -> Unit = { _, _ -> + onSingleFileSelectionWasCalled = true + } + + val filePickerRequest = request.copy(onSingleFileSelected = onSingleFileSelection) + + val selected = prepareSelectedSession(filePickerRequest) + val intent = Intent() + + intent.data = mock() + + stubContext() + + filePicker.onActivityResult(FILE_PICKER_ACTIVITY_REQUEST_CODE, RESULT_OK, intent) + + assertTrue(onSingleFileSelectionWasCalled) + verify(store).dispatch(ContentAction.ConsumePromptRequestAction(selected.id, filePickerRequest)) + } + + @Test + fun `onActivityResult with RESULT_OK and isMultipleFilesSelection true will consume PromptRequest of the actual session`() { + var onMultipleFileSelectionWasCalled = false + + val onMultipleFileSelection: (Context, Array<Uri>) -> Unit = { _, _ -> + onMultipleFileSelectionWasCalled = true + } + + val filePickerRequest = request.copy( + isMultipleFilesSelection = true, + onMultipleFilesSelected = onMultipleFileSelection, + ) + + val selected = prepareSelectedSession(filePickerRequest) + val intent = Intent() + + intent.clipData = mock() + val item = mock<ClipData.Item>() + + doReturn(mock<Uri>()).`when`(item).uri + + intent.clipData?.apply { + doReturn(1).`when`(this).itemCount + doReturn(item).`when`(this).getItemAt(0) + } + + stubContext() + + filePicker.onActivityResult(FILE_PICKER_ACTIVITY_REQUEST_CODE, RESULT_OK, intent) + + assertTrue(onMultipleFileSelectionWasCalled) + verify(store).dispatch(ContentAction.ConsumePromptRequestAction(selected.id, filePickerRequest)) + } + + @Test + fun `onActivityResult with not RESULT_OK will consume PromptRequest of the actual session and call onDismiss `() { + var onDismissWasCalled = false + + val filePickerRequest = request.copy(isMultipleFilesSelection = true) { + onDismissWasCalled = true + } + + val selected = prepareSelectedSession(filePickerRequest) + val intent = Intent() + + filePicker.onActivityResult(FILE_PICKER_ACTIVITY_REQUEST_CODE, RESULT_CANCELED, intent) + + assertTrue(onDismissWasCalled) + verify(store).dispatch(ContentAction.ConsumePromptRequestAction(selected.id, filePickerRequest)) + } + + @Test + fun `onActivityResult will not process any PromptRequest that is not a File request`() { + var wasConfirmed = false + var wasDismissed = false + val onConfirm: (Boolean) -> Unit = { wasConfirmed = true } + val onDismiss = { wasDismissed = true } + val invalidRequest = PromptRequest.Alert("", "", false, onConfirm, onDismiss) + val spiedFilePicker = spy(filePicker) + val selected = prepareSelectedSession(invalidRequest) + val intent = Intent() + + spiedFilePicker.onActivityResult(FILE_PICKER_ACTIVITY_REQUEST_CODE, RESULT_OK, intent) + + assertFalse(wasConfirmed) + assertFalse(wasDismissed) + verify(store, never()).dispatch(ContentAction.ConsumePromptRequestAction(selected.id, request)) + verify(spiedFilePicker, never()).handleFilePickerIntentResult(intent, request) + } + + @Test + fun `onActivityResult returns false if the request code is not the same`() { + val intent = Intent() + val result = filePicker.onActivityResult(10101, RESULT_OK, intent) + + assertFalse(result) + } + + @Test + fun `onRequestPermissionsResult with FILE_PICKER_REQUEST and PERMISSION_GRANTED will call onPermissionsGranted`() { + stubContext() + filePicker = spy(filePicker) + filePicker.currentRequest = request + + filePicker.onPermissionsResult(emptyArray(), IntArray(1) { PERMISSION_GRANTED }) + + verify(filePicker).onPermissionsGranted() + } + + @Test + fun `onRequestPermissionsResult with FILE_PICKER_REQUEST and PERMISSION_DENIED will call onPermissionsDeny`() { + filePicker = spy(filePicker) + filePicker.onPermissionsResult(emptyArray(), IntArray(1) { PERMISSION_DENIED }) + + verify(filePicker).onPermissionsDenied() + } + + @Test + fun `askAndroidPermissionsForRequest should cache the current request and then ask for permissions`() { + val permissions = setOf("PermissionA") + var permissionsRequested = emptyArray<String>() + filePicker = spy( + FilePicker(fragment, store, null, fileUploadsDirCleaner = mock()) { requested -> + permissionsRequested = requested + }, + ) + + filePicker.askAndroidPermissionsForRequest(permissions, request) + + assertEquals(request, filePicker.currentRequest) + assertArrayEquals(permissions.toTypedArray(), permissionsRequested) + } + + @Test + fun `handleFilePickerIntentResult called with null Intent will make captureUri null`() { + stubContext() + captureUri = "randomSaveLocationOnDisk".toUri() + val onSingleFileSelection: (Context, Uri) -> Unit = { _, _ -> Unit } + val promptRequest = mock<PromptRequest.File>() + doReturn(onSingleFileSelection).`when`(promptRequest).onSingleFileSelected + + filePicker.handleFilePickerIntentResult(null, promptRequest) + + assertNull(captureUri) + } + + @Test + fun `handleFilePickerIntentResult called with valid Intent will make captureUri null also if request is dismissed`() { + stubContext() + captureUri = "randomSaveLocationOnDisk".toUri() + val promptRequest = mock<PromptRequest.File>() + doReturn({ }).`when`(promptRequest).onDismiss + // A private file cannot be picked so the request will be dismissed. + val intent = Intent().apply { + data = ("file://" + File(testContext.applicationInfo.dataDir, "randomFile").canonicalPath).toUri() + } + + filePicker.handleFilePickerIntentResult(intent, promptRequest) + + assertNull(captureUri) + } + + @Test + fun `handleFilePickerIntentResult for multiple files selection will make captureUri null`() { + stubContext() + captureUri = "randomSaveLocationOnDisk".toUri() + val onMultipleFilesSelected: (Context, Array<Uri>) -> Unit = { _, _ -> Unit } + val promptRequest = mock<PromptRequest.File>() + doReturn(onMultipleFilesSelected).`when`(promptRequest).onMultipleFilesSelected + doReturn(true).`when`(promptRequest).isMultipleFilesSelection + val intent = Intent().apply { + clipData = (ClipData.newRawUri("Test", "https://www.mozilla.org".toUri())) + } + + filePicker.handleFilePickerIntentResult(intent, promptRequest) + + verify(fileUploadsDirCleaner).enqueueForCleanup(any()) + assertNull(captureUri) + } + + @Test + fun `handleFilePickerIntentResult for multiple files selection will make captureUri null also if request is dismissed`() { + stubContext() + captureUri = "randomSaveLocationOnDisk".toUri() + val promptRequest = mock<PromptRequest.File>() + doReturn({ }).`when`(promptRequest).onDismiss + doReturn(true).`when`(promptRequest).isMultipleFilesSelection + // A private file cannot be picked so the request will be dismissed. + val intent = Intent().apply { + clipData = ( + ClipData.newRawUri( + "Test", + ("file://" + File(testContext.applicationInfo.dataDir, "randomFile").canonicalPath).toUri(), + ) + ) + } + + filePicker.handleFilePickerIntentResult(intent, promptRequest) + + assertNull(captureUri) + } + + private fun prepareSelectedSession(request: PromptRequest? = null): TabSessionState { + val promptRequest: PromptRequest = request ?: mock() + val content: ContentState = mock() + whenever(content.promptRequests).thenReturn(listOf(promptRequest)) + + val selected = TabSessionState("browser-tab", content, mock(), mock()) + whenever(state.selectedTabId).thenReturn(selected.id) + whenever(state.tabs).thenReturn(listOf(selected)) + return selected + } + + private fun stubContext() { + val context = ApplicationProvider.getApplicationContext<Context>() + doReturn(context).`when`(fragment).context + filePicker = FilePicker(fragment, store, fileUploadsDirCleaner = fileUploadsDirCleaner) {} + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/file/FileUploadsDirCleanerMiddlewareTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/file/FileUploadsDirCleanerMiddlewareTest.kt new file mode 100644 index 0000000000..85fa560102 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/file/FileUploadsDirCleanerMiddlewareTest.kt @@ -0,0 +1,59 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.file + +import mozilla.components.browser.state.action.ContentAction +import mozilla.components.browser.state.action.TabListAction +import mozilla.components.browser.state.state.BrowserState +import mozilla.components.browser.state.state.createTab +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.support.test.ext.joinBlocking +import mozilla.components.support.test.libstate.ext.waitUntilIdle +import mozilla.components.support.test.mock +import mozilla.components.support.test.rule.MainCoroutineRule +import org.junit.Rule +import org.junit.Test +import org.mockito.Mockito.times +import org.mockito.Mockito.verify + +class FileUploadsDirCleanerMiddlewareTest { + @get:Rule + val coroutinesTestRule = MainCoroutineRule() + private val dispatcher = coroutinesTestRule.testDispatcher + + @Test + fun `WHEN an action that indicates the user has navigated to another webiste THEN clean up temporary uploads`() { + val fileUploadsDirCleaner = mock<FileUploadsDirCleaner>() + val tab = createTab("https://www.mozilla.org", id = "test-tab") + val store = BrowserStore( + middleware = listOf( + FileUploadsDirCleanerMiddleware( + fileUploadsDirCleaner = fileUploadsDirCleaner, + ), + ), + initialState = BrowserState( + tabs = listOf(tab), + ), + ) + + store.dispatch(TabListAction.SelectTabAction("test-tab")).joinBlocking() + dispatcher.scheduler.advanceUntilIdle() + store.waitUntilIdle() + + verify(fileUploadsDirCleaner).cleanRecentUploads() + + store.dispatch(ContentAction.UpdateLoadRequestAction("test-tab", mock())).joinBlocking() + dispatcher.scheduler.advanceUntilIdle() + store.waitUntilIdle() + + verify(fileUploadsDirCleaner, times(2)).cleanRecentUploads() + + store.dispatch(ContentAction.UpdateUrlAction("test-tab", "url")).joinBlocking() + dispatcher.scheduler.advanceUntilIdle() + store.waitUntilIdle() + + verify(fileUploadsDirCleaner, times(3)).cleanRecentUploads() + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/file/FileUploadsDirCleanerTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/file/FileUploadsDirCleanerTest.kt new file mode 100644 index 0000000000..6f67c2ce9c --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/file/FileUploadsDirCleanerTest.kt @@ -0,0 +1,87 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.file + +import androidx.test.ext.junit.runners.AndroidJUnit4 +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.MainScope +import mozilla.components.concept.engine.prompt.PromptRequest.File.Companion.DEFAULT_UPLOADS_DIR_NAME +import mozilla.components.support.test.robolectric.testContext +import mozilla.components.support.test.rule.MainCoroutineRule +import mozilla.components.support.test.rule.runTestOnMain +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import java.io.File + +@RunWith(AndroidJUnit4::class) +class FileUploadsDirCleanerTest { + private lateinit var fileCleaner: FileUploadsDirCleaner + + @get:Rule + val coroutinesTestRule = MainCoroutineRule() + + @Before + fun setup() { + fileCleaner = FileUploadsDirCleaner( + scope = MainScope(), + ) { + testContext.cacheDir + } + fileCleaner.fileNamesToBeDeleted = emptyList() + fileCleaner.dispatcher = Dispatchers.Main + } + + @Test + fun `WHEN calling enqueueForCleanup THEN fileName should be added to fileNamesToBeDeleted list`() { + val expectedFileName = "my_file.txt" + fileCleaner.enqueueForCleanup(expectedFileName) + assertEquals(expectedFileName, fileCleaner.fileNamesToBeDeleted.first()) + } + + @Test + fun `WHEN calling cleanRecentUploads THEN all the enqueued files should be deleted and not enqueued files must be kept`() = + runTestOnMain { + val cachedDir = File(testContext.cacheDir, DEFAULT_UPLOADS_DIR_NAME) + assertTrue(cachedDir.mkdir()) + + val fileToBeDeleted = File(cachedDir, "my_file.txt") + val fileToBeKept = File(cachedDir, "file_to_be_kept.txt") + + assertTrue(fileToBeDeleted.createNewFile()) + assertTrue(fileToBeKept.createNewFile()) + assertTrue(fileToBeDeleted.exists()) + assertTrue(fileToBeKept.exists()) + + fileCleaner.enqueueForCleanup(fileToBeDeleted.name) + + fileCleaner.cleanRecentUploads() + + assertTrue(fileCleaner.fileNamesToBeDeleted.isEmpty()) + assertFalse(fileToBeDeleted.exists()) + assertTrue(fileToBeKept.exists()) + } + + @Test + fun `WHEN calling cleanUploadsDirectory THEN the uploads directory should emptied`() = + runTestOnMain { + val cachedDir = File(testContext.cacheDir, DEFAULT_UPLOADS_DIR_NAME) + assertTrue(cachedDir.mkdir()) + + val fileToBeDeleted = File(cachedDir, "my_file.txt") + + assertTrue(fileToBeDeleted.createNewFile()) + assertTrue(fileToBeDeleted.exists()) + + fileCleaner.cleanUploadsDirectory() + + assertFalse(fileToBeDeleted.exists()) + assertFalse(cachedDir.exists()) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/file/MimeTypeTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/file/MimeTypeTest.kt new file mode 100644 index 0000000000..483c108889 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/file/MimeTypeTest.kt @@ -0,0 +1,392 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.file + +import android.content.Context +import android.content.Intent.ACTION_GET_CONTENT +import android.content.Intent.CATEGORY_OPENABLE +import android.content.Intent.EXTRA_ALLOW_MULTIPLE +import android.content.Intent.EXTRA_MIME_TYPES +import android.content.pm.ActivityInfo +import android.content.pm.ApplicationInfo +import android.content.pm.PackageManager +import android.content.pm.PackageManager.MATCH_DEFAULT_ONLY +import android.content.pm.ProviderInfo +import android.content.pm.ResolveInfo +import android.net.Uri +import android.provider.MediaStore.ACTION_IMAGE_CAPTURE +import android.provider.MediaStore.ACTION_VIDEO_CAPTURE +import android.provider.MediaStore.Audio.Media.RECORD_SOUND_ACTION +import android.provider.MediaStore.EXTRA_OUTPUT +import android.webkit.MimeTypeMap +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.support.test.robolectric.testContext +import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse +import org.junit.Assert.assertNull +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.ArgumentMatchers.anyInt +import org.mockito.ArgumentMatchers.eq +import org.mockito.ArgumentMatchers.notNull +import org.mockito.Mockito.mock +import org.mockito.Mockito.`when` +import org.robolectric.Shadows.shadowOf + +@RunWith(AndroidJUnit4::class) +class MimeTypeTest { + + private val request = PromptRequest.File( + mimeTypes = emptyArray(), + onSingleFileSelected = { _, _ -> }, + onMultipleFilesSelected = { _, _ -> }, + onDismiss = {}, + ) + private val capture = PromptRequest.File.FacingMode.ANY + + private lateinit var context: Context + private lateinit var packageManager: PackageManager + + @Before + fun setup() { + context = mock(Context::class.java) + packageManager = mock(PackageManager::class.java) + + `when`(context.packageManager).thenReturn(packageManager) + `when`(context.packageName).thenReturn("org.mozilla.browser") + @Suppress("DEPRECATION") + `when`(packageManager.resolveActivity(notNull(), eq(MATCH_DEFAULT_ONLY))).thenReturn(null) + } + + @Test + fun `matches empty list of mime types`() { + assertTypes(setOf(MimeType.Wildcard)) { + it.matches(emptyArray()) + } + } + + @Test + fun `matches varied list of mime types`() { + assertTypes(setOf(MimeType.Image(), MimeType.Audio, MimeType.Wildcard)) { + it.matches(arrayOf("image/*", "audio/*")) + } + assertTypes(setOf(MimeType.Audio, MimeType.Video, MimeType.Wildcard)) { + it.matches(arrayOf("video/mp4", "audio/*")) + } + } + + @Test + fun `matches image types`() { + assertTypes(setOf(MimeType.Image(), MimeType.Wildcard)) { + it.matches(arrayOf("image/*")) + } + assertTypes(setOf(MimeType.Image(), MimeType.Wildcard)) { + it.matches(arrayOf("image/jpg")) + } + assertTypes(setOf(MimeType.Wildcard)) { + it.matches(arrayOf(".webp")) + } + assertTypes(setOf(MimeType.Image(), MimeType.Wildcard)) { + it.matches(arrayOf(".jpg", "image/*", ".gif")) + } + } + + @Test + fun `matches video types`() { + assertTypes(setOf(MimeType.Video, MimeType.Wildcard)) { + it.matches(arrayOf("video/*")) + } + assertTypes(setOf(MimeType.Video, MimeType.Wildcard)) { + it.matches(arrayOf("video/avi")) + } + assertTypes(setOf(MimeType.Wildcard)) { + it.matches(arrayOf(".webm")) + } + assertTypes(setOf(MimeType.Video, MimeType.Wildcard)) { + it.matches(arrayOf("video/*", ".mov", ".mp4")) + } + } + + @Test + fun `matches audio types`() { + assertTypes(setOf(MimeType.Audio, MimeType.Wildcard)) { + it.matches(arrayOf("audio/*")) + } + assertTypes(setOf(MimeType.Audio, MimeType.Wildcard)) { + it.matches(arrayOf("audio/wav")) + } + assertTypes(setOf(MimeType.Wildcard)) { + it.matches(arrayOf(".mp3")) + } + assertTypes(setOf(MimeType.Audio, MimeType.Wildcard)) { + it.matches(arrayOf(".ogg", "audio/wav", "audio/*")) + } + } + + @Test + fun `matches document types`() { + assertTypes(setOf(MimeType.Wildcard)) { + it.matches(arrayOf("application/json")) + } + assertTypes(setOf(MimeType.Wildcard)) { + it.matches(arrayOf(".doc")) + } + assertTypes(setOf(MimeType.Wildcard)) { + it.matches(arrayOf(".txt", "text/html")) + } + } + + @Test + fun `shouldCapture empty list of mime types`() { + assertTypes(setOf()) { + it.shouldCapture(emptyArray(), capture) + } + } + + @Test + fun `shouldCapture varied list of mime types`() { + assertTypes(setOf()) { + it.shouldCapture(arrayOf("image/*", "video/*"), capture) + } + } + + @Test + fun `shouldCapture image types`() { + assertTypes(setOf(MimeType.Image())) { + it.shouldCapture(arrayOf("image/*"), capture) + } + assertTypes(setOf(MimeType.Image())) { + it.shouldCapture(arrayOf("image/jpg"), capture) + } + assertTypes(setOf()) { + it.shouldCapture(arrayOf(".webp"), capture) + } + assertTypes(setOf()) { + it.shouldCapture(arrayOf(".jpg", "image/*", ".gif"), capture) + } + assertTypes(setOf(MimeType.Image())) { + it.shouldCapture(arrayOf("image/png", "image/jpg"), capture) + } + } + + @Test + fun `shouldCapture video types`() { + assertTypes(setOf(MimeType.Video)) { + it.shouldCapture(arrayOf("video/*"), capture) + } + assertTypes(setOf(MimeType.Video)) { + it.shouldCapture(arrayOf("video/avi"), capture) + } + assertTypes(setOf()) { + it.shouldCapture(arrayOf(".webm"), capture) + } + assertTypes(setOf()) { + it.shouldCapture(arrayOf("video/*", ".mov", ".mp4"), capture) + } + assertTypes(setOf(MimeType.Video)) { + it.shouldCapture(arrayOf("video/webm", "video/*"), capture) + } + } + + @Test + fun `shouldCapture audio types`() { + assertTypes(setOf(MimeType.Audio)) { + it.shouldCapture(arrayOf("audio/*"), capture) + } + assertTypes(setOf(MimeType.Audio)) { + it.shouldCapture(arrayOf("audio/wav"), capture) + } + assertTypes(setOf()) { + it.shouldCapture(arrayOf(".mp3"), capture) + } + assertTypes(setOf()) { + it.shouldCapture(arrayOf(".ogg", "audio/wav", "audio/*"), capture) + } + assertTypes(setOf(MimeType.Audio)) { + it.shouldCapture(arrayOf("audio/wav", "audio/ogg"), capture) + } + } + + @Test + fun `shouldCapture document types`() { + assertTypes(setOf()) { + it.shouldCapture(arrayOf("application/json"), capture) + } + assertTypes(setOf()) { + it.shouldCapture(arrayOf(".doc"), capture) + } + assertTypes(setOf()) { + it.shouldCapture(arrayOf(".txt", "text/html"), capture) + } + assertTypes(setOf()) { + it.shouldCapture(arrayOf("text/plain", "text/html"), capture) + } + } + + @Test + fun `Image buildIntent`() { + assertNull(MimeType.Image().buildIntent(context, request)) + + val uri = Uri.parse("context://abcd") + val image = MimeType.Image { _, _, _ -> uri } + + @Suppress("DEPRECATION") + `when`( + packageManager + .resolveContentProvider(eq("org.mozilla.browser.fileprovider"), anyInt()), + ) + .thenReturn(mock(ProviderInfo::class.java)) + mockResolveActivity() + + image.buildIntent(context, request)?.run { + assertEquals(action, ACTION_IMAGE_CAPTURE) + assertEquals(1, extras?.size()) + + @Suppress("DEPRECATION") + val photoUri = extras!!.get(EXTRA_OUTPUT) as Uri + assertEquals(uri, photoUri) + } + + val anyCaptureRequest = request.copy(captureMode = PromptRequest.File.FacingMode.ANY) + image.buildIntent(context, anyCaptureRequest)?.run { + assertEquals(action, ACTION_IMAGE_CAPTURE) + assertEquals(1, extras?.size()) + } + + val frontCaptureRequest = request.copy(captureMode = PromptRequest.File.FacingMode.FRONT_CAMERA) + image.buildIntent(context, frontCaptureRequest)?.run { + assertEquals(action, ACTION_IMAGE_CAPTURE) + assertEquals(1, extras!!.getInt(MimeType.CAMERA_FACING)) + assertEquals(1, extras!!.getInt(MimeType.LENS_FACING_FRONT)) + assertEquals(true, extras!!.getBoolean(MimeType.USE_FRONT_CAMERA)) + } + + val backCaptureRequest = request.copy(captureMode = PromptRequest.File.FacingMode.BACK_CAMERA) + image.buildIntent(context, backCaptureRequest)?.run { + assertEquals(action, ACTION_IMAGE_CAPTURE) + assertEquals(0, extras!!.getInt(MimeType.CAMERA_FACING)) + assertEquals(1, extras!!.getInt(MimeType.LENS_FACING_BACK)) + assertEquals(true, extras!!.getBoolean(MimeType.USE_BACK_CAMERA)) + } + } + + @Test + fun `Video buildIntent`() { + assertNull(MimeType.Video.buildIntent(context, request)) + + mockResolveActivity() + MimeType.Video.buildIntent(context, request)?.run { + assertEquals(action, ACTION_VIDEO_CAPTURE) + assertNull(extras) + } + + val anyCaptureRequest = request.copy(captureMode = PromptRequest.File.FacingMode.ANY) + MimeType.Video.buildIntent(context, anyCaptureRequest)?.run { + assertEquals(action, ACTION_VIDEO_CAPTURE) + assertNull(extras) + } + + val frontCaptureRequest = request.copy(captureMode = PromptRequest.File.FacingMode.FRONT_CAMERA) + MimeType.Video.buildIntent(context, frontCaptureRequest)?.run { + assertEquals(action, ACTION_VIDEO_CAPTURE) + assertEquals(1, extras!!.getInt(MimeType.CAMERA_FACING)) + assertEquals(1, extras!!.getInt(MimeType.LENS_FACING_FRONT)) + assertEquals(true, extras!!.getBoolean(MimeType.USE_FRONT_CAMERA)) + } + + val backCaptureRequest = request.copy(captureMode = PromptRequest.File.FacingMode.BACK_CAMERA) + MimeType.Video.buildIntent(context, backCaptureRequest)?.run { + assertEquals(action, ACTION_VIDEO_CAPTURE) + assertEquals(0, extras!!.getInt(MimeType.CAMERA_FACING)) + assertEquals(1, extras!!.getInt(MimeType.LENS_FACING_BACK)) + assertEquals(true, extras!!.getBoolean(MimeType.USE_BACK_CAMERA)) + } + } + + @Test + fun `Audio buildIntent`() { + assertNull(MimeType.Audio.buildIntent(context, request)) + + mockResolveActivity() + MimeType.Audio.buildIntent(context, request)?.run { + assertEquals(action, RECORD_SOUND_ACTION) + } + } + + @Test + fun `Wildcard buildIntent`() { + // allowMultipleFiles false and empty mimeTypes will create an intent + // without EXTRA_ALLOW_MULTIPLE and EXTRA_MIME_TYPES + with(MimeType.Wildcard.buildIntent(testContext, request)) { + assertEquals(action, ACTION_GET_CONTENT) + assertEquals(type, "*/*") + assertTrue(categories.contains(CATEGORY_OPENABLE)) + + val mimeType = extras!!.getStringArray(EXTRA_MIME_TYPES) + assertNull(mimeType) + + val allowMultipleFiles = extras!!.getBoolean(EXTRA_ALLOW_MULTIPLE) + assertFalse(allowMultipleFiles) + } + + // allowMultipleFiles true and not empty mimeTypes will create an intent + // with EXTRA_ALLOW_MULTIPLE and EXTRA_MIME_TYPES + val multiJpegRequest = request.copy( + mimeTypes = arrayOf("image/jpeg"), + isMultipleFilesSelection = true, + ) + with(MimeType.Wildcard.buildIntent(testContext, multiJpegRequest)) { + assertEquals(action, ACTION_GET_CONTENT) + assertEquals(type, "*/*") + assertTrue(categories.contains(CATEGORY_OPENABLE)) + + val mimeTypes = extras!!.getStringArray(EXTRA_MIME_TYPES) as Array<*> + assertEquals(mimeTypes.first(), "image/jpeg") + + val allowMultipleFiles = extras!!.getBoolean(EXTRA_ALLOW_MULTIPLE) + assertTrue(allowMultipleFiles) + } + } + + @Test + fun `Wildcard buildIntent with file extensions`() { + shadowOf(MimeTypeMap.getSingleton()).apply { + addExtensionMimeTypeMapping(".gif", "image/gif") + addExtensionMimeTypeMapping( + "docx", + "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + ) + } + + val extensionsRequest = request.copy(mimeTypes = arrayOf(".gif", "image/jpeg", "docx", ".fun")) + + with(MimeType.Wildcard.buildIntent(testContext, extensionsRequest)) { + assertEquals(action, ACTION_GET_CONTENT) + + val mimeTypes = extras!!.getStringArray(EXTRA_MIME_TYPES) as Array<*> + assertEquals(mimeTypes[0], "image/gif") + assertEquals(mimeTypes[1], "image/jpeg") + assertEquals(mimeTypes[2], "application/vnd.openxmlformats-officedocument.wordprocessingml.document") + assertEquals(mimeTypes[3], "*/*") + } + } + + private fun mockResolveActivity() { + val info = ResolveInfo() + info.activityInfo = ActivityInfo() + info.activityInfo.applicationInfo = ApplicationInfo() + info.activityInfo.applicationInfo.packageName = "com.example.app" + info.activityInfo.name = "SomeActivity" + @Suppress("DEPRECATION") + `when`(packageManager.resolveActivity(notNull(), eq(MATCH_DEFAULT_ONLY))).thenReturn(info) + } + + private fun assertTypes(valid: Set<MimeType>, func: (MimeType) -> Boolean) { + assertEquals(valid, MimeType.values().filter(func).toSet()) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/login/BasicLoginAdapterTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/login/BasicLoginAdapterTest.kt new file mode 100644 index 0000000000..6050d731ab --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/login/BasicLoginAdapterTest.kt @@ -0,0 +1,64 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.login + +import android.widget.FrameLayout +import android.widget.TextView +import androidx.test.ext.junit.runners.AndroidJUnit4 +import kotlinx.coroutines.ExperimentalCoroutinesApi +import mozilla.components.concept.storage.Login +import mozilla.components.feature.prompts.R +import mozilla.components.support.test.robolectric.testContext +import org.junit.Assert +import org.junit.Test +import org.junit.runner.RunWith + +@ExperimentalCoroutinesApi +@RunWith(AndroidJUnit4::class) +class BasicLoginAdapterTest { + + val login = + Login(guid = "A", origin = "https://www.mozilla.org", username = "username", password = "password") + val login2 = + Login(guid = "B", origin = "https://www.mozilla.org", username = "username2", password = "password") + + @Test + fun `getItemCount should return the number of logins`() { + var onLoginSelected: (Login) -> Unit = { } + + val adapter = BasicLoginAdapter(onLoginSelected) + + Assert.assertEquals(0, adapter.itemCount) + + adapter.submitList( + listOf(login, login2), + ) + Assert.assertEquals(2, adapter.itemCount) + } + + @Test + fun `creates and binds login viewholder`() { + var confirmedLogin: Login? = null + var onLoginSelected: (Login) -> Unit = { confirmedLogin = it } + + val adapter = BasicLoginAdapter(onLoginSelected) + + adapter.submitList(listOf(login, login2)) + + val holder = adapter.createViewHolder(FrameLayout(testContext), 0) + adapter.bindViewHolder(holder, 0) + + Assert.assertEquals(login, holder.login) + val userName = holder.itemView.findViewById<TextView>(R.id.username) + Assert.assertEquals("username", userName.text) + val password = holder.itemView.findViewById<TextView>(R.id.password) + Assert.assertEquals("password".length, password.text.length) + Assert.assertTrue(holder.itemView.isClickable) + + holder.itemView.performClick() + + Assert.assertEquals(confirmedLogin, login) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/login/LoginPickerTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/login/LoginPickerTest.kt new file mode 100644 index 0000000000..b8dae6b473 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/login/LoginPickerTest.kt @@ -0,0 +1,142 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.login + +import mozilla.components.browser.state.action.ContentAction +import mozilla.components.browser.state.state.BrowserState +import mozilla.components.browser.state.state.ContentState +import mozilla.components.browser.state.state.CustomTabSessionState +import mozilla.components.browser.state.state.TabSessionState +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.concept.storage.Login +import mozilla.components.support.test.any +import mozilla.components.support.test.mock +import mozilla.components.support.test.whenever +import org.junit.Assert.assertEquals +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.mockito.Mockito.never +import org.mockito.Mockito.verify + +class LoginPickerTest { + val login = + Login(guid = "A", origin = "https://www.mozilla.org", username = "username", password = "password") + val login2 = + Login(guid = "B", origin = "https://www.mozilla.org", username = "username2", password = "password") + + var onDismissWasCalled = false + var confirmedLogin: Login? = null + private val request = PromptRequest.SelectLoginPrompt( + logins = listOf(login, login2), + generatedPassword = null, + onConfirm = { confirmedLogin = it }, + onDismiss = { onDismissWasCalled = true }, + ) + + var manageLoginsCalled = false + private lateinit var store: BrowserStore + private lateinit var state: BrowserState + private lateinit var loginPicker: LoginPicker + private lateinit var loginSelectBar: LoginSelectBar + private var onManageLogins: () -> Unit = { manageLoginsCalled = true } + + @Before + fun setup() { + state = mock() + store = mock() + loginSelectBar = mock() + whenever(store.state).thenReturn(state) + loginPicker = LoginPicker(store, loginSelectBar, onManageLogins) + } + + @Test + fun `LoginPicker shows the login select bar on a custom tab`() { + val customTabContent: ContentState = mock() + whenever(customTabContent.promptRequests).thenReturn(listOf(request)) + val customTab = CustomTabSessionState(id = "custom-tab", content = customTabContent, trackingProtection = mock(), config = mock()) + + whenever(state.customTabs).thenReturn(listOf(customTab)) + loginPicker = LoginPicker(store, loginSelectBar, onManageLogins, customTab.id) + loginPicker.handleSelectLoginRequest(request) + verify(loginSelectBar).showPrompt(request.logins) + } + + @Test + fun `LoginPicker shows the login select bar on a selected tab`() { + prepareSelectedSession(request) + loginPicker = LoginPicker(store, loginSelectBar, onManageLogins) + loginPicker.handleSelectLoginRequest(request) + verify(loginSelectBar).showPrompt(request.logins) + } + + @Test + fun `LoginPicker selects and login through the request and hides view`() { + prepareSelectedSession(request) + loginPicker = LoginPicker(store, loginSelectBar, onManageLogins) + + loginPicker.handleSelectLoginRequest(request) + + loginPicker.onOptionSelect(login) + + assertEquals(confirmedLogin, login) + verify(loginSelectBar).hidePrompt() + } + + @Test + fun `LoginPicker invokes manage logins and hides view`() { + manageLoginsCalled = false + onDismissWasCalled = false + + prepareSelectedSession(request) + loginPicker = LoginPicker(store, loginSelectBar, onManageLogins) + + loginPicker.handleSelectLoginRequest(request) + + loginPicker.onManageOptions() + + assertTrue(manageLoginsCalled) + assertTrue(onDismissWasCalled) + verify(loginSelectBar).hidePrompt() + } + + @Test + fun `WHEN dismissCurrentLoginSelect is called without a parameter THEN the active login prompt is dismissed`() { + val selectedSession = prepareSelectedSession(request) + loginPicker = LoginPicker(store, loginSelectBar, onManageLogins, selectedSession.id) + + verify(store, never()).dispatch(any()) + loginPicker.dismissCurrentLoginSelect() + + assertTrue(onDismissWasCalled) + verify(store).dispatch(ContentAction.ConsumePromptRequestAction(selectedSession.id, request)) + verify(loginSelectBar).hidePrompt() + } + + @Test + fun `WHEN dismissCurrentLoginSelect is called with the active login prompt passed as parameter THEN the prompt is dismissed`() { + val selectedSession = prepareSelectedSession(request) + loginPicker = LoginPicker(store, loginSelectBar, onManageLogins, selectedSession.id) + + verify(store, never()).dispatch(any()) + loginPicker.dismissCurrentLoginSelect(request) + + assertTrue(onDismissWasCalled) + verify(store).dispatch(ContentAction.ConsumePromptRequestAction(selectedSession.id, request)) + verify(loginSelectBar).hidePrompt() + } + + private fun prepareSelectedSession(request: PromptRequest? = null): TabSessionState { + val promptRequest: PromptRequest = request ?: mock() + val content: ContentState = mock() + whenever(content.promptRequests).thenReturn(listOf(promptRequest)) + + val selected = TabSessionState("browser-tab", content, mock(), mock()) + whenever(state.selectedTabId).thenReturn(selected.id) + whenever(state.tabs).thenReturn(listOf(selected)) + return selected + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/login/LoginSelectBarTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/login/LoginSelectBarTest.kt new file mode 100644 index 0000000000..1a5855b4a2 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/login/LoginSelectBarTest.kt @@ -0,0 +1,104 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.login + +import android.view.View +import android.widget.LinearLayout +import androidx.appcompat.widget.AppCompatTextView +import androidx.core.view.isVisible +import androidx.recyclerview.widget.RecyclerView +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.concept.storage.Login +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.concept.SelectablePromptView +import mozilla.components.support.test.ext.appCompatContext +import mozilla.components.support.test.mock +import mozilla.components.support.test.robolectric.testContext +import org.junit.Assert.assertFalse +import org.junit.Assert.assertNull +import org.junit.Assert.assertTrue +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mockito.spy +import org.mockito.Mockito.verify + +@RunWith(AndroidJUnit4::class) +class LoginSelectBarTest { + val login = + Login(guid = "A", origin = "https://www.mozilla.org", username = "username", password = "password") + val login2 = + Login(guid = "B", origin = "https://www.mozilla.org", username = "username2", password = "password") + + @Test + fun `showPicker updates visibility`() { + val bar = LoginSelectBar(appCompatContext) + + bar.showPrompt(listOf(login, login2)) + + assertTrue(bar.isVisible) + } + + @Test + fun `hidePicker updates visibility`() { + val bar = spy(LoginSelectBar(appCompatContext)) + + bar.hidePrompt() + + verify(bar).visibility = View.GONE + } + + @Test + fun `listener is invoked when clicking manage logins option`() { + val bar = LoginSelectBar(appCompatContext) + val listener: SelectablePromptView.Listener<Login> = mock() + + assertNull(bar.listener) + + bar.listener = listener + bar.showPrompt(listOf(login, login2)) + + bar.findViewById<AppCompatTextView>(R.id.manage_logins).performClick() + + verify(listener).onManageOptions() + } + + @Test + fun `listener is invoked when clicking a login option`() { + val bar = LoginSelectBar(appCompatContext) + val listener: SelectablePromptView.Listener<Login> = mock() + + assertNull(bar.listener) + + bar.listener = listener + bar.showPrompt(listOf(login, login2)) + + val adapter = bar.findViewById<RecyclerView>(R.id.logins_list).adapter as BasicLoginAdapter + val holder = adapter.onCreateViewHolder(LinearLayout(testContext), 0) + adapter.bindViewHolder(holder, 0) + + holder.itemView.performClick() + + verify(listener).onOptionSelect(login) + } + + @Test + fun `view is expanded when clicking header`() { + val bar = LoginSelectBar(appCompatContext) + + bar.showPrompt(listOf(login, login2)) + + bar.findViewById<AppCompatTextView>(R.id.saved_logins_header).performClick() + + // Expanded + assertTrue(bar.findViewById<RecyclerView>(R.id.logins_list).isVisible) + assertTrue(bar.findViewById<AppCompatTextView>(R.id.manage_logins).isVisible) + + bar.findViewById<AppCompatTextView>(R.id.saved_logins_header).performClick() + + // Hidden + assertFalse(bar.findViewById<RecyclerView>(R.id.logins_list).isVisible) + assertFalse(bar.findViewById<AppCompatTextView>(R.id.manage_logins).isVisible) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/login/StrongPasswordPromptViewListenerTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/login/StrongPasswordPromptViewListenerTest.kt new file mode 100644 index 0000000000..454b362e5d --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/login/StrongPasswordPromptViewListenerTest.kt @@ -0,0 +1,143 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +package mozilla.components.feature.prompts.login + +import mozilla.components.browser.state.action.ContentAction +import mozilla.components.browser.state.state.BrowserState +import mozilla.components.browser.state.state.ContentState +import mozilla.components.browser.state.state.CustomTabSessionState +import mozilla.components.browser.state.state.TabSessionState +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.prompt.PromptRequest +import mozilla.components.concept.storage.Login +import mozilla.components.support.test.any +import mozilla.components.support.test.mock +import mozilla.components.support.test.whenever +import org.junit.Assert +import org.junit.Before +import org.junit.Test +import org.mockito.Mockito + +class StrongPasswordPromptViewListenerTest { + private val suggestedPassword = "generatedPassword123#" + + private val login = + Login( + guid = "A", + origin = "https://www.mozilla.org", + username = "username", + password = "password", + ) + private val login2 = + Login( + guid = "B", + origin = "https://www.mozilla.org", + username = "username2", + password = "password", + ) + + private var onDismissWasCalled = false + private var confirmedLogin: Login? = null + + private val request = PromptRequest.SelectLoginPrompt( + logins = listOf(login, login2), + generatedPassword = suggestedPassword, + onConfirm = { confirmedLogin = it }, + onDismiss = { onDismissWasCalled = true }, + ) + + private lateinit var store: BrowserStore + private lateinit var state: BrowserState + + private lateinit var suggestStrongPasswordPromptViewListener: StrongPasswordPromptViewListener + private lateinit var suggestStrongPasswordBar: SuggestStrongPasswordBar + + private val onSaveLoginWithGeneratedPass: (String, String) -> Unit = mock() + private val url = "https://www.mozilla.org" + + @Before + fun setup() { + state = mock() + store = mock() + suggestStrongPasswordBar = mock() + whenever(store.state).thenReturn(state) + suggestStrongPasswordPromptViewListener = StrongPasswordPromptViewListener(store, suggestStrongPasswordBar) + } + + @Test + fun `StrongPasswordGenerator shows the suggest strong password bar on a custom tab`() { + val customTabContent: ContentState = mock() + whenever(customTabContent.promptRequests).thenReturn(listOf(request)) + val customTab = CustomTabSessionState( + id = "custom-tab", + content = customTabContent, + trackingProtection = mock(), + config = mock(), + ) + + whenever(state.customTabs).thenReturn(listOf(customTab)) + + suggestStrongPasswordPromptViewListener = StrongPasswordPromptViewListener(store, suggestStrongPasswordBar) + suggestStrongPasswordPromptViewListener.handleSuggestStrongPasswordRequest(request, url, onSaveLoginWithGeneratedPass) + Mockito.verify(suggestStrongPasswordBar).showPrompt(suggestedPassword, url, onSaveLoginWithGeneratedPass) + } + + @Test + fun `StrongPasswordGenerator shows the suggest strong password bar on a selected tab`() { + prepareSelectedSession(request) + suggestStrongPasswordPromptViewListener = StrongPasswordPromptViewListener(store, suggestStrongPasswordBar) + suggestStrongPasswordPromptViewListener.handleSuggestStrongPasswordRequest(request, url, onSaveLoginWithGeneratedPass) + Mockito.verify(suggestStrongPasswordBar).showPrompt(suggestedPassword, url, onSaveLoginWithGeneratedPass) + } + + @Test + fun `StrongPasswordGenerator invokes use the suggested password and hides view`() { + prepareSelectedSession(request) + suggestStrongPasswordPromptViewListener = StrongPasswordPromptViewListener(store, suggestStrongPasswordBar) + suggestStrongPasswordPromptViewListener.handleSuggestStrongPasswordRequest(request, "") { _, _ -> } + suggestStrongPasswordPromptViewListener.onUseGeneratedPassword(suggestedPassword, "") { _, _ -> } + Mockito.verify(suggestStrongPasswordBar).hidePrompt() + } + + @Test + fun `WHEN dismissCurrentSuggestStrongPassword is called without a parameter THEN the active login prompt is dismissed`() { + val selectedSession = prepareSelectedSession(request) + suggestStrongPasswordPromptViewListener = + StrongPasswordPromptViewListener(store, suggestStrongPasswordBar, selectedSession.id) + + Mockito.verify(store, Mockito.never()).dispatch(any()) + suggestStrongPasswordPromptViewListener.dismissCurrentSuggestStrongPassword() + + Assert.assertTrue(onDismissWasCalled) + Mockito.verify(store) + .dispatch(ContentAction.ConsumePromptRequestAction(selectedSession.id, request)) + Mockito.verify(suggestStrongPasswordBar).hidePrompt() + } + + @Test + fun `WHEN dismissCurrentSuggestStrongPassword is called with the active login prompt passed as parameter THEN the prompt is dismissed`() { + val selectedSession = prepareSelectedSession(request) + suggestStrongPasswordPromptViewListener = + StrongPasswordPromptViewListener(store, suggestStrongPasswordBar, selectedSession.id) + + Mockito.verify(store, Mockito.never()).dispatch(any()) + suggestStrongPasswordPromptViewListener.dismissCurrentSuggestStrongPassword(request) + + Assert.assertTrue(onDismissWasCalled) + Mockito.verify(store) + .dispatch(ContentAction.ConsumePromptRequestAction(selectedSession.id, request)) + Mockito.verify(suggestStrongPasswordBar).hidePrompt() + } + + private fun prepareSelectedSession(request: PromptRequest? = null): TabSessionState { + val promptRequest: PromptRequest = request ?: mock() + val content: ContentState = mock() + whenever(content.promptRequests).thenReturn(listOf(promptRequest)) + + val selected = TabSessionState("browser-tab", content, mock(), mock()) + whenever(state.selectedTabId).thenReturn(selected.id) + whenever(state.tabs).thenReturn(listOf(selected)) + return selected + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/login/SuggestStrongPasswordBarTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/login/SuggestStrongPasswordBarTest.kt new file mode 100644 index 0000000000..1c1278ebc1 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/login/SuggestStrongPasswordBarTest.kt @@ -0,0 +1,61 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.login + +import android.view.View +import androidx.appcompat.widget.AppCompatTextView +import androidx.core.view.isVisible +import androidx.recyclerview.widget.RecyclerView +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.feature.prompts.R +import mozilla.components.feature.prompts.concept.PasswordPromptView +import mozilla.components.support.test.ext.appCompatContext +import mozilla.components.support.test.mock +import org.junit.Assert +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mockito + +@RunWith(AndroidJUnit4::class) +class SuggestStrongPasswordBarTest { + + @Test + fun `hide prompt updates visibility`() { + val bar = Mockito.spy(SuggestStrongPasswordBar(appCompatContext)) + bar.hidePrompt() + Mockito.verify(bar).visibility = View.GONE + } + + @Test + fun `listener is invoked when clicking use strong password option`() { + val bar = SuggestStrongPasswordBar(appCompatContext) + val listener: PasswordPromptView.Listener = mock() + val suggestedPassword = "generatedPassword123#" + val url = "https://wwww.abc.com" + val onSaveLoginWithGeneratedPass: (String, String) -> Unit = mock() + Assert.assertNull(bar.listener) + bar.listener = listener + bar.showPrompt(suggestedPassword, url, onSaveLoginWithGeneratedPass) + bar.findViewById<AppCompatTextView>(R.id.use_strong_password).performClick() + Mockito.verify(listener) + .onUseGeneratedPassword(suggestedPassword, url, onSaveLoginWithGeneratedPass) + } + + @Test + fun `view is expanded when clicking header`() { + val bar = SuggestStrongPasswordBar(appCompatContext) + val suggestedPassword = "generatedPassword123#" + + bar.showPrompt(suggestedPassword, "") { _, _ -> } + + bar.findViewById<AppCompatTextView>(R.id.suggest_strong_password_header).performClick() + // Expanded + Assert.assertTrue(bar.findViewById<RecyclerView>(R.id.use_strong_password).isVisible) + + bar.findViewById<AppCompatTextView>(R.id.suggest_strong_password_header).performClick() + // Hidden + Assert.assertFalse(bar.findViewById<RecyclerView>(R.id.use_strong_password).isVisible) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/share/DefaultShareDelegateTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/share/DefaultShareDelegateTest.kt new file mode 100644 index 0000000000..fb21601947 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/share/DefaultShareDelegateTest.kt @@ -0,0 +1,70 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.share + +import android.content.ActivityNotFoundException +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.concept.engine.prompt.ShareData +import mozilla.components.support.test.any +import mozilla.components.support.test.robolectric.testContext +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mockito.doNothing +import org.mockito.Mockito.doThrow +import org.mockito.Mockito.spy +import org.mockito.Mockito.verify + +@RunWith(AndroidJUnit4::class) +class DefaultShareDelegateTest { + + private lateinit var shareDelegate: ShareDelegate + + @Before + fun setup() { + shareDelegate = DefaultShareDelegate() + } + + @Test + fun `calls onSuccess after starting share chooser`() { + val context = spy(testContext) + doNothing().`when`(context).startActivity(any()) + + var dismissed = false + var succeeded = false + + shareDelegate.showShareSheet( + context, + ShareData(title = "Title", text = "Text", url = null), + onDismiss = { dismissed = true }, + onSuccess = { succeeded = true }, + ) + + verify(context).startActivity(any()) + assertFalse(dismissed) + assertTrue(succeeded) + } + + @Test + fun `calls onDismiss after share chooser throws error`() { + val context = spy(testContext) + doThrow(ActivityNotFoundException()).`when`(context).startActivity(any()) + + var dismissed = false + var succeeded = false + + shareDelegate.showShareSheet( + context, + ShareData(title = null, text = "Text", url = "https://example.com"), + onDismiss = { dismissed = true }, + onSuccess = { succeeded = true }, + ) + + assertTrue(dismissed) + assertFalse(succeeded) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/widget/MonthAndYearPickerTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/widget/MonthAndYearPickerTest.kt new file mode 100644 index 0000000000..12dd30c808 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/widget/MonthAndYearPickerTest.kt @@ -0,0 +1,196 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.widget + +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.feature.prompts.ext.month +import mozilla.components.feature.prompts.ext.now +import mozilla.components.feature.prompts.ext.toCalendar +import mozilla.components.feature.prompts.ext.year +import mozilla.components.feature.prompts.widget.MonthAndYearPicker.Companion.DEFAULT_MAX_YEAR +import mozilla.components.feature.prompts.widget.MonthAndYearPicker.Companion.DEFAULT_MIN_YEAR +import mozilla.components.support.ktx.kotlin.toDate +import mozilla.components.support.test.robolectric.testContext +import org.junit.Assert.assertEquals +import org.junit.Test +import org.junit.runner.RunWith +import java.util.Calendar.DECEMBER +import java.util.Calendar.FEBRUARY +import java.util.Calendar.JANUARY + +@RunWith(AndroidJUnit4::class) +class MonthAndYearPickerTest { + + @Test + fun `WHEN picker widget THEN initial values must be displayed`() { + val initialDate = "2018-06".toDate("yyyy-MM").toCalendar() + val minDate = "2018-04".toDate("yyyy-MM").toCalendar() + val maxDate = "2018-09".toDate("yyyy-MM").toCalendar() + + val monthAndYearPicker = MonthAndYearPicker( + context = testContext, + selectedDate = initialDate, + minDate = minDate, + maxDate = maxDate, + ) + + with(monthAndYearPicker.monthView) { + assertEquals(initialDate.month, value) + assertEquals(minDate.month, minValue) + assertEquals(maxDate.month, maxValue) + } + + with(monthAndYearPicker.yearView) { + assertEquals(initialDate.year, value) + assertEquals(minDate.year, minValue) + assertEquals(maxDate.year, maxValue) + } + } + + @Test + fun `WHEN selectedDate is a year less than maxDate THEN month picker MUST allow selecting until the last month of the year`() { + val initialDate = "2018-06".toDate("yyyy-MM").toCalendar() + val minDate = "2018-04".toDate("yyyy-MM").toCalendar() + val maxDate = "2019-09".toDate("yyyy-MM").toCalendar() + + val monthAndYearPicker = MonthAndYearPicker( + context = testContext, + selectedDate = initialDate, + minDate = minDate, + maxDate = maxDate, + ) + + with(monthAndYearPicker.monthView) { + assertEquals(initialDate.month, value) + assertEquals(minDate.month, minValue) + assertEquals(DECEMBER, maxValue) + } + + with(monthAndYearPicker.yearView) { + assertEquals(initialDate.year, value) + assertEquals(minDate.year, minValue) + assertEquals(maxDate.year, maxValue) + } + } + + @Test + fun `WHEN changing month picker from DEC to JAN THEN year picker MUST be increased by 1`() { + val initialDate = "2018-06".toDate("yyyy-MM") + val initialCal = "2018-06".toDate("yyyy-MM").toCalendar() + + val monthAndYearPicker = MonthAndYearPicker( + context = testContext, + selectedDate = initialDate.toCalendar(), + ) + + val yearView = monthAndYearPicker.yearView + assertEquals(initialCal.year, yearView.value) + + monthAndYearPicker.onValueChange(monthAndYearPicker.monthView, DECEMBER, JANUARY) + + assertEquals(initialCal.year + 1, yearView.value) + } + + @Test + fun `WHEN changing month picker from JAN to DEC THEN year picker MUST be decreased by 1`() { + val initialDate = "2018-06".toDate("yyyy-MM") + val initialCal = "2018-06".toDate("yyyy-MM").toCalendar() + + val monthAndYearPicker = MonthAndYearPicker( + context = testContext, + selectedDate = initialDate.toCalendar(), + ) + + val yearView = monthAndYearPicker.yearView + assertEquals(initialCal.year, yearView.value) + + monthAndYearPicker.onValueChange(monthAndYearPicker.monthView, JANUARY, DECEMBER) + + assertEquals(initialCal.year - 1, yearView.value) + } + + @Test + fun `WHEN selecting a month or a year THEN dateSetListener MUST be notified`() { + val initialDate = "2018-06".toDate("yyyy-MM") + val initialCal = "2018-06".toDate("yyyy-MM").toCalendar() + + val monthAndYearPicker = MonthAndYearPicker( + context = testContext, + selectedDate = initialDate.toCalendar(), + ) + + var newMonth = 0 + var newYear = 0 + + monthAndYearPicker.dateSetListener = object : MonthAndYearPicker.OnDateSetListener { + override fun onDateSet(picker: MonthAndYearPicker, month: Int, year: Int) { + newMonth = month + newYear = year + } + } + + assertEquals(0, newMonth) + assertEquals(0, newYear) + + val yearView = monthAndYearPicker.yearView + val monthView = monthAndYearPicker.monthView + + monthAndYearPicker.onValueChange(yearView, initialCal.year - 1, initialCal.year + 1) + + assertEquals(initialCal.year + 1, newYear) + + monthAndYearPicker.onValueChange(monthView, JANUARY, FEBRUARY) + + assertEquals(FEBRUARY + 1, newMonth) // Month is zero based + } + + @Test + fun `WHEN max or min date are in a illogical range THEN picker must allow to select the default values for max and min`() { + val initialDate = "2018-06".toDate("yyyy-MM").toCalendar() + val minDate = "2019-04".toDate("yyyy-MM").toCalendar() + val maxDate = "2018-09".toDate("yyyy-MM").toCalendar() + + val monthAndYearPicker = MonthAndYearPicker( + context = testContext, + selectedDate = initialDate, + minDate = minDate, + maxDate = maxDate, + ) + + with(monthAndYearPicker.monthView) { + assertEquals(JANUARY, minValue) + assertEquals(DECEMBER, maxValue) + } + + with(monthAndYearPicker.yearView) { + assertEquals(DEFAULT_MIN_YEAR, minValue) + assertEquals(DEFAULT_MAX_YEAR, maxValue) + } + } + + @Test + fun `WHEN selecting a date that is before or after min or max date THEN selectDate will be set to min date`() { + val minDate = "2018-04".toDate("yyyy-MM").toCalendar() + val maxDate = "2018-09".toDate("yyyy-MM").toCalendar() + val initialDate = now() + + initialDate.year = minDate.year - 1 + + val monthAndYearPicker = MonthAndYearPicker( + context = testContext, + selectedDate = initialDate, + minDate = minDate, + maxDate = maxDate, + ) + + with(monthAndYearPicker.monthView) { + assertEquals(minDate.month, value) + } + + with(monthAndYearPicker.yearView) { + assertEquals(minDate.year, value) + } + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/widget/TimePrecisionPickerTest.kt b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/widget/TimePrecisionPickerTest.kt new file mode 100644 index 0000000000..43e462b679 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/java/mozilla/components/feature/prompts/widget/TimePrecisionPickerTest.kt @@ -0,0 +1,106 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package mozilla.components.feature.prompts.widget + +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.feature.prompts.ext.hour +import mozilla.components.feature.prompts.ext.millisecond +import mozilla.components.feature.prompts.ext.minute +import mozilla.components.feature.prompts.ext.now +import mozilla.components.feature.prompts.ext.second +import mozilla.components.feature.prompts.ext.toCalendar +import mozilla.components.support.ktx.kotlin.toDate +import mozilla.components.support.test.robolectric.testContext +import org.junit.Assert.assertEquals +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +class TimePrecisionPickerTest { + private val initialTime = "12:00".toDate("HH:mm").toCalendar() + private var minTime = "10:30".toDate("HH:mm").toCalendar() + private var maxTime = "18:45".toDate("HH:mm").toCalendar() + private val stepValue = 0.1f + + @Test + fun `WHEN picker widget THEN initial values must be displayed`() { + val timePicker = TimePrecisionPicker( + context = testContext, + selectedTime = initialTime, + stepValue = stepValue, + ) + + assertEquals(initialTime.hour, timePicker.hourView.value) + assertEquals(initialTime.minute, timePicker.minuteView.value) + } + + @Test + fun `WHEN selectedTime is outside the bounds of min and max time THEN the displayed time is minTime`() { + minTime = "14:30".toDate("HH:mm").toCalendar() + val timePicker = TimePrecisionPicker( + context = testContext, + selectedTime = initialTime, + minTime = minTime, + maxTime = maxTime, + stepValue = stepValue, + ) + + assertEquals(minTime.hour, timePicker.hourView.value) + assertEquals(minTime.minute, timePicker.minuteView.value) + } + + @Test + fun `WHEN minTime and maxTime are in illogical order AND selectedTime is outside limits THEN the min and max limits are ignored when initializing the time`() { + minTime = "15:30".toDate("HH:mm").toCalendar() + maxTime = "09:30".toDate("HH:mm").toCalendar() + val timePicker = TimePrecisionPicker( + context = testContext, + selectedTime = initialTime, + minTime = minTime, + maxTime = maxTime, + stepValue = stepValue, + ) + + assertEquals(initialTime.hour, timePicker.hourView.value) + assertEquals(initialTime.minute, timePicker.minuteView.value) + } + + @Test + fun `WHEN changing the selected time THEN timeSetListener MUST be notified`() { + val updatedTime = now() + + val timePicker = TimePrecisionPicker( + context = testContext, + selectedTime = initialTime, + minTime = minTime, + maxTime = maxTime, + stepValue = stepValue, + timeSetListener = object : TimePrecisionPicker.OnTimeSetListener { + override fun onTimeSet( + picker: TimePrecisionPicker, + hour: Int, + minute: Int, + second: Int, + millisecond: Int, + ) { + updatedTime.hour = hour + updatedTime.minute = minute + updatedTime.second = second + updatedTime.millisecond = millisecond + } + }, + ) + + timePicker.onValueChange(timePicker.hourView, initialTime.hour, 13) + timePicker.onValueChange(timePicker.minuteView, initialTime.minute, 20) + timePicker.onValueChange(timePicker.secondView, initialTime.second, 30) + timePicker.onValueChange(timePicker.millisecondView, initialTime.millisecond, 100) + + assertEquals(13, updatedTime.hour) + assertEquals(20, updatedTime.minute) + assertEquals(30, updatedTime.second) + assertEquals(100, updatedTime.millisecond) + } +} diff --git a/mobile/android/android-components/components/feature/prompts/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker b/mobile/android/android-components/components/feature/prompts/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker new file mode 100644 index 0000000000..cf1c399ea8 --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker @@ -0,0 +1,2 @@ +mock-maker-inline +// This allows mocking final classes (classes are final by default in Kotlin) diff --git a/mobile/android/android-components/components/feature/prompts/src/test/resources/robolectric.properties b/mobile/android/android-components/components/feature/prompts/src/test/resources/robolectric.properties new file mode 100644 index 0000000000..932b01b9eb --- /dev/null +++ b/mobile/android/android-components/components/feature/prompts/src/test/resources/robolectric.properties @@ -0,0 +1 @@ +sdk=28 |