{"id":17605982,"url":"https://github.com/vlad-timotei/wpgp-tools","last_synced_at":"2025-06-17T02:34:23.474Z","repository":{"id":42499273,"uuid":"366275395","full_name":"vlad-timotei/wpgp-tools","owner":"vlad-timotei","description":"A browser extension to help you translate faster and better on translate.w.org","archived":false,"fork":false,"pushed_at":"2023-04-12T13:19:28.000Z","size":532,"stargazers_count":20,"open_issues_count":5,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-30T10:47:40.213Z","etag":null,"topics":["chrome-extension","translation","userscript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vlad-timotei.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-11T06:15:12.000Z","updated_at":"2024-07-06T08:48:29.000Z","dependencies_parsed_at":"2024-10-23T06:27:15.012Z","dependency_job_id":null,"html_url":"https://github.com/vlad-timotei/wpgp-tools","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/vlad-timotei/wpgp-tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlad-timotei%2Fwpgp-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlad-timotei%2Fwpgp-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlad-timotei%2Fwpgp-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlad-timotei%2Fwpgp-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vlad-timotei","download_url":"https://codeload.github.com/vlad-timotei/wpgp-tools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vlad-timotei%2Fwpgp-tools/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260277818,"owners_count":22985139,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chrome-extension","translation","userscript"],"created_at":"2024-10-22T15:12:46.061Z","updated_at":"2025-06-17T02:34:23.410Z","avatar_url":"https://github.com/vlad-timotei.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# WPGPTools - Translate faster and better\n[![License](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://github.com/vlad-timotei/wpgp-tools/blob/main/LICENSE) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/181eea3a14fe4b9cae1c6ad2ff8c802a)](https://www.codacy.com/gh/vlad-timotei/wpgp-tools/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=vlad-timotei/wpgp-tools\u0026amp;utm_campaign=Badge_Grade)\n\n\u003cimg align=\"right\" src=\"https://user-images.githubusercontent.com/65488419/124776835-6defbf00-df48-11eb-9594-c538fe220dbd.png\"\u003e\n\nAdjust the **Settings** for this extension in the top blue navigation menu *Tools Settings*\n\n## #1 Consistency Tools \n[Watch a demo video for Consistency Tool features.](https://youtu.be/k6oAFmBvIig)\n\n\u003cimg align=\"right\" src=\"https://user-images.githubusercontent.com/65488419/117620318-11a33580-b179-11eb-9968-f1148d58686c.png\"\u003e\n\n**Quick links**: copy URL or open in new tab\n- Permalink\n- History\n- Consistency\n\n\u003cimg align=\"right\" src=\"https://user-images.githubusercontent.com/65488419/136012481-2c578ceb-8eaa-461a-9240-1ae84f54ef35.png\"\u003e\n\n**Search** a string in:\n- current project, current locale\n- WordPress development project, current locale\n- consistency tool, current locale\n- multiple plugin slugs separated by \u0026nbsp; ` `\n\n\u003cbr\u003e\n\u003cimg align=\"right\" src=\"https://user-images.githubusercontent.com/65488419/136034004-c4cc7d52-36c3-4123-81f8-622eb5833540.png\"\u003e\n\n\n**Suggestions** directly from Consistency\n - Auto loads on editor opening or `Alt + C` to load them all.\n - Translation Memory sometimes has bad translations (see [#meta5340](https://meta.trac.wordpress.org/ticket/5340))\n - This shows Consistency translations directly in the editor panel\n - Button or Alt + the number of the suggestion to replace it in the textarea\n - Also displays plural forms and highlights spaces\n - ` ⟵` next to the current translation of the string if available\n\n**GoogleTranslate** button - Link or Alt + G to open in a new tab current translated string in current locale, if locale exists on GT. ([missing locales in GT](https://gist.github.com/vlad-timotei/3f558547ac2bc0f3120f869fba7d8bec))\n\n**Non-translatable** strings\n- Highlight non-translatable strings in original\n- Click on any non-translatable item in original\n- Display real time usage of non-translatable strings\n- Insert individual or Copy all \n\n![image](https://user-images.githubusercontent.com/65488419/131497503-b4809e96-dbb3-4203-b19a-de48dd2b6921.png)\n\n## #2 General Checks \n[Watch a demo video for Checks feature.](https://youtu.be/R4M_TBSRWSE)\n\nThese checks run for all translated strings when page loads and when a translation is submitted. \u003cbr\u003e Checks can be set as: Warning \u0026 prevent save, Just notification or Don't check.\n\n\n**Notices and labels** for checks results\n\n![image](https://user-images.githubusercontent.com/65488419/125183339-84369d00-e21e-11eb-9d29-e78be7fe508e.png)\n\n**Highlights** double spaces and user defined \"bad words\" *(eg. below: link)*\n\n![image](https://user-images.githubusercontent.com/65488419/125183284-f8bd0c00-e21d-11eb-9e80-f9608f8eaab5.png) \u003cbr\u003e\n\n\u003cimg align=\"right\" width=\"550\" src=\"https://user-images.githubusercontent.com/65488419/117626608-f4be3080-b17f-11eb-91a7-fefd621df320.png\" \u003e\n\n\u003cbr\u003e\n\n\u003cbr\u003e\n\n\u003cbr\u003e\n\n\u003cbr\u003e\n\n\u003cbr\u003e\n\nTo bypass warnings, click \u003cbr\u003e Save / Approve with warnings\n\n\u003cbr\u003e\n\n\u003cbr\u003e\n\n\nPersonalize checks as you see fit:\n\n![image](https://user-images.githubusercontent.com/65488419/141654544-7ad1ea41-1dba-4338-b724-41becdcbef75.png)\n\n**Prevent saving these words** is a user defined list of words that if found in a translation will generate a warning. Separated by comma, no space, case insensitive. \n\nTIP: Include a double space string  ` ` ` `  in this field to **always** prevent the saving of double spaces. \n\n**Count and match these** is a user defined list of terms or symbols that will be counted both in original and in translation. If counts don't match, a warning will be generated. Separated by comma, no space, case insensitive.\n\n**Tag spaces** checks will ensure that:\n- there are no missing spaces before or after the tag pair. Wrong example: `This is\u003cstrong\u003ebold\u003c/strong\u003eand nice.`\n- there are no additional spaces inside the tag pair. Wrong example: `This is \u003cstrong\u003e bold \u003c/strong\u003e and nice.`\n\nFilter strings based on warnings: \u003cbr\u003e\n![image](https://user-images.githubusercontent.com/65488419/121800720-26715e00-cc3c-11eb-8b29-6e63f5db5b13.png)\u003cbr\u003e\n\n## #3 Locale specific Checks\n\nIf your locale uses a different symbol other than `.` for period, you can set it here. Additional specific locale checks can be added if requested in an issue.\n\n![image](https://user-images.githubusercontent.com/65488419/119268770-1a761b80-bbfd-11eb-96ed-037e1c54ba1d.png)\n\n## #4 History Tools\n[Watch a demo video for History Tools feature.](https://youtu.be/ZKfqKD-ZIYE)\n\nThese are **opt-in** tools, so go to Settings \u003e History Tools and enable them if you want to use them. \n\n\u003cimage align=\"right\" src=\"https://user-images.githubusercontent.com/65488419/124787689-5c5ee500-df51-11eb-97d6-8f89b5fca581.png\"\u003e\n\u003cbr\u003e\n\n\u003cbr\u003e\n\n**I. History Compare** compares the string with a corresponding string from History\n\n\u003cbr\u003e\n\n| String status | Compared with |\n| --- | --- |\n| Old | Current |\n| Rejected | Current |\n| Waiting | Current |\n| Fuzzy | Waiting |\n\n \u003cbr\u003e\n \n\n \u003cbr\u003e\n\nIt adds preview and editor label and a diff highlighter in editor.\n \n \u003cbr\u003e\n\n \u003cbr\u003e\n\n \u003cbr\u003e\n \n \u003cimg align=\"right\" src=\"https://user-images.githubusercontent.com/65488419/124783181-8c0bee00-df4d-11eb-88d7-9ad0598f4455.png\"\u003e\n \u003cbr\u003e\n\n \u003cbr\u003e\n \n**II. History Count** counts (regardless of string status) types of strings in History for the respective string; doesn't count itself. It also checks if there are multiple current translations for the same string and will show a visual status of this check: ❌ or ✔️.\n \n**III. History Tools in Translation History** enables or disables these tools on History pages opened trough a link.\n \n \u003cbr\u003e\n \n## #5 Bulk Consistency Tools for GTEs\n[Watch a demo video for Bulk Consistency Tools feature.](https://youtu.be/kvUgUkQUfm0)\n\nThis is an **opt-in** only for GTEs tool. Even if you activate it, it only fully works for GTEs.\n- Replace strings in bulk\n- Reject strings in bulk\n- Limited to 25 strings per action\n\n![image](https://user-images.githubusercontent.com/65488419/131462782-b46f1e2c-5e4f-41e1-aab4-614b3c2cbe0b.png)\n\n \n## #6 Custom Keyboard Shortcuts\n\n| Action | Shortcut | Alternative Shortcut for Mac |\n| --- | --- | --- |\n| **F**uzzy | Ctrl + \\* (numeric keyboard) \u003cbr/\u003e Control + Shift + **F**  | \n| **S**ave with warnings | **S**hift + Ctrl + Enter |\n | Load all **C**onsistency suggestions | Alt + **C** | control + **C** |\n| Copy consistency #**3** | Alt + **3** | control + **3** |\n| **G**oogle Translate | Alt + **G** | control + **G** |\n| Focus on **S**earch in **P**rojects  |   Alt + **S** or Alt + **P** |  control + **S** or control + **P** |\n| Insert all **N**on-translatables | Alt + **N** | control + **N** | \n\nNote: Disable custom keyboard shortcuts if you use keyboard `Alt + numbers` to insert special characters. WPGPT overrides that shortcut.\n\n## #7 Other features\n- Keeps the editor in the middle of the screen when Page Up/Page Down shortcuts are used\n- *Added* and *Last modified* in browser's local date format and time zone. This works correctly if the device language and time are set to your country language and timezone.\n- Prompts for unsaved strings\n- Adds an Anonymous author checkbox for user filter\n- Consistency Bulk replacement for GTEs (disabled by default)\n\n![anonymous_user](https://user-images.githubusercontent.com/65488419/127504757-2547f47b-d8fb-47f7-b362-47eb6037597b.gif)\n\n\n## Installation\n\n#### Chrome, Edge, Opera \u0026 Brave - [Download from Chrome Web Store](https://chrome.google.com/webstore/detail/wpgp-tools/bioidgadpdnajjaddfmoaohflfbmmhcn)\n#### Firefox - [Download from Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/wpgpt/)\n\n\n(The Tampermonkey user script version no longer get updates notifications and will not be maintained, so please use the official extension.)\n \n## GlotDict compatibility\n WPGPT asumes by default that you use GlotDict as well and so it disables features that have been imported in GlotDict. If you don't use GlotDict, change this behaviour in Tools Settings. But take a look first at what GlotDict has for you! :) \n\n## Backup \u0026 Restore Settings\n\n \u003cimg align=\"right\" src=\"https://user-images.githubusercontent.com/65488419/127963637-fde72b20-c931-43db-a187-3c3aa9a08044.gif\"\u003e\n\nYour settings are saved **locally** using LocalStorage so they will remain saved in that browser untill you clear your browser data.\nTo backup and restore WPGPT settings:\n\n - Go to Settings.\n - Drag and drop **Backup WPGPT Settings** to your Bookmarks bar.\n - Restore your settings by clicking that bookmark.\n \n## Known issues\n- Tooltips overlap for the Quick Links section (should be fixed upstream)\n\n## Future version features\n\n- Personal translation notes \u0026 project status snippets\n- ~~Personal glossary~~ (this is included in [WPTranslationFiller extension](https://github.com/vibgyj/WPTranslationFiller/) and [GlotDict](https://github.com/Mte90/GlotDict) and I don't plan to overlap features!)\n- Gradually, some WPGPT features will be implemented in GlotDict, as part of a cross-project initiative. That said, WPGPT will continue to exist for those interested.\n- When a feature will be included in GlotPress (the long term plan for as many features as possible) it will be excluded from this extension.\n\n\n### [Changelog](/CHANGELOG.md)\n\n### [Documentation](https://github.com/vlad-timotei/wpgp-tools/wiki)\n\n### Contributions\nContributions are welcome, bugreports, suggestions and even pull requests! No limitations, shoot for the stars!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvlad-timotei%2Fwpgp-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvlad-timotei%2Fwpgp-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvlad-timotei%2Fwpgp-tools/lists"}