Context Menu Module
This module allows creating custom items in Crowdin’s context menus.
Crowdin context menus:
- Resources > TM > TM record
- Resources > Glossary > Glossary record
- Project home tab > Language record
- Project > Content > Files > File record
- Project > Content > Screenshots > Screenshot record
- Project > Language page > File record
Crowdin Enterprise context menus:
- Workspace > TM > TM record
- Workspace > Glossary > Glossary record
- Project home page > Language record
- Project > Content > Files > File record
- Project > Content > Screenshots > Screenshot record
- Project home page > Language page > File record
A context menu item can open a specified app module with additional context related to the selected record or custom URL. There are the following types of actions:
- Open a specified app module in a modal dialog (see Modal module)
- Redirect to a specified app module
- Open a custom URL in a new tab
Access
You can grant access to this module to one of the following user categories:
For Crowdin:
- Only me (i.e., project owner)
- Me, project managers and developers (if location:
language
,screenshot
,source_file
,translated_file
) - All project members
- Selected users
For Crowdin Enterprise:
- Only organization admins
- Organization admins, project managers and developers (if location:
language
,screenshot
,source_file
,translated_file
) - All users in the organization projects
- Selected users
Structure
Modal
Context menu item shows the specified module in the modal.
{ "modules": { "context-menu": [ { "key": "context-menu-key", "name": "Name of Context Menu Item", "description": "Description of Context Menu Item", "options": { "location": "source_file", "type": "modal", "module": { "project-integrations": "integration-module-key" }, "signaturePatterns": { "fileName": ".*\\.json", "nodeType": [0, 1] } } } ], "project-integrations": [ { "key": "integration-module-key", "name": "New Integration", "logo": "/integration-logo.png", "url": "/path/to/integration/module" } ] }}
Redirect
Context menu item redirects to the specified module.
{ "modules": { "context-menu": [ { "key": "context-menu-key", "name": "Name of Context Menu Item", "description": "Description of Context Menu Item", "options": { "location": "source_file", "type": "redirect", "module": { "project-integrations": "integration-module-key" }, "signaturePatterns": { "fileName": ".*\\.json", "nodeType": [0, 1] } } } ], "project-integrations": [ { "key": "integration-module-key", "name": "New Integration", "logo": "/integration-logo.png", "url": "/path/to/integration/module" } ] }}
New Tab
Context menu item opens a new tab with the URL: baseUrl/options.url
.
{ "baseUrl": "https://app.example.com", "modules": { "context-menu": [ { "key": "context-menu-key", "name": "Name of Context Menu Item", "description": "Description of Context Menu Item", "options": { "location": "source_file", "type": "new_tab", "url": "/example/path", "signaturePatterns": { "fileName": ".*\\.json", "nodeType": [0, 1] } } } ] }}
Properties
key | Type: Required: yes Description: Module identifier within the Crowdin app. |
name | Type: Required: yes Description: The human-readable name displayed in the context menu. |
description | Type: Description: A human-readable description of what the module does. |
options.location | Type: Required: yes Allowed values: Description: The location in UI where the context menu can be added. |
options.type | Type: Required: yes Allowed values: Description: The type of action this module will perform. |
options.url | Type: Description: Relative URL. Use it only with |
options.module | Type: Description: Module definition. Use it only with |
signaturePatterns | Type: Description: Contains criteria used to detect the type of file or node, specifying when the context menu item is shown. Use it only when |
signaturePatterns.fileName | Type: Description: Contains |
signaturePatterns.nodeType | Type: Allowed values: Description: Array of node types specifying when the context menu item appears. |
environments | Type: Allowed values: Description: Set of environments where a module could be installed. |