{
  "sync_akeneo.customFields.actions.add": "Add row",
  "sync_akeneo.customFields.actions.createMissing": "Pre-create missing fields now",
  "sync_akeneo.customFields.actions.creating": "Creating...",
  "sync_akeneo.customFields.actions.remove": "Remove",
  "sync_akeneo.customFields.columns.actions": "Actions",
  "sync_akeneo.customFields.columns.attribute": "Akeneo attribute",
  "sync_akeneo.customFields.columns.key": "Field key",
  "sync_akeneo.customFields.columns.kind": "Kind",
  "sync_akeneo.customFields.columns.skip": "Skip import",
  "sync_akeneo.customFields.columns.status": "Status",
  "sync_akeneo.customFields.columns.target": "Target",
  "sync_akeneo.customFields.createNothing": "There are no non-skipped custom-field mappings to create.",
  "sync_akeneo.customFields.created": "Akeneo-backed custom fields created.",
  "sync_akeneo.customFields.dialog.apply": "Apply",
  "sync_akeneo.customFields.dialog.close": "Close",
  "sync_akeneo.customFields.dialog.description": "Edit structured custom-field mappings, review which local field definitions already exist, generate missing ones immediately, or mark specific Akeneo attributes to be skipped during import.",
  "sync_akeneo.customFields.dialog.summary.missing": "{count} rows missing local fields",
  "sync_akeneo.customFields.dialog.summary.ready": "Everything in this mapping already exists locally",
  "sync_akeneo.customFields.dialog.summary.total": "{count} mapping rows",
  "sync_akeneo.customFields.dialog.title": "Akeneo custom field editor",
  "sync_akeneo.customFields.empty": "No Akeneo custom fields are mapped yet. Use the suggestions below or add a row manually.",
  "sync_akeneo.customFields.kinds.auto": "Auto",
  "sync_akeneo.customFields.status.missing": "Missing",
  "sync_akeneo.customFields.status.ready": "Exists",
  "sync_akeneo.customFields.status.skipped": "Skipped",
  "sync_akeneo.customFields.suggestions.help": "Quick-add discovered attributes that are not yet part of the Akeneo custom-field mapping.",
  "sync_akeneo.customFields.suggestions.title": "Suggested Akeneo attributes",
  "sync_akeneo.customFields.targets.product": "Product",
  "sync_akeneo.customFields.targets.variant": "Variant",
  "sync_akeneo.deleteImportedProducts.action": "Force delete all imported products",
  "sync_akeneo.deleteImportedProducts.cancel": "Cancel",
  "sync_akeneo.deleteImportedProducts.cancelled": "Imported Akeneo product deletion was cancelled.",
  "sync_akeneo.deleteImportedProducts.completed": "Imported Akeneo product deletion completed.",
  "sync_akeneo.deleteImportedProducts.confirmAction": "Force delete",
  "sync_akeneo.deleteImportedProducts.confirmText": "This will permanently delete products imported by the Akeneo integration for the current organization, together with their imported variants and related catalog data. The Akeneo product cursor will also be reset so a fresh import can start from scratch.",
  "sync_akeneo.deleteImportedProducts.confirmTitle": "Force delete all imported Akeneo products?",
  "sync_akeneo.deleteImportedProducts.failed": "Imported Akeneo product deletion failed.",
  "sync_akeneo.deleteImportedProducts.inProgress": "Deletion in progress...",
  "sync_akeneo.deleteImportedProducts.pending": "The deletion job is being prepared.",
  "sync_akeneo.deleteImportedProducts.preparing": "Preparing...",
  "sync_akeneo.deleteImportedProducts.progressCount": "{processed} / {total}",
  "sync_akeneo.deleteImportedProducts.progressTitle": "Deleting imported Akeneo products",
  "sync_akeneo.deleteImportedProducts.running": "The imported product cleanup is running in the background. Progress also appears in the global progress bar.",
  "sync_akeneo.description": "Import Akeneo product catalogs, family-driven attributes, and products into Open Mercato with resilient batch sync.",
  "sync_akeneo.discovery.attributes": "Attributes",
  "sync_akeneo.discovery.channels": "Channels",
  "sync_akeneo.discovery.families": "Families",
  "sync_akeneo.discovery.heading": "Discovered Akeneo fields",
  "sync_akeneo.discovery.help": "These values come from the current Akeneo credentials and are safe to paste into the mapping inputs.",
  "sync_akeneo.discovery.localChannels": "Open Mercato channels",
  "sync_akeneo.discovery.locales": "Locales",
  "sync_akeneo.discovery.priceKinds": "Catalog price kinds",
  "sync_akeneo.discovery.rediscovered": "Akeneo fields refreshed and missing mappings added.",
  "sync_akeneo.feature.configure": "Configure Akeneo sync settings",
  "sync_akeneo.feature.view": "View Akeneo sync configuration",
  "sync_akeneo.firstImport.action": "Run the first full import",
  "sync_akeneo.firstImport.completed": "The first full Akeneo import finished successfully.",
  "sync_akeneo.firstImport.errors.cancelled": "The first full Akeneo import was cancelled.",
  "sync_akeneo.firstImport.errors.failed": "The sync run failed.",
  "sync_akeneo.firstImport.errors.generic": "The first full Akeneo import could not be completed.",
  "sync_akeneo.firstImport.errors.progress": "Failed to load sync run progress.",
  "sync_akeneo.firstImport.errors.start": "Failed to start the sync run.",
  "sync_akeneo.firstImport.help": "Launch the standard Akeneo sync sequence in the recommended order: categories first, attributes second, products last.",
  "sync_akeneo.firstImport.integrationDisabled": "Enable the integration and save valid Akeneo credentials before starting the first full import.",
  "sync_akeneo.firstImport.missingCredentials": "Save valid Akeneo credentials before starting the first full import.",
  "sync_akeneo.firstImport.progressCount": "{processed} of {total} items processed in the current run.",
  "sync_akeneo.firstImport.progressUnknown": "The current run is active. Live progress also appears in the global operations bar.",
  "sync_akeneo.firstImport.running": "Running full import sequence...",
  "sync_akeneo.firstImport.status.completed": "Full import completed",
  "sync_akeneo.firstImport.status.failed": "Full import failed",
  "sync_akeneo.firstImport.status.running": "Full import sequence running",
  "sync_akeneo.firstImport.steps.attributes": "Attributes",
  "sync_akeneo.firstImport.steps.categories": "Categories",
  "sync_akeneo.firstImport.steps.products": "Products",
  "sync_akeneo.firstImport.title": "Run the first full import",
  "sync_akeneo.links.auth": "Akeneo authentication docs",
  "sync_akeneo.links.pagination": "Akeneo pagination docs",
  "sync_akeneo.mapping.addRow": "Add row",
  "sync_akeneo.mapping.akeneoChannel": "Akeneo channel",
  "sync_akeneo.mapping.categoryLocale": "Category label locale",
  "sync_akeneo.mapping.channelPlaceholder": "Optional",
  "sync_akeneo.mapping.createMissingChannels": "Create missing Open Mercato sales channels from Akeneo scopes by default",
  "sync_akeneo.mapping.customFields": "Custom field mappings",
  "sync_akeneo.mapping.customFields.autoCreate": "Running the Akeneo product import also creates any missing mapped fields automatically. Use the manual action only when you want to provision them before the first import.",
  "sync_akeneo.mapping.customFields.createMissing": "Pre-create missing fields",
  "sync_akeneo.mapping.customFields.creating": "Creating...",
  "sync_akeneo.mapping.customFields.editor": "Open editor",
  "sync_akeneo.mapping.customFields.help": "One mapping per line: attribute_code,target(product|variant),field_key[,kind][,skip]. After valid Akeneo credentials are saved, Open Mercato discovers mappings automatically: variant axes stay as product options, and other relevant Akeneo attributes are auto-mapped as custom fields unless you override them here. Use the editor skip checkbox when an Akeneo attribute should be ignored entirely. Product imports create or update missing Open Mercato custom field definitions automatically and store the Akeneo metadata, validation rules, and groups on those fields.",
  "sync_akeneo.mapping.customFields.missing": "{count} missing locally",
  "sync_akeneo.mapping.customFields.ready": "All mapped fields already exist",
  "sync_akeneo.mapping.customFields.skipped": "{count} skipped",
  "sync_akeneo.mapping.customFields.total": "{count} mapped",
  "sync_akeneo.mapping.emptyFieldsets": "No family fieldset mappings discovered yet. Save credentials and use Refresh discovery to generate them.",
  "sync_akeneo.mapping.emptyMedia": "No media mappings configured yet.",
  "sync_akeneo.mapping.emptyPrices": "No price mappings configured yet.",
  "sync_akeneo.mapping.familyFilter": "Attribute sync family filter",
  "sync_akeneo.mapping.familyFilter.help": "Leave empty to sync family-driven schemas for all Akeneo families.",
  "sync_akeneo.mapping.familyFilterPlaceholder": "family_a, family_b",
  "sync_akeneo.mapping.fieldsetCode": "Fieldset code",
  "sync_akeneo.mapping.fieldsetDescription": "Description",
  "sync_akeneo.mapping.fieldsetLabel": "Fieldset label",
  "sync_akeneo.mapping.fieldsets": "Family to fieldset mappings",
  "sync_akeneo.mapping.fieldsets.help": "Discovered Akeneo families become Open Mercato fieldsets automatically. Adjust the fieldset code, label, or description here, and add manual family-variant rows when a specific Akeneo family variant should use a different variant fieldset.",
  "sync_akeneo.mapping.from": "From",
  "sync_akeneo.mapping.heading": "Field mapping",
  "sync_akeneo.mapping.help": "Mappings are discovered automatically from the saved Akeneo credentials. Use refresh discovery to pull the latest Akeneo metadata and add any missing mappings without deleting your existing overrides.",
  "sync_akeneo.mapping.importChannels": "Imported Akeneo channels",
  "sync_akeneo.mapping.importChannels.all": "Import all Akeneo channels",
  "sync_akeneo.mapping.importChannels.help": "Choose which Akeneo channels should be imported for channel-scoped data like offers and prices. Locale stays single-select.",
  "sync_akeneo.mapping.includeNumeric": "Include numeric and metric attributes in generated family schemas",
  "sync_akeneo.mapping.includeText": "Include text attributes in generated family schemas",
  "sync_akeneo.mapping.localChannel": "Open Mercato channel",
  "sync_akeneo.mapping.localChannelPlaceholder": "Select Open Mercato channel",
  "sync_akeneo.mapping.media": "Media and attachment mappings",
  "sync_akeneo.mapping.media.help": "One mapping per line: attribute_code,target(product|variant),kind(image|file). Image mappings are re-hosted into Open Mercato attachments and can become default media; file mappings are imported as attachments.",
  "sync_akeneo.mapping.mediaKinds.file": "File",
  "sync_akeneo.mapping.mediaKinds.image": "Image",
  "sync_akeneo.mapping.priceKind": "Price kind",
  "sync_akeneo.mapping.priceKindPlaceholder": "Select price kind",
  "sync_akeneo.mapping.prices": "Price and offer mappings",
  "sync_akeneo.mapping.prices.help": "One mapping per line: price_attribute,price_kind_code,akeneo_channel,local_channel_code. Each distinct local channel creates or updates an offer, and each price collection entry becomes a Catalog Product Price in the matching currency.",
  "sync_akeneo.mapping.productChannel": "Primary content channel",
  "sync_akeneo.mapping.productChannel.help": "This single Akeneo channel is used for base product content, custom fields, media, and variant labels when attributes are channel-scoped.",
  "sync_akeneo.mapping.productLocale": "Product locale",
  "sync_akeneo.mapping.productLocale.help": "Only this Akeneo locale is imported into the base Open Mercato fields for now. Other locales are ignored until translation import is added.",
  "sync_akeneo.mapping.reconciliation.help": "These cleanup rules apply during full syncs. Incremental syncs continue to upsert changed records, while stale Akeneo-managed offers, prices, and media are reconciled per product on every product import.",
  "sync_akeneo.mapping.reconciliation.title": "Reconciliation and deletions",
  "sync_akeneo.mapping.refresh": "Refresh discovery",
  "sync_akeneo.mapping.save": "Save mappings",
  "sync_akeneo.mapping.saving": "Saving...",
  "sync_akeneo.mapping.sourceCode": "Akeneo code",
  "sync_akeneo.mapping.sourceType": "Source type",
  "sync_akeneo.mapping.sourceType.family": "Family",
  "sync_akeneo.mapping.sourceType.familyVariant": "Family variant",
  "sync_akeneo.mapping.syncAssociations": "Import Akeneo associations into product/variant relation records",
  "sync_akeneo.saved": "Akeneo sync settings saved.",
  "sync_akeneo.setup.credentials.step1": "In Akeneo, open Settings -> Connections and create a new API connection or connected app for Open Mercato.",
  "sync_akeneo.setup.credentials.step2": "Copy the Akeneo base URL, client id, and client secret into the Integration credentials tab in Open Mercato.",
  "sync_akeneo.setup.credentials.step3": "Create a dedicated Akeneo API user, assign it to the right catalog permissions, and use that username/password in the credential form.",
  "sync_akeneo.setup.credentials.step4": "Grant the API user access to products, categories, attributes, families, family variants, locales, and channels. Limit write permissions if you only import.",
  "sync_akeneo.setup.credentials.title": "Create API credentials in Akeneo",
  "sync_akeneo.setup.docs.note1": "Akeneo authentication uses client id, client secret, username, and password. Open Mercato exchanges those for access/refresh tokens automatically.",
  "sync_akeneo.setup.docs.note2": "For large catalogs, keep batch sizes at 100 and prefer incremental product syncs. The importer resumes from the last processed Akeneo updated timestamp plus search_after pagination state.",
  "sync_akeneo.setup.docs.note3": "Simple Akeneo products still create a default Open Mercato variant. Variant Akeneo products flatten the full Akeneo product-model tree into one configurable product plus child variants.",
  "sync_akeneo.setup.docs.note4": "If you want channel offers and prices, create matching Sales Channels and Catalog Price Kinds in Open Mercato first, then reference their codes in the mapping blocks below.",
  "sync_akeneo.setup.docs.title": "Operational notes",
  "sync_akeneo.setup.heading": "Akeneo API setup",
  "sync_akeneo.setup.order.message": "Run category sync first, attribute sync second, and product sync last. Product import expects local categories and family-based schemas to exist already.",
  "sync_akeneo.setup.order.title": "Recommended sync order",
  "sync_akeneo.setup.scheduleTab": "Run once and recurring schedules now live in the dedicated Sync schedules tab, shared by all data sync integrations.",
  "sync_akeneo.tabs.settings": "Akeneo sync settings",
  "sync_akeneo.title": "Akeneo PIM"
}
