Easyling release notes July, 2025
In June, our main focus was on smaller improvements. We fixed issues with the JavaScript translation engine and the language selectors that we provide. These changes will ensure that Easyling continues to operate smoothly and efficiently. Read the full article for details.
How long can the content be?
A key difficulty in localisation is text expansion. The same meaning in English usually ends up longer in German, French or Spanish. Or potentially much shorter in Asian languages. When this happens, the layout of your website may shift or break. To prevent this, we’re introducing an experimental feature where the length of the translation can be limited to ensure it fits in its designated space. The HTML class of an element and its expected content length can be specified. Then, this length is included in the XLIFF files that we export. Most CAT tools show and/or enforce these limits, but your exact experience will vary depending on your tool of choice.
For now, this feature can only be enabled by our support team to ensure that if any issues are discovered they can be resolved quickly.
Self-contained blocks
When writing HTML websites, there are two kinds of elements. Block elements, like <div>
, <p>
or <h1>
, are called as such because they take up a block of space. This is opposed to inline elements, like <a>
or <span>
. Those elements are inline with other text. For example a span
can have specific formatting, like this.
This month, we introduced the concept of self-contained blocks. Elements can be marked by their CSS class. Once marked, the entire block will become one entry in the Workbench. A reasonable mind may ask why this is needed. You can use it in conjunction with the feature mentioned above. With that option, you can specify the content length of a block. However, if you need to specify the length of a section for example, that would likely have multiple paragraphs, so multiple blocks. If you mark the section as a self-contained block, it’ll be one entry so you can specify the length for the entire section.
Elements under body
are blocks
We noticed a very specific scenario on some websites. Sometimes, the body
tag, the main element of the website, has an inline element. For example something like the below:
<body>
<main>
<section> ... </section>
<section> ... </section>
...
</main>
<a>Skip to content</a>
</body>
In Easyling, the block elements mentioned previously, like a paragraph, become entries in the translation storage, which are then split into segments on sentence lines. On the other hand, inline elements are turned into tags in the entries of their enclosing block elements. Additional block elements next to it are also turned into tags.
Considering our example above, it would result in a segment with the following tags:
<1>
<2>
<3> ... </3>
<4> ... </4>
...
</2>
<5>Skip to content</5>
</1>
This can cause issues if the 3
or 4
tags are swapped. Those correspond to entire sections of this page which would be swapped.
With this change, inline elements directly under body
are now treated as if they were block elements. Our example sentence becomes simply
<1>Skip to content</1>
Note that this would be a breaking change, so we introduced it only on new projects by default. If you prefer, it can be enabled on older projects too, but in that case, these segments will have to be extracted and translated again, resulting in new billable costs!
CloudFlare publishing update
We updated our recommended worker script for publishing via CloudFlare. We added a section that ensures all request headers are passed through to both your original server and Easyling. In the future, when CloudFlare publishing is selected, this updates script will be recommended.
There is no need to change existing CloudFlare workers that work well.
Miscellaneous
As always, we have a few smaller improvements.
- We fixed a bug that prevented our language selector from functioning as expected.
- We fixed an issue that prevented the JS-based translator script from requesting further elements when some content is dynamically loaded.
- We fixed a bug where the new password you created during registration would not be saved.
Disclaimer: This document is completely human-generated.
How can we assist you?
We are happy to help with your questions and concerns about your website localization project.
Book a 30-minutes consultancy meeting with our experts and ask your questions!