Something is wrong with language translations

I’ve enjoyed KiCad for some time, mainly V4 using the english version.

Now I’ve been trying out the V5.99 builds and it defaults to my system language which is Swedish. However this translation is totally incomprehensible. It seems to be machine translated with no context whatsoever.

For example “board” is translated to “styrelse” in many places, which translates back to “board of directors” as opposed to “circuit board”. *translation/pofiles/sv.po, string 1664

Another example “Configure paths” is translated to the equivalent of “Configure curves”. (“Konfigurera banor”)

I checked the translation for layer “b.paste” in other languages which can be seen following the link below. It is translated to the equivalent of “paste” as in cut/copy/paste as opposed to solderpaste in many languages suggesting some kind of automatic translation has been applied to the language files and checked in without proof reading.

There is also another issue where translated strings are mixed up. I did not look into other language-files, this applies to the swedish translation.

An example:
msgid “Problems writing configuration file”
msgstr “Konfigurationfil för snabbtangenter”

msgstr translates to “Configuration file for hotkeys” which is clearly not the right string

I tracked back to commit
going back to 2018.

I’ve have started to correct the Swedish translation at weblate to something at least comprehensible but wanted to inform that there may be issues with many of the other language translations as well, and should be looked into by someone knowledgeable. I would advise to if possible revert the auto-translated strings as it really destroys the experience. An english string can be googled, but a wrongfully translated string can be impossible to understand.

Oh, and a big thank you to everyone who’s involved in this awesome software!

Unfortunately we don’t have a good way of knowing if people are using machine translation tools to translate things unless someone on the core team is fluent in the language in question. We rely on people who are fluent/native in a language to help ensure the quality of the translations. We welcome your help on Weblate to correct the Swedish translation.

To add to what @craftyjon is saying, we will frequently find “Suggestions” in the Weblate like this:

A fluent speaker will know if this is a good suggestion or not. But in general, we tend to accept suggestions that we receive in translations. It appears that some well-meaning individuals may have made a number of suggestions based on machine translations. These were accepted but as you note have a number of issues.

In some cases, this has allowed us to fix issues in the software, like the time someone translated “Export STEP” as “Export a staircase step” :grin:. This helped us to identify some strings that shouldn’t be translated.

But mostly, we depend on native speakers to improve the KiCad translations. Sometimes, a group of users will get together to share the translation work. If you’re interested and want to coordinate with other Swedish users to work on translations, please let us know and we can help to arrange chat rooms/realtime communications that make it easier

Just saw there are over 7000 strings eligible for translation in KiCad:


I’m a native Dutch speaker myself, but I’ve decided long (30+ years ago) to stick to English for computer stuff. I get itching goosebumps from bad translations.

I would also be a bad translator for dutch because I won’t even know the technical terms for PCB stuff in my own language.

I’ve browsed a bit through Dutch translations on Weblate, and they look quite bad, and are also inconsistent. In English I know what F.Cu means, but when it’s used in Dutch text it’s translated in different ways.

I’ve also seen some English strings that are translated to dutch in a weird way, but I won’t know how to translate because a loose sentence without context sometimes looses much of it’s meaning.

This is probably not a weblate issue btw. For awhile with 5.99, nobody was really updating the language translations outside French and Italian. The gnu tools (poedit) start to “fuzzy translate” the constantly changing strings from the kicad codebase to reconcile mismatches and shifts of strings and the end result is basically complete garbage after it builds up and nobody fixes strings in the interim.

The Polish language became mostly garbage pre-weblate due to the fuzzy matches. Then post weblate I started to fix some of the awful translations and ZbeeGin then ran wild and fixed it all.

1 Like

I had a look at doing a Malay translation and quickly realised that I would end up keeping a lot of English strings. You could translate into pure Malay, but it would be bulky and nobody would know what you meant. Again many of the technical words just don’t exist or so rare that they are unknown

1 Like

I also gave it a try in Spanish, unfortunately as you guys the English names are so ingrained in my Brain that i was having a hard time thinking the right translation, so I left some terms in, that in my opinion, did not need translation, other guys using the tool then started undo my changes because they where using the “correct” words, but then again, the “correct” words are very different between Latin America and Spain.

I chose to stop, because:

  1. I was going to be using English anyway
  2. I was generating more work to people that probably were going to be using the translation.


It’s a bit same for Finnish. Someone with good will has been trying to translate, but not with native knowledge. The old translation was probably OK (made by someone who has also participated in other ways) but the UI has been changed too much, and the new translated strings are often clumsy, sometimes outright misleading. I wouldn’t use that translation even if I didn’t know English.

There exists a national standard for technical terms related to electronics and PCBs but it would cost. I wouldn’t want to try to translate without that. Even then I doubt if it has all the needed words.

That said, going through all the UI strings would be one of the best ways to get familiar with all functionality of KiCad. I have done that with another kind of application. You need to test the application yourself, blindly trying to invent a translation for some string isn’t often enough, you have to know the context in the workflow. Of course provided that you aim for high quality…

I double checked, the last change anyone made manually was 4 months ago to Finnish. There are 1500+ strings that are fuzzy matched. I guarantee most of what you see wrong is the terrible opinionated gnu tools defaulting to fuzzy matching.

fuzzy matching is basically an abomination of matching based on other translations it sees in the file that aren’t fuzzy. Except it basically goes full markov chain and does it very poorly.

From memory I’m still confused how it managed to fuzzy match in Polish, the words down to left, right to up and up to backwards or something like that. I actually had to double take that batch of intelligence.

Yes, but the changes which bear the name of some person are like that. I don’t know how they are made, but in general the one who offers a translation should be responsible for not accepting any fuzzy translations. This whole procedure needs some radical change.

Nobody is accepting fuzzy matches. When the translations are updated from kicad’s source, the gettext tools are automatically inserting them. They get shoved down our throats by GNU’s dumb opinion.

The current process is

Kicad source strings change enough -> gettext is asked to generate/update translation files -> translation files updated (with fuzzy results, there's no yes/no acceptance) -> weblate updated with the new translation files -> weblate changes committed back to translation files

To what?

I’m not trying to be snarky, but unless we have someone sign up to “own” the translation of an entire language, community-driven translation will always have pitfalls.

We could strip out fuzzy matches altogether using msgattrib --no-fuzzy -o <file> and I think msgmerge to recombine it with the english

and let it fallback to english for those strings, assuming that’s possible though I never looked into how it works out.

But let me clarify.

Fuzzy matches are not weblate’s automatic translations. They are two radically different things.
Fuzzy matches are performed by gettext and are a thousand times worse than weblate’s automatic translations because they some statistically generated nonsense based on what appears in the language file elsewhere.
Weblate actually uses Bing and Google translate which are actually high quality trained translation engines which have a significantly higher chance of being correct.

Fuzzy matches are meant for translators not for UI. They are there to show how similar strings were translated elsewhere in the codebase.

I’m actually a little surprised that they are getting used in the UI.

Who knows maybe I’m crazy but I’ve seen some crazy stuff in the old Polish translations in the gui

It could have been bad merges in the past too :man_shrugging:

In my French translation, I have of course Fuzzy translations, but I never saw them in the UI.
They are displayed only on in my translation tool (PoEdit)

As far as the Finnish translation goes, it’s not about fuzzy translation. There are things like Board -> Taulu (a board in the wall like a chalkboard or a painting) or “Via Size” -> Koon kautta (literally via = through: “through the size”). Sometimes it gives outright wrong information, preventing understanding what’s in the UI or even causing wrong user actions.

Good question, but the current situation feels unbearable. I have been reluctant to speak about this out of courtesy – in the end someone has put some time to this and tries to help – but because the problem seems to be more common than just one translation, something should be done. You don’t want to deliver translations like these, do you?

One general problem is that, as has been noted above, not all languages have understandable technical terminology for this kind of specialized technical area.

Another is that even when there exists native terminology, it may be more rarely used than English. This is true in Finland. Very large majority of those who learn electronics are nowadays more or less fluent in English. Technology companies use English routinely.

It doesn’t make much sense to create a sub-par translation for the small fraction of the users who are probably old hobbyists who don’t know English, especially when the “translation” actually gives wrong information and is more difficult to understand than English even when you don’t know English.

Those who actually translate with skill can and should be proud of their work. From experience I know how much it requires. I also appreciate the intention of those you are less skillful and yet try to help, but the outcome isn’t very helpful in the case of some parts of Finnish translation. What’s worse, it can even render better parts of the translation purposeless.

I don’t know about unbearable. If the translation is wrong, you can always submit a fix or use English. KiCad will remember your choice, so that is a one-time thing.

Weblate is set up to allow small improvements. Feel free to make any improvements you think are useful.

No. But we also don’t have the funds needed to provide professional translations for all languages. Someone wanted Finnish as an option, so it exists in some state of partial completion. We are not going to disable the language unless no one is actively updating it for a full release cycle (e.g. Bulgarian, Latvian)

I do feel free, but I have decided not to. There are two major reasons:

  1. I don’t have the vocabulary. I just don’t want to do it if I can’t do it properly. KiCad needs specialized vocabulary which I don’t know in Finnish. Doing it with wrong or ad-hoc vocabulary would not feel much better than a machine translation.

  2. As I said, most users know English and the value for the end users would be so small that it just doesn’t feel like productive and useful use of my time.

I understand very well the points of the official representatives of the project. I know very well the difficulties from both sides. I know it’s a reasoned decision. But Finnish is also my mother tongue and it doesn’t feel good to see it treated like this. Well, I hope the translation can help some people after all, and maybe it does.

BTW, does anyone know if other (commercial or non-commercial) EDA packages have Finnish UI translations?

Could you please give some examples of the very different terms? Just out of curiosity.