settings about translations
continuous-integration/drone/push Build is pending Details

This commit is contained in:
Dan Ballard 2024-01-04 01:59:51 -08:00 committed by Gitea
parent d142c10fef
commit ee07e707d2
20 changed files with 118 additions and 84 deletions

View File

@ -12,9 +12,16 @@ Feature: Settings pane opens and can save settings persistently
Given I tap the 'OpenSettingsView' button Given I tap the 'OpenSettingsView' button
And I wait until the text 'Use Light Themes' is present And I wait until the text 'Use Light Themes' is present
When I tap the widget that contains the text "Use Light Themes" When I tap the widget that contains the text "Use Light Themes"
And I tap the widget that contains the text "Block Unknown Contacts"
And I tap the widget that contains the text "Streamer/Presentation Mode" And I tap the widget that contains the text "Streamer/Presentation Mode"
And I tap the widget that contains the text "Enable Experiments" And I expect the switch that contains the text "Streamer/Presentation Mode" to be checked
Then I expect the switch that contains the text "Use Light Themes" to be checked
When I tap the 'OpenSettingsBehaviour' button
And I wait until the text 'Notification Policy' is present
When I tap the widget that contains the text "Block Unknown Contacts"
And I expect the switch that contains the text "Block Unknown Contacts" to be checked
When I tap the 'OpenSettingsExperiments' button
And I wait until the text 'Enable Experiments' is present
When I tap the widget that contains the text "Enable Experiments"
Then I wait until the text 'Enable Group Chat' is present Then I wait until the text 'Enable Group Chat' is present
And I tap the widget that contains the text "Enable Group Chat" And I tap the widget that contains the text "Enable Group Chat"
And I tap the widget that contains the text "Hosting Servers" And I tap the widget that contains the text "Hosting Servers"
@ -24,9 +31,6 @@ Feature: Settings pane opens and can save settings persistently
And I wait until the text 'Download Folder' is present And I wait until the text 'Download Folder' is present
And I fill the "DownloadFolderPicker" field with "/this/is/a/test" And I fill the "DownloadFolderPicker" field with "/this/is/a/test"
And I tap the widget that contains the text "Enable Clickable Links" And I tap the widget that contains the text "Enable Clickable Links"
Then I expect the switch that contains the text "Use Light Themes" to be checked
And I expect the switch that contains the text "Block Unknown Contacts" to be checked
And I expect the switch that contains the text "Streamer/Presentation Mode" to be checked
And I expect the switch that contains the text "Enable Experiments" to be checked And I expect the switch that contains the text "Enable Experiments" to be checked
And I expect the switch that contains the text "Enable Group Chat" to be checked And I expect the switch that contains the text "Enable Group Chat" to be checked
# Not every version of Cwtch Supports Hosting Servers.. # Not every version of Cwtch Supports Hosting Servers..
@ -42,8 +46,14 @@ Feature: Settings pane opens and can save settings persistently
Given I tap the 'OpenSettingsView' button Given I tap the 'OpenSettingsView' button
And I wait until the text 'Use Light Themes' is present And I wait until the text 'Use Light Themes' is present
Then I expect the switch that contains the text "Use Light Themes" to be checked Then I expect the switch that contains the text "Use Light Themes" to be checked
And I expect the switch that contains the text "Block Unknown Contacts" to be checked
And I expect the switch that contains the text "Streamer/Presentation Mode" to be checked And I expect the switch that contains the text "Streamer/Presentation Mode" to be checked
When I tap the 'OpenSettingsBehaviour' button
And I wait until the text 'Notification Policy' is present
And I expect the switch that contains the text "Block Unknown Contacts" to be checked
And I expect the switch that contains the text "Block Unknown Contacts" to be checked
When I tap the 'OpenSettingsExperiments' button
And I wait until the text 'Enable Experiments' is present
And I wait until the text 'Enable Experiments' is present
And I expect the switch that contains the text "Enable Experiments" to be checked And I expect the switch that contains the text "Enable Experiments" to be checked
And I expect the switch that contains the text "Enable Group Chat" to be checked And I expect the switch that contains the text "Enable Group Chat" to be checked
# And I expect the switch that contains the text "Hosting Servers" to be checked # And I expect the switch that contains the text "Hosting Servers" to be checked

View File

@ -3,6 +3,8 @@ Feature: Block unknown contacts setting
Scenario: Carol adds Alice but Alice doesn't see it because Block Unknowns is enabled Scenario: Carol adds Alice but Alice doesn't see it because Block Unknowns is enabled
Given I wait until the widget with type 'ProfileMgrView' is present Given I wait until the widget with type 'ProfileMgrView' is present
Given I tap the 'OpenSettingsView' button Given I tap the 'OpenSettingsView' button
And I wait until the text "Behaviour" is present
When I tap the 'OpenSettingsBehaviour button
And I wait until the text "Block Unknown Contacts" is present And I wait until the text "Block Unknown Contacts" is present
When I tap the widget that contains the text "Block Unknown Contacts" When I tap the widget that contains the text "Block Unknown Contacts"
Then I expect the switch that contains the text "Block Unknown Contacts" to be checked Then I expect the switch that contains the text "Block Unknown Contacts" to be checked

View File

@ -1,6 +1,7 @@
{ {
"@@locale": "cy", "@@locale": "cy",
"@@last_modified": "2023-09-25T21:29:34+02:00", "@@last_modified": "2024-01-04T10:56:20+01:00",
"settingsGroupAbout": "About",
"localeUzbek": "Uzbek \/ Oʻzbekcha", "localeUzbek": "Uzbek \/ Oʻzbekcha",
"profileOfflineAtStart": "Appear Offline at Startup", "profileOfflineAtStart": "Appear Offline at Startup",
"now": "Now", "now": "Now",

View File

@ -1,6 +1,7 @@
{ {
"@@locale": "da", "@@locale": "da",
"@@last_modified": "2023-09-25T21:29:34+02:00", "@@last_modified": "2024-01-04T10:56:20+01:00",
"settingsGroupAbout": "About",
"localeUzbek": "Uzbek \/ Oʻzbekcha", "localeUzbek": "Uzbek \/ Oʻzbekcha",
"profileOfflineAtStart": "Appear Offline at Startup", "profileOfflineAtStart": "Appear Offline at Startup",
"now": "Now", "now": "Now",

View File

@ -1,6 +1,7 @@
{ {
"@@locale": "de", "@@locale": "de",
"@@last_modified": "2023-09-25T21:29:34+02:00", "@@last_modified": "2024-01-04T10:56:20+01:00",
"settingsGroupAbout": "About",
"localeUzbek": "Uzbek \/ Oʻzbekcha", "localeUzbek": "Uzbek \/ Oʻzbekcha",
"profileOfflineAtStart": "Appear Offline at Startup", "profileOfflineAtStart": "Appear Offline at Startup",
"now": "Now", "now": "Now",

View File

@ -1,6 +1,7 @@
{ {
"@@locale": "el", "@@locale": "el",
"@@last_modified": "2023-09-25T21:29:34+02:00", "@@last_modified": "2024-01-04T10:56:20+01:00",
"settingsGroupAbout": "About",
"localeUzbek": "Uzbek \/ Oʻzbekcha", "localeUzbek": "Uzbek \/ Oʻzbekcha",
"profileOfflineAtStart": "Appear Offline at Startup", "profileOfflineAtStart": "Appear Offline at Startup",
"now": "Now", "now": "Now",

View File

@ -1,6 +1,7 @@
{ {
"@@locale": "en", "@@locale": "en",
"@@last_modified": "2023-09-25T21:29:34+02:00", "@@last_modified": "2024-01-04T10:56:20+01:00",
"settingsGroupAbout": "About",
"localeUzbek": "Uzbek \/ Oʻzbekcha", "localeUzbek": "Uzbek \/ Oʻzbekcha",
"profileOfflineAtStart": "Appear Offline at Startup", "profileOfflineAtStart": "Appear Offline at Startup",
"now": "Now", "now": "Now",

View File

@ -1,62 +1,63 @@
{ {
"@@locale": "es", "@@locale": "es",
"@@last_modified": "2023-09-25T21:29:34+02:00", "@@last_modified": "2024-01-04T10:56:20+01:00",
"localeUzbek": "Uzbek \/ Oʻzbekcha", "settingsGroupAbout": "About",
"profileOfflineAtStart": "Appear Offline at Startup", "deleteServerConfirmBtn": "¿Realmente desea borrar el servidor?",
"now": "Now", "defaultScalingText": "Factor de escala del texto",
"xSecondsAgo": "$seconds seconds ago", "groupsOnThisServerLabel": "Grupos alojados en este servidor de Cwtch",
"xMinutesAgo": "$minutes minutes ago", "shareMenuQRCode": "Mostrar código QR",
"xHoursAgo": "$hours hours ago", "experimentQRCodeDescription": "La compatibilidad con códigos QR permite compartir datos (como la identidad del perfil) mediante códigos QR",
"xDaysAgo": "$days days ago", "enableExperimentQRCode": "Códigos QR",
"profileAllowUnknownContacts": "Allow Unknown Contacts", "localeNl": "Holandés \/ Dutch",
"profileBlockUnknownContacts": "Block Unknown Contacts", "localePtBr": "Portugués brasileño \/ Português do Brasil",
"profileDisableProfile": "Disable Profile", "profileAutostartLabel": "Inicio automático",
"profileEnableProfile": "Enable Profile", "profileEnabled": "Habilitar",
"profileAppearOnline": "Appear Online", "profileAutostartDescription": "Controla si el perfil se iniciará automáticamente al iniciar Cwtch",
"contactDisconnect": "Disconnect from Contact (if you do not have Appear Offline set this contact may still be able to reestablish a connection to you)", "profileEnabledDescription": "Activar o Desactivar el perfil.",
"profileAppearOfflineDescription": "By default, when Cwtch profile is enabled it automatically attempts to connect to know contacts, and allows inbound connections. This settings disables those actions and allows you to choose, manually, which contacts to connect to.", "localeSk": "Eslovaco \/ Slovák",
"profileAppearOffline": "Appear Offline", "localeKo": "Coreano \/ 한국어",
"deleteServerConfirmBtn": "Realmente eliminar el servidor", "blodeuweddExperimentEnable": "Asistente Blodeuwedd",
"cannotDeleteServerIfActiveGroups": "There are active groups associated with this Cwtch Server. Please delete them prior to deleting this Cwtch Server entry.", "blodeuweddDescription": "El asistente Blodeuwedd agrega nuevas funciones a Cwtch, como el resumen de la transcripción del chat y la traducción de mensajes a través de un modelo de lenguaje alojado localmente.",
"groupsOnThisServerLabel": "Grupos alojados en este servidor en los que estoy", "blodeuweddNotSupported": "Esta versión de Cwtch se ha compilado sin soporte para Blodeuwedd Assistant.",
"serverinfoNoGroupInfo": "There are no groups associated with this Cwtch Server.", "blodeuweddPath": "El directorio donde se encuentra Blodeuwedd está en tu computadora.",
"preserveHistorySettingDescription": "By default, Cwtch will purge conversation history when Cwtch is shutdown. If this setting is enabled, Cwtch will preserve the conversation history of peer conversations.", "blodeuweddSummarize": "Resumir la conversación",
"defaultPreserveHistorySetting": "Preserve Conversation History", "blodeuweddWarning": "Blodeuwedd utiliza un modelo de idioma local y un conjunto de modelos auxiliares para potenciar su funcionalidad. Estas técnicas suelen ser muy efectivas y no están exentas de errores. \n\nSi bien nos hemos esforzado por minimizar el riesgo, todavía existe la posibilidad de que los resultados de Blodeuwedd sean incorrectos, sin-sentido y\/u ofensivos. \n\nDebido a eso, Blodeuwedd requiere descargar dos componentes adicionales separados de Cwtch, el modelo Blodeuwedd (o un modelo compatible) y el Blodeuwedd Runner. \n\nConsulta https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd para obtener más información sobre cómo obtener estos componentes y configurarlos.",
"localeUk": "Ukrainian \/ українською", "blodeuweddTranslate": "Traducir mensaje",
"profileEnabledDescription": "Activate or Deactivate the profile.", "blodeuweddProcessing": "Blodeuwedd está procesando...",
"localeSw": "Swahili \/ Kiswahili", "availabilityStatusBusy": "Ocupad()",
"localeSv": "Swedish \/ Svenska", "availabilityStatusAvailable": "Disponible",
"fontScalingDescription": "Adjust the relative font scaling factor applied to text and widgets.", "availabilityStatusAway": "Ausente",
"defaultScalingText": "Tamaño predeterminado de texto (factor de escala:", "shareProfileMenuTooltop": "Comparte éste perfil por medio de...",
"localeJa": "Japanese \/ 日本語", "availabilityStatusTooltip": "Establece tu estado",
"retryConnectionTooltip": "Cwtch retries peers regularly, but you can tell Cwtch to try sooner by pushing this button.", "profileInfoHint": "Agrega información sobre tí, por ejemplo un blog, sitio web o una breve biografía.",
"retryConnection": "Retry", "profileInfoHint2": "Puedes agregar hasta 3 campos.",
"availabilityStatusTooltip": "Set your availability status", "profileInfoHint3": "Los contactos podrán ver esta información en la Configuración de la Conversación ",
"profileInfoHint3": "Contacts will be able to see this information in Conversation Settings ", "retryConnection": "Reintentar",
"profileInfoHint2": "You can add up to 3 fields.", "fontScalingDescription": "Ajusta el factor de escala de fuente relativo aplicado al texto y los widgets.",
"profileInfoHint": "Add some public information about yourself here e.g. blog, websites, brief bio.", "retryConnectionTooltip": "Cwtch reintenta conectarse a sus pares regularmente, pero puedes decirle a Cwtch que lo intente antes presionando este botón.",
"availabilityStatusBusy": "Busy", "localeJa": "Japonés \/ 日本語",
"availabilityStatusAway": "Away", "localeSv": "Sueco \/ Svenska",
"availabilityStatusAvailable": "Available", "localeSw": "Suajili \/ Kiswahili",
"blodeuweddWarning": "Blodeuwedd uses a local language model and a set of small auxiliary models to power its functionality. These techniques are often very effective they are not without error. \n\nWhile we have taken efforts to minimize the risk, there is still the possibility that Blodeuwedd outputs will be incorrect, hallucinated and\/or offensive.\n\nBecause of that Blodeuwedd requires downloading two additional components separate from Cwtch, the Blodeuwedd Model (or a compatible model) and the Blodeuwedd Runner. \n\nSee https:\/\/docs.cwtch.im\/docs\/settings\/experiments\/blodeuwedd for more information on obtaining these components and setting them up.", "localeUk": "Ucraniano \/ українською",
"blodeuweddProcessing": "Blodeuwedd is processing...", "defaultPreserveHistorySetting": "Preservar el historial de conversaciones",
"blodeuweddTranslate": "Translate Message", "preserveHistorySettingDescription": "De forma predeterminada, Cwtch borrará el historial de conversaciones cuando se cierre Cwtch. Si esta configuración está habilitada, Cwtch preservará el historial de conversaciones de pares.",
"blodeuweddSummarize": "Summarize Conversation", "serverinfoNoGroupInfo": "No hay grupos asociados co este servidor de Cwtch.",
"blodeuweddPath": "The directory where the Blodeuwedd is located on your computer.", "cannotDeleteServerIfActiveGroups": "Hay grupos activos asociados con este servidor de Cwtch. Elimínalos antes de eliminar esta entrada del servidor de Cwtch.",
"blodeuweddNotSupported": "This version of Cwtch has been compiled without support for the Blodeuwedd Assistant.", "profileAppearOffline": "Aparecer sin conexión",
"blodeuweddDescription": "The Blodeuwedd assistant adds new features to Cwtch such as chat transcript summarization and message translation via a locally hosted language model.", "profileAppearOfflineDescription": "De forma predeterminada, cuando el perfil Cwtch está habilitado, intenta conectarse automáticamente para conocer contactos y permite conexiones entrantes. Esta configuración desactiva esas acciones y te permite elegir, manualmente, a qué contactos conectarte.",
"blodeuweddExperimentEnable": "Blodeuwedd Assistant", "contactDisconnect": "Desconectarse del contacto (si no tienes configurado Aparecer sin conexión, es posible que este contacto aún pueda restablecer la conexión contigo)",
"localeKo": "Korean \/ 한국어", "profileAppearOnline": "Aparecer en línea",
"localeSk": "Slovak \/ Slovák", "profileEnableProfile": "Habilitar perfil",
"profileAutostartDescription": "Controls if the profile will be automatically launched on startup", "profileDisableProfile": "Deshabilitar perfil",
"profileEnabled": "Enable", "profileBlockUnknownContacts": "Bloquear contactos desconocidos",
"profileAutostartLabel": "Autostart", "profileAllowUnknownContacts": "Permitir contactos desconocidos",
"localePtBr": "Brazilian Portuguese \/ Português do Brasil", "profileOfflineAtStart": "Aparecer sin conexión al iniciar",
"localeNl": "Dutch \/ Dutch", "xDaysAgo": "Hace $days días",
"experimentQRCodeDescription": "QR Code support allows sharing data (such as profile identity) by QR Codes", "xHoursAgo": "Hace $hours horas",
"enableExperimentQRCode": "QR Codes", "xMinutesAgo": "Hace $minutes minutos",
"shareMenuQRCode": "Show QR Code", "xSecondsAgo": "Hace $seconds segundos",
"shareProfileMenuTooltop": "Share profile via...", "now": "Ahora",
"localeUzbek": "Uzbeko \/ O'zbekcha",
"tooltipPinConversation": "Fija la conversación en la parte superior de \"Conversaciones\"", "tooltipPinConversation": "Fija la conversación en la parte superior de \"Conversaciones\"",
"errorDownloadDirectoryDoesNotExist": "No se puede habilitar el uso compartido de archivos porque la carpeta de descarga no se ha configurado o se configuró en una carpeta que no existe.", "errorDownloadDirectoryDoesNotExist": "No se puede habilitar el uso compartido de archivos porque la carpeta de descarga no se ha configurado o se configuró en una carpeta que no existe.",
"acquiringTicketsFromServer": "Realizando Desafío Antispam", "acquiringTicketsFromServer": "Realizando Desafío Antispam",

View File

@ -1,6 +1,7 @@
{ {
"@@locale": "fr", "@@locale": "fr",
"@@last_modified": "2023-09-25T21:29:34+02:00", "@@last_modified": "2024-01-04T10:56:20+01:00",
"settingsGroupAbout": "About",
"localeUzbek": "Uzbek \/ Oʻzbekcha", "localeUzbek": "Uzbek \/ Oʻzbekcha",
"profileOfflineAtStart": "Appear Offline at Startup", "profileOfflineAtStart": "Appear Offline at Startup",
"now": "Now", "now": "Now",

View File

@ -1,6 +1,7 @@
{ {
"@@locale": "it", "@@locale": "it",
"@@last_modified": "2023-09-25T21:29:34+02:00", "@@last_modified": "2024-01-04T10:56:20+01:00",
"settingsGroupAbout": "About",
"localeUzbek": "Uzbek \/ Oʻzbekcha", "localeUzbek": "Uzbek \/ Oʻzbekcha",
"profileOfflineAtStart": "Appear Offline at Startup", "profileOfflineAtStart": "Appear Offline at Startup",
"now": "Now", "now": "Now",

View File

@ -1,6 +1,7 @@
{ {
"@@locale": "lb", "@@locale": "lb",
"@@last_modified": "2023-09-25T21:29:34+02:00", "@@last_modified": "2024-01-04T10:56:20+01:00",
"settingsGroupAbout": "About",
"localeUzbek": "Uzbek \/ Oʻzbekcha", "localeUzbek": "Uzbek \/ Oʻzbekcha",
"profileOfflineAtStart": "Appear Offline at Startup", "profileOfflineAtStart": "Appear Offline at Startup",
"now": "Now", "now": "Now",

View File

@ -1,6 +1,7 @@
{ {
"@@locale": "nl", "@@locale": "nl",
"@@last_modified": "2023-09-25T21:29:34+02:00", "@@last_modified": "2024-01-04T10:56:20+01:00",
"settingsGroupAbout": "About",
"localeUzbek": "Uzbek \/ Oʻzbekcha", "localeUzbek": "Uzbek \/ Oʻzbekcha",
"profileOfflineAtStart": "Appear Offline at Startup", "profileOfflineAtStart": "Appear Offline at Startup",
"now": "Now", "now": "Now",

View File

@ -1,6 +1,7 @@
{ {
"@@locale": "no", "@@locale": "no",
"@@last_modified": "2023-09-25T21:29:34+02:00", "@@last_modified": "2024-01-04T10:56:20+01:00",
"settingsGroupAbout": "About",
"localeUzbek": "Uzbek \/ Oʻzbekcha", "localeUzbek": "Uzbek \/ Oʻzbekcha",
"profileOfflineAtStart": "Appear Offline at Startup", "profileOfflineAtStart": "Appear Offline at Startup",
"now": "Now", "now": "Now",

View File

@ -1,6 +1,7 @@
{ {
"@@locale": "pl", "@@locale": "pl",
"@@last_modified": "2023-09-25T21:29:34+02:00", "@@last_modified": "2024-01-04T10:56:20+01:00",
"settingsGroupAbout": "About",
"localeUzbek": "Uzbek \/ Oʻzbekcha", "localeUzbek": "Uzbek \/ Oʻzbekcha",
"profileOfflineAtStart": "Appear Offline at Startup", "profileOfflineAtStart": "Appear Offline at Startup",
"now": "Now", "now": "Now",

View File

@ -1,6 +1,7 @@
{ {
"@@locale": "pt", "@@locale": "pt",
"@@last_modified": "2023-09-25T21:29:34+02:00", "@@last_modified": "2024-01-04T10:56:20+01:00",
"settingsGroupAbout": "About",
"localeUzbek": "Uzbek \/ Oʻzbekcha", "localeUzbek": "Uzbek \/ Oʻzbekcha",
"profileOfflineAtStart": "Appear Offline at Startup", "profileOfflineAtStart": "Appear Offline at Startup",
"now": "Now", "now": "Now",

View File

@ -1,6 +1,7 @@
{ {
"@@locale": "pt_BR", "@@locale": "pt_BR",
"@@last_modified": "2023-09-25T21:29:34+02:00", "@@last_modified": "2024-01-04T10:56:20+01:00",
"settingsGroupAbout": "About",
"localeUzbek": "Uzbek \/ Oʻzbekcha", "localeUzbek": "Uzbek \/ Oʻzbekcha",
"profileOfflineAtStart": "Appear Offline at Startup", "profileOfflineAtStart": "Appear Offline at Startup",
"now": "Now", "now": "Now",

View File

@ -1,6 +1,7 @@
{ {
"@@locale": "ro", "@@locale": "ro",
"@@last_modified": "2023-09-25T21:29:34+02:00", "@@last_modified": "2024-01-04T10:56:20+01:00",
"settingsGroupAbout": "About",
"localeUzbek": "Uzbek \/ Oʻzbekcha", "localeUzbek": "Uzbek \/ Oʻzbekcha",
"profileOfflineAtStart": "Appear Offline at Startup", "profileOfflineAtStart": "Appear Offline at Startup",
"now": "Now", "now": "Now",

View File

@ -1,6 +1,7 @@
{ {
"@@locale": "ru", "@@locale": "ru",
"@@last_modified": "2023-09-25T21:29:34+02:00", "@@last_modified": "2024-01-04T10:56:20+01:00",
"settingsGroupAbout": "About",
"localeUzbek": "Uzbek \/ Oʻzbekcha", "localeUzbek": "Uzbek \/ Oʻzbekcha",
"profileOfflineAtStart": "Appear Offline at Startup", "profileOfflineAtStart": "Appear Offline at Startup",
"now": "Now", "now": "Now",

View File

@ -1,6 +1,7 @@
{ {
"@@locale": "tr", "@@locale": "tr",
"@@last_modified": "2023-09-25T21:29:34+02:00", "@@last_modified": "2024-01-04T10:56:20+01:00",
"settingsGroupAbout": "About",
"localeUzbek": "Uzbek \/ Oʻzbekcha", "localeUzbek": "Uzbek \/ Oʻzbekcha",
"profileOfflineAtStart": "Appear Offline at Startup", "profileOfflineAtStart": "Appear Offline at Startup",
"now": "Now", "now": "Now",

View File

@ -82,20 +82,25 @@ class _GlobalSettingsViewState extends State<GlobalSettingsView> {
appBar: AppBar( appBar: AppBar(
title: Text(AppLocalizations.of(context)!.cwtchSettingsTitle), title: Text(AppLocalizations.of(context)!.cwtchSettingsTitle),
bottom: TabBar( bottom: TabBar(
isScrollable: true,
tabs: [ tabs: [
Tab( Tab(
key: Key("OpenSettingsAppearance"),
icon: Icon(Icons.palette), icon: Icon(Icons.palette),
text: AppLocalizations.of(context)! text: AppLocalizations.of(context)!
.settingsGroupAppearance), .settingsGroupAppearance),
Tab( Tab(
key: Key("OpenSettingsBehaviour"),
icon: Icon(Icons.settings), icon: Icon(Icons.settings),
text: text:
AppLocalizations.of(context)!.settingGroupBehaviour), AppLocalizations.of(context)!.settingGroupBehaviour),
Tab( Tab(
key: Key("OpenSettingsExperiments"),
icon: Icon(CwtchIcons.enable_experiments), icon: Icon(CwtchIcons.enable_experiments),
text: AppLocalizations.of(context)! text: AppLocalizations.of(context)!
.settingsGroupExperiments), .settingsGroupExperiments),
Tab(icon: Icon(Icons.info), text: "About"), Tab(icon: Icon(Icons.info), text: AppLocalizations.of(context)!
.settingsGroupAbout),
], ],
)), )),
body: _buildSettingsList(), body: _buildSettingsList(),
@ -110,7 +115,7 @@ class _GlobalSettingsViewState extends State<GlobalSettingsView> {
return TabBarView(children: [ return TabBarView(children: [
// ***** Appearance // ***** Appearance
Scrollbar( Scrollbar(
key: Key("SettingsView"), key: Key("AppearanceSettingsView"),
trackVisibility: true, trackVisibility: true,
controller: settingsListScrollController, controller: settingsListScrollController,
child: SingleChildScrollView( child: SingleChildScrollView(
@ -355,7 +360,7 @@ class _GlobalSettingsViewState extends State<GlobalSettingsView> {
// **** Behaviour // **** Behaviour
Scrollbar( Scrollbar(
key: Key("SettingsView"), key: Key("BehaviourSettingsView"),
trackVisibility: true, trackVisibility: true,
controller: settingsListScrollController, controller: settingsListScrollController,
child: SingleChildScrollView( child: SingleChildScrollView(
@ -500,7 +505,7 @@ class _GlobalSettingsViewState extends State<GlobalSettingsView> {
// ****** Experiments // ****** Experiments
Scrollbar( Scrollbar(
key: Key("SettingsView"), key: Key("ExperimentsSettingsView"),
trackVisibility: true, trackVisibility: true,
controller: settingsListScrollController, controller: settingsListScrollController,
child: SingleChildScrollView( child: SingleChildScrollView(
@ -825,7 +830,7 @@ class _GlobalSettingsViewState extends State<GlobalSettingsView> {
// **** About // **** About
Scrollbar( Scrollbar(
key: Key("SettingsView"), key: Key("AboutSettingsView"),
trackVisibility: true, trackVisibility: true,
controller: settingsListScrollController, controller: settingsListScrollController,
child: SingleChildScrollView( child: SingleChildScrollView(