{"id":80,"date":"2016-02-23T19:07:11","date_gmt":"2016-02-23T19:07:11","guid":{"rendered":"http:\/\/www.annawerner.de\/?p=80"},"modified":"2018-01-07T21:10:35","modified_gmt":"2018-01-07T21:10:35","slug":"language-corrections-using-po-files","status":"publish","type":"post","link":"https:\/\/annaschneider.me\/blog\/language-corrections-using-po-files\/","title":{"rendered":"Language corrections using .po files"},"content":{"rendered":"<p>Most themes and plugins automatically recognize the language version of your WordPress installation and the country you work from. Then they install the right language package and without ever noticing the different language versions, everything is shown in the right\u00a0language.<\/p>\n<p>But what if a different language then automatically detected is needed? Or what if the right package didn&#8217;t get installed, or isn&#8217;t even available? Then, custom translations are needed.<\/p>\n<p>As many themes support multilanguage plugins, they have special files signifying each language and their translation from the original encoded words, the .po-files. po stands for portable objects, which work with translations using <a href=\"https:\/\/en.wikipedia.org\/wiki\/Gettext\">Gettext<\/a>\u00a0for localization. This Gettext is an widely used standard, which is also used for WordPress projects. If there is at least one language file in a .po and .mo version available for the theme or plugin that needs translations, then the easiest way to get results is using a .po editor like <a href=\"https:\/\/poedit.net\/\">Poedit<\/a>.<\/p>\n<p>When installed, the language files have to be downloaded via FTP and the .po file can be opened in Poedit. The program then shows a list of all the defined words and statements, that can appear on the website in a table. Next to these, there is an empty column, which will hold the translations. So now, one can either translate every entry in the table, or, if only a few changes are needed, search for the words and add the translation. When finished, the new table has to be safed with the old name followed by the language code in small_capital letters. For example: &#8220;name-de-DE&#8221;. Poedit will automatically create the necessary .po and .mo files. They can now me uploaded into the same folder the original file is in.<\/p>\n<p>When everything is in place, WordPress automatically uses the file with the language code that fits the installation and language settings.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"spoon-plugin-kncgbdglledmjmpnikebkagnchfdehbm-2\" style=\"display: none;\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Most themes and plugins automatically recognize the language version of your WordPress installation and the country you work from. Then they install the right language package and without ever noticing the different language versions, everything is shown in the right\u00a0language. But what if a different language then automatically detected is needed? Or what if the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":127,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","jetpack_post_was_ever_published":false,"footnotes":""},"categories":[2,3],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Language corrections using .po files - Anna Schneider<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/annaschneider.me\/blog\/language-corrections-using-po-files\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Language corrections using .po files - Anna Schneider\" \/>\n<meta property=\"og:description\" content=\"Most themes and plugins automatically recognize the language version of your WordPress installation and the country you work from. Then they install the right language package and without ever noticing the different language versions, everything is shown in the right\u00a0language. But what if a different language then automatically detected is needed? Or what if the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/annaschneider.me\/blog\/language-corrections-using-po-files\/\" \/>\n<meta property=\"og:site_name\" content=\"Anna Schneider\" \/>\n<meta property=\"article:published_time\" content=\"2016-02-23T19:07:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-01-07T21:10:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/02\/PoEdit.png?fit=2220%2C1614&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"2220\" \/>\n\t<meta property=\"og:image:height\" content=\"1614\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"anna\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"anna\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/annaschneider.me\/blog\/language-corrections-using-po-files\/\",\"url\":\"https:\/\/annaschneider.me\/blog\/language-corrections-using-po-files\/\",\"name\":\"Language corrections using .po files - Anna Schneider\",\"isPartOf\":{\"@id\":\"https:\/\/annaschneider.me\/blog\/#website\"},\"datePublished\":\"2016-02-23T19:07:11+00:00\",\"dateModified\":\"2018-01-07T21:10:35+00:00\",\"author\":{\"@id\":\"https:\/\/annaschneider.me\/blog\/#\/schema\/person\/aed03681a2dc960294c5442477a37844\"},\"breadcrumb\":{\"@id\":\"https:\/\/annaschneider.me\/blog\/language-corrections-using-po-files\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/annaschneider.me\/blog\/language-corrections-using-po-files\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/annaschneider.me\/blog\/language-corrections-using-po-files\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/annaschneider.me\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Language corrections using .po files\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/annaschneider.me\/blog\/#website\",\"url\":\"https:\/\/annaschneider.me\/blog\/\",\"name\":\"Anna Schneider\",\"description\":\"Front-End Developer\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/annaschneider.me\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/annaschneider.me\/blog\/#\/schema\/person\/aed03681a2dc960294c5442477a37844\",\"name\":\"anna\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/annaschneider.me\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6c797411dcaa0edbe0f7d081dd142432?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6c797411dcaa0edbe0f7d081dd142432?s=96&d=mm&r=g\",\"caption\":\"anna\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Language corrections using .po files - Anna Schneider","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:\/\/annaschneider.me\/blog\/language-corrections-using-po-files\/","og_locale":"en_US","og_type":"article","og_title":"Language corrections using .po files - Anna Schneider","og_description":"Most themes and plugins automatically recognize the language version of your WordPress installation and the country you work from. Then they install the right language package and without ever noticing the different language versions, everything is shown in the right\u00a0language. But what if a different language then automatically detected is needed? Or what if the [&hellip;]","og_url":"https:\/\/annaschneider.me\/blog\/language-corrections-using-po-files\/","og_site_name":"Anna Schneider","article_published_time":"2016-02-23T19:07:11+00:00","article_modified_time":"2018-01-07T21:10:35+00:00","og_image":[{"width":2220,"height":1614,"url":"https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/02\/PoEdit.png?fit=2220%2C1614&ssl=1","type":"image\/png"}],"author":"anna","twitter_card":"summary_large_image","twitter_misc":{"Written by":"anna","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/annaschneider.me\/blog\/language-corrections-using-po-files\/","url":"https:\/\/annaschneider.me\/blog\/language-corrections-using-po-files\/","name":"Language corrections using .po files - Anna Schneider","isPartOf":{"@id":"https:\/\/annaschneider.me\/blog\/#website"},"datePublished":"2016-02-23T19:07:11+00:00","dateModified":"2018-01-07T21:10:35+00:00","author":{"@id":"https:\/\/annaschneider.me\/blog\/#\/schema\/person\/aed03681a2dc960294c5442477a37844"},"breadcrumb":{"@id":"https:\/\/annaschneider.me\/blog\/language-corrections-using-po-files\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/annaschneider.me\/blog\/language-corrections-using-po-files\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/annaschneider.me\/blog\/language-corrections-using-po-files\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/annaschneider.me\/blog\/"},{"@type":"ListItem","position":2,"name":"Language corrections using .po files"}]},{"@type":"WebSite","@id":"https:\/\/annaschneider.me\/blog\/#website","url":"https:\/\/annaschneider.me\/blog\/","name":"Anna Schneider","description":"Front-End Developer","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/annaschneider.me\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/annaschneider.me\/blog\/#\/schema\/person\/aed03681a2dc960294c5442477a37844","name":"anna","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/annaschneider.me\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6c797411dcaa0edbe0f7d081dd142432?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6c797411dcaa0edbe0f7d081dd142432?s=96&d=mm&r=g","caption":"anna"}}]}},"jetpack_featured_media_url":"https:\/\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/02\/PoEdit.png","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9x5Dx-1i","jetpack-related-posts":[{"id":48,"url":"https:\/\/annaschneider.me\/blog\/different-ways-for-multi-language-websites\/","url_meta":{"origin":80,"position":0},"title":"Different possibilities for multi-language websites","author":"anna","date":"February 22, 2016","format":false,"excerpt":"One question customers often have, concerns\u00a0multilingual pages. As WordPress was developed as a blog system, a standard option for multilingual content is not included. One either has to\u00a0manually create different\u00a0versions or use a WordPress plugin. Basically,\u00a0there are three different possibilities to solve the case. They all have their pros and\u2026","rel":"","context":"In &quot;Multilanguage&quot;","block_context":{"text":"Multilanguage","link":"https:\/\/annaschneider.me\/blog\/multilanguage\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/02\/photodune-3027894-flags-m.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/02\/photodune-3027894-flags-m.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/02\/photodune-3027894-flags-m.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/02\/photodune-3027894-flags-m.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/02\/photodune-3027894-flags-m.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/02\/photodune-3027894-flags-m.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":356,"url":"https:\/\/annaschneider.me\/blog\/update-breaks-wordpress-site\/","url_meta":{"origin":80,"position":1},"title":"What to do if an update breaks your WordPress site","author":"anna","date":"April 28, 2017","format":false,"excerpt":"Updates are important, if not to say mandatory. They make your site more secure, more compatible, more functional and durable. Nevertheless, they can also cause sites to break, usually caused by numerous different kinds of conflicts between old and new code If things break in your live website or WooCommerce\u2026","rel":"","context":"In &quot;Technical Issues&quot;","block_context":{"text":"Technical Issues","link":"https:\/\/annaschneider.me\/blog\/technicalissues\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2017\/04\/Update-breakes-site.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2017\/04\/Update-breakes-site.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2017\/04\/Update-breakes-site.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2017\/04\/Update-breakes-site.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2017\/04\/Update-breakes-site.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2017\/04\/Update-breakes-site.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":166,"url":"https:\/\/annaschneider.me\/blog\/displaying-the-featured-image-on-facebook\/","url_meta":{"origin":80,"position":2},"title":"Displaying the featured image on facebook","author":"anna","date":"May 3, 2016","format":false,"excerpt":"Publishing\u00a0a blog post for most bloggers automatically include posting it on facebook, twitter, and all other networks to spread the content. Unfortunately, facebook does not always pick up on the featured image and instead shows a different image, the header image or no image at all. How facebook choses which\u2026","rel":"","context":"In &quot;Technical Issues&quot;","block_context":{"text":"Technical Issues","link":"https:\/\/annaschneider.me\/blog\/technicalissues\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":147,"url":"https:\/\/annaschneider.me\/blog\/why-i-love-working-with-woothemes-canvas\/","url_meta":{"origin":80,"position":3},"title":"Why I love working with WooThemes Canvas","author":"anna","date":"March 18, 2016","format":false,"excerpt":"The Canvas theme Canvas describes itself as: \"a\u00a0clean, minimalistic and beautiful WordPress theme framework or so called starter theme that you can use as-is or customize it via Theme Options. Canvas Theme Options provides with over 100 different values you can tweak to change font size, color, background, widget styling,\u2026","rel":"","context":"In &quot;Customization&quot;","block_context":{"text":"Customization","link":"https:\/\/annaschneider.me\/blog\/customization\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/03\/Canvas.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/03\/Canvas.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/03\/Canvas.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/03\/Canvas.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/03\/Canvas.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/03\/Canvas.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":52,"url":"https:\/\/annaschneider.me\/blog\/creating-a-second-floating-menu-on-specific-pages\/","url_meta":{"origin":80,"position":4},"title":"Creating a second floating menu on specific pages","author":"anna","date":"February 23, 2016","format":false,"excerpt":"Just now, I had a customer who with a rather rare wish: On her website, there are parts with many submenu items. To facilitate the user experience, these parts should always show a second menu giving constantly\u00a0all the submenu item. The site is running with the Pootlepress Canvas child theme.\u2026","rel":"","context":"In &quot;Technical Issues&quot;","block_context":{"text":"Technical Issues","link":"https:\/\/annaschneider.me\/blog\/technicalissues\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/02\/Floating-Menu-CSS.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/02\/Floating-Menu-CSS.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/02\/Floating-Menu-CSS.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/02\/Floating-Menu-CSS.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/02\/Floating-Menu-CSS.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/02\/Floating-Menu-CSS.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":109,"url":"https:\/\/annaschneider.me\/blog\/including-eu-vat-in-woocommerce\/","url_meta":{"origin":80,"position":5},"title":"Including EU VAT in WooCommerce","author":"anna","date":"March 7, 2016","format":false,"excerpt":"When selling digital goods in the European Union, taxes need to be paid. Since 2015, electronic services and products in Europe are bound to the value added tax (VAT). Though they are not collected by an european institution, but every\u00a0member state is required to adopt the VAT law. Practically, this\u2026","rel":"","context":"In &quot;Technical Issues&quot;","block_context":{"text":"Technical Issues","link":"https:\/\/annaschneider.me\/blog\/technicalissues\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/03\/EUVAT.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/03\/EUVAT.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/03\/EUVAT.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/03\/EUVAT.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/03\/EUVAT.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/annaschneider.me\/blog\/wp-content\/uploads\/2016\/03\/EUVAT.png?resize=1400%2C800&ssl=1 4x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/annaschneider.me\/blog\/wp-json\/wp\/v2\/posts\/80"}],"collection":[{"href":"https:\/\/annaschneider.me\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/annaschneider.me\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/annaschneider.me\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/annaschneider.me\/blog\/wp-json\/wp\/v2\/comments?post=80"}],"version-history":[{"count":1,"href":"https:\/\/annaschneider.me\/blog\/wp-json\/wp\/v2\/posts\/80\/revisions"}],"predecessor-version":[{"id":47983,"href":"https:\/\/annaschneider.me\/blog\/wp-json\/wp\/v2\/posts\/80\/revisions\/47983"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/annaschneider.me\/blog\/wp-json\/wp\/v2\/media\/127"}],"wp:attachment":[{"href":"https:\/\/annaschneider.me\/blog\/wp-json\/wp\/v2\/media?parent=80"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/annaschneider.me\/blog\/wp-json\/wp\/v2\/categories?post=80"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/annaschneider.me\/blog\/wp-json\/wp\/v2\/tags?post=80"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}