{"id":228098,"date":"2022-10-15T19:25:00","date_gmt":"2022-10-15T16:25:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228098"},"modified":"2022-11-09T00:42:47","modified_gmt":"2022-11-08T21:42:47","slug":"aendra-ditt-wordpress-webbplatsspraak-lokal-dynamiskt","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/aendra-ditt-wordpress-webbplatsspraak-lokal-dynamiskt\/","title":{"rendered":"\u00c4ndra ditt WordPress-webbplatsspr\u00e5k (lokal) dynamiskt"},"content":{"rendered":"<p><a href=\"https:\/\/hashnode.com\/@wholesomecode\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a><\/p>\n<p>Det finns n\u00e5gra fantastiska flerspr\u00e5kiga plugins f\u00f6r WordPress, men f\u00f6r ett kundprojekt beh\u00f6vde jag n\u00e5got mycket mer flexibelt, eftersom just den h\u00e4r klienten beh\u00f6vde tillgodose flera l\u00e4nder som var och en talade flera spr\u00e5k.<\/p>\n<p>Kort sagt beh\u00f6vde klienten ha en multisite-instans som hade ett land och spr\u00e5k inst\u00e4llt som standard, och m\u00f6jligheten att \u00e5sidos\u00e4tta landet och spr\u00e5ket p\u00e5 varje sida\/inl\u00e4gg.<\/p>\n<h2>Bygga en flerspr\u00e5kig plugin<\/h2>\n<p>Om tillr\u00e4ckligt m\u00e5nga m\u00e4nniskor <a href=\"https:\/\/wholesomecode.ltd\/contact\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">buggar mig f\u00f6r att g\u00f6ra det<\/a>, kan jag \u00f6verv\u00e4ga att sl\u00e4ppa det hela som ett frist\u00e5ende plugin, men hj\u00e4rtat i det flerspr\u00e5kiga plugin jag bygger bygger p\u00e5 <code>locale<\/code>WordPress-filtret, och hj\u00e4rtat av pluginet finns i f\u00f6ljande kodavsnitt:<\/p>\n<pre><code>\nfunction wholesomecode_example_redefine_locale( $locale) {\n\n    $country = get_post_meta( get_the_id(), '_wholesomecode_example_global_country_override', true );\n    $lang    = get_post_meta( get_the_id(), '_wholesomecode_example_global_language_override', true );\n\n    if (( empty( $lang) ||! (is_page() || is_single() || is_singular()) )) {\n        $country = get_theme_mod( 'wholesomecode_example_multilingual_country', 'gb' );\n        $lang    = get_theme_mod( 'wholesomecode_example_multilingual_language', 'en' );\n    }\n\n    if ('default' !== $country) {\n        $locale = $lang. '_'. strtoupper( $country );\n    } else {\n        $locale = $lang. '-'. $country;\n    }\n\n    return $locale;\n\n}\nadd_filter( 'locale', 'wholesomecode_example_redefine_locale', 10 );\n<\/code><\/pre>\n<p>Tada! Din spr\u00e5kinst\u00e4llning \u00e4r nu inst\u00e4lld och din flerspr\u00e5kiga webbplats b\u00f6r nu byta spr\u00e5k baserat p\u00e5 din sida\/webbplats meta.<\/p>\n<h2>V\u00e4nta! Mina WordPress Core Default-\u00f6vers\u00e4ttningar fungerar inte!<\/h2>\n<p>Det h\u00e4r \u00e4r ett problem jag st\u00f6tte p\u00e5, och jag kunde inte f\u00f6r mitt liv ta reda p\u00e5 det. Mitt tema \u00f6versattes perfekt efter att jag hade lagt till de relevanta .mo- och .po-filerna, men WordPress-standard\u00f6vers\u00e4ttningarna (som &quot;L\u00e4mna ett svar&quot;-meddelandet i kommentarmallen) \u00f6versattes inte.<\/p>\n<p>Det visade sig att l\u00f6sningen var ganska enkel! \u00c4ven om jag hade s\u00f6rjt f\u00f6r anpassade dom\u00e4n\u00f6vers\u00e4ttningar, hade jag gl\u00f6mt att l\u00e4gga in en enkel kodbit i mitt tema: <code>load_default_textdomain()<\/code>.<\/p>\n<pre><code>\nload_default_textdomain();\n<\/code><\/pre>\n<p>Om jag har rakat bort ett par timmar fr\u00e5n din fels\u00f6kning med det d\u00e4r &quot;ett konstiga tipset&quot;, \u00e4r du v\u00e4lkommen!<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/wholesomecode.ltd\" class=\"external external_icon\">wholesomecode.ltd<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Det finns n\u00e5gra fantastiska flerspr\u00e5kiga plugins f\u00f6r WordPress, men f\u00f6r ett kundprojekt beh\u00f6vde jag n\u00e5got mycket mer flexibelt, eftersom just den h\u00e4r klienten beh\u00f6vde tillgodose sju&#8230;<\/p>\n","protected":false},"author":1,"featured_media":224116,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[848,901,922,724,868],"tags":[1173],"class_list":["post-228098","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-handledningar","category-koda","category-oevrig","category-utvecklaren","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/228098","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=228098"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/228098\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/224116"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=228098"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=228098"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=228098"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}