From 93fc19cb7bffa58a759a5d89f489d7d4d9d64e1f Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Thu, 7 Aug 2025 11:55:37 -0400 Subject: [PATCH 01/28] New translations en-us.json (French) --- .../server/email-service/locales/fr-FR.json | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 src/lib/server/email-service/locales/fr-FR.json diff --git a/src/lib/server/email-service/locales/fr-FR.json b/src/lib/server/email-service/locales/fr-FR.json new file mode 100644 index 0000000000..ca171b0f13 --- /dev/null +++ b/src/lib/server/email-service/locales/fr-FR.json @@ -0,0 +1,140 @@ +{ + "notifications": { + "body": { + "log": "Log", + "userTaskAdded": "

Dear {{to}}:

A new task has been assigned to you by Scriptoria.

{{activityName}} for {{productName}} - {{project}} by {{originator}}.

Comment: {{comment}}

", + "buildengineDisconnected": "

Build Engine URL {{url}} disconnected for {{minutes}} minutes

", + "projectFailedBuildEngine": "

Failed to create project {{projectName}}. Could not connect to build engine for organization {{orgName}}.

", + "projectFailedUnableToCreate": "

Failed to create project {{projectName}} at build engine.

", + "projectCreatedSuccessfully": "

Project {{projectName}} creation completed successfully

", + "projectCreationFailedOwner": "

Project {{projectName}} creation failed.

Status: {{projectStatus}}

The organization administrator has been notified of this issue

", + "projectCreationFailedAdmin": "

Project {{projectName}} creation failed.

Status: {{projectStatus}}

", + "projectRecordNotFound": "

Project Create Failed: Unable to find project record with id: {{projectId}}

", + "projectUpdateComplete": "

Update of project {{projectName}} completed successfully

", + "projectUpdateFailed": "

Update of project {{projectName}} failed.
Build engine project id: {{buildEngineProjectId}}
Status: {{status}}
Result: {{result}}

", + "projectUpdateFailedBuildEngine": "

Failed to update project {{projectName}}. Could not connect to build engine for organization {{orgName}}

", + "buildFailedUnableToConnect": "

Failed to create build for product: {{productName}} project: {{projectName}}.

Unable to connect to build engine.

", + "buildFailedUnableToCreate": "

Failed to create build for product: {{productName}} project: {{projectName}}.

Retries exceeded for attempt to create build on build machine.

", + "buildCompletedSuccessfully": "

Build for product: {{productName}} project: {{projectName}} completed successfully

", + "buildFailedOwner": "

Build for product: {{productName}} project {{projectName}} failed.

Project URL: {{projectUrl}}

The organization administrator has been notified of this issue

", + "buildFailedAdmin": "

Build for product: {{productName}} project {{projectName}} failed.

Project URL: {{projectUrl}}

Diagnostic information for Super Admins:

", + "buildProductRecordNotFound": "

Build Failed: Unable to find product record with id: {{productId}}

", + "productFailedUnableToConnect": "

Failed to create product: {{productName}} project: {{projectName}}.

Unable to connect to build engine.

", + "productProjectUrlNotSet": "

Failed to create product: {{productName}} project: {{projectName}}.

Workflow Project URL not set so product creation was not attempted.

", + "productCreatedSuccessfully": "

Product {{productName}} project {{projectName}} creation completed successfully

", + "productCreationFailedOwner": "

Exceeded retries attempting to create product: {{productName}} project {{projectName}}.

The organization administrator has been notified of this issue.", + "productCreationFailedAdmin": "

Exceeded retries attempting to create product: {{productName}} project {{projectName}}.

", + "productRecordNotFound": "

Product Creation Failed: Unable to find product record with id: {{productId}}

", + "releaseFailedUnableToConnect": "

Failed to create release for product: {{productName}} project: {{projectName}}.

Unable to connect to build engine.

", + "releaseFailedUnableToCreate": "

Failed to create release for product: {{productName}} project: {{projectName}}.

Retries exceeded for attempt to create release on build machine.

", + "releaseCompletedSuccessfully": "

Release for product: {{productName}} project: {{projectName}} completed successfully

", + "releaseFailedOwner": "

Publish for product: {{productName}} project {{projectName}} failed.

Project URL: {{projectUrl}}

The organization administrator has been notified of this issue.

", + "releaseFailedAdmin": "

Publish for product: {{productName}} project {{projectName}} failed.

Project URL: {{projectUrl}}

Diagnostic information for Super Admins:

", + "releaseProductRecordNotFound": "

Release Failed: Unable to find product record with id: {{productId}}

", + "reviewOwnerPrefix": "

{{ownerName}},

The following message was sent to the these reviewers:
{{reviewerNames}}


", + "reviewProduct": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
apk
play-listing

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "reviewProductWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
apk
play-listing

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "reviewProductNoPlayListing": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
apk

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "reviewProductNoPlayListingWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
apk

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "reviewAssetPackage": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
asset-preview

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "reviewAssetPackageWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
asset-preview

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "reviewPwaProduct": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
pwa

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "reviewPwaProductWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
pwa

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "rejectionEmail": "

The organization administrator has returned {{projectName}} to state {{newState}} from state {{previousState}} with the following comment:

{{comment}}

", + "recordNotFound": "

Task {{taskName}} Failed: Unable to find record:

" + }, + "subject": { + "userTaskAdded": "Scriptoria: {{activityName}} Assigned For {{productName}} - {{project}}", + "buildengineDisconnected": "Scriptoria: {{url}} Build Engine Disconnected", + "projectFailedBuildEngine": "Scriptoria: Create Project {{projectName}} Failed", + "projectFailedUnableToCreate": "Scriptoria: Create Project {{projectName}} Failed", + "projectCreatedSuccessfully": "Scriptoria: {{projectName}} Create Success", + "projectCreationFailedOwner": "Scriptoria: Create Project {{projectName}} Failed", + "projectCreationFailedAdmin": "Scriptoria: Create Project {{projectName}} Failed", + "projectRecordNotFound": "Scriptoria: Create Project {{projectId}} Failed", + "projectUpdateComplete": "Scriptoria: {{projectName}} Update Success", + "projectUpdateFailed": "Scriptoria: Update Project {{projectName}} Failed", + "projectUpdateFailedBuildEngine": "Scriptoria: Update Project {{projectName}} Failed", + "buildFailedUnableToConnect": "Scriptoria: Build {{projectName}} {{productName}} Failed", + "buildFailedUnableToCreate": "Scriptoria: Build {{projectName}} {{productName}} Failed", + "buildCompletedSuccessfully": "Scriptoria: Build {{projectName}} {{productName}} Successful", + "buildFailedOwner": "Scriptoria: Build {{projectName}} {{productName}} Failed", + "buildFailedAdmin": "Scriptoria: Build {{projectName}} {{productName}} Failed", + "buildProductRecordNotFound": "Scriptoria: Build Failed: Product {{productId}}", + "productFailedUnableToConnect": "Scriptoria: Create Product {{projectName}} {{productName}} Failed", + "productProjectUrlNotSet": "Scriptoria: Create Product {{projectName}} {{productName}} Failed", + "productCreatedSuccessfully": "Scriptoria: {{projectName}} {{productName}} Create Success", + "productCreationFailedOwner": "Scriptoria: Create Product {{projectName}} {{productName}} Failed", + "productCreationFailedAdmin": "Scriptoria: Create Product {{projectName}} {{productName}} Failed", + "productRecordNotFound": "Scriptoria: Create Product Failed: Product {{productId}}", + "releaseFailedUnableToConnect": "Scriptoria: Release {{projectName}} {{productName}} Failed", + "releaseFailedUnableToCreate": "Scriptoria: Release {{projectName}} {{productName}} Failed", + "releaseCompletedSuccessfully": "Scriptoria: Release {{projectName}} {{productName}} Successful", + "releaseFailedOwner": "Scriptoria: Publish {{projectName}} {{productName}} Failed", + "releaseFailedAdmin": "Scriptoria: Publish {{projectName}} {{productName}} Failed", + "releaseProductRecordNotFound": "Scriptoria: Release Failed: Product {{productId}}", + "reviewProduct": "{{projectName}} app - ready for review", + "reviewProductWithComment": "{{projectName}} app - ready for review", + "reviewProductNoPlayListing": "{{projectName}} app - ready for review", + "reviewProductNoPlayListingWithComment": "{{projectName}} app - ready for review", + "reviewAssetPackage": "{{projectName}} app - ready for review", + "reviewAssetPackageWithComment": "{{projectName}} app - ready for review", + "reviewPwaProduct": "{{projectName}} app - ready for review", + "reviewPwaProductWithComment": "{{projectName}} app - ready for review", + "rejectionEmail": "Scriptoria: {{projectName}} {{productName}} Returned", + "recordNotFound": "Scriptoria: Task {{taskName}} Failed" + }, + "notification": { + "userTaskAdded": "Task {{activityName}} assigned for {{productName}} - {{project}}.", + "buildengineDisconnected": "Build Engine URL {{url}} disconnected for {{minutes}} minutes", + "projectFailedBuildEngine": "Failed to create project {{projectName}}. Could not connect to build engine for organization {{orgName}}.", + "projectFailedUnableToCreate": "Failed to create project {{projectName}} at build engine.", + "projectCreatedSuccessfully": "Project {{projectName}} creation completed successfully.", + "projectCreationFailedOwner": "Project {{projectName}} creation failed. Status: {{projectStatus}} The organization administrator has been notified of this issue.", + "projectCreationFailedAdmin": "Project {{projectName}} creation failed. Status: {{projectStatus}} Review status at build engine {{buildEngineUrl}} for details", + "projectRecordNotFound": "Project Create Failed: Unable to find project record with id: {{projectId}}", + "projectUpdateComplete": "Update of project {{projectName}} completed successfully", + "projectUpdateFailed": "Update of project {{projectName}} failed. Build engine project id: {{buildEngineProjectId}} Status: {{status}} Result: {{result}}", + "projectUpdateFailedBuildEngine": "Failed to update project {{projectName}}. Could not connect to build engine for organization {{orgName}}", + "buildFailedUnableToConnect": "Failed to create build for product: {{productName}} project: {{projectName}}. Unable to connect to build engine.", + "buildFailedUnableToCreate": "Failed to create build for product: {{productName}} project: {{projectName}}. Retries exceeded for attempt to create build on build machine.", + "buildCompletedSuccessfully": "Build for product: {{productName}} project: {{projectName}} completed successfully", + "buildFailedOwner": "Build for product {{productName}} project {{projectName}} failed. The organization administrator has been notified of this issue.", + "buildFailedAdmin": "Build for product {{productName}} project {{projectName}} failed. Review logs in email for details.", + "buildProductRecordNotFound": "Build Failed: Unable to find product record with id: {{productId}}", + "productFailedUnableToConnect": "Failed to create product: {{productName}} project: {{projectName}}. Unable to connect to build engine.", + "productProjectUrlNotSet": "Failed to create product: {{productName}} project: {{projectName}}. Workflow Project URL not set so product creation was not attempted.", + "productCreatedSuccessfully": "Product {{productName}} project {{projectName}} creation completed successfully", + "productCreationFailedOwner": "Exceeded retries attempting to create product: {{productName}} project {{projectName}}. The organization administrator has been notified of this issue", + "productCreationFailedAdmin": "Exceeded retries attempting to create product: {{productName}} project {{projectName}}. Review status at build engine {{buildEngineUrl}} for details", + "productRecordNotFound": "Product Creation Failed: Unable to find product record with id: {{productId}}", + "releaseFailedUnableToConnect": "Failed to create release for product: {{productName}} project: {{projectName}}. Unable to connect to build engine.", + "releaseFailedUnableToCreate": "Failed to create release for product: {{productName}} project: {{projectName}}. Retries exceeded for attempt to create release on build machine.", + "releaseCompletedSuccessfully": "Release for product: {{productName}} project: {{projectName}} completed successfully", + "releaseFailedOwner": "Publish for product {{productName}} project {{projectName}} failed. The organization administrator has been notified of this issue.", + "releaseFailedAdmin": "Publish for product {{productName}} project {{projectName}} failed. Review logs in email for details.", + "releaseProductRecordNotFound": "Release Failed: Unable to find product record with id: {{productId}}" + } + }, + "organizationInvites": { + "subject": "[Scriptoria] Organization Invite Request" + }, + "organizationMembershipInvites": { + "subject": "You are invited to join {{organizationName}} at Scriptoria" + }, + "importProject": { + "subject": "[Scriptoria] Project Import Report", + "title": "Project Import Completed", + "propertiesHeader": "Properties", + "outputHeader": "Output", + "Owner": "Owner", + "Group": "Group", + "Organization": "Organization", + "Application Type": "Application Type", + "property": "{{name}}: {{value}}", + "newProject": "New Project: Id={{projectId}}, Name={{projectName}}", + "existingProject": "Existing Project: Id={{projectId}}, Name={{projectName}}", + "newProduct": "New Product: ProjectId={{projectId}}, Name={{productDefinitionName}}, Store={{storeName}}", + "existingProduct": "Existing Product: ProjectId={{projectId}}, Name={{productDefinitionName}}, Store={{storeName}}" + } +} From 365c5c07a3f746138c41a3f4acc51619d39a97b6 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Thu, 7 Aug 2025 11:55:38 -0400 Subject: [PATCH 02/28] New translations en-us.json (Spanish, Latin American) --- .../server/email-service/locales/es-419.json | 140 ++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 src/lib/server/email-service/locales/es-419.json diff --git a/src/lib/server/email-service/locales/es-419.json b/src/lib/server/email-service/locales/es-419.json new file mode 100644 index 0000000000..ca171b0f13 --- /dev/null +++ b/src/lib/server/email-service/locales/es-419.json @@ -0,0 +1,140 @@ +{ + "notifications": { + "body": { + "log": "Log", + "userTaskAdded": "

Dear {{to}}:

A new task has been assigned to you by Scriptoria.

{{activityName}} for {{productName}} - {{project}} by {{originator}}.

Comment: {{comment}}

", + "buildengineDisconnected": "

Build Engine URL {{url}} disconnected for {{minutes}} minutes

", + "projectFailedBuildEngine": "

Failed to create project {{projectName}}. Could not connect to build engine for organization {{orgName}}.

", + "projectFailedUnableToCreate": "

Failed to create project {{projectName}} at build engine.

", + "projectCreatedSuccessfully": "

Project {{projectName}} creation completed successfully

", + "projectCreationFailedOwner": "

Project {{projectName}} creation failed.

Status: {{projectStatus}}

The organization administrator has been notified of this issue

", + "projectCreationFailedAdmin": "

Project {{projectName}} creation failed.

Status: {{projectStatus}}

", + "projectRecordNotFound": "

Project Create Failed: Unable to find project record with id: {{projectId}}

", + "projectUpdateComplete": "

Update of project {{projectName}} completed successfully

", + "projectUpdateFailed": "

Update of project {{projectName}} failed.
Build engine project id: {{buildEngineProjectId}}
Status: {{status}}
Result: {{result}}

", + "projectUpdateFailedBuildEngine": "

Failed to update project {{projectName}}. Could not connect to build engine for organization {{orgName}}

", + "buildFailedUnableToConnect": "

Failed to create build for product: {{productName}} project: {{projectName}}.

Unable to connect to build engine.

", + "buildFailedUnableToCreate": "

Failed to create build for product: {{productName}} project: {{projectName}}.

Retries exceeded for attempt to create build on build machine.

", + "buildCompletedSuccessfully": "

Build for product: {{productName}} project: {{projectName}} completed successfully

", + "buildFailedOwner": "

Build for product: {{productName}} project {{projectName}} failed.

Project URL: {{projectUrl}}

The organization administrator has been notified of this issue

", + "buildFailedAdmin": "

Build for product: {{productName}} project {{projectName}} failed.

Project URL: {{projectUrl}}

Diagnostic information for Super Admins:

", + "buildProductRecordNotFound": "

Build Failed: Unable to find product record with id: {{productId}}

", + "productFailedUnableToConnect": "

Failed to create product: {{productName}} project: {{projectName}}.

Unable to connect to build engine.

", + "productProjectUrlNotSet": "

Failed to create product: {{productName}} project: {{projectName}}.

Workflow Project URL not set so product creation was not attempted.

", + "productCreatedSuccessfully": "

Product {{productName}} project {{projectName}} creation completed successfully

", + "productCreationFailedOwner": "

Exceeded retries attempting to create product: {{productName}} project {{projectName}}.

The organization administrator has been notified of this issue.", + "productCreationFailedAdmin": "

Exceeded retries attempting to create product: {{productName}} project {{projectName}}.

", + "productRecordNotFound": "

Product Creation Failed: Unable to find product record with id: {{productId}}

", + "releaseFailedUnableToConnect": "

Failed to create release for product: {{productName}} project: {{projectName}}.

Unable to connect to build engine.

", + "releaseFailedUnableToCreate": "

Failed to create release for product: {{productName}} project: {{projectName}}.

Retries exceeded for attempt to create release on build machine.

", + "releaseCompletedSuccessfully": "

Release for product: {{productName}} project: {{projectName}} completed successfully

", + "releaseFailedOwner": "

Publish for product: {{productName}} project {{projectName}} failed.

Project URL: {{projectUrl}}

The organization administrator has been notified of this issue.

", + "releaseFailedAdmin": "

Publish for product: {{productName}} project {{projectName}} failed.

Project URL: {{projectUrl}}

Diagnostic information for Super Admins:

", + "releaseProductRecordNotFound": "

Release Failed: Unable to find product record with id: {{productId}}

", + "reviewOwnerPrefix": "

{{ownerName}},

The following message was sent to the these reviewers:
{{reviewerNames}}


", + "reviewProduct": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
apk
play-listing

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "reviewProductWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
apk
play-listing

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "reviewProductNoPlayListing": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
apk

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "reviewProductNoPlayListingWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
apk

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "reviewAssetPackage": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
asset-preview

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "reviewAssetPackageWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
asset-preview

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "reviewPwaProduct": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
pwa

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "reviewPwaProductWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
pwa

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "rejectionEmail": "

The organization administrator has returned {{projectName}} to state {{newState}} from state {{previousState}} with the following comment:

{{comment}}

", + "recordNotFound": "

Task {{taskName}} Failed: Unable to find record:

" + }, + "subject": { + "userTaskAdded": "Scriptoria: {{activityName}} Assigned For {{productName}} - {{project}}", + "buildengineDisconnected": "Scriptoria: {{url}} Build Engine Disconnected", + "projectFailedBuildEngine": "Scriptoria: Create Project {{projectName}} Failed", + "projectFailedUnableToCreate": "Scriptoria: Create Project {{projectName}} Failed", + "projectCreatedSuccessfully": "Scriptoria: {{projectName}} Create Success", + "projectCreationFailedOwner": "Scriptoria: Create Project {{projectName}} Failed", + "projectCreationFailedAdmin": "Scriptoria: Create Project {{projectName}} Failed", + "projectRecordNotFound": "Scriptoria: Create Project {{projectId}} Failed", + "projectUpdateComplete": "Scriptoria: {{projectName}} Update Success", + "projectUpdateFailed": "Scriptoria: Update Project {{projectName}} Failed", + "projectUpdateFailedBuildEngine": "Scriptoria: Update Project {{projectName}} Failed", + "buildFailedUnableToConnect": "Scriptoria: Build {{projectName}} {{productName}} Failed", + "buildFailedUnableToCreate": "Scriptoria: Build {{projectName}} {{productName}} Failed", + "buildCompletedSuccessfully": "Scriptoria: Build {{projectName}} {{productName}} Successful", + "buildFailedOwner": "Scriptoria: Build {{projectName}} {{productName}} Failed", + "buildFailedAdmin": "Scriptoria: Build {{projectName}} {{productName}} Failed", + "buildProductRecordNotFound": "Scriptoria: Build Failed: Product {{productId}}", + "productFailedUnableToConnect": "Scriptoria: Create Product {{projectName}} {{productName}} Failed", + "productProjectUrlNotSet": "Scriptoria: Create Product {{projectName}} {{productName}} Failed", + "productCreatedSuccessfully": "Scriptoria: {{projectName}} {{productName}} Create Success", + "productCreationFailedOwner": "Scriptoria: Create Product {{projectName}} {{productName}} Failed", + "productCreationFailedAdmin": "Scriptoria: Create Product {{projectName}} {{productName}} Failed", + "productRecordNotFound": "Scriptoria: Create Product Failed: Product {{productId}}", + "releaseFailedUnableToConnect": "Scriptoria: Release {{projectName}} {{productName}} Failed", + "releaseFailedUnableToCreate": "Scriptoria: Release {{projectName}} {{productName}} Failed", + "releaseCompletedSuccessfully": "Scriptoria: Release {{projectName}} {{productName}} Successful", + "releaseFailedOwner": "Scriptoria: Publish {{projectName}} {{productName}} Failed", + "releaseFailedAdmin": "Scriptoria: Publish {{projectName}} {{productName}} Failed", + "releaseProductRecordNotFound": "Scriptoria: Release Failed: Product {{productId}}", + "reviewProduct": "{{projectName}} app - ready for review", + "reviewProductWithComment": "{{projectName}} app - ready for review", + "reviewProductNoPlayListing": "{{projectName}} app - ready for review", + "reviewProductNoPlayListingWithComment": "{{projectName}} app - ready for review", + "reviewAssetPackage": "{{projectName}} app - ready for review", + "reviewAssetPackageWithComment": "{{projectName}} app - ready for review", + "reviewPwaProduct": "{{projectName}} app - ready for review", + "reviewPwaProductWithComment": "{{projectName}} app - ready for review", + "rejectionEmail": "Scriptoria: {{projectName}} {{productName}} Returned", + "recordNotFound": "Scriptoria: Task {{taskName}} Failed" + }, + "notification": { + "userTaskAdded": "Task {{activityName}} assigned for {{productName}} - {{project}}.", + "buildengineDisconnected": "Build Engine URL {{url}} disconnected for {{minutes}} minutes", + "projectFailedBuildEngine": "Failed to create project {{projectName}}. Could not connect to build engine for organization {{orgName}}.", + "projectFailedUnableToCreate": "Failed to create project {{projectName}} at build engine.", + "projectCreatedSuccessfully": "Project {{projectName}} creation completed successfully.", + "projectCreationFailedOwner": "Project {{projectName}} creation failed. Status: {{projectStatus}} The organization administrator has been notified of this issue.", + "projectCreationFailedAdmin": "Project {{projectName}} creation failed. Status: {{projectStatus}} Review status at build engine {{buildEngineUrl}} for details", + "projectRecordNotFound": "Project Create Failed: Unable to find project record with id: {{projectId}}", + "projectUpdateComplete": "Update of project {{projectName}} completed successfully", + "projectUpdateFailed": "Update of project {{projectName}} failed. Build engine project id: {{buildEngineProjectId}} Status: {{status}} Result: {{result}}", + "projectUpdateFailedBuildEngine": "Failed to update project {{projectName}}. Could not connect to build engine for organization {{orgName}}", + "buildFailedUnableToConnect": "Failed to create build for product: {{productName}} project: {{projectName}}. Unable to connect to build engine.", + "buildFailedUnableToCreate": "Failed to create build for product: {{productName}} project: {{projectName}}. Retries exceeded for attempt to create build on build machine.", + "buildCompletedSuccessfully": "Build for product: {{productName}} project: {{projectName}} completed successfully", + "buildFailedOwner": "Build for product {{productName}} project {{projectName}} failed. The organization administrator has been notified of this issue.", + "buildFailedAdmin": "Build for product {{productName}} project {{projectName}} failed. Review logs in email for details.", + "buildProductRecordNotFound": "Build Failed: Unable to find product record with id: {{productId}}", + "productFailedUnableToConnect": "Failed to create product: {{productName}} project: {{projectName}}. Unable to connect to build engine.", + "productProjectUrlNotSet": "Failed to create product: {{productName}} project: {{projectName}}. Workflow Project URL not set so product creation was not attempted.", + "productCreatedSuccessfully": "Product {{productName}} project {{projectName}} creation completed successfully", + "productCreationFailedOwner": "Exceeded retries attempting to create product: {{productName}} project {{projectName}}. The organization administrator has been notified of this issue", + "productCreationFailedAdmin": "Exceeded retries attempting to create product: {{productName}} project {{projectName}}. Review status at build engine {{buildEngineUrl}} for details", + "productRecordNotFound": "Product Creation Failed: Unable to find product record with id: {{productId}}", + "releaseFailedUnableToConnect": "Failed to create release for product: {{productName}} project: {{projectName}}. Unable to connect to build engine.", + "releaseFailedUnableToCreate": "Failed to create release for product: {{productName}} project: {{projectName}}. Retries exceeded for attempt to create release on build machine.", + "releaseCompletedSuccessfully": "Release for product: {{productName}} project: {{projectName}} completed successfully", + "releaseFailedOwner": "Publish for product {{productName}} project {{projectName}} failed. The organization administrator has been notified of this issue.", + "releaseFailedAdmin": "Publish for product {{productName}} project {{projectName}} failed. Review logs in email for details.", + "releaseProductRecordNotFound": "Release Failed: Unable to find product record with id: {{productId}}" + } + }, + "organizationInvites": { + "subject": "[Scriptoria] Organization Invite Request" + }, + "organizationMembershipInvites": { + "subject": "You are invited to join {{organizationName}} at Scriptoria" + }, + "importProject": { + "subject": "[Scriptoria] Project Import Report", + "title": "Project Import Completed", + "propertiesHeader": "Properties", + "outputHeader": "Output", + "Owner": "Owner", + "Group": "Group", + "Organization": "Organization", + "Application Type": "Application Type", + "property": "{{name}}: {{value}}", + "newProject": "New Project: Id={{projectId}}, Name={{projectName}}", + "existingProject": "Existing Project: Id={{projectId}}, Name={{projectName}}", + "newProduct": "New Product: ProjectId={{projectId}}, Name={{productDefinitionName}}, Store={{storeName}}", + "existingProduct": "Existing Product: ProjectId={{projectId}}, Name={{productDefinitionName}}, Store={{storeName}}" + } +} From 5fc7036c6b27fec892f10f7b6d855556e13726d9 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Thu, 7 Aug 2025 11:55:39 -0400 Subject: [PATCH 03/28] New translations en-us.json (French) --- src/lib/locales/fr-FR.json | 575 +++++++++++++++++++++++++++++++++++++ 1 file changed, 575 insertions(+) create mode 100644 src/lib/locales/fr-FR.json diff --git a/src/lib/locales/fr-FR.json b/src/lib/locales/fr-FR.json new file mode 100644 index 0000000000..a5940cde2a --- /dev/null +++ b/src/lib/locales/fr-FR.json @@ -0,0 +1,575 @@ +{ + "appName": "Scriptoria", + "welcome": "Welcome to Scriptoria", + "about": "Scriptoria helps you publish your apps and keep them updated every time the App Builder software is improved. You provide the service with your app project data and it will build and publish the app to the Google Play store or a website.", + "contactUs": "Contact Us", + "exampleForm": "Example Form", + "updated": "Updated!", + "opensource": "Open Source", + "home": "Home", + "tabAppName": [ + { + "match": { + "count=0": "Scriptoria", + "count=*": "({count}) Scriptoria" + } + } + ], + "localePicker_code": "Code", + "localePicker_country": "Country", + "localePicker_other": "Other Names", + "localePicker_label": "Language", + "localePicker_placeholder": "Search by Language...", + "localePicker_region": [ + { + "declarations": [ + "input count", + "local countPlural = count: plural" + ], + "selectors": [ + "countPlural" + ], + "match": { + "countPlural=one": "Region", + "countPlural=other": "Regions" + } + } + ], + "localePicker_name": [ + { + "declarations": [ + "input count", + "local countPlural = count: plural" + ], + "selectors": [ + "countPlural" + ], + "match": { + "countPlural=one": "Name", + "countPlural=other": "Names" + } + } + ], + "localePicker_tag": [ + { + "declarations": [ + "input count", + "local countPlural = count: plural" + ], + "selectors": [ + "countPlural" + ], + "match": { + "countPlural=one": "Tag", + "countPlural=other": "Tags" + } + } + ], + "localePicker_variant": [ + { + "declarations": [ + "input count", + "local countPlural = count: plural" + ], + "selectors": [ + "countPlural" + ], + "match": { + "countPlural=one": "Variant", + "countPlural=other": "Variants" + } + } + ], + "localePicker_regionName": "Region Name", + "attributions_title": "Open Source Project used in Scriptoria", + "attributions_subtitle": "Libraries used by License", + "common_search": "Search", + "common_noResults": "No Results...", + "common_change": "Change", + "common_cancel": "Cancel", + "common_save": "Save", + "common_add": "Add", + "common_name": "Name", + "common_clickToEdit": "Click to edit", + "common_none": "None", + "common_abbreviation": "Abbreviation", + "common_general": "General Information", + "common_notAvailable": "Not Available", + "common_archive": "Archive", + "common_reactivate": "Reactivate", + "common_build": "Build / Rebuild", + "common_rebuild": "Rebuild / Republish", + "common_updated": "Updated", + "common_continue": "Continue", + "common_error": "Error", + "common_workflow": "Workflow", + "common_default": "Default", + "common_total": "Total {total}", + "common_delete": "Delete", + "common_clear": "Clear", + "common_close": "close", + "common_or": "or", + "models_add": "Add {name}", + "models_edit": "Edit {name}", + "models_save": "Save {name}", + "models_delete": "Delete {name}", + "models_createSuccess": "{name} was successfully created!", + "models_updateSuccess": "{name} was successfully updated!", + "deletePrompt_warning": "• If a product is deleted, all related information about it, including the latest version code and paths to published files, will also be deleted.
• Deleting the specified product can't be undone.", + "deletePrompt_warningIfPublished": "This product has been successfully published. If the product is deleted, it could break features in the published app.
• If the BUILD_SHARE_DOWNLOAD_APP_LINK Publishing Property was set, then an Android app will have a link to the Universal APK which will fail to download.
• If the product type is an Asset Package, then a container app with a link to the package will fail to download it.", + "deletePrompt_prompt": "Delete {product} for project {project}?", + "deletePrompt_label": "To confirm deletion, type {sentinel} in the text input field", + "auth_title": "Scriptoria", + "auth_login": "Login", + "auth_loginNewSession": "Login with a different account", + "directory_title": [ + { + "match": { + "numProjects=0": "Project Directory", + "numProjects=*": "Project Directory ({numProjects})" + } + } + ], + "directory_searchHelp": "This allows you to search over:
• Project Name
• Project Language
• Owner Name
• Organization Name
• Group Name", + "header_myProfile": "My Profile", + "header_community": "Community", + "header_help": "Help", + "header_signOut": "Sign out", + "sidebar_myTasks": [ + { + "match": { + "count=0": "My Tasks", + "count=*": "My Tasks ({count})" + } + } + ], + "sidebar_myProjects": "My Projects", + "sidebar_activeProjects": "Active Projects", + "sidebar_orgProjects": "Organization Projects", + "sidebar_users": "Users", + "sidebar_orgSettings": "Organization Settings", + "sidebar_adminSettings": "Admin", + "sidebar_projectDirectory": "Project Directory", + "sidebar_addProject": "Add Project", + "sidebar_jobAdministration": "Job Administration", + "invitations_orgPrompt": "Like to sign up your organization?", + "invitations_missingTokenTitle": "Your invitation token is missing", + "invitations_missingTokenPrompt": "Please check the link and try again", + "invitations_orgInviteTitle": "You have been invited to create an organization!", + "invitations_orgName": "Organization Name", + "invitations_orgUrl": "Organization Website URL", + "invitations_orgSubmit": "Add Organization", + "invitations_requestOrgInvite": "Request Organization Invite", + "invitations_orgAdminEmail": "Organization Admin Email", + "newOrganization_title": "Add organization", + "org_title": "Organizations", + "org_add": "Add Organization", + "org_addSuccess": "Organization added", + "org_edit": "Edit Organization", + "org_editSuccess": "Organization updated", + "org_owner": "Owner", + "org_emptyOwner": "Need to select an owner for this organization", + "org_websiteURL": "Website URL", + "org_allOrganizations": "All Organizations", + "org_createSuccess": "Organization created successfully!", + "org_settingsTitle": "Organization Settings", + "org_navBasic": "Basic Info", + "org_navProducts": "Products & Publishing", + "org_navStores": "Stores", + "org_navGroups": "Groups", + "org_navInfrastructure": "Infrastructure", + "org_basicTitle": "Basic Info", + "org_name": "Organization Name", + "org_logoURL": "Logo URL", + "org_logoURL_note": "Note: For optimal quality use a square image", + "org_productsTitle": "Products and Publishing", + "org_publicByDefault": "Public By Default", + "org_publicByDefaultDescription": "Projects created under this organization are set to public by default", + "org_makePrivateTitle": "Make Projects Public by Default", + "org_makePrivateDescription": "\n When a new project is created, it will be defaulted to Public.\n (Private projects cannot be viewed by anyone outside of your organization)", + "org_productSelectTitle": "Select all the products you would like to make available to your organization", + "org_noproducts": "No products available", + "org_storesTitle": "Stores", + "org_storeSelectTitle": "Select all the stores you would like to make available to your organization", + "org_nostores": "No stores available", + "org_abbreviationError": "Abbreviation cannot be empty", + "org_groupCreated": "Group created", + "org_groupEdited": "Group edited", + "org_groupDeleted": "Group deleted", + "org_groupHasProjects": "{group} is associated with at least one project and could not be deleted", + "org_groupsTitle": "Groups", + "org_noGroups": "Your organization has no groups", + "org_addGroupButton": "Add Group", + "org_infrastructureTitle": "Infrastructure", + "org_useDefaultBuildEngine": "Use Default Build Engine", + "org_buildEngineURL": "Build Engine URL", + "org_accessToken": "Build Engine API Access Token", + "org_emptyBuildEngineURL": "A URL must be provided when not using the Default Build Engine", + "org_emptyAccessToken": "An API token must be provided when not using the Default Build Engine", + "products_definition": "Useful files that result from a series of steps.", + "products_storeSelect": "Select a store for {name}", + "products_noStoresAvailable": "There are no stores available for the selected product. Please contact your organization administrator.", + "products_acts_executed": "{actionName} was successfully executed.", + "products_acts_cancelled": "{actionName} was successfully cancelled.", + "products_acts_rebuild": "Rebuild", + "products_acts_republish": "Republish", + "products_acts_cancel": "Cancel", + "products_acts_noneAvailable": "No actions are currently available for this product.", + "products_acts_bulkNotAllAllowed": "Not all of the selected projects' products can have the {action} action(s) applied.", + "products_acts_dispatched": "The {action} action has been dispatched.", + "products_acts_properties": "Properties", + "products_files_title": "Product Files", + "products_title": "Products", + "products_empty": "You have no products for this project.", + "products_add": "Add Products", + "products_remove": "Remove Products", + "products_addTitle": "Select Product to Add", + "products_removeTitle": "Select Product to Remove", + "products_details": "Details", + "publications_channel": "Channel", + "publications_status": "Status", + "publications_date": "Publish Date", + "publications_url": "Publish Url", + "publications_succeeded": "Success", + "publications_failed": "Failure", + "publications_console": "Console Text", + "products_options_update": "update", + "products_options_publish": "publish", + "transitions_productDetails": "Product Details", + "transitions_storeName": "Store Name", + "transitions_state": "State", + "transitions_user": "User", + "transitions_command": "Command", + "transitions_comment": "Comment", + "transitions_date": "Date", + "transitions_types": [ + { + "match": { + "type=1": "Activity", + "type=2": "{workflowType} Workflow Started", + "type=3": "{workflowType} Workflow Completed", + "type=4": "{workflowType} Workflow Cancelled", + "type=5": "{workflowType} Project Access", + "type=6": "Workflow Migration" + } + } + ], + "products_properties_computeType": "Compute Type", + "products_properties_selectComputeType": "Select compute type", + "products_properties_small": "Small", + "products_properties_medium": "Medium", + "products_properties_title": "Publishing Properties", + "products_updated": "Updated", + "products_size": "Size", + "products_filename": "Filename", + "products_published": "Published", + "products_unpublished": "Unpublished", + "products_numArtifacts": [ + { + "declarations": [ + "local countPlural = amount: plural" + ], + "selectors": [ + "countPlural" + ], + "match": { + "amount=0": "No Product Files", + "countPlural=one": "{amount} Product File", + "countPlural=other": "{amount} Product Files" + } + } + ], + "products_rebuild": "rebuild", + "products_creationInProgress": "Pending: You cannot add a product until the project setup has been completed.", + "profile_title": "Profile", + "profile_pictureTitle": "Profile Picture", + "profile_general": "General", + "profile_generalInformation": "General Information", + "profile_updated": "Profile updated successfully!", + "profile_firstName": "First name", + "profile_lastName": "Last name", + "profile_name": "Display Name", + "profile_email": "Email", + "profile_phone": "Phone", + "profile_location": "Location", + "profile_timezone": "Timezone", + "profile_locale": "Locale", + "profile_timezonePlaceholder": "Select your timezone...", + "profile_notificationSettingsTitle": "Notification Settings", + "profile_optOutOfEmailOption": "I want to receive email notifications", + "profile_visibleProfile": "Profile visibility", + "profile_noPhone": "no phone added", + "profile_noTimezone": "(GMT-0)", + "profile_visibility_visible": "My profile information is publicly viewable", + "profile_visibility_restricted": "My profile information is restricted from the public", + "user_addedTo": "{user} added to {name}", + "user_removedFrom": "{user} removed from {name}", + "user_ownsProjectsInGroup": "{user} owns at least one project associated with {group} and could not be removed.", + "errors_generic": "An error occurred! {errorMessage}", + "errors_requiredField": "The {field} is required, but has no value", + "errors_notAuthorized": "You must login. This could be due to a prior login expiring.", + "errors_notFoundTitle": "Not Found!", + "errors_notFoundDescription": "Something went wrong and the page or resource could not be found!", + "errors_groupRequired": "You must be a member of at least one group.", + "errors_userForbidden": "An error occurred: Forbidden. Please contact your organization administrator.", + "errors_friendlyForbidden": "You are not allowed to do that. Please contact your organization administrator", + "errors_forbiddenForAllOrgs": "You are not allowed to do that. Please select an organization", + "errors_notAMemberOfOrg": "You are not a member of that organization", + "errors_notactiveUser": "User is not Active", + "errors_notactiveUserText": "\n This user is currently set to not active.\n
\n Please contact your organization administrator to discuss the reason for the status change.\n ", + "errors_orgMembershipRequired": "Organization Membership is Required", + "errors_orgMembershipRequiredText": "\n In order to use Scriptoria, you must be a member of at least one organization.\n
\n Please contact your organization administrator to discuss receiving an invite to\n an organization on Scriptoria.\n ", + "errors_orgMembershipChanged": "Organization Membership has Changed", + "errors_orgMembershipChangedText": "\n Your organization membership has changed.\n
\n This can take a few moments to process. Please sign out, wait a minute, and then sign in again for the change to take effect.\n ", + "errors_orgMustBeSelected": "An organization must be selected to view this page", + "errors_verifyEmailTitle": "Please verify your email address", + "errors_verifyEmailDescription": "\n In order to use Scriptoria, we need you to verify your email address.\n
\n Please log into your email and clik the verification link. ", + "errors_invalidProjectSelection": "No valid products available for selected project(s)", + "errors_appUnavailable": "Scriptoria is currently unavailable", + "tasks_title": "My Tasks", + "tasks_project": "Project", + "tasks_product": "Product", + "tasks_assignedTo": "Assigned To", + "tasks_status": "Status", + "tasks_waitTime": "Wait Time", + "tasks_unclaimed": "[unclaimed]", + "tasks_noTasksTitle": "No tasks are assigned to you.", + "tasks_noTasksDescription": "Tasks that require your attention will appear here.", + "tasks_reassign": "Reassign", + "tasks_waiting": "Waiting {waitTime}", + "tasks_forNames": "for {allowedNames} to {activityName}", + "tasks_archivedAt": "Archived at {activityName}", + "tasks_scriptoria": "Scriptoria", + "tasks_storeLanguage": "Store Listing Language", + "tasks_appProjectURL": "App Project URL", + "tasks_downloadURL": "Download URL", + "projects_noBuilds": "No Builds Yet", + "projects_latestBuild": "Latest Build ({version})", + "projects_buildPending": "Build Pending", + "projects_buildFailed": "Build Failed", + "projects_filter_org": "Organization Projects", + "projects_filter_own": "My Projects", + "projects_filter_active": "Active Projects", + "projects_filter_archived": "Archived Projects", + "projects_filter_all": "All Projects", + "projects_bulk_buildModal_title": "Perform Bulk Rebuild/Republish", + "filters_allProdDefs": "All projects that contain...", + "filters_org_label": "Filter organization", + "filters_dateRange": "Last Updated Date Between", + "projectImport_title": "Import Projects", + "projectImport_help": "Import Projects Help", + "projectImport_file": "Import JSON File", + "projectImport_success": "Project Import successfully created. You will receive an email when the import is completed.", + "project_title": "Project", + "project_orgContact": "Organization Contact", + "project_owner": "Project Owner", + "project_claimOwnership": "Claim Ownership", + "project_claimSuccess": "Succesfully Claimed", + "project_editProject": "Edit Project", + "project_newProject": "New Project", + "project_name": "Project Name", + "project_noAvailableGroups": "There are no available groups for the selected organization", + "project_description": "Description", + "project_group": "Project Group", + "project_languageCode": "Language Code", + "project_type": "Type", + "project_public": "Public", + "project_private": "Private", + "project_visibilityLabel": "Public", + "project_visibilityDescription": "If you make your project Private, it will not be visible in the directory or accessible by other organizations", + "project_createdOn": "Created", + "project_archivedOn": "Archived", + "project_overview": "Overview", + "project_productFiles": "Product files", + "project_dropdown_transfer": "Transfer Ownership", + "project_dropdown_archive": "Archive", + "project_dropdown_reactivate": "Reactivate", + "project_dropdown_build": "Build", + "project_details_title": "Details", + "project_details_language": "Language", + "project_details_type": "Project Type", + "project_settings_title": "Settings", + "project_autoRebuild_title": "Automatic Rebuilds", + "project_autoRebuild_description": "When automatic rebuilds are on, Scriptoria will automatically rebuild your products when the input source is updated", + "project_orgDownloads_title": "Allow Other Organizations to download", + "project_orgDownloads_description": "When this setting is on, any Scriptoria User that is able to view your project in the Directory will be able to download the Product Files (the outputs of the products).", + "project_visibility_title": "Public Visibility", + "project_visibility_description": "Public Projects allow any Scriptoria User to view your project in the Directory", + "project_location": "Repository Location", + "project_org": "Organization", + "authors_title": "Authors", + "authors_submit": "Add Author", + "authors_empty": "No authors", + "authors_emptyGroup": "No authors in group", + "reviewers_title": "Reviewers", + "reviewers_submit": "Add Reviewer", + "reviewers_empty": "No reviewers", + "formErrors_nameEmpty": "Name cannot be empty", + "formErrors_emailEmpty": "Email cannot be empty", + "formErrors_emailInvalid": "Invalid email address", + "project_acts_archive_success": "Project archived", + "project_acts_archive_error": "There was an error trying to archive the project", + "project_acts_reactivate_success": "Project reactivated", + "project_acts_reactivate_error": "There was an error trying to reactivate the project", + "project_acts_autoBuilds_on": "Automatic builds is ON", + "project_acts_autoBuilds_off": "Automatic builds is OFF", + "project_acts_autoBuilds_error": "Error: We could not change automatic build status", + "project_acts_downloads_on": "Allow project download is ON", + "project_acts_downloads_off": "Allow project download is OFF", + "project_acts_downloads_error": "Error: We could not change Allow Download status", + "project_acts_isPublic_on": "Project visibility is set to Public", + "project_acts_isPublic_off": "Project visibility is set to Private", + "project_acts_isPublic_error": "Error: We could not change Project visibility", + "projectTable_project": "Project", + "projectTable_owner": "Owner", + "projectTable_org": "Organization", + "projectTable_language": "Language", + "projectTable_group": "Group", + "projectTable_buildVersion": "Build Version", + "projectTable_buildDate": "Build Date", + "projectTable_createdOn": "Created On", + "projectTable_updatedOn": "Updated On", + "projectTable_archivedOn": "Archived On", + "projectTable_activeSince": "Active Since", + "projectTable_empty": "No projects found", + "projectTable_products": "Products", + "projectTable_noProducts": "This project has no configured products", + "users_settingsTitle": "User Settings", + "users_userProfile": "User Profile", + "users_userGroups": "Group Memberships", + "users_userRoles": "Organization Roles", + "users_noneFound": "No users matching the selected criteria were found.", + "users_noRoles": "No roles assigned", + "users_roles": [ + { + "match": { + "role=1": "Super Admin", + "role=2": "Organization Admin", + "role=3": "App Builder", + "role=4": "Author" + } + } + ], + "users_title": "Manage Users", + "users_table_name": "Name", + "users_table_role": "Role", + "users_table_groups": "Groups", + "users_table_active": "Active", + "users_acts_lock_success": "User is locked. A locked user will not be able to log in to Scriptoria.", + "users_acts_lock_error": "There was an error locking the user", + "users_acts_unlock_success": "User is active. The user will now be able to log in to Scriptoria.", + "users_acts_unlock_error": "there was an error activating the user", + "stores_name": "Store", + "stores_listTitle": "Stores", + "stores_attributes_name": "Name", + "stores_attributes_description": "Description", + "storeTypes_listTitle": "Store Types", + "admin_title": "Admin settings", + "admin_nav_orgs": "Organizations", + "admin_nav_flowDefs": "Workflow Definitions", + "admin_nav_prodDefs": "Product Definitions", + "admin_nav_storeTypes": "Store Types", + "admin_nav_stores": "Stores", + "admin_nav_buildEngines": "Build Engine Statuses", + "flowDefs_title": "Workflow Definitions", + "flowDefs_name": "Workflow Definition Name", + "flowDefs_description": "Description", + "flowDefs_scheme": "Workflow Scheme", + "flowDefs_businessFlow": "Workflow Business Flow", + "flowDefs_properties": "Properties", + "flowDefs_add": "Add Workflow Definition", + "flowDefs_edit": "Edit Workflow Definition", + "flowDefs_storeType": "Store Type", + "flowDefs_enabled": "Enabled", + "flowDefs_enabledDescription": "Workflow definitions may not be used until enabled.", + "flowDefs_added": "Workflow Definition added", + "flowDefs_updated": "Workflow Definition updated", + "flowDefs_emptyStoreType": "Need to select a store type for this workflow definition", + "flowDefs_emptyType": "Need to select a workflow type for this workflow definition", + "flowDefs_emptyProductType": "Need to select a product type for this workflow definition", + "flowDefs_type": "Workflow Type", + "flowDefs_types": [ + { + "match": { + "type=1": "Startup", + "type=2": "Rebuild", + "type=3": "Republish" + } + } + ], + "flowDefs_productType": "Product Type", + "flowDefs_productTypes": [ + { + "match": { + "type=0": "Android GooglePlay", + "type=1": "Android S3", + "type=2": "Asset Package", + "type=3": "Web" + } + } + ], + "flowDefs_options_title": "Options", + "flowDefs_options": [ + { + "match": { + "option=1": "Require an organization admin to access the GooglePlay developer console.", + "option=2": "Require approval by an organization admin before product is created.", + "option=3": "Allow project owner to delegate configuration and product uploads to authors." + } + } + ], + "prodDefs_title": "Product Definitions", + "prodDefs_name": "Product definition Name", + "prodDefs_add": "Add Product Definition", + "prodDefs_edit": "Edit Product Definition", + "prodDefs_description": "Description", + "prodDefs_properties": "Properties", + "prodDefs_type": "Application Type", + "prodDefs_flow": "Workflow", + "prodDefs_republishFlow": "Republish Workflow", + "prodDefs_rebuildFlow": "Rebuild Workflow", + "prodDefs_addSuccess": "Product Definition added", + "prodDefs_editSuccess": "Product Definition updated", + "prodDefs_emptyType": "Need to select an Application Type", + "prodDefs_emptyFlow": "Need to select a Workflow definition", + "prodDefs_noFlow": "No Workflow Required", + "stores_emptyStoreType": "Need to select a store type for this store", + "storeTypes_title": "Store Types", + "storeTypes_name": "Store Type Name", + "storeTypes_add": "Add Store Type", + "storeTypes_edit": "Edit Store Type", + "storeTypes_description": "Description", + "storeTypes_type": "Application Type", + "storeTypes_flow": "Workflow", + "storeTypes_addSuccess": "Store Type added", + "storeTypes_editSuccess": "Store Type updated", + "storeTypes_emptyType": "Need to select an Application Type", + "storeTypes_emptyFlow": "Need to select a Workflow definition", + "buildEngines_title": "Build Engine Statuses", + "buildEngines_accessToken": "Build Engine API Access Token", + "buildEngines_websiteURL": "Website URL", + "buildEngines_connected": "Connected", + "buildEngines_disconnected": "Disconnected", + "buildEngines_status": "Status", + "buildEngines_lastUpdated": "Last update", + "workflowInstances_title": "Workflow Instances", + "workflowInstances_empty": "No workflow instances found", + "workflowInstances_jump": "Jump State to {state}", + "orgMembership_expired": "Invitation has expired", + "orgMembership_redeemed": "Invitation has already been redeemed", + "orgMembership_notFound": "Invitation was not found", + "orgMembership_unexpected": "Unexpected error occured: {response}", + "orgMembership_invalid": "We've received an invalid response... please refresh the page to try again.", + "orgMembership_success": "Invite sent to {email}.", + "orgMembership_error": "Error occured while trying to invite user.", + "orgMembership_title": "Invite User", + "orgMembership_email": "Enter email address", + "orgMembership_send": "Send Invite", + "orgMembership_rolesAndGroups": "Assigned Roles and Groups", + "orgMembership_joined": "Organization joined!", + "orgMembership_returnToDashboard": "Go to dashboard", + "system_buildFailed": "Build failed", + "system_publishFailed": "Publish failed", + "system_unavailable": "Scriptoria is currently unable to process background tasks", + "downloads_title": "Downloads" +} From 21073f99b6639d57af72e180e93efb31bb0ce9d1 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Thu, 7 Aug 2025 11:55:40 -0400 Subject: [PATCH 04/28] New translations en-us.json (Spanish, Latin American) --- src/lib/locales/es-419.json | 575 ++++++++++++++++++++++++++++++++++++ 1 file changed, 575 insertions(+) create mode 100644 src/lib/locales/es-419.json diff --git a/src/lib/locales/es-419.json b/src/lib/locales/es-419.json new file mode 100644 index 0000000000..a5940cde2a --- /dev/null +++ b/src/lib/locales/es-419.json @@ -0,0 +1,575 @@ +{ + "appName": "Scriptoria", + "welcome": "Welcome to Scriptoria", + "about": "Scriptoria helps you publish your apps and keep them updated every time the App Builder software is improved. You provide the service with your app project data and it will build and publish the app to the Google Play store or a website.", + "contactUs": "Contact Us", + "exampleForm": "Example Form", + "updated": "Updated!", + "opensource": "Open Source", + "home": "Home", + "tabAppName": [ + { + "match": { + "count=0": "Scriptoria", + "count=*": "({count}) Scriptoria" + } + } + ], + "localePicker_code": "Code", + "localePicker_country": "Country", + "localePicker_other": "Other Names", + "localePicker_label": "Language", + "localePicker_placeholder": "Search by Language...", + "localePicker_region": [ + { + "declarations": [ + "input count", + "local countPlural = count: plural" + ], + "selectors": [ + "countPlural" + ], + "match": { + "countPlural=one": "Region", + "countPlural=other": "Regions" + } + } + ], + "localePicker_name": [ + { + "declarations": [ + "input count", + "local countPlural = count: plural" + ], + "selectors": [ + "countPlural" + ], + "match": { + "countPlural=one": "Name", + "countPlural=other": "Names" + } + } + ], + "localePicker_tag": [ + { + "declarations": [ + "input count", + "local countPlural = count: plural" + ], + "selectors": [ + "countPlural" + ], + "match": { + "countPlural=one": "Tag", + "countPlural=other": "Tags" + } + } + ], + "localePicker_variant": [ + { + "declarations": [ + "input count", + "local countPlural = count: plural" + ], + "selectors": [ + "countPlural" + ], + "match": { + "countPlural=one": "Variant", + "countPlural=other": "Variants" + } + } + ], + "localePicker_regionName": "Region Name", + "attributions_title": "Open Source Project used in Scriptoria", + "attributions_subtitle": "Libraries used by License", + "common_search": "Search", + "common_noResults": "No Results...", + "common_change": "Change", + "common_cancel": "Cancel", + "common_save": "Save", + "common_add": "Add", + "common_name": "Name", + "common_clickToEdit": "Click to edit", + "common_none": "None", + "common_abbreviation": "Abbreviation", + "common_general": "General Information", + "common_notAvailable": "Not Available", + "common_archive": "Archive", + "common_reactivate": "Reactivate", + "common_build": "Build / Rebuild", + "common_rebuild": "Rebuild / Republish", + "common_updated": "Updated", + "common_continue": "Continue", + "common_error": "Error", + "common_workflow": "Workflow", + "common_default": "Default", + "common_total": "Total {total}", + "common_delete": "Delete", + "common_clear": "Clear", + "common_close": "close", + "common_or": "or", + "models_add": "Add {name}", + "models_edit": "Edit {name}", + "models_save": "Save {name}", + "models_delete": "Delete {name}", + "models_createSuccess": "{name} was successfully created!", + "models_updateSuccess": "{name} was successfully updated!", + "deletePrompt_warning": "• If a product is deleted, all related information about it, including the latest version code and paths to published files, will also be deleted.
• Deleting the specified product can't be undone.", + "deletePrompt_warningIfPublished": "This product has been successfully published. If the product is deleted, it could break features in the published app.
• If the BUILD_SHARE_DOWNLOAD_APP_LINK Publishing Property was set, then an Android app will have a link to the Universal APK which will fail to download.
• If the product type is an Asset Package, then a container app with a link to the package will fail to download it.", + "deletePrompt_prompt": "Delete {product} for project {project}?", + "deletePrompt_label": "To confirm deletion, type {sentinel} in the text input field", + "auth_title": "Scriptoria", + "auth_login": "Login", + "auth_loginNewSession": "Login with a different account", + "directory_title": [ + { + "match": { + "numProjects=0": "Project Directory", + "numProjects=*": "Project Directory ({numProjects})" + } + } + ], + "directory_searchHelp": "This allows you to search over:
• Project Name
• Project Language
• Owner Name
• Organization Name
• Group Name", + "header_myProfile": "My Profile", + "header_community": "Community", + "header_help": "Help", + "header_signOut": "Sign out", + "sidebar_myTasks": [ + { + "match": { + "count=0": "My Tasks", + "count=*": "My Tasks ({count})" + } + } + ], + "sidebar_myProjects": "My Projects", + "sidebar_activeProjects": "Active Projects", + "sidebar_orgProjects": "Organization Projects", + "sidebar_users": "Users", + "sidebar_orgSettings": "Organization Settings", + "sidebar_adminSettings": "Admin", + "sidebar_projectDirectory": "Project Directory", + "sidebar_addProject": "Add Project", + "sidebar_jobAdministration": "Job Administration", + "invitations_orgPrompt": "Like to sign up your organization?", + "invitations_missingTokenTitle": "Your invitation token is missing", + "invitations_missingTokenPrompt": "Please check the link and try again", + "invitations_orgInviteTitle": "You have been invited to create an organization!", + "invitations_orgName": "Organization Name", + "invitations_orgUrl": "Organization Website URL", + "invitations_orgSubmit": "Add Organization", + "invitations_requestOrgInvite": "Request Organization Invite", + "invitations_orgAdminEmail": "Organization Admin Email", + "newOrganization_title": "Add organization", + "org_title": "Organizations", + "org_add": "Add Organization", + "org_addSuccess": "Organization added", + "org_edit": "Edit Organization", + "org_editSuccess": "Organization updated", + "org_owner": "Owner", + "org_emptyOwner": "Need to select an owner for this organization", + "org_websiteURL": "Website URL", + "org_allOrganizations": "All Organizations", + "org_createSuccess": "Organization created successfully!", + "org_settingsTitle": "Organization Settings", + "org_navBasic": "Basic Info", + "org_navProducts": "Products & Publishing", + "org_navStores": "Stores", + "org_navGroups": "Groups", + "org_navInfrastructure": "Infrastructure", + "org_basicTitle": "Basic Info", + "org_name": "Organization Name", + "org_logoURL": "Logo URL", + "org_logoURL_note": "Note: For optimal quality use a square image", + "org_productsTitle": "Products and Publishing", + "org_publicByDefault": "Public By Default", + "org_publicByDefaultDescription": "Projects created under this organization are set to public by default", + "org_makePrivateTitle": "Make Projects Public by Default", + "org_makePrivateDescription": "\n When a new project is created, it will be defaulted to Public.\n (Private projects cannot be viewed by anyone outside of your organization)", + "org_productSelectTitle": "Select all the products you would like to make available to your organization", + "org_noproducts": "No products available", + "org_storesTitle": "Stores", + "org_storeSelectTitle": "Select all the stores you would like to make available to your organization", + "org_nostores": "No stores available", + "org_abbreviationError": "Abbreviation cannot be empty", + "org_groupCreated": "Group created", + "org_groupEdited": "Group edited", + "org_groupDeleted": "Group deleted", + "org_groupHasProjects": "{group} is associated with at least one project and could not be deleted", + "org_groupsTitle": "Groups", + "org_noGroups": "Your organization has no groups", + "org_addGroupButton": "Add Group", + "org_infrastructureTitle": "Infrastructure", + "org_useDefaultBuildEngine": "Use Default Build Engine", + "org_buildEngineURL": "Build Engine URL", + "org_accessToken": "Build Engine API Access Token", + "org_emptyBuildEngineURL": "A URL must be provided when not using the Default Build Engine", + "org_emptyAccessToken": "An API token must be provided when not using the Default Build Engine", + "products_definition": "Useful files that result from a series of steps.", + "products_storeSelect": "Select a store for {name}", + "products_noStoresAvailable": "There are no stores available for the selected product. Please contact your organization administrator.", + "products_acts_executed": "{actionName} was successfully executed.", + "products_acts_cancelled": "{actionName} was successfully cancelled.", + "products_acts_rebuild": "Rebuild", + "products_acts_republish": "Republish", + "products_acts_cancel": "Cancel", + "products_acts_noneAvailable": "No actions are currently available for this product.", + "products_acts_bulkNotAllAllowed": "Not all of the selected projects' products can have the {action} action(s) applied.", + "products_acts_dispatched": "The {action} action has been dispatched.", + "products_acts_properties": "Properties", + "products_files_title": "Product Files", + "products_title": "Products", + "products_empty": "You have no products for this project.", + "products_add": "Add Products", + "products_remove": "Remove Products", + "products_addTitle": "Select Product to Add", + "products_removeTitle": "Select Product to Remove", + "products_details": "Details", + "publications_channel": "Channel", + "publications_status": "Status", + "publications_date": "Publish Date", + "publications_url": "Publish Url", + "publications_succeeded": "Success", + "publications_failed": "Failure", + "publications_console": "Console Text", + "products_options_update": "update", + "products_options_publish": "publish", + "transitions_productDetails": "Product Details", + "transitions_storeName": "Store Name", + "transitions_state": "State", + "transitions_user": "User", + "transitions_command": "Command", + "transitions_comment": "Comment", + "transitions_date": "Date", + "transitions_types": [ + { + "match": { + "type=1": "Activity", + "type=2": "{workflowType} Workflow Started", + "type=3": "{workflowType} Workflow Completed", + "type=4": "{workflowType} Workflow Cancelled", + "type=5": "{workflowType} Project Access", + "type=6": "Workflow Migration" + } + } + ], + "products_properties_computeType": "Compute Type", + "products_properties_selectComputeType": "Select compute type", + "products_properties_small": "Small", + "products_properties_medium": "Medium", + "products_properties_title": "Publishing Properties", + "products_updated": "Updated", + "products_size": "Size", + "products_filename": "Filename", + "products_published": "Published", + "products_unpublished": "Unpublished", + "products_numArtifacts": [ + { + "declarations": [ + "local countPlural = amount: plural" + ], + "selectors": [ + "countPlural" + ], + "match": { + "amount=0": "No Product Files", + "countPlural=one": "{amount} Product File", + "countPlural=other": "{amount} Product Files" + } + } + ], + "products_rebuild": "rebuild", + "products_creationInProgress": "Pending: You cannot add a product until the project setup has been completed.", + "profile_title": "Profile", + "profile_pictureTitle": "Profile Picture", + "profile_general": "General", + "profile_generalInformation": "General Information", + "profile_updated": "Profile updated successfully!", + "profile_firstName": "First name", + "profile_lastName": "Last name", + "profile_name": "Display Name", + "profile_email": "Email", + "profile_phone": "Phone", + "profile_location": "Location", + "profile_timezone": "Timezone", + "profile_locale": "Locale", + "profile_timezonePlaceholder": "Select your timezone...", + "profile_notificationSettingsTitle": "Notification Settings", + "profile_optOutOfEmailOption": "I want to receive email notifications", + "profile_visibleProfile": "Profile visibility", + "profile_noPhone": "no phone added", + "profile_noTimezone": "(GMT-0)", + "profile_visibility_visible": "My profile information is publicly viewable", + "profile_visibility_restricted": "My profile information is restricted from the public", + "user_addedTo": "{user} added to {name}", + "user_removedFrom": "{user} removed from {name}", + "user_ownsProjectsInGroup": "{user} owns at least one project associated with {group} and could not be removed.", + "errors_generic": "An error occurred! {errorMessage}", + "errors_requiredField": "The {field} is required, but has no value", + "errors_notAuthorized": "You must login. This could be due to a prior login expiring.", + "errors_notFoundTitle": "Not Found!", + "errors_notFoundDescription": "Something went wrong and the page or resource could not be found!", + "errors_groupRequired": "You must be a member of at least one group.", + "errors_userForbidden": "An error occurred: Forbidden. Please contact your organization administrator.", + "errors_friendlyForbidden": "You are not allowed to do that. Please contact your organization administrator", + "errors_forbiddenForAllOrgs": "You are not allowed to do that. Please select an organization", + "errors_notAMemberOfOrg": "You are not a member of that organization", + "errors_notactiveUser": "User is not Active", + "errors_notactiveUserText": "\n This user is currently set to not active.\n
\n Please contact your organization administrator to discuss the reason for the status change.\n ", + "errors_orgMembershipRequired": "Organization Membership is Required", + "errors_orgMembershipRequiredText": "\n In order to use Scriptoria, you must be a member of at least one organization.\n
\n Please contact your organization administrator to discuss receiving an invite to\n an organization on Scriptoria.\n ", + "errors_orgMembershipChanged": "Organization Membership has Changed", + "errors_orgMembershipChangedText": "\n Your organization membership has changed.\n
\n This can take a few moments to process. Please sign out, wait a minute, and then sign in again for the change to take effect.\n ", + "errors_orgMustBeSelected": "An organization must be selected to view this page", + "errors_verifyEmailTitle": "Please verify your email address", + "errors_verifyEmailDescription": "\n In order to use Scriptoria, we need you to verify your email address.\n
\n Please log into your email and clik the verification link. ", + "errors_invalidProjectSelection": "No valid products available for selected project(s)", + "errors_appUnavailable": "Scriptoria is currently unavailable", + "tasks_title": "My Tasks", + "tasks_project": "Project", + "tasks_product": "Product", + "tasks_assignedTo": "Assigned To", + "tasks_status": "Status", + "tasks_waitTime": "Wait Time", + "tasks_unclaimed": "[unclaimed]", + "tasks_noTasksTitle": "No tasks are assigned to you.", + "tasks_noTasksDescription": "Tasks that require your attention will appear here.", + "tasks_reassign": "Reassign", + "tasks_waiting": "Waiting {waitTime}", + "tasks_forNames": "for {allowedNames} to {activityName}", + "tasks_archivedAt": "Archived at {activityName}", + "tasks_scriptoria": "Scriptoria", + "tasks_storeLanguage": "Store Listing Language", + "tasks_appProjectURL": "App Project URL", + "tasks_downloadURL": "Download URL", + "projects_noBuilds": "No Builds Yet", + "projects_latestBuild": "Latest Build ({version})", + "projects_buildPending": "Build Pending", + "projects_buildFailed": "Build Failed", + "projects_filter_org": "Organization Projects", + "projects_filter_own": "My Projects", + "projects_filter_active": "Active Projects", + "projects_filter_archived": "Archived Projects", + "projects_filter_all": "All Projects", + "projects_bulk_buildModal_title": "Perform Bulk Rebuild/Republish", + "filters_allProdDefs": "All projects that contain...", + "filters_org_label": "Filter organization", + "filters_dateRange": "Last Updated Date Between", + "projectImport_title": "Import Projects", + "projectImport_help": "Import Projects Help", + "projectImport_file": "Import JSON File", + "projectImport_success": "Project Import successfully created. You will receive an email when the import is completed.", + "project_title": "Project", + "project_orgContact": "Organization Contact", + "project_owner": "Project Owner", + "project_claimOwnership": "Claim Ownership", + "project_claimSuccess": "Succesfully Claimed", + "project_editProject": "Edit Project", + "project_newProject": "New Project", + "project_name": "Project Name", + "project_noAvailableGroups": "There are no available groups for the selected organization", + "project_description": "Description", + "project_group": "Project Group", + "project_languageCode": "Language Code", + "project_type": "Type", + "project_public": "Public", + "project_private": "Private", + "project_visibilityLabel": "Public", + "project_visibilityDescription": "If you make your project Private, it will not be visible in the directory or accessible by other organizations", + "project_createdOn": "Created", + "project_archivedOn": "Archived", + "project_overview": "Overview", + "project_productFiles": "Product files", + "project_dropdown_transfer": "Transfer Ownership", + "project_dropdown_archive": "Archive", + "project_dropdown_reactivate": "Reactivate", + "project_dropdown_build": "Build", + "project_details_title": "Details", + "project_details_language": "Language", + "project_details_type": "Project Type", + "project_settings_title": "Settings", + "project_autoRebuild_title": "Automatic Rebuilds", + "project_autoRebuild_description": "When automatic rebuilds are on, Scriptoria will automatically rebuild your products when the input source is updated", + "project_orgDownloads_title": "Allow Other Organizations to download", + "project_orgDownloads_description": "When this setting is on, any Scriptoria User that is able to view your project in the Directory will be able to download the Product Files (the outputs of the products).", + "project_visibility_title": "Public Visibility", + "project_visibility_description": "Public Projects allow any Scriptoria User to view your project in the Directory", + "project_location": "Repository Location", + "project_org": "Organization", + "authors_title": "Authors", + "authors_submit": "Add Author", + "authors_empty": "No authors", + "authors_emptyGroup": "No authors in group", + "reviewers_title": "Reviewers", + "reviewers_submit": "Add Reviewer", + "reviewers_empty": "No reviewers", + "formErrors_nameEmpty": "Name cannot be empty", + "formErrors_emailEmpty": "Email cannot be empty", + "formErrors_emailInvalid": "Invalid email address", + "project_acts_archive_success": "Project archived", + "project_acts_archive_error": "There was an error trying to archive the project", + "project_acts_reactivate_success": "Project reactivated", + "project_acts_reactivate_error": "There was an error trying to reactivate the project", + "project_acts_autoBuilds_on": "Automatic builds is ON", + "project_acts_autoBuilds_off": "Automatic builds is OFF", + "project_acts_autoBuilds_error": "Error: We could not change automatic build status", + "project_acts_downloads_on": "Allow project download is ON", + "project_acts_downloads_off": "Allow project download is OFF", + "project_acts_downloads_error": "Error: We could not change Allow Download status", + "project_acts_isPublic_on": "Project visibility is set to Public", + "project_acts_isPublic_off": "Project visibility is set to Private", + "project_acts_isPublic_error": "Error: We could not change Project visibility", + "projectTable_project": "Project", + "projectTable_owner": "Owner", + "projectTable_org": "Organization", + "projectTable_language": "Language", + "projectTable_group": "Group", + "projectTable_buildVersion": "Build Version", + "projectTable_buildDate": "Build Date", + "projectTable_createdOn": "Created On", + "projectTable_updatedOn": "Updated On", + "projectTable_archivedOn": "Archived On", + "projectTable_activeSince": "Active Since", + "projectTable_empty": "No projects found", + "projectTable_products": "Products", + "projectTable_noProducts": "This project has no configured products", + "users_settingsTitle": "User Settings", + "users_userProfile": "User Profile", + "users_userGroups": "Group Memberships", + "users_userRoles": "Organization Roles", + "users_noneFound": "No users matching the selected criteria were found.", + "users_noRoles": "No roles assigned", + "users_roles": [ + { + "match": { + "role=1": "Super Admin", + "role=2": "Organization Admin", + "role=3": "App Builder", + "role=4": "Author" + } + } + ], + "users_title": "Manage Users", + "users_table_name": "Name", + "users_table_role": "Role", + "users_table_groups": "Groups", + "users_table_active": "Active", + "users_acts_lock_success": "User is locked. A locked user will not be able to log in to Scriptoria.", + "users_acts_lock_error": "There was an error locking the user", + "users_acts_unlock_success": "User is active. The user will now be able to log in to Scriptoria.", + "users_acts_unlock_error": "there was an error activating the user", + "stores_name": "Store", + "stores_listTitle": "Stores", + "stores_attributes_name": "Name", + "stores_attributes_description": "Description", + "storeTypes_listTitle": "Store Types", + "admin_title": "Admin settings", + "admin_nav_orgs": "Organizations", + "admin_nav_flowDefs": "Workflow Definitions", + "admin_nav_prodDefs": "Product Definitions", + "admin_nav_storeTypes": "Store Types", + "admin_nav_stores": "Stores", + "admin_nav_buildEngines": "Build Engine Statuses", + "flowDefs_title": "Workflow Definitions", + "flowDefs_name": "Workflow Definition Name", + "flowDefs_description": "Description", + "flowDefs_scheme": "Workflow Scheme", + "flowDefs_businessFlow": "Workflow Business Flow", + "flowDefs_properties": "Properties", + "flowDefs_add": "Add Workflow Definition", + "flowDefs_edit": "Edit Workflow Definition", + "flowDefs_storeType": "Store Type", + "flowDefs_enabled": "Enabled", + "flowDefs_enabledDescription": "Workflow definitions may not be used until enabled.", + "flowDefs_added": "Workflow Definition added", + "flowDefs_updated": "Workflow Definition updated", + "flowDefs_emptyStoreType": "Need to select a store type for this workflow definition", + "flowDefs_emptyType": "Need to select a workflow type for this workflow definition", + "flowDefs_emptyProductType": "Need to select a product type for this workflow definition", + "flowDefs_type": "Workflow Type", + "flowDefs_types": [ + { + "match": { + "type=1": "Startup", + "type=2": "Rebuild", + "type=3": "Republish" + } + } + ], + "flowDefs_productType": "Product Type", + "flowDefs_productTypes": [ + { + "match": { + "type=0": "Android GooglePlay", + "type=1": "Android S3", + "type=2": "Asset Package", + "type=3": "Web" + } + } + ], + "flowDefs_options_title": "Options", + "flowDefs_options": [ + { + "match": { + "option=1": "Require an organization admin to access the GooglePlay developer console.", + "option=2": "Require approval by an organization admin before product is created.", + "option=3": "Allow project owner to delegate configuration and product uploads to authors." + } + } + ], + "prodDefs_title": "Product Definitions", + "prodDefs_name": "Product definition Name", + "prodDefs_add": "Add Product Definition", + "prodDefs_edit": "Edit Product Definition", + "prodDefs_description": "Description", + "prodDefs_properties": "Properties", + "prodDefs_type": "Application Type", + "prodDefs_flow": "Workflow", + "prodDefs_republishFlow": "Republish Workflow", + "prodDefs_rebuildFlow": "Rebuild Workflow", + "prodDefs_addSuccess": "Product Definition added", + "prodDefs_editSuccess": "Product Definition updated", + "prodDefs_emptyType": "Need to select an Application Type", + "prodDefs_emptyFlow": "Need to select a Workflow definition", + "prodDefs_noFlow": "No Workflow Required", + "stores_emptyStoreType": "Need to select a store type for this store", + "storeTypes_title": "Store Types", + "storeTypes_name": "Store Type Name", + "storeTypes_add": "Add Store Type", + "storeTypes_edit": "Edit Store Type", + "storeTypes_description": "Description", + "storeTypes_type": "Application Type", + "storeTypes_flow": "Workflow", + "storeTypes_addSuccess": "Store Type added", + "storeTypes_editSuccess": "Store Type updated", + "storeTypes_emptyType": "Need to select an Application Type", + "storeTypes_emptyFlow": "Need to select a Workflow definition", + "buildEngines_title": "Build Engine Statuses", + "buildEngines_accessToken": "Build Engine API Access Token", + "buildEngines_websiteURL": "Website URL", + "buildEngines_connected": "Connected", + "buildEngines_disconnected": "Disconnected", + "buildEngines_status": "Status", + "buildEngines_lastUpdated": "Last update", + "workflowInstances_title": "Workflow Instances", + "workflowInstances_empty": "No workflow instances found", + "workflowInstances_jump": "Jump State to {state}", + "orgMembership_expired": "Invitation has expired", + "orgMembership_redeemed": "Invitation has already been redeemed", + "orgMembership_notFound": "Invitation was not found", + "orgMembership_unexpected": "Unexpected error occured: {response}", + "orgMembership_invalid": "We've received an invalid response... please refresh the page to try again.", + "orgMembership_success": "Invite sent to {email}.", + "orgMembership_error": "Error occured while trying to invite user.", + "orgMembership_title": "Invite User", + "orgMembership_email": "Enter email address", + "orgMembership_send": "Send Invite", + "orgMembership_rolesAndGroups": "Assigned Roles and Groups", + "orgMembership_joined": "Organization joined!", + "orgMembership_returnToDashboard": "Go to dashboard", + "system_buildFailed": "Build failed", + "system_publishFailed": "Publish failed", + "system_unavailable": "Scriptoria is currently unable to process background tasks", + "downloads_title": "Downloads" +} From 800967091803f370abe99be576533a3d02167fb6 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Fri, 29 Aug 2025 15:47:04 -0400 Subject: [PATCH 05/28] New translations en-us.json (French) --- src/lib/locales/fr-FR.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/locales/fr-FR.json b/src/lib/locales/fr-FR.json index a5940cde2a..544ad31c47 100644 --- a/src/lib/locales/fr-FR.json +++ b/src/lib/locales/fr-FR.json @@ -396,6 +396,7 @@ "project_visibility_title": "Public Visibility", "project_visibility_description": "Public Projects allow any Scriptoria User to view your project in the Directory", "project_location": "Repository Location", + "project_location_placeholder": "Creating the repository...", "project_org": "Organization", "authors_title": "Authors", "authors_submit": "Add Author", @@ -572,4 +573,4 @@ "system_publishFailed": "Publish failed", "system_unavailable": "Scriptoria is currently unable to process background tasks", "downloads_title": "Downloads" -} +} \ No newline at end of file From be237c06f77b7cca7c1ad55f150c10b23db7b5d0 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Fri, 29 Aug 2025 15:47:05 -0400 Subject: [PATCH 06/28] New translations en-us.json (Spanish, Latin American) --- src/lib/locales/es-419.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/locales/es-419.json b/src/lib/locales/es-419.json index a5940cde2a..544ad31c47 100644 --- a/src/lib/locales/es-419.json +++ b/src/lib/locales/es-419.json @@ -396,6 +396,7 @@ "project_visibility_title": "Public Visibility", "project_visibility_description": "Public Projects allow any Scriptoria User to view your project in the Directory", "project_location": "Repository Location", + "project_location_placeholder": "Creating the repository...", "project_org": "Organization", "authors_title": "Authors", "authors_submit": "Add Author", @@ -572,4 +573,4 @@ "system_publishFailed": "Publish failed", "system_unavailable": "Scriptoria is currently unable to process background tasks", "downloads_title": "Downloads" -} +} \ No newline at end of file From ebce3c5b5eed6f2923c705a6f88d386148502543 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Thu, 4 Sep 2025 11:36:52 -0400 Subject: [PATCH 07/28] New translations en-us.json (French) --- src/lib/locales/fr-FR.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/locales/fr-FR.json b/src/lib/locales/fr-FR.json index 544ad31c47..c7b8baf41f 100644 --- a/src/lib/locales/fr-FR.json +++ b/src/lib/locales/fr-FR.json @@ -130,7 +130,7 @@ } } ], - "directory_searchHelp": "This allows you to search over:
• Project Name
• Project Language
• Owner Name
• Organization Name
• Group Name", + "directory_searchHelp": "This allows you to search over:
• Project Name
• Project Language
• Owner Name
• Organization Name
• Group Name
• Package Name", "header_myProfile": "My Profile", "header_community": "Community", "header_help": "Help", From 420e62798e5e9bae9c469e6062db9dacca233e48 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Thu, 4 Sep 2025 11:36:54 -0400 Subject: [PATCH 08/28] New translations en-us.json (Spanish, Latin American) --- src/lib/locales/es-419.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/locales/es-419.json b/src/lib/locales/es-419.json index 544ad31c47..c7b8baf41f 100644 --- a/src/lib/locales/es-419.json +++ b/src/lib/locales/es-419.json @@ -130,7 +130,7 @@ } } ], - "directory_searchHelp": "This allows you to search over:
• Project Name
• Project Language
• Owner Name
• Organization Name
• Group Name", + "directory_searchHelp": "This allows you to search over:
• Project Name
• Project Language
• Owner Name
• Organization Name
• Group Name
• Package Name", "header_myProfile": "My Profile", "header_community": "Community", "header_help": "Help", From 04b2e5fff8e900132177524e9ae68de540cd8fbb Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Tue, 9 Sep 2025 16:52:29 -0400 Subject: [PATCH 09/28] New translations en-us.json (French) --- src/lib/locales/fr-FR.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib/locales/fr-FR.json b/src/lib/locales/fr-FR.json index c7b8baf41f..5e6cb4c3c9 100644 --- a/src/lib/locales/fr-FR.json +++ b/src/lib/locales/fr-FR.json @@ -514,8 +514,7 @@ { "match": { "option=1": "Require an organization admin to access the GooglePlay developer console.", - "option=2": "Require approval by an organization admin before product is created.", - "option=3": "Allow project owner to delegate configuration and product uploads to authors." + "option=2": "Require approval by an organization admin before product is created." } } ], From 8bcf102685ffa5a6e912c05e38daebd48cafd2c4 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Tue, 9 Sep 2025 16:52:30 -0400 Subject: [PATCH 10/28] New translations en-us.json (Spanish, Latin American) --- src/lib/locales/es-419.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib/locales/es-419.json b/src/lib/locales/es-419.json index c7b8baf41f..5e6cb4c3c9 100644 --- a/src/lib/locales/es-419.json +++ b/src/lib/locales/es-419.json @@ -514,8 +514,7 @@ { "match": { "option=1": "Require an organization admin to access the GooglePlay developer console.", - "option=2": "Require approval by an organization admin before product is created.", - "option=3": "Allow project owner to delegate configuration and product uploads to authors." + "option=2": "Require approval by an organization admin before product is created." } } ], From 424b445f57b869276bbfe7bf60d2b43439b647c0 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Wed, 17 Sep 2025 11:16:37 -0500 Subject: [PATCH 11/28] New translations en-us.json (French) --- src/lib/locales/fr-FR.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib/locales/fr-FR.json b/src/lib/locales/fr-FR.json index 5e6cb4c3c9..ad3ce4a417 100644 --- a/src/lib/locales/fr-FR.json +++ b/src/lib/locales/fr-FR.json @@ -167,8 +167,6 @@ "org_addSuccess": "Organization added", "org_edit": "Edit Organization", "org_editSuccess": "Organization updated", - "org_owner": "Owner", - "org_emptyOwner": "Need to select an owner for this organization", "org_websiteURL": "Website URL", "org_allOrganizations": "All Organizations", "org_createSuccess": "Organization created successfully!", From 91d00f809f5911efe5943647070ec7d172302845 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Wed, 17 Sep 2025 11:16:38 -0500 Subject: [PATCH 12/28] New translations en-us.json (Spanish, Latin American) --- src/lib/locales/es-419.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib/locales/es-419.json b/src/lib/locales/es-419.json index 5e6cb4c3c9..ad3ce4a417 100644 --- a/src/lib/locales/es-419.json +++ b/src/lib/locales/es-419.json @@ -167,8 +167,6 @@ "org_addSuccess": "Organization added", "org_edit": "Edit Organization", "org_editSuccess": "Organization updated", - "org_owner": "Owner", - "org_emptyOwner": "Need to select an owner for this organization", "org_websiteURL": "Website URL", "org_allOrganizations": "All Organizations", "org_createSuccess": "Organization created successfully!", From fafd4113f21be8a8c0488b83f6cd040aaa65cd38 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Mon, 22 Sep 2025 20:16:29 -0500 Subject: [PATCH 13/28] New translations en-us.json (French) --- src/lib/locales/fr-FR.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/locales/fr-FR.json b/src/lib/locales/fr-FR.json index ad3ce4a417..6a1fa98751 100644 --- a/src/lib/locales/fr-FR.json +++ b/src/lib/locales/fr-FR.json @@ -341,6 +341,8 @@ "tasks_storeLanguage": "Store Listing Language", "tasks_appProjectURL": "App Project URL", "tasks_downloadURL": "Download URL", + "tasks_submitted": "{action} submitted", + "tasks_reloaded": "Task updated by Scriptoria", "projects_noBuilds": "No Builds Yet", "projects_latestBuild": "Latest Build ({version})", "projects_buildPending": "Build Pending", From 0b255cca5aefcbd458d890218ea63b1594f663f4 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Mon, 22 Sep 2025 20:16:30 -0500 Subject: [PATCH 14/28] New translations en-us.json (Spanish, Latin American) --- src/lib/locales/es-419.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/locales/es-419.json b/src/lib/locales/es-419.json index ad3ce4a417..6a1fa98751 100644 --- a/src/lib/locales/es-419.json +++ b/src/lib/locales/es-419.json @@ -341,6 +341,8 @@ "tasks_storeLanguage": "Store Listing Language", "tasks_appProjectURL": "App Project URL", "tasks_downloadURL": "Download URL", + "tasks_submitted": "{action} submitted", + "tasks_reloaded": "Task updated by Scriptoria", "projects_noBuilds": "No Builds Yet", "projects_latestBuild": "Latest Build ({version})", "projects_buildPending": "Build Pending", From 9e67fbb8b878ffd5a37ad4438f1e45f00179d7c3 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Tue, 7 Oct 2025 18:37:09 -0400 Subject: [PATCH 15/28] New translations en-us.json (French) --- src/lib/locales/fr-FR.json | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/locales/fr-FR.json b/src/lib/locales/fr-FR.json index 6a1fa98751..9187c1a0ce 100644 --- a/src/lib/locales/fr-FR.json +++ b/src/lib/locales/fr-FR.json @@ -354,7 +354,6 @@ "projects_filter_all": "All Projects", "projects_bulk_buildModal_title": "Perform Bulk Rebuild/Republish", "filters_allProdDefs": "All projects that contain...", - "filters_org_label": "Filter organization", "filters_dateRange": "Last Updated Date Between", "projectImport_title": "Import Projects", "projectImport_help": "Import Projects Help", From 127c24e6c0ca5d932fec0933694419b0c7b7c498 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Tue, 7 Oct 2025 18:37:10 -0400 Subject: [PATCH 16/28] New translations en-us.json (Spanish, Latin American) --- src/lib/locales/es-419.json | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/locales/es-419.json b/src/lib/locales/es-419.json index 6a1fa98751..9187c1a0ce 100644 --- a/src/lib/locales/es-419.json +++ b/src/lib/locales/es-419.json @@ -354,7 +354,6 @@ "projects_filter_all": "All Projects", "projects_bulk_buildModal_title": "Perform Bulk Rebuild/Republish", "filters_allProdDefs": "All projects that contain...", - "filters_org_label": "Filter organization", "filters_dateRange": "Last Updated Date Between", "projectImport_title": "Import Projects", "projectImport_help": "Import Projects Help", From 01ba04adf460e0884817fffe8725950ac047c6cb Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Fri, 10 Oct 2025 18:00:04 -0400 Subject: [PATCH 17/28] New translations en-us.json (French) --- src/lib/locales/fr-FR.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/locales/fr-FR.json b/src/lib/locales/fr-FR.json index 9187c1a0ce..cfe0a95e20 100644 --- a/src/lib/locales/fr-FR.json +++ b/src/lib/locales/fr-FR.json @@ -231,6 +231,8 @@ "publications_succeeded": "Success", "publications_failed": "Failure", "publications_console": "Console Text", + "publications_resolved": "Date Resolved", + "publications_results": "Publish Results", "products_options_update": "update", "products_options_publish": "publish", "transitions_productDetails": "Product Details", From 2a5c9c6626279c1951f6c50e8d2cb1343f2e595f Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Fri, 10 Oct 2025 18:00:06 -0400 Subject: [PATCH 18/28] New translations en-us.json (Spanish, Latin American) --- src/lib/locales/es-419.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/locales/es-419.json b/src/lib/locales/es-419.json index 9187c1a0ce..cfe0a95e20 100644 --- a/src/lib/locales/es-419.json +++ b/src/lib/locales/es-419.json @@ -231,6 +231,8 @@ "publications_succeeded": "Success", "publications_failed": "Failure", "publications_console": "Console Text", + "publications_resolved": "Date Resolved", + "publications_results": "Publish Results", "products_options_update": "update", "products_options_publish": "publish", "transitions_productDetails": "Product Details", From e0979a0ac59e286063e41d0865fa580a8a8255b7 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Thu, 23 Oct 2025 12:11:18 -0400 Subject: [PATCH 19/28] New translations en-us.json (French) --- src/lib/locales/fr-FR.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/locales/fr-FR.json b/src/lib/locales/fr-FR.json index cfe0a95e20..4cb4852bc7 100644 --- a/src/lib/locales/fr-FR.json +++ b/src/lib/locales/fr-FR.json @@ -429,6 +429,7 @@ "projectTable_group": "Group", "projectTable_buildVersion": "Build Version", "projectTable_buildDate": "Build Date", + "projectTable_appBuilderVersion": "AppBuilder Version", "projectTable_createdOn": "Created On", "projectTable_updatedOn": "Updated On", "projectTable_archivedOn": "Archived On", From ca378f3f8b943d182dae52aedcc56f81860a1c57 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Thu, 23 Oct 2025 12:11:19 -0400 Subject: [PATCH 20/28] New translations en-us.json (Spanish, Latin American) --- src/lib/locales/es-419.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/locales/es-419.json b/src/lib/locales/es-419.json index cfe0a95e20..4cb4852bc7 100644 --- a/src/lib/locales/es-419.json +++ b/src/lib/locales/es-419.json @@ -429,6 +429,7 @@ "projectTable_group": "Group", "projectTable_buildVersion": "Build Version", "projectTable_buildDate": "Build Date", + "projectTable_appBuilderVersion": "AppBuilder Version", "projectTable_createdOn": "Created On", "projectTable_updatedOn": "Updated On", "projectTable_archivedOn": "Archived On", From 95cabbea3819894736e7b2890f0d1dd4ea7f7624 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Wed, 5 Nov 2025 17:41:25 -0500 Subject: [PATCH 21/28] New translations en-us.json (French) --- src/lib/locales/fr-FR.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/locales/fr-FR.json b/src/lib/locales/fr-FR.json index 4cb4852bc7..1e10a66537 100644 --- a/src/lib/locales/fr-FR.json +++ b/src/lib/locales/fr-FR.json @@ -135,6 +135,7 @@ "header_community": "Community", "header_help": "Help", "header_signOut": "Sign out", + "header_impersonating": "Impersonating {user}", "sidebar_myTasks": [ { "match": { @@ -458,6 +459,7 @@ "users_table_role": "Role", "users_table_groups": "Groups", "users_table_active": "Active", + "users_table_impersonate": "Impersonate", "users_acts_lock_success": "User is locked. A locked user will not be able to log in to Scriptoria.", "users_acts_lock_error": "There was an error locking the user", "users_acts_unlock_success": "User is active. The user will now be able to log in to Scriptoria.", From a87c7f0118b070bbebb7c601a0aa8c344abc2f63 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Wed, 5 Nov 2025 17:41:26 -0500 Subject: [PATCH 22/28] New translations en-us.json (Spanish, Latin American) --- src/lib/locales/es-419.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/locales/es-419.json b/src/lib/locales/es-419.json index 4cb4852bc7..1e10a66537 100644 --- a/src/lib/locales/es-419.json +++ b/src/lib/locales/es-419.json @@ -135,6 +135,7 @@ "header_community": "Community", "header_help": "Help", "header_signOut": "Sign out", + "header_impersonating": "Impersonating {user}", "sidebar_myTasks": [ { "match": { @@ -458,6 +459,7 @@ "users_table_role": "Role", "users_table_groups": "Groups", "users_table_active": "Active", + "users_table_impersonate": "Impersonate", "users_acts_lock_success": "User is locked. A locked user will not be able to log in to Scriptoria.", "users_acts_lock_error": "There was an error locking the user", "users_acts_unlock_success": "User is active. The user will now be able to log in to Scriptoria.", From f31714764105a90c251ade91a1bc884ef0e41121 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Thu, 13 Nov 2025 12:21:20 -0500 Subject: [PATCH 23/28] New translations en-us.json (French) --- src/lib/locales/fr-FR.json | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/lib/locales/fr-FR.json b/src/lib/locales/fr-FR.json index 1e10a66537..67065aef7f 100644 --- a/src/lib/locales/fr-FR.json +++ b/src/lib/locales/fr-FR.json @@ -135,7 +135,6 @@ "header_community": "Community", "header_help": "Help", "header_signOut": "Sign out", - "header_impersonating": "Impersonating {user}", "sidebar_myTasks": [ { "match": { @@ -391,8 +390,12 @@ "project_details_language": "Language", "project_details_type": "Project Type", "project_settings_title": "Settings", - "project_autoRebuild_title": "Automatic Rebuilds", + "project_autoPublish_title": "Auto Publish on Rebuild", + "project_autoPublish_description": "When the rebuild workflow is run, skip verification and publish the app. Send a notification to owner and reviewers that the app was published without review.", + "project_autoRebuild_title": "Automatic Rebuild", "project_autoRebuild_description": "When automatic rebuilds are on, Scriptoria will automatically rebuild your products when the input source is updated", + "project_autoRebuild_on_update_title": "Rebuild on Software Update", + "project_autoRebuild_on_update_description": "When the App Builder software used by Scriptoria is updated, rebuild the products of the project that have completed the initial workflow and are not currently being rebuilt.", "project_orgDownloads_title": "Allow Other Organizations to download", "project_orgDownloads_description": "When this setting is on, any Scriptoria User that is able to view your project in the Directory will be able to download the Product Files (the outputs of the products).", "project_visibility_title": "Public Visibility", @@ -420,6 +423,9 @@ "project_acts_downloads_on": "Allow project download is ON", "project_acts_downloads_off": "Allow project download is OFF", "project_acts_downloads_error": "Error: We could not change Allow Download status", + "project_acts_autoPublish_on": "Auto Publish is ON", + "project_acts_autoPublish_off": "Auto Publish is OFF", + "project_acts_autoPublish_error": "Error: We could not change Auto Publish status", "project_acts_isPublic_on": "Project visibility is set to Public", "project_acts_isPublic_off": "Project visibility is set to Private", "project_acts_isPublic_error": "Error: We could not change Project visibility", @@ -459,7 +465,6 @@ "users_table_role": "Role", "users_table_groups": "Groups", "users_table_active": "Active", - "users_table_impersonate": "Impersonate", "users_acts_lock_success": "User is locked. A locked user will not be able to log in to Scriptoria.", "users_acts_lock_error": "There was an error locking the user", "users_acts_unlock_success": "User is active. The user will now be able to log in to Scriptoria.", @@ -576,4 +581,4 @@ "system_publishFailed": "Publish failed", "system_unavailable": "Scriptoria is currently unable to process background tasks", "downloads_title": "Downloads" -} \ No newline at end of file +} From 2fc7d47831b242514b4198aacc4cacdec449bfe3 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Thu, 13 Nov 2025 12:21:21 -0500 Subject: [PATCH 24/28] New translations en-us.json (Spanish, Latin American) --- src/lib/locales/es-419.json | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/lib/locales/es-419.json b/src/lib/locales/es-419.json index 1e10a66537..67065aef7f 100644 --- a/src/lib/locales/es-419.json +++ b/src/lib/locales/es-419.json @@ -135,7 +135,6 @@ "header_community": "Community", "header_help": "Help", "header_signOut": "Sign out", - "header_impersonating": "Impersonating {user}", "sidebar_myTasks": [ { "match": { @@ -391,8 +390,12 @@ "project_details_language": "Language", "project_details_type": "Project Type", "project_settings_title": "Settings", - "project_autoRebuild_title": "Automatic Rebuilds", + "project_autoPublish_title": "Auto Publish on Rebuild", + "project_autoPublish_description": "When the rebuild workflow is run, skip verification and publish the app. Send a notification to owner and reviewers that the app was published without review.", + "project_autoRebuild_title": "Automatic Rebuild", "project_autoRebuild_description": "When automatic rebuilds are on, Scriptoria will automatically rebuild your products when the input source is updated", + "project_autoRebuild_on_update_title": "Rebuild on Software Update", + "project_autoRebuild_on_update_description": "When the App Builder software used by Scriptoria is updated, rebuild the products of the project that have completed the initial workflow and are not currently being rebuilt.", "project_orgDownloads_title": "Allow Other Organizations to download", "project_orgDownloads_description": "When this setting is on, any Scriptoria User that is able to view your project in the Directory will be able to download the Product Files (the outputs of the products).", "project_visibility_title": "Public Visibility", @@ -420,6 +423,9 @@ "project_acts_downloads_on": "Allow project download is ON", "project_acts_downloads_off": "Allow project download is OFF", "project_acts_downloads_error": "Error: We could not change Allow Download status", + "project_acts_autoPublish_on": "Auto Publish is ON", + "project_acts_autoPublish_off": "Auto Publish is OFF", + "project_acts_autoPublish_error": "Error: We could not change Auto Publish status", "project_acts_isPublic_on": "Project visibility is set to Public", "project_acts_isPublic_off": "Project visibility is set to Private", "project_acts_isPublic_error": "Error: We could not change Project visibility", @@ -459,7 +465,6 @@ "users_table_role": "Role", "users_table_groups": "Groups", "users_table_active": "Active", - "users_table_impersonate": "Impersonate", "users_acts_lock_success": "User is locked. A locked user will not be able to log in to Scriptoria.", "users_acts_lock_error": "There was an error locking the user", "users_acts_unlock_success": "User is active. The user will now be able to log in to Scriptoria.", @@ -576,4 +581,4 @@ "system_publishFailed": "Publish failed", "system_unavailable": "Scriptoria is currently unable to process background tasks", "downloads_title": "Downloads" -} \ No newline at end of file +} From e185131034098cae93e5bb98500aa60b8a6fe5fb Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Fri, 5 Dec 2025 16:10:43 -0500 Subject: [PATCH 25/28] New translations en-us.json (French) --- src/lib/server/email-service/locales/fr-FR.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/server/email-service/locales/fr-FR.json b/src/lib/server/email-service/locales/fr-FR.json index ca171b0f13..c5ece459a1 100644 --- a/src/lib/server/email-service/locales/fr-FR.json +++ b/src/lib/server/email-service/locales/fr-FR.json @@ -41,7 +41,8 @@ "reviewPwaProduct": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
pwa

Send feedback to: {{ownerName}} ({{ownerEmail}})

", "reviewPwaProductWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
pwa

Send feedback to: {{ownerName}} ({{ownerEmail}})

", "rejectionEmail": "

The organization administrator has returned {{projectName}} to state {{newState}} from state {{previousState}} with the following comment:

{{comment}}

", - "recordNotFound": "

Task {{taskName}} Failed: Unable to find record:

  • recordName={{recordName}}
  • id={{recordId}}
" + "recordNotFound": "

Task {{taskName}} Failed: Unable to find record:

  • recordName={{recordName}}
  • id={{recordId}}
", + "retryBuild": "

Build for product: {{productName}} project {{projectName}} failed.

Project URL: {{projectUrl}}

Retrying build with compute type set to 'medium'.

" }, "subject": { "userTaskAdded": "Scriptoria: {{activityName}} Assigned For {{productName}} - {{project}}", @@ -82,7 +83,8 @@ "reviewPwaProduct": "{{projectName}} app - ready for review", "reviewPwaProductWithComment": "{{projectName}} app - ready for review", "rejectionEmail": "Scriptoria: {{projectName}} {{productName}} Returned", - "recordNotFound": "Scriptoria: Task {{taskName}} Failed" + "recordNotFound": "Scriptoria: Task {{taskName}} Failed", + "retryBuild": "Scriptoria: Retrying Build {{projectName}} {{productName}} With Medium Compute" }, "notification": { "userTaskAdded": "Task {{activityName}} assigned for {{productName}} - {{project}}.", From d6850b4d59b0a9a335e992a91766efedbccbc33f Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Fri, 5 Dec 2025 16:10:44 -0500 Subject: [PATCH 26/28] New translations en-us.json (Spanish, Latin American) --- src/lib/server/email-service/locales/es-419.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/server/email-service/locales/es-419.json b/src/lib/server/email-service/locales/es-419.json index ca171b0f13..c5ece459a1 100644 --- a/src/lib/server/email-service/locales/es-419.json +++ b/src/lib/server/email-service/locales/es-419.json @@ -41,7 +41,8 @@ "reviewPwaProduct": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
pwa

Send feedback to: {{ownerName}} ({{ownerEmail}})

", "reviewPwaProductWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
pwa

Send feedback to: {{ownerName}} ({{ownerEmail}})

", "rejectionEmail": "

The organization administrator has returned {{projectName}} to state {{newState}} from state {{previousState}} with the following comment:

{{comment}}

", - "recordNotFound": "

Task {{taskName}} Failed: Unable to find record:

  • recordName={{recordName}}
  • id={{recordId}}
" + "recordNotFound": "

Task {{taskName}} Failed: Unable to find record:

  • recordName={{recordName}}
  • id={{recordId}}
", + "retryBuild": "

Build for product: {{productName}} project {{projectName}} failed.

Project URL: {{projectUrl}}

Retrying build with compute type set to 'medium'.

" }, "subject": { "userTaskAdded": "Scriptoria: {{activityName}} Assigned For {{productName}} - {{project}}", @@ -82,7 +83,8 @@ "reviewPwaProduct": "{{projectName}} app - ready for review", "reviewPwaProductWithComment": "{{projectName}} app - ready for review", "rejectionEmail": "Scriptoria: {{projectName}} {{productName}} Returned", - "recordNotFound": "Scriptoria: Task {{taskName}} Failed" + "recordNotFound": "Scriptoria: Task {{taskName}} Failed", + "retryBuild": "Scriptoria: Retrying Build {{projectName}} {{productName}} With Medium Compute" }, "notification": { "userTaskAdded": "Task {{activityName}} assigned for {{productName}} - {{project}}.", From 32b2e0e3848a9e92c1aa38db3b582b1e7871744f Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Tue, 9 Dec 2025 12:54:56 -0500 Subject: [PATCH 27/28] New translations en-us.json (French) --- src/lib/server/email-service/locales/fr-FR.json | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/lib/server/email-service/locales/fr-FR.json b/src/lib/server/email-service/locales/fr-FR.json index c5ece459a1..84ad436715 100644 --- a/src/lib/server/email-service/locales/fr-FR.json +++ b/src/lib/server/email-service/locales/fr-FR.json @@ -32,14 +32,8 @@ "releaseFailedAdmin": "

Publish for product: {{productName}} project {{projectName}} failed.

Project URL: {{projectUrl}}

Diagnostic information for Super Admins:

  • BuildEngineUrl: {{buildEngineUrl}}
  • ProjectId: {{projectId}}
  • JobId: {{jobId}}
  • BuildId: {{buildId}}
  • PublishId: {{publishId}}
", "releaseProductRecordNotFound": "

Release Failed: Unable to find product record with id: {{productId}}

", "reviewOwnerPrefix": "

{{ownerName}},

The following message was sent to the these reviewers:
{{reviewerNames}}


", - "reviewProduct": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
apk
play-listing

Send feedback to: {{ownerName}} ({{ownerEmail}})

", - "reviewProductWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
apk
play-listing

Send feedback to: {{ownerName}} ({{ownerEmail}})

", - "reviewProductNoPlayListing": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
apk

Send feedback to: {{ownerName}} ({{ownerEmail}})

", - "reviewProductNoPlayListingWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
apk

Send feedback to: {{ownerName}} ({{ownerEmail}})

", - "reviewAssetPackage": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
asset-preview

Send feedback to: {{ownerName}} ({{ownerEmail}})

", - "reviewAssetPackageWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
asset-preview

Send feedback to: {{ownerName}} ({{ownerEmail}})

", - "reviewPwaProduct": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
pwa

Send feedback to: {{ownerName}} ({{ownerEmail}})

", - "reviewPwaProductWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
pwa

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "reviewProduct": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
{{files}}

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "reviewProductWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
{{files}}

Send feedback to: {{ownerName}} ({{ownerEmail}})

", "rejectionEmail": "

The organization administrator has returned {{projectName}} to state {{newState}} from state {{previousState}} with the following comment:

{{comment}}

", "recordNotFound": "

Task {{taskName}} Failed: Unable to find record:

  • recordName={{recordName}}
  • id={{recordId}}
", "retryBuild": "

Build for product: {{productName}} project {{projectName}} failed.

Project URL: {{projectUrl}}

Retrying build with compute type set to 'medium'.

" @@ -76,12 +70,6 @@ "releaseProductRecordNotFound": "Scriptoria: Release Failed: Product {{productId}}", "reviewProduct": "{{projectName}} app - ready for review", "reviewProductWithComment": "{{projectName}} app - ready for review", - "reviewProductNoPlayListing": "{{projectName}} app - ready for review", - "reviewProductNoPlayListingWithComment": "{{projectName}} app - ready for review", - "reviewAssetPackage": "{{projectName}} app - ready for review", - "reviewAssetPackageWithComment": "{{projectName}} app - ready for review", - "reviewPwaProduct": "{{projectName}} app - ready for review", - "reviewPwaProductWithComment": "{{projectName}} app - ready for review", "rejectionEmail": "Scriptoria: {{projectName}} {{productName}} Returned", "recordNotFound": "Scriptoria: Task {{taskName}} Failed", "retryBuild": "Scriptoria: Retrying Build {{projectName}} {{productName}} With Medium Compute" From 1d72e387882565457b5297f6d0caf0086c6251f0 Mon Sep 17 00:00:00 2001 From: Chris Hubbard Date: Tue, 9 Dec 2025 12:54:57 -0500 Subject: [PATCH 28/28] New translations en-us.json (Spanish, Latin American) --- src/lib/server/email-service/locales/es-419.json | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/lib/server/email-service/locales/es-419.json b/src/lib/server/email-service/locales/es-419.json index c5ece459a1..84ad436715 100644 --- a/src/lib/server/email-service/locales/es-419.json +++ b/src/lib/server/email-service/locales/es-419.json @@ -32,14 +32,8 @@ "releaseFailedAdmin": "

Publish for product: {{productName}} project {{projectName}} failed.

Project URL: {{projectUrl}}

Diagnostic information for Super Admins:

  • BuildEngineUrl: {{buildEngineUrl}}
  • ProjectId: {{projectId}}
  • JobId: {{jobId}}
  • BuildId: {{buildId}}
  • PublishId: {{publishId}}
", "releaseProductRecordNotFound": "

Release Failed: Unable to find product record with id: {{productId}}

", "reviewOwnerPrefix": "

{{ownerName}},

The following message was sent to the these reviewers:
{{reviewerNames}}


", - "reviewProduct": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
apk
play-listing

Send feedback to: {{ownerName}} ({{ownerEmail}})

", - "reviewProductWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
apk
play-listing

Send feedback to: {{ownerName}} ({{ownerEmail}})

", - "reviewProductNoPlayListing": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
apk

Send feedback to: {{ownerName}} ({{ownerEmail}})

", - "reviewProductNoPlayListingWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
apk

Send feedback to: {{ownerName}} ({{ownerEmail}})

", - "reviewAssetPackage": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
asset-preview

Send feedback to: {{ownerName}} ({{ownerEmail}})

", - "reviewAssetPackageWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
asset-preview

Send feedback to: {{ownerName}} ({{ownerEmail}})

", - "reviewPwaProduct": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
pwa

Send feedback to: {{ownerName}} ({{ownerEmail}})

", - "reviewPwaProductWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
pwa

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "reviewProduct": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}

Here are the product files to be reviewed:
{{files}}

Send feedback to: {{ownerName}} ({{ownerEmail}})

", + "reviewProductWithComment": "

{{reviewerName}},

You have been asked to review the following app:
Project: {{projectName}}
Product: {{productName}}
Comment: {{comment}}

Here are the product files to be reviewed:
{{files}}

Send feedback to: {{ownerName}} ({{ownerEmail}})

", "rejectionEmail": "

The organization administrator has returned {{projectName}} to state {{newState}} from state {{previousState}} with the following comment:

{{comment}}

", "recordNotFound": "

Task {{taskName}} Failed: Unable to find record:

  • recordName={{recordName}}
  • id={{recordId}}
", "retryBuild": "

Build for product: {{productName}} project {{projectName}} failed.

Project URL: {{projectUrl}}

Retrying build with compute type set to 'medium'.

" @@ -76,12 +70,6 @@ "releaseProductRecordNotFound": "Scriptoria: Release Failed: Product {{productId}}", "reviewProduct": "{{projectName}} app - ready for review", "reviewProductWithComment": "{{projectName}} app - ready for review", - "reviewProductNoPlayListing": "{{projectName}} app - ready for review", - "reviewProductNoPlayListingWithComment": "{{projectName}} app - ready for review", - "reviewAssetPackage": "{{projectName}} app - ready for review", - "reviewAssetPackageWithComment": "{{projectName}} app - ready for review", - "reviewPwaProduct": "{{projectName}} app - ready for review", - "reviewPwaProductWithComment": "{{projectName}} app - ready for review", "rejectionEmail": "Scriptoria: {{projectName}} {{productName}} Returned", "recordNotFound": "Scriptoria: Task {{taskName}} Failed", "retryBuild": "Scriptoria: Retrying Build {{projectName}} {{productName}} With Medium Compute"