{"id":73858,"date":"2025-08-25T07:25:13","date_gmt":"2025-08-25T06:25:13","guid":{"rendered":"https:\/\/kinsta.com\/de\/?p=73858&#038;preview=true&#038;preview_id=73858"},"modified":"2025-10-08T12:49:12","modified_gmt":"2025-10-08T11:49:12","slug":"block-themes-internationalisierung","status":"publish","type":"post","link":"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/","title":{"rendered":"Anleitung f\u00fcr Entwickler: WordPress-Block-Themes mehrsprachig gestalten"},"content":{"rendered":"<p>Block-Themes \u00fcbersetzen WordPress anders als der typische Ansatz. Herk\u00f6mmliche PHP-Vorlagendateien mit \u00dcbersetzungsfunktionen funktionieren nicht mit <a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-html\/\">HTML-Vorlagen<\/a>, JavaScript-gesteuerten Bl\u00f6cken und dem <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-full-site-editing\/\">Site Editor<\/a>. Diese Ver\u00e4nderung erfordert ein anderes Verst\u00e4ndnis der WordPress-Block-Internationalisierungssysteme.<\/p>\n<p>In diesem Leitfaden findest du Strategien, um deine Block-Themes mehrsprachig werden zu lassen. Du lernst, wie du die Herausforderungen der Block-Theme-\u00dcbersetzung meisterst, L\u00f6sungen implementierst und mit \u00dcbersetzungs-Plugins integrierst.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Warum Block-Themes herk\u00f6mmliche \u00dcbersetzungsmethoden zunichte machen (und wie man sie behebt)<\/h2>\n<p><a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-block-theme-erstellung\/\">Block-Themes<\/a> ersetzen viele der PHP-Dateien von WordPress durch HTML-Vorlagen, die Block-Markup enthalten. Diese Umstellung bringt jedoch Herausforderungen mit sich, da HTML-Vorlagen keine PHP-\u00dcbersetzungsfunktionen wie <code>_()<\/code> oder <code>_e()<\/code> ausf\u00fchren k\u00f6nnen. Das hat zur Folge, dass die bereits vorhandenen \u00dcbersetzungsstrings nutzlos in statischen Dateien liegen.<\/p>\n<p><a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-6-8\/\">WordPress 6.8<\/a> bringt einige Verbesserungen, die die Internationalisierung von Block-Themes vereinfachen. In erster Linie ben\u00f6tigen Themes mit korrekten <strong>Text Domain<\/strong> und <strong>Domain Path<\/strong> <a href=\"https:\/\/docs.sevalla.com\/applications\/reference\/http-headers\">Headern<\/a>\u00a0keine <code>manual load_theme_textdomain()<\/code> Aufrufe mehr.<\/p>\n<p>Stattdessen l\u00e4dt WordPress die \u00dcbersetzungsdateien automatisch und gibt <code>wp-content\/languages\/themes\/<\/code> aus Leistungsgr\u00fcnden den Vorzug vor Theme-Verzeichnissen.<\/p>\n<p>Richte dein Theme zun\u00e4chst ganz klassisch ein, indem du der Datei <code>style.css<\/code> Metadaten hinzuf\u00fcgst.<\/p>\n<pre><code class=\"language-css\">\/*\nTheme Name: My Block Theme\nText Domain: my-block-theme\nDomain Path: \/languages\n*\/\n<\/code><\/pre>\n<p>Beachte, dass der <strong>Text Domain<\/strong> Header mit dem Ordnernamen deines Themes \u00fcbereinstimmen muss (normalerweise in <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Glossary\/Kebab_case\" target=\"_blank\" rel=\"noopener noreferrer\">Gro\u00dfbuchstaben<\/a>), damit die \u00dcbersetzungsdateien in neueren WordPress-Versionen korrekt geladen werden.<\/p>\n<p>\u00c4hnlich wie bei <code>style.css<\/code> ist f\u00fcr die Datei <code>functions.php<\/code> nur eine minimale Einrichtung erforderlich:<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\/\/ Optional in WordPress 6.8+ but included for backward compatibility\nfunction my_block_theme_setup() {\n    load_theme_textdomain( 'my-block-theme', get_template_directory() . '\/languages' );\n}\n\nadd_action( 'after_setup_theme', 'my_block_theme_setup' );\n\n\/\/ Register block scripts with translation support\nfunction my_block_theme_scripts() {\n    wp_enqueue_script(\n        'my-block-theme-scripts',\n        get_template_directory_uri() . '\/assets\/js\/theme.js',\n        array( 'wp-i18n' ),\n        '1.0.0',\n        true\n    );\n\n    wp_set_script_translations( \n        'my-block-theme-scripts', \n        'my-block-theme', \n        get_template_directory() . '\/languages' \n    );\n}\n\nadd_action( 'wp_enqueue_scripts', 'my_block_theme_scripts' );\n<\/code><\/pre>\n<p>Der Hauptunterschied zwischen klassischen Themes und Block-Themes besteht darin, dass bei letzteren die Verantwortung f\u00fcr die \u00dcbersetzung zwischen serverseitigem PHP und clientseitigem JavaScript aufgeteilt wird. Im Gegensatz dazu m\u00fcssen klassische Themes die meisten \u00dcbersetzungen von PHP erledigen lassen.<\/p>\n<h2>Wie man block.json-\u00dcbersetzungen erstellt<\/h2>\n<p>Die Datei <a href=\"https:\/\/kinsta.com\/courses\/gutenberg-block-development\/plugin-file-block-json-file\/\">block.json<\/a> ist dein &#8222;Konfigurationszentrum&#8220; f\u00fcr den Block, den du \u00fcbersetzen m\u00f6chtest. Wenn du die richtige Internationalisierung einrichtest, wird sichergestellt, dass deine Bl\u00f6cke sowohl im Editor als auch im Frontend korrekt \u00fcbersetzt werden.<\/p>\n<p>Der <a href=\"https:\/\/developer.wordpress.org\/block-editor\/reference-guides\/block-api\/block-metadata\/\" target=\"_blank\" rel=\"noopener noreferrer\">kanonische Weg, einen Block zu registrieren<\/a>, ist <code>block.json<\/code>. Wenn du mit der Konfiguration <code>textdomain<\/code> beginnst, kann WordPress die Felder <strong>Titel<\/strong>, <strong>Beschreibung<\/strong> und <strong>Schl\u00fcsselw\u00f6rter<\/strong> \u00fcbersetzen, wenn <code>textdomain<\/code> eingestellt ist:<\/p>\n<pre><code class=\"language-json\">{\n\t\"$schema\": \"https:\/\/schemas.wp.org\/trunk\/block.json\",\n\t\"apiVersion\": 3,\n\t\"name\": \"my-theme\/testimonial\",\n\t\"title\": \"Testimonial\",\n\t\"category\": \"text\",\n\t\"description\": \"Display customer testimonials\",\n\t\"keywords\": [\"quote\", \"review\", \"testimonial\"],\n\t\"textdomain\": \"my-block-theme\",\n\t\"attributes\": {\n\t\t\"content\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"source\": \"html\",\n\t\t\t\"selector\": \"blockquote\"\n\t\t}\n\t}\n}\n<\/code><\/pre>\n<p>F\u00fcr Szenarien, die einen &#8222;Kontext&#8220; erfordern, ist jedoch eine serverseitige Registrierung erforderlich. Der Kontext ist in diesem Fall wichtig, weil ein und dasselbe Wort je nach Verwendung unterschiedlich \u00fcbersetzt werden kann. Zum Beispiel erfordert &#8222;Post&#8220; als Substantiv und als Verb in vielen Sprachen unterschiedliche \u00dcbersetzungen:<\/p>\n<pre><code class=\"language-php\">function my_theme_register_testimonial_block() {\n\tregister_block_type_from_metadata(\n\t\tget_template_directory() . '\/blocks\/testimonial',\n\t\tarray(\n\t\t\t'title' =&gt; _x( 'Testimonial', 'block title', 'my-block-theme' ),\n\t\t\t'description' =&gt; _x(\n\t\t\t\t'Display customer testimonials', \n\t\t\t\t'block description', \n\t\t\t\t'my-block-theme'\n\t\t\t),\n\n\t\t\t'keywords' =&gt; array(\n\t\t\t\t_x( 'quote', 'block keyword', 'my-block-theme' ),\n\t\t\t\t_x( 'review', 'block keyword', 'my-block-theme' )\n\t\t\t)\n\t\t)\n\t);\n}\n\nadd_action( 'init', 'my_theme_register_testimonial_block' );\n<\/code><\/pre>\n<p>Alle <a href=\"https:\/\/kinsta.com\/de\/blog\/wp-core-blocks-erweitern\/#registering-block-variations\">Block-Varianten<\/a>, die du einf\u00fcgst, m\u00fcssen ebenfalls strukturiert benannt werden, da WordPress beim Laden deiner \u00dcbersetzungen nach bestimmten Mustern sucht. Jeder Variationsname wird Teil des \u00dcbersetzungsschl\u00fcssels:<\/p>\n<pre><code class=\"language-json\">{\n\t\"name\": \"my-theme\/button\",\n\t\"title\": \"Button\",\n\t\"textdomain\": \"my-block-theme\",\n\t\"variations\": [{\n\t\t\t\"name\": \"primary\",\n\t\t\t\"title\": \"Primary Button\",\n\t\t\t\"attributes\": {\n\t\t\t\t\"className\": \"is-style-primary\"\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"name\": \"secondary\",\n\t\t\t\"title\": \"Secondary Button\",\n\t\t\t\"attributes\": {\n\t\t\t\t\"className\": \"is-style-secondary\"\n\t\t\t}\n\t\t}\n\t]\n}\n<\/code><\/pre>\n<p>F\u00fcr die JavaScript-Internationalisierung musst du die <a href=\"https:\/\/developer.wordpress.org\/apis\/internationalization\/internationalization-functions\/\" target=\"_blank\" rel=\"noopener noreferrer\">i18n-Funktionen von WordPress<\/a> importieren und die Skript\u00fcbersetzungen konfigurieren. Das liegt daran, dass der <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-full-site-editing\/\">Site Editor<\/a> im Browser und nicht auf dem Server l\u00e4uft. Da es in JavaScript keine PHP-\u00dcbersetzungsfunktionen gibt, stellt WordPress entsprechende Funktionen \u00fcber das <code>@wordpress\/i18n<\/code>-Paket zur Verf\u00fcgung:<\/p>\n<pre><code class=\"language-js\">import {\n\tregisterBlockType\n} from '@wordpress\/blocks';\nimport {\n\t__\n} from '@wordpress\/i18n';\nimport {\n\tuseBlockProps,\n\tRichText\n} from '@wordpress\/block-editor';\n\nregisterBlockType('my-theme\/testimonial', {\n\tedit: ({\n\t\tattributes,\n\t\tsetAttributes\n\t}) =&gt; {\n\t\tconst blockProps = useBlockProps();\n\n\t\treturn ( &lt; div { ...blockProps } &gt;\n\t\t\t&lt; RichText tagName = \"blockquote\" value = { attributes.content } onChange = { (content) =&gt; setAttributes({\n\t\t\t\t\tcontent\n\t\t\t\t})\n\t\t\t}\n\t\t\tplaceholder = {\n\t\t\t\t__('Add testimonial text...', 'my-block-theme')\n\t\t\t}\n\t\t\t\/&gt; &lt; cite &gt;\n\t\t\t&lt; RichText tagName = \"span\" value = { attributes.author } onChange = { (author) =&gt; setAttributes({\n\t\t\t\t\tauthor\n\t\t\t\t})\n\t\t\t}\n\t\t\tplaceholder = {\n\t\t\t\t__('Author name', 'my-block-theme')\n\t\t\t}\n\t\t\t\/&gt; &lt; \/cite&gt; &lt; \/div&gt;\n\t\t);\n\t}\n});\n<\/code><\/pre>\n<p>Au\u00dferdem ist es ratsam, <a href=\"https:\/\/kinsta.com\/de\/blog\/wie-eine-webseite-uebersetzen\/\">JSON-\u00dcbersetzungsdateien<\/a> f\u00fcr JavaScript zu erstellen, da WordPress ein anderes Format f\u00fcr clientseitige \u00dcbersetzungen verwendet. PHP verwendet <code>.mo<\/code> Dateien, aber JavaScript braucht <code>.json<\/code> Dateien mit speziellen Namenskonventionen. Du kannst dies mit <a href=\"https:\/\/kinsta.com\/de\/blog\/wp-cli\/\">WP-CLI-Befehlen<\/a> automatisieren:<\/p>\n<pre><code class=\"language-bash\"># Extract strings from JavaScript files into POT\nwp i18n make-pot . languages\/my-block-theme.pot\n\n# Convert PO files to JSON for JavaScript\nwp i18n make-json languages\/ --no-purge --pretty-print\n<\/code><\/pre>\n<p>Die resultierenden JSON-Dateien folgen einem einheitlichen Muster: <code>{textdomain}-{locale}-{handle}.json<\/code>. WordPress kann diese dann laden, wenn du <code>wp_set_script_translations()<\/code> aufrufst.<\/p>\n<h2>Umwandlung deiner statischen HTML-Vorlagen in \u00fcbersetzungsf\u00e4hige PHP-Komponenten<\/h2>\n<p>Da HTML-Vorlagen statisch sind, ist die Arbeit mit ihnen f\u00fcr die Internationalisierung des Block-Themes eine Herausforderung, da deine bestehenden \u00dcbersetzungsfunktionen und -techniken nicht funktionieren.<\/p>\n<p>PHP-gest\u00fctzte Vorlagenteile k\u00f6nnen dieses Problem l\u00f6sen, da WordPress sie als PHP-Dateien verarbeitet, obwohl sie in HTML-Vorlagen referenziert werden. Dieser hybride Ansatz beh\u00e4lt die Struktur des Block-Themes bei und erm\u00f6glicht gleichzeitig dynamische Inhalte:<\/p>\n<pre><code class=\"language-js\">&lt;!-- templates\/page.html --&gt;\n&lt;!-- wp:template-part {\"slug\":\"header\",\"tagName\":\"header\"} \/--&gt;\n&lt;!-- wp:group {\"tagName\":\"main\",\"layout\":{\"type\":\"constrained\"}} --&gt;\n\n&lt;main class=\"wp-block-group\"&gt;\n&lt;!-- wp:post-title {\"level\":1} \/--&gt;\n     &lt;!-- wp:post-content \/--&gt;\n     &lt;!-- wp:template-part {\"slug\":\"post-meta\"} \/--&gt;\n&lt;\/main&gt;\n&lt;!-- \/wp:group \u2192\n&lt;!-- wp:template-part {\"slug\":\"footer\",\"tagName\":\"footer\"} \/--&gt;\n<\/code><\/pre>\n<p>Beachte, dass der Template-Teil PHP enthalten kann:<\/p>\n<pre><code class=\"language-js\">&lt;!-- parts\/post-meta.html --&gt;\n&lt;!-- wp:group {\"className\":\"post-meta\"} --&gt;\n&lt;div class=\"wp-block-group post-meta\"&gt;\n&lt;?php\n    echo sprintf(\n      \/* translators: 1: Post date, 2: Post author *\/\n      __( 'Published on %1$s by %2$s', 'my-block-theme' ),\n      get_the_date(),\n     get_the_author()\n     );\n     ?&gt;\n&lt;\/div&gt;\n&lt;!-- \/wp:group --&gt;\n<\/code><\/pre>\n<p>Komplexe Bl\u00f6cke ben\u00f6tigen die Datei <code>render.php<\/code>, weil einige Inhalte eine serverseitige Verarbeitung erfordern, die die Blockattribute allein nicht leisten k\u00f6nnen. <a href=\"https:\/\/kinsta.com\/de\/blog\/indexierung-in-mysql-und-mariadb\/\">Datenbankabfragen<\/a>, <a href=\"https:\/\/kinsta.com\/de\/blog\/block-sichtbarkeit\/\">bedingte Logik<\/a> und die Generierung dynamischer Inhalte erfordern alle die Ausf\u00fchrung von PHP:<\/p>\n<pre><code class=\"language-php\">\/\/ blocks\/recent-posts\/render.php\n&lt;?php\n$recent_posts = get_posts( array( \n'numberposts' =&gt; $attributes['count'] ?? 5 \n) );\n?&gt;\n&lt;div &lt;?php echo get_block_wrapper_attributes(); ?&gt;&gt;\n&lt;h3&gt;&lt;?php echo esc_html__( 'Recent Posts', 'my-block-theme' ); ?&gt;&lt;\/h3&gt;\n     &lt;?php if ( $recent_posts ) : ?&gt;\n      &lt;ul&gt;\n      &lt;?php foreach ( $recent_posts as $post ) : ?&gt;\n           &lt;li&gt;\n           &lt;a href=\"&lt;?php echo get_permalink( $post ); ?&gt;\"&gt;\n            &lt;?php echo get_the_title( $post ); ?&gt;\n           &lt;\/a&gt;\n\n           &lt;span class=\"post-date\"&gt;\n            &lt;?php echo get_the_date( '', $post ); ?&gt;\n           &lt;\/span&gt;\n           &lt;\/li&gt;\n         &lt;?php endforeach; ?&gt;\n         &lt;\/ul&gt;\n     &lt;?php else : ?&gt;\n         &lt;p&gt;&lt;?php esc_html_e( 'No posts found.', 'my-block-theme' ); ?&gt;&lt;\/p&gt;\n     &lt;?php endif; ?&gt;\n&lt;\/div&gt;\n<\/code><\/pre>\n<p>Das bedeutet, dass du deinen Block so konfigurieren musst, dass er die Renderdatei in <code>block.json<\/code> verwendet:<\/p>\n<pre><code class=\"language-js\">{\n\t\"name\": \"my-theme\/recent-posts\",\n\t\"render\": \"file:.\/render.php\",\n\t\"attributes\": {\n\t\t\"count\": {\n\t\t\t\"type\": \"number\",\n\t\t\t\"default\": 5\n\t\t}\n\t}\n}\n<\/code><\/pre>\n<h2>Wie man die \u00dcbersetzung dynamischer Inhalte f\u00fcr benutzerdefinierte Felder und Benutzereingaben implementiert<\/h2>\n<p>Obwohl dynamische Inhalte auf WordPress-Websites weit verbreitet sind, k\u00f6nnen sie zu \u00dcbersetzungsproblemen f\u00fchren, da sie in der Datenbank und nicht in den Dateien deines Themes gespeichert sind. Daher m\u00fcssen alle <a href=\"https:\/\/kinsta.com\/de\/partner\/weglot\/\">\u00dcbersetzungs-Plugins von Drittanbietern<\/a> diese Inhalte getrennt von den statischen Theme-Strings erkennen und verwalten.<\/p>\n<p>Die <a href=\"https:\/\/kinsta.com\/de\/blog\/advanced-custom-fields\/\">Registrierung von benutzerdefinierten Feldern<\/a> mit der richtigen Metakonfiguration ist deshalb so wichtig, weil \u00dcbersetzungsplugins das Metasystem von WordPress nutzen, um \u00fcbersetzbare Inhalte zu erkennen. Der Parameter <code>show_in_rest<\/code> erm\u00f6glicht die Kompatibilit\u00e4t mit dem Site Editor:<\/p>\n<pre><code class=\"language-php\">function my_theme_register_meta_fields() {\n    register_post_meta( 'page', 'custom_subtitle', array(\n        'type' =&gt; 'string',\n        'description' =&gt; __( 'Page subtitle', 'my-block-theme' ),\n        'single' =&gt; true,\n        'show_in_rest' =&gt; true,\n        'auth_callback' =&gt; function() {\n            return current_user_can( 'edit_posts' );\n        }\n    ));\n}\n\nadd_action( 'init', 'my_theme_register_meta_fields' );\n\n\/\/ Display with plugin compatibility\nfunction my_theme_display_subtitle( $post_id ) {\n    $subtitle = get_post_meta( $post_id, 'custom_subtitle', true );\n\n    if ( ! $subtitle ) {\n        return;\n    }\n\n    \/\/ WPML compatibility\n    \/\/ (documented at wpml.org\/documentation\/support\/wpml-coding-api\/wpml-hooks-reference\/)\n    if ( function_exists( 'icl_t' ) ) {\n        $subtitle = icl_t( \n            'my-block-theme', \n            'subtitle_' . $post_id, \n            $subtitle \n        );\n    }\n\n    \/\/ Polylang compatibility\n    \/\/ (documented at polylang.pro\/doc\/function-reference\/)\n    if ( function_exists( 'pll_translate_string' ) ) {\n        $subtitle = pll_translate_string( $subtitle, 'my-block-theme' );\n    }\n\n    echo '&lt;h2 class=\"page-subtitle\"&gt;' . esc_html( $subtitle ) . '&lt;\/h2&gt;';\n}\n<\/code><\/pre>\n<p>Datenbankabfragen m\u00fcssen ebenfalls nach Sprachen gefiltert werden, da WordPress die Inhalte nicht automatisch nach Sprachen filtert. \u00dcbersetzungsplugins f\u00fcgen Abfrage\u00e4nderungen hinzu, die du ber\u00fccksichtigen musst:<\/p>\n<pre><code class=\"language-php\">function my_theme_get_localized_posts( $args = array() ) {\n    $defaults = array(\n        'post_type' =&gt; 'post',\n        'posts_per_page' =&gt; 10\n    );\n\n    $args = wp_parse_args( $args, $defaults );\n\n    \/\/ Polylang adds language taxonomy\n    \/\/ (documented at polylang.pro\/doc\/developpers-how-to\/)\n    if ( function_exists( 'pll_current_language' ) ) {\n        $args['lang'] = pll_current_language();\n    }\n\n    \/\/ WPML filters queries automatically when suppress_filters is false\n    \/\/ (wpml.org\/documentation\/getting-started-guide\/translating-custom-posts\/)\n\n    if ( defined( 'ICL_LANGUAGE_CODE' ) ) {\n        $args['suppress_filters'] = false;\n    }\n\n    return get_posts( $args );\n}\n<\/code><\/pre>\n<p>Bei <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-registrierungsformularen\/\">der Verarbeitung deiner Formulare<\/a> werden dynamische und statische Inhalte gemischt, aber Formularbeschriftungen, Fehlermeldungen und Admin-Benachrichtigungen m\u00fcssen alle in eine bestimmte Sprache \u00fcbersetzt werden. Auch die E-Mail-Empf\u00e4nger k\u00f6nnen sich je nach Sprache unterscheiden:<\/p>\n<pre><code class=\"language-php\">function my_theme_process_contact_form() {\n\tif ( ! isset( $_POST['contact_nonce'] ) || \n\t! wp_verify_nonce( $_POST['contact_nonce'], 'contact_form' ) ) {\n\treturn;\n\t}\n\n\t$name = sanitize_text_field( $_POST['name'] );\n\t$email = sanitize_email( $_POST['email'] );\n\t$message = sanitize_textarea_field( $_POST['message'] );\n\n\t\/\/ Get admin email in current language\n\t$admin_email = get_option( 'admin_email' );\n\n\t\/\/ For language-specific admin emails, use WPML's string translation\n\t\/\/ (documented at wpml.org\/documentation\/support\/wpml-coding-api\/wpml-hooks-reference\/)\n\n\tif ( function_exists( 'icl_t' ) ) {\n\t\t\/\/ First register the string if not already registered\n\t\tif ( function_exists( 'icl_register_string' ) ) {\n\t\t\ticl_register_string( 'my-block-theme', 'contact_email', $admin_email );\n\t\t}\n\n\t\t$admin_email = icl_t(\n\t\t\t'my-block-theme',\n\t\t\t'contact_email',\n\t\t\t$admin_email\n\t\t);\n\t}\n\n\t$subject = sprintf(\n\t\/* translators: %s: Sender name *\/\n\t__( 'Contact form submission from %s', 'my-block-theme' ),\n\t$name\n\t);\n\n\twp_mail( $admin_email, $subject, $message );\n}\n\nadd_action( 'init', 'my_theme_process_contact_form' );\n<\/code><\/pre>\n<p>Es ist auch wichtig, die Sprachkenntnisse deiner Navigation zu pr\u00fcfen, denn Men\u00fcpunkte, URLs und die Struktur k\u00f6nnen sich von Sprache zu Sprache unterscheiden. Dein \u00dcbersetzungs-Plugin verf\u00fcgt wahrscheinlich \u00fcber eine API zur Erstellung von Sprachumschaltern:<\/p>\n<pre><code class=\"language-php\">function my_theme_language_switcher_block() {\n    if ( ! function_exists( 'pll_the_languages' ) && \n         ! function_exists( 'icl_get_languages' ) ) {\n        return;\n    }\n\n    $output = '&lt;div class=\"language-switcher\"&gt;';\n\n    \/\/ Polylang language switcher \n    \/\/ (documented at polylang.pro\/doc\/function-reference\/)\n\n    if ( function_exists( 'pll_the_languages' ) ) {\n        $languages = pll_the_languages( array( 'raw' =&gt; 1 ) );\n        foreach ( $languages as $lang ) {\n            $output .= sprintf(\n                '&lt;a href=\"%s\" class=\"%s\"&gt;%s&lt;\/a&gt;',\n                esc_url( $lang['url'] ),\n                $lang['current_lang'] ? 'current-lang' : '',\n                esc_html( $lang['name'] )\n            );\n        }\n    }\n\n    \/\/ WPML language switcher\n    \/\/ (documented at wpml.org\/documentation\/support\/wpml-coding-api\/multi-language-api\/)\n    elseif ( function_exists( 'icl_get_languages' ) ) {\n        $languages = icl_get_languages();\n        foreach ( $languages as $lang ) {\n            $output .= sprintf(\n                '&lt;a href=\"%s\" class=\"%s\"&gt;%s&lt;\/a&gt;',\n                esc_url( $lang['url'] ),\n                $lang['active'] ? 'current-lang' : '',\n                esc_html( $lang['native_name'] )\n            );\n        }\n    }\n\n    $output .= '&lt;\/div&gt;';\n    return $output;\n}\n<\/code><\/pre>\n<p>Die Arbeit mit \u00dcbersetzungsplugins wird wahrscheinlich einen gro\u00dfen Teil deiner Arbeit ausmachen, also schauen wir uns diesen Aspekt als N\u00e4chstes an.<\/p>\n<h2>Die Arbeit mit \u00dcbersetzungsplugins: Kompatibilit\u00e4t und Optimierung<\/h2>\n<p>Jedes WordPress-\u00dcbersetzungsplugin behandelt Block-Themes auf seine eigene Art und Weise. Wenn du die Ans\u00e4tze der verschiedenen L\u00f6sungen verstehst, kannst du von Anfang an f\u00fcr Kompatibilit\u00e4t und Flexibilit\u00e4t sorgen.<\/p>\n<p>In der Dokumentation von WPML <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-full-site-editing\/\">zur vollst\u00e4ndigen Bearbeitung von Websites<\/a> wird beschrieben, wie du eine bestimmte Konfiguration f\u00fcr Block-Themes ben\u00f6tigst:<\/p>\n<pre><code class=\"language-php\">\/\/ WPML FSE compatibility based on official documentation\nadd_action( 'init', function() {\n    if ( ! defined( 'WPML_VERSION' ) ) {\n    return;\n    }\n\n    \/\/ FSE themes are automatically detected in WPML 4.5.3+ \/\/ Enable FSE support\n    add_filter( 'wpml_is_fse_theme', '__return_true' );\n\n    \/\/ Register custom strings per WPML String Translation documentation\n    \/\/ (documented at wpml.org\/documentation\/support\/wpml-coding-api\/wpml-hooks-reference\/)\n\n    if ( function_exists( 'icl_register_string' ) ) {\n        icl_register_string(\n        'my-block-theme',\n        'footer-copyright',\n        '\u00a9 My Company.'\n        );\n    }\n});\n<\/code><\/pre>\n<p>Polylang Pro unterst\u00fctzt den Site Editor seit Version 3.2. Das Plugin behandelt <a href=\"https:\/\/kinsta.com\/de\/blog\/wordpress-block-theme-erstellung\/\">Block-Themes<\/a> \u00fcber seine Standard-String-\u00dcbersetzungsschnittstelle:<\/p>\n<pre><code class=\"language-php\">\/\/ Polylang string registration per official documentation\nif ( function_exists( 'pll_register_string' ) ) {\n\tpll_register_string( \n\t\t'Footer Copyright',\n\t\t'\u00a9 My Company.',\n\t\t'my-block-theme',\n\t\ttrue \/\/ Multiline support\n\t);\n}\n<\/code><\/pre>\n<p>Die <a href=\"https:\/\/translatepress.com\/docs\/developers\/exclude-certain-text-or-element-from-being-translated\/\" target=\"_blank\" rel=\"noopener noreferrer\">Dokumentation von TranslatePress<\/a> zeigt, dass bestimmte dynamische Elemente f\u00fcr eine optimale Leistung ausgeschlossen werden m\u00fcssen:<\/p>\n<pre><code class=\"language-php\">\/\/ TranslatePress optimization based on official recommendations\n\/\/ (documented at translatepress.com\/docs\/developers\/)\nadd_filter( 'trp_stop_translating_page', function( $stop, $url ) {\n\t\/\/ Skip admin and API requests per TranslatePress documentation\n\tif ( is_admin() || wp_is_json_request() ) {\n\treturn true;\n\t}\n\n\t\/\/ Skip pattern preview URLs that can cause rendering issues\n    if ( strpos( $url, 'pattern-preview' ) !== false ) {\n    \treturn true;\n\t}\n\n\treturn $stop;\n}, 10, 2 );\n<\/code><\/pre>\n<p>Du kannst auch <a href=\"https:\/\/multilingualpress.org\/\">MultilingualPress<\/a> ausprobieren, das mit WordPress Multisite anders funktioniert. Jede Sprache l\u00e4uft als eigene Seite mit einem eigenen Block-Theme, sodass keine zus\u00e4tzliche \u00dcbersetzungsebene oder spezielle Einrichtung n\u00f6tig ist. Dieser Ansatz sorgt f\u00fcr Schnelligkeit und vermeidet Plugin-Lock-in, da alles auf Core-Internationalisierung von WordPress basiert.<\/p>\n<p>Schlie\u00dflich gibt es noch ein paar allgemeine Tipps f\u00fcr die Arbeit mit Codebasen von Drittanbietern (z. B. Plugins). Erstens solltest du <a href=\"https:\/\/kinsta.com\/de\/blog\/debugging-wordpress\/\">beim Debuggen von \u00dcbersetzungsproblemen systematisch vorgehen<\/a>.<\/p>\n<pre><code class=\"language-php\">\/\/ Debug helper for translation issues\nfunction my_theme_debug_translations() {\n    if ( ! WP_DEBUG || ! current_user_can( 'manage_options' ) ) {\n    return;\n\t}\n\n\terror_log( 'Text domain loaded: ' . is_textdomain_loaded(\n    \t'my-block-theme' ) );\n         error_log( 'Current locale: ' . get_locale() );\n         error_log( 'Translation test: ' . __(\n\t\t\t'Hello World',\n            'my-block-theme'\n         )\n\t);\n\n\t\/\/ Check JSON translations for blocks\n    $json_file = WP_LANG_DIR . '\/themes\/my-block-theme-' . get_locale() . '-script-handle.json';\n\terror_log( 'JSON translation exists: ' . file_exists( $json_file ) );\n}\n\nadd_action( 'init', 'my_theme_debug_translations' );\n<\/code><\/pre>\n<p><a href=\"https:\/\/kinsta.com\/de\/blog\/edge-caching\/\">Das Zwischenspeichern auf der Website<\/a> kann die Aktualisierung von \u00dcbersetzungen beeintr\u00e4chtigen, daher solltest du die Zwischenspeicher l\u00f6schen, wenn sich die \u00dcbersetzungsdateien \u00e4ndern:<\/p>\n<pre><code class=\"language-bash\"># Clear WordPress transients\nwp transient delete --all\n\n# Generate fresh translation files\nwp i18n make-pot . languages\/my-block-theme.pot\nwp i18n make-json languages\/ --no-purge\n<\/code><\/pre>\n<p>Die Leistungsoptimierung wird mit \u00dcbersetzungs-Plugins entscheidend. Jedes Plugin verursacht zus\u00e4tzliche Datenbankabfragen und Verarbeitungsaufwand, was wiederum durch das Zwischenspeichern h\u00e4ufig verwendeter \u00dcbersetzungen beg\u00fcnstigt wird:<\/p>\n<pre><code class=\"language-php\">function my_theme_cached_translation( $text, $domain = 'my-block-theme' ) {\n    $cache_key = 'translation_' . md5( $text . get_locale() );\n    $cached = wp_cache_get( $cache_key, 'my_theme_translations' );\n\n    if ( false === $cached ) {\n        $cached = __( $text, $domain );\n        wp_cache_set( $cache_key, $cached, 'my_theme_translations', HOUR_IN_SECONDS );\n    }\n\n    return $cached;\n}\n<\/code><\/pre>\n<p>Alternativ kann es sinnvoll sein, das Caching zu \u00fcberspringen, bis du bereit f\u00fcr die Bereitstellung bist. Daf\u00fcr ist eine <a href=\"https:\/\/kinsta.com\/de\/docs\/wordpress-hosting\/staging-umgebung\/\">Staging-Umgebung<\/a> ideal, in der du den Leistungsschub, den das Caching bietet, normalerweise nicht brauchst.<\/p>\n<h2>Zusammenfassung<\/h2>\n<p>Die Internationalisierung des Block-Themes erfordert, dass du mit beiden WordPress-\u00dcbersetzungsmethoden arbeitest und neue Ans\u00e4tze im Site-Editor verwendest.<\/p>\n<p>Indem du deine Theme-Metadaten konfigurierst, Template-Strategien implementierst und die Anforderungen von \u00dcbersetzungs-Plugins verstehst, kannst du mehrsprachige Block-Themes erstellen, die gut funktionieren und ein hochwertiges Nutzererlebnis bieten.<\/p>\n<p>Wenn du bereit bist, zu starten, bietet das <a href=\"https:\/\/kinsta.com\/de\/wordpress-hosting\/\">Managed Hosting f\u00fcr WordPress<\/a> von Kinsta die Leistung und globale Reichweite, die deine Website braucht, mit integriertem Caching, einem <a href=\"https:\/\/kinsta.com\/de\/docs\/service-information\/rechenzentrums-standorte\/\">CDN mit 37 Standorten<\/a> und Tools wie Git-Integration und <a href=\"https:\/\/kinsta.com\/de\/docs\/wordpress-hosting\/staging-umgebung\/\">Staging<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Block-Themes \u00fcbersetzen WordPress anders als der typische Ansatz. Herk\u00f6mmliche PHP-Vorlagendateien mit \u00dcbersetzungsfunktionen funktionieren nicht mit HTML-Vorlagen, JavaScript-gesteuerten Bl\u00f6cken und dem Site Editor. Diese Ver\u00e4nderung erfordert ein &#8230;<\/p>\n","protected":false},"author":199,"featured_media":73859,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[999],"class_list":["post-73858","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-wordpress-entwicklung"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>WordPress-Block-Themes mehrsprachig gestalten<\/title>\n<meta name=\"description\" content=\"WordPress-Block-Themes brauchen einen anderen Ansatz f\u00fcr die Internationalisierung. In diesem Beitrag findest du Strategien f\u00fcr mehrsprachigen Erfolg!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Anleitung f\u00fcr Entwickler: WordPress-Block-Themes mehrsprachig gestalten\" \/>\n<meta property=\"og:description\" content=\"WordPress-Block-Themes brauchen einen anderen Ansatz f\u00fcr die Internationalisierung. In diesem Beitrag findest du Strategien f\u00fcr mehrsprachigen Erfolg!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-25T06:25:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-08T11:49:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/08\/developer-guide-making-wordpress-block-themes-multilingual.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1470\" \/>\n\t<meta property=\"og:image:height\" content=\"735\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jeremy Holcombe\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"WordPress-Block-Themes brauchen einen anderen Ansatz f\u00fcr die Internationalisierung. In diesem Beitrag findest du Strategien f\u00fcr mehrsprachigen Erfolg!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/08\/developer-guide-making-wordpress-block-themes-multilingual.png\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Holcombe\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"13\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/\"},\"author\":{\"name\":\"Jeremy Holcombe\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\"},\"headline\":\"Anleitung f\u00fcr Entwickler: WordPress-Block-Themes mehrsprachig gestalten\",\"datePublished\":\"2025-08-25T06:25:13+00:00\",\"dateModified\":\"2025-10-08T11:49:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/\"},\"wordCount\":1213,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/08\/developer-guide-making-wordpress-block-themes-multilingual.png\",\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/\",\"name\":\"WordPress-Block-Themes mehrsprachig gestalten\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/08\/developer-guide-making-wordpress-block-themes-multilingual.png\",\"datePublished\":\"2025-08-25T06:25:13+00:00\",\"dateModified\":\"2025-10-08T11:49:12+00:00\",\"description\":\"WordPress-Block-Themes brauchen einen anderen Ansatz f\u00fcr die Internationalisierung. In diesem Beitrag findest du Strategien f\u00fcr mehrsprachigen Erfolg!\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/08\/developer-guide-making-wordpress-block-themes-multilingual.png\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/08\/developer-guide-making-wordpress-block-themes-multilingual.png\",\"width\":1470,\"height\":735},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WordPress Entwicklung\",\"item\":\"https:\/\/kinsta.com\/de\/thema\/wordpress-entwicklung\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Anleitung f\u00fcr Entwickler: WordPress-Block-Themes mehrsprachig gestalten\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/de\/#website\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/de\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\",\"https:\/\/x.com\/Kinsta_DE\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\",\"name\":\"Jeremy Holcombe\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"caption\":\"Jeremy Holcombe\"},\"description\":\"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jeremyholcombe\/\"],\"url\":\"https:\/\/kinsta.com\/de\/blog\/author\/jeremyholcombe\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"WordPress-Block-Themes mehrsprachig gestalten","description":"WordPress-Block-Themes brauchen einen anderen Ansatz f\u00fcr die Internationalisierung. In diesem Beitrag findest du Strategien f\u00fcr mehrsprachigen Erfolg!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/","og_locale":"de_DE","og_type":"article","og_title":"Anleitung f\u00fcr Entwickler: WordPress-Block-Themes mehrsprachig gestalten","og_description":"WordPress-Block-Themes brauchen einen anderen Ansatz f\u00fcr die Internationalisierung. In diesem Beitrag findest du Strategien f\u00fcr mehrsprachigen Erfolg!","og_url":"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","article_published_time":"2025-08-25T06:25:13+00:00","article_modified_time":"2025-10-08T11:49:12+00:00","og_image":[{"width":1470,"height":735,"url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/08\/developer-guide-making-wordpress-block-themes-multilingual.png","type":"image\/png"}],"author":"Jeremy Holcombe","twitter_card":"summary_large_image","twitter_description":"WordPress-Block-Themes brauchen einen anderen Ansatz f\u00fcr die Internationalisierung. In diesem Beitrag findest du Strategien f\u00fcr mehrsprachigen Erfolg!","twitter_image":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/08\/developer-guide-making-wordpress-block-themes-multilingual.png","twitter_creator":"@Kinsta_DE","twitter_site":"@Kinsta_DE","twitter_misc":{"Verfasst von":"Jeremy Holcombe","Gesch\u00e4tzte Lesezeit":"13\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/"},"author":{"name":"Jeremy Holcombe","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21"},"headline":"Anleitung f\u00fcr Entwickler: WordPress-Block-Themes mehrsprachig gestalten","datePublished":"2025-08-25T06:25:13+00:00","dateModified":"2025-10-08T11:49:12+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/"},"wordCount":1213,"publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/08\/developer-guide-making-wordpress-block-themes-multilingual.png","inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/","url":"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/","name":"WordPress-Block-Themes mehrsprachig gestalten","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/08\/developer-guide-making-wordpress-block-themes-multilingual.png","datePublished":"2025-08-25T06:25:13+00:00","dateModified":"2025-10-08T11:49:12+00:00","description":"WordPress-Block-Themes brauchen einen anderen Ansatz f\u00fcr die Internationalisierung. In diesem Beitrag findest du Strategien f\u00fcr mehrsprachigen Erfolg!","breadcrumb":{"@id":"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/#primaryimage","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/08\/developer-guide-making-wordpress-block-themes-multilingual.png","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2025\/08\/developer-guide-making-wordpress-block-themes-multilingual.png","width":1470,"height":735},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/de\/blog\/block-themes-internationalisierung\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/de\/"},{"@type":"ListItem","position":2,"name":"WordPress Entwicklung","item":"https:\/\/kinsta.com\/de\/thema\/wordpress-entwicklung\/"},{"@type":"ListItem","position":3,"name":"Anleitung f\u00fcr Entwickler: WordPress-Block-Themes mehrsprachig gestalten"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/de\/#website","url":"https:\/\/kinsta.com\/de\/","name":"Kinsta\u00ae","description":"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen","publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/de\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","https:\/\/x.com\/Kinsta_DE","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21","name":"Jeremy Holcombe","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","caption":"Jeremy Holcombe"},"description":"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.","sameAs":["https:\/\/www.linkedin.com\/in\/jeremyholcombe\/"],"url":"https:\/\/kinsta.com\/de\/blog\/author\/jeremyholcombe\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/73858","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/comments?post=73858"}],"version-history":[{"count":10,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/73858\/revisions"}],"predecessor-version":[{"id":74287,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/73858\/revisions\/74287"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/73858\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/73858\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/73858\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/73858\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/73858\/translations\/de"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/73858\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/73858\/translations\/es"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/73858\/translations\/jp"},{"href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/73858\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media\/73859"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media?parent=73858"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/tags?post=73858"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/topic?post=73858"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}