diff --git a/README.md b/README.md index 27cde72a..584ca938 100644 --- a/README.md +++ b/README.md @@ -3,16 +3,36 @@ Grist is a modern relational spreadsheet. It combines the flexibility of a spreadsheet with the robustness of a database to organize your data and make you more productive. +This repository, `grist-core`, is the heart of Grist, and has what you +need to run a powerful spreadsheet hosting server. If you wish to view and edit +spreadsheets stored locally, another option is to use the +[`grist-electron`](https://github.com/gristlabs/grist-electron) desktop app for Linux, Mac, and Windows. And to show Grist spreadsheets on a website +without any special back-end support, your options include +[`grist-static`](https://github.com/gristlabs/grist-static), +a fully in-browser build of Grist. +The `grist-core` repository is the basis for all these options, and +for the hosted spreadsheet services offered by +[`Grist Labs`](https://getgrist.com), an NYC-based company 🇺🇸 that is the main developer of Grist, and by +[`ANCT Données et Territoires`](https://donnees.incubateur.anct.gouv.fr/toolbox/grist), +a French government agency 🇫🇷 whose developers have made many +contributions to the code-base. +The `grist-core`, `grist-electron`, and `grist-static` repositories +are all open-source (Apache License, Version 2.0). + https://user-images.githubusercontent.com/118367/151245587-892e50a6-41f5-4b74-9786-fe3566f6b1fb.mp4 ## Features -(By popular request: we have a specific write-up of [Grist vs Airtable](https://www.getgrist.com/blog/grist-v-airtable/) that may be helpful). Grist is a hybrid database/spreadsheet, meaning that: - Columns work like they do in databases. They are named, and hold one kind of data. - Columns can be filled by formula, spreadsheet-style, with automatic updates when referenced cells change. +This difference can confuse people coming directly from Excel or Google Sheets. Give it a chance! +If you are coming from Airtable, you'll find the model familiar though (and there's a +[Grist vs Airtable](https://www.getgrist.com/blog/grist-v-airtable/) article that might interest you). + + Here are some specific feature highlights of Grist: * Python formulas. @@ -23,6 +43,8 @@ Here are some specific feature highlights of Grist: - Any tool that can read SQLite can read numeric and text data from a Grist file. - Great format for [backups](https://support.getgrist.com/exports/#backing-up-an-entire-document) that you can be confident you can restore in full. - Great format for moving between different hosts. + - Can be displayed on a static website with [grist-static](https://github.com/gristlabs/grist-static). + - There's a self-contained desktop app available for viewing and editing: [grist-electron](https://github.com/gristlabs/grist-electron). * Convenient editing and formatting features. - Choices and [choice lists](https://support.getgrist.com/col-types/#choice-list-columns), for adding colorful tags to records without fuss. - [References](https://support.getgrist.com/col-refs/#creating-a-new-reference-list-column) and reference lists, for cross-referencing records in other tables. @@ -45,7 +67,7 @@ Here are some specific feature highlights of Grist: - Can link data with custom widgets hosted externally. * [Many templates](https://templates.getgrist.com/) to get you started, from investment research to organizing treasure hunts. * Access control options. - - (You'll need SSO logins set up to make use of these options) + - (You'll need SSO logins set up to make use of these options; [grist-omnibus](https://github.com/gristlabs/grist-omnibus) has a prepackaged solution if configuring this feels daunting) - Share [individual documents](https://support.getgrist.com/sharing/), or workspaces, or [team sites](https://support.getgrist.com/team-sharing/). - Control access to [individual rows, columns, and tables](https://support.getgrist.com/access-rules/). - Control access based on cell values and user attributes. @@ -56,6 +78,8 @@ Here are some specific feature highlights of Grist: [gVisor](https://github.com/google/gvisor) sandboxing at the individual document level. - On OSX, you can use native sandboxing. + - On any OS, including Windows, you can use a wasm-based sandbox. + * Translated to many languages. If you are curious about where Grist is going heading, see [our roadmap](https://github.com/gristlabs/grist-core/projects/1), drop a @@ -64,11 +88,16 @@ or browse [our extensive documentation](https://support.getgrist.com). ## Using Grist -There are docker images set up for individual use, or (with some -configuration) for self-hosting. Grist Labs offers a hosted service -at [docs.getgrist.com](https://docs.getgrist.com). +If you just want a quick demo of Grist: -To get Grist running on your computer with [Docker](https://www.docker.com/get-started), do: + * You can try Grist out at the hosted service run + by Grist Labs at [docs.getgrist.com](https://docs.getgrist.com) + (no registration needed). + * Or you can see an experimental fully in-browser build of Grist + at [gristlabs.github.io/grist-static](https://gristlabs.github.io/grist-static/). + * Or you can download Grist as a desktop app from [github.com/gristlabs/grist-electron](https://github.com/gristlabs/grist-electron). + +To get `grist-core` running on your computer with [Docker](https://www.docker.com/get-started), do: ```sh docker pull gristlabs/grist @@ -120,6 +149,7 @@ environment variable. uses the native `sandbox-exec` command for sandboxing. * On Linux with [gVisor's runsc](https://github.com/google/gvisor) installed, `export GRIST_SANDBOX_FLAVOR=gvisor` is an option. + * On any OS including Windows, `export GRIST_SANDBOX_FLAVOR=pyodide` is available. These sandboxing methods have been written for our own use at Grist Labs and may need tweaking to work in your own environment - pull requests @@ -348,5 +378,3 @@ This repository, `grist-core`, is released under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0), which is an [OSI](https://opensource.org/)-approved free software license. See LICENSE.txt and NOTICE.txt for more information. -If you have received a version of Grist with an `ext` directory, -the material within it is separately licensed. diff --git a/app/client/ui/GridViewMenus.ts b/app/client/ui/GridViewMenus.ts index fa9d0a77..db2636c1 100644 --- a/app/client/ui/GridViewMenus.ts +++ b/app/client/ui/GridViewMenus.ts @@ -156,8 +156,8 @@ export function MultiColumnMenu(options: IMultiColumnContextMenu) { menuItemCmd(allCommands.deleteFields, nameDeleteColumns, disableForReadonlyColumn), menuDivider(), - menuItemCmd(allCommands.insertFieldBefore, t("Insert column to the {{to}}", {to: 'left'}), disableForReadonlyView), - menuItemCmd(allCommands.insertFieldAfter, t("Insert column to the {{to}}", {to: 'right'}), disableForReadonlyView) + menuItemCmd(allCommands.insertFieldBefore, t("Insert column to the left"), disableForReadonlyView), + menuItemCmd(allCommands.insertFieldAfter, t("Insert column to the right"), disableForReadonlyView) ]; } diff --git a/static/locales/de.client.json b/static/locales/de.client.json index e9658977..6d11f0b3 100644 --- a/static/locales/de.client.json +++ b/static/locales/de.client.json @@ -227,7 +227,7 @@ "Document will be permanently deleted.": "Das Dokument wird endgültig gelöscht.", "Documents stay in Trash for 30 days, after which they get deleted permanently.": "Dokumente bleiben 30 Tage lang im Papierkorb, danach werden sie endgültig gelöscht.", "Edited {{at}}": "Bearbeitet {{at}}", - "Examples & Templates": "Beispiele und Vorlagen", + "Examples & Templates": "Beispiele & Vorlagen", "Examples and Templates": "Beispiele und Vorlagen", "Featured": "Hervorgehoben", "Manage Users": "Benutzer verwalten", @@ -409,7 +409,9 @@ "Sorted (#{{count}})_one": "Sortiert (#{{count}})", "Sorted (#{{count}})_other": "Sortiert (#{{count}})", "Unfreeze {{count}} columns_one": "Diese Spalte entsperren", - "Unfreeze {{count}} columns_other": "{{count}} Spalten entsperren" + "Unfreeze {{count}} columns_other": "{{count}} Spalten entsperren", + "Insert column to the right": "Spalte rechts einfügen", + "Insert column to the left": "Spalte links einfügen" }, "GristDoc": { "Added new linked section to view {{viewName}}": "Neuer verlinkter Abschnitt zur Ansicht hinzugefügt {{viewName}}", @@ -446,7 +448,7 @@ "Create Workspace": "Arbeitsbereich erstellen", "Delete": "Löschen", "Delete {{workspace}} and all included documents?": "{{workspace}} und alle enthaltenen Dokumente löschen?", - "Examples & Templates": "Beispiele und Vorlagen", + "Examples & Templates": "Beispiele & Vorlagen", "Import Document": "Dokument importieren", "Manage Users": "Benutzer verwalten", "Rename": "Umbenennen", diff --git a/static/locales/en.client.json b/static/locales/en.client.json index 1ab342af..8d1117a4 100644 --- a/static/locales/en.client.json +++ b/static/locales/en.client.json @@ -378,7 +378,9 @@ "Sorted (#{{count}})_other": "Sorted (#{{count}})", "Unfreeze all columns": "Unfreeze all columns", "Unfreeze {{count}} columns_one": "Unfreeze this column", - "Unfreeze {{count}} columns_other": "Unfreeze {{count}} columns" + "Unfreeze {{count}} columns_other": "Unfreeze {{count}} columns", + "Insert column to the left": "Insert column to the left", + "Insert column to the right": "Insert column to the right" }, "GristDoc": { "Added new linked section to view {{viewName}}": "Added new linked section to view {{viewName}}", diff --git a/static/locales/es.client.json b/static/locales/es.client.json index ab894ef1..edc0ca4c 100644 --- a/static/locales/es.client.json +++ b/static/locales/es.client.json @@ -188,7 +188,7 @@ "Document will be permanently deleted.": "El documento será eliminado permanentemente.", "Documents stay in Trash for 30 days, after which they get deleted permanently.": "Los documentos permanecen en la papelera durante 30 días, tras los cuales se eliminan definitivamente.", "Edited {{at}}": "Editado {{at}}", - "Examples & Templates": "Ejemplos y Plantillas", + "Examples & Templates": "Ejemplos & Plantillas", "Examples and Templates": "Ejemplos y Plantillas", "Featured": "Destacados", "Manage Users": "Gestionar usuarios", @@ -338,7 +338,9 @@ "Sorted (#{{count}})_one": "Ordenado (#{{count}})", "Sorted (#{{count}})_other": "Ordenado (#{{count}})", "Unfreeze {{count}} columns_one": "Descongelar esta columna", - "Unfreeze {{count}} columns_other": "Descongelar {{count}} columnas" + "Unfreeze {{count}} columns_other": "Descongelar {{count}} columnas", + "Insert column to the right": "Insertar columna a la derecha", + "Insert column to the left": "Insertar columna a la izquierda" }, "HomeIntro": { ", or find an expert via our ": ", o encontrar un experto a través de nuestro", @@ -370,7 +372,7 @@ "Create Workspace": "Crear espacio de trabajo", "Delete": "Borrar", "Delete {{workspace}} and all included documents?": "Eliminar {{workspace}} y todos los documentos incluidos?", - "Examples & Templates": "Ejemplos y Plantillas", + "Examples & Templates": "Ejemplos & Plantillas", "Import Document": "Importar documento", "Manage Users": "Gestionar usuarios", "Rename": "Renombrar", diff --git a/static/locales/fr.client.json b/static/locales/fr.client.json index 3ba27582..2bbbd3de 100644 --- a/static/locales/fr.client.json +++ b/static/locales/fr.client.json @@ -95,7 +95,8 @@ "App": { "Description": "Description", "Key": "Clé", - "Memory Error": "Erreur mémoire" + "Memory Error": "Erreur mémoire", + "Translators: please translate this only when your language is ready to be offered to users": "[TRANSLATED]" }, "AppHeader": { "Home Page": "Page d’accueil", diff --git a/static/locales/it.client.json b/static/locales/it.client.json index 33f4b7fe..0087c7d8 100644 --- a/static/locales/it.client.json +++ b/static/locales/it.client.json @@ -302,7 +302,7 @@ "Number Format": "Formato numerico" }, "HyperLinkEditor": { - "[link label] url": "[testo link] url" + "[link label] url": "[testo link] URL" }, "welcomeTour": { "Editing Data": "Modificare i dati", @@ -467,7 +467,7 @@ "Create separate series for each value of the selected column.": "Creare serie separate per ciascun valore delle colonne selezionate.", "Pick a column": "Scegli una colonna", "Toggle chart aggregation": "Grafici aggregati", - "selected new group data columns": "Selezionato un nuovo gruppo di colonne dati", + "selected new group data columns": "Selezionato un nuovo gruppo-colonne dati", "Each Y series is followed by a series for the length of error bars.": "Ciascuna serie Y è seguita da una serie per la lunghezza della barra di errore.", "Each Y series is followed by two series, for top and bottom error bars.": "Ciascuna serie Y è seguita da due serie, per le barre di errore alta e bassa." }, @@ -705,7 +705,9 @@ "Reset {{count}} columns_other": "Resetta {{count}} colonne", "Show column {{- label}}": "Mostra colonna {{- label}}", "Sorted (#{{count}})_other": "Ordinati (#{{count}})", - "Unfreeze {{count}} columns_other": "Sblocca {{count}} colonne" + "Unfreeze {{count}} columns_other": "Sblocca {{count}} colonne", + "Insert column to the left": "Inserisci colonna a sinistra", + "Insert column to the right": "Inserisci colonna a destra" }, "GristDoc": { "Import from file": "Importa da file", @@ -877,7 +879,7 @@ }, "modals": { "Cancel": "Annulla", - "Ok": "Ok", + "Ok": "OK", "Save": "Salva" }, "pages": { diff --git a/static/locales/pl.client.json b/static/locales/pl.client.json index 59e45c13..5ef5c86d 100644 --- a/static/locales/pl.client.json +++ b/static/locales/pl.client.json @@ -30,14 +30,14 @@ "Remove {{- tableId }} rules": "Usuń reguły {{- tableId }}", "Remove {{- name }} user attribute": "Usuń atrybut użytkownika {{- name }}", "Reset": "Reset", - "Rules for table ": "Zasady dotyczące tabeli ", + "Rules for table ": "Reguły dotyczące tabeli ", "Save": "Zapisz", "Saved": "Zapisano", "Special Rules": "Reguły specjalne", "Type a message...": "Wpisz wiadomość…", "User Attributes": "Atrybuty użytkownika", "View As": "Wyświetl jako", - "Seed rules": "Zasady bazowe", + "Seed rules": "Reguły początkowe", "When adding table rules, automatically add a rule to grant OWNER full access.": "Automatycznie dodawaj regułę przyznającą właścicielowi pełen dostęp.", "Permission to edit document structure": "Uprawnienie do edycji struktury dokumentu" }, @@ -99,11 +99,12 @@ "App": { "Key": "Klucz", "Memory Error": "Błąd pamięci", - "Description": "Opis" + "Description": "Opis", + "Translators: please translate this only when your language is ready to be offered to users": "[TRANSLATED]" }, "AppHeader": { "Home Page": "Strona główna", - "Legacy": "Starsze", + "Legacy": "Brak wsparcia", "Personal Site": "Strona osobista", "Team Site": "Strona zespołu" }, @@ -117,8 +118,8 @@ "Delete {{count}} columns_other": "Usuń {{count}} kolumny", "Delete {{count}} rows_one": "Usuń wiersz", "Delete {{count}} rows_other": "Usuń {{count}} wierszy", - "Duplicate rows_one": "Duplikuj wiersz", - "Duplicate rows_other": "Duplikuj wiersze", + "Duplicate rows_one": "Zduplikuj wiersz", + "Duplicate rows_other": "Zduplikuj wiersze", "Filter by this value": "Filtruj według tej wartości", "Insert column to the left": "Wstaw kolumnę z lewej strony", "Insert column to the right": "Wstaw kolumnę z prawej strony", @@ -135,12 +136,12 @@ "Create separate series for each value of the selected column.": "Utwórz osobne serie dla każdej wartości z wybranej kolumny.", "Each Y series is followed by two series, for top and bottom error bars.": "Po każdej serii Y następują dwie serie, dla górnych i dolnych słupków błędów.", "Pick a column": "Wybierz kolumnę", - "Toggle chart aggregation": "Przełączanie agregacji wykresów", + "Toggle chart aggregation": "Zmień agregację wykresu", "selected new group data columns": "wybrane nowe kolumny danych grupowych", "Each Y series is followed by a series for the length of error bars.": "Po każdej serii Y następuje seria dla długości słupków błędów." }, "CodeEditorPanel": { - "Access denied": "Odmowa dostępu", + "Access denied": "Brak dostępu", "Code View is available only when you have full document access.": "Widok kodu jest dostępny tylko wtedy, gdy masz pełny dostęp do dokumentu." }, "ColumnFilterMenu": { @@ -183,7 +184,7 @@ "DataTables": { "Click to copy": "Kliknij, aby skopiować", "Delete {{formattedTableName}} data, and remove it from all pages?": "Usunąć dane {{formattedTableName}}, i usunąć je ze wszystkich stron?", - "Duplicate Table": "Duplikat tabeli", + "Duplicate Table": "Zduplikuj całą tabele", "Raw Data Tables": "Tabele danych surowych", "Table ID copied to clipboard": "ID tabeli skopiowane do schowka", "You do not have edit access to this document": "Nie masz dostępu do edycji tego dokumentu" @@ -263,7 +264,7 @@ "Get started by inviting your team and creating your first Grist document.": "Zacznij od zaproszenia swojego zespołu i stworzenia pierwszego dokumentu Grist.", "Help Center": "Centrum pomocy", "Import Document": "Importuj dokument", - "Get started by exploring templates, or creating your first Grist document.": "Zacznij od zapoznania się z szablonami lub stworzenia swojego pierwszego dokumentu Grist.", + "Get started by exploring templates, or creating your first Grist document.": "Zacznij od zapoznania się z gotowymi szablonami lub stwórz swój pierwszego dokument Grist.", "{{signUp}} to save your work. ": "{{signUp}}, aby zapisać swoją pracę. ", "Welcome to {{orgName}}": "Witamy w {{orgName}}", "Interested in using Grist outside of your team? Visit your free ": "Chcesz używać Grist poza swoim zespołem? Odwiedź swój darmowy ", @@ -285,14 +286,14 @@ "Currency:": "Waluta:", "Document Settings": "Ustawienia dokumentu", "Engine (experimental {{span}} change at own risk):": "Silnik (eksperymentalny {{span}} zmiana na własne ryzyko):", - "Locale:": "Ustawienia regionalne", + "Locale:": "Ustawienia regionalne:", "Save": "Zapisz", "Save and Reload": "Zapisz i ponownie załaduj", "This document's ID (for API use):": "Identyfikator tego dokumentu (na potrzeby API):", "Time Zone:": "Strefa czasowa:", "API": "API", "Document ID copied to clipboard": "Identyfikator dokumentu skopiowany do schowka", - "Ok": "Ok", + "Ok": "OK", "Local currency ({{currency}})": "Waluta lokalna ({{currency}})" }, "DocumentUsage": { @@ -307,9 +308,9 @@ }, "DuplicateTable": { "Copy all data in addition to the table structure.": "Skopiuj wszystkie dane oprócz struktury tabeli.", - "Instead of duplicating tables, it's usually better to segment data using linked views. {{link}}": "Zamiast duplikować tabele, zwykle lepiej jest segmentować dane za pomocą połączonych widoków. {{link}}", - "Name for new table": "Nazwa dla nowej tabeli", - "Only the document default access rules will apply to the copy.": "Do kopii będą miały zastosowanie tylko domyślne zasady dostępu do dokumentu." + "Instead of duplicating tables, it's usually better to segment data using linked views. {{link}}": "Zamiast duplikować tabele, zwykle lepiej jest utworzyć klika połączonych ze sobą widoków. {{link}}", + "Name for new table": "Nowa nazwa tabeli", + "Only the document default access rules will apply to the copy.": "Kopia dokumentu będzie używać tylko domyślnych reguł dostępu." }, "ExampleInfo": { "Afterschool Program": "Program pozaszkolny", @@ -369,7 +370,7 @@ "Hide {{count}} columns_one": "Ukryj kolumnę", "Hide {{count}} columns_other": "Ukryj {{count}}kolumn", "Insert column to the {{to}}": "Wstaw kolumnę do {{to}}", - "More sort options ...": "Więcej opcji sortowania…", + "More sort options ...": "Pozostałe opcje sortowania…", "Rename column": "Zmień nazwę kolumny", "Reset {{count}} columns_one": "Wyzerować kolumnę", "Reset {{count}} columns_other": "Wyzeruj {{count}} kolumn", @@ -532,10 +533,10 @@ }, "RowContextMenu": { "Delete": "Usuń", - "Insert row": "Wstawić wiersz", - "Insert row above": "Wstawić wiersz powyżej", - "Insert row below": "Wstawić wiersz poniżej", - "Copy anchor link": "Kopiowanie łącza zakotwiczenia", + "Insert row": "Dodaj wiersz", + "Insert row above": "Dodaj wiersz powyżej", + "Insert row below": "Dodaj wiersz poniżej", + "Copy anchor link": "Skopiuj link", "Duplicate rows_one": "Duplikuj wiersz", "Duplicate rows_other": "Duplikuj wiersze" }, @@ -543,9 +544,9 @@ "Back to Current": "Powrót do aktualnego", "Download": "Pobierz", "Send to Google Drive": "Wyślij na Dysk Google", - "Work on a Copy": "Praca nad kopią", + "Work on a Copy": "Wersja robocza", "Edit without affecting the original": "Edycja bez wpływu na oryginał", - "Duplicate Document": "Duplikat dokumentu", + "Duplicate Document": "Zduplikuj dokument", "Show in folder": "Pokaż w folderze", "Unsaved": "Niezapisane", "Access Details": "Szczegóły dostępu", @@ -561,7 +562,7 @@ "Manage Users": "Zarządzanie użytkownikami" }, "SiteSwitcher": { - "Switch Sites": "Przełączanie witryn", + "Switch Sites": "Przełącz witrynę", "Create new team site": "Utwórz nową witrynę zespołu" }, "SortConfig": { @@ -575,7 +576,7 @@ "Tools": { "Document History": "Historia dokumentu", "Return to viewing as yourself": "Powrót do oglądania jako Ty", - "Access Rules": "Zasady dostępu", + "Access Rules": "Reguły dostępu", "Code View": "Widok kodu", "Delete": "Usuń", "Delete document tour?": "Usunąć wycieczkę po dokumencie?", @@ -630,11 +631,11 @@ "Big tables may be marked as \"on-demand\" to avoid loading them into the data engine.": "Duże tabele mogą być oznaczone jako \"na żądanie\", aby uniknąć ładowania ich do silnika danych." }, "ViewLayoutMenu": { - "Copy anchor link": "Kopiowanie łącza zakotwiczenia", + "Copy anchor link": "Skopiuj link", "Data selection": "Wybór danych", "Delete record": "Usuń rekord", "Open configuration": "Otwórz konfiguracje", - "Print widget": "Drukuj widżet", + "Print widget": "Wydrukuj sekcję", "Add to page": "Dodaj do strony", "Collapse widget": "Zwiń widżet", "Download as XLSX": "Pobierz jako XLSX", @@ -642,7 +643,7 @@ "Delete widget": "Usuń widżet", "Download as CSV": "Pobierz jako CSV", "Show raw data": "Pokaż surowe dane", - "Widget options": "Opcje widżetów", + "Widget options": "Ustawienia widoku", "Advanced Sort & Filter": "Zaawansowane sortowanie i filtrowanie" }, "ViewSectionMenu": { @@ -699,10 +700,10 @@ }, "duplicatePage": { "Note that this does not copy data, but creates another view of the same data.": "Zauważ, że to nie kopiuje danych, ale tworzy inny widok tych samych danych.", - "Duplicate page {{pageName}}": "Duplikat strony {{pageName}}" + "Duplicate page {{pageName}}": "Utwórz kopię stronę {{pageName}}" }, "errorPages": { - "Access denied{{suffix}}": "Odmowa dostępu{{suffix}}", + "Access denied{{suffix}}": "Brak dostępu{{suffix}}", "Go to main page": "Przejdź do strony głównej", "Page not found{{suffix}}": "Nie znaleziono strony{{suffix}}", "Sign in again": "Zaloguj się ponownie", @@ -717,7 +718,7 @@ "Add account": "Dodaj konto", "Contact support": "Skontaktuj się z pomocą techniczną", "Sign in to access this organization's documents.": "Zaloguj się, aby uzyskać dostęp do dokumentów tej organizacji.", - "The requested page could not be found.{{separator}}Please check the URL and try again.": "Nie można odnaleźć żądanej strony. {{separator}} Sprawdź adres URL i spróbuj ponownie.", + "The requested page could not be found.{{separator}}Please check the URL and try again.": "Nie można odnaleźć strony. {{separator}} Sprawdź adres URL i spróbuj ponownie.", "You are signed in as {{email}}. You can sign in with a different account, or ask an administrator for access.": "Jesteś zalogowany jako {{email}}. Możesz zalogować się na inne konto lub poprosić administratora o dostęp." }, "menus": { @@ -744,7 +745,7 @@ }, "pages": { "You do not have edit access to this document": "Nie masz dostępu do edycji tego dokumentu", - "Duplicate Page": "Duplikat strony", + "Duplicate Page": "Utwórz kopię strony", "Remove": "Usuń", "Rename": "Zmień nazwę" }, @@ -836,13 +837,13 @@ "It should be impossible to save a plain data value into a formula column": "Zapisanie zwykłej wartości danych w kolumnie formuły powinno być niemożliwe" }, "HyperLinkEditor": { - "[link label] url": "[etykieta linku] url" + "[link label] url": "[etykieta linku] URL" }, "NumericTextBox": { "Decimals": "Miejsc dziesiętnych", "Default currency ({{defaultCurrency}})": "Waluta domyślna ({{defaultCurrency}})", "Number Format": "Format liczb", - "Currency": "Waluta:" + "Currency": "Waluta" }, "ConditionalStyle": { "Add another rule": "Dodaj kolejną regułę", @@ -953,7 +954,7 @@ "Use the 𝚺 icon to create summary (or pivot) tables, for totals or subtotals.": "Użyj ikony Σ, aby utworzyć tabele podsumowujące (lub przestawne) dla sum lub sum częściowych.", "Use the \\u{1D6BA} icon to create summary (or pivot) tables, for totals or subtotals.": "Użyj ikony \\u{1D6BA}, aby utworzyć tabele podsumowujące (przestawne) dla sum lub sum częściowych.", "relational": "relacyjny", - "Access Rules": "Zasady dostępu", + "Access Rules": "Reguły dostępu", "Access rules give you the power to create nuanced rules to determine who can see or edit which parts of your document.": "Reguły dostępu umożliwiają tworzenie reguł szczegółowych w celu określenia, kto może wyświetlać lub edytować poszczególne części dokumentu.", "Add New": "Dodaj nowy" }, diff --git a/static/locales/pt_BR.client.json b/static/locales/pt_BR.client.json index f983a7a1..226d5632 100644 --- a/static/locales/pt_BR.client.json +++ b/static/locales/pt_BR.client.json @@ -227,7 +227,7 @@ "Document will be permanently deleted.": "O documento será permanentemente excluído.", "Documents stay in Trash for 30 days, after which they get deleted permanently.": "Os documentos ficam na Lixeira por 30 dias, após os quais são excluídos permanentemente.", "Edited {{at}}": "{{at}} editado", - "Examples & Templates": "Exemplos e Modelos", + "Examples & Templates": "Exemplos & Modelos", "Examples and Templates": "Exemplos e Modelos", "Featured": "Destaques", "Manage Users": "Gerenciar Usuários", @@ -409,7 +409,9 @@ "Sorted (#{{count}})_one": "Ordenado (#{{count}})", "Sorted (#{{count}})_other": "Ordenado (#{{count}})", "Unfreeze {{count}} columns_one": "Descongelar esta coluna", - "Unfreeze {{count}} columns_other": "Descongelar {{count}} colunas" + "Unfreeze {{count}} columns_other": "Descongelar {{count}} colunas", + "Insert column to the left": "Inserir coluna à esquerda", + "Insert column to the right": "Inserir coluna à direita" }, "GristDoc": { "Added new linked section to view {{viewName}}": "Adicionada nova seção vinculada para visualizar {{viewName}}}", @@ -446,7 +448,7 @@ "Create Workspace": "Criar Área de Trabalho", "Delete": "Excluir", "Delete {{workspace}} and all included documents?": "Excluir {{workspace}} e todos os documentos inclusos?", - "Examples & Templates": "Exemplos e Modelos", + "Examples & Templates": "Exemplos & Modelos", "Import Document": "Importar Documento", "Manage Users": "Gerenciar Usuários", "Rename": "Renomear", diff --git a/static/locales/uk.client.json b/static/locales/uk.client.json index dd2ae4ee..56370da3 100644 --- a/static/locales/uk.client.json +++ b/static/locales/uk.client.json @@ -198,7 +198,11 @@ "Clear": "Очистити", "Cannot drop items into Hidden Fields": "Неможливо перенести елементи у приховані поля", "Hidden Fields cannot be reordered": "Приховані поля не можна перевпорядкувати", - "Select All": "Виділити всі" + "Select All": "Виділити всі", + "Show {{label}}": "Показати {{label}}", + "Visible {{label}}": "Видимі {{label}}", + "Hide {{label}}": "Приховати {{label}}", + "Hidden {{label}}": "Приховані {{label}}" }, "TriggerFormulas": { "Apply to new records": "Застосувати до нових записів", @@ -223,7 +227,7 @@ }, "ChartView": { "Pick a column": "Виберіть стовпець", - "selected new group data columns": "вибрані стовпці даних нової групи", + "selected new group data columns": "вибрана нова група стовпців даних", "Create separate series for each value of the selected column.": "Створіть окремі серії для кожного значення вибраного стовпця.", "Toggle chart aggregation": "Перемикання створення діаграм", "Each Y series is followed by a series for the length of error bars.": "За кожною серією Y слідує серія для довжини стовпців помилок.", @@ -292,7 +296,7 @@ "Permission to view Access Rules": "Дозвіл на перегляд правил доступу", "Rules for table ": "Правила для таблиці ", "Save": "Зберегти", - "Lookup Table": "Таблиця пошуку", + "Lookup Table": "Пошукова таблиця", "Lookup Column": "Стовпець пошуку", "Saved": "Збережено", "Special Rules": "Особливі правила", @@ -306,7 +310,7 @@ "Remove column {{- colId }} from {{- tableId }} rules": "Видалити стовпець {{- colId }} з правил {{- tableId }}", "When adding table rules, automatically add a rule to grant OWNER full access.": "При додаванні правил таблиці, автоматично додавати правило для надання ВЛАСНИКУ повного доступу.", "Seed rules": "Успадковані правила", - "Allow everyone to copy the entire document, or view it in full in fiddle mode.\nUseful for examples and templates, but not for sensitive data.": "Дозволити всім копіювати весь документ або переглянути його повністю в fiddle-режимі (режимі створення нових копій).\nКорисно для прикладів і шаблонів, але не для конфіденційних даних." + "Allow everyone to copy the entire document, or view it in full in fiddle mode.\nUseful for examples and templates, but not for sensitive data.": "Дозволити кожному скопіювати весь документ або переглянути його повністю в режимі створення нових копій.\nКорисно для прикладів і шаблонів, але не для конфіденційних даних." }, "AccountPage": { "API": "API", @@ -366,7 +370,8 @@ "App": { "Description": "Опис", "Key": "Ключ", - "Memory Error": "Помилка памʼяті" + "Memory Error": "Помилка памʼяті", + "Translators: please translate this only when your language is ready to be offered to users": "Перекладачі: будь ласка, перекладайте це тільки тоді, коли ваша мова буде готова для користувачів" }, "AppHeader": { "Home Page": "Домашня сторінка", @@ -481,7 +486,7 @@ "This document's ID (for API use):": "Ідентифікатор цього документа (для використання API):", "API": "API", "Document ID copied to clipboard": "Ідентифікатор документа скопійований у буфер", - "Ok": "Ок", + "Ok": "ОК", "Engine (experimental {{span}} change at own risk):": "Обчислювальна система (експериментальна версія {{span}} змінюйте на власний ризик):" }, "DocTour": { @@ -685,7 +690,9 @@ "Open configuration": "Відкрита конфігурація", "Print widget": "Роздрукувати віджет", "Show raw data": "Показати вихідні дані", - "Widget options": "Параметри віджету" + "Widget options": "Параметри віджету", + "Add to page": "Додати на сторінку", + "Collapse widget": "Згорнути віджет" }, "AppModel": { "This team site is suspended. Documents can be read, but not modified.": "Цей сайт команди обмежений. Документи можна читати, але редагування не доступне." @@ -741,17 +748,29 @@ "You are now signed out.": "Ви вийшли з облікового запису.", "You do not have access to this organization's documents.": "У вас немає доступу до документів цієї організації.", "Sign in to access this organization's documents.": "Увійдіть, щоб отримати доступ до документів цієї організації.", - "The requested page could not be found.{{separator}}Please check the URL and try again.": "Потрібну сторінку не знайдено.{{separator}}Перевірте URL-адресу та повторіть ще раз.", + "The requested page could not be found.{{separator}}Please check the URL and try again.": "Не вдалося знайти запитувану сторінку.{{separator}}Будь ласка, перевірте URL-адресу і спробуйте ще раз.", "You are signed in as {{email}}. You can sign in with a different account, or ask an administrator for access.": "Ви увійшли як {{email}}. Ви можете увійти під іншим обліковим записом або попросити доступ у адміністратора." }, "menus": { "* Workspaces are available on team plans. ": "* Робочі простори доступні в командних тарифах. ", "Select fields": "Виберіть поля", - "Upgrade now": "Оновити зараз" + "Upgrade now": "Оновити зараз", + "Any": "Будь-які", + "Numeric": "Числа", + "Text": "Текст", + "Integer": "Цілі числа", + "Toggle": "Перемикач", + "Date": "Дата", + "Choice": "Вибір", + "Choice List": "Список вибору", + "Reference": "Посилання", + "DateTime": "Дата і час", + "Reference List": "Список посилань", + "Attachment": "Вкладення" }, "modals": { "Cancel": "Відмінити", - "Ok": "Ок", + "Ok": "ОК", "Save": "Зберегти" }, "pages": { @@ -857,7 +876,7 @@ "Errors in {{numErrors}} of {{numCells}} cells": "Помилки в {{numErrors}} в {{numCells}} клітинках" }, "HyperLinkEditor": { - "[link label] url": "[link label] url" + "[link label] url": "[мітка посилання] URL" }, "NumericTextBox": { "Currency": "Валюта", @@ -941,5 +960,8 @@ "You can filter by more than one column.": "Ви можете фільтрувати за кількома стовпцями.", "Try out changes in a copy, then decide whether to replace the original with your edits.": "Спробуйте змінити копію, а потім вирішіть, чи слід замінювати оригінал своїми правками.", "Access rules give you the power to create nuanced rules to determine who can see or edit which parts of your document.": "Правила доступу дають вам можливість створювати детальні правила, щоб визначити, хто може бачити або редагувати (та які) частини вашого документа." + }, + "DescriptionConfig": { + "DESCRIPTION": "ОПИС" } } diff --git a/static/locales/zh_Hans.client.json b/static/locales/zh_Hans.client.json index 837eb8f4..603cf76d 100644 --- a/static/locales/zh_Hans.client.json +++ b/static/locales/zh_Hans.client.json @@ -182,7 +182,8 @@ "App": { "Description": "描述", "Key": "关键", - "Memory Error": "内存错误" + "Memory Error": "内存错误", + "Translators: please translate this only when your language is ready to be offered to users": "[TRANSLATED]" }, "AppHeader": { "Home Page": "主页",