diff --git a/astro.config.mjs b/astro.config.mjs index 8fe5a2fa..317a7a57 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -229,7 +229,11 @@ const config = defineConfig({ 'warning', 'groups', 'reply', - 'payments' + 'payments', + 'undo' + ], + garden: [ + 'puzzle-piece-fill-12' ], } }) diff --git a/package-lock.json b/package-lock.json index 4f9b54ac..6142d8e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "@expressive-code/plugin-collapsible-sections": "^0.41.7", "@fontsource-variable/noto-sans": "^5.2.10", "@fontsource-variable/plus-jakarta-sans": "^5.2.8", + "@iconify-json/garden": "^1.2.4", "@iconify-json/heroicons": "^1.2.3", "@iconify-json/material-symbols": "^1.2.58", "@iconify-json/mdi": "^1.2.3", @@ -1258,6 +1259,15 @@ "url": "https://github.com/sponsors/ayuhito" } }, + "node_modules/@iconify-json/garden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@iconify-json/garden/-/garden-1.2.4.tgz", + "integrity": "sha512-+BH4pRIMCWqUuSiBW/IV8sA6vgbBL/hbHG57hSG/zG8DNFC/K2HSFk6dUl8mgVirHljxG9kPNc9cJJ+VvU3rhQ==", + "license": "Apache-2.0", + "dependencies": { + "@iconify/types": "*" + } + }, "node_modules/@iconify-json/heroicons": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@iconify-json/heroicons/-/heroicons-1.2.3.tgz", diff --git a/package.json b/package.json index 889ca2ba..301d7d76 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "@expressive-code/plugin-collapsible-sections": "^0.41.7", "@fontsource-variable/noto-sans": "^5.2.10", "@fontsource-variable/plus-jakarta-sans": "^5.2.8", + "@iconify-json/garden": "^1.2.4", "@iconify-json/heroicons": "^1.2.3", "@iconify-json/material-symbols": "^1.2.58", "@iconify-json/mdi": "^1.2.3", diff --git a/src/assets/screenshots/crowdin/online-editor/advanced_filter.png b/src/assets/screenshots/crowdin/online-editor/advanced_filter.png index 7ad4ebb3..5cedc318 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/advanced_filter.png and b/src/assets/screenshots/crowdin/online-editor/advanced_filter.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/comfortable.png b/src/assets/screenshots/crowdin/online-editor/comfortable.png index 49452cb6..e36afdda 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/comfortable.png and b/src/assets/screenshots/crowdin/online-editor/comfortable.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/command_palette.png b/src/assets/screenshots/crowdin/online-editor/command_palette.png index ad6ffcca..e4beccf9 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/command_palette.png and b/src/assets/screenshots/crowdin/online-editor/command_palette.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/comment_new.png b/src/assets/screenshots/crowdin/online-editor/comment_new.png index 40334b9b..4279a7f4 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/comment_new.png and b/src/assets/screenshots/crowdin/online-editor/comment_new.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/edit_tm_suggestions.png b/src/assets/screenshots/crowdin/online-editor/edit_tm_suggestions.png index 89d90b26..bfdeb3fc 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/edit_tm_suggestions.png and b/src/assets/screenshots/crowdin/online-editor/edit_tm_suggestions.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/file_browser.png b/src/assets/screenshots/crowdin/online-editor/file_browser.png index c676a94a..dce78186 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/file_browser.png and b/src/assets/screenshots/crowdin/online-editor/file_browser.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/file_context.png b/src/assets/screenshots/crowdin/online-editor/file_context.png index 4decab29..7175deaf 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/file_context.png and b/src/assets/screenshots/crowdin/online-editor/file_context.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/html_preview.png b/src/assets/screenshots/crowdin/online-editor/html_preview.png index b438546f..66c17175 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/html_preview.png and b/src/assets/screenshots/crowdin/online-editor/html_preview.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/multi_approve.png b/src/assets/screenshots/crowdin/online-editor/multi_approve.png index 3505e012..5265028d 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/multi_approve.png and b/src/assets/screenshots/crowdin/online-editor/multi_approve.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/multilingual_mode.png b/src/assets/screenshots/crowdin/online-editor/multilingual_mode.png index d943b99e..eaa0ba8e 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/multilingual_mode.png and b/src/assets/screenshots/crowdin/online-editor/multilingual_mode.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/multilingual_mode_grid.png b/src/assets/screenshots/crowdin/online-editor/multilingual_mode_grid.png index 69c7bdbe..5732783c 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/multilingual_mode_grid.png and b/src/assets/screenshots/crowdin/online-editor/multilingual_mode_grid.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/other_languages_tabs.png b/src/assets/screenshots/crowdin/online-editor/other_languages_tabs.png index 8811f169..552f221b 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/other_languages_tabs.png and b/src/assets/screenshots/crowdin/online-editor/other_languages_tabs.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/plural_forms.png b/src/assets/screenshots/crowdin/online-editor/plural_forms.png index f133b228..095ced93 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/plural_forms.png and b/src/assets/screenshots/crowdin/online-editor/plural_forms.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/qa_checks_on.png b/src/assets/screenshots/crowdin/online-editor/qa_checks_on.png index b7f2f35b..eb2d7b07 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/qa_checks_on.png and b/src/assets/screenshots/crowdin/online-editor/qa_checks_on.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/qa_pop-up.png b/src/assets/screenshots/crowdin/online-editor/qa_pop-up.png index b3bfde8d..515be918 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/qa_pop-up.png and b/src/assets/screenshots/crowdin/online-editor/qa_pop-up.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/quick_access.png b/src/assets/screenshots/crowdin/online-editor/quick_access.png deleted file mode 100644 index 0342b97a..00000000 Binary files a/src/assets/screenshots/crowdin/online-editor/quick_access.png and /dev/null differ diff --git a/src/assets/screenshots/crowdin/online-editor/request_context.png b/src/assets/screenshots/crowdin/online-editor/request_context.png index daa9302f..4a13f6e0 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/request_context.png and b/src/assets/screenshots/crowdin/online-editor/request_context.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/rtl.png b/src/assets/screenshots/crowdin/online-editor/rtl.png index e64bb5af..ffaa5381 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/rtl.png and b/src/assets/screenshots/crowdin/online-editor/rtl.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/sbs_editor.png b/src/assets/screenshots/crowdin/online-editor/sbs_editor.png index 5d1ed7db..3180a1d2 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/sbs_editor.png and b/src/assets/screenshots/crowdin/online-editor/sbs_editor.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/search_tm.png b/src/assets/screenshots/crowdin/online-editor/search_tm.png index c4f32522..b86f1178 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/search_tm.png and b/src/assets/screenshots/crowdin/online-editor/search_tm.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/search_tm_tab.png b/src/assets/screenshots/crowdin/online-editor/search_tm_tab.png index 58161853..c5e9775a 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/search_tm_tab.png and b/src/assets/screenshots/crowdin/online-editor/search_tm_tab.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/string_menu.png b/src/assets/screenshots/crowdin/online-editor/string_menu.png index 682e03f5..c223a84f 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/string_menu.png and b/src/assets/screenshots/crowdin/online-editor/string_menu.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/string_search.png b/src/assets/screenshots/crowdin/online-editor/string_search.png index a3b75568..8a4f3dbc 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/string_search.png and b/src/assets/screenshots/crowdin/online-editor/string_search.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/strings_filter.png b/src/assets/screenshots/crowdin/online-editor/strings_filter.png index 5a49f225..b69021c8 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/strings_filter.png and b/src/assets/screenshots/crowdin/online-editor/strings_filter.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/suggesting_translations.png b/src/assets/screenshots/crowdin/online-editor/suggesting_translations.png index 446f6da9..f6d04c43 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/suggesting_translations.png and b/src/assets/screenshots/crowdin/online-editor/suggesting_translations.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/task_menu.png b/src/assets/screenshots/crowdin/online-editor/task_menu.png deleted file mode 100644 index cc1f7f6e..00000000 Binary files a/src/assets/screenshots/crowdin/online-editor/task_menu.png and /dev/null differ diff --git a/src/assets/screenshots/crowdin/online-editor/task_name.png b/src/assets/screenshots/crowdin/online-editor/task_name.png index c3145856..7c6bf321 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/task_name.png and b/src/assets/screenshots/crowdin/online-editor/task_name.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/terms.png b/src/assets/screenshots/crowdin/online-editor/terms.png index 71bd8072..94ca1d51 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/terms.png and b/src/assets/screenshots/crowdin/online-editor/terms.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/translation_progress_indicators.png b/src/assets/screenshots/crowdin/online-editor/translation_progress_indicators.png index a704c33b..0e9dea08 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/translation_progress_indicators.png and b/src/assets/screenshots/crowdin/online-editor/translation_progress_indicators.png differ diff --git a/src/assets/screenshots/crowdin/online-editor/vote.png b/src/assets/screenshots/crowdin/online-editor/vote.png index ad60cbdd..0091a381 100644 Binary files a/src/assets/screenshots/crowdin/online-editor/vote.png and b/src/assets/screenshots/crowdin/online-editor/vote.png differ diff --git a/src/assets/screenshots/enterprise/online-editor/multiple_approvals.png b/src/assets/screenshots/enterprise/online-editor/multiple_approvals.png index 0fe5ce09..263e785b 100644 Binary files a/src/assets/screenshots/enterprise/online-editor/multiple_approvals.png and b/src/assets/screenshots/enterprise/online-editor/multiple_approvals.png differ diff --git a/src/assets/screenshots/enterprise/online-editor/quick_access.png b/src/assets/screenshots/enterprise/online-editor/quick_access.png deleted file mode 100644 index 210cdde6..00000000 Binary files a/src/assets/screenshots/enterprise/online-editor/quick_access.png and /dev/null differ diff --git a/src/assets/screenshots/enterprise/online-editor/shared_comments.png b/src/assets/screenshots/enterprise/online-editor/shared_comments.png index 03f3cfc9..67d5a537 100644 Binary files a/src/assets/screenshots/enterprise/online-editor/shared_comments.png and b/src/assets/screenshots/enterprise/online-editor/shared_comments.png differ diff --git a/src/assets/screenshots/enterprise/online-editor/workflow_filter.png b/src/assets/screenshots/enterprise/online-editor/workflow_filter.png index a51596ce..fb65a491 100644 Binary files a/src/assets/screenshots/enterprise/online-editor/workflow_filter.png and b/src/assets/screenshots/enterprise/online-editor/workflow_filter.png differ diff --git a/src/content/docs/crowdin/online-editor/overview.mdx b/src/content/docs/crowdin/online-editor/overview.mdx index 67f17eea..489192d3 100644 --- a/src/content/docs/crowdin/online-editor/overview.mdx +++ b/src/content/docs/crowdin/online-editor/overview.mdx @@ -36,18 +36,16 @@ import multilingualMode from '!/crowdin/online-editor/multilingual_mode.png'; import multilingualModeGrid from '!/crowdin/online-editor/multilingual_mode_grid.png'; import rtlLanguages from '!/crowdin/online-editor/rtl.png'; import commandPalette from '!/crowdin/online-editor/command_palette.png'; -import quickAccessToMenuTabs from '!/crowdin/online-editor/quick_access.png'; import translationProgressIndicators from '!/crowdin/online-editor/translation_progress_indicators.png'; import searchTmTab from '!/crowdin/online-editor/search_tm_tab.png'; import replaceInSuggestionsResults from '!/crowdin/online-editor/replace_in_suggestions_results.png'; import replaceInSourcesResults from '!/crowdin/online-editor/replace_in_sources_results.png'; import advancedFilter from '!/crowdin/online-editor/advanced_filter.png'; import taskName from '!/crowdin/online-editor/task_name.png'; -import taskMenu from '!/crowdin/online-editor/task_menu.png'; The Editor is the main place in Crowdin where project members can work on translations. It allows users to suggest, vote on, review, and approve translations online. -Using the Main menu in the upper-left corner, you can switch between files for translation, change translation languages, contact a manager, change the view, and access help materials. +Using the main menu at the top of the Editor (**File**, **Edit**, **View**, **Language**, **Project**, **Help**), you can select content for translation, download or upload translations, perform various string actions, change the Editor's layout, switch target languages, access project pages and switch projects, access help materials, and more. ## Core Features @@ -83,7 +81,7 @@ There also might be the following icons besides strings: #### Suggesting Translations -To suggest a translation, select a string from the list and enter your suggestion in the field next to the original text. When you're done, click **Save**. Your suggestion will be added to the string's translation suggestions list, and you'll automatically move on to the next string. +To suggest a translation, select a string from the list and enter your suggestion in the field next to the original text. When you're done, click **Save translation**. Your suggestion will be added to the string's translation suggestions list, and you'll automatically move on to the next string. If you need to discard your current input and revert to the previous state, click **Cancel**. Suggesting Translations @@ -174,8 +172,9 @@ Available filter options: * *Need to Be Voted* – Show already translated strings. * *Not Approved* – Show strings that are already translated but not yet approved by a proofreader. * *Approved* – Show only strings with approved translations. -* *QA issues* – Show strings with no QA issues or with unresolved QA issues in the current language. -* *Machine Translation* – Show strings that are translated by TM or MT suggestions without changes. Often these strings require additional review. +* *Unsaved Translations* – Show strings with translations you entered but haven't saved yet. +* *QA issues* – Show strings with or without unresolved QA issues in the current language, with the possibility to filter by specific errors. +* *Machine Translations* – Show strings that are translated by TM, MT, or AI suggestions without changes. Often these strings require additional review. * *With Comments* – Show strings that have comments. * *With Unresolved Issues* – Show strings with unresolved issues in the current language or all languages. * *Hidden* – Show strings that are hidden from translators. Strings can be hidden by project managers or automatically hidden by Crowdin when they are marked as duplicates. @@ -188,6 +187,19 @@ Available filter options: Strings Filter +#### Viewing Surrounding Strings for Context + +When translating, understanding the surrounding text can be crucial for accuracy. The Editor allows you to display the strings that immediately precede and follow your active strings in the source file, even if they don't match your current filter criteria. + +To toggle this context view on or off, click the **Show surrounding strings for context** icon next to the search field, or select this option from the [String menu](#string-menu). When enabled, the Editor will load and display up to five preceding and five succeeding strings for all strings currently displayed on the page. + +##### Working with Context Strings + +Context strings are visually marked with a puzzle icon and appear greyed out to distinguish them from the strings in your primary filtered view. How you can interact with them depends on how you accessed the Editor: + +* **Normal Editor Mode:** When you open a source file directly in the Editor, you can interact with context strings just like regular strings. Despite being greyed out, you can still select them, add translations, vote on them, and approve them. +* **Task Mode:** When you open a specific task in the Editor, context strings are provided purely for reference. They are strictly read-only, meaning their input fields and action buttons are disabled. This ensures you have the necessary context without accidentally modifying strings outside your assigned task scope. + #### Viewing String Statistics To help you estimate workload and track costs, the Editor can display detailed statistics for the strings in the list. @@ -220,19 +232,34 @@ You might also get automatic Quality Assurance (QA) check pop-up messages to avo QA pop-up +### Managing Source Strings + +Project members with manager permissions (or higher) can manage source strings directly within the Editor, allowing for quick corrections and updates without needing to switch to the project's **Sources** tab. + +You can access these options via the **Edit** menu at the top of the Editor. The most common actions are also available as quickly accessible buttons in the top toolbar: + +* **Add String** – Add a new string to the currently opened file. +* **Edit String** – Modify the selected source text, identifier (key), context, labels, or maximum length limit. +* **Delete String** – Permanently remove the string from the file (available via the **Edit** menu; supported only for specific file formats). +* **Hide String / Make String Visible** – Toggle the string's visibility for translators. Hidden strings are accessible only to project managers or higher (available via the **Edit** menu or [String menu](#string-menu)). + + + Read more about [String Management](/string-management/). + + ### String Menu Clicking in the upper-right allows you to: * **Remove Approval** – Remove the approval for a translation, reverting its status to unapproved. (Available for proofreaders or higher.) * **Remove Translation** – Clear translations for the selected strings along with the associated TM records. Duplicate translations from master strings remain unaffected. -* **Hide/Make Visible** – Toggle the visibility of a string for translators. Hidden strings are accessible only to project managers or higher. +* **Hide String / Make String Visible** – Toggle the visibility of a string for translators. Hidden strings are accessible only to project managers or higher. * **Pre-translate** – Initiate [pre-translation](#pre-translation-in-the-editor) directly in the Editor using Translation Memory (TM), Machine Translation (MT), or AI. * **Copy String URL** – Access a specific string using its unique link or share it with colleagues. * **Copy Source Skeleton** – Copy untranslatable elements to the translation section. This action can be applied to one or multiple selected strings. Useful when translating strings with ICU message syntax or HTML tags. * **Clear Selected Input** – Clear the translation field for the selected string. * **Translation History** – View all the modifications made to the string. -* **View String In Context** – Display the string along with other strings surrounding it in the source file, helping you understand its context better. +* **Show / Hide surrounding strings for context** – Display up to five preceding and five succeeding strings for all strings currently loaded in the Editor to help you understand their context. This performs the exact same action as the button in the main toolbar. * **Labels** – Add or manage labels assigned to the string, helping to categorize or identify it for specific purposes. * **Max. Length** – View and edit the maximum character length allowed for the string translation. Clicking this option opens a modal with the following settings: * **Proportional to source texts** – Set the maximum length as a percentage of the source text length. Use the slider or manually enter a percentage (e.g., 100%, 150%, 200%) to define the limit. @@ -250,15 +277,15 @@ In the translation window, you will also see the *Maximum length of translation* Additional action buttons available when translating a string: -- - _Copy Source_. Use it to keep the initial string structure while translating messages with replacement tokens or elements of ICU message syntax. This action can be applied to one or multiple selected strings. -- - _Clear_. Use it when you need to clear the translation field quickly. Alternatively, use the *Clear Selected Input* option from the string menu. -- - _Text selection mode_. Use it when you want to copy a part of the translation from Translation Memory (TM) or Machine Translations (MT) (Comfortable mode only). +* **Copy Source** – Use it to keep the initial string structure while translating messages with replacement tokens or elements of ICU message syntax. This action can be applied to one or multiple selected strings. +* **Clear** – Use it when you need to wipe the translation field quickly (Comfortable mode only). For other modes, use the **Cancel** button, or the **Clear Selected Input** option from the **Edit** menu or the [String menu](#string-menu). +* **Text selection mode** – Use it when you want to copy a part of the translation from Translation Memory (TM) or Machine Translations (MT) (Comfortable mode only). -### Context and Translations +### Context & Translations This section contains the resources that might be useful: @@ -370,15 +397,15 @@ To edit the TM suggestion, follow these steps: To completely delete a TM segment from the TM, delete all TM records across all languages and click **Save**. -### Terms +### Terminology -Underlined words or phrases in strings indicate project-specific terminology, which should be translated according to the provided term description. You can view detailed explanations by hovering over the underlined text or visiting the Terms section. +Underlined words or phrases in strings indicate project-specific terminology, which should be translated according to the provided term description. You can view detailed explanations by hovering over the underlined text or visiting the Terminology section. -The Terms section allows you to browse the project glossary (if available) and search for specific terms. If a term is not found in the glossary, Wikipedia explanations will be displayed as a reference. +The Terminology section allows you to browse the project glossary (if available) and search for specific terms. If a term is not found in the glossary, Wikipedia explanations will be displayed as a reference. Some terms may already have translations, which help maintain consistency across the project. To reuse a translated term, simply click on the underlined text, and its translation will automatically appear in the translation field. -Terms +Terminology ### File Context @@ -403,8 +430,8 @@ The Editor offers several viewing modes to accommodate different translation wor You can switch between Editor modes using the following methods: -- **Via Main menu** – click on the **Main menu** in the upper-left corner, select **View**, and choose the preferred mode. -- **Via Editor View icon** – click the **Editor View** icon in the upper-right corner and choose the preferred mode. +* **Via View menu** – Go to **View** in the main menu and choose the preferred mode. +* **Via Editor View icon** – Click the **Editor View** icon in the upper-right corner and choose the preferred mode (this icon is available only if the **Horizontal Menu** is disabled in the [Editor Settings](#appearance)). ### Side-by-Side Mode @@ -424,7 +451,7 @@ The multilingual mode provides similar features as the side-by-side mode and all Multilingual Mode -Once you switch to the multilingual mode, select the languages you'd like to work with, and click **Apply**. To add new languages or remove some of the earlier selected ones, click on the Main menu in the upper-left corner, choose **Language**, alternatively click on the **Languages** in the upper-left corner, then do the necessary modifications to the language list and click **Apply**. +Once you switch to the multilingual mode, select the languages you'd like to work with, and click **Apply**. To add new languages or remove some of the earlier selected ones, go to **Language** in the main menu, then do the necessary modifications to the language list and click **Apply**. ### Multilingual Mode (Grid) @@ -526,6 +553,7 @@ The AI tab allows to configure custom prompts and shortcuts for AI Assistant. Th - *Default Editor View* – set the default view mode that will be used each time you open the Editor. - *Compact strings view* – if enabled, only the beginnings of the long strings will be shown in the string list. - *Translation Preview* – if enabled, a translation preview will be displayed for translated strings in the string list. +- *Horizontal Menu* – If enabled, the main menu is displayed horizontally at the top of the Editor. This layout is enabled by default. If disabled, the main menu collapses under the icon in the upper-left corner. - *HTML Tags Displaying* – you can choose **Show** or **Hide** option that applies to all HTML tags. If you choose **Auto**, tags will be hidden in HTML, Haml, XML, Web XML, Markdown, and DOCX files but shown in other file formats. When tags are hidden, you can expect the following: ``` Sample @@ -571,15 +599,24 @@ Set the **Light** or **Dark** theme, or select **Auto** to allow the Editor to s Use keyboard shortcuts to take actions in the editor quickly. Check the list of keyboard shortcuts by clicking the *keyboard* icon in the upper-right corner. Most of the hotkeys can be customized to your personal preferences. Click on the necessary key combination, and modify it with the help of your keyboard. -### Quick Access to Menu Sections +### Navigation and Quick Access + +The navigation path in the upper-left corner of the Editor displays your current context within the workspace, offering quick access to file statistics, task information, and project navigation. Its behavior depends on whether the **Horizontal Menu** is enabled in your [Editor Settings](#appearance). + +**When the Horizontal Menu is enabled (default):** -Easy access to most-used menu items in one click: +The path serves as a visual indicator of your location (project name, target language, or file name) and provides quick-reference information on hover: -- *Project* – click on the current project name (*Umbrella* in the below screenshot) -- *Language* – click on the current language (*French* in the below screenshot) -- *Files* – click on the current file name (*strings.xml* in the below screenshot) +* **File Statistics** – Hovering over the file name opens a popover displaying the translation and approval progress (word counts and percentages) for that specific file. +* **Task Details** – When you open a task in the Editor, the task title appears in the path alongside its corresponding task type icon. Hovering over the task title reveals a popover with additional details, including a direct clickable link to the task (opens in a new tab), the target language, and the task type. -Quick Access to Menu Sections +**When the Horizontal Menu is disabled:** + +You can click the individual items in the navigation path to open their respective dropdown menus: + +* **Project** – Click the current project name to access project-level options. +* **Language** – Click the current language to switch to another target language. +* **File** – Click the current file name to open the File menu. ### Translation Progress Indicators @@ -587,13 +624,13 @@ Use translation and approval indicators to monitor the progress of the currently There are two types of indicators available in the Editor: -* **Circular Progress Indicators** – Located in the upper-right corner of the toolbar, these show the percentage of translated and approved content for the file or folder you're working on. -* **Detailed Progress Breakdown** – Accessible via the **Main menu > File**, this provides information on the total word count, number of translated, pre-translated, and approved words, along with percentage completion for each. +* **Circular Progress Indicators** – Located in the upper-right corner of the toolbar, these show the percentage of translated and approved content for the file or folder you're working on. +* **Detailed Progress Breakdown** – Hover over the file name in the top navigation path to view a popover with information on the total word count, number of translated, pre-translated, and approved words, along with the percentage completion for each. (If the **Horizontal Menu** is disabled, this breakdown is located in the **Main menu > File**). Translation Progress Indicators ### Context Menu Options for Selected Words @@ -619,28 +656,28 @@ The Editor features an integrated file browser in a collapsible left-side panel, How you interact with the file browser depends on your current Editor mode: -- **In Side-by-Side, Multilingual, and Multilingual (Grid) Modes** – You can show or hide the file browser panel by clicking the icon in the upper-right corner or by using the keyboard shortcut Ctrl+[. Alternatively, you can open the panel by clicking the current file name in the upper-left corner or by selecting **File > Open** from the **Main Menu** . -- **In Comfortable Mode** – The left panel can be switched between two views: **Files** and **Strings**. When you select an item in the **Files** view, the **Strings** view automatically updates to show the relevant content. +* **In Side-by-Side, Multilingual, and Multilingual (Grid) Modes** – You can show or hide the file browser panel by clicking the icon in the upper-right corner or by using the keyboard shortcut Ctrl+[. Alternatively, you can open the panel by selecting **File > Open** from the main menu or with the keyboard shortcut Ctrl+O or Cmd+O. +* **In Comfortable Mode** – The left panel can be switched between two views: **Files** and **Strings**. When you select an item in the **Files** view, the **Strings** view automatically updates to show the relevant content. The file browser panel in the Editor -At the bottom of the file browser, you can see the path of the selected item (e.g., `/app/src/main/res/values/strings.xml`) and a summary of your selection (e.g., `Currently selected: strings.xml` or `Currently selected: 3 files`). +At the bottom of the file browser, you can see the path of the selected item (e.g., `/app/src/main/res/values/strings.xml`) and a summary of your selection (e.g., `Currently selected: strings.xml` or `Currently selected: 3 files`). Project members with manager permissions can also toggle the visibility of hidden files (if any) in the tree by clicking the **Hidden Files** icon in the file browser toolbar. To see all strings in the project, open the file browser and select **All Strings** at the top of the file list. -To quickly find and reopen one of the files you recently worked on, click on the Main menu in the upper-left corner, go to **File** and select the needed file from the **Recent files** section. +To quickly find and reopen one of the files you recently worked on, go to **File > Recent Files** and select the needed file. ### Source and Translated File Preview In addition to the [WYSIWYG file preview](#wysiwyg-file-preview), which shows files as they would appear when rendered, there are **Source File Preview** and **Translated File Preview** modes that allow users to view the raw content of both source and translated files directly within the Editor. These previews provide insight into the file's structure, layout, and formatting, helping users ensure accurate translations within the correct context. This is particularly helpful for identifying discrepancies or formatting issues without leaving the Editor. While the **Translated File Preview** is available to all users, the **Source File Preview** is restricted to members with Developer / Translation Requestor permissions or higher. -To open a file in either of these previews, click on the Main menu in the upper-left corner, go to **File**, and select the needed file preview mode. +To open a file in either of these previews, go to **File** in the main menu, and select the needed file preview mode. ### Replace in Suggested Translations @@ -651,13 +688,12 @@ To replace previously added translations with the new ones, follow these steps: 1. In the project *Dashboard* tab, select the necessary language. 2. Click **Translate All** or choose a file for translation. - 3. Click on the Main menu in the upper-left corner. - 4. Go to **File > Replace in Translations**. - 5. Enter the word, phrase, or sentence you want to substitute and the text to replace it with. Similarly to [string search](#string-search), you can use the *Match case* and *Exact match* options to refine the search results. - 6. From the drop-down menu, specify the scope of your search, selecting between *File*, *All files*, or *Filtered strings* options. - 7. Click **Find** to preview the strings that will be replaced. Find and Replace results - 8. *(Optional)* Click the *Settings* drop-down menu on the right and select what information to display in the search results other than translations. You can choose between *Key*, *Context*, and *Source*. - 9. Select the translations you want to replace and click **Replace Selected** to finish. + 3. Go to **Edit > Replace in Translations**. + 4. Enter the word, phrase, or sentence you want to substitute and the text to replace it with. Similarly to [string search](#string-search), you can use the *Match case* and *Exact match* options to refine the search results. + 5. From the drop-down menu, specify the scope of your search, selecting between *File*, *All files*, or *Filtered strings* options. + 6. Click **Find** to preview the strings that will be replaced. Find and Replace results + 7. *(Optional)* Click the *Settings* drop-down menu on the right and select what information to display in the search results other than translations. You can choose between *Key*, *Context*, and *Source*. + 8. Select the translations you want to replace and click **Replace Selected** to finish. While translators can perform replacements only in their own translations, project members with proofreader permissions (or higher) can modify all suggested translations. Authorship of translations is preserved. @@ -671,14 +707,13 @@ To replace source texts, follow these steps: 1. In the project *Dashboard* tab, select the necessary language. 2. Click **Translate All** or choose a file for translation. - 3. Click on the Main menu in the upper-left corner. - 4. Go to **File > Replace in Sources**. - 5. Enter the word, phrase, or sentence you want to substitute and the text to replace it with. Similarly to [string search](#string-search), you can use the *Match case* and *Exact match* options to refine the search results. - 6. From the drop-down menu, specify the scope of your search, selecting between *File*, *All files*, or *Filtered strings* options. - 7. Click **Find** to preview the strings that will be replaced. Find and Replace results - 8. *(Optional)* Click the *Settings* drop-down menu on the right and select what information to display in the search results other than strings. You can choose between *Key* and *Context*. - 9. In the lower-left corner, click the drop-down menu and select the preferred behavior for the translations of the source strings to be replaced. You can choose between *Keep Translations*, *Remove Approvals*, or *Delete Translations*. - 10. Select the source strings you want to replace and click **Replace Selected** to finish. + 3. Go to **Edit > Replace in Sources**. + 4. Enter the word, phrase, or sentence you want to substitute and the text to replace it with. Similarly to [string search](#string-search), you can use the *Match case* and *Exact match* options to refine the search results. + 5. From the drop-down menu, specify the scope of your search, selecting between *File*, *All files*, or *Filtered strings* options. + 6. Click **Find** to preview the strings that will be replaced. Find and Replace results + 7. *(Optional)* Click the *Settings* drop-down menu on the right and select what information to display in the search results other than strings. You can choose between *Key* and *Context*. + 8. In the lower-left corner, click the drop-down menu and select the preferred behavior for the translations of the source strings to be replaced. You can choose between *Keep Translations*, *Remove Approvals*, or *Delete Translations*. + 9. Select the source strings you want to replace and click **Replace Selected** to finish. ### Pre-translation in the Editor @@ -688,10 +723,9 @@ The **Pre-translation** feature in the Editor allows you to apply translations t To apply Pre-translation in the Editor, follow these steps: - 1. You can apply pre-translation in the Editor in two ways: - * **Main menu** – click on the Main menu in the upper-left corner, go to **File** and select the preferred pre-translation method. - * **String menu** (available in **Side-by-Side** and **Multilingual** modes) – click in the upper-right and select the preferred pre-translation method. - 2. Configure the following pre-translation parameters: + 1. Open the String menu by clicking in the upper-right and select **Pre-translate**. + 2. Select the preferred pre-translation method. + 3. Configure the following pre-translation parameters: * **Scope** – select which strings to apply pre-translation to: * **Selected strings** (Specific to **Side-by-Side** and **Multilingual** modes) – applies only to strings manually selected in the Editor. * **Filtered strings** – applies to all strings matching the current filter. @@ -718,7 +752,7 @@ To apply Pre-translation in the Editor, follow these steps: * **All (skip auto-substituted translations)** – approve everything except translations improved by auto-substitution. * **Translation engine** (Specific to pre-translation via MT) – select the machine translation engine to use. * **AI prompt** (Specific to pre-translation via AI) – select the prompt that will guide the AI model’s behavior during pre-translation. - 3. Click **Pre-Translation**. + 4. Click **Pre-Translation**. In Side-by-side and Comfortable modes, pre-translation is applied to the single language currently selected in the Editor. In Multilingual mode, translations are applied across all selected languages, as this mode allows working with multiple languages simultaneously. @@ -743,22 +777,24 @@ You can create a custom filter for strings by clicking the **Filter strings** This option only appears if your project uses labels. +* **Translations** – Filter by translation status. Options include *Untranslated*, *Partially Translated (Plurals)*, *Translated*, *Same as Source String*, and *Modified Source Strings*. +* **Duplicates** – Filter strings based on their duplicate status. Options include *Master Strings*, *Duplicates Only*, *Duplicates with Shared Translations*, and *Duplicates with Own Translations*. +* **Approvals** – Filter strings by their approval status. Options include *Translated, Not Approved*, *Partially Approved (Plurals)*, *Approved*, and *Have Translations After Approval*. +* **TM, MT and AI** – Filter strings based on their translation origin. Options include *Translated by MT*, *Translated by TM*, *Translated by AI*, or *Translated by TM or MT or AI*. +* **Pre-translation** – Filter strings based on whether pre-translation was applied. Options include *Used* or *Not Used*. +* **Comments** – Filter strings by comments or issues. Options include *Do Not Have Comments*, *Have Comments*, *Unresolved Issues*, *General Question Issues*, *Current Translation Is Wrong Issues*, *Lack of Contextual Information Issues*, or *Mistake in Source String Issues*. +* **Screenshots** – Filter strings that are *With Screenshots* or *Without Screenshots*. * **Visibility** – Filter strings by their visibility to translators: *Visible* or *Hidden*. -* **QA Issues** – Filter strings based on quality assurance issues. You can filter for strings with any QA issue, no QA issues, or specific types like *Tags mismatch* or *Spelling mistakes*. +* **QA Issues** – Filter strings based on quality assurance issues. Options include *Without QA Checks*, *QA check in progress*, *All* issues, or specific errors like *Tags mismatch*, *Spelling mistakes*, and *Punctuation mismatch*. * **String Type** – Filter by string format. Options include *Simple String*, *Plurals*, or *ICU*. * **Votes** – Filter strings by the net number of votes. Options are *Greater Than* or *Less Than* a specified number. -* **Translated by** – Filter for strings translated (or not translated) by a specific project member. +* **Translated By** – Filter for strings *Translated By* or *Not Translated By* a specific project member. +* **Approved By** – Filter for strings *Approved By* or *Not Approved By* a specific project member. #### Verbal Expressions @@ -799,14 +835,14 @@ Here are a couple of examples of how this logic works in practice: #### Sorting Options -* **Sort by** – Organize the filtered strings based on a selected criterion. The available options are: - * *Original sort order* - * *Strings added* (by date) - * *Translations updated* (by date) - * *Last comment added* (by date) +* **Sort By** – Organize the filtered strings based on a selected criterion. The available options are: + * *Original Sort Order* + * *Strings Added* + * *Translations Updated* + * *Last Comment Added* * *Alphabet (Source Text)* * *Alphabet (Identifier)* - * *Length* (of the source string) + * *Length* * *Votes* * You can also set the sort order to **Ascending** or **Descending**. @@ -830,28 +866,26 @@ In Side-by-Side or Multilingual modes, you can pin