Something is wrong with language translations

The issue here is in how we define Latin American spanish. Maybe someone can jump in.

The basic options in Weblate follow the ISO+Country spec. So, we can declare es_MX (spanish as spoken in Mexico) or es_US (spanish as spoken in the US) as the “Latin American” spanish. In Weblate, it will be listed as Spanish (Mexico) rather than Spanish (Latin American).

We can tie a bunch of other countries other than Mexico or the US but I doubt that it would be more clear.

Thoughts?

Hence the problem. Right now you have a singular spanish with everyone and their local variants of it making a mess because there’s no ground rule. Same goes for other languages noted above. Even French between Canada and France…(though I think by population majority it’s implied to be France)

Funny. Some terms are false friends.

Fiducial is translated as fiduciary (trustee).
The formal term I think it is “marca de centrado” though it is a term for aligning layers and fiducials are common for the pick and place machines. For fiducials we use fiduciales, knowing it is not a translation but a “spanishation” of the word.

The word for pad is “isleta” but everyone uses the English word pad.

As Italians say, traduttore, traditore (translator, traitor).

Due to the fact that electronic people usually speak English (or at least read English) I think it is more important the translation of the manual than the translation of the application. Even though users do not read the manual but tutorials…

Do not worry. We have local variants in the company I work for. Some say “board” (placa) and some say “card” (tarjeta) for the same daughter-pcb.

Oh they do that in English too :slight_smile: at some point you just have to pick something in the software I guess.

1 Like

Fascinating disussion about words in different languages.
But to my mind (as normal user) completely beside the point.

Why on earth should KiCAD be translated to every language wherever?

KiCAD is for engineers, and in what languages are university textbooks, videos, podcasts, presentations, datasheets, application notes etc. available?

English, French, Italian, German, Spanish, Portuguese, Russian, Japanese and Chinese.

If an engineer does not master at least one of those languages, he/she’s in deep, deep trouble,

That’s the way it is. So with all the languages, you’re pandering to a group of people that are not able to read a technical book?

In my opinion you need to rethink this. “Inclusion” is all well and fine, but there should be limits.

Quality matters, so the developers are strict about what kind of code goes into the codebase. Nonconforming attempts are not accepted. The library team has this or that many merge requests waiting for inspection because low quality is not accepted to the libraries. But for translations anything is accepted, no rules, no requirements, no questions asked.

As for the Finnish translation, it could be OK to accept partly translated UI. But it’s not OK to have a translation which prevents understanding the UI.

Exactly! Just drop it.

English spelling would justify an en_gb fork

Is there an easy way to find the context for the strings found on weblate?
Without context I wonder even what some of the English strings mean, and this makes translating even more difficult.

1 Like

You can look at the String Information window and see where the string is referenced in the source code:

That’s unfortunately quite hard, especially knowing what the placeholders do. The file name in the “String information” box usually helps you to locate which window it appears in, for example in Palmitoxicos screenshot, it would appear that the string appears in the 3D viewer. Often it’s helpful to start KiCad and look if you can find the string in the gui.

Or if you can’t find it and the source code doesn’t help, add a comment and a developer or another user might help out.

And as a general remark to the discussion, I don’t think it’s useful to translate all the terms to the specific languages if they’re uncommon there. Like for the German translation, we leave terms like “Via” or “Footprint” in place as the equivalent German terms (“Durchkontaktierung” e.g.) would be way more clunky and also less common and less understandable, especially for someone who’s learning using up-to-date (and usually english) literature/tutorials and so on.

I’ve also started to describe some of the technical terms in the glossary.

1 Like

Even without weblate, nope. gettext extracts the strings from the kicad source and dumps them into a po file. There is no solution or platform where we can provide a direct link to a visual UI element.

Good luck with that!
There are over 7000 strings, which means that each second spend to find each string adds two hours to the total.

I did find out that if you click on the filename of the “String information” on weblate, that it opens de file directly from gitlab. Quite impressive actually, and the source code give quite a lot of context. This loading of complete webpages does take a few secons, but you don’t have to do it for all strings and it does lower the threshold to give it a try.


I did post a message on the Dutch forum, and reactions I got were somewhat predictable. I only got reactions from people who prefer to use the English language. Not just to avoid bad translations, but because English is a common language for technical stuff in the Netherlands. Datasheets are almost always in English (although Chinese datasheets start popping up more.), and you can’t do much with the Internet without English.

But it’s the only way to a high quality translation. As I said, I have done that with a smaller application (actually two related applications, I was a developer of one of them and had written part of the original English strings). It didn’t require much expert language, rather normal language and some UI metaphors. I really can appreciate the translation work.

There’s much you can do by guessing and it’s often easy to come up with a decent translation which is understandable and technically correct. But if you aim at quality it’s not enough. As in the UI design, one should be internally consistent and find natural idiomatic words and sentences. A good UI translator translates not only word by word to another language, but translates the so called register, so that the messages aren’t for example rude or overly polite and wordy, and communicate the original intended meaning in native idiomatic way. It requires understanding the original message in its context and workflow. Sometimes it’s even possible that the translation can be better, more informative and easier to understand than the original.

In the process you would become real expert in the application, going through all possible workflows and triggering all unexpected error situations. Probably you would file bug reports for bad or difficult to understand messages.


Look at any commercial application (not just EDA). Do you see half-translated languages (other than the normal annoying platform dependent messages which the application doesn’t control)? Or machine translated? No. Could there exist a reason for that? Yes, I think they don’t want to ruin the UX and their reputation. I don’t see why Open Source software should allow bad translations, either.


What could be done to raise the quality of KiCad translations?

The first step would be to allow translations only from registered or known users who would be interviewed first to ensure they know what they are doing and don’t use machine translation or blind dictionary translation.

One thing the developers could do would be to add translation comments to the source code (that should be possible already maybe it has been used to some degree). They could for example add instructions for how to trigger some string or set of strings in the UI, or they could explain how some term is used in the industry.

1 Like

My take is to to first do a best effort translation sting by string. Then you open the application (KiCad) and look through the Main UI, dialogs etc and look for bad translations. Open up another instance with english UI and search for the original string in weblate to find the right occurence.

In parallel you build up the glossary to get consistent translations.

You will probably need to go through the UI several times and over time will find that some translations were not that great and some of the glossary needs to change. It’s a long process to get a decent translation.

Here comes a problem with KiCads process. Not yet translated strings will show up with a red marker so you know they are not translated or up to standards, but I see thousands of strings in my language that are just wrong that are still marked green as in translated.

Marekr and eelik explains the issues earlier in the thread much better than I can, and I agree with their every word ( so far :wink: ).

1 Like

As I wrote before, weblate has direct links to the KiCad source code on gitlab.
For example, clicking on the green encircled filename:

Directly opens the next screenshot in a new tab:

And you can derive quite some context from that, especially if you know a bit of programming.

The strings that appear to be translated by humans look quite reasonable. It is the automatic garbling system that makes a mess of things.

Having a team of dedicated translators in KiCad would be swell, but I’m afraid some compromises have to be made here…

I’ve been reading the replies here and I like the interest and quality in the responses.

One opinion that I share is that translations are probably not that useful, since the topic for KiCad is so technical that you need to understand English anyway. That being said I can continue translating into Swedish which is my native tongue. But for that to be meaningful I’d rather see that the automatic translations wherever they come from won’t be included going forward. I really only started translating because I happened upon the not that great Swedish translation in the nightly release. It’s a pity such a great piece of software might ship with sub-par translations. As someone stated above, an untranslated string is better than a translated string that is nonsensical.

It would also be interesting to see how big interest there is in having translations. There will take hundreds of hours to translate a language to a good enough state and hundreds more to get it polished, so knowing if it will be used is naturally of interest. On top of that it needs to be maintained. At the same time I understand that it is probably quite hard for this project to get this info from its users.

I’ve done translations for another project before (using crowdin.com) and the process there where quite similar to weblate except that all stings got manual translation, and on top of that there is a proofreading mode. I didn’t see this in weblate, but I may have missed it. When a string got a small change in the source it was again marked as red for corrective reading.

It seems backwards to me that a translation can be approved by someone not knowing the languages that are involved. If there are any problems with a translated string, syntactically or otherwise it should simply be omitted from the result.

I just read (partly) through the terms of Weblate: https://weblate.org/en/terms/

And I object to articles 5.2 and 5.3.
I interpret them that as soon as I create an account there, they start sending spam, although there is an option to opt out.

That’s simply not good enough for me. and I will not create a weblate account. Without an account, you can not translate there, only “give suggestions”, and one string I tried was rejected because of some silly cookie thing.

Agreed. For the German translation, I cleaned it up mostly manual by searching for common errors in the translated text. For example the literal translation of board (as in a flat piece of wood) is “Brett”, but in Kicad it should be translated as e.g. “Platine”. Searching for “Brett” and some other common mistranslations helped detecting most of the issues.

Crowdin is much better in that there is a separate proofreading/accept step with which a trusted person can select from the proposed translations. I don’t know if the same can be done in weblate (like changing all the existing translations back to suggestions and then have a reviewer who understands the language accept them)