{"id":6533,"date":"2022-10-03T16:04:30","date_gmt":"2022-10-03T14:04:30","guid":{"rendered":"https:\/\/mainetcare.de\/?post_type=techdoc&#038;p=6533"},"modified":"2026-07-14T11:35:16","modified_gmt":"2026-07-14T09:35:16","slug":"translatepress-renders-individual-language-errors-for-default-language-incorrectly","status":"publish","type":"gartenschuppen","link":"https:\/\/mainetcare.de\/en\/gartenschuppen\/translatepress-rendert-individuellen-sprachwaehler-fuer-default-sprache-falsch\/","title":{"rendered":"TranslatePress renders individual language selector for default language incorrectly"},"content":{"rendered":"<h2 class=\"wp-block-heading\">Problem<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When creating an individual language selector for TranslatePress<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">$arr = trp_custom_language_switcher();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">$arr returns a multidimensional array with all the necessary parameters to render an individual language selector within a loop.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the frontend, however, when activating the foreign language, the entry of the array with the key<\/p>\n\n\n<pre id=\"sf-dump-1090755758\" class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">\"<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">span<\/span> <span class=\"hljs-attr\">class<\/span>=<span class=\"hljs-string\">\"sf-dump-key\"<\/span>&gt;<\/span>current_page_url<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">span<\/span>&gt;<\/span>\" =&gt; \"<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">span<\/span> <span class=\"hljs-attr\">class<\/span>=<span class=\"hljs-string\">\"sf-dump-str\"<\/span> <span class=\"hljs-attr\">title<\/span>=<span class=\"hljs-string\">\"32 characters\"<\/span>&gt;<\/span>https:\/\/example.test\/<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">span<\/span>&gt;<\/span>\"<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">overwritten with<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">https:<span class=\"hljs-comment\">\/\/example.com\/en<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">The \"en\" doesn't belong there!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Solution<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A separate snippet where you can switch between the languages and then integrate it via ShortCode, e.g:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span>add_shortcode( <span class=\"hljs-string\">'mnc_lang_switcher'<\/span>, <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-params\">( $atts = &#91;], $content = null, $tag = <span class=\"hljs-string\">''<\/span> )<\/span> <\/span>{\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-keyword\">global<\/span> $post;\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-keyword\">if<\/span> ( ! function_exists( <span class=\"hljs-string\">'trp_custom_language_switcher'<\/span> ) ) {\n<\/span><\/span><span class='shcb-loc'><span>\t\t<span class=\"hljs-keyword\">return<\/span>;\n<\/span><\/span><span class='shcb-loc'><span>\t}\n<\/span><\/span><span class='shcb-loc'><span>\t$arr              = trp_custom_language_switcher();\n<\/span><\/span><span class='shcb-loc'><span>\t$current_language = get_locale();\n<\/span><\/span><span class='shcb-loc'><span>\t$s = &#91;];\n<\/span><\/span><span class='shcb-loc'><span>\t$arial_label = __( <span class=\"hljs-string\">'Sprachw\u00e4hler'<\/span>, <span class=\"hljs-string\">'YOUR-THEME-DOMAIN'<\/span> );\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-keyword\">foreach<\/span> ( $arr <span class=\"hljs-keyword\">as<\/span> $lang ) {\n<\/span><\/span><span class='shcb-loc'><span>\t\t$url =  $lang&#91;<span class=\"hljs-string\">'current_page_url'<\/span>];\n<\/span><\/span><span class='shcb-loc'><span>\t\t$linktext = $lang&#91;<span class=\"hljs-string\">'language_name'<\/span>];\n<\/span><\/span><span class='shcb-loc'><span>\t\t<span class=\"hljs-keyword\">if<\/span>(strtolower($linktext) === <span class=\"hljs-string\">'german'<\/span>) {\n<\/span><\/span><span class='shcb-loc'><span>\t\t\t$linktext = <span class=\"hljs-string\">'Deutsch'<\/span>;\n<\/span><\/span><span class='shcb-loc'><span>\t\t}\n<\/span><\/span><span class='shcb-loc'><span>\t\t$class = get_locale() === $lang&#91;<span class=\"hljs-string\">'language_code'<\/span>] ? <span class=\"hljs-string\">'active'<\/span> : <span class=\"hljs-string\">''<\/span>;\n<\/span><\/span><span class='shcb-loc'><span>\t\t$s&#91;] = sprintf(<span class=\"hljs-string\">'&lt;a data-no-translation-href class=\"%s\" href=\"%s\"&gt;%s&lt;\/a&gt;'<\/span>, $class, $url, $linktext);\n<\/span><\/span><span class='shcb-loc'><span>\t}\n<\/span><\/span><span class='shcb-loc'><span>\t$links = implode(<span class=\"hljs-string\">\"\\n\"<\/span>, $s);\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">&lt;&lt;&lt;OUT<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-string\">&lt;nav aria-label=\"<span class=\"hljs-subst\">$arial_label<\/span>\" class=\"mnc_lang_switch\" data-no-translation&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-string\">\t<span class=\"hljs-subst\">$links<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-string\">&lt;\/nav&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-string\">OUT;<\/span>\n<\/span><\/span><span class='shcb-loc'><span>} );\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>","protected":false},"featured_media":0,"template":"","meta":{"_acf_changed":false},"class_list":["post-6533","gartenschuppen","type-gartenschuppen","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/mainetcare.de\/en\/wp-json\/wp\/v2\/gartenschuppen\/6533","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mainetcare.de\/en\/wp-json\/wp\/v2\/gartenschuppen"}],"about":[{"href":"https:\/\/mainetcare.de\/en\/wp-json\/wp\/v2\/types\/gartenschuppen"}],"wp:attachment":[{"href":"https:\/\/mainetcare.de\/en\/wp-json\/wp\/v2\/media?parent=6533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}