# ============================================================================ # 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-toggle-theme = Toggle dark mode 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 = Adjust 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-adjust-table-title = Adjust table 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-adjust-table-of = Adjust table td-adjust-table-hint = This table has no data, so you can add new columns or select existing columns to remove. The change is saved atomically. td-table-name = Table name td-table-name-hint = Rename the table here. Links and its definition continue to point to the same table. td-remove-column = Remove td-remove-column-aria = Remove { $column } td-remove-column-confirm = Remove column "{ $column }"? This can't be undone once you save. td-save-definition = Save table definition 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-current-alias = Current alias td-new-name = New name td-rename-button = Rename td-alias-locked = cannot be renamed td-order-heading = Column order td-order-hint = Drag columns into place, then save when the order feels right. td-drag-column = Drag to reorder td-order-clean = No unsaved order changes td-order-unsaved = Unsaved order changes td-order-reset = Revert td-order-save = Save order td-err-invalid-order = The column order changed or is incomplete. Reload it and try again. 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 adjust the columns 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-adjust-table = Adjust table td-tab-adjust-table-sub = Add, remove, or replace 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-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-definition-adjusted = `{ $table }` adjusted: { $added } added, { $removed } removed. 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-describe-change = Change the table name, select a column to remove, or stage at least one column to add. td-err-backend-no-columns = The backend did not add the columns. td-err-backend-no-adjustment = The backend did not adjust the table definition. td-err-populated-append-only = This table contains data. Existing columns cannot be removed; only new columns can be added. 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-technical-history = Technical update history ecb-technical-history-hint = For troubleshooting only. Old failures remain in this audit log even after a later update succeeds. 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 = updating now ecb-postable-lead = Accepted transaction dates ecb-ordinary-transactions = Regular transactions ecb-statements-title = Statements and dated balances ecb-dated-up-to = Through 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 successful update ecb-none = none ecb-next-import = Next automatic update ecb-ready-currencies = Currencies ready: ecb-latest-problem = Latest problem: 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 = Foreign-currency posting is available ecb-headline-never-ran = Foreign-currency posting is unavailable ecb-headline-behind = Some foreign-currency records may be blocked ecb-explanation-current = The required rates are available. No admin action is needed. ecb-explanation-never-ran = No rate update has succeeded yet. Foreign-currency records cannot be posted. 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 = Official 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 = Prepare an import in three steps: choose the table and hand over the file, say where each column of the table takes its value from, then look at the result before anything is written. 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-date-format = Date format import-date-format-yy-mm-dd = YY-MM-DD (26-08-18) import-date-format-dd-mm-yy = DD-MM-YY (18-08-26) import-date-format-yyyy-mm-dd = YYYY-MM-DD (2026-08-18) import-date-format-dd-mm-yyyy = DD-MM-YYYY (18-08-2026) import-date-format-hint = Used for DATE columns. Jiff expands YY values 69–99 to 1969–1999 and 00–68 to 2000–2068, then normalizes every date before import. import-csv-data = CSV data import-csv-format-hint = The first row is normally used as the file's column names. Use UTF-8 CSV with a comma separator and every field in double quotes, for example: "hl","he","s" import-continue = Continue import-carried = Importing into { $table } in { $scope }. import-error-title = Could not import CSV import-import-rows = Import import-failure-no-rows-message = Nothing was imported. CSV row { $row } failed. Backend: { $error } import-err-bad-date = CSV row { $row }, column { $column }: “{ $value }” is not a valid { $format } date. import-success-title = Import complete import-success-message = Inserted { $inserted -> [one] { $inserted } row *[other] { $inserted } rows } into { $table }, from { $source_rows -> [one] { $source_rows } prepared row *[other] { $source_rows } prepared rows }. # --- The import while it runs ---------------------------------------------- import-progress-heading = Importing into { $table } import-progress-rows = { $inserted } of { $total } rows staged import-progress-label = Import progress import-progress-elapsed = Elapsed import-progress-rate = Speed import-progress-remaining = Time left import-progress-rate-value = { $rows } rows/s import-progress-seconds = { $seconds } s import-progress-minutes = { $minutes } m { $seconds } s import-progress-unknown-yet = — import-progress-hint = The import runs on the server and keeps going even if this page is closed. This card updates every second. import-progress-gone = This import is no longer being tracked. It either finished more than five minutes ago or was started in another session. import-progress-done-close = Close import-err-already-running = An import is already running. Wait for it to finish before starting another one. # --- Step 2: mapping ------------------------------------------------------- import-mapping-heading = Map CSV columns into { $table } import-mapping-hint = Nothing is mapped until you choose it. Map the whole file in order, or select CSV columns and drop them on the table column they should start at. import-mapping-rows = The file holds { $rows } data rows. import-summary-mapped-short = mapped import-summary-attention-short = table columns not mapped import-csv-columns = CSV columns found import-csv-columns-hint = Click a column, Ctrl/Cmd-click to add more, or Shift-click for a range, then click or drag onto the table column the selection should start at. The small text is the first data value. import-select-all-columns = Select all import-clear-selection = Clear selection import-map-in-order = Map in order import-clear-all-mappings = Clear all mappings import-table-columns = Original table columns import-table-columns-hint = Every table column is shown. Leave a row as “Not mapped” when you intentionally do not want to import it. import-drag-source = Map CSV column { $column } import-destination-unmapped = Not mapped — leave empty import-value-from = Gets values from import-clear-mapping = Clear import-th-destination = Table column import-th-required = Required import-th-source = Takes its value from import-th-example = Example import-th-status = Status import-source-none = Skip this file column import-source-column = Column { $position } import-required-short = required import-status-mapped = Mapped import-status-duplicate = Same name appears twice import-status-unmapped = Not mapped import-status-near = Looks like import-status-near-match = Looks like { $column } import-source-option = { $name } — position { $position } import-source-unnamed = position { $position } import-back-to-source = Back to the file import-to-preview = Prepare and preview # --- Step 3: preview ------------------------------------------------------- import-preview-heading = Prepared import for { $table } import-summary-rows = Source rows import-summary-columns-used = Mapped table columns import-summary-ignored = Ignored source columns import-summary-empty = Unmapped table columns sent empty import-summary-missing-required = Not filled in by this import, and declared NOT NULL by the table: { $columns }. If those columns have no default, the server will refuse the rows. import-preview-more-rows = { $rows } further rows are prepared and not shown here. import-prepared-csv = The prepared CSV import-prepared-csv-hint = This is the file that gets imported, and the same file the download hands over. import-download-prepared = Download prepared CSV import-back-to-mapping = Back to the mapping # --- Refusals -------------------------------------------------------------- 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 = Table '{ $table }' has no columns an import can write into. import-err-csv-row = Row { $row }: { $error } import-err-row-width = Every row must hold as many values as the header. The header has { $expected } and a later row has { $found }. import-err-no-data-rows = The file needs a header row and at least one data row under it. import-err-mapping-empty = No column of the table is mapped, so there is nothing to import. import-err-source-used-twice = Source column '{ $name }' at position { $position } is used for two table columns. A source column can fill one table column only. import-err-destination-used-twice = Table column '{ $column }' is mapped more than once. A table column can receive one source column only. import-err-source-position-missing = Column '{ $column }' is set to take position { $position }, and the file only has { $positions }. Prepare the mapping again. import-err-destination-missing = A mapped column no longer exists in table '{ $table }', or is no longer one an import can write into. Prepare the mapping again. 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-strict-csv = Invalid CSV format. Every field must be enclosed in double quotes, fields must be separated by commas, and each record must stay on one line. 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 = The selected initial rate source must publish a direct quote between this currency and every initial foreign currency. Additional sources and currencies can be added later. 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. # Exchange-rate administration workspace rates-title = Conversion rates rates-eyebrow = Admin workspace rates-description = Configure profile currencies, inspect audit evidence, and monitor providers. rates-updated = Conversion rates updated rates-could-not-continue = The operation could not be completed rates-sections = Conversion-rate workspace sections rates-tab-configuration = Configuration rates-tab-configuration-sub = Currencies and providers rates-tab-evidence = Evidence rates-tab-evidence-sub = Inspect a stored result rates-tab-providers = Availability rates-tab-providers-sub = Status and updates rates-profile-configuration = Profile configuration rates-no-profiles = No accounting profiles are available. rates-profile = Profile rates-accounting-currency = Accounting currency rates-immutable = fixed after profile creation rates-configured-currencies = Foreign currencies rates-registered-providers = Available providers rates-no-foreign-currencies = No foreign currency has been configured for this profile yet. rates-foreign-currency = Foreign currency rates-default-provider = Default provider rates-providers = Providers rates-coverage = Verified coverage rates-ready = Ready rates-importing = Coverage incomplete rates-make-default = Make default rates-add-binding = Add currency provider rates-append-only-hint = Configuration is append-only: add another provider or make an existing provider the default. Existing bindings are not replaced. rates-provider = Provider rates-choose-provider = Choose a provider rates-make-default-now = Use this provider for future conversions rates-reason = Reason rates-rate-date = Applied rate date rates-evidence-lookup = Evidence lookup rates-evidence-hint = Look up the exact conversion history for one table cell and its revisions. rates-table = Table rates-record-id = Record ID rates-column = Column rates-find-evidence = Find evidence rates-no-exchange = This cell does not contain an exchange-rate conversion. rates-no-evidence = The cell is exchange-enabled, but no conversion evidence was recorded. rates-revision = Row revision rates-conversion = Conversion rates-created = Recorded at rates-more-evidence = More evidence exists; narrow the lookup or use the API cursor to continue. rates-provider-health = Can foreign-currency records be posted? rates-provider-health-hint = Current availability and the latest successful automatic update. rates-unavailable-title = Conversion rates are unavailable rates-err-profile-missing = The selected profile no longer exists. The first available profile is shown instead. rates-err-record-id = Record ID must be a positive whole number. rates-configuration-added = Added provider { $source } for { $currency }.