[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fVlyd26tkFAn1XEvnZQfEN3RVPPFpFQAE3KqH16cXfnQ":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":37,"analysis":127,"fingerprints":223},"gp-convert-pt-ao90","Convert PT AO90 for GlotPress","1.5.1","Pedro Mendonça","https:\u002F\u002Fprofiles.wordpress.org\u002Fpedromendonca\u002F","\u003Cp>This plugin for GlotPress customizes the default behavior of the Portuguese (Portugal) Locales, allowing you to automatically convert the approved\u002Fcurrent strings in Portuguese (Portugal) to its variant of Portuguese (Portugal, AO90).\u003C\u002Fp>\n\u003Cp>It keeps the Portuguese (Portugal) root translations automatically converted and synced with its Portuguese (Portugal, AO90) variant translations within your GlotPress install.\u003C\u002Fp>\n\u003Cp>Optionally it’s possible to disable the Portuguese (Portugal, AO90) variant translations editing, approval and importing, making it read-only.\u003C\u002Fp>\n\u003Cp>The only translations added to the Portuguese (Portugal, AO90) variant translation set are those which are different from the Portuguese (Portugal) root translation.\u003C\u002Fp>\n\u003Cp>The strings that don’t need any conversion remain untranslated on the variant, falling back to the root Locale.\u003C\u002Fp>\n\u003Cp>This plugin was heavily inspired by the \u003Ca href=\"https:\u002F\u002Fmeta.trac.wordpress.org\u002Fticket\u002F5471\" rel=\"nofollow ugc\">Serbian Latin\u003C\u002Fa> solution for transliteration of Serbian Cyrillic locale from \u003Ca href=\"https:\u002F\u002Fmeta.trac.wordpress.org\u002Fbrowser\u002Fsites\u002Ftrunk\u002Fwordpress.org\u002Fpublic_html\u002Fwp-content\u002Fplugins\u002Fwporg-gp-customizations\u002Finc\u002Flocales\u002Fclass-serbian-latin.php?rev=10360\" rel=\"nofollow ugc\">translate.wordpress.org\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>The language conversion uses the open source tool \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpedro-mendonca\u002FConvert-PT-AO90\" rel=\"nofollow ugc\">Convert PT AO90\u003C\u002Fa> to replace entire words from a prebuilt list.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Check for active GlotPress.\u003C\u002Fli>\n\u003Cli>Check for existent \u003Ccode>pt\u003C\u002Fcode> root and \u003Ccode>pt-ao90\u003C\u002Fcode> variant translation sets.\u003C\u002Fli>\n\u003Cli>Convert \u003Ccode>current\u003C\u002Fcode> Portuguese (Portugal) root translations and add to the Portuguese (Portugal, AO90) variant translations.\u003C\u002Fli>\n\u003Cli>Delete variant unused translations instead of keeping as \u003Ccode>rejected\u003C\u002Fcode>, \u003Ccode>fuzzy\u003C\u002Fcode>, \u003Ccode>old\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Delete \u003Ccode>current\u003C\u002Fcode> variant translation if a new root translation (same \u003Ccode>original_id\u003C\u002Fcode>) is added and doesn’t need conversion.\u003C\u002Fli>\n\u003Cli>Sync button for GlotPress administrators to force convert the complete translation from root set to variant set.\u003C\u002Fli>\n\u003Cli>Highlight the differences in the automatically converted texts.\u003C\u002Fli>\n\u003Cli>Read-only mode: Use the filter \u003Ccode>gp_convert_pt_ao90_edit\u003C\u002Fcode> to disable editing, approval and importing translations in the \u003Ccode>pt-ao90\u003C\u002Fcode> variant.\u003C\u002Fli>\n\u003Cli>Optionally you can always save the translations to the Variant, this overrides the fallback to the root Locale. Return \u003Ccode>true\u003C\u002Fcode> in the new filter \u003Ccode>gp_convert_pt_ao90_always_create_variant_translation\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Conversion highlight: Use the filter \u003Ccode>gp_convert_pt_ao90_showdiff\u003C\u002Fcode> to optionally disable the conversion diff highlight.\u003C\u002Fli>\n\u003Cli>Supports GlotPress 3.0.0-alpha.4, with the real variants and fallback feature.\u003C\u002Fli>\n\u003Cli>Supports GlotPress 4.0.0 (current development), without the real variants and fallback feature.\u003C\u002Fli>\n\u003Cli>Supports Traduttore for also schedule the language-pack build for the converted variant.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Requirements\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FGlotPress\u002FGlotPress\u002Freleases\u002Ftag\u002F3.0.0-alpha.4\" rel=\"nofollow ugc\">GlotPress 3.0.0-alpha.4\u003C\u002Fa> with Variants support.\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FGlotPress\u002FGlotPress\u002Freleases\u002Ftag\u002F4.0.0\" rel=\"nofollow ugc\">GlotPress 4.0.0\u003C\u002Fa> without Variants support.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Translation set (root): \u003Ccode>Portuguese (Portugal)\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Locale = \u003Ccode>pt\u003C\u002Fcode>;\u003C\u002Fli>\n\u003Cli>Slug = \u003Ccode>default\u003C\u002Fcode>;\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Translation set (variant): \u003Ccode>Portuguese (Portugal, AO90)\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Locale = \u003Ccode>pt-ao90\u003C\u002Fcode>;\u003C\u002Fli>\n\u003Cli>Slug = \u003Ccode>default\u003C\u002Fcode>;\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n","Language tool for GlotPress to convert text according to the Portuguese Language Orthographic Agreement of 1990 (PT AO90).",0,3912,"2026-01-03T12:43:00.000Z","6.9.4","5.3","7.4",[18,19,20,21,22],"ao90","glotpress","localization","portuguese","translation","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgp-convert-pt-ao90\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgp-convert-pt-ao90.1.5.1.zip",100,null,"2026-03-15T15:16:48.613Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":32,"avg_security_score":33,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"pedromendonca",7,120,98,30,93,"2026-04-04T14:20:32.130Z",[38,61,80,97,114],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":48,"num_ratings":49,"last_updated":50,"tested_up_to":51,"requires_at_least":52,"requires_php":53,"tags":54,"homepage":58,"download_link":59,"security_score":60,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"localize","Localize WordPress","0.4","S","https:\u002F\u002Fprofiles.wordpress.org\u002Fsushkov\u002F","\u003Cp>This plugin allows you to switch your WordPress installation to use any of the\u003Cbr \u002F>\nlanguages available on \u003Ca href=\"http:\u002F\u002Ftranslate.wordpress.org\" rel=\"nofollow ugc\">GlotPress\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Some of the features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>No gettext compiler required!\u003C\u002Fli>\n\u003Cli>Does all the dirty work from editing \u003Ccode>wp-config.php\u003C\u002Fcode> to downloading the right files\u003C\u002Fli>\n\u003Cli>Can switch between versions. Available: stable and dev\u003C\u002Fli>\n\u003Cli>Uses GlotPress api!\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cdiv class=\"embed-vimeo\" style=\"text-align: center;\">\u003Ciframe loading=\"lazy\" src=\"https:\u002F\u002Fplayer.vimeo.com\u002Fvideo\u002F19433386\" width=\"750\" height=\"422\" frameborder=\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen>\u003C\u002Fiframe>\u003C\u002Fdiv>\n","Easily switch to any localization from GlotPress",200,23338,90,2,"2011-07-06T00:08:00.000Z","3.2.1","2.9","",[19,55,20,56,57],"locale","switch","translations","https:\u002F\u002Fgithub.com\u002Fstas\u002Flocalize","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flocalize.0.4.zip",85,{"slug":62,"name":63,"version":64,"author":65,"author_profile":66,"description":67,"short_description":68,"active_installs":69,"downloaded":70,"rating":25,"num_ratings":71,"last_updated":72,"tested_up_to":14,"requires_at_least":73,"requires_php":74,"tags":75,"homepage":78,"download_link":79,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"pt-ao90","PT AO90","0.6","Marco Almeida | Webdados","https:\u002F\u002Fprofiles.wordpress.org\u002Fwebdados\u002F","\u003Cp>The PT AO90 plugin sets WordPress language to Portuguese (AO90), according to the orthographic reform of 1990, and adds fallbacks to the pre-AO90 orthography, the default language pack for Portugal (the 1945 norm, reviewed in 1973), when AO90 translation is not available.\u003C\u002Fp>\n\u003Cp>You don’t need this plugin to set the Portuguese (AO90) language, you can set it in WordPress options. But this enables fallbacks to the default Portuguese (pre-AO90) language packs, instead of WordPress defaults (en_US). WordPress does not currently supports language fallbacks, so using this plugin is the only way to have non-AO90 translated projects (plugins and themes) in Portuguese (pre-AO90) instead of English.\u003C\u002Fp>\n\u003Ch4>Extra information\u003C\u002Fh4>\n\u003Cp>No language files are included with this plugin. They are loaded from the official WordPress repository (GlotPress). Not every file has 100% strings translated for Portuguese (AO90), therefore, when you activate the plugin, some text may fallback to the default Portuguese pre-AO90 orthography.\u003C\u002Fp>\n\u003Cp>The Portuguese Orthographic Agreement form available in the WordPress repository is mainly obtained by conversion with Lince software, by \u003Ca href=\"http:\u002F\u002Fwww.portaldalinguaportuguesa.org\u002F?action=lince\" rel=\"nofollow ugc\">ILTEC\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Credits\u003C\u002Fh4>\n\u003Cp>This project is being curated by the \u003Ca href=\"http:\u002F\u002Fwp-portugal.com\" rel=\"nofollow ugc\">WordPress Portuguese Community\u003C\u002Fa> and replaces \u003Ca href=\"https:\u002F\u002Fpt.wordpress.org\u002Fplugins\u002Fpt-variants\u002F\" rel=\"nofollow ugc\">PT Variants\u003C\u002Fa>, now that the Portuguese (AO90) is included in \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Flocale\u002Fpt\" rel=\"nofollow ugc\">GlotPress\u003C\u002Fa>. Let us know if it’s useful or if something isn’t right.\u003C\u002Fp>\n\u003Cp>The ideas behind this plugin were suggested by \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fswissspidy\u002Fpreferred-languages\" rel=\"nofollow ugc\">Preferred Languages\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fswissspidy\" rel=\"nofollow ugc\">Pascal Birchler’s\u003C\u002Fa> plugin available on GitHub.\u003C\u002Fp>\n\u003Cp>The plugin’s banner is blatantly inspired on this \u003Ca href=\"http:\u002F\u002Fpt.365psd.com\u002Fpsd\u002Ffree-psd-switch-buttons-template-53516\" rel=\"nofollow ugc\">template\u003C\u002Fa>.\u003C\u002Fp>\n","Sets WordPress language to Portuguese (AO90), according to the orthographic reform of 1990, and adds fallbacks to the pre-AO90 orthography.",50,3072,1,"2025-06-14T10:22:00.000Z","5.8","7.2",[76,18,77,21,57],"acordo-ortografico","portugal","https:\u002F\u002Fwp-portugal.com\u002Ftraducao\u002Fplugin-pt-ao90\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpt-ao90.0.6.zip",{"slug":81,"name":82,"version":83,"author":84,"author_profile":85,"description":86,"short_description":87,"active_installs":88,"downloaded":89,"rating":11,"num_ratings":11,"last_updated":90,"tested_up_to":14,"requires_at_least":91,"requires_php":53,"tags":92,"homepage":95,"download_link":96,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"glotpress-notify","GlotPress Notify","1.0.1","webaware","https:\u002F\u002Fprofiles.wordpress.org\u002Fwebaware\u002F","\u003Cp>\u003Ca href=\"https:\u002F\u002Fglotpress.trac.wordpress.org\u002Fwiki\u002FGlotPress\" rel=\"nofollow ugc\">GlotPress\u003C\u002Fa> is a great free tool for localising your plugins and themes. When translators add new translations to GlotPress, they don’t always tell you. If your GlotPress installation is paired with a WordPress installation, this plugin gives you an easy way to find out what’s waiting for approval:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>list the projects and languages with strings waiting for approval\u003C\u002Fli>\n\u003Cli>subscribe to email notifications for individual projects\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Admins, validators, and translators can all view strings waiting for approval and receive notification emails. End the guessing game.\u003C\u002Fp>\n\u003Ch4>Translations\u003C\u002Fh4>\n\u003Cp>Many thanks to the generous efforts of our translators:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Dutch (nl-NL) — \u003Ca href=\"https:\u002F\u002Fribwhost.nl\u002F\" rel=\"nofollow ugc\">Sander Keuzenkamp\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>French (fr-FR) — \u003Ca href=\"http:\u002F\u002Fwww.eticweb.ca\u002F\" rel=\"nofollow ugc\">Hugo Catellier\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If you’d like to help out by translating this plugin, please \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fglotpress-notify\" rel=\"nofollow ugc\">sign up for an account and dig in\u003C\u002Fa>. Yes, it’s GlotPress.\u003C\u002Fp>\n\u003Ch3>Contributions\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fglotpress-notify\" rel=\"nofollow ugc\">Translate into your preferred language\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwebaware\u002Fglotpress-notify\" rel=\"nofollow ugc\">Fork me on GitHub\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","notify WordPress users when new GlotPress translations strings are awaiting review",10,4468,"2025-12-14T04:03:00.000Z","3.7",[19,93,94,20,57],"language","localisation","http:\u002F\u002Fshop.webaware.com.au\u002Fdownloads\u002Fglotpress-notify\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fglotpress-notify.1.0.1.zip",{"slug":98,"name":99,"version":100,"author":101,"author_profile":102,"description":103,"short_description":104,"active_installs":88,"downloaded":105,"rating":106,"num_ratings":107,"last_updated":108,"tested_up_to":109,"requires_at_least":110,"requires_php":53,"tags":111,"homepage":53,"download_link":113,"security_score":60,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"pt-variants","PT Variants","0.1","Marco Pereirinha","https:\u002F\u002Fprofiles.wordpress.org\u002Fpereirinha\u002F","\u003Cp>[PT]\u003C\u002Fp>\n\u003Cp>PT Variants é uma forma de aplicar o Acordo Ortográfico de 1990 ao WordPress em português de Portugal. Também permite aplicar uma versão de português informal (mantida pelo \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fnbar\" rel=\"nofollow ugc\">Nuno Barreiro\u003C\u002Fa> e que segue a norma pré-AO90).\u003C\u002Fp>\n\u003Cp>Os ficheiros de linguagem incluídos com o plugin são exportados do \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Flanguages\u002Fpt\" rel=\"nofollow ugc\">repositório oficial de línguas do WordPress (GlotPress)\u003C\u002Fa>, mantido pela \u003Ca href=\"https:\u002F\u002Fmake.wordpress.org\u002Fpolyglots\u002Fteams\u002F?locale=pt_PT\" rel=\"nofollow ugc\">equipa de tradução\u003C\u002Fa> da \u003Ca href=\"http:\u002F\u002Fwp-portugal.com\" rel=\"nofollow ugc\">Comunidade Portuguesa de WordPress\u003C\u002Fa>. A versão AO90 é convertida usando o Lince, desenvolvido pelo \u003Ca href=\"http:\u002F\u002Fwww.portaldalinguaportuguesa.org\u002F?action=lince\" rel=\"nofollow ugc\">ILTEC\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Nem todos os ficheiros têm 100% das frases traduzidas, pelo que é possível que subsistam algumas na versão padrão.\u003C\u002Fp>\n\u003Cp>A propósito, que tal contribuir para a \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Flanguages\u002Fpt\" rel=\"nofollow ugc\">tradução portuguesa do WordPress\u003C\u002Fa>?\u003C\u002Fp>\n\u003Cp>O PT Variants partiu de algumas ideias do plugin \u003Ca href=\"https:\u002F\u002Fgithub.com\u002F2ndkauboy\u002Ftextdomain-overwrite\" rel=\"nofollow ugc\">textdomain-overwrite\u003C\u002Fa>, disponibilizado por \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fkau-boy\" rel=\"nofollow ugc\">Bernhard Kau\u003C\u002Fa> no GitHub.\u003C\u002Fp>\n\u003Cp>(A imagem acima é descaradamente baseada \u003Ca href=\"http:\u002F\u002Fpt.365psd.com\u002Fpsd\u002Ffree-psd-switch-buttons-template-53516\" rel=\"nofollow ugc\">neste modelo 365PSD\u003C\u002Fa>.)\u003C\u002Fp>\n\u003Cp>[EN]\u003C\u002Fp>\n\u003Cp>Choose the Portuguese variant that suits your needs. Though Portuguese has no official variants in Portugal, in WordPress, beside the default (the 1945 norm, reviewed in 1973), you can now choose the Portuguese Orthografic Agreement (1990) form or Informal Portuguese. This project is being curated by the WordPress Portuguese Community. Let us know if it’s useful or if something isn’t right.\u003C\u002Fp>\n\u003Cp>The language files included with this plugin are exported from the official WordPress repository (GlotPress). Not every file has 100% strings translated, therefore, you’ll probably catch some text in the default WordPress language.\u003C\u002Fp>\n\u003Cp>The Portuguese Orthografic Agreement form is obtained by conversion with Lince software, by \u003Ca href=\"http:\u002F\u002Fwww.portaldalinguaportuguesa.org\u002F?action=lince\" rel=\"nofollow ugc\">ILTEC\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>The ideas behind PT Variants were suggested by \u003Ca href=\"https:\u002F\u002Fgithub.com\u002F2ndkauboy\u002Ftextdomain-overwrite\" rel=\"nofollow ugc\">textdomain-overwrite\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fkau-boy\" rel=\"nofollow ugc\">Bernhard Kau’s\u003C\u002Fa> plugin available on GitHub.\u003C\u002Fp>\n\u003Cp>(The plugin’s banner above is blatantly inspired on this 365PSD \u003Ca href=\"http:\u002F\u002Fpt.365psd.com\u002Fpsd\u002Ffree-psd-switch-buttons-template-53516\" rel=\"nofollow ugc\">template\u003C\u002Fa>.)\u003C\u002Fp>\n","Permite ter o WordPress em português segundo o Acordo Ortográfico para a Língua Portuguesa de 1990 (ou em português informal).",2695,94,3,"2015-05-29T10:48:00.000Z","4.2.39","4.2.1",[18,93,112,21,57],"packs","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpt-variants.zip",{"slug":115,"name":116,"version":117,"author":7,"author_profile":8,"description":118,"short_description":119,"active_installs":11,"downloaded":120,"rating":11,"num_ratings":11,"last_updated":121,"tested_up_to":122,"requires_at_least":15,"requires_php":74,"tags":123,"homepage":125,"download_link":126,"security_score":60,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"gp-automatic-variants","Automatic Variants for GlotPress","1.0.0","\u003Cp>This plugin for GlotPress customizes the default behavior of a set of chosen pairs of Locales (root\u002Fvariant), allowing you to automatically convert the approved\u002Fcurrent strings in the root to its variant.\u003C\u002Fp>\n\u003Cp>It keeps the root translations automatically converted and synced with its variant translations within your GlotPress install.\u003C\u002Fp>\n\u003Cp>The only translations added to the variant translation set are those which are different from the root translation.\u003C\u002Fp>\n\u003Cp>The strings that don’t need any conversion remain untranslated on the variant, falling back to the root Locale.\u003C\u002Fp>\n\u003Cp>This plugin was heavily inspired by the \u003Ca href=\"https:\u002F\u002Fmeta.trac.wordpress.org\u002Fticket\u002F5471\" rel=\"nofollow ugc\">Serbian Latin\u003C\u002Fa> solution for transliteration of Serbian Cyrillic locale from \u003Ca href=\"https:\u002F\u002Fmeta.trac.wordpress.org\u002Fbrowser\u002Fsites\u002Ftrunk\u002Fwordpress.org\u002Fpublic_html\u002Fwp-content\u002Fplugins\u002Fwporg-gp-customizations\u002Finc\u002Flocales\u002Fclass-serbian-latin.php?rev=10360\" rel=\"nofollow ugc\">translate.wordpress.org\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Filter \u003Ccode>gp_automatic_variants_list\u003C\u002Fcode> to add your variant to the array of automatically converted variants.\u003C\u002Fli>\n\u003Cli>Filter \u003Ccode>gp_automatic_variants_convert_{variant_locale}\u003C\u002Fcode> to process the conversion of strings of the automatic variant.\u003C\u002Fli>\n\u003Cli>Check for GlotPress minimum requirements.\u003C\u002Fli>\n\u003Cli>Check if the added Locales are variants supported the installed GlotPress.\u003C\u002Fli>\n\u003Cli>Convert \u003Ccode>current\u003C\u002Fcode> root translations and add to the variant translation set.\u003C\u002Fli>\n\u003Cli>Delete variant unused translations instead of keeping as \u003Ccode>rejected\u003C\u002Fcode>, \u003Ccode>fuzzy\u003C\u002Fcode>, \u003Ccode>old\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Delete \u003Ccode>current\u003C\u002Fcode> variant translation if a new root translation (same \u003Ccode>original_id\u003C\u002Fcode>) is added and doesn’t need conversion.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Install GlotPress\u003C\u002Fh3>\n\u003Col>\n\u003Cli>\n\u003Cp>Install and activate GlotPress 3.0.0-alpha minimum version.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Install and activate this plugin from your plugins page.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Configure Automatic Variants for GlotPress\u003C\u002Fh3>\n\u003Col>\n\u003Cli>\n\u003Cp>Set the variants you want to be automatically converted with the filter \u003Ccode>gp_automatic_variants_list\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u002F**\n * Add my automatically converted variants.\n *\u002F\nfunction my_automatic_variants( $locales ) {\n    $additional_locales = array(\n        'ca-valencia',\n        'pt-ao90',\n        'ca-valencia',\n        'en-gb',\n        'de-at',\n        'de-ch',\n    );\n    return array_merge( $locales, $additional_locales );\n}\n\nadd_filter( 'gp_automatic_variants_list', 'my_automatic_variants' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Add your Locale actual conversion process with the filter \u003Ccode>gp_automatic_variants_convert_{variant_locale}\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cp>Example for the variant ‘pt-ao90’:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u002F**\n * Actual conversion of the string.\n *\u002F\nfunction convert_translation( $translation ) {\n    return do_something( $translation );\n}\n\nadd_filter( 'gp_automatic_variants_convert_pt-ao90', 'convert_translation' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>For every translation project, add both root and variant translation sets as usual.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Translate only on the root Locale and see the conversions automatically propagate to the variant.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Requirements\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FGlotPress\u002FGlotPress\u002Freleases\u002Ftag\u002F3.0.0-alpha.4\" rel=\"nofollow ugc\">GlotPress 3.0.0-alpha\u003C\u002Fa> with Variants support.\u003C\u002Fli>\n\u003C\u002Ful>\n","Plugin for GlotPress to manage automatically converted variants.",1123,"2022-08-10T14:11:00.000Z","5.8.13",[19,20,22,124],"variants","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgp-automatic-variants\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgp-automatic-variants.1.0.0.zip",{"attackSurface":128,"codeSignals":186,"taintFlows":213,"riskAssessment":214,"analyzedAt":222},{"hooks":129,"ajaxHandlers":182,"restRoutes":183,"shortcodes":184,"cronEvents":185,"entryPointCount":11,"unprotectedCount":11},[130,136,140,145,149,153,157,162,166,170,174,177],{"type":131,"name":132,"callback":133,"file":134,"line":135},"action","wp_loaded","closure","gp-convert-pt-ao90.php",83,{"type":131,"name":137,"callback":138,"file":134,"line":139},"plugins_loaded","anonymous",108,{"type":131,"name":141,"callback":142,"file":143,"line":144},"wp_enqueue_scripts","register_plugin_styles","includes\\class-portuguese-ao90.php",58,{"type":131,"name":141,"callback":146,"priority":147,"file":143,"line":148},"register_plugin_scripts",20,61,{"type":131,"name":150,"callback":151,"priority":88,"file":143,"line":152},"gp_pre_tmpl_load","pre_template_load",66,{"type":131,"name":154,"callback":155,"priority":88,"file":143,"line":156},"gp_post_tmpl_load","post_template_load",71,{"type":158,"name":159,"callback":160,"priority":88,"file":143,"line":161},"filter","gp_tmpl_load_locations","template_load_locations",76,{"type":131,"name":163,"callback":164,"file":143,"line":165},"gp_translation_saved","queue_translation_for_conversion",82,{"type":158,"name":167,"callback":168,"file":143,"line":169},"gp_translation_sets_sort","sort_translation_sets",87,{"type":131,"name":171,"callback":172,"file":143,"line":173},"admin_notices","notice_gp_not_found",104,{"type":131,"name":171,"callback":175,"file":143,"line":176},"notice_locale_not_found",168,{"type":131,"name":178,"callback":179,"file":180,"line":181},"rest_api_init","register_routes","includes\\class-rest-api.php",36,[],[],[],[],{"dangerousFunctions":187,"sqlUsage":188,"outputEscaping":190,"fileOperations":11,"externalRequests":11,"nonceChecks":11,"capabilityChecks":107,"bundledLibraries":212},[],{"prepared":11,"raw":11,"locations":189},[],{"escaped":191,"rawEcho":192,"locations":193},22,8,[194,198,200,202,204,206,208,210],{"file":195,"line":196,"context":197},"gp-templates\\translation-row-preview.php",119,"raw output",{"file":195,"line":199,"context":197},135,{"file":195,"line":201,"context":197},147,{"file":195,"line":203,"context":197},160,{"file":195,"line":205,"context":197},169,{"file":195,"line":207,"context":197},182,{"file":195,"line":209,"context":197},211,{"file":195,"line":211,"context":197},224,[],[],{"summary":215,"deductions":216},"The \"gp-convert-pt-ao90\" plugin v1.5.1 exhibits a generally strong security posture based on the provided static analysis and vulnerability history. The absence of any recorded CVEs and the complete lack of identified taint flows suggest a mature and well-maintained codebase. The plugin also demonstrates good security practices by utilizing prepared statements for all SQL queries and performing capability checks for sensitive operations. However, the static analysis does reveal a concern regarding output escaping, with only 73% of outputs being properly escaped. This could potentially lead to cross-site scripting (XSS) vulnerabilities if user-supplied data is not adequately sanitized before being displayed. While the attack surface is currently reported as zero, the lack of nonce checks across any potential entry points (though none are explicitly identified as unprotected) is a missed opportunity for robust security against CSRF attacks.",[217,220],{"reason":218,"points":219},"Output escaping not fully implemented",5,{"reason":221,"points":107},"No nonce checks found","2026-03-17T06:30:10.175Z",{"wat":224,"direct":233},{"assetPaths":225,"generatorPatterns":228,"scriptPaths":229,"versionParams":230},[226,227],"\u002Fwp-content\u002Fplugins\u002Fgp-convert-pt-ao90\u002Fassets\u002Fcss\u002Fgp-convert-pt-ao90.css","\u002Fwp-content\u002Fplugins\u002Fgp-convert-pt-ao90\u002Fassets\u002Fjs\u002Fgp-convert-pt-ao90.js",[],[227],[231,232],"gp-convert-pt-ao90\u002Fassets\u002Fcss\u002Fgp-convert-pt-ao90.css?ver=","gp-convert-pt-ao90\u002Fassets\u002Fjs\u002Fgp-convert-pt-ao90.js?ver=",{"cssClasses":234,"htmlComments":236,"htmlAttributes":238,"restEndpoints":240,"jsGlobals":242,"shortcodeOutput":244},[235],"gp-convert-pt-ao90-translate-diff-inline",[237],"\u003C!-- Convert PT AO90 for GlotPress Plugin -->",[239],"data-gp-convert-pt-ao90-locale",[241],"\u002Fwp-json\u002Fgp-convert-pt-ao90\u002Fv1\u002Flocale\u002F",[243],"gp_convert_pt_ao90_params",[]]