957 lines
48 KiB
Plaintext
957 lines
48 KiB
Plaintext
# ============================================================================
|
||
# 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: <page-or-area>-<element> (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 <a href="/login">log in</a> 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-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 }
|
||
column-flag-hidden-from-forms = hidden from forms
|
||
|
||
# --- 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-form-visibility = Form visibility
|
||
td-hide-from-forms = Hide
|
||
td-show-in-forms = Show
|
||
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-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 <a href="/admin">admin panel</a>, 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 <code>{ $table }</code> to confirm
|
||
td-no-table-chosen = No table chosen
|
||
td-pick-table-delete = Pick the table to delete in the <a href="/admin">admin panel</a> 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 <code>#let komp_ac_fields = (…)</code> 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 <code>[]</code> 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. <a href="/permissions/roles">Create one</a> first.
|
||
grants-role-heading = Role
|
||
grants-editing = Editing
|
||
grants-inherits-prefix = → inherits
|
||
grants-inherits-parent = <strong>{ $role }</strong> inherits everything <strong>{ $parent }</strong> has. Inherited access shows below but is changed on the parent.
|
||
grants-inherits-none = <strong>{ $role }</strong> 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 <code>account</code>
|
||
builder-rename-generated-hint = Each of these can be given a name of your own under <em>Rename generated columns</em> 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 <code>{ $type }</code>. 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 <code>id</code> 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-link-not-valid = `link` is not a valid field type.
|
||
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-table-name-charset = { $label } may only use ASCII letters, digits, underscores and hyphens.
|
||
error-table-name-boundary = { $label } must start and end with a letter or number.
|
||
error-alias-charset = { $label } must contain a letter, number, punctuation mark or non-emoji symbol, and cannot contain control characters.
|
||
error-alias-too-long = { $label } cannot be longer than { $limit } UTF-8 bytes.
|
||
error-identifier-reserved = { $label } uses a reserved name.
|
||
|
||
# --- 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 }.
|