diff --git a/static/locales/it.client.json b/static/locales/it.client.json index f3d3f02f9d..76e0dd5379 100644 --- a/static/locales/it.client.json +++ b/static/locales/it.client.json @@ -25,7 +25,8 @@ "Visit our {{link}} to learn more about Grist.": "Vai a {{link}} per saperne di più su Grist.", "Sign in": "Accedi", "To use Grist, please either sign up or sign in.": "Per usare Grist, iscriviti o accedi.", - "Learn more in our {{helpCenterLink}}.": "Approfondisci nel nostro {{helpCenterLink}}." + "Learn more in our {{helpCenterLink}}.": "Approfondisci nel nostro {{helpCenterLink}}.", + "Only show documents": "Mostra solo i documenti" }, "HomeLeftPane": { "Manage Users": "Gestisci gli utenti", @@ -273,7 +274,9 @@ "Form not found": "Modulo non trovato", "Build your own form": "Costruisci il tuo modulo", "Powered by": "Creato con", - "An unknown error occurred.": "Ho incontrato un errore sconosciuto." + "An unknown error occurred.": "Ho incontrato un errore sconosciuto.", + "Failed to log in.{{separator}}Please try again or contact support.": "Accesso non riuscito.{{separator}}Prova ancora o contatta il supporto tecnico.", + "Sign-in failed{{suffix}}": "Accesso fallito{{suffix}}" }, "duplicatePage": { "Note that this does not copy data, but creates another view of the same data.": "Notare che questo non copia i dati ma crea un'altra vista dagli stessi dati.", @@ -462,7 +465,8 @@ "Comment": "Commenta", "Copy": "Copia", "Cut": "Taglia", - "Paste": "Incolla" + "Paste": "Incolla", + "Copy with headers": "Copia con le intestazioni" }, "AccountPage": { "API": "API", @@ -604,7 +608,15 @@ "Learn more about custom widgets": "Scopri di più sui widget personalizzati", "Select Custom Widget": "Seleziona un Widget personalizzato", "No {{columnType}} columns in table.": "Nessuna colonna {{columnType}} nella tabella.", - "Clear selection": "Deseleziona tutto" + "Clear selection": "Deseleziona tutto", + "Custom URL": "URL personalizzata", + "ACCESS LEVEL": "LIVELLO DI ACCESSO", + "Accept": "Accetta", + "Developer:": "Sviluppatore:", + "Last updated:": "Ultimo aggiornamento:", + "Missing description and author information.": "Mancano descrizione e info sull'autore.", + "Reject": "Rifiuta", + "Widget": "Widget" }, "DataTables": { "Click to copy": "Clicca per copiare", @@ -669,7 +681,11 @@ "More Examples and Templates": "Altri esempi e template", "To restore this document, restore the workspace first.": "Per ripristinare il documento, ripristina prima lo spazio di lavoro.", "Unpin Document": "Non fissare il documento", - "You are on the {{siteName}} site. You also have access to the following sites:": "Sei nel sito {{siteName}}. Hai anche accesso a questi siti:" + "You are on the {{siteName}} site. You also have access to the following sites:": "Sei nel sito {{siteName}}. Hai anche accesso a questi siti:", + "Any documents created in this site will appear here.": "Qualsiasi documento creato in questo sito compare qui.", + "Create my first document": "Creare il mio primo documento", + "You have read-only access to this site. Currently there are no documents.": "Hai solo accesso in lettura a questo sito. Non ci sono documenti da vedere.", + "personal site": "sito personale" }, "DocPageModel": { "Add Empty Table": "Aggiungi tabella vuota", @@ -972,7 +988,8 @@ "Switch appearance automatically to match system": "Cambia aspetto automaticamente con il sistema" }, "TopBar": { - "Manage Team": "Gestisci team" + "Manage Team": "Gestisci team", + "Manage team": "Gestisci il team" }, "TypeTransformation": { "Apply": "Applica", @@ -1193,7 +1210,14 @@ "Forms are here!": "Sono arrivati i moduli!", "Learn more": "Approfondisci", "Example: {{example}}": "Esempio: {{example}}", - "Filter displayed dropdown values with a condition.": "Il filtro mostrava i valori nella tendina con una condizione." + "Filter displayed dropdown values with a condition.": "Il filtro mostrava i valori nella tendina con una condizione.", + "Creates a reverse column in target table that can be edited from either end.": "Crea un colonna inversa nella tabella di destinazione, che può essere usata da entrambi i lati.", + "To allow multiple assignments, change the referenced column's type to Reference List.": "Per consentire riferimenti multipli, cambia il tipo della colonna collegata a Lista di Riferimenti.", + "This limitation occurs when one end of a two-way reference is configured as a single Reference.": "Questa limitazione si verifica quando un lato del collegamento bidirezionale è configurato come un riferimento unidirezionale.", + "Community widgets are created and maintained by Grist community members.": "I widget della comunità sono creati e mantenuti dai membri della comunità di Grist.", + "To allow multiple assignments, change the type of the Reference column to Reference List.": "Per consentire riferimenti multipli, cambia il tipo della colonna a Lista di Riferimenti.", + "This limitation occurs when one column in a two-way reference has the Reference type.": "Questa limitazione si verifica quando una colonna di un riferimento bidirezionale è di tipo Riferimento.", + "Two-way references are not currently supported for Formula or Trigger Formula columns": "I riferimenti bidirezionali non sono supportati al momento per le colonne di formule o formule trigger" }, "DescriptionConfig": { "DESCRIPTION": "DESCRIZIONE" @@ -1504,7 +1528,8 @@ "Grist signs user session cookies with a secret key. Please set this key via the environment variable GRIST_SESSION_SECRET. Grist falls back to a hard-coded default when it is not set. We may remove this notice in the future as session IDs generated since v1.1.16 are inherently cryptographically secure.": "Grist firma i cookie della sessione con una chiave segreta. Impostare questa chiave con la variabile d'ambiente GRIST_SESSION_SECRET. Se questa non è definita, Grist usa un default non modificabile. Potremmo rimuovere questo avviso in futuro, perché gli ID di sessione generati a partire dalla versione 1.1.16 sono intrinsecamente sicuri dal punto di vista crittografico.", "Enable Grist Enterprise": "Attiva Grist Enterprise", "Enterprise": "Enterprise", - "Key to sign sessions with": "Chiave per marcare le sessioni" + "Key to sign sessions with": "Chiave per marcare le sessioni", + "checking": "controllo" }, "WelcomeCoachingCall": { "Maybe Later": "Forse più tardi", @@ -1655,7 +1680,8 @@ "3 minute video tour": "Video introduttivo di tre minuti", "Complete our basics tutorial": "Completa il nostro tutorial di base", "Complete the tutorial": "Completa il tutorial", - "Learn the basic of reference columns, linked widgets, column types, & cards.": "Impara le basi sulle colonne di riferimenti, i widget collegati, i tipi di colonna e le schede." + "Learn the basic of reference columns, linked widgets, column types, & cards.": "Impara le basi sulle colonne di riferimenti, i widget collegati, i tipi di colonna e le schede.", + "Learn the basics of reference columns, linked widgets, column types, & cards.": "Impara le basi sulle colonne di riferimenti, widget collegati, tipi di colonna e schede." }, "OnboardingPage": { "Welcome": "Benvenuto", @@ -1680,5 +1706,87 @@ "Keep data and delete widget. Table will remain available in {{rawDataLink}}": "Mantieni i dati e cancella il widget. La tabella resterà disponibile in {{rawDataLink}}", "Table {{tableName}} will no longer be visible": "La tabella {{tableName}} non sarà più visibile", "raw data page": "pagina dei dati grezzi" + }, + "CustomWidgetGallery": { + "Learn more about Custom Widgets": "Scopri di più sui widget personalizzati", + "Widget URL": "URL del widget", + "(Missing info)": "(Informazioni mancanti)", + "Add Widget": "Aggiungi widget", + "Add Your Own Widget": "Aggiungi il tuo widget", + "Add a widget from outside this gallery.": "Aggiungi un widget non in questa raccolta.", + "Cancel": "Annulla", + "Change Widget": "Cambia widget", + "Choose Custom Widget": "Scegli un widget personalizzato", + "Community Widget": "Widget della comunità", + "Custom URL": "URL personalizzata", + "Developer:": "Sviluppatore:", + "Grist Widget": "Widget di Grist", + "Last updated:": "Ultimo aggiornamento:", + "No matching widgets": "Nessun widget corrispondente", + "Search": "Cerca" + }, + "markdown.d": { + "The toggle is **off**": "L'interruttore è **spento**", + "# New Markdown Function\n *\n * We can _write_ [the usual Markdown](https:": { + "": { + "markdownguide.org) *inside*\n * a Grainjs element.": "# Nuova funzione Markdown\n *\n * Possiamo _scrivere_ [il solito Markdown](https://markdownguide.org) *dentro*\n * un elemento Grainjs." + } + }, + "The toggle is **on**": "L'interruttore è **acceso**" + }, + "HomeIntroCards": { + "3 minute video tour": "Tour video di 3 minuti", + "Blank document": "Documento vuoto", + "Find solutions and explore more resources {{helpCenterLink}}": "Trova delle soluzioni e scopri più risorse {{helpCenterLink}}", + "Finish our basics tutorial": "Completa il nostro tutorial di base", + "Help center": "Centro assistenza", + "Import file": "Importa file", + "Learn more {{webinarsLinks}}": "Scopri di più {{webinarsLinks}}", + "Start a new document": "Inizia un documento nuovo", + "Templates": "Template", + "Tutorial": "Tutorial", + "Webinars": "Webinar" + }, + "AdminPanelName": { + "Admin Panel": "Pannello di amministrazione" + }, + "markdown": { + "# New Markdown Function\n *\n * We can _write_ [the usual Markdown](https:": { + "": { + "markdownguide.org) *inside*\n * a Grainjs element.": "# Nuova funzione Markdown\n *\n * Possiamo _scrivere_ [il solito Markdown](https://markdownguide.org) *dentro*\n * un elemento Grainjs." + } + }, + "The toggle is **off**": "L'interruttore è **spento**", + "The toggle is **on**": "L'interruttore è **acceso**" + }, + "ReverseReferenceConfig": { + "Add two-way reference": "Aggiungi un riferimento bidirezionale", + "Column": "Colonna", + "Delete": "Elimina", + "Delete column {{column}} in table {{table}}?": "Eliminare la colonna {{column}} nella tabella {{table}}?", + "It is the reverse of the reference column {{column}} in table {{table}}.": "Questo è il riferimento inverso della colonna {{column}} nella tabella {{table}}.", + "Table": "Tabella", + "Two-way Reference": "Riferimento bidirezionale", + "Delete two-way reference?": "Elimina il riferimento bidirezionale?", + "Target table": "Tabella di destinazione" + }, + "SupportGristButton": { + "Opted In": "Accettato", + "Support Grist": "Supporta Grist", + "Admin Panel": "Pannello di amministrazione", + "Close": "Chiudi", + "Help Center": "Centro assistenza", + "Opt in to Telemetry": "Accetta la telemetria", + "Thank you! Your trust and support is greatly appreciated. Opt out any time from the {{link}} in the user menu.": "Grazie! Apprezziamo davvero il tuo supporto e la tua fiducia. Puoi ritirarti in qualsiasi momento dal {{link}} nel menu utente." + }, + "buildReassignModal": { + "Cancel": "Annulla", + "Each {{targetTable}} record may only be assigned to a single {{sourceTable}} record.": "Ogni record di {{targetTable}} può essere collegato a un solo record in {{sourceTable}}.", + "Reassign": "Riassegna", + "Reassign to new {{sourceTable}} records.": "Riassegna ai record di una nuova {{sourceTable}}.", + "Reassign to {{sourceTable}} record {{sourceName}}.": "Riassegna al record {{sourceName}} di {{sourceTable}}.", + "Record already assigned_one": "Record già assegnato", + "{{targetTable}} record {{targetName}} is already assigned to {{sourceTable}} record {{oldSourceName}}.": "Il record {{targetName}} di {{targetTable}} è già assegnato al record {{oldSourceName}} di {{sourceTable}}.", + "Record already assigned_other": "Record già assegnato" } } diff --git a/static/locales/ru.client.json b/static/locales/ru.client.json index 802ab132af..5eded35629 100644 --- a/static/locales/ru.client.json +++ b/static/locales/ru.client.json @@ -1216,7 +1216,9 @@ "Community widgets are created and maintained by Grist community members.": "Виджеты сообщества создаются и поддерживаются участниками сообщества Grist.", "Creates a reverse column in target table that can be edited from either end.": "Создает обратный столбец в целевой таблице, который можно редактировать с любого конца.", "This limitation occurs when one end of a two-way reference is configured as a single Reference.": "Это ограничение возникает, когда один конец двусторонней ссылки сконфигурирован как одиночная ссылка.", - "This limitation occurs when one column in a two-way reference has the Reference type.": "Это ограничение возникает, когда один столбец в двусторонней ссылке имеет ссылочный тип." + "This limitation occurs when one column in a two-way reference has the Reference type.": "Это ограничение возникает, когда один столбец в двусторонней ссылке имеет ссылочный тип.", + "To allow multiple assignments, change the type of the Reference column to Reference List.": "Чтобы разрешить несколько значений, измените тип столбца с типа «Ссылка» на «Ссылки списком».", + "To allow multiple assignments, change the referenced column's type to Reference List.": "Чтобы разрешить несколько назначений, измените тип указанного столбца на Ссылки списком." }, "DescriptionConfig": { "DESCRIPTION": "ОПИСАНИЕ" @@ -1581,7 +1583,9 @@ "Session Secret": "Session Secret", "Grist signs user session cookies with a secret key. Please set this key via the environment variable GRIST_SESSION_SECRET. Grist falls back to a hard-coded default when it is not set. We may remove this notice in the future since session IDs have been updated to be inherently cryptographically secure.": "Grist подписывает файлы cookie сеанса пользователя секретным ключом. Установите этот ключ через переменную среды GRIST_SESSION_SECRET. Grist возвращается к жестко запрограммированному значению по умолчанию, если оно не установлено. Мы можем удалить это уведомление в будущем, поскольку идентификаторы сеансов, созданные начиная с версии 1.1.16, по своей сути криптографически безопасны.", "Grist signs user session cookies with a secret key. Please set this key via the environment variable GRIST_SESSION_SECRET. Grist falls back to a hard-coded default when it is not set. We may remove this notice in the future as session IDs generated since v1.1.16 are inherently cryptographically secure.": "Grist подписывает файлы cookie сеанса пользователя секретным ключом. Установите этот ключ через переменную среды GRIST_SESSION_SECRET. Grist возвращается к жестко запрограммированному значению по умолчанию, если оно не установлено. Мы можем удалить это уведомление в будущем, поскольку идентификаторы сеансов, созданные начиная с версии 1.1.16, по своей сути криптографически безопасны.", - "Enable Grist Enterprise": "Включить Grist Enterprise" + "Enable Grist Enterprise": "Включить Grist Enterprise", + "checking": "проверка", + "Enterprise": "Корпоративный" }, "CreateTeamModal": { "Billing is not supported in grist-core": "Выставление счетов в grist-core не поддерживается", @@ -1670,7 +1674,8 @@ "Learn the basic of reference columns, linked widgets, column types, & cards.": "Изучите основы ссылочных столбцов, связанных виджетов, типов столбцов и карточек.", "3 minute video tour": "3-минутный видеотур", "Complete the tutorial": "Завершить обучение", - "Complete our basics tutorial": "Завершите наше базовое обучение" + "Complete our basics tutorial": "Завершите наше базовое обучение", + "Learn the basics of reference columns, linked widgets, column types, & cards.": "Изучите основы ссылочных столбцов, связанные виджеты, типы столбцов, & карточки." }, "OnboardingPage": { "Go hands-on with the Grist Basics tutorial": "Познакомьтесь с учебным пособием по основам Grist", @@ -1716,7 +1721,7 @@ "Developer:": "Разработчик:", "Grist Widget": "Grist Виджет", "Last updated:": "Последнее обновление:", - "Learn more about Custom Widgets": "Learn more about Custom Widgets", + "Learn more about Custom Widgets": "Узнайте больше о пользовательских виджетах", "No matching widgets": "Нет подходящих виджетов", "Widget URL": "URL виджета" }, @@ -1741,7 +1746,8 @@ "Delete column {{column}} in table {{table}}?": "Удалить столбец {{column}} в таблице {{table}}?", "It is the reverse of the reference column {{column}} in table {{table}}.": "Это обратная сторона ссылочного столбца. {{column}} в таблице {{table}}.", "Table": "Таблица", - "Two-way Reference": "Двусторонняя Ссылка" + "Two-way Reference": "Двусторонняя Ссылка", + "Add two-way reference": "Добавить двусторонную ссылку" }, "SupportGristButton": { "Help Center": "Справочный центр", @@ -1756,6 +1762,21 @@ "Admin Panel": "Панель администратора" }, "buildReassignModal": { - "Cancel": "Отмена" + "Cancel": "Отмена", + "Record already assigned_other": "Запись уже назначена", + "Each {{targetTable}} record may only be assigned to a single {{sourceTable}} record.": "Каждая {{targetTable}} запись может быть назначен только одной {{sourceTable}} записи.", + "Reassign": "Переназначить", + "Reassign to new {{sourceTable}} records.": "Переназначить на новые {{sourceTable}} записи.", + "Reassign to {{sourceTable}} record {{sourceName}}.": "Переназначить на {{sourceTable}} запись {{sourceName}}.", + "Record already assigned_one": "Запись уже назначена", + "{{targetTable}} record {{targetName}} is already assigned to {{sourceTable}} record {{oldSourceName}}.": "{{targetTable}} запись {{targetName}} уже назначена {{sourceTable}} запись {{oldSourceName}}." + }, + "markdown": { + "The toggle is **off**": "Переключатель **Выключен**", + "The toggle is **on**": "Переключатель **Включен**" + }, + "markdown.d": { + "The toggle is **off**": "Переключатель **Выключен**", + "The toggle is **on**": "Переключатель **Включен**" } } diff --git a/test/nbrowser/testUtils.ts b/test/nbrowser/testUtils.ts index ed7ce1af91..da5a0097f3 100644 --- a/test/nbrowser/testUtils.ts +++ b/test/nbrowser/testUtils.ts @@ -16,7 +16,7 @@ * first-failure for debugging and quick reruns. */ import log from 'app/server/lib/log'; -import {addToRepl, assert, driver, enableDebugCapture, ITimeouts, +import {addToRepl, assert, Capability, driver, enableDebugCapture, ITimeouts, Key, setOptionsModifyFunc, useServer} from 'mocha-webdriver'; import * as gu from 'test/nbrowser/gristUtils'; import {server} from 'test/nbrowser/testServer'; @@ -43,6 +43,7 @@ setOptionsModifyFunc(({chromeOpts, firefoxOpts}) => { // eslint-disable-next-line max-len // https://github.com/shs96c/selenium/blob/ff82c4af6a493321d9eaec6ba8fa8589e4aa824d/javascript/node/selenium-webdriver/firefox.js#L415 chromeOpts.set('webSocketUrl', true); + chromeOpts.set(Capability.UNHANDLED_PROMPT_BEHAVIOR, "ignore"); chromeOpts.setUserPreferences({ // Don't show popups to save passwords, which are shown when running against a deployment when diff --git a/test/test_env.sh b/test/test_env.sh index 3dbc51224d..173a2cf98b 100755 --- a/test/test_env.sh +++ b/test/test_env.sh @@ -3,9 +3,9 @@ export GRIST_SESSION_COOKIE="grist_test_cookie" export LANGUAGE="en_US" export SE_BROWSER="chrome" -export SE_BROWSER_VERSION="127" +export SE_BROWSER_VERSION="130" export SE_DRIVER="chrome-driver" -export SE_DRIVER_VERSION="127.0.6533.119" +export SE_DRIVER_VERSION="130.0.6723.91" export TEST_CLEAN_DATABASE="true" export TEST_SUPPORT_API_KEY="api_key_for_support"