import improvements2

This commit is contained in:
Priec
2026-08-17 15:20:31 +02:00
parent 1b9136f1de
commit 71807f9a6d
15 changed files with 944 additions and 1292 deletions

View File

@@ -556,23 +556,18 @@ analytics-result-meta-truncated = { $rows ->
# --- Import / export -------------------------------------------------------
transfer-eyebrow = Data transfer
import-title = Import CSV
import-lead = Prepare an import in three steps: say where the data is going, say what each column of your file is, then look at the result before anything is written.
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-csv-data = CSV data
import-csv-format-hint = Use UTF-8 CSV with a comma separator and every field in double quotes, for example: "Acme","12345678","true"
import-source-mode = How the source is laid out
import-source-header = The file has a header row
import-source-data = The file is data only
import-source-template = Generate an empty template
import-source-mode-hint = This is always your answer, never a guess. A real data row can hold words that read exactly like column names, so nothing here decides on its own whether the first row is a header.
import-csv-format-hint = The first row is the file's own header, and every row after it is data. 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 prepared data
import-import-rows = Import
import-success-title = Import complete
import-success-message = Inserted { $inserted ->
[one] { $inserted } row
@@ -582,43 +577,32 @@ import-success-message = Inserted { $inserted ->
*[other] { $source_rows } prepared rows
}.
# --- Step 2a: mapping ------------------------------------------------------
import-mapping-heading = Send each position to a column of { $table }
import-mapping-hint = Values are placed by position, not by name. A source name is shown only so you can tell the positions apart; it decides nothing. A position left on Ignore is not imported, and a column not chosen here is left to the table.
# --- Step 2: mapping -------------------------------------------------------
import-mapping-heading = Where does each column of { $table } take its value from?
import-mapping-hint = Every column of the table is listed once, so none of them can be filled twice. Values are taken by position: a source column's name is shown so you can recognise it, and decides nothing. A column left on Do not import is not written, and the file's other columns are ignored.
import-mapping-rows = The file holds { $rows } data rows.
import-th-position = Position
import-th-source-name = Source name
import-th-example = Example value
import-th-destination = Send to
import-destination-ignore = Ignore
import-back-to-source = Back to the source
import-th-destination = Table column
import-th-required = Required
import-th-source = Takes its value from
import-th-example = Example
import-source-none = Do not import
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 2b: template generator -------------------------------------------
import-template-heading = Build a template for { $table }
import-template-hint = Tick the columns the file should contain and arrange them in the order you want to fill them in.
import-th-order = Order
import-th-include = Include
import-required-column = required
import-template-generated = The header this generates:
import-template-nothing-chosen = Tick at least one column.
import-template-round-trip = Fill this in elsewhere, then bring it back with "The file has a header row" selected. Because these are the table's own column names, every position will already be pointed at the right column for you to confirm.
import-download-template = Download template
# --- Step 3: preview -------------------------------------------------------
import-preview-heading = Prepared import for { $table }
import-summary-rows = Source rows
import-summary-columns-used = Columns used
import-summary-ignored = Source positions ignored
import-summary-omitted = Destination columns omitted
import-summary-columns-used = Mapped table columns
import-summary-ignored = Ignored source columns
import-summary-omitted = Omitted table columns
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
import-move-up = Move { $name } up
import-move-down = Move { $name } down
# --- Refusals --------------------------------------------------------------
import-err-select-profile = Select a scope.
@@ -629,15 +613,12 @@ import-err-tables-not-in-profile = The target table does not belong to the selec
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 the same number of positions. This file starts with { $expected } and later has a row of { $found }.
import-err-no-data-rows = The file holds no data rows.
import-err-source-mode = Say how the source is laid out.
import-err-template-has-no-source = A template is generated from the table, so there is no file to prepare.
import-err-template-empty = Tick at least one column for the template.
import-err-mapping-stale = The mapping was built for a file of { $mapped } positions and this one has { $positions }. Prepare it again.
import-err-mapping-unknown-column = Position { $position } is pointed at '{ $column }', which is not a column this table can be imported into. The table may have changed while the form was open.
import-err-mapping-duplicate = Two positions are pointed at '{ $column }'. A column can be filled from one position only.
import-err-mapping-empty = Every position is set to Ignore, so there is nothing to import.
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-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.