{"id":238715,"date":"2025-07-12T10:58:54","date_gmt":"2025-07-12T10:58:54","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/just-translate\/"},"modified":"2025-09-12T10:18:31","modified_gmt":"2025-09-12T10:18:31","slug":"just-translate","status":"publish","type":"plugin","link":"https:\/\/ml.wordpress.org\/plugins\/just-translate\/","author":20682936,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.0.10","stable_tag":"0.0.10","tested":"6.8.5","requires":"6.5","requires_php":"8.1","requires_plugins":null,"header_name":"Just Translate","header_author":"wpid","header_description":"Just translate your WordPress","assets_banners_color":"","last_updated":"2025-09-12 10:18:31","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/paypal.me\/akah","header_plugin_uri":"","header_author_uri":"https:\/\/www.wpid.dev\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":570,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.0.1":{"tag":"0.0.1","author":"vaksin","date":"2025-07-12 10:58:25"},"0.0.10":{"tag":"0.0.10","author":"vaksin","date":"2025-09-12 10:18:31"},"0.0.2":{"tag":"0.0.2","author":"vaksin","date":"2025-07-12 15:35:31"},"0.0.3":{"tag":"0.0.3","author":"vaksin","date":"2025-07-13 06:01:03"},"0.0.4":{"tag":"0.0.4","author":"vaksin","date":"2025-07-29 12:05:02"},"0.0.5":{"tag":"0.0.5","author":"vaksin","date":"2025-07-30 17:30:03"},"0.0.6":{"tag":"0.0.6","author":"vaksin","date":"2025-07-31 08:39:36"},"0.0.7":{"tag":"0.0.7","author":"vaksin","date":"2025-08-03 14:23:46"},"0.0.8":{"tag":"0.0.8","author":"vaksin","date":"2025-08-03 23:57:45"},"0.0.9":{"tag":"0.0.9","author":"vaksin","date":"2025-08-04 05:05:30"}},"upgrade_notice":{"0.0.10":"<p>Fix WP_DEBUG_DISPLAY condition<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3326762,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3326762,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.0.1","0.0.10","0.0.2","0.0.3","0.0.4","0.0.5","0.0.6","0.0.7","0.0.8","0.0.9"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[104,1385,99,152915,2333],"plugin_category":[48],"plugin_contributors":[214926],"plugin_business_model":[],"class_list":["post-238715","plugin","type-plugin","status-publish","hentry","plugin_tags-i18n","plugin_tags-language","plugin_tags-multilingual","plugin_tags-string-translation","plugin_tags-translation","plugin_category-language-tools","plugin_contributors-vaksin","plugin_committers-vaksin"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/just-translate\/assets\/icon-128x128.png?rev=3326762","icon_2x":"https:\/\/ps.w.org\/just-translate\/assets\/icon-256x256.png?rev=3326762","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Just Translate<\/strong> is a lightweight plugin that enables you to manage translations of your WordPress website easily from the admin panel. It automatically detects and stores any string that appears on your website and supports language prefixes in URLs (like <code>\/en\/<\/code>, <code>\/id\/<\/code>, etc.).<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Automatically capture and store untranslated strings  <\/li>\n<li>Define multiple supported languages  <\/li>\n<li>Friendly admin UI for translation management  <\/li>\n<li>Filter translated\/untranslated strings  <\/li>\n<li>Bulk delete strings  <\/li>\n<li>Frontend-based translation (theme-agnostic)<\/li>\n<li>SEO friendly<\/li>\n<\/ul>\n\n<h3>Shortcode<\/h3>\n\n<pre><code>[wpjt_language_switcher]\n<\/code><\/pre>\n\n<p><strong>Parameters:<\/strong><\/p>\n\n<ul>\n<li><code>hide_flag<\/code> \u2013 Hide language flag icon (default: <code>false<\/code>)<\/li>\n<li><code>show_name<\/code> \u2013 Show language name (default: <code>false<\/code>)<\/li>\n<li><code>display_name<\/code> \u2013 Define the type of name to display when <code>show_name=true<\/code><br \/>\nOptions:\n\n<ul>\n<li><code>locale<\/code>: e.g., <code>id-ID<\/code><\/li>\n<li><code>lang<\/code>: e.g., <code>id<\/code><\/li>\n<li><code>name<\/code>: e.g., <code>Indonesian (Indonesia)<\/code><\/li>\n<li><code>native_name<\/code>: e.g., <code>Indonesia (Indonesia)<\/code><\/li>\n<li><code>english_name<\/code>: e.g., <code>Indonesian (Indonesia)<\/code><\/li>\n<li><code>lang_name<\/code>: e.g., <code>Indonesian<\/code><\/li>\n<li><code>lang_native_name<\/code>: e.g., <code>Indonesia<\/code><\/li>\n<li><code>lang_english_name<\/code>: e.g., <code>Indonesian<\/code><\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p><strong>Example usage:<\/strong><\/p>\n\n<pre><code>[wpjt_language_switcher show_name=true display_name=lang_native_name]\n<\/code><\/pre>\n\n<h3>Hooks<\/h3>\n\n<p><strong>1. wpjt_locale_slug<\/strong><br \/>\nFilter the URL slug for a given locale.<\/p>\n\n<pre><code>add_filter('wpjt_locale_slug', function($slug, $locale) {\n    $slugs = [\n        'ja-JP' =&gt; 'japanese',\n        'id-ID' =&gt; 'my-slug',\n        'en-US' =&gt; 'en',\n    ];\n    return $slugs[$locale] ?? $slug;\n}, 10, 2);\n<\/code><\/pre>\n\n<p><strong>2. wpjt_setting_locales<\/strong><br \/>\nAdd or remove locale codes in the settings panel.<\/p>\n\n<pre><code>add_filter('wpjt_setting_locales', function($locales) {\n    $locales[] = 'jv-ID';\n    $locales[] = 'su-ID';\n    return $locales;\n});\n<\/code><\/pre>\n\n<p><strong>3. wpjt_should_skip_string<\/strong><br \/>\nSkip specific strings from being translated.<\/p>\n\n<pre><code>add_filter('wpjt_should_skip_string', function($skip, $string) {\n    if (trim($string) === 'WordPress') {\n        $skip = true;\n    }\n    return $skip;\n}, 10, 2);\n<\/code><\/pre>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/just-translate\/<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Go to <strong>Translations &gt; Settings<\/strong> to configure your supported locales.<\/li>\n<li>Begin using the translation panel to manage detected strings.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='how%20are%20strings%20detected%3F'><h3>How are strings detected?<\/h3><\/dt>\n<dd><p>Every text test that appears on your website will be captured and stored automatically if it has not been translated.<\/p><\/dd>\n<dt id='does%20it%20support%20custom%20post%20types%20or%20themes%3F'><h3>Does it support custom post types or themes?<\/h3><\/dt>\n<dd><p>Yes. The plugin is theme-agnostic and works with custom post types, themes, and almost all builders (please let me know if there are any builders that are incompatible).<\/p><\/dd>\n<dt id='how%20do%20i%20switch%20languages%3F'><h3>How do I switch languages?<\/h3><\/dt>\n<dd><p>Use the <code>[wpjt_language_switcher]<\/code> shortcode to display a language switcher.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.0.10<\/h4>\n\n<p>Fix WP_DEBUG_DISPLAY condition<\/p>\n\n<h4>0.0.9<\/h4>\n\n<ul>\n<li>Fix cache by device<\/li>\n<li>Add ability to translate link tag url<\/li>\n<\/ul>\n\n<h4>0.0.8<\/h4>\n\n<ul>\n<li>Fix WP_Filesystem Initialization<\/li>\n<\/ul>\n\n<h4>0.0.7<\/h4>\n\n<ul>\n<li>Change cache storage from database to files<\/li>\n<li>Add ability to translate http header links<\/li>\n<\/ul>\n\n<h4>0.0.6<\/h4>\n\n<ul>\n<li>Fix internal link recognition when no scheme or host is specified<\/li>\n<li>Code refactoring<\/li>\n<\/ul>\n\n<h4>0.0.5<\/h4>\n\n<ul>\n<li>improve perfomance (cache the translated html)<\/li>\n<li>Code refactoring<\/li>\n<\/ul>\n\n<h4>0.0.4<\/h4>\n\n<ul>\n<li>Fixed bugs in string cache keys<\/li>\n<li>Changed the condition for skipping string registration from WP_DEBUG to WP_DEBUG_DISPLAY.<\/li>\n<li>Code refactoring<\/li>\n<\/ul>\n\n<h4>0.0.3<\/h4>\n\n<ul>\n<li>Add hreflang tags.<\/li>\n<li>Add Content-Language header.<\/li>\n<\/ul>\n\n<h4>0.0.2<\/h4>\n\n<ul>\n<li>refactor.<\/li>\n<\/ul>\n\n<h4>0.0.1<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Automatically captures and translates text strings using a custom translation panel with multi-language support.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/238715","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=238715"}],"author":[{"embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vaksin"}],"wp:attachment":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=238715"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=238715"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=238715"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=238715"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=238715"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=238715"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}