# ============================================================================ # English (en) — SOURCE locale. # # Every key that exists here MUST also exist in locales/sk/main.ftl and # locales/cs/main.ftl. Do NOT translate this file. # # Key naming: - (kebab-case, grouped by comment # blocks). Templates call `nav.tr("key")`; Rust calls `tr!(locale, "key")`. # ============================================================================ # --- Common / shared words ------------------------------------------------ common-cancel = Cancel common-no = No common-remove = Remove common-yes = Yes # --- Page chrome (ui/, navbar) -------------------------------------------- ui-back-to-admin = Back to the admin panel ui-back-to-admin-panel = ← Admin panel ui-back-to-form = Back to the form ui-close-dialog = Close dialog ui-err-invalid-redirect = The page could not be reloaded. Go back and try again. ui-dismiss-alert = dismiss alert notice-log-in-first = Please log in first. services-cross-site-rejected = Cross-site form submission rejected nav-admin = Admin nav-permissions = Permissions nav-analytics = Analytics nav-rates = Rates nav-import = Import nav-export = Export nav-password = Password nav-log-out = Log out nav-login = Login nav-register = Register nav-main-menu = main menu nav-mobile-menu = mobile menu # --- Field labels used inside composed messages ---------------------------- label-profile = profile label-table = table label-column = column label-set-name = set name label-rule-name = rule name label-validation-set-name = validation set name label-minimum = Minimum label-maximum = Maximum label-warning-threshold = Warning threshold label-precision = Precision label-scale = Scale label-column-name = Column name label-table-name = Table name label-linked-table = Linked table label-column-alias = Column alias label-profile-name = Profile name # --- Column badges --------------------------------------------------------- column-flag-system = system column-flag-primary-key = primary key column-flag-nullable = nullable column-flag-required = required column-flag-quantity-ledger = quantity ledger column-flag-half-up = half-up column-flag-read-only = read only column-flag-generated = generated column-flag-generated-from = generated from { $source } # --- Login / register / change password ------------------------------------ login-title = Sign in login-username-or-email = Username or email login-password = Password login-optional = (optional) login-button-login = Login login-no-account = No account yet? login-error-title = Could not sign in login-error-identifier-required = Username or email is required login-error-invalid-token = The server returned an invalid access token register-title = Register register-button-register = Register register-confirm-password = Confirm password register-have-account = Already have an account? register-error-title = Could not register register-success-title = Registration successful. You can sign in now. register-success-message = User ID: { $id } Username: { $username } Email: { $email } Role: { $role } Timezone: { $timezone } Phone country: { $phone_country } field-username = Username field-email = Email field-timezone = Timezone field-phone-country = Phone country field-current-password = Current password field-new-password = New password field-confirm-new-password = Confirm new password password-title = Change password password-button-change = Change password password-empty-current-hint = For a freshly seeded admin or superadmin account, leave the current password empty. password-error-title = Could not change password password-success-title = Password changed password-changed-message = Your new password is active. # --- Admin panel (workspace browser) --------------------------------------- admin-title = Admin panel admin-eyebrow-workspace = Workspace admin-description = Browse profiles, tables, and their physical columns. Pick a table to reach what can be done to it. admin-add-table = Add table admin-add-logic = Add logic admin-add-validation = Add validation admin-add-rule = Add rule admin-import = Import admin-export = Export admin-exchange-rates = Exchange rates admin-unavailable-title = Admin panel unavailable admin-forbidden = This account is not allowed to open the admin panel. admin-profiles = Profiles admin-global-label = Global admin-err-unknown-profile = Unknown profile '{ $name }' admin-err-table-not-in-profile = Table '{ $name }' is not part of the selected profile admin-err-backend-no-structure = The backend did not return the structure for '{ $name }' admin-no-profiles-available = No profiles available. admin-table-count = { $count -> [one] { $count } table *[other] { $count } tables } admin-shared-by-every-profile = shared by every profile admin-tables-heading = Tables admin-select-profile-first = Select a profile to see its tables. admin-no-global-tables = There are no global tables. admin-no-profile-tables = This profile has no tables of its own. admin-no-dependencies = No dependencies admin-depends-on-prefix = Depends on admin-row-display-prefix = display: admin-add-columns = Add columns admin-column-presentation = Column aliases admin-delete-table = Delete table admin-who-may-use-it = Who may use it admin-pick-table-hint = Pick a table to add columns to it, delete it, or say who may use it. admin-new-global-table = New global table admin-new-table = New table admin-from-template = From template admin-copy-profile = Copy profile admin-rename-history = Rename history admin-columns = Columns admin-column-counts = { $user -> [one] { $user } user *[other] { $user } users } · { $system -> [one] { $system } system *[other] { $system } system } admin-select-table-inspect = Select a table to inspect its columns. admin-no-visible-columns = This table has no visible columns. admin-system-columns-label = System columns · hidden from users # --- Table definition pages (add columns / presentation / delete / copy / template / history) - td-add-columns-title = Add columns td-presentation-title = Column presentation td-add-columns-to = Add columns to td-append-hint = Columns are appended. Nothing that already exists is changed, and the new columns can be indexed as they are added. td-rename-column = Column aliases td-rename-hint = Renames what the column is called, not the physical column underneath, so stored data and scripts are untouched. td-column-label = Column td-choose-column = Choose a column td-new-name = New name td-rename-button = Rename td-alias-locked = cannot be renamed td-order-heading = Column order td-order-hint = Moves a column past its neighbour. The order form carries no names, so it cannot rename anything. td-columns-now = Columns it has now td-col-column = Column td-col-type = Type td-col-notes = Notes td-scripts = Scripts td-col-target-column = Target column td-col-description = Description td-source = source td-could-not-add-column = Could not add the column td-staged = Staged td-link-alias = Link alias td-column-name = Column name td-link-alias-hint = The alias is the column name used to distinguish this relationship. td-column-type = Column type td-choose-type = Choose a type td-fk-link = FKlink td-temporal-type = Temporal type td-choose-temporal-type = Choose a temporal type td-gtin-type = GTIN type td-choose-gtin-length = Choose a GTIN length td-precision = Precision td-precision-hint = Total digits stored, at least 1. td-scale = Scale td-scale-hint = Digits after the point, no more than the precision. td-referenced-table = Referenced table td-choose-table = Choose a table td-group-global = Global td-group-user = User-created td-group-system = System-created td-no-eligible-tables = No eligible tables exist in this scope. td-currency = Currency td-rounding = Rounding td-rounding-none = none td-rounding-half-up = half-up td-indexing = Indexing td-indexed-automatically = Indexed automatically — a link is a foreign key, and the server indexes every one of them. td-required = Required td-required-hint = A row must carry a value for it. td-quantity-ledger = Quantity ledger td-ql-only = { $types } only. td-shared-no-quantity-ledger = A shared table keeps no books of its own, so it cannot hold a quantity-ledger column. td-stage-column = Stage column td-no-staged-columns = No columns staged yet. Describe one above and press td-col-name = Name td-col-indexed = Indexed td-col-options = Options td-indexed-automatically-tag = indexed automatically td-money-exact = exact td-money-half-up = half-up td-add-columns-button = { $count -> [one] Add { $count } column to the table *[other] Add { $count } columns to the table } td-eyebrow-table-definition = Table definition td-columns-count = { $count -> [one] { $count } column *[other] { $count } columns } td-identified-by = identified by td-its-id = its id td-depends-on-prefix = depends on td-acts-on-profile = Everything on this page acts on this profile. td-global-label = Global — all profiles td-tab-aria = table actions td-tab-add-columns = Add columns td-tab-add-columns-sub = Append new columns td-tab-presentation = Presentation td-tab-presentation-sub = Change aliases and order td-tab-delete = Delete td-tab-delete-sub = Drop this table td-tab-access = Access td-tab-access-sub = Which roles may read and write it td-tab-copy = Copy profile td-tab-copy-sub = Duplicate its structure td-tab-template = From template td-tab-template-sub = Create tables from a Typst invoice td-tab-history = Rename history td-tab-history-sub = How columns got their names td-backend-managed-title = Backend-managed td-backend-managed-hint = This table is the backend's own. Its definition is visible in the admin panel, but it can only be changed through the backend's own APIs, so none of the write actions apply to it. td-could-not-continue = Could not continue td-done = Done td-sql-ran = SQL the backend ran td-delete-title = Delete table td-delete-table = Delete table td-delete-hint = Drops the table and its definition, and the profile too when this was its last table. The backend refuses to delete a table that still has rows. td-links-to = It links to { $tables }. td-type-to-confirm = Type { $table } to confirm td-no-table-chosen = No table chosen td-pick-table-delete = Pick the table to delete in the admin panel first. td-copy-title = Copy profile td-copy-into = Copy td-copy-hint = Copies structure — tables, links and scripts — and no rows. Leave every table unticked to copy the whole profile. td-new-profile-name = New profile name td-copy-button = Copy profile td-template-title = Create from template td-template-created-tables = Tables created from the template td-col-table = Table td-col-collection = Collection td-col-parent = Parent td-root = root td-template-create-heading = Create tables from an invoice template td-template-hint = Reads the #let komp_ac_fields = (…) contract out of a Typst template. A path that matches an existing table and column becomes a reference to it; anything else becomes a TEXT column to refine later, and every [] becomes a child table. td-table-name = Table name td-row-display-columns = Row display columns td-row-display-hint = Comma-separated, and only for the root table. td-template-source = Template source td-template-create-button = Create from template td-history-title = Rename history td-history-heading = Column rename history td-history-empty = No column in { $scope } has been renamed. td-history-empty-this-profile = No column in this profile has been renamed. td-col-was = Was td-col-is = Is td-col-when = When td-columns-added = { $count -> [one] { $count } column added to `{ $table }`. *[other] { $count } columns added to `{ $table }`. } td-profile-copied = { $message } — { $tables -> [one] { $tables } table *[other] { $tables } tables } and { $scripts -> [one] { $scripts } script *[other] { $scripts } scripts } copied. td-template-tables-created = { $count -> [one] { $count } table created from the template. *[other] { $count } tables created from the template. } td-err-select-table-first = Select a table first. td-err-profile-gone = Profile `{ $missing }` no longer exists. td-err-not-a-table = `{ $missing }` is not a table of { $scope }. td-err-describe-column = Describe at least one column before adding. td-err-backend-no-columns = The backend did not add the columns. td-err-choose-rename = Type a new name for the column. td-err-unknown-column = That column is not part of this table any more. The panel below is the table as it now is. td-err-backend-no-rename = The backend did not rename the column. td-err-type-name = Type the table's name exactly to confirm the deletion. td-err-backend-no-delete = The backend did not delete the table. td-err-name-profile = Name the profile to copy into. td-err-backend-no-copy = The backend did not copy the profile. td-err-template-required = A table name and the template's source are both required. td-err-backend-no-template = The backend did not create the template's tables. td-err-permission = Table-management permission is required. td-unavailable-title = Table definition unavailable # --- ECB reference rates --------------------------------------------------- ecb-title = Exchange rates ecb-heading = ECB reference rates ecb-description = The importer fetches the ECB's published rates once a day and records every attempt. Conversions read only what it has verified, so coverage is what decides whether a foreign-currency amount can be posted at all. ecb-unavailable-title = Exchange rates unavailable ecb-forbidden = Reading exchange-rate data is required to open this page. ecb-import-attempts = Import attempts ecb-failed-count = { $count -> [one] { $count } failed *[other] { $count } failed } ecb-no-attempts-hint = The importer has not recorded an attempt. It runs on startup and then daily, so an empty log means the server has not completed a run since this table was created. ecb-th-result = Result ecb-th-started = Started ecb-th-finished = Finished ecb-th-took = Took ecb-th-window = Window ecb-th-observations = Observations ecb-th-verified-through = Verified through ecb-batch-succeeded = succeeded ecb-batch-running = running ecb-batch-failed = failed ecb-still-running = still running ecb-audit-hint = Attempts are an audit record: they cannot be edited or deleted, and a batch that re-fetched a day an earlier one already owned inserts nothing, which is why the new count can be lower than the total. ecb-import-running = import running ecb-postable-lead = What can be posted right now ecb-ordinary-transactions = Ordinary transactions ecb-statements-title = Statements & decisive dates ecb-dated-up-to = dated up to and including ecb-ordinary-rate-hint = Converted at the rate published the business day before the transaction. ecb-statements-rate-hint = Converted at the rate published on that day, or the last business day before it. ecb-postable-limit-hint = A foreign-currency amount dated after its limit is refused outright until the importer catches up — it is not converted at a stale rate. ecb-nothing = Nothing. ecb-no-publication-hint = No publication has ever been verified, so every foreign-currency amount is refused whatever its date. ecb-verified-through = Verified through ecb-never = never ecb-up-to-date = up to date ecb-behind-count = { $count -> [one] { $count } publication day behind *[other] { $count } publication days behind } ecb-no-coverage = no coverage ecb-should-reach = Should reach ecb-last-attempt = Last attempt ecb-none-recorded = none recorded ecb-last-success = Last success ecb-none = none ecb-next-import = Next import ecb-currencies-on = Currencies on { $date } ecb-the-covered-day = the covered day ecb-most-recent-failure = Most recent failure — batch { $batch }, started { $started }: ecb-no-reason-recorded = no reason was recorded. ecb-headline-current = Rates are current ecb-headline-never-ran = No rates have ever been imported ecb-headline-behind = Rates are behind ecb-explanation-current = Every publication day up to the latest one is verified, so conversions post normally. ecb-explanation-never-ran = Until one succeeds, every conversion in a foreign currency is refused for want of coverage. ecb-explanation-behind = { $count -> [one] { $count } publication day is missing. *[other] { $count } publication days are missing. } A conversion dated inside the gap is refused until the importer catches up. ecb-new-of = { $inserted } new of { $total } ecb-in = in { $time } ecb-ago = { $time } ago ecb-less-than-1s = <1s # --- Permissions (roles / users / grants) ---------------------------------- perm-eyebrow = Permissions perm-tabs-aria = permission sections perm-tab-roles = Roles perm-tab-roles-sub = Create roles and their inheritance perm-tab-people = People perm-tab-people-sub = Give a user a role perm-tab-access = Access perm-tab-access-sub = What a role may do perm-unavailable-title = Permissions unavailable perm-update-error = Could not update permissions perm-forbidden = This account manages neither roles nor users. perm-err-missing-session = Missing session perm-err-nothing-to-change = Nothing to change: the form carried no permissions. perm-err-bad-pair = '{ $value }' is not an object|action pair. perm-err-not-editable-role = '{ $role }' is not a role you may edit. perm-err-neither-grant-nor-revoke = '{ $value }' is neither grant nor revoke. perm-err-grant-failed = Granting { $action } on { $object } failed: { $error } perm-err-revoke-failed = Revoking { $action } on { $object } failed: { $error } perm-err-bad-starter-access = '{ $value }' is not a starter access level. perm-role-created-grant-failed = Role '{ $role }' was created, but granting { $action } on { $object } failed: { $error } perm-role-reason-outranks-you = outranks you perm-role-reason-built-in = built in perm-role-reason-still-assigned = still assigned roles-description = A role is a named set of permissions. People are given roles; roles are given access. roles-updated-notice = Roles updated. Signed-in sessions stay valid and pick up the change on their next request. roles-new-heading = New role roles-new-hint = Inheriting from another role starts the new one with everything that role has, and keeps it in step as that role changes. Starter access is a shortcut for the two common cases; anything narrower is a few clicks on the Access tab. roles-name = Name roles-inherits-from = Inherits from roles-inherits-none = Nothing — starts empty roles-starter-access = Starter access roles-access-none = None — grant it on the Access tab roles-access-read = Read everything roles-access-full = Read and write everything roles-create-button = Create role roles-existing = Existing roles roles-th-role = Role roles-th-kind = Kind roles-th-inherits = Inherits from roles-th-people = People roles-th-access = Access roles-th-remove = Remove roles-built-in = built in roles-edit-access = Edit access users-description = Give a user a role. What that role may do is decided once, on the Access tab. users-updated-notice = Updated. The person's next request uses the new role; they do not have to sign in again. users-heading = Users users-outrank-hint = You can only change someone whose role you outrank — { $editable } of { $total } here. users-th-user = User users-th-email = Email users-th-role = Role users-th-change = Change role users-th-reset = Reset password users-assign = Assign users-confirm = Confirm users-reset = Reset grants-description = What a role may do with the data. Everyone holding the role gets exactly this. grants-updated-notice = Access updated. It applies to the next request every holder of the role makes. grants-no-role = No role to edit grants-no-role-hint = There is no role here you outrank. Create one first. grants-role-heading = Role grants-editing = Editing grants-inherits-prefix = → inherits grants-inherits-parent = { $role } inherits everything { $parent } has. Inherited access shows below but is changed on the parent. grants-inherits-none = { $role } inherits from nothing, so what you see below is all it has. grants-structural-hint = This role designs the system and may never write row data, so only the read column is open. grants-shortcuts = Shortcuts grants-shortcuts-hint = These grant the wildcard objects, so they keep covering profiles and tables created later. grants-full-access-everything = Full access to everything grants-remove-all-access = Remove all access grants-everything-everywhere = Everything, everywhere grants-profile-prefix = Profile: grants-read-only = Read only grants-full-access = Full access grants-clear = Clear grants-th-object = Object grants-th-row = Row grants-cell-unavailable = Not available for this role grants-cell-direct = Held directly — click to revoke grants-cell-inherited = inherited: covered by the parent role or a wider grant grants-cell-grant = Click to grant grants-all = All grants-none = None grants-read-everything-hint = Read on every profile, journal and exchange rate grants-full-everything-hint = Every action the role may hold, on every profile grants-remove-all-hint = Revoke every grant this role holds directly grants-read-only-hint = Read on everything in here grants-full-access-hint = Every action the role may hold, on everything in here grants-clear-hint = Revoke everything this role holds directly in here grants-all-hint = Grant every action available on this object grants-none-hint = Revoke this object's direct grants grants-everything-title = Everything grants-label-all-tables = All tables grants-note-all-tables = Every table in every profile, including ones added later. grants-label-all-journals = All journals grants-note-all-journals = Every profile's accounting journal. grants-label-all-rates = All exchange rates grants-note-all-rates = ECB rates are imported by the server, so they can only be read. grants-note-profile-tables = Every table in this profile, including ones added later. grants-label-journal = Journal grants-note-journal = This profile's accounting journal. grants-label-rates = Exchange rates grants-note-rates = Imported by the server, so read is the only grant. grants-note-table = This table and its whole template family. # --- Analytics ------------------------------------------------------------- analytics-title = Analytics analytics-eyebrow = Reporting analytics-description = Query the read-only analytics API and chart the result. analytics-available-data = Available data analytics-load-hint = Load a profile to see the table and column aliases accepted by analytics SQL. analytics-profile = Profile analytics-loading-profiles = Loading profiles… analytics-load-schema = Load schema analytics-no-schema = No schema loaded. analytics-chart = Chart analytics-chart-bar = Bar analytics-chart-line = Line analytics-chart-pie = Pie analytics-chart-scatter = Scatter analytics-chart-table = Table analytics-max-rows = Max rows analytics-sql = SQL analytics-sql-placeholder = Load the schema, then choose a starter query or write a SELECT query analytics-run-query = Run query analytics-running = Running… analytics-no-tables = This profile has no analytics tables. analytics-tables-available = { $count -> [one] { $count } table available *[other] { $count } tables available } analytics-use-starter = Use starter query analytics-links = Links analytics-required = required analytics-llm-context = LLM schema context analytics-llm-hint = Copy this entire text and include it when asking an LLM to write a query. analytics-copy-context = Copy context analytics-copied = Copied analytics-load-error = Could not load profiles: { $message } analytics-no-profiles = No profiles available analytics-choose-profile = Choose a profile… analytics-sign-in = Sign in to list the profiles you may read. analytics-err-profile-required = Enter a profile name to load its schema analytics-err-input-required = Profile name and SQL are required analytics-err-chart-columns = Charts require at least two result columns analytics-err-chart-type = Unknown chart type analytics-not-signed-in = You are not signed in for { $action }. analytics-action-loading-schema = loading the schema analytics-action-running-query = running a query analytics-result-meta = { $rows -> [one] { $rows } row *[other] { $rows } rows } in { $elapsed } ms analytics-result-meta-truncated = { $rows -> [one] { $rows } row *[other] { $rows } rows } in { $elapsed } ms (truncated) # --- Import / export ------------------------------------------------------- transfer-eyebrow = Data transfer import-title = Import CSV import-lead = Choose a browser-local file or paste CSV. Rows are validated against live table structures before gRPC bulk insertion. import-scope = Scope import-choose-scope = Choose global or a profile import-target-tables = Target table import-choose-table = Choose a table import-csv-file = CSV file import-csv-data = CSV data import-error-title = Could not import CSV import-import-rows = Import rows import-success-title = Import complete import-success-message = Inserted { $inserted -> [one] { $inserted } record *[other] { $inserted } records } from { $source_rows -> [one] { $source_rows } CSV row *[other] { $source_rows } CSV rows } across { $table_count -> [one] { $table_count } table *[other] { $table_count } tables }. import-err-select-profile = Select a scope. import-err-tables-required = Select a target table. import-err-csv-required = Choose a CSV file or paste CSV data. import-err-unknown-profile = Unknown scope. import-err-tables-not-in-profile = The target table does not belong to the selected scope. import-err-missing-structure = The backend omitted a requested table structure. import-err-no-importable-columns = CSV has no importable columns for table '{ $table }'. import-err-column-not-importable = Column '{ $column }' is not importable for table '{ $table }'. import-err-csv-row = CSV row { $row }: { $error } import-err-multi-headers = Multi-table CSV needs a table-header row and a column-header row. import-err-first-row = The first CSV row must contain only selected table names. import-err-header-lengths = Table and column header rows have different lengths. import-err-row-width = A CSV data row has a different number of fields than the header. import-err-no-data-rows = CSV contains headers but no data rows. import-err-header-padded = Header '{ $header }' has spaces around it, so it is not the column '{ $trimmed }'. Remove them, or use “Normalize headers”. import-err-duplicate-header = Header '{ $header }' appears twice for the same table, so it is not clear which column the values belong to. import-err-column-near-match = Header '{ $header }' is not a column of table '{ $table }', but '{ $column }' is - they differ only in spacing or capitalisation. Fix the header, or use “Normalize headers” to rewrite it and see the result before importing. import-normalize = Normalize headers import-normalize-hint = Rewrites the header rows to the table's own column names. Nothing is imported - you see the changed CSV first. import-normalized-message = Headers rewritten. Read the CSV below before importing it. import-normalized-unchanged = Headers already match the table exactly; nothing was changed. import-system-columns = File includes system columns import-system-columns-hint = Tick this for a file exported with system columns. It loads as it stands: 'deleted' is written from the file, so a row that left deleted arrives deleted. 'id', 'row_revision' and 'created_at' are assigned by the server and cannot be carried over. import-err-system-columns-present = The file contains system columns ({ $columns }). Tick “File includes system columns” to import it as it stands, or remove those columns from the file. import-success-ignored-system = { $columns } are assigned by the server, so the imported rows carry new ones. import-err-missing-type = Missing type for column '{ $column }' import-err-permission = Import permission is required. A table also needs insert permission before it can be loaded. import-err-unterminated-quote = CSV contains an unterminated quoted value. import-err-empty = CSV is empty. import-err-bad-boolean = Invalid boolean value '{ $value }' import-err-bad-integer = Invalid integer value '{ $value }' export-title = Export CSV export-lead = The download is generated from live table data through gRPC. export-scope = Scope export-choose-scope = Choose global or a profile export-tables = Table export-choose-table = Choose a table export-include-system = Include system columns export-include-system-hint = Adds id, deleted and row_revision to the file. An import ignores them. export-error-title = Could not export CSV export-download = Download CSV export-err-select-profile = Select a scope. export-err-tables-required = Select a table. export-err-unknown-profile = Unknown scope. export-err-tables-not-in-profile = The table does not belong to the selected scope. export-err-missing-structure = The backend omitted a requested table structure. export-err-negative-count = The backend returned a negative row count. export-err-range = The export exceeds the supported row-position range. export-err-permission = Export permission is required. A table also needs read permission before it can be downloaded. # --- Add logic ------------------------------------------------------------- add-logic-title = Add logic add-logic-eyebrow = Computed column add-logic-lead = Create or update a Steel script through the existing table-script service. add-logic-table = Table add-logic-choose-table = Choose a table add-logic-name = Logic name add-logic-target-column = Target column add-logic-script = Steel expression add-logic-description = Description add-logic-error-title = Could not save the logic add-logic-save = Save logic add-logic-success-title = Logic saved add-logic-saved = Script #{ $id } was saved. add-logic-saved-warnings = Script #{ $id } was saved. Warnings: { $warnings } add-logic-err-select-table = Select a target table. add-logic-err-target-column = Enter the target column. add-logic-err-script = Enter a Steel expression. add-logic-err-script-paren = The Steel expression must start with `(`. add-logic-err-permission = Script-management permission is required. # --- Add table builder ----------------------------------------------------- add-table-title = Add table add-table-eyebrow = Table definition add-table-lead = Choose whether the table belongs to one profile or is available to all profiles, then add its columns. After creation, you can assign the initial role permissions. builder-err-title = Could not create the table builder-err-permission = Table-management permission is required. builder-err-backend-no-create = The backend did not create the table. builder-could-not-continue = Could not continue builder-draft-updated = Draft updated builder-table-details = Table details builder-scope-question = Where should this table be available? builder-scope-profile = One profile builder-scope-profile-hint = Only the selected profile can use this table. builder-scope-global = All profiles builder-scope-global-hint = Every profile can use this shared table. builder-which-profile = Which profile? builder-choose-profile = Choose a profile builder-new-profile = New profile… builder-new-profile-name = New profile name builder-accounting-currency = Accounting currency builder-accounting-currency-hint = Books are kept in EUR for now — other currencies are listed but the server still refuses them. builder-table-name = Table name builder-add-column-heading = Add a column builder-add-column-button = Add column builder-shared-table-hint = A shared table keeps no books of its own, so ACCOUNTING, ACCOUNTING_TRANSFER and quantity-ledger columns are not offered here — each of them posts to one profile's ledger. builder-compound-intro = is a definition row, not a column of its own. Adding it gives the table: builder-inherits-currency-hint = kept in the currency and rounding chosen above builder-account-system-hint = system column — the account each row is posted to, written as account builder-rename-generated-hint = Each of these can be given a name of your own under Rename generated columns once the row is added; leave a field empty to keep the name shown here. builder-reserved-hint = These names are reserved: no column of your own may use them, and the table may hold only one { $type }. They land where this row sits in the column list, and can be moved with it. builder-columns-heading = Columns builder-no-columns = No columns yet. Describe one above and press builder-columns-order-hint = Columns are created in this order. Use the arrows to move one. builder-th-order = Order builder-th-name = Name builder-th-type = Type builder-th-indexed = Indexed builder-th-options = Options builder-move-up = Move { $name } up builder-move-down = Move { $name } down builder-renamed-to = renamed to { $alias } builder-rename-generated = Rename generated columns builder-rename-generated-hint2 = These columns come from the definition rows above. Give one a name of your own, or leave it empty to keep the name shown. builder-rename-aria = Rename { $name } builder-apply-names = Apply names builder-row-display = Row display columns builder-row-display-hint = What identifies a row to users, in the order chosen. Pick id to clear the list. builder-preview = Table definition preview builder-preview-th-column = Column builder-preview-th-type = Type builder-preview-th-options = Options builder-preview-th-source = Source builder-preview-primary-key = primary key builder-preview-default-false = default false builder-preview-not-null-1 = not null, default 1 builder-preview-current-time = current time builder-preview-account-option = not null, → accounts, written as { $field } builder-option-indexed = indexed builder-create-table = Create table builder-status-generated-keep = The generated columns keep their own names. builder-status-generated-one = 1 generated column renamed. builder-status-generated-many = { $count } generated columns renamed. draft-err-profile-name = Enter a name for the new profile. draft-err-table-conflict-global = A table named `{ $name }` already exists. A shared table's name has to be free in every profile. draft-err-table-conflict = A table named `{ $name }` already exists in profile `{ $profile }`, or is shared by every profile. draft-err-no-columns = Add at least one column before saving. draft-err-ragged-columns = The posted column data is incomplete: { $posted } columns were sent, but only { $kept } carry every field. Each column needs a name, type, indexing, quantity-ledger, required, rounding and currency value. draft-err-alias-taken = Alias `{ $alias }` for generated column `{ $source }` is already taken by another column. draft-err-accounting-currency = Accounting currency must be a three-letter ISO-4217 code schema-status-column-added = Column `{ $name }` added. schema-status-column-removed = Column `{ $name }` removed. schema-status-column-moved-up = Column `{ $name }` moved up. schema-status-column-moved-down = Column `{ $name }` moved down. schema-err-both-name-type = Both a column name and a column type are required. schema-err-creation-only = A { $type } column can only be chosen while the table is being created. schema-err-column-exists = A column named `{ $name }` already exists. schema-err-generated-exists = `{ $type }` generates a column named `{ $generated }`, and the table already has one. schema-err-ql-types = Quantity-ledger columns must use { $types } schema-err-column-ql-types = Column `{ $name }`: quantity-ledger columns must use { $types } schema-err-column-prefix = Column `{ $name }`: { $error } schema-err-decimal-not-valid = `decimal` is not a valid field type. schema-err-link-not-valid = `link` is not a valid field type. schema-err-decimal-args-needed = `{ $type }` needs both a precision and a scale. schema-err-link-target-needed = `link` needs a referenced table. schema-err-generated-type = `{ $type }` is a column type the backend generates itself. schema-err-invalid-type = `{ $type }` is not a valid field type. schema-err-account-link = The account relationship is built into ACCOUNTING and cannot be declared as a link. schema-err-link-self = Link `{ $column }` cannot point at the table being created. schema-err-column-gone = That column no longer exists. schema-err-link-indexed = Link `{ $name }` is indexed automatically and cannot be indexed again. schema-err-definition-indexed = `{ $name }` is a definition row, not a column, so it cannot be indexed. schema-err-currency-only = Column `{ $name }`: a currency belongs only to a column type that requires one. schema-err-name-twice = `{ $name }` names more than one of this table's columns. schema-err-currency-code = Currency must be a three-letter ISO-4217 code schema-err-profile-only-type = A shared table cannot use { $type }: it posts to one profile's books, and a shared table belongs to every profile. schema-err-shared-ql = Column `{ $name }`: a shared table cannot keep a quantity ledger, which belongs to one profile. schema-err-profile-reserved = That profile name is reserved by PostgreSQL. schema-err-table-name-too-long = Table name cannot be longer than { $limit } characters, because the indexes on its columns are named after it. schema-err-table-name-reserved = `{ $name }` is the name of a table every profile is given, so it cannot be reused. error-identifier-empty = { $label } cannot be empty. error-identifier-whitespace = { $label } cannot start or end with a space. error-identifier-underscore = { $label } cannot start with an underscore. error-identifier-number = { $label } cannot start with a number. error-identifier-too-long = { $label } cannot be longer than { $limit } characters. error-identifier-charset = { $label } may only use lowercase letters, digits and underscores. error-identifier-reserved = { $label } uses a reserved name. error-decimal-required = { $label } is required for a decimal column. error-decimal-sign = { $label } cannot carry a sign. error-decimal-whole = { $label } must be a whole number. error-decimal-leading-zeros = { $label } cannot have leading zeros. error-precision-min = Precision must be at least 1. error-scale-gt-precision = Scale cannot be greater than precision. # --- Add validation -------------------------------------------------------- validation-eyebrow = Validation validation-library-eyebrow = Global validation library validation-field-title = Add field validation validation-field-lead = Attach validation to one column of one table. validation-rule-title = Add reusable validation rule validation-rule-lead = A named rule that validation sets can compose, independent of any table. validation-set-title = Add validation set validation-set-lead = Compose an ordered set from existing reusable rule names. validation-profile = Profile validation-table = Table validation-column = Column validation-apply-set = Apply named validation set instead validation-apply-set-placeholder = Leave empty to save the rules below validation-error-title = Could not save validation validation-success-title = Validation saved validation-save = Save validation validation-rule-name = Rule name validation-description = Description validation-save-rule = Save rule validation-set-name = Set name validation-reusable-rules = Reusable rules validation-reusable-rules-hint = Comma-separated and applied in this order. validation-save-set = Save set validation-position-rules = Position rules validation-position-rules-hint = One per line: position | constraint. Positions: 0, 0-3, 4+, or 1,3,5. Constraints: alphabetic, numeric, alphanumeric, exact=x, one-of=a,b, regex=… validation-pattern-description = Pattern description validation-min-length = Minimum length validation-max-length = Maximum length validation-warn-at = Warning threshold validation-count-mode = Count mode validation-count-chars = Characters validation-count-bytes = Bytes validation-count-display-width = Display width validation-allowed-values = Allowed values validation-display-mask = Display mask validation-mask-input-char = Mask input character validation-mask-template-char = Mask template character validation-required = Required validation-allow-empty = Allow empty validation-case-insensitive = Case insensitive validation-external = External validation validation-lock = Lock configuration validation-err-at-least-one-rule = Enter at least one reusable rule name. validation-err-enter = Enter a { $label }. validation-err-non-negative = { $label } must be a non-negative integer. validation-err-min-max = Minimum cannot be greater than maximum. validation-err-pattern-line = Pattern line { $line } must use `position | constraint`. validation-err-range-start = Pattern range start cannot exceed its end. validation-err-bad-position = Invalid pattern position '{ $value }'. validation-err-bad-constraint = Unknown character constraint '{ $value }'. validation-err-permission = Validation-management permission is required.