Slides from presentation about i18n in Athens on June 10 2023

So here are my slides for the presentation “Enable truly global use of your code – avoid the typical i18n pitfalls” that I made on June 10, 2023 at WordCamp Europe. Please share it with your developers, along with the link to my main article on typical i18n errors in WordPress.

Watch or download the slides (in PDF format)

Tobi’s talk on WordPress i18n (Internationalization) at WordCamp Europe 2023 in Athens

I’ll be giving a presentation at WordCamp Europe 2023!
If you are at the venue, please come to Track 2 on Saturday morning (June 10th) at 11 o’clock local time. And ask all your developer friends to join you!

You can also watch online via direct streaming, navigate to and find the right stream (or head directly to ). You can even ask questions online, they’ll be read back on stage by the emcee. It’s at 8 AM UTC, corresponding to 10 AM in most of Europe.

The title of my talk is “Enable truly global use of your code – avoid the typical i18n pitfalls” and most of all, I’m addressing plugin and theme developers.

See also my main article on typical internationalization issues.

PS! Once due, I’ll also publish my slides here. Stay tuned :)

Open message to the app developers for DIA, Condis, and more – you’re excluding customers arbitrarily

Screenshot from Google Play in the phone
I’m not able to install or use the DIA Club app or the Condis app.

This is probably due to a simple misunderstanding from the app developers – They have indicated that their apps should be available for Spain. But this setting is used in a stricter way than they may expect.
As a result, I’m not allowed to install and use their apps.
If I search for their apps, via Google Play, I won’t find them. They simply “aren’t there”.

The reason for this becomes visible when I specifically visit the page of the app. It says, in red letters: “This object is not available in your country.” In other words, Google is here imposing the kind of restriction that usually would apply for regionally restricted content – TV programming, etc.

Screenshot from Google Help about changing your country
So should I just “change my country”?
Well, that has its limitations, too:
– You can never change your “Google Play country” more than once per year.
– Any saved “Google balance” becomes unavailable.
– You may lose access to any TV shows, books, etc. that are limited to your previous country.
Also: In order to change your country, you must have a local payment method.

In other words: If someone who lives partly in Spain, and partly somewhere else, you’re restricting them from using your app, probably due to a simple misunderstanding. Quite a few of your customers may not be able to set their country to Spain, but I bet you still want us as your customers?

Renfe discriminates foreigners

While at the hotel, I installed the Android app “Renfe Ticket” and bought my ticket. It worked all perfectly.

But when I later needed to show this ticket in order to get on the train, the app complained that I had no connection to the internet. (However, everything else on the internet was working perfectly well: I could open various webpages, communicate via WhatsApp and post images to Facebook…)

In order not to miss the train, I had to go and by a second ticket from the cashier and then rush back to board the train.

(I was instructed to file a complain and request a refund. I did that on the very same day. Now it’s been more than a week, so Renfe isn’t really hurry with correcting things, but that’s another story.)

I then experimented a bit. And here’s what I found out.
Obviously, the app is communicating via some kind of API with RENFE’s servers. And these servers simply discard requests from foreign IP-addresses! So when I’m using the mobile internet from my Swedish mobile number, their servers can’t be reached. (When you’re connected to the WiFi in the hotel all is perfectly fine, since you’re then using the internet connection of the hotel.)

Same problem happens when I try to check expected arrival time for the commuter train: the app Renfe Cercanias isn’t able to give me any information while I’m using my Swedish mobile internet connection.

So: When European Union strives to unite its member states into one large country (telecom-wise), RENFE is going in opposite direction, making sure that ONLY Spanish mobile numbers should be served in their apps.

Security is more that just https – just missed me as a customer

A few weeks ago “Thirst”, the newest book by Jo Nesbø, was released in Swedish. (It will be realeased in English tomorrow.) I wanted to buy it and found that one of the best prices was offered by

By the way, if it wasn’t for a direct link from, I’d never found the book on their site, since their internal search logic is really bad. They state that you can search on title, author, publisher, etc., but in reality you can only search for any single one of these arguments. And you must get a 100% match. Try typing “Jo Nesbø” without Norwegian or Danish keyboard layout!

So I added the book to my order and went to check-out. First I would had to register. And this is were things went awkward. Obviously, the site uses https, so the communication between my browser and their server is encrypted. But what do they do with my data?

Firstly: The password I created for this website was e-mailed back to me! To me, this an obvious signal that their whole thinking around security is flawed. It’s quite possible that they store my password in clear in their database, which is insecure practice. Almost all current frameworks know to instead store hash values that are created using individual salt strings and cryptography, and never ever send e-mails with the password in clear. The industry practice is to only send one-time nonce-values upon request that then are used to allow password to be reset if lost or forgotten.

Secondly: The account was immediately activated without any verification of my e-mail address. With a simple script you could start stuffing their database with fake accounts and even have them automatically send out confirmation emails as spam, possibly with insulting passwords written in clear!

Next, I went to the beautiful check-out page, which proudly shows off a DIBS logo. Would I trust DIBS with my credit card details? Yes, they’re OK. But would I trust with my details? No, not really. So I had a quick look at the code behind the page. The form was programmed to deliver my credit card details to their own server. That helped me make my final decision.

End of story: I decided to pay about one euro more, but to a different vendor.

A good tool to get better quality in WordPress translations

First of all, a big “Thank you” to those of you, who have contributed and continues to contribute in making WordPress available in various languages, including Swedish.

All translation of WordPress core, and most translations of plugins and themes are handled via the online platform GlotPress. Anyone is welcome to take part in this work. You just need to register a free account at, and then you may head over to and start translating!

However, one important task for us, is to create and maintain a consistent user experience for a localized (i.e. translated) WordPress.

One important tool for this is the glossary, where we have collected useful comments on specific words and phrases and in many cases give the specific term we’ve chosen to use.
One example: The English word “shortcode” might be translated into Swedish in various ways, and we’ve simply chosen the word “kortkod” for this term.
You can check out the Swedish glossary here:

If you’ve been translating anything for WordPress core, then you may have seen translated terms and comments automatically show up in the translator view. In a future version of GlotPress we may expect these useful hints to show up during translations of any plugin or theme.

But in the meantime, I’d like to tell you about a very useful tool, which will “inject” translator hints in these other projects already today.
It’s “GlotDict” an add-on for Firefox and Google Chrome, developed by @Mte90, Daniele Scasciafratte from Italy. More information can be found at

If you want to help in translating WordPress into Swedish, then you’re more than welcome. And please join our special slack channel: #translations at (You’ll need an invitation to Slack, which you can get from anyone, who’s already there.)

Whatever you do, never activate your Trados Studio 2017 before trial period has ended!

I just discovered a weird bug in Trados Studio 2017, and it may cost me 1-2 working days!

I started using Trados Studio 2017 (and got it in trial mode mid November 2016. On December 14, when some 2-3 days remained of the trial period I decided to activate my copy. Everything worked fine. Since my license was for the “Starter” edition, I had to choose 5 languages I want to work with, but that’s OK.

Today I needed to work, so I started the program. And it tells me: License expired!
Trados 2017 License expired
My online account at SDL, though, still shows that I got one license, which was activated on Dec 14. Therefore I’m not allowed to reactivate with the same code, on the same computer, since that license is “already in use” according to SDL.

I’ve filed a ticket to SDL, this may cost me 1-2 days, since I haven’t paid for premium support.


Solved “Stream is offline” in facebook live preview

I spent several hours this morning trying to figure out why it didn’t work.
I was attempting to stream video to facebook live from my Windows PC with OBS encoding software. The encoding software was happily transmitting to somewhere, but the facebook preview in the publishing tool kept on reading “OFFLINE – If your video isn’t working, make sure you copied the contents of these fields into your video streaming software’s settings.”

Solution: Yes, I found the solution. In my case it was almost embarrassing. After I tried streaming to youtube and everything worked spot-on, I went back to another try again with facebook. But this time I noted a small banner at the top of my browser window. It turned out I was blocking some flash player content on the page. As soon as I clicked on “allow”, the OFFLINE message vanished and I could see my preview.

Happy streaming!


Now and then, I answer some questions over at Yahoo answers.
Today, I noted an interesting thing. One of my answers suddenly had -1 comments!

How could this ever happen?

Well, I happen to know half of the story, so I can make up at least of part of the rest.

There was one comment there.
Then I responded to the first comment, but made a typo, so I posted again, now without the type.
At this point there were three comments. But I could really live without the second one, with my typo. And, guess what, when I hovered over the comment, a little button with an X appeared.
I clicked on it, but nothing happened. So I clicked again a few times. My comment was still visible. I figured it might be some issue with some script not executing correctly in Firefox, so I started another broswer (chrome), logged in and went to the answer.
And there it was: -1 comments! I reloaded the page in Firefox, and got -1 comment there, too.
If you don’t believe me, here’s a screenshot. I’ve manually painted around the offending part!

So it seems, that the button is tied to a script, which calls back in ajax-style to delete the comment on the server. But the button doesn’t make itself unclickable, once clicked. And the button remains on page, and can be clicked several times. And the comments aren’t referred to with individual, permanent addresses, but rather “delete the second comment please. And a dumb script on the server decrements the total number of comments without even reflecting that it was one and the same comment that was deleted a couple of times…

Bug report

Hi there. I wanted to file a bug report, but couldn’t find any link for where to do it. So I post it here instead…

I’ve been using unfriend finder on Chrome for a while, and it works reasonably well, although the intermediate ad page before reaching the useful interface is a bit exhausting (especially when there are lots of ads sprayed all over the main interface, too). Oh, at least when one has some 2000 facebook friends, the plugin seems to sporadically regard some friends as disappeared, although they are still there. I guess an unstable internet connection could be a reason for this. (And that would also indicate that the plugin may be using some noticeable bandwidth for its work.)

I use Firefox as my main browser. And today I noticed that unfriend finder now is available for firefox, too. So I installed it. The plugin seems to work. After a while, the plugin button showed me that there were news for me.

But when I click on the button, the plugin opens a way too small window. So I can’t get to the link for the main interface. (And the window is only scrollable sideways!)


unfriend finder 1.2.4
firefox 42.0
Windows 7

Best regards,