CHECKING STATUS
I AM LISTENING TO
|

Mix languages in a WordPress post / pages with a simple shortcode and gettext

LAST MODIFIED: 5. February 2025
5. February 2015
.SHARE

Table of Contents

In a current project I am using pages as templates, to load content into specific containers on the website. The website will be using up to 15 different languages.

The main language setup is done through WPML, which creates linked content per language. This helps, as some languages will fail terribly when translating them through a pure gettext setup, as the words setup is often completely different.

But there is always static stuff that can be translated directly through the language files. For that I use a simple shortcode that allows me to keep the native language as a basis in all linked content. Easier to move around, as I can actually read and understand it :)

Call the shortcode from the functions.php

add_shortcode('quick_trans','do_quick_trans');

The shortcode function itself. This loads the language textdomain from the specified location and translates the string.

function do_quick_trans($atts, $content) {
 extract(shortcode_atts(array(
    'location' => 'PATH_TO_LANG_FILE',
    'lang' => 'LANG_TO_USE',
'textdomain' => 'TEXTDOMAIN'
 ), $atts));

load_textdomain($textdomain, $location.$lang.'.mo'); 
$content = __($content, $textdomain);

return $content;

 }

How to use it in your post or page content

German

[quick_trans lang=”de_DE”]Simple is nice![/quick_trans]

Spanish

[quick_trans lang=”es_ES”]Simple is nice![/quick_trans]

Spanish – Latin America / with a special path for the lang file location [quick_trans lang=”es_LA” location=”/wp-content/…”]Simple is nice![/quick_trans]

Let’s Talk!

Looking for a reliable partner to bring your project to the next level? Whether it’s development, design, security, or ongoing support—I’d love to chat and see how I can help.

Get in touch,
and let’s create something amazing together!

RELATED POSTS

For the longest time, a kiosk meant one thing: a screen bolted to a wall, waiting for someone brave enough to poke it. A menu. A button or two. If you were lucky, a card reader. The whole device sat there passively, doing nothing until a human chose to interact with it, and most humans […]

You know that feeling when you click a link in a project’s README and it 404s right in your face? Me too. Broken links are the quiet rot of the web — they creep into documentation, blog posts, and large codebases without anyone noticing, and they make otherwise solid content look abandoned. The fix is […]

OCR used to be boring. You threw a scanned page at Tesseract, got back a wall of text with a few mangled characters, and moved on with your life. That was the whole genre for about fifteen years. Then vision language models showed up and ate the entire category. In the last eighteen months, document […]

Alexander

I am a full-stack developer. My expertise include:

  • Server, Network and Hosting Environments
  • Data Modeling / Import / Export
  • Business Logic
  • API Layer / Action layer / MVC
  • User Interfaces
  • User Experience
  • Understand what the customer and the business needs


I have a deep passion for programming, design, and server architecture—each of these fuels my creativity, and I wouldn’t feel complete without them.

With a broad range of interests, I’m always exploring new technologies and expanding my knowledge wherever needed. The tech world evolves rapidly, and I love staying ahead by embracing the latest innovations.

Beyond technology, I value peace and surround myself with like-minded individuals.

I firmly believe in the principle: Help others, and help will find its way back to you when you need it.