WP Manifestindependent plugin directory
manifest / performance / softmedia-trp-bricks-gettext

Softmedia – TranslatePress × Bricks gettext

Bricks a TranslatePress brutálně zpomalí web. Důvod je kombinace Bricks Builderu pro WordPress a Translatepress. Tento plugin to opravuje. Čtěte README.

by Softmedia · github.com/softmedia-cz/softmedia-trp-bricks-gettext · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/softmedia-cz/softmedia-trp-bricks-gettext/archive/refs/heads/main.zip

Readme

Softmedia – TranslatePress × Bricks gettext

Zrychluje WordPress weby, které používají zároveň Bricks Builder a TranslatePress. Na testovaném webu srazil načtení stránky ze 4,0 s na 0,9 s.

Problém

Bricks při vykreslení každého elementu volá metodu Element::load(), která postaví kompletní definici jeho ovládacích prvků včetně všech popisků. Dělá to i na frontendu, kde žádný panel builderu není.

Na jedné běžné stránce z toho vznikne 95 584 volání filtru gettext a 93 785 z nich (98 %) patří textové doméně bricks. Jsou to popisky jako „Custom", „Padding", „Border" nebo „x-axis". Návštěvník je nikdy neuvidí.

Samotný WordPress tohle zvládne, protože jeden překlad stojí necelou mikrosekundu:

gettext    n=95584   3,610 s   <- s TranslatePressem
gettext    n=95513   0,119 s   <- bez něj

TranslatePress ale každý řetězec obalí značkami a dohledává ho ve své databázi. Jedno volání ho vyjde na 38 mikrosekund. Vynásobeno 93 785 z toho jsou 3,6 sekundy čistého PHP na každé načtení stránky.

Databáze ani hosting v tom nehrají roli. Na testovaném webu odbavila databáze 145 dotazů za 17 ms a externí API se nevolalo ani jednou.

Co plugin dělá

Přes oficiální filtr TranslatePressu trp_skip_gettext_processing vyřadí textovou doménu bricks z jeho gettext vrstvy. Výjimkou je seznam řetězců, které se opravdu dostanou do frontendového HTML. Ty zůstávají plně přeložitelné.

Z 1779 různých řetězců domény bricks se jich do HTML dostane zhruba deset. Zbytek se zpracovává úplně zbytečně.

Naměřené výsledky

Web na Bricks 2.2 a TranslatePress 3.1 Personal se čtyřmi jazyky. Měřeno jako TTFB, průměr z opakovaných načtení.

Jazyk Před Po
Čeština (výchozí) 3,94 s 0,89 s
Angličtina 1,46 s 0,82 s
Němčina 4,09 s 0,94 s

Instalace

  1. Stáhněte si poslední verzi jako ZIP.
  2. V administraci jděte na Pluginy → Instalace pluginů → Nahrát plugin a vyberte stažený soubor.
  3. Aktivujte. Nic dalšího nastavovat nemusíte.

Alternativně přes příkazovou řádku:

cd wp-content/plugins
git clone https://github.com/softmedia-cz/softmedia-trp-bricks-gettext.git
wp plugin activate softmedia-trp-bricks-gettext

Požadavky: WordPress s šablonou Bricks, plugin TranslatePress, PHP 7.4 nebo novější.

Pokud plugin běží na webu bez TranslatePressu, nic nedělá. Jeho filtr se prostě nikdy nezavolá.

Nastavení

Plugin funguje rovnou po aktivaci. Pro zvláštní případy nabízí dva filtry.

Přidat řetězec, který má zůstat přeložitelný

Pokud potřebujete některý Bricks řetězec přepisovat přímo v editoru překladů TranslatePressu, dejte si ho na seznam výjimek:

add_filter( 'softmedia_trp_bricks_allowed_strings', function ( $strings ) {
    $strings[] = 'Read more';
    return $strings;
} );

Vyřadit i jinou textovou doménu

Stejný problém může mít i jiná šablona nebo plugin, který na frontendu generuje tisíce zbytečných překladů:

add_filter( 'softmedia_trp_skipped_domains', function ( $domains ) {
    $domains[] = 'nazev-jine-domeny';
    return $domains;
} );

Pozor, u nové domény si nejdřív ověřte, které její řetězce se objevují ve frontendovém HTML, a doplňte je do allowlistu.

Na co si dát pozor

Bricks řetězce nepřepíšete v editoru TranslatePressu. Týká se to zhruba deseti viditelných řetězců. Ověřili jsme porovnáním HTML před opravou a po ní, že se překlady nerozbijí, protože je dodávají vlastní jazykové soubory Bricks. Němčina i angličtina zůstaly nedotčené. Když přesto potřebujete zasáhnout, použijte filtr výše.

Není to náhrada za cache. Na produkci patří stránková cache tak jako tak. Jedna sekunda je pořád jedna sekunda, když cache mine.

Zbytek řeší Bricks. I s vypnutými všemi pluginy udělá samotná šablona 65 747 volání překladu na stránku. Tenhle plugin umí odstranit jen tu část, která je drahá kvůli TranslatePressu. Zbytek je na vývojářích Bricks.

Jak jsme to našli

Dočasným profilerem nasazeným jako mu-plugin. Měřil čas mezi jednotlivými hooky WordPressu, počet a délku databázových dotazů, odchozí HTTP volání a čas strávený v jednotlivých filtrech. Ukázalo se, že do vykreslení hlavičky stránky uběhlo 0,2 s a zbylé 4 sekundy padly na vykreslování těla stránky bez jediného dotazu do databáze navíc.

Podrobný rozbor včetně postupu měření najdete v článku na blogu Softmedia.

Licence

GPL-2.0-or-later. Používejte a upravujte, jak potřebujete.

Autor

Softmedia – tvoříme a spravujeme WordPress weby. Máte web, který se načítá pomalu a nevíte proč? Ozvěte se nám.

Read the full README on GitHub →

Releases

TagPublished
v1.0.0 Aug 22, 2026

These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.