diff --git a/src/lib/locales/es-419.json b/src/lib/locales/es-419.json
new file mode 100644
index 0000000000..4cb4852bc7
--- /dev/null
+++ b/src/lib/locales/es-419.json
@@ -0,0 +1,577 @@
+{
+ "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
• Package 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_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",
+ "publications_resolved": "Date Resolved",
+ "publications_results": "Publish Results",
+ "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",
+ "tasks_submitted": "{action} submitted",
+ "tasks_reloaded": "Task updated by Scriptoria",
+ "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_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_location_placeholder": "Creating the repository...",
+ "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_appBuilderVersion": "AppBuilder Version",
+ "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."
+ }
+ }
+ ],
+ "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"
+}
\ No newline at end of file
diff --git a/src/lib/locales/fr-FR.json b/src/lib/locales/fr-FR.json
new file mode 100644
index 0000000000..4cb4852bc7
--- /dev/null
+++ b/src/lib/locales/fr-FR.json
@@ -0,0 +1,577 @@
+{
+ "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
• Package 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_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",
+ "publications_resolved": "Date Resolved",
+ "publications_results": "Publish Results",
+ "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",
+ "tasks_submitted": "{action} submitted",
+ "tasks_reloaded": "Task updated by Scriptoria",
+ "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_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_location_placeholder": "Creating the repository...",
+ "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_appBuilderVersion": "AppBuilder Version",
+ "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."
+ }
+ }
+ ],
+ "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"
+}
\ No newline at end of file
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}}
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:
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:
Release Failed: Unable to find product record with id: {{productId}}
", + "reviewOwnerPrefix": "{{ownerName}},
The following message was sent to the these reviewers:
{{reviewerNames}}
{{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}}
Task {{taskName}} Failed: Unable to find record:
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}}
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:
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:
Release Failed: Unable to find product record with id: {{productId}}
", + "reviewOwnerPrefix": "{{ownerName}},
The following message was sent to the these reviewers:
{{reviewerNames}}
{{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}}
Task {{taskName}} Failed: Unable to find record: