diff --git a/README.md b/README.md index f83172937..19ab254c7 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,26 @@ Firefox Preview (internal code name: "Fenix") is an all-new browser for Android, ** Note: The team is currently experiencing heavy triage and review load, so when triaging issues, we will mainly be looking to identify [S1 (high severity)](https://github.com/mozilla-mobile/fenix/labels/S1) issues. See our triage process [here](https://github.com/mozilla-mobile/fenix/wiki/Triage-Process). Please be patient if you don't hear back from us immediately on your issue! ** +## Getting Involved + +Please read the [Community Participation Guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/) and the [Bugzilla Etiquette guidelines](https://bugzilla.mozilla.org/page.cgi?id=etiquette.html) before filing an issue. This is our professional working environment as much as it is our bug tracker, and we want to keep our workspace clean and healthy. + +* [Guide to Contributing](https://github.com/mozilla-mobile/shared-docs/blob/master/android/CONTRIBUTING.md) (**New contributors start here!**) + +* Browse our [current Issues](https://github.com/mozilla-mobile/fenix/issues), or [file a security issue][sec issue]. + +* Matrix: [#fenix:mozilla.org channel](https://chat.mozilla.org/#/room/#fenix:mozilla.org) (**We're available Monday-Friday, GMT and PST working hours**). Related channels: + * [#mobile-test-eng:mozilla.org channel](https://chat.mozilla.org/#/room/#mobile-test-eng:mozilla.org): for UI test automation + * [#perf-android-frontend:mozilla.org channel](https://chat.mozilla.org/#/room/#perf-android-frontend:mozilla.org): for front-end (JVM) performance of Android apps + * [#android-tips:mozilla.org channel](https://chat.mozilla.org/#/room/#android-tips:mozilla.org): for tips on Android development + +* Check out the [project wiki](https://github.com/mozilla-mobile/fenix/wiki) for more information. + +* Localization happens on [Pontoon](https://pontoon.mozilla.org/projects/android-l10n/). Please get in touch with delphine (at) mozilla (dot) com directly for more information. + +**Beginners!** - Watch out for [Issues with the "Good First Issue" label](https://github.com/mozilla-mobile/fenix/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). These are easy bugs that have been left for first timers to have a go, get involved and make a positive contribution to the project! + + ## I want to open a Pull Request! We encourage you to participate in this open source project. We love Pull Requests, Bug Reports, ideas, (security) code reviews or any other kind of positive contribution. @@ -46,25 +66,6 @@ To make it easier to triage, we have these issue requirements: Please keep in mind that even though a feature you have in mind may seem like a small ask, as a small team, we have to prioritize our planned work and every new feature adds complexity and maintenance and may take up design, research, marketing, product, and engineering time. We appreciate everyone’s passion but we will not be able to incorporate every feature request or even fix every bug. That being said, just because we haven't replied, doesn't mean we don't care about the issue, please be patient with our response times as we're very busy. -## Getting Involved - -Before you attempt to make a contribution please read the [Community Participation Guidelines](https://www.mozilla.org/en-US/about/governance/policies/participation/). - -* [Guide to Contributing](https://github.com/mozilla-mobile/shared-docs/blob/master/android/CONTRIBUTING.md) (**New contributors start here!**) - -* Browse our [current Issues](https://github.com/mozilla-mobile/fenix/issues), or [file a security issue][sec issue]. - -* Matrix: [#fenix:mozilla.org channel](https://chat.mozilla.org/#/room/#fenix:mozilla.org) (**We're available Monday-Friday, GMT and PST working hours**). Related channels: - * [#mobile-test-eng:mozilla.org channel](https://chat.mozilla.org/#/room/#mobile-test-eng:mozilla.org): for UI test automation - * [#perf-android-frontend:mozilla.org channel](https://chat.mozilla.org/#/room/#perf-android-frontend:mozilla.org): for front-end (JVM) performance of Android apps - * [#android-tips:mozilla.org channel](https://chat.mozilla.org/#/room/#android-tips:mozilla.org): for tips on Android development - -* Check out the [project wiki](https://github.com/mozilla-mobile/fenix/wiki) for more information. - -* Localization happens on [Pontoon](https://pontoon.mozilla.org/projects/android-l10n/). Please get in touch with delphine (at) mozilla (dot) com directly for more information. - -**Beginners!** - Watch out for [Issues with the "Good First Issue" label](https://github.com/mozilla-mobile/fenix/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). These are easy bugs that have been left for first timers to have a go, get involved and make a positive contribution to the project! - ## Build Instructions Pre-requisites: diff --git a/app/build.gradle b/app/build.gradle index 7a1c54f9b..ad79842d8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -75,7 +75,7 @@ android { fenixProduction releaseTemplate >> { applicationIdSuffix ".fenix" buildConfigField "boolean", "USE_RELEASE_VERSIONING", "true" - def deepLinkSchemeValue = "fenix" + def deepLinkSchemeValue = "fenix-nightly" buildConfigField "String", "DEEP_LINK_SCHEME", "\"$deepLinkSchemeValue\"" manifestPlaceholders = ["deepLinkScheme": deepLinkSchemeValue] } diff --git a/app/src/androidTest/java/org/mozilla/fenix/AppRequestInterceptor.kt b/app/src/androidTest/java/org/mozilla/fenix/AppRequestInterceptor.kt index 906e84f6b..c16ee4d63 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/AppRequestInterceptor.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/AppRequestInterceptor.kt @@ -20,6 +20,7 @@ class AppRequestInterceptor(private val context: Context) : RequestInterceptor { override fun onLoadRequest( engineSession: EngineSession, uri: String, + lastUri: String?, hasUserGesture: Boolean, isSameDomain: Boolean, isRedirect: Boolean, @@ -27,7 +28,7 @@ class AppRequestInterceptor(private val context: Context) : RequestInterceptor { isSubframeRequest: Boolean ): RequestInterceptor.InterceptionResponse? { return appContext.components.services.accountsAuthFeature.interceptor.onLoadRequest( - engineSession, uri, hasUserGesture, isSameDomain, isRedirect, isDirectNavigation, isSubframeRequest + engineSession, uri, lastUri, hasUserGesture, isSameDomain, isRedirect, isDirectNavigation, isSubframeRequest ) } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt index f06d5b623..a57ec57c7 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt @@ -66,7 +66,6 @@ class SearchTest { } } - @Ignore("Failing, see: https://github.com/mozilla-mobile/fenix/issues/12968") @Test fun shortcutSearchEngineSettingsTest() { homeScreen { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsBasicsTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsBasicsTest.kt index de4ddd79f..ee20a2c55 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsBasicsTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsBasicsTest.kt @@ -60,7 +60,6 @@ class SettingsBasicsTest { } } - @Ignore("Failing, see: https://github.com/mozilla-mobile/fenix/issues/12968") @Test // Walks through settings menu and sub-menus to ensure all items are present fun settingsMenuBasicsItemsTests() { @@ -91,7 +90,6 @@ class SettingsBasicsTest { } } - @Ignore("Failing, see: https://github.com/mozilla-mobile/fenix/issues/12968") @Test fun selectNewDefaultSearchEngine() { // Goes through the settings and changes the default search engine, then verifies it has changed. diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAboutRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAboutRobot.kt index d7d7ce3d6..4e6a9e3ef 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAboutRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAboutRobot.kt @@ -64,6 +64,11 @@ private fun assertFirefoxPreviewPage() { } private fun navigateBackToAboutPage(itemToInteract: () -> Unit) { + browserScreen { + }.openTabDrawer { + closeTab() + } + homeScreen { }.openThreeDotMenu { }.openSettings { diff --git a/app/src/main/java/org/mozilla/fenix/AppRequestInterceptor.kt b/app/src/main/java/org/mozilla/fenix/AppRequestInterceptor.kt index 85057009a..312460f1d 100644 --- a/app/src/main/java/org/mozilla/fenix/AppRequestInterceptor.kt +++ b/app/src/main/java/org/mozilla/fenix/AppRequestInterceptor.kt @@ -19,6 +19,7 @@ class AppRequestInterceptor(private val context: Context) : RequestInterceptor { override fun onLoadRequest( engineSession: EngineSession, uri: String, + lastUri: String?, hasUserGesture: Boolean, isSameDomain: Boolean, isRedirect: Boolean, @@ -27,7 +28,7 @@ class AppRequestInterceptor(private val context: Context) : RequestInterceptor { ): RequestInterceptor.InterceptionResponse? { return context.components.services.appLinksInterceptor .onLoadRequest( - engineSession, uri, hasUserGesture, isSameDomain, isRedirect, isDirectNavigation, isSubframeRequest + engineSession, uri, lastUri, hasUserGesture, isSameDomain, isRedirect, isDirectNavigation, isSubframeRequest ) } diff --git a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt index 9fcc47586..530d77be8 100644 --- a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +++ b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt @@ -30,7 +30,12 @@ object FeatureFlags { val tabTray = Config.channel.isNightlyOrDebug /** - * Enables swipe on toolbar to switch tabs + * Enables gestures on the browser chrome that depend on a [SwipeGestureLayout] */ - val swipeToSwitchTabs = Config.channel.isNightlyOrDebug + val browserChromeGestures = Config.channel.isNightlyOrDebug + + /** + * Enables viewing tab history + */ + val tabHistory = Config.channel.isNightlyOrDebug } diff --git a/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt index 831acd06c..296769258 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt @@ -168,7 +168,13 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session require(arguments != null) customTabSessionId = arguments?.getString(EXTRA_SESSION_ID) - val view = inflater.inflate(R.layout.fragment_browser, container, false) + val view = if (FeatureFlags.browserChromeGestures) { + inflater.inflate(R.layout.browser_gesture_wrapper, container, false).apply { + inflater.inflate(R.layout.fragment_browser, this as SwipeGestureLayout, true) + } + } else { + inflater.inflate(R.layout.fragment_browser, container, false) + } val activity = activity as HomeActivity activity.themeManager.applyStatusBarTheme(activity) @@ -766,8 +772,11 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session } override fun onBackLongPressed(): Boolean { - findNavController().navigate(R.id.action_global_tabHistoryDialogFragment) - return true + if (FeatureFlags.tabHistory) { + findNavController().navigate(R.id.action_global_tabHistoryDialogFragment) + return true + } + return false } /** diff --git a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt index 9c4f33728..1fd155f63 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt @@ -15,6 +15,7 @@ import androidx.core.content.ContextCompat import androidx.lifecycle.Observer import androidx.navigation.fragment.findNavController import com.google.android.material.snackbar.Snackbar +import kotlinx.android.synthetic.main.browser_gesture_wrapper.* import kotlinx.android.synthetic.main.fragment_browser.* import kotlinx.android.synthetic.main.fragment_browser.view.* import kotlinx.coroutines.ExperimentalCoroutinesApi @@ -74,7 +75,9 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler { val components = context.components return super.initializeUI(view)?.also { - if (FeatureFlags.swipeToSwitchTabs) { + // We need to wrap this whole thing in an if here because gestureLayout will not exist + // if the feature flag is off + if (FeatureFlags.browserChromeGestures) { gestureLayout.addGestureListener( ToolbarGestureHandler( activity = requireActivity(), diff --git a/app/src/main/java/org/mozilla/fenix/browser/ToolbarGestureHandler.kt b/app/src/main/java/org/mozilla/fenix/browser/ToolbarGestureHandler.kt index 00508690d..11fe97a65 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/ToolbarGestureHandler.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/ToolbarGestureHandler.kt @@ -180,14 +180,14 @@ class ToolbarGestureHandler( val sessions = sessionManager.sessionsOfType(currentSession.private) val index = when (gestureDirection) { GestureDirection.RIGHT_TO_LEFT -> if (isLtr) { - currentIndex + 1 - } else { currentIndex - 1 + } else { + currentIndex + 1 } GestureDirection.LEFT_TO_RIGHT -> if (isLtr) { - currentIndex - 1 - } else { currentIndex + 1 + } else { + currentIndex - 1 } } diff --git a/app/src/main/java/org/mozilla/fenix/components/history/PagedHistoryProvider.kt b/app/src/main/java/org/mozilla/fenix/components/history/PagedHistoryProvider.kt index 7acaec215..41567f803 100644 --- a/app/src/main/java/org/mozilla/fenix/components/history/PagedHistoryProvider.kt +++ b/app/src/main/java/org/mozilla/fenix/components/history/PagedHistoryProvider.kt @@ -26,16 +26,17 @@ interface PagedHistoryProvider { // If we run this in our own coroutineScope it breaks the PagedList fun HistoryStorage.createSynchronousPagedHistoryProvider(): PagedHistoryProvider { return object : PagedHistoryProvider { + override fun getHistory( offset: Long, numberOfItems: Long, onComplete: (List) -> Unit ) { runBlocking { - val history = this@createSynchronousPagedHistoryProvider.getVisitsPaginated( + val history = getVisitsPaginated( offset, numberOfItems, - listOf( + excludeTypes = listOf( VisitType.NOT_A_VISIT, VisitType.DOWNLOAD, VisitType.REDIRECT_TEMPORARY, diff --git a/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt b/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt index 77a08ce20..22ec2e328 100644 --- a/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt +++ b/app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt @@ -236,7 +236,7 @@ sealed class Event { context.getString(R.string.pref_key_search_bookmarks), context.getString(R.string.pref_key_search_browsing_history), context.getString(R.string.pref_key_show_clipboard_suggestions), - context.getString(R.string.pref_key_show_search_shortcuts), + context.getString(R.string.pref_key_show_search_engine_shortcuts), context.getString(R.string.pref_key_open_links_in_a_private_tab), context.getString(R.string.pref_key_sync_logins), context.getString(R.string.pref_key_sync_bookmarks), diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt index 54e342daf..7851cb05f 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt @@ -23,6 +23,7 @@ import mozilla.components.concept.engine.prompt.ShareData import mozilla.components.feature.session.SessionFeature import mozilla.components.support.base.feature.ViewBoundFeatureWrapper import mozilla.components.support.ktx.kotlin.isUrl +import org.mozilla.fenix.FeatureFlags import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.NavGraphDirections import org.mozilla.fenix.R @@ -172,10 +173,12 @@ class DefaultBrowserToolbarController( Do exhaustive when (item) { ToolbarMenu.Item.Back -> sessionUseCases.goBack.invoke(currentSession) is ToolbarMenu.Item.Forward -> { - if (item.viewHistory) { + if (FeatureFlags.tabHistory && item.viewHistory) { navController.navigate(R.id.action_global_tabHistoryDialogFragment) - } else { + } else if (!item.viewHistory) { sessionUseCases.goForward.invoke(currentSession) + } else { + // Do nothing if tab history feature flag is off and item.viewHistory is true } } is ToolbarMenu.Item.Reload -> { diff --git a/app/src/main/java/org/mozilla/fenix/migration/MigrationStatusAdapter.kt b/app/src/main/java/org/mozilla/fenix/migration/MigrationStatusAdapter.kt index 39ddc3405..34f55e59c 100644 --- a/app/src/main/java/org/mozilla/fenix/migration/MigrationStatusAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/migration/MigrationStatusAdapter.kt @@ -96,7 +96,7 @@ internal class MigrationStatusItemDecoration( parent: RecyclerView, state: RecyclerView.State ) { - val position = parent.getChildViewHolder(view).adapterPosition + val position = parent.getChildViewHolder(view).bindingAdapterPosition val itemCount = state.itemCount outRect.left = spacing diff --git a/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt b/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt index f0ca9bff3..fb706bcda 100644 --- a/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt @@ -268,7 +268,7 @@ class SearchFragment : Fragment(), UserInteractionHandler { qrFeature.get()?.scan(R.id.container) } - view.search_shortcuts_button.setOnClickListener { + view.search_engines_shortcut_button.setOnClickListener { searchInteractor.onSearchShortcutsButtonClicked() } @@ -400,7 +400,7 @@ class SearchFragment : Fragment(), UserInteractionHandler { } private fun updateSearchWithLabel(searchState: SearchFragmentState) { - search_with_shortcuts.visibility = + search_engine_shortcut.visibility = if (searchState.showSearchShortcuts) View.VISIBLE else View.GONE } @@ -450,19 +450,19 @@ class SearchFragment : Fragment(), UserInteractionHandler { findViewById(R.id.search_suggestions_onboarding)?.isVisible = state.showSearchSuggestionsHint search_suggestions_onboarding_divider?.isVisible = - search_with_shortcuts.isVisible && state.showSearchSuggestionsHint + search_engine_shortcut.isVisible && state.showSearchSuggestionsHint } } private fun updateSearchShortcutsIcon(searchState: SearchFragmentState) { view?.apply { - search_shortcuts_button.isVisible = searchState.areShortcutsAvailable + search_engines_shortcut_button.isVisible = searchState.areShortcutsAvailable val showShortcuts = searchState.showSearchShortcuts - search_shortcuts_button.isChecked = showShortcuts + search_engines_shortcut_button.isChecked = showShortcuts val color = if (showShortcuts) R.attr.contrastText else R.attr.primaryText - search_shortcuts_button.compoundDrawables[0]?.setTint( + search_engines_shortcut_button.compoundDrawables[0]?.setTint( requireContext().getColorFromAttr(color) ) } diff --git a/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt b/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt index 1172d0192..0a0382936 100644 --- a/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt +++ b/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt @@ -106,6 +106,7 @@ class AwesomeBarView( components.core.store, selectTabUseCase, components.core.icons, + getDrawable(context, R.drawable.ic_search_results_tab), excludeSelectedSession = true ) @@ -122,6 +123,7 @@ class AwesomeBarView( bookmarksStorage = components.core.bookmarksStorage, loadUrlUseCase = loadUrlUseCase, icons = components.core.icons, + indicatorIcon = getDrawable(context, R.drawable.ic_search_results_bookmarks), engine = engineForSpeculativeConnects ) diff --git a/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt index 954e31658..800bf05bc 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/search/SearchEngineFragment.kt @@ -38,7 +38,7 @@ class SearchEngineFragment : PreferenceFragmentCompat() { } val showSearchShortcuts = - requirePreference(R.string.pref_key_show_search_shortcuts).apply { + requirePreference(R.string.pref_key_show_search_engine_shortcuts).apply { isChecked = context.settings().shouldShowSearchShortcuts } diff --git a/app/src/main/java/org/mozilla/fenix/tabtray/FenixTabsAdapter.kt b/app/src/main/java/org/mozilla/fenix/tabtray/FenixTabsAdapter.kt index 76e85669f..ebea8e3ed 100644 --- a/app/src/main/java/org/mozilla/fenix/tabtray/FenixTabsAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/tabtray/FenixTabsAdapter.kt @@ -104,5 +104,6 @@ class FenixTabsAdapter( mode is TabTrayDialogFragmentState.Mode.MultiSelect && selectedItems.contains(tab) view.checkmark.isVisible = shouldBeChecked view.selected_mask.isVisible = shouldBeChecked + view.mozac_browser_tabstray_close.isVisible = mode is TabTrayDialogFragmentState.Mode.Normal } } diff --git a/app/src/main/java/org/mozilla/fenix/tabtray/SaveToCollectionsButtonAdapter.kt b/app/src/main/java/org/mozilla/fenix/tabtray/SaveToCollectionsButtonAdapter.kt new file mode 100644 index 000000000..d9bce5f3b --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/tabtray/SaveToCollectionsButtonAdapter.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 org.mozilla.fenix.tabtray + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.DiffUtil +import androidx.recyclerview.widget.ListAdapter +import androidx.recyclerview.widget.RecyclerView +import org.mozilla.fenix.R +import org.mozilla.fenix.tabtray.SaveToCollectionsButtonAdapter.Item +import org.mozilla.fenix.tabtray.SaveToCollectionsButtonAdapter.ViewHolder + +/** + * An adapter to display a single 'Save to Collections' button that can be used to display between + * multiple [RecyclerView.Adapter] in one [RecyclerView]. + */ +class SaveToCollectionsButtonAdapter( + private val interactor: TabTrayInteractor +) : ListAdapter(DiffCallback) { + + init { + submitList(listOf(Item)) + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val itemView = LayoutInflater.from(parent.context).inflate(viewType, parent, false) + return ViewHolder(itemView, interactor) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) = Unit + + override fun getItemViewType(position: Int): Int { + return ViewHolder.LAYOUT_ID + } + + private object DiffCallback : DiffUtil.ItemCallback() { + override fun areItemsTheSame(oldItem: Item, newItem: Item) = true + + override fun areContentsTheSame(oldItem: Item, newItem: Item) = true + } + + /** + * An object to identify the data type. + */ + object Item + + class ViewHolder( + itemView: View, + private val interactor: TabTrayInteractor + ) : RecyclerView.ViewHolder(itemView), View.OnClickListener { + init { + itemView.setOnClickListener(this) + } + + override fun onClick(v: View?) { + interactor.onEnterMultiselect() + } + + companion object { + const val LAYOUT_ID = R.layout.tabs_tray_save_to_collections_item + } + } +} diff --git a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt index b580a239f..a3ccf9ed9 100644 --- a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt +++ b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt @@ -17,6 +17,7 @@ import androidx.core.content.ContextCompat import androidx.core.view.isVisible import androidx.core.view.updateLayoutParams import androidx.lifecycle.LifecycleCoroutineScope +import androidx.recyclerview.widget.ConcatAdapter import androidx.recyclerview.widget.LinearLayoutManager import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.tabs.TabLayout @@ -30,9 +31,11 @@ import kotlinx.coroutines.launch import mozilla.components.browser.menu.BrowserMenu import mozilla.components.browser.menu.BrowserMenuBuilder import mozilla.components.browser.menu.item.SimpleBrowserMenuItem +import mozilla.components.browser.state.selector.getNormalOrPrivateTabs import mozilla.components.browser.state.selector.normalTabs import mozilla.components.browser.state.selector.privateTabs import mozilla.components.browser.state.state.BrowserState +import mozilla.components.browser.tabstray.TabViewHolder import mozilla.components.support.ktx.android.util.dpToPx import org.mozilla.fenix.R import org.mozilla.fenix.components.metrics.Event @@ -68,6 +71,7 @@ class TabTrayView( private var menu: BrowserMenu? = null private var tabsTouchHelper: TabsTouchHelper + private val collectionsButtonAdapter = SaveToCollectionsButtonAdapter(interactor) private var hasLoaded = false @@ -130,9 +134,13 @@ class TabTrayView( reverseLayout = true stackFromEnd = true } - adapter = tabsAdapter + adapter = ConcatAdapter(collectionsButtonAdapter, tabsAdapter) + + tabsTouchHelper = TabsTouchHelper( + observable = tabsAdapter, + onViewHolderTouched = { it is TabViewHolder } + ) - tabsTouchHelper = TabsTouchHelper(tabsAdapter) tabsTouchHelper.attachToRecyclerView(this) tabsAdapter.tabTrayInteractor = interactor @@ -248,12 +256,15 @@ class TabTrayView( fun updateState(state: TabTrayDialogFragmentState) { val oldMode = mode - if (oldMode::class != state.mode::class && view.context.settings().accessibilityServicesEnabled) { - view.announceForAccessibility( - if (state.mode == TabTrayDialogFragmentState.Mode.Normal) view.context.getString( - R.string.tab_tray_exit_multiselect_content_description - ) else view.context.getString(R.string.tab_tray_enter_multiselect_content_description) - ) + if (oldMode::class != state.mode::class) { + updateTabsForModeChanged() + if (view.context.settings().accessibilityServicesEnabled) { + view.announceForAccessibility( + if (state.mode == TabTrayDialogFragmentState.Mode.Normal) view.context.getString( + R.string.tab_tray_exit_multiselect_content_description + ) else view.context.getString(R.string.tab_tray_enter_multiselect_content_description) + ) + } } mode = state.mode @@ -275,7 +286,7 @@ class TabTrayView( fabView.new_tab_button.isVisible = false view.tab_tray_new_tab.isVisible = false - view.collect_multi_select.isVisible = state.mode.selectedItems.size > 0 + view.collect_multi_select.isVisible = state.mode.selectedItems.isNotEmpty() view.multiselect_title.text = view.context.getString( R.string.tab_tray_multi_select_title, @@ -391,13 +402,21 @@ class TabTrayView( view.tab_layout.isVisible = !multiselect } + private fun updateTabsForModeChanged() { + view.tabsTray.apply { + val tabs = view.context.components.core.store.state.getNormalOrPrivateTabs( + isPrivateModeSelected + ) + + this.adapter?.notifyItemRangeChanged(0, tabs.size, true) + } + } + private fun updateTabsForSelectionChanged(itemId: String) { view.tabsTray.apply { - val tabs = if (isPrivateModeSelected) { - view.context.components.core.store.state.privateTabs - } else { - view.context.components.core.store.state.normalTabs - } + val tabs = view.context.components.core.store.state.getNormalOrPrivateTabs( + isPrivateModeSelected + ) val selectedBrowserTabIndex = tabs.indexOfFirst { it.id == itemId } @@ -456,7 +475,11 @@ class TabTrayView( val selectedBrowserTabIndex = tabs .indexOfFirst { it.id == sessionId } - layoutManager?.scrollToPosition(selectedBrowserTabIndex) + // We offset the tab index by the number of items in the other adapters. + // We add the offset, because the layoutManager is initialized with `reverseLayout`. + val recyclerViewIndex = selectedBrowserTabIndex + collectionsButtonAdapter.itemCount + + layoutManager?.scrollToPosition(recyclerViewIndex) } } diff --git a/app/src/main/java/org/mozilla/fenix/tabtray/TabsTouchHelper.kt b/app/src/main/java/org/mozilla/fenix/tabtray/TabsTouchHelper.kt index ceecc6578..03fe38d43 100644 --- a/app/src/main/java/org/mozilla/fenix/tabtray/TabsTouchHelper.kt +++ b/app/src/main/java/org/mozilla/fenix/tabtray/TabsTouchHelper.kt @@ -8,6 +8,7 @@ import android.graphics.Canvas import android.graphics.drawable.Drawable import androidx.appcompat.content.res.AppCompatResources import androidx.recyclerview.widget.ItemTouchHelper +import androidx.recyclerview.widget.ItemTouchHelper.ACTION_STATE_IDLE import androidx.recyclerview.widget.RecyclerView import mozilla.components.browser.tabstray.TabTouchCallback import mozilla.components.concept.tabstray.TabsTray @@ -18,72 +19,109 @@ import mozilla.components.support.ktx.android.util.dpToPx import org.mozilla.fenix.R import org.mozilla.fenix.home.sessioncontrol.SwipeToDeleteCallback -class TabsTouchHelper(observable: Observable) : - ItemTouchHelper(object : TabTouchCallback(observable) { - override fun onChildDraw( - c: Canvas, - recyclerView: RecyclerView, - viewHolder: RecyclerView.ViewHolder, - dX: Float, - dY: Float, - actionState: Int, - isCurrentlyActive: Boolean - ) { - super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive) - val icon = recyclerView.context.getDrawableWithTint( - R.drawable.ic_delete, - recyclerView.context.getColorFromAttr(R.attr.destructive) - )!! - val background = AppCompatResources.getDrawable( - recyclerView.context, - R.drawable.swipe_delete_background - )!! - val itemView = viewHolder.itemView - val iconLeft: Int - val iconRight: Int - val margin = - SwipeToDeleteCallback.MARGIN.dpToPx(recyclerView.context.resources.displayMetrics) - val iconWidth = icon.intrinsicWidth - val iconHeight = icon.intrinsicHeight - val cellHeight = itemView.bottom - itemView.top - val iconTop = itemView.top + (cellHeight - iconHeight) / 2 - val iconBottom = iconTop + iconHeight +/** + * A callback for consumers to know when a [RecyclerView.ViewHolder] is about to be touched. + * Return false if the default behaviour should be ignored. + */ +typealias OnViewHolderTouched = (RecyclerView.ViewHolder) -> Boolean - when { - dX > 0 -> { // Swiping to the right - iconLeft = itemView.left + margin - iconRight = itemView.left + margin + iconWidth - background.setBounds( - itemView.left, itemView.top, - (itemView.left + dX).toInt() + SwipeToDeleteCallback.BACKGROUND_CORNER_OFFSET, - itemView.bottom - ) - icon.setBounds(iconLeft, iconTop, iconRight, iconBottom) - draw(background, icon, c) - } - dX < 0 -> { // Swiping to the left - iconLeft = itemView.right - margin - iconWidth - iconRight = itemView.right - margin - background.setBounds( - (itemView.right + dX).toInt() - SwipeToDeleteCallback.BACKGROUND_CORNER_OFFSET, - itemView.top, itemView.right, itemView.bottom - ) - icon.setBounds(iconLeft, iconTop, iconRight, iconBottom) - draw(background, icon, c) - } - else -> { // View not swiped - background.setBounds(0, 0, 0, 0) - icon.setBounds(0, 0, 0, 0) - } +/** + * An [ItemTouchHelper] for handling tab swiping to delete. + * + * @param onViewHolderTouched See [OnViewHolderTouched]. + */ +class TabsTouchHelper( + observable: Observable, + onViewHolderTouched: OnViewHolderTouched = { true }, + delegate: Callback = TouchCallback(observable, onViewHolderTouched) +) : ItemTouchHelper(delegate) + +/** + * An [ItemTouchHelper.Callback] for drawing custom layouts on [RecyclerView.ViewHolder] interactions. + * + * @param onViewHolderTouched invoked when a tab is about to be swiped. See [OnViewHolderTouched]. + */ +class TouchCallback( + observable: Observable, + private val onViewHolderTouched: OnViewHolderTouched +) : TabTouchCallback(observable) { + + override fun getMovementFlags( + recyclerView: RecyclerView, + viewHolder: RecyclerView.ViewHolder + ): Int { + if (!onViewHolderTouched.invoke(viewHolder)) { + return ItemTouchHelper.Callback.makeFlag(ACTION_STATE_IDLE, 0) + } + + return super.getMovementFlags(recyclerView, viewHolder) + } + + override fun onChildDraw( + c: Canvas, + recyclerView: RecyclerView, + viewHolder: RecyclerView.ViewHolder, + dX: Float, + dY: Float, + actionState: Int, + isCurrentlyActive: Boolean + ) { + super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive) + + val icon = recyclerView.context.getDrawableWithTint( + R.drawable.ic_delete, + recyclerView.context.getColorFromAttr(R.attr.destructive) + )!! + val background = AppCompatResources.getDrawable( + recyclerView.context, + R.drawable.swipe_delete_background + )!! + val itemView = viewHolder.itemView + val iconLeft: Int + val iconRight: Int + val margin = + SwipeToDeleteCallback.MARGIN.dpToPx(recyclerView.context.resources.displayMetrics) + val iconWidth = icon.intrinsicWidth + val iconHeight = icon.intrinsicHeight + val cellHeight = itemView.bottom - itemView.top + val iconTop = itemView.top + (cellHeight - iconHeight) / 2 + val iconBottom = iconTop + iconHeight + + when { + dX > 0 -> { // Swiping to the right + iconLeft = itemView.left + margin + iconRight = itemView.left + margin + iconWidth + background.setBounds( + itemView.left, itemView.top, + (itemView.left + dX).toInt() + SwipeToDeleteCallback.BACKGROUND_CORNER_OFFSET, + itemView.bottom + ) + icon.setBounds(iconLeft, iconTop, iconRight, iconBottom) + draw(background, icon, c) + } + dX < 0 -> { // Swiping to the left + iconLeft = itemView.right - margin - iconWidth + iconRight = itemView.right - margin + background.setBounds( + (itemView.right + dX).toInt() - SwipeToDeleteCallback.BACKGROUND_CORNER_OFFSET, + itemView.top, itemView.right, itemView.bottom + ) + icon.setBounds(iconLeft, iconTop, iconRight, iconBottom) + draw(background, icon, c) + } + else -> { // View not swiped + background.setBounds(0, 0, 0, 0) + icon.setBounds(0, 0, 0, 0) } } + } - private fun draw( - background: Drawable, - icon: Drawable, - c: Canvas - ) { - background.draw(c) - icon.draw(c) - } - }) + private fun draw( + background: Drawable, + icon: Drawable, + c: Canvas + ) { + background.draw(c) + icon.draw(c) + } +} diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index 180b022a2..defa8901d 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -305,7 +305,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { ) val shouldShowSearchShortcuts by booleanPreference( - appContext.getPreferenceKey(R.string.pref_key_show_search_shortcuts), + appContext.getPreferenceKey(R.string.pref_key_show_search_engine_shortcuts), default = false ) diff --git a/app/src/main/res/drawable/ic_search_results_bookmarks.xml b/app/src/main/res/drawable/ic_search_results_bookmarks.xml new file mode 100644 index 000000000..4bf1e5c91 --- /dev/null +++ b/app/src/main/res/drawable/ic_search_results_bookmarks.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_search_results_device_desktop.xml b/app/src/main/res/drawable/ic_search_results_device_desktop.xml new file mode 100644 index 000000000..3f028b995 --- /dev/null +++ b/app/src/main/res/drawable/ic_search_results_device_desktop.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_search_results_device_mobile.xml b/app/src/main/res/drawable/ic_search_results_device_mobile.xml new file mode 100644 index 000000000..83d6999b3 --- /dev/null +++ b/app/src/main/res/drawable/ic_search_results_device_mobile.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_search_results_device_tablet.xml b/app/src/main/res/drawable/ic_search_results_device_tablet.xml new file mode 100644 index 000000000..276cc2b33 --- /dev/null +++ b/app/src/main/res/drawable/ic_search_results_device_tablet.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_search_results_tab.xml b/app/src/main/res/drawable/ic_search_results_tab.xml new file mode 100644 index 000000000..c290b982f --- /dev/null +++ b/app/src/main/res/drawable/ic_search_results_tab.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/app/src/main/res/layout/browser_gesture_wrapper.xml b/app/src/main/res/layout/browser_gesture_wrapper.xml new file mode 100644 index 000000000..94f515687 --- /dev/null +++ b/app/src/main/res/layout/browser_gesture_wrapper.xml @@ -0,0 +1,17 @@ + + + + + + diff --git a/app/src/main/res/layout/component_bookmark.xml b/app/src/main/res/layout/component_bookmark.xml index ab4a74256..684c15735 100644 --- a/app/src/main/res/layout/component_bookmark.xml +++ b/app/src/main/res/layout/component_bookmark.xml @@ -21,6 +21,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" + android:scrollbars="vertical" tools:listitem="@layout/library_site_item" /> diff --git a/app/src/main/res/layout/component_tabstray.xml b/app/src/main/res/layout/component_tabstray.xml index 3dd4f2ae0..b90dcea71 100644 --- a/app/src/main/res/layout/component_tabstray.xml +++ b/app/src/main/res/layout/component_tabstray.xml @@ -79,7 +79,7 @@ + app:layout_constraintTop_toTopOf="parent" /> - - - - - - - - - - - - - - - - - - + + + + + + + + - + + + + diff --git a/app/src/main/res/layout/fragment_installed_add_on_details.xml b/app/src/main/res/layout/fragment_installed_add_on_details.xml index d32b326f4..2545ace01 100644 --- a/app/src/main/res/layout/fragment_installed_add_on_details.xml +++ b/app/src/main/res/layout/fragment_installed_add_on_details.xml @@ -39,7 +39,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical|end" - android:layout_below="@+id/enable_switch" + android:layout_below="@id/enable_switch" android:background="?android:attr/selectableItemBackground" android:checked="false" android:clickable="true" @@ -56,7 +56,7 @@ android:id="@+id/settings" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_below="@+id/allow_in_private_browsing_switch" + android:layout_below="@id/allow_in_private_browsing_switch" android:background="?android:attr/selectableItemBackground" android:drawablePadding="32dp" android:padding="16dp" @@ -70,7 +70,7 @@ android:id="@+id/details" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_below="@+id/settings" + android:layout_below="@id/settings" android:background="?android:attr/selectableItemBackground" android:drawablePadding="32dp" android:padding="16dp" @@ -84,7 +84,7 @@ android:id="@+id/permissions" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_below="@+id/details" + android:layout_below="@id/details" android:background="?android:attr/selectableItemBackground" android:drawablePadding="32dp" android:padding="16dp" @@ -97,7 +97,7 @@ android:id="@+id/remove_add_on" style="@style/DestructiveButton" android:layout_marginHorizontal="16dp" - android:layout_below="@+id/permissions" + android:layout_below="@id/permissions" android:text="@string/mozac_feature_addons_remove" /> diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml index ebdc0bc21..d85e21d64 100644 --- a/app/src/main/res/layout/fragment_search.xml +++ b/app/src/main/res/layout/fragment_search.xml @@ -37,7 +37,8 @@ app:layout_constraintBottom_toBottomOf="@id/search_divider" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/toolbar"> + app:layout_constraintTop_toBottomOf="@id/toolbar" + android:scrollbars="vertical"> + tools:text="@string/search_engines_search_with" /> + app:constraint_referenced_ids="fill_link_from_clipboard,search_engine_shortcut,search_suggestions_onboarding" /> @@ -195,10 +196,10 @@ app:drawableStartCompat="@drawable/ic_qr" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_sign_out.xml b/app/src/main/res/layout/fragment_sign_out.xml index 1b6abc701..2f2ea0730 100644 --- a/app/src/main/res/layout/fragment_sign_out.xml +++ b/app/src/main/res/layout/fragment_sign_out.xml @@ -27,8 +27,8 @@ style="@style/SitePermissionCancelButton" android:text="@string/sign_out_cancel" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toStartOf="@+id/signOutDisconnect" - app:layout_constraintTop_toBottomOf="@+id/sign_out_message" /> + app:layout_constraintEnd_toStartOf="@id/signOutDisconnect" + app:layout_constraintTop_toBottomOf="@id/sign_out_message" /> + app:layout_constraintTop_toBottomOf="@id/sign_out_message" /> diff --git a/app/src/main/res/layout/locale_settings_item.xml b/app/src/main/res/layout/locale_settings_item.xml index 3dfee8628..511ae58c5 100644 --- a/app/src/main/res/layout/locale_settings_item.xml +++ b/app/src/main/res/layout/locale_settings_item.xml @@ -31,9 +31,9 @@ android:textAlignment="viewStart" app:layout_goneMarginStart="@dimen/locale_item_text_margin_gone_start" android:textSize="@dimen/locale_item_title_size" - app:layout_constraintBottom_toTopOf="@+id/locale_subtitle_text" + app:layout_constraintBottom_toTopOf="@id/locale_subtitle_text" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toEndOf="@+id/locale_selected_icon" + app:layout_constraintStart_toEndOf="@id/locale_selected_icon" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_chainStyle="packed" tools:text="English (United States)" /> @@ -51,8 +51,8 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_goneMarginStart="@dimen/locale_item_text_margin_gone_start" - app:layout_constraintStart_toEndOf="@+id/locale_selected_icon" - app:layout_constraintTop_toBottomOf="@+id/locale_title_text" + app:layout_constraintStart_toEndOf="@id/locale_selected_icon" + app:layout_constraintTop_toBottomOf="@id/locale_title_text" app:layout_constraintVertical_chainStyle="packed" tools:text="English (United States)" /> diff --git a/app/src/main/res/layout/logins_item.xml b/app/src/main/res/layout/logins_item.xml index da5219276..08ed87f9f 100644 --- a/app/src/main/res/layout/logins_item.xml +++ b/app/src/main/res/layout/logins_item.xml @@ -46,7 +46,7 @@ android:textColor="?primaryText" app:layout_constraintBottom_toTopOf="@id/usernameView" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toEndOf="@+id/favicon_wrapper" + app:layout_constraintStart_toEndOf="@id/favicon_wrapper" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_chainStyle="packed" tools:text="mozilla.org" /> @@ -62,7 +62,7 @@ android:textColor="?secondaryText" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toEndOf="@+id/favicon_wrapper" + app:layout_constraintStart_toEndOf="@id/favicon_wrapper" app:layout_constraintTop_toBottomOf="@id/webAddressView" app:layout_constraintVertical_chainStyle="packed" tools:text="mozilla.org" /> diff --git a/app/src/main/res/layout/onboarding_tracking_protection.xml b/app/src/main/res/layout/onboarding_tracking_protection.xml index 78a7df377..46e07abd6 100644 --- a/app/src/main/res/layout/onboarding_tracking_protection.xml +++ b/app/src/main/res/layout/onboarding_tracking_protection.xml @@ -90,4 +90,4 @@ app:onboardingKeyDescription="@string/onboarding_tracking_protection_strict_button_description_2" app:onboardingKeyTitle="@string/onboarding_tracking_protection_strict_option" tools:text="Strict" /> - + \ No newline at end of file diff --git a/app/src/main/res/layout/preference_widget_radiobutton.xml b/app/src/main/res/layout/preference_widget_radiobutton.xml index 9da09ef28..f65db43f3 100644 --- a/app/src/main/res/layout/preference_widget_radiobutton.xml +++ b/app/src/main/res/layout/preference_widget_radiobutton.xml @@ -38,7 +38,7 @@ android:textAppearance="?android:attr/textAppearanceListItem" app:layout_constraintTop_toTopOf="@id/radio_button" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toEndOf="@+id/radio_button" + app:layout_constraintStart_toEndOf="@id/radio_button" app:layout_constraintBottom_toBottomOf="@id/radio_button"/> diff --git a/app/src/main/res/layout/tabs_tray_save_to_collections_item.xml b/app/src/main/res/layout/tabs_tray_save_to_collections_item.xml new file mode 100644 index 000000000..25ecc2057 --- /dev/null +++ b/app/src/main/res/layout/tabs_tray_save_to_collections_item.xml @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml index 7e878d0fd..3bd6c282d 100644 --- a/app/src/main/res/navigation/nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph.xml @@ -7,7 +7,7 @@ @@ -56,7 +56,7 @@ app:destination="@id/settingsFragment" /> + app:destination="@id/syncedTabsFragment" /> @@ -392,7 +392,7 @@ app:exitAnim="@anim/slide_out_left" app:popEnterAnim="@anim/slide_in_left" app:popExitAnim="@anim/slide_out_right" - app:popUpTo="@+id/settingsFragment" /> + app:popUpTo="@id/settingsFragment" /> Сканаваць - - Цэтлікі Налады пошукавых сістэм - - Шукаць з - - Гэтым разам шукаць у: Уставіць спасылку з буфера абмену @@ -238,8 +232,6 @@ Прылады распрацоўшчыка Аддаленая адладка праз USB - - Пошукавыя скароты Паказваць пошукавыя прапановы @@ -336,6 +328,8 @@ Увайсці + + Увайдзіце, каб злучыцца зноў Выдаліць уліковы запіс @@ -585,7 +579,7 @@ %1$s выдалена - + Закладкі выдалены АДМЯНІЦЬ @@ -1279,4 +1273,13 @@ OK, зразумела - + + + Цэтлікі + + Шукаць з + + Гэтым разам шукаць у: + + Пошукавыя скароты + diff --git a/app/src/main/res/values-br/strings.xml b/app/src/main/res/values-br/strings.xml index 6c0ea763f..0dd1ea902 100644 --- a/app/src/main/res/values-br/strings.xml +++ b/app/src/main/res/values-br/strings.xml @@ -142,13 +142,11 @@ Cʼhwilerviñ - Berradennoù + Lusker klask Arventennoù al lusker klask - - Klask gant - Evit ar wech-mañ, klask gant: + Ar wech-mañ, klask gant: Leuniañ diwar ar golver @@ -255,8 +253,8 @@ Ostilhoù an diorroer Diveugañ a-bell dre USB - - Berradennoù klask + + Diskouez al luskerioù klask Diskouez kinnigoù ar cʼhlask @@ -566,6 +564,8 @@ Dibab un teuliad Ha fellout a ra deocʼh dilemel an teuliad-mañ ? + + %s a zilamo an elfennoù diuzet Dilamet %1$s @@ -620,8 +620,10 @@ Dilamet %1$s - + Dilamet eo bet ar sined + + O tilemel an teuliadoù diuzet DIZOBER @@ -715,6 +717,8 @@ %d ivinell diuzet Ivinelloù enrollet! + + Dastumad enrollet! Ivinell enrollet! @@ -818,6 +822,10 @@ NACʼHAÑ Sur ocʼh e fell deocʼh dilemel %1$s? + + Dilemel an ivinell-mañ a zilamo an dastumad a-bezh. Gallout a rit krouiñ dastumadoù nevez pa fell deoc’h. + + Dilemel %1$s? Dilemel @@ -1214,6 +1222,8 @@ An titouroù kennaskañ n’int ket enrollet a vo diskouezet amañ. Ne vo ket enrollet an titouroù kennaskañ evit al lec’hiennoù-mañ. + + Dilemel an holl nemedennoù Klask titouroù kennaskañ @@ -1253,6 +1263,8 @@ Eilañ an anv arveriad Eilañ al lec’hienn + + Digeriñ al lec’hienn er merdeer Diskouez ar ger-tremen @@ -1425,4 +1437,13 @@ Mat, komprenet am eus - + + + Berradennoù + + Klask gant + + Evit ar wech-mañ, klask gant: + + Berradennoù klask + diff --git a/app/src/main/res/values-co/strings.xml b/app/src/main/res/values-co/strings.xml index bc67d7ddd..2eb2af110 100644 --- a/app/src/main/res/values-co/strings.xml +++ b/app/src/main/res/values-co/strings.xml @@ -151,13 +151,11 @@ Numerizà - Accurtatoghji + Mutore di ricerca Preferenze di u mutore di ricerca - - Circà cù - Per sta volta, circà cù : + Per sta volta, circà cù : Riempie da u preme’papei @@ -265,8 +263,8 @@ Attrezzi di sviluppu Spannatura alluntanata via USB - - Affissà l’accurtatoghji di ricerca + + Affissà i mutori di ricerca Affissà e suggestioni di ricerca @@ -580,6 +578,8 @@ Selezziunà un cartulare Site sicuru di vulè squassà stu cartulare ? + + %s squasserà l’elementi selezziunati. %1$s squassatu @@ -636,8 +636,10 @@ %1$s squassatu - + Indette squassate + + Squassatura di i cartulari selezziunati ABBANDUNÀ @@ -732,6 +734,8 @@ %d unghjetta selezziunata Unghjette arregistrate ! + + Cullezzione arregistrata ! Unghjetta arregistrata ! @@ -836,6 +840,10 @@ RICUSÀ Site sicuru di vulè squassà %1$s ? + + A squassatura di st’unghjetta squasserà a cullezzione sana. Pudete creà nove cullezzioni à ogni mumentu. + + Squassà %1$s ? Squassà @@ -890,8 +898,6 @@ Squassa autumaticamente i dati di navigazione quandu vi selezziunate « Esce » in u listinu principale Squassa autumaticamente i dati di navigazione quandu vi selezziunate « Esce » in u listinu principale - - Crunulogia di navigazione Esce @@ -1240,6 +1246,8 @@ L’identificazioni è parolle d’entrata chì ùn sò micca arregistrate seranu affissate quì. L’identificazioni è parolle d’entrata ùn seranu micca arregistrate per sti siti. + + Squassà tutte l’eccezzioni Circà identificazioni di cunnessione @@ -1280,6 +1288,8 @@ Cupià u nome d’utilizatore Cupià u situ + + Apre u situ in u navigatore Affissa a parolla d’entrata @@ -1458,4 +1468,13 @@ Iè, aghju capitu - + + + Accurtatoghji + + Circà cù + + Per sta volta, circà cù : + + Affissà l’accurtatoghji di ricerca + diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 576655c9a..f266d3ab8 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -151,14 +151,8 @@ Naskenovat - - Zkratky Nastavení vyhledávače - - Vyhledat pomocí - - Vyhledat pomocí: Vložit odkaz ze schránky @@ -230,7 +224,7 @@ Povolit pořizování snímků obrazovky v anonymním prohlížení - Přidat anonymní prohlížení na plochu + Vytvořit zkratku pro anonymní prohlížení Přístupnost @@ -267,8 +261,6 @@ Nástroje pro vývojáře Vzdálené ladění pomocí USB - - Zobrazit zkratky vyhledávání Našeptávat vyhledávání @@ -388,7 +380,7 @@ Zapnout synchronizaci - Naskenujte párovací kód zobrazený ve Firefoxu na počítači + Naskenovat párovací kód zobrazený ve Firefoxu na počítači Přihlásit se @@ -649,7 +641,7 @@ The first parameter is the host part of the URL of the bookmark deleted, if any --> Záložka odstraněna: %1$s - + Záložky smazány ZPĚT @@ -994,7 +986,7 @@ Blokuje méně sledovacích prvků. Stránky se načítají běžným způsobem. - Striktní (doporučeno) + Přísná (doporučeno) Přísná @@ -1464,4 +1456,13 @@ OK, rozumím - + + + Zkratky + + Vyhledat pomocí + + Vyhledat pomocí: + + Zobrazit zkratky vyhledávání + diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml index 422797ffb..78f8fb1a3 100644 --- a/app/src/main/res/values-cy/strings.xml +++ b/app/src/main/res/values-cy/strings.xml @@ -147,13 +147,11 @@ Sganio - Llwybrau byr + Peiriant Chwilio Gosodiadau peiriannau chwilio - - Chwilio gyda - Y tro hwn, chwilio gyda: + Y tro hwn, chwilio gyda: Llanw’r ddolen o’r clipfwrdd @@ -261,8 +259,8 @@ Offer datblygwyr Dadfygio pell drwy USB - - Dangos llwybrau byr chwilio + + Dangos y peiriannau chwilio Dangos awgrymiadau chwilio @@ -706,7 +704,7 @@ Casglwch y pethau sy’n bwysig i chi - Grwpiwch chwiliadau, gwefannau a thabiau tebyg ar gyfer mynediad cyflym yn nes ymlaen. + Grwpiwch chwiliadau, gwefannau a thabiau tebyg ar gyfer mynediad cyflym yn y dyfodol. Dewis Tabiau @@ -916,10 +914,10 @@ Mae Firefox Nightly yn cael ei ddiweddaru bob nos ac mae ganddo nodweddion newydd arbrofol. -Fodd bynnag, gall fod yn llai sefydlog. Llwythwch ein porwr beta i gael profiad mwy sefydlog. +Fodd bynnag, gall fod yn llai sefydlog. Llwythwch ein porwr Beta i gael profiad mwy cadarn. - Estyn Firefox ar gyfer Android Beta + Estyn Firefox Android Beta Mae Firefox Nightly wedi symud @@ -1455,4 +1453,13 @@ Fodd bynnag, gall fod yn llai sefydlog. Llwythwch ein porwr beta i gael profiad Iawn, Wedi deall! - + + + Llwybrau byr + + Chwilio gyda + + Y tro hwn, chwilio gyda: + + Dangos llwybrau byr chwilio + diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index c2c3ec46a..7ee372f8e 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -27,6 +27,29 @@ %1$s offene Tabs. Antippen, um Tabs zu wechseln. + + %1$d ausgewählt + + Neue Sammlung hinzufügen + + Name + + Sammlung auswählen + + Mehrfachauswahl-Modus beenden + + Ausgewählte Tabs in Sammlung speichern + + %1$s ausgewählt + + %1$s abgewählt + + Mehrfachauswahl-Modus beendet + + Mehrfachauswah-Modus aktiviert, wählen Sie Tabs zum Speichern in einer Sammlung + + Ausgewählt + %1$s wird von Mozilla hergestellt. @@ -153,13 +176,11 @@ Scannen - Suchmaschinen + Suchmaschine Suchmaschinen-Einstellungen - - Suchen mit - Einmalig suchen mit: + Einmalig suchen mit: Link aus Zwischenablage einfügen @@ -268,8 +289,8 @@ Entwicklerwerkzeuge Externes Debugging über USB - - Kürzel für die Suche anzeigen + + Suchmaschinen anzeigen Suchvorschläge anzeigen @@ -522,6 +543,9 @@ %1$s (Privater Modus) + + Speichern + Chronik löschen @@ -1489,4 +1513,13 @@ Ok, verstanden - + + + Suchmaschinen + + Suchen mit + + Einmalig suchen mit: + + Kürzel für die Suche anzeigen + diff --git a/app/src/main/res/values-dsb/strings.xml b/app/src/main/res/values-dsb/strings.xml index b9013af97..4b95de4b1 100644 --- a/app/src/main/res/values-dsb/strings.xml +++ b/app/src/main/res/values-dsb/strings.xml @@ -24,6 +24,29 @@ Wócynjone rejtariki: %1$s. Pótusniśo, aby rejtariki pśešaltował. + + Wubrane: %1$d + + Nowu zběrku pśidaś + + + + Zběrku wubraś + + Wěcejwuběrański modus spušćiś + + Wubrane rejtariki do zběrki składowaś + + %1$s wubrany + + %1$s wěcej njewubrany + + Wěcejwuběrański modus jo se spušćił + + Wěcejwuběrański modus jo se zmóžnił, wubjeŕśo rejtariki, aby je do zběrki składował + + Wubrany + %1$s se pśez Mozilla zgótujo. @@ -510,6 +533,9 @@ %1$s (priwatny modus) + + Składowaś + Historiju wulašowaś diff --git a/app/src/main/res/values-en-rCA/strings.xml b/app/src/main/res/values-en-rCA/strings.xml index 29a9b6b6c..2428be270 100644 --- a/app/src/main/res/values-en-rCA/strings.xml +++ b/app/src/main/res/values-en-rCA/strings.xml @@ -25,6 +25,29 @@ %1$s open tabs. Tap to switch tabs. + + %1$d selected + + Add new collection + + Name + + Select collection + + Exit multiselect mode + + Save selected tabs to collection + + Selected %1$s + + Unselected %1$s + + Exited multiselect mode + + Entered multiselect mode, select tabs to save to a collection + + Selected + %1$s is produced by Mozilla. @@ -148,13 +171,11 @@ Scan - Shortcuts + Search Engine Search engine settings - - Search with - This time, search with: + This time, search with: Fill link from clipboard @@ -261,8 +282,8 @@ Developer tools Remote debugging via USB - - Show search shortcuts + + Show search engines Show search suggestions @@ -508,6 +529,9 @@ %1$s (Private Mode) + + Save + Delete history @@ -1446,4 +1470,13 @@ OK, Got It - + + + Shortcuts + + Search with + + This time, search with: + + Show search shortcuts + diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml index dafb0d979..57ccf4222 100644 --- a/app/src/main/res/values-en-rGB/strings.xml +++ b/app/src/main/res/values-en-rGB/strings.xml @@ -147,13 +147,11 @@ Scan - Shortcuts + Search Engine Search engine settings - - Search with - This time, search with: + This time, search with: Fill link from clipboard @@ -261,8 +259,8 @@ Developer tools Remote debugging via USB - - Show search shortcuts + + Show search engines Show search suggestions @@ -573,6 +571,8 @@ Select folder Are you sure you want to delete this folder? + + %s will delete the selected items. Deleted %1$s @@ -627,8 +627,10 @@ Deleted %1$s - + Bookmarks deleted + + Deleting selected folders UNDO @@ -722,6 +724,8 @@ %d tab selected Tabs saved! + + Collection saved! Tab saved! @@ -826,6 +830,10 @@ DENY Are you sure you want to delete %1$s? + + Deleting this tab will delete the entire collection. You can create new collections at any time. + + Delete %1$s? Delete @@ -880,8 +888,6 @@ Automatically deletes browsing data when you select "Quit" from the main menu Automatically deletes browsing data when you select \"Quit\" from the main menu - - Browsing history Quit @@ -1224,6 +1230,8 @@ Logins and passwords that are not saved will be shown here. Logins and passwords will not be saved for these sites. + + Delete all exceptions Search logins @@ -1262,6 +1270,8 @@ Copy username Copy site + + Open site in browser Show password @@ -1435,4 +1445,13 @@ OK, Got It - + + + Shortcuts + + Search with + + This time, search with: + + Show search shortcuts + diff --git a/app/src/main/res/values-es-rAR/strings.xml b/app/src/main/res/values-es-rAR/strings.xml index 4f578f553..a610d0c58 100644 --- a/app/src/main/res/values-es-rAR/strings.xml +++ b/app/src/main/res/values-es-rAR/strings.xml @@ -25,6 +25,29 @@ %1$s pestañas abiertas. Tocá para cambiar de pestaña. + + Se seleccionó %1$d + + Agregar colección nueva + + Nombre + + Seleccionar colección + + Salir del modo de selección múltiple + + Guardar pestañas seleccionadas en la colección + + Se seleccionó %1$s + + Se eliminó la selección %1$s + + Salió del modo de selección múltiple + + Ingresó al modo de selección múltiple, seleccione pestañas para guardar en una colección + + Seleccionadas + %1$s es producido por Mozilla. @@ -151,13 +174,11 @@ Escanear - Atajos + Buscador Configuración del buscador - - Buscar con - Esta vez buscar con: + Esta vez buscar con: Completar enlace desde el portapapeles @@ -267,8 +288,8 @@ Herramientas de desarrollador Depuración remota vía USB - - Mostrar atajos de teclado para búsquedas + + Mostrar buscadores Mostrar sugerencias de búsqueda @@ -527,6 +548,9 @@ %1$s (modo privado) + + Guardar + Eliminar historial @@ -592,7 +616,7 @@ Seleccionar carpeta - ¿Estás seguro de que querés eliminar eliminar esta carpeta? + ¿Estás seguro de que querés eliminar esta carpeta? %s va a eliminar los elementos seleccionados. @@ -1477,4 +1501,13 @@ Listo, lo entendí. - + + + Atajos + + Buscar con + + Esta vez buscar con: + + Mostrar atajos de teclado para búsquedas + diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 31c621bdb..3a0bd05a6 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -151,13 +151,11 @@ Skannaa - Oikopolut + Hakukone Hakukoneasetukset - - Hae hakukoneella - Tällä kertaa käytä hakuun: + Tällä kertaa käytä hakuun: Täytä linkki leikepöydältä @@ -267,8 +265,8 @@ Kehittäjätyökalut Etävianjäljitys USB:n kautta - - Näytä hakuoikopolut + + Näytä hakukoneet Näytä hakuehdotukset @@ -585,6 +583,8 @@ Valitse kansio Haluatko varmasti poistaa tämän kansion? + + %s poistaa valitut kohteet. %1$s poistettu @@ -640,8 +640,10 @@ Poistettu %1$s - + Kirjanmerkit poistettu + + Poistetaan valitut kansiot KUMOA @@ -736,6 +738,8 @@ %d välilehti valittu Välilehdet tallennettu! + + Kokoelma tallennettu! Välilehti tallennettu! @@ -841,6 +845,8 @@ ESTÄ Poistetaanko %1$s? + + Poistetaanko %1$s? Poista @@ -899,8 +905,6 @@ Poistaa automaattisesti selaustiedot, kun valitset "Lopeta" päävalikosta Poistaa automaattisesti selaustiedot, kun valitset \"Lopeta\" päävalikosta - - Selaushistoria Lopeta @@ -1247,6 +1251,8 @@ Käyttäjätunnukset ja salanat, joita ei tallenneta, näytetään täällä. Käyttäjätunnuksia ja salasanoja ei tallenneta näille sivustoille. + + Poista kaikki poikkeukset Etsi kirjautumistiedoista @@ -1285,6 +1291,8 @@ Kopioi käyttäjätunnus Kopioi sivusto + + Avaa sivusto selaimessa Näytä salasana @@ -1460,4 +1468,13 @@ Selvä - + + + Oikopolut + + Hae hakukoneella + + Tällä kertaa käytä hakuun: + + Näytä hakuoikopolut + diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 9ec476c7b..9a397b014 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -150,14 +150,11 @@ Scanner - Raccourcis + Moteur de recherche Paramètres du moteur de recherche - - Rechercher avec - - Pour cette fois, rechercher avec : + Pour cette fois-ci, rechercher avec : Remplir depuis le presse-papiers @@ -266,8 +263,8 @@ Outils de développement Débogage distant par USB - - Afficher les raccourcis de recherche + + Afficher les moteurs de recherche Afficher les suggestions de recherche @@ -588,6 +585,8 @@ Sélectionner un dossier Voulez-vous vraiment supprimer ce dossier ? + + %s supprimera les éléments sélectionnés. %1$s supprimé @@ -643,8 +642,10 @@ %1$s supprimé - + Marque-pages supprimés + + Suppression des dossiers sélectionnés ANNULER @@ -749,6 +750,8 @@ Onglets enregistrés ! + + Collection enregistrée ! Onglet enregistré ! @@ -860,6 +863,10 @@ REFUSER Voulez-vous vraiment supprimer %1$s ? + + La suppression de cet onglet supprimera toute la collection. Vous pouvez créer de nouvelles collections à tout moment. + + Supprimer %1$s ? Supprimer @@ -918,8 +925,6 @@ Supprime automatiquement les données de navigation lorsque vous sélectionnez « Quitter » dans le menu principal Supprime automatiquement les données de navigation lorsque vous sélectionnez « Quitter » dans le menu principal - - Historique de navigation Quitter @@ -1267,6 +1272,8 @@ Cependant, il peut être moins stable. Téléchargez la version bêta de notre n Les identifiants et les mots de passe qui ne sont pas enregistrés seront affichés ici. Les identifiants et les mots de passe ne seront pas enregistrés pour ces sites. + + Supprimer toutes les exceptions Rechercher des identifiants @@ -1305,6 +1312,8 @@ Cependant, il peut être moins stable. Téléchargez la version bêta de notre n Copier le nom d’utilisateur Copier le site + + Ouvrir le site dans le navigateur Afficher le mot de passe @@ -1478,4 +1487,14 @@ Cependant, il peut être moins stable. Téléchargez la version bêta de notre n J’ai compris - + + + Raccourcis + + Rechercher avec + + + Pour cette fois, rechercher avec : + + Afficher les raccourcis de recherche + diff --git a/app/src/main/res/values-fy-rNL/strings.xml b/app/src/main/res/values-fy-rNL/strings.xml index 42b5bfb19..520f356bb 100644 --- a/app/src/main/res/values-fy-rNL/strings.xml +++ b/app/src/main/res/values-fy-rNL/strings.xml @@ -151,13 +151,11 @@ Scanne - Fluchkeppelingen + Sykmasine Ynstellingen sykmasine - - Sykje mei - Diskear sykje mei: + Diskear sykje mei: Keppeling fan klamboerd ôf ynfolje @@ -264,8 +262,8 @@ Untwikkelersark Remote debugging fia USB - - Sykfluchkeppelingen toane + + Sykmasinen toane Syksuggesjes toane @@ -1457,4 +1455,13 @@ OK, begrepen - + + + Fluchkeppelingen + + Sykje mei + + Diskear sykje mei: + + Sykfluchkeppelingen toane + diff --git a/app/src/main/res/values-gn/strings.xml b/app/src/main/res/values-gn/strings.xml index c23fe2606..d7c545640 100644 --- a/app/src/main/res/values-gn/strings.xml +++ b/app/src/main/res/values-gn/strings.xml @@ -153,13 +153,11 @@ Moha’ãnga - Mbopya’eha + Hekaha mongu’eha Hekaha ñemboheko - - Eheka amo - Ko’ág̃a, eheka hendive: + Ko’ág̃a, eheka hendive: Emoĩmba juajuha kuatiajokoha guive @@ -267,8 +265,8 @@ Mboguatahára rembipuru Ñemopotĩ okayguáva USB rupi - - Ehechauka jeheka mbopya’eha + + Ehechauka hekaha mongu’eha Ehechauka ñemoñe’ẽ jehekarã @@ -586,6 +584,8 @@ ¿Añetehápepa emboguetese ko marandurenda? + + %s omboguéta umi mba’epuru poravopyre. Mboguepyre %1$s @@ -641,8 +641,10 @@ Emboguete %1$s - + Techaukaha mboguepyre + + Embogue marandurenda poravopyre MBOGUEVI @@ -738,6 +740,8 @@ %d tendayke poravopyre ¡Tendayke ñongatupyre! + + Ñembyaty ñongatupyre ¡Tendayke ñongatupyre! @@ -847,6 +851,10 @@ MBOTOVE ¿Emboguetesépa añetehápe %1$s? + + Emboguetévo ko tendayke omboguéta opaite mbyatypyre. Emoheñoikuaa mbyatypyre pyahu ejapose vove. + + ¿Emboguete %1$s? Mboguete @@ -902,8 +910,6 @@ Embogue ijehegui kundahára mba’ekuaarã eiporavóvo "Ñesẽ" pe jeporavorã guasúpe Embogue ijehegui kundahára mba’ekuaarã eiporavóvo "Ñesẽ" pe jeporavorã guasúpe - - Kundahára rembiasakue Ñesẽ @@ -1256,6 +1262,8 @@ Ápe ojehecháta tembiapo ñepyrũ ha ñe’ẽñemi oñeñongatu’ỹva. Noñeñongatumo’ãi tembiapo ñepyrũ ha ñe’ẽñemi ko’ã tendápe g̃uarã. + + Emboguete opaite oĩ’ỹva Eheka tembiapo ñepyrũ @@ -1294,6 +1302,8 @@ Emonguatia puruhára réra Emonguatia tenda + + Embojuruja tenda kundahárape Ehechauka ñe’ẽñemi @@ -1472,4 +1482,13 @@ Oĩma, aikumby - + + + Mbopya’eha + + Eheka amo + + Ko’ág̃a, eheka hendive: + + Ehechauka jeheka mbopya’eha + diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 1ad6ea0e7..95f1bc3c0 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -147,13 +147,11 @@ Skeniraj - Prečaci + Tražilica Traži postavke tražilice - - Traži pomoću - Ovaj put traži pomoću: + Ovaj puta pretražuj s: Umetni poveznicu iz međuspremnika @@ -261,8 +259,8 @@ Alati za programere Daljinsko uklanjanje grešaka putem USB-a - - Prikaži prečace za pretraživanje + + Prikaži tražilice Prikaži prijedloge za pretraživanje @@ -582,6 +580,8 @@ Odaberi mapu Stvarno želiš izbrisati ovu mapu? + + %s će obrisati odabrane stavke. Izbrisano: %1$s @@ -637,8 +637,10 @@ Izbrisano: %1$s - + Zabilješke izbrisane + + Brisanje odabranih mapa PONIŠTI @@ -733,6 +735,8 @@ %d kartica odabrana Kartice su spremljene! + + Zbirka spremljena! Kartica je spremljena! @@ -838,6 +842,10 @@ ZABRANI Sigurno želiš izbrisati %1$s? + + Brisanjem ove kartice obrisat ćete cijelu zbirku. Možete napraviti novu zbirku u bilo koje vrijeme. + + Obriši %1$s? Izbriši @@ -1240,6 +1248,8 @@ Ovdje će se prikazati prijave i lozinke koje nisu spremljene. Prijave i lozinke neće se spremiti za te web-stanice. + + Obriši sve iznimke Traži prijave @@ -1278,6 +1288,8 @@ Kopiraj korisničko ime Kopiraj web-stranicu + + Otvori stranicu u pregledniku Prikaži lozinku @@ -1457,4 +1469,13 @@ U redu, shvaćam - + + + Prečaci + + Traži pomoću + + Ovaj put traži pomoću: + + Prikaži prečace za pretraživanje + diff --git a/app/src/main/res/values-hsb/strings.xml b/app/src/main/res/values-hsb/strings.xml index d2ed79c9f..94089fe56 100644 --- a/app/src/main/res/values-hsb/strings.xml +++ b/app/src/main/res/values-hsb/strings.xml @@ -24,6 +24,29 @@ Wočinjene rajtarki: %1$s. Podótkńće so, zo byšće rajtarki přepinał. + + Wubrane: %1$d + + Nowu zběrku přidać + + Mjeno + + Zběrku wubrać + + Wjacewuběranski modus wopušćić + + Wubrane rajtarki do zběrki składować + + %1$s wubrany + + %1$s hižo njewubrany + + Wjacewuběranski modus je so wopušćił + + Wjacewuběranski modus je so zmóžnił, wubjerće rajtarki, zo byšće je do zběrki składował + + Wubrany + %1$s so přez Mozilla zhotowja. @@ -511,6 +534,9 @@ %1$s (priwatny modus) + + Składować + Historiju zhašeć diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 34b10de40..baff20113 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -150,13 +150,11 @@ Beolvasás - Gyorsbillentyűk + Keresőszolgáltatás Keresőszolgáltatás-beállítások - - Keresés ezzel: - Ezúttal keressen a következővel: + Ezúttal keressen a következővel: Hivatkozás kitöltése a vágólapról @@ -264,8 +262,8 @@ Fejlesztői eszközök Távoli hibakeresés USB-n - - Keresési gyorsparancsok megjelenítése + + Keresőszolgáltatások megjelenítése Keresési javaslatok @@ -1469,4 +1467,13 @@ Rendben, értem - + + + Gyorsbillentyűk + + Keresés ezzel: + + Ezúttal keressen a következővel: + + Keresési gyorsparancsok megjelenítése + diff --git a/app/src/main/res/values-hy-rAM/strings.xml b/app/src/main/res/values-hy-rAM/strings.xml index 3f6f99682..65af986e7 100644 --- a/app/src/main/res/values-hy-rAM/strings.xml +++ b/app/src/main/res/values-hy-rAM/strings.xml @@ -149,13 +149,11 @@ Սկանավորել - Դյուրանցումներ + Որոնիչ Որոնիչի կարգավորումներ - - Որոնել հետևյալում՝ - Այս անգամ որոնել հետևյալով՝ + Այս անգամ որոնել հետևյալով՝ Լրացնել հղումը սեղմատախտակից @@ -263,8 +261,8 @@ Մշակողի գործիքներ Հեռակա վրիպազերծում USB-ով - - Ցուցադրել որոնման դյուրացումները + + Ցուցադրել որոնիչները Ցուցադրել որոնման հուշումներ @@ -575,6 +573,8 @@ Ընտրել պանակ Համոզվա՞ծ եք, որ ցանկանում եք ջնջել այս պանակը: + + %s-ը կջնջի ընտրված միույթները: %1$s-ը ջնջվել է @@ -630,8 +630,10 @@ Ջնջվել է %1$s-ը - + Էջանիշը ջնջվեց + + Ընտրված պանակների ջնջում ՀԵՏԱՐԿԵԼ @@ -726,6 +728,8 @@ %d ներդիր է ընտրված Ներդիրները պահպանված են: + + Հավաքածուն պահպանվել է Ներդիրը պահպանված է: @@ -833,6 +837,10 @@ ԱՐԳԵԼԵԼ Համոզվա՞ծ եք, որ ցանկանում եք ջնջել %1$s-ը։ + + Այս ներդիրի ջնջումը կհեռացնի ամբողջ հավաքածուն: Կարող եք ստեգղծել նոր հավաքածու ցանկացած ժամանակ: + + Ջնջե՞լ %1$s-ը: Ջնջել @@ -1231,6 +1239,8 @@ Մուտքանունները և գաղտնաբառերը, որոնք չեն պահպանվել, կցուցադրվեն այստեղ: Մուտքանունները և գաղտնաբառերը չեն պահպանվի այս կայքերի համար: + + Ջնջել բոլոր բացառությունները Որոնել մուտքանուններ @@ -1270,6 +1280,8 @@ Պատճենել օգտվողի անունը Պատճենել կայքը + + Բացել կայքը դիտարկիչում Ցուցադրել գաղտնաբառը @@ -1445,4 +1457,13 @@ Հասկանալի է - + + + Դյուրանցումներ + + Որոնել հետևյալում՝ + + Այս անգամ որոնել հետևյալով՝ + + Ցուցադրել որոնման դյուրացումները + diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 5e5d2b00d..de28339d1 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -151,14 +151,11 @@ Leggi - Scelte rapide + Motore di ricerca Impostazioni motori di ricerca - - Cerca con - - Adesso cerca con: + Adesso cerca con: Copia il link dagli appunti @@ -269,8 +266,8 @@ Debug remoto tramite USB - - Mostra le scorciatoie di ricerca + + Visualizza i motori di ricerca Mostra suggerimenti di ricerca @@ -1493,4 +1490,14 @@ OK, tutto chiaro - + + + Scelte rapide + + Cerca con + + + Adesso cerca con: + + Mostra le scorciatoie di ricerca + diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index dacb1a106..a5acf32f2 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -24,6 +24,22 @@ %1$s לשוניות פתוחות. יש להקיש כדי להחליף לשוניות. + + הוספת אוסף חדש + + שם + + בחירת אוסף + + יציאה ממצב בחירה מרובה + + שמירת הלשוניות שנבחרו לאוסף + + + בוצעה יציאה ממצב בחירה מרובה + + בוצעה כניסה למצב בחירה מרובה, יש לבחור בלשוניות כדי לשמור לאוסף + ‏%1$s נוצר על־ידי Mozilla. @@ -32,7 +48,7 @@ הפעלה זו היא הפעלה פרטית - %1$s מנקה את היסטוריית החיפוש והגלישה שלך מלשוניות פרטיות בעת סגירתן או כשהיישומון נסגר. פעולה זו אמנם לא הופכת אותך לאלמוני כלפי אתרים או ספק האינטרנט שלך, אבל כן מקלה עליך בשמירה על הפעולות המקוונות שלך מפני כל מי שמשתמש במכשיר זה. + ‏%1$s מנקה את היסטוריית החיפוש והגלישה שלך מלשוניות פרטיות בעת סגירתן או כשהיישומון נסגר. פעולה זו אמנם לא הופכת אותך לאלמוני כלפי אתרים או ספק האינטרנט שלך, אבל כן מקלה עליך בשמירה על הפעולות המקוונות שלך מפני כל מי שמשתמש במכשיר זה. מיתוסים נפוצים על גלישה פרטית @@ -143,13 +159,11 @@ סריקה - קיצורי דרך + מנוע חיפוש הגדרות מנוע חיפוש - - חיפוש באמצעות - הפעם, לחפש באמצעות: + הפעם, לחפש באמצעות: מילוי קישור מהלוח @@ -254,8 +268,8 @@ כלי פיתוח ניפוי שגיאות מרחוק דרך USB - - הצגת קיצורי דרך לחיפוש + + הצגת מנועי חפוש הצגת הצעות חיפוש @@ -499,6 +513,9 @@ ‏%1$s (מצב פרטי) + + שמירה + מחיקת היסטוריה @@ -1421,4 +1438,13 @@ בסדר, הבנתי - + + + קיצורי דרך + + חיפוש באמצעות + + הפעם, לחפש באמצעות: + + הצגת קיצורי דרך לחיפוש + diff --git a/app/src/main/res/values-ka/strings.xml b/app/src/main/res/values-ka/strings.xml index d58acebf4..df45a9797 100644 --- a/app/src/main/res/values-ka/strings.xml +++ b/app/src/main/res/values-ka/strings.xml @@ -146,14 +146,11 @@ წაკითხვა - მალსახმობები + საძიებო სისტემა საძიებო სისტემის პარამეტრები - - ძიება - - ძიებისთვის გამოიყენეთ: + ამჯერად, მოსაძიებლად გამოიყენეთ: ბმულის შევსება აღებული ასლით @@ -263,8 +260,8 @@ დაშორებული გამართვა USB-ით - - ძიების მალსახმობები + + საძიებო სისტემების ჩვენება ძიების შემოთავაზების ჩვენება @@ -576,6 +573,8 @@ საქაღალდის მითითება ნამდვილად გსურთ ამ საქაღალდის წაშლა? + + %s წაშლის მონისნულებს. წაიშალა %1$s @@ -632,8 +631,10 @@ წაიშალა %1$s - + სანიშნები წაიშალა + + იშლება მითითებული საქაღალდეები დაბრუნება @@ -726,6 +727,8 @@ %d ჩანართია შერჩეული ჩანართები შენახულია! + + კრებულის შენახულია! ჩანართი შენახულია! @@ -831,6 +834,10 @@ უარყოფა ნამდვილად გსურთ, წაიშალოს %1$s? + + ამ ჩანართის წაშლით, მთლიანი კრებული წაიშლება. ახალი კრებულების შექმნა, ნებისმიერ დროს შეგეძლებათ. + + წაიშალოს %1$s? წაშლა @@ -886,8 +893,6 @@ წაიშლება დათვალიერებული გვერდების მონაცემები მენიუში „გამოსვლაზე“ დაჭერისას წაიშლება დათვალიერებული გვერდების მონაცემები მენიუში „გამოსვლაზე“ დაჭერისას - - დათვალიერების ისტორია გამოსვლა @@ -1234,6 +1239,8 @@ ანგარიშის მონაცემები არ შეინახება ამ საიტებისთვის. + + ყველა გამონაკლისის წაშლა ანგარიშების ძიება @@ -1273,6 +1280,8 @@ მომხმარებლის ასლი საიტის ასლი + + საიტის ბრაუზერში გახსნა პაროლის გამოჩენა @@ -1448,4 +1457,14 @@ კარგი, გასაგებია - + + + მალსახმობები + + ძიება + + + ძიებისთვის გამოიყენეთ: + + ძიების მალსახმობები + diff --git a/app/src/main/res/values-kab/strings.xml b/app/src/main/res/values-kab/strings.xml index d49539e2b..e06544d66 100644 --- a/app/src/main/res/values-kab/strings.xml +++ b/app/src/main/res/values-kab/strings.xml @@ -148,13 +148,11 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Snirem - Inegzumen + Amsedday n unadi Iɣewwaṛen n umsedday n unadi - - Nadi s - Tikkelt-agi, nadi s: + Tikkelt-agi, nadi s: Ččaṛ sef tkatut ɣef afus @@ -262,8 +260,8 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Ifecka n tneflit Taseɣtayt tanmeggagt s USB - - Sken anadi n yinegzumen + + Sken-d imseddayen n unadi Sken isumar n unadi @@ -1468,4 +1466,13 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara IH, awi-t-id - + + + Inegzumen + + Nadi s + + Tikkelt-agi, nadi s: + + Sken anadi n yinegzumen + diff --git a/app/src/main/res/values-kk/strings.xml b/app/src/main/res/values-kk/strings.xml index 6cc73e343..9270eb873 100644 --- a/app/src/main/res/values-kk/strings.xml +++ b/app/src/main/res/values-kk/strings.xml @@ -145,13 +145,11 @@ Сканерлеу - Жарлықтар + Іздеу жүйесі Іздеу жүйесінің параметрлері - - Көмегімен іздеу - Осы рет, келесімен іздеу: + Осы рет, келесімен іздеу: Алмасу буферінен сілтемені кірістіру @@ -258,8 +256,8 @@ Әзірлеуші құралдары USB арқылы қашықтан жөндеу - - Іздеу жарлықтарын көрсету + + Іздеу жүйелерін көрсету Іздеу ұсыныстарын көрсету @@ -1450,4 +1448,13 @@ Жақсы, түсіндім - + + + Жарлықтар + + Көмегімен іздеу + + Осы рет, келесімен іздеу: + + Іздеу жарлықтарын көрсету + diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index e5804fd6a..6997a10e0 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -27,6 +27,32 @@ 열린 탭 %1$s개. 탭을 전환하려면 누르세요. + + %1$d개 선택됨 + + 새 컬렉션 추가 + + 이름 + + 컬렉션 선택 + + + 다중 선택 모드 종료 + + 선택한 탭을 컬렉션에 저장 + + + %1$s 선택됨 + + + %1$s 선택 취소됨 + + 다중 선택 모드 종료됨 + + 다중 선택 모드로 전환됨, 컬렉션에 저장할 탭을 선택하세요 + + 선택됨 + %1$s는 Mozilla에서 제작했습니다. @@ -111,7 +137,7 @@ 새 탭 - 모음집에 저장 + 컬렉션에 저장 공유 @@ -155,14 +181,11 @@ 스캔 - 바로 가기 + 검색 엔진 검색 엔진 설정 - - 검색 - - 이번에 사용할 검색 엔진: + 이번에 사용할 검색 엔진: 클립보드로부터 링크 채우기 @@ -271,8 +294,8 @@ 개발자 도구 USB 원격 디버깅 - - 검색 바로 가기 표시 + + 검색 엔진 표시 검색 제안 표시 @@ -472,7 +495,7 @@ 탭 열기 - 모음집에 저장 + 컬렉션에 저장 모든 탭 공유 @@ -484,7 +507,7 @@ 탭 모드 전환 - 모음집에서 탭 삭제 + 컬렉션에서 탭 삭제 탭 닫기 @@ -496,7 +519,7 @@ 탭 공유 - 모음집에 탭 저장 + 탭을 컬렉션에 저장 탭 메뉴 @@ -511,11 +534,11 @@ 현재 세션 이미지 - 모음집에 저장 + 컬렉션에 저장 - 모음집 삭제 + 컬렉션 삭제 - 모음집 이름 변경 + 컬렉션 이름 변경 열린 탭 @@ -526,6 +549,9 @@ %1$s (사생활 보호 모드) + + 저장 + 기록 삭제 @@ -723,9 +749,9 @@ - 모음집 + 컬렉션 - 모음집 메뉴 + 컬렉션 메뉴 중요한 것들을 모으세요 @@ -735,13 +761,13 @@ 탭 선택 - 모음집 선택 + 컬렉션 선택 - 모음집 이름 + 컬렉션 이름 - 새 모음집 추가 + 새 컬렉션 추가 모두 선택 @@ -762,7 +788,7 @@ 탭이 저장되었습니다! - 모음집 저장됨! + 컬렉션 저장됨! 탭이 저장되었습니다! @@ -776,7 +802,7 @@ 보기 - 모음집 %d개 + 컬렉션 %d개 @@ -836,10 +862,10 @@ 제공: - 모음집 삭제됨 + 컬렉션 삭제됨 - 모음집 이름 변경됨 + 컬렉션 이름 변경됨 탭 삭제됨 @@ -876,9 +902,9 @@ %1$s 파일을 삭제하시겠습니까? - 이 탭을 삭제하면 전체 모음집이 삭제됩니다. 언제든지 새 모음집을 만들 수 있습니다. + 이 탭을 삭제하면 전체 컬렉션이 삭제됩니다. 언제든지 새 컬렉션을 만들 수 있습니다. - %1$s 모음집을 삭제하시겠습니까? + %1$s 컬렉션을 삭제하시겠습니까? 삭제 @@ -1505,4 +1531,14 @@ 확인 - + + + 바로 가기 + + 검색 + + + 이번에 사용할 검색 엔진: + + 검색 바로 가기 표시 + diff --git a/app/src/main/res/values-lo/strings.xml b/app/src/main/res/values-lo/strings.xml index 579f17bd9..f1f9830c4 100644 --- a/app/src/main/res/values-lo/strings.xml +++ b/app/src/main/res/values-lo/strings.xml @@ -142,14 +142,8 @@ ສະແກນ - - ທາງລັດ ການຕັ້ງຄ່າຂອງເຄື່ອງມືຄົ້ນຫາ - - ຄົ້ນຫາດ້ວຍ - - ຄັ້ງນີ້ ຄົ້ນຫາດ້ວຍ: ເຕີມລີ້ງຈາກຄິບບອດ @@ -258,8 +252,6 @@ ການດີບັກທາງໄກຜ່ານທາງ USB - - ສະແດງທາງລັດການຄົ້ນຫາ ສະແດງຜົນການແນະນຳການຄົ້ນຫາ @@ -634,7 +626,7 @@ ລຶບ %1$s ແລ້ວ - + ລຶບບຸກມາກແລ້ວ ເອົາກັບຄືນ @@ -834,6 +826,8 @@ ປະຕິເສດ ທ່ານແນ່ໃຈແລ້ວບໍ່ວ່າທ່ານຕ້ອງການລຶບ %1$s? + + ລຶບ %1$s? ລຶບ @@ -1111,4 +1105,43 @@ ຕົວຕິດຕາມຄຸກກີ້ Cross-Site + + + ສຳເນົາ + + ວາງ & ໄປ + + ວາງ + + + ຍົກເລີກ + + ເພີ່ມ + + + ຖາມເພື່ອບັນທຶກ + + ບໍ່ຕ້ອງບັນທຶກ + + ຕື່ມຂໍ້ມູນອັດຕະໂນມັດ + + ເປີດ + + ປິດ + + ເຊື່ອມຕໍ່ຄືນໃຫມ່ + + ເຂົ້າສູ່ລະບົບເພື່ອ Sync + + ບັກທຶກການລັອກອິນໄວ້ + + + + ທາງລັດ + + ຄົ້ນຫາດ້ວຍ + + ຄັ້ງນີ້ ຄົ້ນຫາດ້ວຍ: + + ສະແດງທາງລັດການຄົ້ນຫາ diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 51452ce7b..e88ab49ec 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -148,14 +148,9 @@ Nuskaityti - Leistukai + Ieškyklė Ieškyklės nuostatos - - Ieškoti per - - Šįkart ieškoti su: - Atverti saitą iš iškarpinės @@ -263,9 +258,8 @@ Programuotojo priemonės Nuotolinis derinimas per USB - - Rodyti paieškos leistukus - + + Rodyti ieškykles Rodyti paieškos siūlymus @@ -1471,4 +1465,15 @@ Gerai, supratau - + + + Leistukai + + Ieškoti per + + Šįkart ieškoti su: + + + Rodyti paieškos leistukus + + diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 01954b6c4..bab02a0e1 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -24,6 +24,22 @@ %1$s åpne faner. Trykk for å bytte fane. + + %1$d valgt + + Legg til ny samling + + Navn + + + Velg samling + + Lagre valgte faner i samlingen + + Valgte %1$s + + Valgt + %1$s er produsert av Mozilla. @@ -514,6 +530,9 @@ %1$s (privatmodus) + + Lagre + Slett historikk @@ -1126,7 +1145,7 @@ Bare i tilpassede faner - Kryptominere + Kryptoutvinnere Fingerprinters Blokkert @@ -1142,7 +1161,7 @@ Blokkerer informasjonskapsler som annonsenettverk og analyseselskap bruker for å sammenstille aktivitet en din på nettet på tvers av nettsteder. - Kryptominere + Kryptoutvinnere Forhindrer ondsinnede skript som får tilgang til enheten din for å utvinne digitale valutaer. diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index 1d5ee0a68..8fc545e42 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -47,6 +47,8 @@ @color/prompt_login_edit_text_cursor_color_dark_theme #C689FF #00B3F4 + @color/search_suggestion_indicator_icon_color_dark_theme + @color/search_suggestion_indicator_icon_bookmark_color_dark_theme @color/tab_tray_item_text_dark_theme diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index da3638ceb..adcc99381 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -154,13 +154,11 @@ Scannen - Snelkoppelingen + Zoekmachine Instellingen zoekmachine - - Zoeken met - Deze keer zoeken met: + Deze keer zoeken met: Koppeling vanaf klembord invullen @@ -268,8 +266,8 @@ Ontwikkelaarshulpmiddelen Remote debugging via USB - - Zoeksnelkoppelingen tonen + + Zoekmachines tonen Zoeksuggesties tonen @@ -1467,4 +1465,13 @@ OK, begrepen - + + + Snelkoppelingen + + Zoeken met + + Deze keer zoeken met: + + Zoeksnelkoppelingen tonen + diff --git a/app/src/main/res/values-nn-rNO/strings.xml b/app/src/main/res/values-nn-rNO/strings.xml index 70b0566dd..c135de51a 100644 --- a/app/src/main/res/values-nn-rNO/strings.xml +++ b/app/src/main/res/values-nn-rNO/strings.xml @@ -148,8 +148,12 @@ Skann + + Søkjemotor Innstillingar for søkjemotor + + Denne gongen, søk med: Fyll inn lenke frå utklippstavla @@ -259,6 +263,8 @@ Fjernfeilsøking via USB + + Vis søkjemotorar Vis søkjeforslag diff --git a/app/src/main/res/values-oc/strings.xml b/app/src/main/res/values-oc/strings.xml index 3d7507109..e67e6691b 100644 --- a/app/src/main/res/values-oc/strings.xml +++ b/app/src/main/res/values-oc/strings.xml @@ -130,6 +130,10 @@ Aparéncia + + Connexion impossibla. Esquèma d’URL desconegut. + Lenga seleccionada @@ -144,13 +148,11 @@ Escanerizar - Acorchis + Motor de recèrca Paramètres del motor de recèrca - - Recercar amb - Aqueste còp, recercar amb : + Aqueste còp, recercar amb : Utilizar lo ligam del quichapapièr @@ -257,8 +259,8 @@ Aisinas pels desvolopaires Desbugatge distant per USB - - Mostrar los acorchis de recèrca + + Mostrar motors de recèrca Mostrar las suggestions de recèrca @@ -715,6 +717,8 @@ %d onglet seleccionat Onglets enregistrats ! + + Colleccion enregistrada Onglet enregistrat ! @@ -763,6 +767,8 @@ Cap de periferic pas connectat + + Ne saber mai sul mandadís d’onglets… Connectar un autre periferic… @@ -828,6 +834,8 @@ URL copiada + + Va venir lo tèxt dels sites mai grand o mai pichon Talha de poliça @@ -856,12 +864,16 @@ La session de la màger part dels sites se tamparà Imatges e fichièrs en cache + + Libèra d’espaci d’emmagazinatge Permissions dels sites Suprimir las donadas de navegacion Suprimir las donadas de navegacion en quitant + + Suprimís automaticament las donadas de navegacion quand seleccionatz « Quitar » al menú principal Sortir @@ -1177,10 +1189,14 @@ Amagar lo senhal + + Protegissètz vòstres identificants e senhals Mai tard O configurar ara + + Desverrolhatz lo periferic Nom (A-Z) @@ -1310,4 +1326,13 @@ Òc, plan comprés - + + + Acorchis + + Recercar amb + + Aqueste còp, recercar amb : + + Mostrar los acorchis de recèrca + diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index a85a6e3c3..7dbafae79 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -149,13 +149,11 @@ Digitalizar - Atalhos + Mecanismo de pesquisa Configurações de mecanismos de pesquisa - - Pesquisar com - Desta vez, pesquisar com: + Desta vez, pesquisar com: Usar link da área de transferência @@ -262,8 +260,8 @@ Ferramentas do desenvolvedor Depuração remota via USB - - Mostrar atalhos de pesquisa + + Mostrar mecanismos de pesquisa Mostrar sugestões de pesquisa @@ -1461,4 +1459,13 @@ OK, entendi - + + + Atalhos + + Pesquisar com + + Desta vez, pesquisar com: + + Mostrar atalhos de pesquisa + diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 1a640b8cf..cd3a32725 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -25,6 +25,19 @@ %1$s separadores abertos. Toque para mudar de separador. + + %1$d selecionados + + Adicionar nova coleção + + Nome + + Selecionar coleção + + Sair do modo de seleção múltipla + + Guardar selecionados separadores na coleção + %1$s é criado pela Mozilla. @@ -149,13 +162,11 @@ Digitalizar - Atalhos + Motor de pesquisa Definições do motor de pesquisa - - Pesquisar com - Desta vez, pesquisar com: + Desta vez, pesquisar com: Preencher ligação da área de transferência @@ -263,8 +274,8 @@ Depuração remota via USB - - Mostrar atalhos de pesquisa + + Mostrar motores de pesquisa Mostrar sugestões de pesquisa @@ -1464,4 +1475,13 @@ OK, percebi - + + + Atalhos + + Pesquisar com + + Desta vez, pesquisar com: + + Mostrar atalhos de pesquisa + diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 3b3a5ae84..45557d742 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -23,6 +23,29 @@ %1$s file deschise. Atinge pentru a comuta filele. + + %1$d selectate + + Adaugă o colecție nouă + + Denumire + + Selectează colecția + + Ieși din modul de selecție multiplă + + Salvează în colecție filele selectate + + %1$s selectate + + %1$s neselectate + + Ai ieșit din modul de selectare multiplă + + După ce intri în modul de selectare multiplă, selectează filele de salvat într-o colecție + + Selectate + %1$s este realizat de Mozilla. @@ -145,13 +168,11 @@ Scanează - Comenzi rapide + Motor de căutare Setări pentru motorul de căutare - - Căutare cu - De data aceasta, caută cu: + De data aceasta, caută cu: Completează linkul din clipboard @@ -254,13 +275,13 @@ Colectare de date - Politica de confidențialitate + Notificare privind confidențialitatea Unelte pentru dezvoltatori Depanare de la distanță prin USB - - Afișează comenzile rapide pentru căutări + + Afișează motoare de căutare Afișează sugestii de căutare @@ -294,7 +315,7 @@ File deschise - Deconectare + Deconectează-te Numele dispozitivului @@ -505,6 +526,9 @@ %1$s (mod privat) + + Salvează + Șterge istoricul @@ -570,6 +594,8 @@ Selectează dosarul Sigur vrei să ștergi acest dosar? + + %s va șterge elementele selectate. %1$s șters @@ -624,8 +650,10 @@ %1$s șters - + Marcaje șterse + + Se șterg dosarele selectate ANULEAZĂ @@ -639,7 +667,7 @@ Secure settings status and a button to modify site permissions --> Fișă de setări rapide - Recomandată + Opțiune recomandată Gestionează permisiunile pentru site-uri @@ -662,11 +690,11 @@ Solicită pentru a permite - Blocat + Blocat(ă) Permis - Blocat de Android + Blocat(ă) de Android Excepții @@ -720,6 +748,8 @@ %d filă selectată File salvate! + + Colecție salvată! Filă salvată! @@ -825,6 +855,10 @@ REFUZĂ Sigur vrei să ștergi %1$s? + + Ștergerea acestei file va șterge toată colecția. Poți crea în orice moment colecții noi. + + Ștergi %1$s? Șterge @@ -841,7 +875,7 @@ Dimensiunea fontului - Mărime automată a fontului + Dimensionare automată pentru fonturi Dimensiunea fontului va coincide cu cea din setările Android. Dezactivează pentru a gestiona aici dimensiunea fontului. @@ -900,8 +934,8 @@ Firefox Preview este acum Firefox Nightly - Firefox Nightly se actualizează în fiecare seară și are funcționalități experimentale noi - Dar poate fi mai puțin stabil. Descarcă browserul nostru beta pentru o experiență mai stabilă. + Firefox Nightly se actualizează în fiecare seară și are funcționalități experimentale noi. + Însă poate fi mai puțin stabil. Descarcă browserul nostru beta pentru o experiență mai stabilă. Descarcă Firefox Beta pentru Android @@ -995,7 +1029,7 @@ Am proiectat %s să îți dea control asupra a ceea ce partajezi online și ce partajezi cu noi. - Citește politica noastră de confidențialitate + Citește notificarea noastră privind confidențialitatea Închide @@ -1040,9 +1074,9 @@ %s va înceta să se mai sincronizeze cu contul tău, dar nu va șterge nimic din datele de navigare de pe acest dispozitiv. - Deconectare + Deconectează-te - Anulare + Anulează Dosarele implicite nu pot fi editate @@ -1149,7 +1183,7 @@ Defecțiuni - Politică de confidențialitate + Notificare privind confidențialitatea Cunoaște-ți drepturile @@ -1223,6 +1257,8 @@ Aici vor apărea datele de autentificare și parolele nesalvate. Datele de autentificare și parolele nu vor fi salvate pentru aceste site-uri. + + Șterge toate excepțiile Caută date de autentificare @@ -1261,6 +1297,8 @@ Copiază numele de utilizator Copiază site-ul + + Deschide site-ul în browser Afișeză parola @@ -1436,4 +1474,13 @@ Ok, am înțeles - + + + Comenzi rapide + + Căutare cu + + De data aceasta, caută cu: + + Afișează comenzile rapide pentru căutări + diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 9844559eb..0e2d38b00 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -154,13 +154,11 @@ Cканировать - Ярлыки + Поисковая система Настройки поисковых систем - - Искать в - В этот раз искать с помощью: + В этот раз искать с помощью: Вставить ссылку из буфера обмена @@ -269,8 +267,8 @@ Инструменты разработчика Удалённая отладка по USB - - Ссылки на поисковые системы + + Показать поисковые системы Поисковые предложения @@ -588,6 +586,8 @@ Выбрать папку Вы действительно хотите удалить эту папку? + + %s удалит выбранные элементы. %1$s удалён @@ -643,8 +643,10 @@ %1$s удалён - + Закладки удалены + + Удаление выбранных папок ОТМЕНИТЬ @@ -748,6 +750,8 @@ Вкладки сохранены! + + Коллекция сохранена! Вкладка сохранена! @@ -859,6 +863,10 @@ ЗАПРЕТИТЬ Вы уверены, что хотите удалить %1$s? + + Удалив эту вкладку, вы удалите всю коллекцию. Вы можете создавать новые коллекции в любое время. + + Удалить %1$s? Удалить @@ -1261,6 +1269,8 @@ Здесь будут показаны не сохраняемые логины и пароли. Логины и пароли для этих сайтов сохраняться не будут. + + Удалить все исключения Поиск логинов @@ -1299,6 +1309,8 @@ Копировать имя пользователя Копировать сайт + + Открыть сайт в браузере Показать пароль @@ -1472,4 +1484,13 @@ OK, понятно - + + + Ярлыки + + Искать в + + В этот раз искать с помощью: + + Ссылки на поисковые системы + diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 00d2d95a6..1dd733fe0 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -151,14 +151,11 @@ Skenovať - Skratky + Vyhľadávací modul Nastavenia vyhľadávacieho modulu - - Hľadať pomocou - - Vyhľadať pomocou: + Vyhľadať pomocou: Prilepiť odkaz zo schránky @@ -268,8 +265,8 @@ Vývojárske nástroje Vzdialené ladenie cez USB - - Zobrazovať skratky vyhľadávania + + Zobraziť vyhľadávacie moduly Zobrazovať návrhy vyhľadávania @@ -586,6 +583,8 @@ Výber priečinku Naozaj chcete odstrániť tento priečinok? + + %s odstráni vybrané položky. Bol odstránený priečinok %1$s @@ -640,8 +639,10 @@ Bola odstránená záložka %1$s - + Záložky boli odstránené + + Odstraňovanie vybraných priečinkov SPÄŤ @@ -736,6 +737,8 @@ Bola vybraná %d karta Karty boli uložené! + + Kolekcia bola uložená! Karta bola uložená! @@ -842,6 +845,10 @@ ZAMIETNUŤ Naozaj chcete odstrániť kolekciu %1$s? + + Odstránením tejto karty sa odstráni celá kolekcia. Nové kolekcie môžete vytvoriť kedykoľvek. + + Odstrániť %1$s? Odstrániť @@ -1241,6 +1248,8 @@ Tu sa zobrazia prihlasovacie údaje, ktoré sa nebudú ukladať. Pre nasledujúce stránky sa nebudú ukladať prihlasovacie údaje. + + Odstrániť všetky výnimky Hľadať @@ -1279,6 +1288,8 @@ Kopírovať používateľské meno Kopírovať stránku + + Otvoriť stránku v prehliadači Zobraziť heslo @@ -1453,4 +1464,14 @@ Ok, rozumiem - + + + Skratky + + Hľadať pomocou + + + Vyhľadať pomocou: + + Zobrazovať skratky vyhľadávania + diff --git a/app/src/main/res/values-sq/strings.xml b/app/src/main/res/values-sq/strings.xml index e02406d15..c375ba925 100644 --- a/app/src/main/res/values-sq/strings.xml +++ b/app/src/main/res/values-sq/strings.xml @@ -147,13 +147,11 @@ Skanoje - Shkurtore + Motor Kërkimesh Rregullime motorësh kërkimesh - - Kërkoni me - Këtë herë kërko me: + Këtë herë kërko me: Plotësoje lidhjen nga e papastra @@ -261,8 +259,8 @@ Mjete zhvilluesi Diagnostikim së largëti përmes USB-je - - Shfaqni shkurtore kërkimi + + Shfaq motorë kërkimi Shfaq sugjerime kërkimi @@ -575,6 +573,8 @@ Përzgjidhni dosje Jeni i sigurt se doni të fshihet kjo dosje? + + %s do të fshijë objektet e përzgjedhur. %1$s u fshi @@ -629,8 +629,10 @@ U fshi %1$s - + Faqerojtësit u fshinë + + Po fshihen dosjet e përzgjedhura ZHBËJE @@ -724,6 +726,8 @@ %d skedë e përzgjedhur Skedat u ruajtën! + + Koleksioni u ruajt! Skeda u ruajt! @@ -828,6 +832,10 @@ MOHOJE Jeni i sigurt se doni të fshihet %1$s? + + Fshirja e kësaj skede do të fshijë krejt koleksionin. Mund të krijoni koleksione të rinj në çfarëdo kohe. + + Të fshihet %1$s? Fshije @@ -884,8 +892,6 @@ Fshin automatikisht të dhënat e shfletimit, kur përzgjidhni “Dil” nga menuja kryesore Fshin automatikisht të dhënat e shfletimit, kur përzgjidhni \“Dil\” nga menuja kryesore - - Historik shfletimi Dil @@ -1233,6 +1239,8 @@ Këtu do të shfaqen kredenciale hyrjesh dhe fjalëkalime që nuk janë ruajtur. Për këto sajte s’do të ruhen kredenciale hyrjesh dhe fjalëkalime. + + Fshi krejt përjashtimet Kërkoni te kredenciale hyrjesh @@ -1271,6 +1279,8 @@ Kopjo emër përdoruesi Kopjo sajtin + + Hape sajtin në shfletues Shfaqe fjalëkalimin @@ -1447,4 +1457,13 @@ OK, e mora vesh - + + + Shkurtore + + Kërkoni me + + Këtë herë kërko me: + + Shfaqni shkurtore kërkimi + diff --git a/app/src/main/res/values-su/strings.xml b/app/src/main/res/values-su/strings.xml index 983a3183c..c12273970 100644 --- a/app/src/main/res/values-su/strings.xml +++ b/app/src/main/res/values-su/strings.xml @@ -147,13 +147,11 @@ Pinday - Takulan + Mesin Pamaluruh Setélan mesin pamaluruh - - Paluruh maké - Saayeunaeun, paluruh maké: + Saayeunaeun, paluruh maké: Eusian tutumbu tina papan klip @@ -261,8 +259,8 @@ Parabot pamekar Debugging ti kajauhan liwat USB - - Témbongkeun takulan pamaluruhan + + Témbongkeun mesin pamaluruh Témbongkeun anjuran maluruh @@ -579,6 +577,8 @@ Pilih map Yakin anjeun rék mupus ieu folder? + + %s bakal mupus item anu dipilih. Mupus %1$s @@ -634,8 +634,10 @@ Mupus %1$s - + Mupus markah + + Mupus folder anu dipilih BEDO @@ -730,6 +732,8 @@ %d tab dipilih Tab diteundeun! + + Koléksi diteundeun! Tab disimpen! @@ -834,6 +838,10 @@ HULAG Anjeun yakin rék mupus %1$s? + + Mupus ieu tab bakal mupus sakabéh koléksi. Anjeun bisa nyieun koléksi anyar iraha baé. + + Pupus %1$s? Pupus @@ -1241,6 +1249,8 @@ Login jeung kecap sandi anu teu diteundeun bakal ditémbongkeun di dieu. Login jeung kecap sandi moal diteundeun pikeun ieu loka. + + Hapus sadaya pengecualian Paluruh login @@ -1280,6 +1290,8 @@ Niron sandiasma Niron loka + + Buka loka dina pamaluruh Témbongkeun sandi @@ -1456,4 +1468,13 @@ Okéh, Ngarti - + + + Takulan + + Paluruh maké + + Saayeunaeun, paluruh maké: + + Témbongkeun takulan pamaluruhan + diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index 60dc9e5a9..776df3fc4 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -25,6 +25,19 @@ %1$s öppna flikar. Tryck för att växla mellan flikar. + + %1$d vald + + Lägg till ny samling + + Namn + + Välj samling + + Spara valda flikar i samlingen + + Valda + %1$s produceras av Mozilla. @@ -517,6 +530,9 @@ %1$s (Privat läge) + + Spara + Rensa historik diff --git a/app/src/main/res/values-te/strings.xml b/app/src/main/res/values-te/strings.xml index bfef1a9e8..f7ca022ca 100644 --- a/app/src/main/res/values-te/strings.xml +++ b/app/src/main/res/values-te/strings.xml @@ -25,6 +25,9 @@ %1$s తెరిచివున్న ట్యాబులు. ట్యాబుల మధ్య మారడానికి తాకండి. + + పేరు + %1$s‌ని తయారుచేసినది మొజిల్లా. @@ -146,13 +149,11 @@ స్కాన్ చేయి - సత్వరమార్గాలు + శోధన యంత్రం శోధన యంత్ర అమరికలు - - దీనితో వెతుకు - ఈసారి దీనితో వెతుకు: + ఈ సారి దీనితో వెతుకు: క్లిప్‌బోర్డ్ నుండి లంకెను పూరించు @@ -261,8 +262,8 @@ డెవలపర్ పనిముట్లు USB ద్వారా రిమోట్ డీబగ్గింగ్ - - శోధన సత్వరమార్గాలను చూపించు + + శోధన యంత్రాలను చూపించు వెతుకుడు సలహాలను చూపించు @@ -514,6 +515,9 @@ %1$s (అంతరంగిక రీతి) + + భద్రపరుచు + చరిత్రను తొలగించు @@ -1477,4 +1481,13 @@ సరే, అర్థమయ్యింది - + + + సత్వరమార్గాలు + + దీనితో వెతుకు + + ఈసారి దీనితో వెతుకు: + + శోధన సత్వరమార్గాలను చూపించు + diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 13a458b21..699530192 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -149,13 +149,11 @@ Tara - Kısayollar + Arama motoru Arama motoru ayarları - - Bununla ara: - Bir de bununla aramayı deneyin: + Bir de bununla aramayı deneyin: Bağlantıyı panodan al @@ -263,8 +261,8 @@ Geliştirici araçları USB ile uzaktan hata ayıklama - - Arama kısayollarını göster + + Arama motorlarını göster Arama önerilerini göster @@ -578,6 +576,8 @@ Klasör seç Bu klasörü silmek istediğinizden emin misiniz? + + %s seçilen öğeleri silecek. %1$s silindi @@ -632,8 +632,10 @@ %1$s silindi - + Yer imleri silindi + + Seçilen klasörler siliniyor GERİ AL @@ -727,6 +729,8 @@ %d sekme seçildi Sekmeler kaydedildi! + + Koleksiyon kaydedildi! Sekme kaydedildi! @@ -832,6 +836,10 @@ İZİN VERME %1$s koleksiyonunu silmek istediğinize emin misiniz? + + Bu sekmeyi silerseniz tüm koleksiyon silinir. İstediğiniz zaman yeni koleksiyonlar oluşturabilirsiniz. + + %1$s silinsin mi? Sil @@ -1229,6 +1237,8 @@ Kaydedilmeyen hesaplar ve parolalar burada görünecektir. Bu sitelere ait hesaplar ve parolalar kaydedilmeyecektir. + + Tüm istisnaları sil Hesaplarda ara @@ -1267,6 +1277,8 @@ Kullanıcı adını kopyala Siteyi kopyala + + Siteyi tarayıcıda aç Parolayı göster @@ -1441,4 +1453,13 @@ Tamam - + + + Kısayollar + + Bununla ara: + + Bir de bununla aramayı deneyin: + + Arama kısayollarını göster + diff --git a/app/src/main/res/values-trs/strings.xml b/app/src/main/res/values-trs/strings.xml index ca74fd9e7..6e72de559 100644 --- a/app/src/main/res/values-trs/strings.xml +++ b/app/src/main/res/values-trs/strings.xml @@ -151,16 +151,8 @@ Nātsij hue\'ê - - Nānà\'uì\' a\'ngô hiūj u - Sa nagi\'iaj sa nānà\'ui\'i - - Nānà\'uì\' ngà - - - Hìaj nī, nānà\'uì\' ngà: Gāchrūn si enlasê portapâpel @@ -275,8 +267,8 @@ Rasūn nikāj desarroyadôr Guxūn sa kïj ï ngà USB - - Dīgân riña a\'ngô hiūj ga\'ue nānà\'uì\' + + Nāruguì’ nej sa nana’ui’i gīni’iājt Dīgân a\'ngô nuguan\' nikāj dugui\' ngà sa nana\'uî\' @@ -595,6 +587,8 @@ Nāguī karpêta Huā yītïnj ruhuât nādure\'t kārpetâ nan anj + + %s nādure’ej nej sa naguit dan. Ngà nare\' %1$s @@ -651,8 +645,10 @@ Ngà nare\' %1$s - + Ngà nare\' nej sa arâj sun nīchrò\' doj + + Nādure’ nej karpetâ naguit NĀNIKÀJ RŪKÙ @@ -745,6 +741,8 @@ %d rakïj ñanj naguit Nej rakïj ñanj na\'nín sà\'t + + Ngà nanun sà\' nej sa nachra chrē\'t Rakïj ñanj na\'nïnj sà\'t @@ -854,6 +852,8 @@ SĪ GA\'NÏNJT Huā yītïnj ruhuât nādure\'t %1$s anj + + Nādurê\'t %1$s raj Nādūre\' @@ -1491,4 +1491,15 @@ Ga\'ue, ngà garâj da\'nga\' ruhuâj - + + + Nānà\'uì\' a\'ngô hiūj u + + + Nānà\'uì\' ngà + + + Hìaj nī, nānà\'uì\' ngà: + + Dīgân riña a\'ngô hiūj ga\'ue nānà\'uì\' + diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 2752cf6ed..dc26ad8cf 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -24,6 +24,29 @@ %1$s відкритих вкладок. Торкніться, щоб перемкнути вкладки. + + Вибрано %1$d + + Додати нову збірку + + Назва + + Вибрати збірку + + Вихід з режиму вибору + + Зберегти вибрані вкладки до збірки + + Вибрано %1$s + + Скасовано вибір %1$s + + Режим вибору вимкнено + + Режим вибору ввімкнено, виберіть які вкладки зберегти до збірки + + Вибрано + %1$s розроблено Mozilla. @@ -517,6 +540,9 @@ %1$s (Приватний режим) + + Зберегти + Видалити історію diff --git a/app/src/main/res/values-uz/strings.xml b/app/src/main/res/values-uz/strings.xml index 1097f7c84..082743f14 100644 --- a/app/src/main/res/values-uz/strings.xml +++ b/app/src/main/res/values-uz/strings.xml @@ -143,14 +143,10 @@ Tekshirish - - Yorliqlar Qidiruv tizimi sozlamalari - - Izlash: - Bu safar quyidagi bilan izlash: + Bu safar quyidagi bilan izlash: Havolani klipboarddan olish @@ -230,6 +226,74 @@ Boshqa Sync serveri + + Firefox hisobi/Sync serveri oʻzgargan. Oʻzgarishlar amalga oshirshi uchun ilovadan chiqilmoqda… + + Hisob + + Kirish + + Asboblar paneli + + Mavzu + + Moslash + + Xatchoʻplar va tarix kabilarni Firefox hisobingiz bilan sinxronlang + + Firefox hisobi + + Sinxronlashni davom ettirish uchun qayta ulaning + + Til + + Maʼlumotlarni tanlash + + Maʼlumotlarni toʻplash + + Maxfiylik eslatmalari + + Dasturchi asboblari + + USB orqali masofadan nosozlikni tuzatish + + Qidiruv tizimlarini koʻrsatish + + Qidiruv tavsiyalarini koʻrsatish + + Ovozli qidiruvni koʻrsatish + + Maxfiy seanslarda koʻrsatish + + Klipboard tavsiyalarni koʻrsatish + + Brauzer tarixidan izlash + + Xatchoʻplarni izlash + + Hisob sozlamalari + + Havolalarni ilovalarda ochish + + Qoʻshimcha dasturlar + + + + Hozir sinxronlash + + Nimani sinxronlashni tanlang + + Tarix + + Xatchoʻplar + + Loginlar + + Varaqlarni ochish + + Chiqish + + Qurilma nomi Qurilma nomi boʻsh boʻlishi mumkin emas. @@ -249,6 +313,10 @@ and the third is the device model. --> %1$s, %2$s %3$s + + + Qabul qilingan varaqlar + Koʻchirish tugadi @@ -340,4 +408,11 @@ OK, tushundim - + + + Yorliqlar + + Izlash: + + Bu safar quyidagi bilan izlash: + diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 65fdc0699..e9c75f5dd 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -149,13 +149,11 @@ Quét - Tìm kiếm + Công cụ tìm kiếm Cài đặt công cụ tìm kiếm - - Tìm kiếm với - Lần này, tìm kiếm với: + Lần này, tìm kiếm với: Điền liên kết từ bộ nhớ tạm @@ -262,8 +260,8 @@ Công cụ dành cho nhà phát triển Gỡ lỗi từ xa qua USB - - Hiển thị các lối tắt tìm kiếm + + Hiển thị công cụ tìm kiếm Hiển thị gợi ý tìm kiếm @@ -1449,4 +1447,13 @@ OK, đã hiểu - + + + Tìm kiếm + + Tìm kiếm với + + Lần này, tìm kiếm với: + + Hiển thị các lối tắt tìm kiếm + diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index d1e4e6f10..2ebd74c23 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -154,15 +154,12 @@ 扫码 - 快捷操作 + 搜索引擎 搜索引擎设置 - - 可选用下列引擎搜索 - - 更多搜索引擎: + 更多搜索引擎: 打开剪贴板中的链接 @@ -260,7 +257,7 @@ 重新连接以恢复同步 - 语言 + 语言(地区) 数据反馈 @@ -271,8 +268,8 @@ 开发者工具 通过 USB 远程调试 - - 显示搜索快捷操作 + + 显示搜索引擎 显示搜索建议 @@ -1493,4 +1490,14 @@ 我知道了 - + + + 快捷操作 + + 可选用下列引擎搜索 + + + 更多搜索引擎: + + 显示搜索快捷操作 + diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 001d531d5..28cbb7df7 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -152,13 +152,11 @@ 掃描 - 捷徑 + 搜尋引擎 搜尋引擎設定 - - 使用下列引擎搜尋 - 這次使用下列搜尋引擎搜尋: + 這次使用下列搜尋引擎搜尋: 開啟剪貼簿中的鏈結 @@ -268,8 +266,8 @@ 透過 USB 進行遠端除錯 - - 顯示搜尋捷徑 + + 顯示搜尋引擎 顯示搜尋建議 @@ -1483,4 +1481,13 @@ 好,知道了! - + + + 捷徑 + + 使用下列引擎搜尋 + + 這次使用下列搜尋引擎搜尋: + + 顯示搜尋捷徑 + diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index f3ed115f1..35eb091d7 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -52,6 +52,8 @@ + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 619a14af1..9a22639e5 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -71,6 +71,8 @@ #312a64 #FF9059ff #FF0250bb + #008787 + #0060df @color/ink_80 @@ -132,6 +134,8 @@ @color/accent_dark_theme #FFFFFF #9059ff + #2ac3a2 + #0090ed @color/light_grey_05 @@ -238,6 +242,8 @@ @color/add_on_private_browsing_exterior_circle_background_light_theme @color/add_on_private_browsing_interior_icon_background_light_theme @color/prompt_login_edit_text_cursor_color_light_theme + @color/search_suggestion_indicator_icon_color_light_theme + @color/search_suggestion_indicator_icon_bookmark_color_light_theme @color/tab_tray_item_text_light_theme diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index 125190f09..08f64e202 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -86,7 +86,7 @@ pref_key_search_engine_list - pref_key_show_search_shortcuts + pref_key_show_search_engine_shortcuts pref_key_show_search_suggestions pref_key_show_clipboard_suggestions pref_key_search_browsing_history @@ -95,7 +95,6 @@ pref_key_show_search_suggestions_in_privateonboarding pref_key_show_voice_search - pref_key_optimize pref_key_show_site_exceptions diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 04601fc28..e14bfecf9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -167,8 +167,8 @@ Scan - - Search Engine + + Search engine Search engine settings @@ -1456,12 +1456,14 @@ OK, Got It - + Shortcuts Search with - + This time, search with: - + Show search shortcuts + + Search Engine diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index f370730f1..a11de8c72 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -77,6 +77,8 @@ @color/readermode_start_gradient_normal_theme @color/readermode_end_gradient_normal_theme @color/synced_tabs_separator + @color/search_suggestion_indicator_icon_color_normal_theme + @color/search_suggestion_indicator_icon_bookmark_color_normal_theme @color/tab_tray_item_background_normal_theme @color/tab_tray_item_selected_background_normal_theme @@ -208,6 +210,8 @@ @color/add_on_private_browsing_exterior_circle_background_private_theme @color/add_on_private_browsing_interior_icon_background_private_theme @color/prompt_login_edit_text_cursor_color_private_theme + @color/search_suggestion_indicator_icon_color_dark_theme + @color/search_suggestion_indicator_icon_bookmark_color_dark_theme @color/tab_tray_item_background_normal_theme @@ -455,7 +459,7 @@ 0dp -