Loading translation workspace

Preparing projects and storefront languages.
Initial requests are still running.
Initial data load failed. Reload the data before running sync, batch, review, or write actions.

Full-Cycle Automation

On Paused Loading
Daily store sync, translation batches and safe writes. Review items remain manual.
Automation state: Enabled Paused Loading Current run: Loading # active None
Automation is paused, but run # is still active.
Worker is not responding. Run # has work ready for processing, but no step was claimed for s.
Run # :
Workflow steps processed: / (known so far)
Last worker activity: (s ago)
Steps Completed Running Waiting Queued Failed Next check: (s)
Standard batches in this run (all languages) Total Pending Submitted Completed Failed
Language Lane Current stage Status Next action
{{scope_label}} {{lane}}
{{phase_label}}
{{error_text}}
Batch #{{batch_reference}}
{{reason_label}}
{{status_label}}
{{available_at_local || '-'}}
{{timezone}}
Automatic work is complete. Manual Review remains: .
Last run ended with errors:
Automation settings could not be loaded for the selected project.
Next sync: Last success:
Hidden store languages can be translated before they are visible in CS-Cart. “Jobs paused” only pauses this tool; it does not publish the language.
Selection changed. Tables still use the previously applied filters until Apply is pressed.

AI usage and cost

Project total from the mapped OpenAI cost export, with attributed detail by task, entity, language and model. Every event keeps the tariff version effective when it occurred.
-
Project API credential
Use the same secret as AI_USAGE_PROJECT_TOKEN in the project server configuration. Saving an existing credential code rotates its token. TranslationHub stores only its SHA-256 hash and never displays the token again.
Credential saved. Copy the same token into the project server configuration before leaving this page.
Registered credentials: 0
CredentialStatusExpiresLast usedUpdated
-----
The default is the latest 30 calendar days in the project timezone. Current timezone: Europe/Riga. OpenAI actual totals use the imported provider buckets that fall inside the selected period. Press Refresh after changing the period or project.
Press Refresh to load cost data for the selected project.
The calculated project total uses the mapped OpenAI cost export and follows only the selected dates. Task, entity, language, model and pricing filters apply to the table and attributed KPIs, which cover only events recorded with that metadata.
The imported OpenAI cost buckets do not cover the entire selected period. Available coverage: --.
No mapped OpenAI cost buckets are available for the selected period. The calculated total is an attributed estimate, not the complete provider spend.
The EUR total is unavailable because the stored ECB EUR/USD history does not cover 0 USD in this result. USD totals are unchanged.
Calculated cost, USD
0
-
Calculated cost, EUR
ECB daily rates: --
OpenAI requests
0
Input tokens
0
Output tokens
0
Attributed cost, USD
0
0% of project cost
Attributed cost, EUR
ECB daily rates
Attributed events
0
Attributed input
0
Attributed output
0
DateTask / entityLanguagesModel / tierModeEventsTokensUSD ×1.15EUR ×1.15ECB ratePricing
-
-
-
-
-
-
- 0 0 0
-
Configured tariff versions (0)
ModelTierEffectiveMax inputInputCachedCache writeOutput
----0000
OpenAI provider projects and Hub mapping
Provider project names come from the official OpenAI Projects directory. Mapping is explicit and does not change immutable Hub events.
OpenAI may return organization-level cost rows without a usable project allocation. Missing provider cost data is not treated as zero; calculated Hub cost continues to come from project events and historical tariffs.
Provider project mapping saved.
- -
Projects: 0; mapped: 0; organization provider cost: 0 USD.
OpenAI projectStatusRequestsTokensProvider cost, USDHub project
-
-
- 0 0 0
-
Unmapped
Suggested:

Storefront Language Jobs

Source is . Existing translations are kept. Pausing jobs does not change CS-Cart language visibility.
Jobs on:
Store language list unavailable:
Loading storefront language jobs...
Storefront languages failed to load:
Storefront Language Name Store availability Translation jobs
#{{storefront_id}}
{{storefront_name}}
{{lang_code}} default {{name}} active hidden not active global
Banner media copied to : rows created , links replaced , links inserted .
Banner media sync failed:
Demo banner cleanup for : rows changed , text fields cleared , structural fields copied . Sync warning:
Demo banner cleanup failed:
No storefront target languages loaded.
Storefront language save failed:

Projects / Stores

Project metadata is stored in Postgres. Store DB credentials stay in Wappler connection files.
Project Store connection
#{{project_id}} {{project_code}}
{{name}}
{{store_connection_name}}
Connection OK: , DB , companies .
Connection check failed:
Connection failed:
Must match an existing Wappler connection file before the project can be enabled.
Optional public subdomain for callbacks or downloadable files.
Saved project #.
Cloned settings: entities , product features .
Save failed:
Clone failed:

Project AI Settings

API key is stored encrypted and is never returned by the API. Batch jobs keep the model fixed at creation time.
Key: configured not configured
Sent to SEO generation and AI image-alt generation.
Prices shown as Batch input/output USD per 1M tokens. Standard API is higher.
AI settings saved.
AI settings save failed:

Storefront Language Jobs

Source is . Existing translations are kept. Pausing jobs does not change CS-Cart language visibility.
Jobs on:
Store language list unavailable:
Storefront Language Name Store availability Translation jobs
#{{storefront_id}}
{{storefront_name}}
{{lang_code}} default {{name}} active hidden not active global
Banner media copied to : rows created , links replaced , links inserted .
Banner media sync failed:
Demo banner cleanup for : rows changed , text fields cleared , structural fields copied . Sync warning:
Demo banner cleanup failed:
No storefront target languages loaded.
Storefront language save failed:

Sync From Store

Every apply runs a server-side preflight. Hard unit and queue limits stop the whole extraction before any tr_units upsert.
Status . Scope : source rows , normalized units , new units , projected missing/review , missing , stale/check , review , source missing handled (deleted , protected ).
Entity Status New Projected queue New limit Queue limit Confirmation
{{entity_type}} {{status}} {{new_units}} {{projected_pending_review_units}} {{preflight.max_new_units_per_run}} {{preflight.max_pending_review_units}} required not required
Extraction stopped or failed for entities. No units are created when the run status is blocked or confirmation_required.
:

Translation Settings

Disabled entities are skipped by sync, batch build, and store writes. Product features are opt-in for labels, variants, and custom values.
Entities: . Feature settings enabled: .
Loading translation settings...
Settings load failed:

Entities

No entity settings loaded.
Project Entity Model Global Project override Effective Guardrails Notes Updated
{{project_code}}
#{{project_id}}
{{entity_type}}
enableddisabled
pilot:
customer:
enableddisabled
pilot_enabled:
customer_visible:
effective enabled effective disabled
customer:
new/run: {{max_new_units_per_run}}
missing/review: {{max_pending_review_units}}
warn: {{queue_warning_threshold}}
{{notes}} {{updated_at}}

Edit project entity override

Project / entity_type

Product Features

Enabled:
Feature Type Labels Variants Values
#{{feature_id}}
{{description}}
{{feature_type}} - -
Product features settings are temporarily unavailable:
If no feature is enabled for a column, sync will not create units for that product feature entity.

SEO Automation

Separate SEO flow for active products, categories, static pages, and dynamic pages. It uses only page_title, meta_description, and meta_keywords.
Loading SEO automation...
Used for SEO and AI image alt.
SEO context saved.
SEO context save failed:
Generate source SEO first, write it safely, then translate SEO to the selected target language.
Source language: . Target language: . Products missing SEO: . Categories missing SEO: . Static pages: . Dynamic pages: .
Handled by a separate project cycle: . Other SEO scopes remain active here.
SEO batch # created with items.
Target SEO batch # created with items.
SEO error:
Batch Task Entity Status Model Items
#{{seo_batch_id}} Generate Translate to {{entity_type}} ready to write store checked {{model_name}} ready to write , written , skipped , failed
Existing translated SEO text is protected. Empty or source-copy SEO text can be replaced. SEO URL/slug fields are not read or written.
Submit all: submitted / new SEO batches. Failed .
Fetch all: processed / unfinished SEO batches. Items: completed , failed . Failed batches .
SEO safe write completed for batch #: written items , written fields , skipped .
SEO batch action failed:

Media Alt Automation

All active storefront images are covered, including linked media and images embedded in localized HTML. Existing translated alt text is protected.
Loading media alt automation...
Generate source image alt first, write it safely, then translate alt text to the selected target language.
Source language: . Target language: .
Storefront images total
Source alt present (%)
Source alt missing
Ready to batch
In active batch
Selected target needs translation
Decorative, kept empty
Product media is handled by the project's separate product cycle. All other storefront image scopes remain enabled here.
Coverage details
Category images missing source alt: . Blog images missing source alt: . Content HTML image problems: in documents.
: missing / linked images.
HTML: missing / images.
Media alt batch # created with items. Submit and fetch it before safe write.
Target media alt batch # created with items.
Batch Task Status Model Method Items
#{{media_alt_batch_id}} Generate Translate to ready to write store checked {{model_name}} {{generation_method || ''}} ready to write , written , skipped , failed
Target alt text is trusted only when it matches a result previously confirmed by Translation Hub for the same source alt. Other target values are translated and replaced. This block does not use the standard translation units.
Submit all: submitted / new media alt batches. Failed .
Fetch all: processed / unfinished media alt batches. Items: completed , failed . Failed batches .
Media alt safe write completed for batch #: written items , skipped .
Media alt action failed:

Build AI Batch

Used for standard translation batches.
Translation context saved.
Translation context save failed:
Created batch with items. Mode: . Filled from memory: .
Created check batch with items.
Auto build: created batches / items, memory filled , entities scanned , stop: .
Batch build failed:

Batch Actions

Use row Submit / Fetch, or bulk actions in Batch Monitoring. Re-submit is blocked once a batch is already sent.
Submitted as . Status: .
Batch status: . Fetched: . Items: /, failed , unresolved . OpenAI: /, failed .
Fetch all: processed / unfinished batches. Items: completed , failed , unresolved . OpenAI: completed / , failed .
Submit all: submitted / new batches. Failed .
Batch action failed:
Deleted batch . Reset unresolved units: .
Reset remaining items for batch . Units reset: .

Force retranslate: reset / units, skipped active batches , skipped writes . Next build bypasses memory for these units.
Force products from EN
Resets product title/description fields and product SEO from EN, then creates pending batches. It does not submit batches to OpenAI.
Recovery
Running . Sync, reset, and batch build can take several minutes. Batch table updates after completion.
Mode: . Product fields: actual products found , product-language rows , field units found , fingerprint stale products , fingerprint stale units , selected products , selected product-language rows , selected units , reset products , reset units , batches , items . SEO: product-language rows , existing target SEO , batches , items . Submit pending standard and SEO batches after checking counts.
Job: . Status: . Entity: . Cycles: . Entity cycles: . Remaining entities: . Rounds: . Prepared: . Selected: . Written: . Failed: . Cloned rows: . Stop: . Failure streak: /5. Writing continues in background. Status polling is retrying. Status check is retrying while the backend job continues. Stopped after repeated write failures. Error: .
Mode: . Eligible: . New queue candidates: . Prepared: . Already queued/written: . Use Preview pending, then Write chunk.
Mode: . Pending: . Validated: . Written: . Failed: . Cloned rows: . Limit used: /.
Deleted source-missing units: . Writes: , batch items: , results: .
Failed writes
These rows are in tr_writes with write_status = failed. Retryable rows go back to pending; obsolete rows are skipped so review can create a fresh queue later.
Returned to pending: . Skipped obsolete: .
# / unit /
Loading translation memory metrics...
Memory Rows
Total:
Used From Memory
Rows used:
Manual Overrides
AI accepted:
Last Used
Updated:
Loading coverage summary...
Coverage
Ready:
Units
Translated/Written:
Review Queue
Suspected EN copy:
Batch Progress
Completed: / Failed:
Missing
Batched
Translated
Written
Wrong Language
HTML Problems

Dangerous translation queues

Grouped by project_code, entity_type, target_lang, and status. “Without links” means the unit has no tr_results, tr_writes, or tr_batch_items evidence.
Warning threshold exceeded. Stop extraction and inspect the affected project/entity/language before the queue consumes disk.
Queue monitor failed:
Checking queue sizes and orphan evidence...
Project Entity Lang Status Rows Without results Without writes Without batch items Without links Threshold Effective
{{project_code}} {{entity_type}} {{target_lang}} {{status}} {{row_count}} {{rows_without_results}} {{rows_without_writes}} {{rows_without_batch_items}} {{rows_without_links}} {{warning_threshold}} enabled disabled

Coverage By Entity

Loading entity coverage...
Entity coverage failed to load:
Entity Total Missing Review In batch Translated To write OK in store Coverage
{{entity_type}} {{total_units}} {{missing_units}} {{review_required_units}} {{batched_units}} {{translated_units}} {{write_candidate_units}} {{written_units}} {{coverage_pct}}%

Coverage By Field

Loading field coverage...
Field coverage failed to load:
Entity Field Total Suspected EN Coverage
{{entity_type}} {{field_name}} {{total_units}} {{suspected_source_copy_units}} {{coverage_pct}}%

Visible standard batches

Scope: / /
Visible Pending Submitted Completed Failed Other
Submit all: submitted / new batches. Failed .
Submit all failed:
Loading standard batches...
Batch Entity Status Items External ref Requested Sent Completed
{{batch_id}}
{{entity_type}}
entity disabled
{{openai_status || status}}
local {{status}}
{{items_completed}} / {{items_total}}
pending / sent / failed history / resettable
{{external_batch_ref}}

Review Queue

Unit Entity Field Status Flags Target
{{unit_id}}
{{entity_type}}
{{entity_key_text}}
{{field_name}} {{status}} {{quality_flags_json}} {{target_value_current}}

Recent Activity

Loading recent activity...
Type Status Ref At
{{activity_type}} {{status}}
{{ref_id}}
{{title}}

Translation Review

Left is EN source. Right is the current target value that will be saved after review.
Inspect any EN to target pair and confirm whether the current target is really translated.
Selected 0 Bulk: selected , approved , reset . Bulk failed:
Selected unit
Status
existing target
Current target equals EN source or is flagged as same_as_source. Use Accept invariant to keep it unchanged, edit the target, or return it to untranslated.
Current target comes from the store source and is not confirmed by this translation pipeline yet. Review or replace it before approval.
Saved unit as .
Reset unit to .
Updated EN source for unit . Affected units: .