From dac914a6cb6328c00372e9cc41bbd1d79e65c9a9 Mon Sep 17 00:00:00 2001 From: kpodp0ra Date: Thu, 24 Oct 2024 02:55:43 +0200 Subject: [PATCH 1/4] translation: polish translation [wip] --- packages/common-i18n/src/locales/pl/auth.json | 43 ++ .../common-i18n/src/locales/pl/common.json | 283 +++++++ .../common-i18n/src/locales/pl/dashboard.json | 15 + .../common-i18n/src/locales/pl/developer.json | 21 + .../common-i18n/src/locales/pl/oauth.json | 63 ++ .../common-i18n/src/locales/pl/plugin.json | 56 ++ packages/common-i18n/src/locales/pl/sdk.json | 720 ++++++++++++++++++ .../common-i18n/src/locales/pl/setting.json | 5 + .../common-i18n/src/locales/pl/share.json | 12 + .../common-i18n/src/locales/pl/space.json | 52 ++ .../common-i18n/src/locales/pl/system.json | 16 + .../common-i18n/src/locales/pl/table.json | 463 +++++++++++ .../common-i18n/src/locales/pl/token.json | 56 ++ packages/common-i18n/src/locales/pl/zod.json | 113 +++ 14 files changed, 1918 insertions(+) create mode 100644 packages/common-i18n/src/locales/pl/auth.json create mode 100644 packages/common-i18n/src/locales/pl/common.json create mode 100644 packages/common-i18n/src/locales/pl/dashboard.json create mode 100644 packages/common-i18n/src/locales/pl/developer.json create mode 100644 packages/common-i18n/src/locales/pl/oauth.json create mode 100644 packages/common-i18n/src/locales/pl/plugin.json create mode 100644 packages/common-i18n/src/locales/pl/sdk.json create mode 100644 packages/common-i18n/src/locales/pl/setting.json create mode 100644 packages/common-i18n/src/locales/pl/share.json create mode 100644 packages/common-i18n/src/locales/pl/space.json create mode 100644 packages/common-i18n/src/locales/pl/system.json create mode 100644 packages/common-i18n/src/locales/pl/table.json create mode 100644 packages/common-i18n/src/locales/pl/token.json create mode 100644 packages/common-i18n/src/locales/pl/zod.json diff --git a/packages/common-i18n/src/locales/pl/auth.json b/packages/common-i18n/src/locales/pl/auth.json new file mode 100644 index 0000000000..5e576457cd --- /dev/null +++ b/packages/common-i18n/src/locales/pl/auth.json @@ -0,0 +1,43 @@ +{ + "page": { + "title": "Logowanie" + }, + "button": { + "signin": "Zaloguj się", + "signup": "Zarejestruj się" + }, + "label": { + "email": "Email", + "password": "Hasło" + }, + "placeholder": { + "password": "Podaj swoje hasło...", + "email": "Podaj swój email..." + }, + "resetPassword": { + "header": "Reset hasła", + "description": "Wprowadź poniżej nowe hasło do konta.", + "label": "Nowe hasło", + "error": { + "requiredPassword": "Hasło jest wymagane", + "invalidLink": "Nieprawidłowy link resetowania hasła" + }, + "success": { + "title": "🎉 Pomyślne zresetowano hasło", + "description": "Hasło zostało pomyślnie zresetowane. Nastąpi przekierowanie do strony logowania." + }, + "buttonText": "Zresetuj hasło" + }, + "forgetPassword": { + "trigger": "Zapomniałeś hasła?", + "header": "Reset hasła", + "description": "Wprowadź poniżej swój adres e-mail, a my wyślemy Ci link do zresetowania hasła.", + "errorRequiredEmail": "Email jest wymagany", + "errorInvalidEmail": "Nieprawidłowy email", + "buttonText": "Zresetuj hasło", + "success": { + "title": "🎉 Wiadomość e-mail z resetem hasła wysłana", + "description": "Wysłaliśmy wiadomość e-mail z linkiem do zresetowania hasła. Sprawdź swoją skrzynkę odbiorczą." + } + } +} diff --git a/packages/common-i18n/src/locales/pl/common.json b/packages/common-i18n/src/locales/pl/common.json new file mode 100644 index 0000000000..89d60fabf1 --- /dev/null +++ b/packages/common-i18n/src/locales/pl/common.json @@ -0,0 +1,283 @@ +{ + "brand": "Teable", + "actions": { + "title": "actions", + "save": "Save", + "doNotSave": "Don't Save", + "submit": "Prześlij", + "confirm": "Potwierdź", + "close": "Zamknij", + "edit": "Edit", + "fill": "Fill", + "update": "Update", + "create": "Stwórz", + "delete": "Usuń", + "cancel": "Anuluj", + "zoomIn": "Zoom in", + "zoomOut": "Zoom out", + "back": "Cofnij", + "saveSucceed": "Save Succeed!", + "submitSucceed": "Submit Succeed!", + "editSucceed": "Edit Succeed!", + "updateSucceed": "Update Succeed!", + "deleteSucceed": "Delete Succeed!", + "resetSucceed": "Empty trash Succeed!", + "restoreSucceed": "Restored Succeed!", + "loading": "Loading...", + "refreshPage": "Refresh Page", + "yesDelete": "Tak, skasuj", + "rename": "Zmień nazwę", + "duplicate": "Powiel", + "change": "Change", + "upgrade": "Upgrade", + "search": "Wyszukaj", + "loadMore": "Load more", + "collapseSidebar": "Collapse Sidebar", + "restore": "Restore", + "permanentDelete": "Permanent Delete" + }, + "quickAction": { + "title": "Szybkie akcje...", + "placeHolder": "Wpisz komendę lub wyszukaj..." + }, + "settings": { + "title": "Ustawienia", + "back": "Back to home", + "account": { + "title": "Mój profil", + "tab": "Mój profil", + "updatePhoto": "Wgraj zdjęcie", + "updateNameDesc": "Nazwa będzie wyświetlana na liście zmian i we wzmiankach. Możesz ją zmienić w dowolnym momencie.", + "securityTitle": "Bezpieczeństwo konta", + "email": "Email", + "password": "Hasło", + "passwordDesc": "Stałe hasło do logowania się na konto.", + "changePassword": { + "title": "Zmień hasło", + "desc": "Podaj swoje dotychczasowe hasło i nowe", + "current": "Podaj swoje obecne hasło", + "new": "Podaj nowe hasło", + "confirm": "Potwórz nowe hasło" + }, + "changePasswordError": { + "disMatch": "Twoje nowe hasło się nie zgadza.", + "equal": "Nowe hasło musi różnić się od obecnego.", + "invalid": "Bieżące hasło jest nieprawidłowe.", + "invalidNew": "Twoje nowe hasło jest nieprawidłowe, minimum 8 znaków." + }, + "changePasswordSuccess": { + "title": "🎉 Pomyślnie zmieniono hasło.", + "desc": "Zostaniesz przekierowany na stronę logowania w ciągu 2 sekund." + }, + "manageToken": "Tokeny dostępu", + "addPassword": { + "title": "Dodaj hasło", + "desc": "Ustaw stałe hasło do logowania się na konto", + "password": "Podaj hasło", + "confirm": "Potwórz hasło" + }, + "addPasswordError": { + "disMatch": "Hasła się nie zgadzają.", + "invalid": "Podano nieprawidłowe hasło, minimum 8 znaków." + }, + "addPasswordSuccess": { + "title": "🎉 Pomyślnie dodano hasło." + } + }, + "notify": { + "title": "Powiadomienia", + "label": "Aktywność w Twojej przestrzeni", + "desc": "Otrzymuj wiadomości e-mail, gdy otrzymasz komentarze, wzmianki, zaproszenia do strony, przypomnienia, prośby o dostęp i zmiany właściwości." + }, + "setting": { + "title": "Personalizacja", + "theme": "Motyw", + "themeDesc": "Wybierz motyw dla aplikacji.", + "dark": "Ciemny", + "light": "Jasny", + "system": "Systemowy", + "version": "Wersja aplikacji", + "language": "Język" + }, + "nav": { + "settings": "Ustawienia", + "logout": "Wyloguj się" + }, + "integration": { + "title": "Integracje", + "description": "Liczba aplikacji mająca dostęp do Twojego konta: {{count}}.", + "lastUsed": "Ostatnio używane {{date}}", + "revoke": "Wycofaj", + "owner": "Właściciel: {{user}}", + "revokeTitle": "Czy na pewno chcesz cofnąć autoryzację?", + "revokeDesc": "{{name}} nie będzie już w stanie uzyskać dostępu do Teable API. Nie możesz cofnąć tej akcji.", + "scopeTitle": "Uprawnienia", + "scopeDesc": "Aplikacja będzie mogła korzystać z następujących obszarów:" + } + }, + "noun": { + "table": "Tabela", + "view": "Widok", + "space": "Przestrzeń", + "base": "Baza", + "field": "Pole", + "record": "Rekord", + "dashboard": "Pulpit", + "automation": "Automatyzacje", + "authorityMatrix": "Macierz uprawnień", + "adminPanel": "Panel administracyjny", + "license": "Licencja", + "instanceId": "ID instancji", + "beta": "Beta", + "trash": "Kosz" + }, + "level": { + "free": "Free", + "plus": "Plus", + "pro": "Pro", + "enterprise": "Enterprise" + }, + "noResult": "No Result.", + "untitled": "Untitled", + "name": "Nazwa", + "description": "Opis", + "required": "Required", + "guide": { + "prev": "Prev", + "next": "Next", + "done": "Done", + "skip": "Skip", + "createSpaceTooltipTitle": "Create a space", + "createSpaceTooltipContent": "Teable is organized into spaces, where each space invites users to collaborate.

Spaces in Teable serve as a primary navigation element within the menu bar, offering a foundational platform for users to add and manage databases as needed.", + "createBaseTooltipTitle": "Create a base", + "createBaseTooltipContent": "A base (short for \"database\") is a place to store important data, and the workflows that depend on it.", + "createTableTooltipTitle": "Create a table", + "createTableTooltipContent": "Tables are designed to efficiently handle diverse datasets, offering a versatile display of information through various data types.", + "createViewTooltipTitle": "Create a view", + "createViewTooltipContent": "Currently, users can create Grid and Form views, with Gallery, Kanban, and Calendar views planned for future releases.

This variety equips users with a comprehensive toolkit for various data management tasks.", + "viewFilteringTooltipTitle": "Filtering records", + "viewFilteringTooltipContent": "One of the core features of views is the ability to filter out records from a view according to the conditions you set.

When a record is filtered out based on a condition, it is not deleted—it's just hidden from the particular view you're using to look at your table.", + "viewSortingTooltipTitle": "Sorting records", + "viewSortingTooltipContent": "While in a view, you can sort your records so that they appear in a particular order according to the values in specific fields.

Sorting your records in one view doesn't affect the order of records in other views—it just applies to the view you're currently using to look at your table.", + "viewGroupingTooltipTitle": "Grouping records", + "viewGroupingTooltipContent": "Grouping records allows creators to build a set of one or more conditions that will help to categorize the dataset that is being presented within a particular view.", + "apiButtonTooltipTitle": "API", + "apiButtonTooltipContent": "Teable offers a powerful API that supports nearly all product features, allowing developers to make calls using an Token." + }, + "token": "Token", + "poweredBy": "Powered by <0>", + "invite": { + "dialog": { + "title": "{{spaceName}} space sharing", + "desc_one": "This space has {{count}} collaborator. Adding a space collaborator will give them access to all bases within this space.", + "desc_other": "This space has {{count}} collaborators. Adding a space collaborator will give them access to all bases within this space.", + "tabEmail": "Invite by email", + "emailPlaceholder": "Invite more collaborators via email", + "tabLink": "Invite by link", + "linkPlaceholder": "Create an invite link that grants <0/> access to anyone who opens it.", + "emailSend": "Send invite", + "linkSend": "Create link", + "spaceTitle": "Space collaborators", + "collaboratorSearchPlaceholder": "Znajdź członka przestrzeni według nazwy lub adresu e-mail", + "collaboratorJoin": "dołączył {{joinTime}}", + "collaboratorRemove": "Remove collaborator", + "linkTitle": "Invite links", + "linkCreatedTime": "created {{createdTime}}", + "linkCopySuccess": "Link copied", + "linkRemove": "Remove link" + }, + "base": { + "title": "Share {{baseName}}", + "desc_one": "This base is shared with {{count}} collaborator.", + "desc_other": "This base is shared with {{count}} collaborators.", + "baseTitle": "Base collaborators", + "collaboratorSearchPlaceholder": "Find a base collaborator by name or email" + } + }, + "help": { + "title": "Pomoc", + "mainLink": "https://help.teable.io", + "apiLink": "https://help.teable.io/developer/api" + }, + "pagePermissionChangeTip": "Page permissions have been updated. Please refresh the page to see the latest content.", + "listEmptyTips": "The list is empty", + "billing": { + "overLimits": "Over limits", + "overLimitsDescription": "Your current subscription has exceeded its usage limit. Please upgrade your plan to continue using this feature without interruption.", + "userLimitExceededDescription": "The current instance have reached the maximum number of users allowed by your license. Please deactivate some users or upgrade the license.", + "unavailableInPlanTips": "The current subscription plan does not support this feature", + "levelTips": "This space is currently on the {{level}} plan", + "spaceSubscriptionModal": { + "title": "Upgrade space's subscription plan", + "description": "You can only upgrade workspaces where you are an owner" + }, + "status": { + "active": "Active", + "canceled": "Canceled", + "incomplete": "Incomplete", + "incompleteExpired": "Incomplete Expired", + "trialing": "Trialing", + "pastDue": "Past Due", + "unpaid": "Unpaid", + "paused": "Paused", + "seatLimitExceeded": "Seat limit exceeded" + } + }, + "admin": { + "setting": { + "description": "Zmień ustawienia dla Twojej obecnej instancji", + "allowSignUp": "Zezwalaj na tworzenie nowych kont", + "allowSignUpDescription": "Wyłączenie tej opcji uniemożliwi nowe rejestracje użytkowników, a przycisk rejestracji nie będzie już pojawiał się na stronie logowania.", + "allowSpaceInvitation": "Zezwalaj na wysyłanie zaproszeń do przestrzeni", + "allowSpaceInvitationDescription": "Wyłączenie tej opcji uniemożliwi użytkownikom innych niż administratorzy zapraszanie innych do dołączenia do przestrzeni. Włączenie tej opcji pozwoli zaproszonym użytkownikom na utworzenie konta, nawet jeśli rejestracja jest wyłączona.", + "allowSpaceCreation": "Zezwalaj wszystkim na tworzenie nowych przestrzeni", + "allowSpaceCreationDescription": "Wyłączenie tej opcji uniemożliwi użytkownikom innych niż administratorzy tworzenie nowych przestrzeni." + } + }, + "notification": { + "title": "Powiadomienia", + "unread": "Nieodczytane", + "read": "Odczytane", + "markAs": "Oznacz to powiadomienie jako {{status}}", + "markAllAsRead": "Oznacz wszystkie jako odczytane", + "noUnread": "Brak powiadomień w folderze {{status}}", + "changeSetting": "Change page notification settings", + "new": "new {{count}}", + "showMore": "Show more" + }, + "role": { + "title": { + "owner": "Właściciel", + "creator": "Twórca", + "editor": "Redaktor", + "commenter": "Komentujący", + "viewer": "Obserwator" + }, + "description": { + "owner": "Może w pełni konfigurować i edytować bazy, automatyzacje, macierze uprawnień oraz zarządzać ustawieniami przestrzeni i płatnościami", + "creator": "Może w pełni konfigurować i edytować bazy, automatyzacje i włączać macierze uprawnień", + "editor": "Może edytować rekordy i widoki, ale nie może konfigurować tabel ani pól", + "commenter": "Może komentować rekordy", + "viewer": "Nie może edytować ani komentować" + } + }, + "trash": { + "type": "Type", + "resetTrash": "Empty trash", + "deletedBy": "Deleted by", + "deletedTime": "Deleted time", + "fromSpace": "From \"{{name}}\" space", + "permanentDeleteTips": "Are you sure you want to permanently delete \"{{name}}\" {{resource}}?", + "resetTrashConfirm": "Are you sure you want to empty the trash?" + }, + "pluginCenter": { + "pluginUrlEmpty": "Plugin Not Setting url", + "install": "Zainstaluj", + "publisher": "Wydawca", + "lastUpdated": "Ostatnio zaktualizowano", + "pluginNotFound": "Nie znaleziono wtyczki", + "pluginEmpty": { + "title": "Nie ma jeszcze wtyczek" + } + } +} diff --git a/packages/common-i18n/src/locales/pl/dashboard.json b/packages/common-i18n/src/locales/pl/dashboard.json new file mode 100644 index 0000000000..7013aab620 --- /dev/null +++ b/packages/common-i18n/src/locales/pl/dashboard.json @@ -0,0 +1,15 @@ +{ + "empty": { + "title": "Nie ma jeszcze żadnych pulpitów", + "description": "Wygląda na to, że nie utworzono jeszcze żadnych pulpitów. Pulpity pomagają wizualizować dane i zarządzać nimi w bardziej efektywny sposób.", + "create": "Utwórz swój pierwszy pulpit" + }, + "addPlugin": "Dodaj wtyczkę", + "createDashboard": { + "button": "Stwórz pulpit", + "title": "Utwórz nowy pulpit", + "placeholder": "Wprowadź nazwę pulpitu" + }, + "findDashboard": "Znajdź pulpit...", + "expand": "Rozwiń" +} diff --git a/packages/common-i18n/src/locales/pl/developer.json b/packages/common-i18n/src/locales/pl/developer.json new file mode 100644 index 0000000000..7474352311 --- /dev/null +++ b/packages/common-i18n/src/locales/pl/developer.json @@ -0,0 +1,21 @@ +{ + "apiQueryBuilder": "API query builder", + "subTitle": "You can quickly build your query requests through a interactive UI and copy the code that can be run directly", + "apiList": "Complete API List", + "cellFormat": "Cell result format", + "fieldKeyType": "Field key type", + "fieldKeyTypeDesc": "The type of the field key in the result", + "chooseSource": "Choose a data source", + "action": { + "selectBase": "Select a database...", + "selectTable": "Select a table..." + }, + "pickParams": "Select and configure the parameters", + "buildResult": "Build result", + "buildResultEmpty": "No result yet", + "previewReturnValue": "Return value preview", + "replaceToken": "Replace token", + "createNewToken": "Create new token", + "showPagination": "Pagination parameters are displayed in JSON mode", + "addSort": "Add a sort" +} diff --git a/packages/common-i18n/src/locales/pl/oauth.json b/packages/common-i18n/src/locales/pl/oauth.json new file mode 100644 index 0000000000..b580e2682e --- /dev/null +++ b/packages/common-i18n/src/locales/pl/oauth.json @@ -0,0 +1,63 @@ +{ + "add": "New OAuth Apps", + "title": { + "add": "New OAuth Apps", + "edit": "Edit OAuth Apps" + }, + "form": { + "name": { + "label": "OAuth App name", + "description": "The name of your OAuth App." + }, + "description": { + "label": "Description", + "description": "A short description of your OAuth App." + }, + "homePageUrl": { + "label": "Homepage URL", + "description": "The full URL to your OAuth App’s website." + }, + "logo": { + "label": "Logo", + "description": "A square image is recommended.", + "placeholder": "Drag and drop your logo here or click to upload", + "button": "Upload a logo", + "clear": "Clear", + "lengthError": "Only one file is allowed.", + "typeError": "Only image file is allowed." + }, + "callbackUrl": { + "label": "Callback URL", + "description": "The full URL to redirect to after a user authorizing your integration.", + "add": "Add Callback URL" + }, + "scopes": { + "label": "Scopes", + "description": "The permissions your OAuth App needs." + }, + "secret": { + "label": "Client secrets", + "add": "Generate a new client secret", + "newDescription": "Make sure to copy your new client secret now. You won’t be able to see it again.", + "empty": "You need a client secret to authenticate as the application to the API.", + "lastUsed": "Last used at {{date}}", + "tag": "Client secret", + "neverUsed": "Never used" + }, + "clientId": { + "label": "Client ID: " + } + }, + "formType": { + "basic": "Basic information", + "scopes": "Scopes", + "identify": "Identifying and authorizing users", + "clientInfo": "Client information" + }, + "decision": { + "title": "{{name}} is requesting access to your account", + "scopes": "This application will be able to get the following scopes:", + "redirectDescription": "Authorizing will redirect to", + "authorize": "Authorize" + } +} diff --git a/packages/common-i18n/src/locales/pl/plugin.json b/packages/common-i18n/src/locales/pl/plugin.json new file mode 100644 index 0000000000..62127e3130 --- /dev/null +++ b/packages/common-i18n/src/locales/pl/plugin.json @@ -0,0 +1,56 @@ +{ + "add": "New Plugins", + "title": { + "add": "New Plugins", + "edit": "Edit Plugins" + }, + "pluginUser": { + "name": "Plugin User", + "description": "Plugin User as a plugin auto generated by the system" + }, + "secret": "Secret", + "regenerateSecret": "Regenerate Secret", + "form": { + "name": { + "label": "Name", + "description": "name of the plugin" + }, + "description": { + "label": "Description", + "description": "description of the plugin" + }, + "detailDesc": { + "label": "Detail Description", + "description": "detail description of the plugin" + }, + "logo": { + "label": "Logo", + "description": "logo of the plugin, you can upload a picture or use a URL", + "upload": "Upload", + "clear": "Clear", + "placeholder": "Drag and drop your logo here or click to upload", + "lengthError": "Only one file is allowed.", + "typeError": "Only image file is allowed." + }, + "helpUrl": { + "label": "Help Url", + "description": "URL of the help document of the plugin" + }, + "positions": { + "label": "Positions", + "description": "positions of the plugin" + }, + "i18n": { + "label": "I18n", + "description": "i18n of the plugin, contains(name, description, detail description)" + }, + "url": { + "label": "Url", + "description": "URL of the plugin" + } + }, + "markdown": { + "write": "Write", + "preview": "Preview" + } +} diff --git a/packages/common-i18n/src/locales/pl/sdk.json b/packages/common-i18n/src/locales/pl/sdk.json new file mode 100644 index 0000000000..d3feebf31d --- /dev/null +++ b/packages/common-i18n/src/locales/pl/sdk.json @@ -0,0 +1,720 @@ +{ + "common": { + "comingSoon": "Coming Soon", + "empty": "Empty", + "noRecords": "No records available", + "unnamedRecord": "Unnamed record", + "untitled": "Untitled", + "cancel": "Cancel", + "confirm": "Confirm", + "back": "Back", + "done": "Done", + "create": "Create", + "search": { + "placeholder": "Search...", + "empty": "No results found" + }, + "selectPlaceHolder": "Select...", + "loading": "Loading...", + "loadMore": "Load more", + "uploadFailed": "Upload failed", + "rowCount": "{{count}} records", + "summary": "Summary", + "summaryTip": "Hover to select summary", + "actions": "Actions" + }, + "undoRedo": { + "undo": "Undo", + "redo": "Redo", + "undoFailed": "Undo failed", + "redoFailed": "Redo failed", + "nothingToUndo": "Nothing to undo", + "nothingToRedo": "Nothing to redo", + "undoSucceed": "Undo succeed", + "redoSucceed": "Redo succeed", + "undoing": "undoing...", + "redoing": "redoing..." + }, + "editor": { + "attachment": { + "uploadDragOver": "Release to upload file", + "uploadDragDefault": "Paste or drag and drop to upload here", + "upload": "upload" + }, + "date": { + "placeholder": "Pick a date", + "today": "Today" + }, + "formula": { + "title": "Formula Editor", + "guideSyntax": "Syntax", + "guideExample": "Example", + "helperExample": "Example: ", + "fieldValue": "Returns the value to the cells of the {{fieldName}} field." + }, + "link": { + "placeholder": "Select records to link", + "searchPlaceholder": "Search records", + "create": "Add Record", + "selectRecord": "Select Record", + "unselected": "Unselected", + "selected": "Selected", + "expandRecordError": "No permission to view this record.", + "alreadyOpen": "This record is already open.", + "goToForeignTable": "Go to foreign table" + }, + "user": { + "searchPlaceholder": "Find users by name", + "notify": "Notify users once they're selected" + }, + "select": { + "addOption": "Add an option '{{option}}'" + } + }, + "filter": { + "label": "Filter", + "displayLabel": "Filter by ", + "displayLabel_other": "Filter by {{fieldName}} and {{count}} other fields", + "addCondition": "Add condition", + "addConditionGroup": "Add condition group", + "nestedLimitTip": "Filter conditions can only be nested {{depth}} levels deep", + "linkInputPlaceholder": "Enter a value", + "groupDescription": "Any of the following are true…", + "currentUser": "Me (current user)", + "tips": { + "scope": "In this view, show records" + }, + "invalidateSelected": "Invalid value", + "invalidateSelectedTips": "The selected value has been deleted, please select again", + "default": { + "empty": "No filter conditions are applied", + "placeholder": "Enter a value" + }, + "conjunction": { + "and": "and", + "or": "or", + "where": "where" + }, + "operator": { + "is": "is", + "isNot": "is not", + "contains": "contains", + "doesNotContain": "does not contain", + "isEmpty": "is empty", + "isNotEmpty": "is not empty", + "isGreater": "is greater than", + "isGreaterEqual": "is greater Equal", + "isLess": "is less than", + "isLessEqual": "is less Equal", + "isAnyOf": "is any of", + "isNoneOf": "is not any of", + "hasAnyOf": "has any of", + "hasAllOf": "has all of", + "hasNoneOf": "has none of", + "isExactly": "is exactly", + "isWithIn": "is with in", + "isBefore": "is before", + "isAfter": "is after", + "isOnOrBefore": "is on or before", + "isOnOrAfter": "is on or after", + "number": { + "is": "=", + "isNot": "≠", + "isGreater": ">", + "isGreaterEqual": "≥", + "isLess": "<", + "isLessEqual": "≤" + } + }, + "component": { + "date": { + "today": "today", + "tomorrow": "tomorrow", + "yesterday": "yesterday", + "oneWeekAgo": "one week ago", + "oneWeekFromNow": "one week from now", + "oneMonthAgo": "one month ago", + "oneMonthFromNow": "one month from now", + "daysAgo": "days ago", + "daysFromNow": "days from now", + "exactDate": "exact date", + "pastWeek": "past week", + "pastMonth": "past month", + "pastYear": "past year", + "nextWeek": "next week", + "nextMonth": "next Month", + "nextYear": "next Year", + "pastNumberOfDays": "past number of days", + "nextNumberOfDays": "next number of days" + } + } + }, + "color": { + "label": "color" + }, + "rowHeight": { + "short": "short", + "medium": "medium", + "tall": "tall", + "extraTall": "extraTall" + }, + "share": { + "title": "share" + }, + "extensions": { + "title": "extensions" + }, + "hidden": { + "label": "Hidden Fields", + "configLabel_one": "{{count}} hidden field", + "configLabel_other": "{{count}} hidden fields", + "configLabel_other_visible": "{{count}} visible fields", + "showAll": "Show All", + "hideAll": "Hide All", + "primaryKey": "Primary field: Identifies records\ncannot be hidden or deleted, visible in linked records." + }, + "expandRecord": { + "copy": "Copy to clipboard", + "copyRecordUrl": "Copy record URL", + "deleteRecord": "Delete record", + "recordHistory": { + "hiddenRecordHistory": "Hide record history", + "showRecordHistory": "Show record history", + "createdTime": "Created time", + "createdBy": "Created by", + "before": "Before", + "after": "After", + "viewRecord": "View record" + }, + "showHiddenFields": "Show {{count}} hidden fields", + "hideHiddenFields": "Hide {{count}} hidden fields" + }, + "sort": { + "label": "Sort", + "displayLabel_one": "Sort by {{count}} field", + "displayLabel_other": "Sort by {{count}} fields", + "setTips": "Sort by", + "addButton": "Add another sort", + "autoSort": "Automatically sort records", + "selectASCLabel": "first → last", + "selectDESCLabel": "last → first" + }, + "group": { + "label": "Group", + "displayLabel_one": "Group by {{count}} fields", + "displayLabel_other": "Group by {{count}} fields", + "setTips": "Group by", + "addButton": "Add Subgroup" + }, + "field": { + "title": { + "singleLineText": "Single line text", + "longText": "Long text", + "singleSelect": "Single select", + "number": "Number", + "multipleSelect": "Multiple select", + "link": "Link to another record", + "formula": "Formula", + "date": "Date", + "createdTime": "Created time", + "lastModifiedTime": "Last modified time", + "attachment": "Attachment", + "checkbox": "Checkbox", + "rollup": "Rollup", + "user": "User", + "rating": "Rating", + "autoNumber": "Auto number", + "lookup": "Lookup", + "button": "Button", + "createdBy": "Created by", + "lastModifiedBy": "Last modified by" + } + }, + "permission": { + "actionDescription": { + "spaceCreate": "Create space", + "spaceDelete": "Delete space", + "spaceRead": "Read space", + "spaceUpdate": "Update space", + "spaceInviteEmail": "Invite via email in space", + "spaceInviteLink": "Invite via link in space", + "spaceGrantRole": "Grant role in space", + "baseCreate": "Create base", + "baseDelete": "Delete base", + "baseRead": "Read base", + "baseUpdate": "Update base", + "baseInviteEmail": "Invite via email in base", + "baseInviteLink": "Invite via link in base", + "baseTableImport": "Import data into base", + "baseTableExport": "Export data from base", + "baseAuthorityMatrixConfig": "Configure authority matrix", + "baseDbConnect": "Connect to database", + "tableCreate": "Create table", + "tableRead": "Read table", + "tableDelete": "Delete table", + "tableUpdate": "Update table", + "tableImport": "Import data into table", + "tableExport": "export table data", + "viewCreate": "Create view", + "viewDelete": "Delete view", + "viewRead": "Read view", + "viewUpdate": "Update view", + "viewShare": "Share view", + "fieldCreate": "Create field", + "fieldDelete": "Delete field", + "fieldRead": "Read field", + "fieldUpdate": "Update field", + "recordCreate": "Create record", + "recordComment": "Comment on record", + "recordDelete": "Delete record", + "recordRead": "Read record", + "recordUpdate": "Update record", + "automationCreate": "Create automation", + "automationDelete": "Delete automation", + "automationRead": "Read automation", + "automationUpdate": "Update automation", + "userEmailRead": "Read user email", + "recordHistoryRead": "Read record history", + "baseQuery": "Query base" + } + }, + "noun": { + "table": "Table", + "view": "View", + "space": "Space", + "base": "Base", + "field": "Field", + "record": "Record", + "automation": "Automation", + "user": "User", + "recordHistory": "Record History", + "you": "You" + }, + "formula": { + "SUM": { + "summary": "Sum together the numbers. Equivalent to number1 + number2 + ...", + "example": "SUM(100, 200, 300) => 600" + }, + "AVERAGE": { + "summary": "Returns the average of the numbers.", + "example": "AVERAGE(100, 200, 300) => 200" + }, + "MAX": { + "summary": "Returns the largest of the given numbers.", + "example": "MAX(100, 200, 300) => 300" + }, + "MIN": { + "summary": "Returns the smallest of the given numbers.", + "example": "MIN(100, 200, 300) => 100" + }, + "ROUND": { + "summary": "Rounds the value to the number of decimal places given by \"precision\" (Specifically, ROUND will round to the nearest integer at the specified precision, with ties broken by rounding half up toward positive infinity.)", + "example": "ROUND(1.99, 0) => 2\nROUND(16.8, -1) => 20" + }, + "ROUNDUP": { + "summary": "Rounds the value to the number of decimal places given by \"precision\" always rounding up, i.e., away from zero. (You must give a value for the precision or the function will not work.)", + "example": "ROUNDUP(1.1, 0) => 2\nROUNDUP(-1.1, 0) => -2" + }, + "ROUNDDOWN": { + "summary": "Rounds the value to the number of decimal places given by \"precision\" always rounding down, i.e., toward zero. (You must give a value for the precision or the function will not work.)", + "example": "ROUNDDOWN(1.9, 0) => 1\nROUNDDOWN(-1.9, 0) => -1" + }, + "CEILING": { + "summary": "Returns the nearest integer multiple of significance that is greater than or equal to the value. If no significance is provided, a significance of 1 is assumed.", + "example": "CEILING(2.49) => 3\nCEILING(2.49, 1) => 2.5\nCEILING(2.49, -1) => 10" + }, + "FLOOR": { + "summary": "Returns the nearest integer multiple of significance that is less than or equal to the value. If no significance is provided, a significance of 1 is assumed.", + "example": "FLOOR(2.49) => 2\nFLOOR(2.49, 1) => 2.4\nFLOOR(2.49, -1) => 0" + }, + "EVEN": { + "summary": "Returns the smallest even integer that is greater than or equal to the specified value.", + "example": "EVEN(0.1) => 2\nEVEN(-0.1) => -2" + }, + "ODD": { + "summary": "Rounds positive value up the nearest odd number and negative value down to the nearest odd number.", + "example": "ODD(0.1) => 1\nODD(-0.1) => -1" + }, + "INT": { + "summary": "Returns number1 if the logical argument is true, otherwise it returns number2. Can also be used to make nested IF statements.\nCan also be used to check if a cell is blank/is empty.", + "example": "INT(1.9) => 1\nINT(-1.9) => -2" + }, + "ABS": { + "summary": "Returns the absolute value.", + "example": "ABS(-1) => 1" + }, + "SQRT": { + "summary": "Returns the square root of a nonnegative number.", + "example": "SQRT(4) => 2" + }, + "POWER": { + "summary": "Computes the specified base to the specified power.", + "example": "POWER(2) => 4" + }, + "EXP": { + "summary": "Computes Euler number (e) to the specified power.", + "example": "EXP(0) => 1\nEXP(1) => 2.718" + }, + "LOG": { + "summary": "Computes the logarithm of the value in provided base. The base defaults to 10 if not specified.", + "example": "LOG(100) => 2\nLOG(1024, 2) => 10" + }, + "MOD": { + "summary": "Returns the remainder after dividing the first argument by the second.", + "example": "MOD(9, 2) => 1\nMOD(9, 3) => 0" + }, + "VALUE": { + "summary": "Converts the text string to a number.", + "example": "VALUE(\"$1,000,000\") => 1000000" + }, + "CONCATENATE": { + "summary": "Joins together various value types arguments into a single text value.", + "example": "CONCATENATE(\"Hello \", \"Teable\") => Hello Teable" + }, + "FIND": { + "summary": "Finds an occurrence of stringToFind in whereToSearch string starting from an optional startFromPosition.(startFromPosition is 0 by default.) If no occurrence of stringToFind is found, the result will be 0.", + "example": "FIND(\"Teable\", \"Hello Teable\") => 7\nFIND(\"Teable\", \"Hello Teable\", 5) => 7\nFIND(\"Teable\", \"Hello Teable\", 10) => 0" + }, + "SEARCH": { + "summary": "Searches for an occurrence of stringToFind in whereToSearch string starting from an optional startFromPosition. (startFromPosition is 0 by default.) If no occurrence of stringToFind is found, the result will be empty.\nSimilar to FIND(), though FIND() returns 0 rather than empty if no occurrence of stringToFind is found.", + "example": "SEARCH(\"Teable\", \"Hello Teable\") => 7\nSEARCH(\"Teable\", \"Hello Teable\", 5) => 7\nSEARCH(\"Teable\", \"Hello Teable\", 10) => \"\"" + }, + "MID": { + "summary": "Extract a substring of count characters starting at whereToStart.", + "example": "MID(\"Hello Teable\", 6, 6) => \"Teable\"" + }, + "LEFT": { + "summary": "Extract howMany characters from the beginning of the string.", + "example": "LEFT(\"2023-09-06\", 4) => \"2023\"" + }, + "RIGHT": { + "summary": "Extract howMany characters from the ending of the string.", + "example": "RIGHT(\"2023-09-06\", 5) => \"09-06\"" + }, + "REPLACE": { + "summary": "Replaces the number of characters beginning with the start character with the replacement text.\n(If you are looking for a way to find and replace all occurrences of old_text with new_text, see SUBSTITUTE().)", + "example": "REPLACE(\"Hello Table\", 7, 5, \"Teable\") => \"Hello Teable\"" + }, + "REGEXP_REPLACE": { + "summary": "Replaces all substrings matching regular expression with replacement.", + "example": "REGEXP_REPLACE(\"Hello Table\", \"H.* \", \"\") => \"Teable\"" + }, + "SUBSTITUTE": { + "summary": "Replaces occurrences of old_text with new_text.\nYou can optionally specify an index number (starting from 1) to replace just a specific occurrence of old_text. If no index number is specified, then all occurrences of old_text will be replaced.", + "example": "SUBSTITUTE(\"Hello Table\", \"Table\", \"Teable\") => \"Hello Teable\"" + }, + "LOWER": { + "summary": "Makes a string lowercase.", + "example": "LOWER(\"Hello Teable\") => \"hello teable\"" + }, + "UPPER": { + "summary": "Makes a string uppercase.", + "example": "UPPER(\"Hello Teable\") => \"HELLO TEABLE\"" + }, + "REPT": { + "summary": "Repeats string by the specified number of times.", + "example": "REPT(\"Hello!\") => \"Hello!Hello!Hello!\"" + }, + "TRIM": { + "summary": "Removes whitespace at the beginning and end of string.", + "example": "TRIM(\" Hello \") => \"Hello\"" + }, + "LEN": { + "summary": "Extract howMany characters from the beginning of the string.", + "example": "LEN(\"Hello\") => 5" + }, + "T": { + "summary": "Returns the argument if it is text and blank otherwise.", + "example": "T(\"Hello\") => \"Hello\"\nT(100) => null" + }, + "ENCODE_URL_COMPONENT": { + "summary": "Replaces certain characters with encoded equivalents for use in constructing URLs or URIs. Does not encode the following characters: - _ . ~", + "example": "ENCODE_URL_COMPONENT(\"Hello Teable\") => \"Hello%20Teable\"" + }, + "IF": { + "summary": "Returns value1 if the logical argument is true, otherwise it returns value2. Can also be used to make nested IF statements.\nCan also be used to check if a cell is blank/is empty.", + "example": "IF(2 > 1, \"A\", \"B\") => \"A\"\nIF(2 > 1, TRUE, FALSE) => TRUE" + }, + "SWITCH": { + "summary": "Takes an expression, a list of possible values for that expression, and for each one, a value that the expression should take in that case. It can also take a default value if the expression input does not match any of the defined patterns. In many cases, SWITCH() can be used instead of a nested IF() formula.", + "example": "SWITCH(\"B\", \"A\", \"Value A\", \"B\", \"Value B\", \"Default Value\") => \"Value B\"" + }, + "AND": { + "summary": "Returns true if all the arguments are true, returns false otherwise.", + "example": "AND(1 < 2, 5 > 3) => true\nAND(1 < 2, 5 < 3) => false" + }, + "OR": { + "summary": "Returns true if any one of the arguments is true.", + "example": "OR(1 < 2, 5 < 3) => true\nOR(1 > 2, 5 < 3) => false" + }, + "XOR": { + "summary": "Returns true if an odd number of arguments are true.", + "example": "XOR(1 < 2, 5 < 3, 8 < 10) => false\nXOR(1 > 2, 5 < 3, 8 < 10) => true" + }, + "NOT": { + "summary": "Reverses the logical value of its argument.", + "example": "NOT(1 < 2) => false\nNOT(1 > 2) => true" + }, + "BLANK": { + "summary": "Returns a blank value.", + "example": "BLANK() => null\nIF(2 > 3, \"Yes\", BLANK()) => null" + }, + "ERROR": { + "summary": "Returns the error value.", + "example": "IF(2 > 3, \"Yes\", ERROR(\"Calculation\")) => \"#ERROR: Calculation\"" + }, + "IS_ERROR": { + "summary": "Returns true if the expression causes an error.", + "example": "IS_ERROR(ERROR()) => true" + }, + "TODAY": { + "summary": "Returns the current date.", + "example": "TODAY() => \"2023-09-08 00:00\"" + }, + "NOW": { + "summary": "Returns the current date and time.", + "example": "NOW() => \"2023-09-08 16:50\"" + }, + "YEAR": { + "summary": "Returns the four-digit year of a datetime.", + "example": "YEAR(\"2023-09-08\") => 2023" + }, + "MONTH": { + "summary": "Returns the month of a datetime as a number between 1 (January) and 12 (December).", + "example": "MONTH(\"2023-09-08\") => 9" + }, + "WEEKNUM": { + "summary": "Returns the week number in a year.", + "example": "WEEKNUM(\"2023-09-08\") => 36" + }, + "WEEKDAY": { + "summary": "Returns the day of the week as an integer between 0 and 6, inclusive. You may optionally provide a second argument (either \"Sunday\" or \"Monday\") to start weeks on that day. If omitted, weeks start on Sunday by default. Example:\nWEEKDAY(TODAY(), \"Monday\")", + "example": "WEEKNUM(\"2023-09-08\") => 5" + }, + "DAY": { + "summary": "Returns the day of the month of a datetime in the form of a number between 1-31.", + "example": "DAY(\"2023-09-08\") => 8" + }, + "HOUR": { + "summary": "Returns the hour of a datetime as a number between 0 (12:00am) and 23 (11:00pm).", + "example": "HOUR(\"2023-09-08 16:50\") => 16" + }, + "MINUTE": { + "summary": "Returns the minute of a datetime as an integer between 0 and 59.", + "example": "MINUTE(\"2023-09-08 16:50\") => 50" + }, + "SECOND": { + "summary": "Returns the second of a datetime as an integer between 0 and 59.", + "example": "SECOND(\"2023-09-08 16:50:30\") => 30" + }, + "FROMNOW": { + "summary": "Calculates the number of days between the current date and another date.", + "example": "FROMNOW({Date}, \"day\") => 25" + }, + "TONOW": { + "summary": "Calculates the number of days between the current date and another date.", + "example": "TONOW({Date}, \"day\") => 25" + }, + "DATETIME_DIFF": { + "summary": "Returns the difference between datetimes in specified units. Default units are seconds. (See list of unit specifiers here.)\nThe difference between datetimes is determined by subtracting [date2] from [date1]. This means that if [date2] is later than [date1], the resulting value will be negative.", + "example": "DATETIME_DIFF(\"2022-08-01\", \"2023-09-08\", \"day\") => 403" + }, + "WORKDAY": { + "summary": "Returns the workday to the start date, excluding the specified holidays", + "example": "WORKDAY(\"2023-09-08\", 200) => \"2024-06-14 00:00:00\"\nWORKDAY(\"2023-09-08\", 200, \"2024-01-22, 2024-01-23, 2024-01-24, 2024-01-25\") => \"2024-06-20 00:00:00\"" + }, + "WORKDAY_DIFF": { + "summary": "Returns the number of working days between date1 and date2. Working days exclude weekends and an optional list of holidays, formatted as a comma-separated string of ISO-formatted dates.", + "example": "WORKDAY_DIFF(\"2023-06-18\", \"2023-10-01\") => 75\nWORKDAY(\"2023-06-18\", \"2023-10-01\", \"2023-07-12, 2023-08-18, 2023-08-19\") => 73" + }, + "IS_SAME": { + "summary": "Compares two dates up to a unit and determines whether they are identical. Returns true if yes, false if no.", + "example": "IS_SAME(\"2023-09-08\", \"2023-09-10\") => false\nIS_SAME(\"2023-09-08\", \"2023-09-10\", \"month\") => true" + }, + "IS_AFTER": { + "summary": "Determines if date1 is later than date2. Returns true if yes, false if no.", + "example": "IS_AFTER(\"2023-09-10\", \"2023-09-08\") => true\nIS_AFTER(\"2023-09-10\", \"2023-09-08\", \"month\") => false" + }, + "IS_BEFORE": { + "summary": "Determines if date1 is earlier than date2. Returns true if yes, false if no.", + "example": "IS_BEFORE(\"2023-09-08\", \"2023-09-10\") => true\nIS_BEFORE(\"2023-09-08\", \"2023-09-10\", \"month\") => false" + }, + "DATE_ADD": { + "summary": "Adds specified \"count\" units to a datetime.", + "example": "DATE_ADD(\"2023-09-08 18:00:00\", 10, \"day\") => \"2023-09-18 18:00:00\"" + }, + "DATESTR": { + "summary": "Formats a datetime into a string (YYYY-MM-DD).", + "example": "DATESTR(\"2023/09/08\") => \"2023-09-08\"" + }, + "TIMESTR": { + "summary": "Formats a datetime into a time-only string (HH:mm:ss).", + "example": "DATESTR(\"2023/09/08 16:50:30\") => \"16:50:30\"" + }, + "DATETIME_FORMAT": { + "summary": "Formats a datetime into a specified string. For an explanation of how to use this function with date fields, click here. For a list of supported format specifiers, please click here.", + "example": "DATETIME_FORMAT(\"2023-09-08\", \"DD-MM-YYYY\") => \"08-09-2023\"" + }, + "DATETIME_PARSE": { + "summary": "Interprets a text string as a structured date, with optional input format and locale parameters. The output format will always be formatted \"M/D/YYYY h:mm a\".", + "example": "DATETIME_PARSE(\"8 Sep 2023 18:00\", \"D MMM YYYY HH:mm\") => \"2023-09-08 18:00:00\"" + }, + "CREATED_TIME": { + "summary": "Returns the creation time of the current record.", + "example": "CREATED_TIME() => \"2023-09-08 18:00:00\"" + }, + "LAST_MODIFIED_TIME": { + "summary": "Returns the date and time of the most recent modification made by a user in a non-computed field in the table.", + "example": "LAST_MODIFIED_TIME() => \"2023-09-08 18:00:00\"" + }, + "COUNTALL": { + "summary": "Returns the number of all elements including text and blanks.", + "example": "COUNTALL(100, 200, \"\", \"Teable\", TRUE()) => 5" + }, + "COUNTA": { + "summary": "Returns the number of non-empty values. This function counts both numeric and text values.", + "example": "COUNTA(100, 200, 300, \"\", \"Teable\", TRUE) => 4" + }, + "COUNT": { + "summary": "Returns the number of numeric items.", + "example": "COUNT(100, 200, 300, \"\", \"Teable\", TRUE) => 3" + }, + "ARRAY_JOIN": { + "summary": "Join the array of rollup items into a string with a separator.", + "example": "ARRAY_JOIN([\"Tom\", \"Jerry\", \"Mike\"], \"; \") => \"Tom; Jerry; Mike\"" + }, + "ARRAY_UNIQUE": { + "summary": "Returns only unique items in the array.", + "example": "ARRAY_UNIQUE([1, 2, 3, 2, 1]) => [1, 2, 3]" + }, + "ARRAY_FLATTEN": { + "summary": "Flattens the array by removing any array nesting. All items become elements of a single array.", + "example": "ARRAY_FLATTEN([1, 2, \" \", 3, true], [\"ABC\"]) => [1, 2, 3, \" \", true, \"ABC\"]" + }, + "ARRAY_COMPACT": { + "summary": "Removes empty strings and null values from the array. Keeps \"false\" and strings that contain one or more blank characters.", + "example": "ARRAY_COMPACT([1, 2, 3, \"\", null, \"ABC\"]) => [1, 2, 3, \"ABC\"]" + }, + "TEXT_ALL": { + "summary": "Returns all text values", + "example": "TEXT_ALL(\"t\") => t" + }, + "RECORD_ID": { + "summary": "Returns the ID of the current record.", + "example": "RECORD_ID() => \"recxxxxxx\"" + }, + "AUTO_NUMBER": { + "summary": "Returns the unique and incremented numbers for each record.", + "example": "AUTO_NUMBER() => 1" + }, + "FORMULA": { + "summary": "Fill in variables, operational characters, and functions to form formulas for calculations.", + "example": "Quoting the Column: {Field name}\n\nUsing operator: 100 * 2 + 300\n\nUsing function: SUM({Number Field 1}, 100)\n\nUsing IF statement: \nIF(logical condition, \"value 1\", \"value 2\")" + } + }, + "functionType": { + "fields": "Fields", + "numeric": "Numeric", + "text": "Text", + "logical": "Logical", + "date": "Date", + "array": "Array", + "system": "System" + }, + "statisticFunc": { + "none": "None", + "count": "Count", + "empty": "Empty", + "filled": "Filled", + "unique": "Unique", + "max": "Max", + "min": "Min", + "sum": "Sum", + "average": "Average", + "checked": "Checked", + "unChecked": "Unchecked", + "percentEmpty": "Percent Empty", + "percentFilled": "Percent Filled", + "percentUnique": "Percent Unique", + "percentChecked": "Percent Checked", + "percentUnChecked": "Percent Unchecked", + "earliestDate": "Earliest Date", + "latestDate": "Latest Date", + "dateRangeOfDays": "Date Range (days)", + "dateRangeOfMonths": "Date Range (months)", + "totalAttachmentSize": "Total Attachment Size" + }, + "baseQuery": { + "add": "Add", + "error": { + "invalidCol": "Invalid column, please reselect", + "invalidCols": "Invalid columns: {{colNames}}", + "invalidTable": "Invalid table, please reselect", + "requiredSelect": "You must select one" + }, + "from": { + "title": "From", + "fromTable": "Select Table", + "fromQuery": "From Query" + }, + "select": { + "title": "Select" + }, + "where": { + "title": "Where" + }, + "groupBy": { + "title": "Group By" + }, + "orderBy": { + "title": "Order By", + "asc": "Ascending", + "desc": "Descending" + }, + "limit": { + "title": "Limit" + }, + "offset": { + "title": "Offset" + }, + "join": { + "title": "Join", + "joinType": "Join Type", + "leftJoin": "Left Join", + "rightJoin": "Right Join", + "innerJoin": "Inner Join", + "fullJoin": "Full Join", + "data": "From" + }, + "aggregation": { + "title": "Aggregation" + } + }, + "comment": { + "title": "Comment", + "placeholder": "Leave a comment...", + "emptyComment": "Start a conversation", + "deletedComment": "Deleted Comment", + "imageSizeLimit": "Image size could not be greater than {{size}}", + "tip": { + "editing": "Editing...", + "edited": "(Edited)", + "onNotify": "Only be notified comment relative to you if you turn off", + "offNotify": "You will be notified by all active if you turn on", + "reactionUserSuffix": "reacted with {{emoji}} emoji", + "me": "You", + "connection": "and" + }, + "toolbar": { + "link": "Link", + "image": "Image" + }, + "floatToolbar": { + "editLink": "Edit Link", + "caption": "Caption", + "delete": "Delete", + "linkText": "Link Text", + "enterUrl": "Enter URL" + } + } +} diff --git a/packages/common-i18n/src/locales/pl/setting.json b/packages/common-i18n/src/locales/pl/setting.json new file mode 100644 index 0000000000..3819e8ecdf --- /dev/null +++ b/packages/common-i18n/src/locales/pl/setting.json @@ -0,0 +1,5 @@ +{ + "personalAccessToken": "Personal access tokens", + "oauthApps": "OAuth Apps", + "plugins": "Plugins" +} diff --git a/packages/common-i18n/src/locales/pl/share.json b/packages/common-i18n/src/locales/pl/share.json new file mode 100644 index 0000000000..884d58b9d7 --- /dev/null +++ b/packages/common-i18n/src/locales/pl/share.json @@ -0,0 +1,12 @@ +{ + "auth": { + "title": "Wprowadź hasło, aby wyświetlić tę stronę", + "submit": "Prześlij", + "password": "Hasło" + }, + "toolbar": { + "filterLinkSelectPlaceholder": "Wybierz..." + }, + "openOnNewPage": "Otwórz na nowej stronie", + "errorTips": "Macierz uprawnień została aktywowana, wyświetlanie jest niedozwolone" +} diff --git a/packages/common-i18n/src/locales/pl/space.json b/packages/common-i18n/src/locales/pl/space.json new file mode 100644 index 0000000000..edc9d0d44a --- /dev/null +++ b/packages/common-i18n/src/locales/pl/space.json @@ -0,0 +1,52 @@ +{ + "initialSpaceName": "Przestrzeń {{name}}", + "page": { + "title": "Teable App" + }, + "action": { + "createBase": "Stwórz bazę", + "createSpace": "Stwórz przestrzeń", + "invite": "Zaproś" + }, + "allSpaces": "Wszystkie przestrzenie", + "spaceIsEmpty": "Ta przestrzeń jest pusta", + "baseModal": { + "copy": "Kopia", + "duplicate": "Powiel \"{{baseName}}\"", + "createBaseFromTemplate": "Tworzenie bazy z szablonu", + "duplicateRecords": "Powiel rekordy", + "duplicateRecordsTip": "Historia zmian nie zostanie zduplikowana.", + "toSpace": "Do przestrzeni", + "copyToSpace": "Skopiuj do przestrzeni", + "duplicateBase": "Powiel bazę", + "missTargetTip": "Wybierz miejsce do powielenia bazy.", + "copying": "Trwa duplikowanie bazy, może to chwilę potrwać...", + "copyingTemplate": "Trwa tworzenie bazy z szablonu, może to chwilę potrwać...", + "howToCreate": "Jak chcesz zacząć?", + "fromScratch": "Od zera", + "fromTemplate": "Z szablonu" + }, + "spaceSetting": { + "title": "Ustawienia przestrzeni", + "general": "Ogólne", + "collaborators": "Członkowie", + "generalDescription": "Zmiana ustawień bieżącej przestrzeni", + "collaboratorDescription": "Zarządzaj członkami Twojej przestrzeni i ustaw im uprawnienia dostępu", + "spaceName": "Nazwa przestrzeni", + "spaceId": "ID przestrzeni" + }, + "pin": { + "add": "Dodaj do przypiętych", + "remove": "Usuń z przypiętych", + "pin": "Przypięte", + "empty": "To miejsce na przypięte bazy i przestrzenie" + }, + "tip": { + "delete": "Czy na pewno chcesz usunąć <0/>?" + }, + "sharedBase": { + "title": "Współdzielone bazy", + "description": "Pojawią się tutaj bazy, które zostały udostępnione Tobie.", + "empty": "Nie ma jeszcze współdzielonych baz" + } +} diff --git a/packages/common-i18n/src/locales/pl/system.json b/packages/common-i18n/src/locales/pl/system.json new file mode 100644 index 0000000000..022055e676 --- /dev/null +++ b/packages/common-i18n/src/locales/pl/system.json @@ -0,0 +1,16 @@ +{ + "notFound": { + "title": "404 - Page Not Found" + }, + "links": { + "backToHome": "Back to home" + }, + "forbidden": { + "title": "403 - Forbidden", + "description": "You don't have permission to access this page." + }, + "paymentRequired": { + "title": "402 - Subscription Upgrade Required", + "description": "Your current subscription does not support access to this feature.

Please upgrade your subscription to continue." + } +} diff --git a/packages/common-i18n/src/locales/pl/table.json b/packages/common-i18n/src/locales/pl/table.json new file mode 100644 index 0000000000..865e867df9 --- /dev/null +++ b/packages/common-i18n/src/locales/pl/table.json @@ -0,0 +1,463 @@ +{ + "toolbar": { + "comingSoon": "Coming soon", + "viewFilterInShare": "This view is being used in a view share link. Modifications to the view configuration will also change the view share link.", + "createFieldButtonText": "Create a new <0/> field", + "others": { + "share": { + "label": "Udostępnij", + "statusLabel": "Udostępnianie", + "noPermission": "Brak uprawnień do udostępniania widoku", + "shareLink": "Udostępnij link", + "copied": "Skopiowano", + "genLink": "Wygeneruj nowy link", + "allowCopy": "Zezwól na kopiowanie danych z tego widoku", + "showAllFields": "Pokaż wszystkie pola po rozwinięciu rekordów", + "restrict": "Ogranicz hasłem", + "tips": "Osoby posiadające link mogą zobaczyć ten widok.", + "passwordTitle": "Wprowadź hasło", + "passwordTips": "Ograniczenie widoku współdzielonego za pomocą hasła", + "embed": "Osadzenie", + "embedPreview": "Podgląd osadzenia", + "hideToolbar": "Ukryj pasek narzędzi", + "URLSetting": "Konfiguracja parametrów linku", + "URLSettingDescription": "Zmiana poniższych ustawień nie wpłynie na już udostępnione linki. Aby zmiany weszły w życie musisz skopiować nowy link", + "cancel": "Anuluj", + "save": "Zapisz", + "requireLogin": "Require login submit" + }, + "extensions": { + "label": "Rozszerzenia", + "graph": "Wykres" + }, + "api": { + "label": "API", + "restfulApi": "Interfejs REST API", + "databaseConnection": "Połączenie z bazą danych" + } + } + }, + "welcome": { + "title": "Welcome", + "description": "Click the + sign on the left sidebar to create a table.", + "help": "Visit the for more information.", + "helpCenter": "Help Center" + }, + "field": { + "fieldManagement": "Zarządzanie polami", + "fieldManagementDesc": "Szczegółowe parametry dla wszystkich pól bieżącej tabeli", + "advancedProps": "Zaawansowane właściwości", + "hide": "hide", + "default": { + "singleLineText": { + "title": "Label" + }, + "longText": { + "title": "Notes" + }, + "number": { + "title": "Number", + "formatType": "Format Type", + "currencySymbol": "Currency Symbol", + "defaultSymbol": "$", + "precision": "Precision", + "decimalExample": "Decimal (1.0)", + "currencyExample": "Currency ($100)", + "percentExample": "Percent (20%)" + }, + "singleSelect": { + "title": "Status", + "options": { + "todo": "To Do", + "inProgress": "In Progress", + "done": "Done" + } + }, + "multipleSelect": { + "title": "Tags" + }, + "attachment": { + "title": "Attachments" + }, + "user": { + "title": "Collaborator" + }, + "date": { + "title": "Date", + "dateFormatting": "Date Formatting", + "timeFormatting": "Time Formatting", + "timeZone": "Time Zone", + "yearMonth": "Year/Month", + "monthDay": "Month/Day", + "year": "Year", + "month": "Month", + "day": "Day", + "local": "Local", + "friendly": "Friendly", + "us": "US", + "european": "European", + "asia": "Asia", + "custom": "Custom", + "12Hour": "12 hour", + "24Hour": "24 hour", + "noDisplay": "No display" + }, + "autoNumber": { + "title": "ID" + }, + "createdTime": { + "title": "Created time" + }, + "lastModifiedTime": { + "title": "Last modified time" + }, + "createdBy": { + "title": "Created by" + }, + "lastModifiedBy": { + "title": "Last modified by" + }, + "rating": { + "title": "Rating" + }, + "checkbox": { + "title": "Done" + }, + "formula": { + "title": "Calculation", + "formula": "Formula" + }, + "lookup": { + "title": "{{lookupFieldName}} (from {{linkFieldName}})" + }, + "rollup": { + "title": "{{lookupFieldName}} Rollup (from {{linkFieldName}})", + "rollup": "Rollup", + "selectAnRollupFunction": "Select an rollup function", + "func": { + "and": "AND", + "arrayCompact": "ARRAYCOMPACT", + "arrayJoin": "ARRAYJOIN", + "arrayUnique": "ARRAYUNIQUE", + "average": "AVERAGE", + "concatenate": "CONCATENATE", + "count": "COUNT", + "countA": "COUNTA", + "countAll": "COUNTALL", + "max": "MAX", + "min": "MIN", + "or": "OR", + "sum": "SUM", + "xor": "XOR" + }, + "funcDesc": { + "and": "Returns true if all the values are true", + "arrayCompact": "Removes empty strings and null values from the array. Keeps 'false' and strings that contain one or more blank characters.", + "arrayJoin": "Join all the values into a single comma-separated string.", + "arrayUnique": "Return only unique items.", + "average": "Mean average of the values.", + "concatenate": "Joins together the text values into a single text value.", + "count": "Count only non-empty numeric values. If you want to count all records, use COUNTALL.", + "countA": "Count the number of non-empty values. This function counts both numeric and text values.", + "countAll": "counts all values including blank records.", + "max": "Returns the largest of the given numbers.", + "min": "Returns the smallest of the given numbers.", + "or": "Returns true if any one of the values is true.", + "sum": "Sum together the values.", + "xor": "Returns true if and only if odd number of values are true." + } + } + }, + "editor": { + "addField": "Add Field", + "editField": "Edit Field", + "insertField": "Insert Field", + "graph": "Wykres", + "defaultValue": "Default value", + "reset": "Reset", + "fieldUpdated": "Field has been updated", + "fieldCreated": "Field has been created", + "previewDependenciesGraph": "Preview Dependencies Graph", + "areYouSurePerformIt": "Are you sure you want to perform it?", + "addDescription": "Add Description", + "description": "Description", + "descriptionPlaceholder": "Describe this field (optional)", + "type": "Type", + "showAs": "Show As", + "color": "Color", + "number": "Number", + "chartBar": "Chart Bar", + "chartLine": "Chart Line", + "ring": "Ring", + "bar": "Bar", + "text": "Text", + "url": "Url", + "email": "Email", + "phone": "Phone", + "maxNumber": "Max Number", + "showNumber": "Show Number", + "autoFillDate": "Auto Fill with current date", + "createSymmetricLink": "Create a back link field in the link table", + "allowLinkMultipleRecords": "Allow multiple select", + "allowLinkToDuplicateRecords": "Allows records to be selected more than once", + "allowSymmetricFieldLinkMultipleRecords": "Allows records to be selected more than once", + "oneToOne": "one-to-one", + "oneToMany": "one-to-many", + "manyToOne": "many-to-one", + "manyToMany": "many-to-many", + "self": "Self", + "selectTable": "Select table...", + "selectBase": "Select a base...", + "linkFromExternalBase": "Link from external base", + "inSelfLink": "in self-link", + "betweenTwoTables": "between two tables", + "linkTipMessage": "Tips: this configuration represents a

{{relationship}} relationship {{linkType}}", + "style": "Style", + "maximum": "Maximum", + "addOption": "Add option", + "allowMultiUsers": "Allow adding multiple users", + "notifyUsers": "Notify users once they're selected", + "searchTable": "Search table...", + "calculating": "Calculating...", + "doSaveChanges": "Do you want to save the changes you made?", + "linkFieldToLookup": "Linked record field to use for lookup", + "lookupToTable": "{{tableName}} field you want to look up", + "selectField": "Select a field...", + "linkTable": "Link table", + "linkBase": "Link base", + "tableNoPermission": "No permission table", + "baseNoPermission": "No permission base", + "noLinkTip": "No linked records to look up. Add a Link to another record field, then try to configure your lookup again.", + "fieldValidationRules": "Field value validation rules", + "enableValidateFieldUnique": "Enable unique value validation", + "enableValidateFieldNotNull": "Enable not null value validation", + "knowMore": "know more", + "linkFieldKnowMoreLink": "https://help.teable.io/product/fields/field-type/link", + "filterByView": "Filter records by view", + "filter": "Filter records", + "hideFields": "Hide fields", + "moreOptions": "More options" + }, + "subTitle": { + "link": "Link to records in the table you choose", + "singleLineText": "Enter text, or prefill each new cell with a default value.", + "longText": "Enter multiple lines of text.", + "attachment": "Add images, documents, or other files to be viewed or downloaded.", + "checkbox": "Check or uncheck to indicate status.", + "multipleSelect": "Select one or more predefined options in a list.", + "singleSelect": "Select one predefined option from a list, or prefill each new cell with a default option.", + "user": "Add an user to a record.", + "date": "Enter a date (e.g. 11/12/2023) or choose one from a calendar.", + "number": "Enter a number, or prefill each new cell with a default value.", + "duration": "Enter a duration of time in hours, minutes or seconds (e.g. 1:23).", + "rating": "Add a rating on a predefined scale.", + "formula": "Compute values based on fields.", + "rollup": "Summarize data from linked records.", + "count": "Count the number of linked records.", + "createdTime": "See the date and time each record was created.", + "lastModifiedTime": "See the date and time of the most recent edit to some or all fields in a record.", + "createdBy": "See which user created the record.", + "lastModifiedBy": "See which user made the most recent edit to some or all fields in a record.", + "autoNumber": "Automatically generate unique incremental numbers for each record.", + "button": "Trigger a customized action.", + "lookup": "See values from a field in a linked record." + }, + "fieldName": "Field Name", + "fieldNameOptional": "Field Name (Optional)", + "fieldType": "Field Type" + }, + "table": { + "newTableLabel": "Nowa tabela", + "rename": "Zmień nazwę", + "design": "Projekt", + "tableRecordHistory": "Table record history", + "deleteConfirm": "Are you sure you want to delete \"{{tableName}}\" ?", + "dbTableName": "Nazwa tabeli w rzeczywistej bazie danych", + "schemaName": "Nazwa schematu w rzeczywistej bazie danych", + "tableInfo": "Informacje o tabeli", + "tableInfoDetail": "Podstawowe informacje dotyczące tabeli", + "typeOfDatabase": "Rodzaj bazy danych", + "descriptionForTable": "Dodatkowe informacje o tej tabeli", + "nameForTable": "Wyświetlana nazwa tej tabeli", + "deleteTip1": "Link fields linked with this table in other tables will be deleted.", + "deleteTip2": "This table can be restored from the trash after deletion.", + "operator": { + "createBlank": "Utwórz pustą tabelę" + }, + "actionTips": { + "copyAndPasteEnvironment": "Copy and paste only works in HTTPS or localhost", + "copyAndPasteBrowser": "Copy and paste not supported in this browser", + "copying": "Copying...", + "copySuccessful": "Copy successful", + "copyFailed": "Copy failed", + "pasting": "Pasting...", + "pasteSuccessful": "Paste successful", + "pasteFailed": "Paste failed", + "clearing": "Clearing...", + "clearSuccessful": "Clear successful", + "deleting": "Deleting...", + "deleteSuccessful": "Delete successful", + "pasteFileFailed": "Files can only be pasted into an attachment field" + }, + "graph": { + "tableLabel": "Table label", + "effectCells": "May effect cells", + "estimatedTime": "Estimated time" + } + }, + "import": { + "title": { + "upload": "Upload", + "import": "Import", + "localFile": "Local Files", + "linkUrl": "Link(URL)", + "linkUrlInputTitle": "Add file from URL", + "importTitle": "Create a new table", + "incrementImportTitle": "Import Into — ", + "optionsTitle": "Import option", + "primitiveFields": "Primitive Fields", + "importFields": "Import Field", + "primaryField": "Primary Field", + "tipsTitle": "Tips", + "confirm": "Confirm and continue" + }, + "menu": { + "addFromOtherSource": "Dodaj z innych źródeł", + "excelFile": "Microsoft Excel", + "csvFile": "Plik Csv", + "cancel": "Cancel", + "leave": "Leave", + "downAsCsv": "Pobierz CSV", + "importData": "Importuj dane" + }, + "tips": { + "importWayTip": "Click or drag file to this area to upload", + "leaveTip": "Your data will still be imported.", + "fileExceedSizeTip": "This type file size exceeds the limit of", + "analyzing": "analyzing", + "importing": "Importing", + "notSupportFieldType": "Field type is not supported", + "resultEmpty": "No results found.", + "searchPlaceholder": "Search...", + "importAlert": "Once the import begins, it cannot be stopped until it is either successfully completed or terminated due to failure. The import status is displayed in the upper right corner of the table. The results of import process will be notified to you once completed. You should not update the field during the import as it may cause errors.", + "noTips": "I know that, don't show again" + }, + "options": { + "autoSelectFieldOptionName": "Auto-select field types", + "useFirstRowAsHeaderOptionName": "Use first row as header", + "importDataOptionName": "Import Data", + "sheetKey": "SheetName: ", + "excludeFirstRow": "Exclude first row in import" + }, + "form": { + "defaultFieldName": "Field", + "error": { + "urlEmptyTip": "URL should not be empty!", + "errorFileFormat": "File format is incorrect!", + "uniqueFieldName": "Field name should be unique!", + "fieldNameEmpty": "Field name should not be empty!", + "atLeastAImportField": "Please set a import field at least", + "urlValidateTip": "Couldn't parse URL. Try a different URL!" + }, + "option": { + "doNotImport": "Do not import" + } + } + }, + "export": { + "menu": { + "exportCsv": "Download Csv" + } + }, + "grid": { + "prefillingRowTitle": "Add new record", + "prefillingRowTooltip": "Please enter the new record data below. The record will be saved automatically once you click outside this row." + }, + "form": { + "fieldsManagement": "Fields", + "addAll": "Add All", + "removeAll": "Remove All", + "hideFieldTip": "Hide the field to here", + "unableAddFieldTip": "Unable to add this type field", + "removeFromFormTip": "Remove from the form", + "descriptionPlaceholder": "Enter from description", + "dragToFormTip": "Drag the field here to add it to the form" + }, + "kanban": { + "toolbar": { + "hideFieldName": "Hide field name", + "customizeCards": "Customize cards", + "stackedBy": "Stacked by <0/>", + "chooseStackingField": "Choose a stacking field", + "chooseStackingFieldDescription": "Which field would you like to use for this kanban view? Your records will be stacked based on this field.", + "hideEmptyStack": "Hide empty stack", + "imageSetting": "Image Setting", + "fit": "Fit", + "noImage": "No image", + "chooseAttachmentField": "Choose attachment field" + }, + "stack": { + "addStack": "Add Stack", + "noCards": "No cards", + "uncategorized": "Uncategorized" + }, + "stackMenu": { + "collapseStack": "Collapse stack", + "renameStack": "Rename stack", + "deleteStack": "Delete stack" + }, + "cardMenu": { + "insertCardAbove": "Insert card above", + "insertCardBelow": "Insert card below", + "expandCard": "Expand card", + "deleteCard": "Delete card" + } + }, + "menu": { + "insertRecordAbove": "Insert record above", + "insertRecordBelow": "Insert record below", + "copyCells": "Copy cells", + "deleteRecord": "Delete record", + "deleteAllSelectedRecords": "Delete all selected records", + "editField": "Edit field", + "insertFieldLeft": "Insert left", + "insertFieldRight": "Insert right", + "freezeUpField": "Freeze up to this field", + "hideField": "Hide field", + "deleteField": "Delete field", + "deleteAllSelectedFields": "Delete all selected fields" + }, + "connection": { + "title": "Połączenie z bazą danych", + "description": "Dostęp do bazy danych można uzyskać bezpośrednio przez połączenie z bazą, w tym do wszystkich tabel dostępnych tutaj", + "noPermission": "Nie masz uprawnień dostępu do bazy danych", + "connectionCountTip": "Maksymalna liczba połączeń z bazą danych wynosi {{max}} a bieżąca liczba połączeń wynosi {{current}}", + "helpLink": "https://help.teable.io/developer/database-connection" + }, + "view": { + "addRecord": "Add record", + "searchView": "Search view...", + "dragToolTip": "Automatic sorting is turned on, manual drag is not available", + "insertToolTip": "Automatic sorting is turned on, insert with order is not available", + "action": { + "rename": "Rename view", + "delete": "Delete view" + }, + "category": { + "table": "Grid View", + "form": "Form View", + "kanban": "Kanban View" + }, + "crash": { + "title": "Crash!", + "description": "This view is broken. If the refresh still fails, please contact us. support@teable.io" + }, + "addPluginView": "Add Plugin View" + }, + "lastModifiedTime": "Ostatnia data modyfikacji", + "lastModify": "Ostatnia modyfikacja: ", + "pasteNewRecords": { + "title": "Do you want to add multiple records?", + "description": "The {{count}} records will be added to the table." + } +} diff --git a/packages/common-i18n/src/locales/pl/token.json b/packages/common-i18n/src/locales/pl/token.json new file mode 100644 index 0000000000..341511c2c1 --- /dev/null +++ b/packages/common-i18n/src/locales/pl/token.json @@ -0,0 +1,56 @@ +{ + "access": "Access", + "name": "Name", + "description": "Description", + "scopes": "Scopes", + "expiration": "Expiration", + "createdTime": "Created", + "lastUse": "Last use", + "allSpace": "The space, all current and future bases in this space", + "formLabelTips": { + "name": "Provide a token name", + "description": "What is this token for?", + "scopes": "With this token, you will be able to:", + "access": "This token can access the following bases and spaces. You can only grant access to bases and spaces you have access to." + }, + "new": { + "headerTitle": "Create new token", + "title": "Personal access tokens are required to use the Teable API.", + "description": "This token will grant access to the data in the selected spaces and bases. This token will also allow usage of other, non-space/base API endpoints. Only use this token for your own development. Don’t share it with third-party services and applications.", + "button": "Create new token", + "success": { + "title": "Token successfully generated", + "description": "Make sure to copy your token. It will never be displayed again." + }, + "expirationList": { + "days": "days", + "custom": "Custom", + "pick": "Pick a date" + } + }, + "edit": { + "title": "Edit token", + "name": "Name", + "scopes": "Scopes" + }, + "refresh": { + "title": "Regenerate personal access token", + "description": "Submitting this form will generate a new token. Be aware that any scripts or applications using this token will need to be updated", + "button": "Regenerate token" + }, + "accessSelect": { + "button": "Add base or space", + "empty": "No access found.", + "spaceSelectItem": "All base in space", + "inputPlaceholder": "Find space or base..." + }, + "moreScopes": "and {{len}} more", + "empty": { + "list": "No personal access tokens found.", + "access": "No access" + }, + "deleteConfirm": { + "title": "Are you sure you want to delete this token?", + "description": "Any applications or scripts using this token will no longer be able to access the Teable API. You cannot undo this action." + } +} diff --git a/packages/common-i18n/src/locales/pl/zod.json b/packages/common-i18n/src/locales/pl/zod.json new file mode 100644 index 0000000000..65dee9fc7e --- /dev/null +++ b/packages/common-i18n/src/locales/pl/zod.json @@ -0,0 +1,113 @@ +{ + "errors": { + "invalid_type": "Expected {{expected}}, received {{received}}", + "invalid_type_received_undefined": "Required", + "invalid_type_received_null": "Required", + "invalid_literal": "Invalid literal value, expected {{expected}}", + "unrecognized_keys": "Unrecognized key(s) in object: {{- keys}}", + "invalid_union": "Invalid input", + "invalid_union_discriminator": "Invalid discriminator value. Expected {{- options}}", + "invalid_enum_value": "Invalid enum value. Expected {{- options}}, received '{{received}}'", + "invalid_arguments": "Invalid function arguments", + "invalid_return_type": "Invalid function return type", + "invalid_date": "Invalid date", + "custom": "Invalid input", + "invalid_intersection_types": "Intersection results could not be merged", + "not_multiple_of": "Number must be a multiple of {{multipleOf}}", + "not_finite": "Number must be finite", + "invalid_string": { + "email": "Invalid {{validation}}", + "url": "Invalid {{validation}}", + "uuid": "Invalid {{validation}}", + "cuid": "Invalid {{validation}}", + "regex": "Invalid", + "datetime": "Invalid {{validation}}", + "startsWith": "Invalid input: must start with \"{{startsWith}}\"", + "endsWith": "Invalid input: must end with \"{{endsWith}}\"" + }, + "too_small": { + "array": { + "exact": "Array must contain exactly {{minimum}} element(s)", + "inclusive": "Array must contain at least {{minimum}} element(s)", + "not_inclusive": "Array must contain more than {{minimum}} element(s)" + }, + "string": { + "exact": "String must contain exactly {{minimum}} character(s)", + "inclusive": "String must contain at least {{minimum}} character(s)", + "not_inclusive": "String must contain over {{minimum}} character(s)" + }, + "number": { + "exact": "Number must be exactly {{minimum}}", + "inclusive": "Number must be greater than or equal to {{minimum}}", + "not_inclusive": "Number must be greater than {{minimum}}" + }, + "set": { + "exact": "Invalid input", + "inclusive": "Invalid input", + "not_inclusive": "Invalid input" + }, + "date": { + "exact": "Date must be exactly {{- minimum, datetime}}", + "inclusive": "Date must be greater than or equal to {{- minimum, datetime}}", + "not_inclusive": "Date must be greater than {{- minimum, datetime}}" + } + }, + "too_big": { + "array": { + "exact": "Array must contain exactly {{maximum}} element(s)", + "inclusive": "Array must contain at most {{maximum}} element(s)", + "not_inclusive": "Array must contain less than {{maximum}} element(s)" + }, + "string": { + "exact": "String must contain exactly {{maximum}} character(s)", + "inclusive": "String must contain at most {{maximum}} character(s)", + "not_inclusive": "String must contain under {{maximum}} character(s)" + }, + "number": { + "exact": "Number must be exactly {{maximum}}", + "inclusive": "Number must be less than or equal to {{maximum}}", + "not_inclusive": "Number must be less than {{maximum}}" + }, + "set": { + "exact": "Invalid input", + "inclusive": "Invalid input", + "not_inclusive": "Invalid input" + }, + "date": { + "exact": "Date must be exactly {{- maximum, datetime}}", + "inclusive": "Date must be smaller than or equal to {{- maximum, datetime}}", + "not_inclusive": "Date must be smaller than {{- maximum, datetime}}" + } + } + }, + "validations": { + "email": "email", + "url": "url", + "uuid": "uuid", + "cuid": "cuid", + "regex": "regex", + "datetime": "datetime" + }, + "types": { + "function": "function", + "number": "number", + "string": "string", + "nan": "nan", + "integer": "integer", + "float": "float", + "boolean": "boolean", + "date": "date", + "bigint": "bigint", + "undefined": "undefined", + "symbol": "symbol", + "null": "null", + "array": "array", + "object": "object", + "unknown": "unknown", + "promise": "promise", + "void": "void", + "never": "never", + "map": "map", + "set": "set" + } +} From 9786145c2e5fb8c0bfa7de4aa0b4b344cf4996ed Mon Sep 17 00:00:00 2001 From: kpodp0ra Date: Thu, 24 Oct 2024 13:17:44 +0200 Subject: [PATCH 2/4] translation: add missing i18n --- packages/common-i18n/src/locales/en/sdk.json | 2 ++ .../sdk/src/components/expand-record/ExpandRecordHeader.tsx | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/common-i18n/src/locales/en/sdk.json b/packages/common-i18n/src/locales/en/sdk.json index d3feebf31d..7f02e312c9 100644 --- a/packages/common-i18n/src/locales/en/sdk.json +++ b/packages/common-i18n/src/locales/en/sdk.json @@ -177,6 +177,8 @@ "copy": "Copy to clipboard", "copyRecordUrl": "Copy record URL", "deleteRecord": "Delete record", + "previousRecord": "Previous record", + "nextRecord": "Next record", "recordHistory": { "hiddenRecordHistory": "Hide record history", "showRecordHistory": "Show record history", diff --git a/packages/sdk/src/components/expand-record/ExpandRecordHeader.tsx b/packages/sdk/src/components/expand-record/ExpandRecordHeader.tsx index addcb402e8..26427bc6c6 100644 --- a/packages/sdk/src/components/expand-record/ExpandRecordHeader.tsx +++ b/packages/sdk/src/components/expand-record/ExpandRecordHeader.tsx @@ -82,7 +82,7 @@ export const ExpandRecordHeader = (props: IExpandRecordHeader) => { )} >
- + - +