This is going to be a particularly technical and boring post, so don’t build too high expectations…
We’ve just released WPML 1.0.2. This version doesn’t bring any new features, but it does provide important updates to existing sites and to new sites using WPML. What we’ve done is make the translation database resilient to errors. As a result, it’s much less likely for things to break or misbehave.
Why would things break?
These things are not supposed to happen, but they sometimes do. Until now, every time such a problem occurred, problematic entries could have been written to our language tables. As a result, it would have been impossible to later change the post’s language. This is what you would call a design-bug.
Well, we’ve been able to collect quite a lot of data from many people using WPML and identify the places where there problems are caused. WPML now avoids creating database inconsistencies in both the plugin code itself and on the database level. This means, it’s going to be very complicated to break things from now on.
When you update WPML, it will automatically clean up your database and make sure that the language information is consistent. From that point, it can’t go wrong again, as the database itself will guarantee consistency.
A new troubleshooting page
We’ve already added a new section to WPML, which shows the contents of its language tables. Normally, no one needs this features, but it can come in very handy if things go wrong.
This is something that took a lot of debating. On one hand, it provides valuable data to anyone who needs help. On the other hand, it’s pretty scary to see all these details. We figured that since most WPML users are very advanced, we can take the risk without causing mass panic.
Fixed compatibility with advanced themes
WPML’s language switcher didn’t work properly in some themes (like Arras). It turns out that these themes modify variables that WordPress sets, confusing the language switcher. WPML now makes a copy of everything it needs before the theme functions can kick in. This way, no matter what the theme does, WPML doesn’t break.
This has been a problem for both the built in language switcher and custom language switcher. It happened mostly when viewing posts.