Auto-translate added to OJE

FYI OGS Joseki Explorer now has auto-translation of the “Description” and “comments” sections.

This means that if your device is set to a different language than the text being displayed, an attempt at a translation is also provided:


  • The “Description” of Joseki positions is currently fixed to be provided in English. If we have non-English Joseki contributors, this can fairly easily be extended to accomodate non-English original text (at which point English would be a translation for English systems).
    – I just haven’t done that yet because as yet there are none.

  • If non-English users find this painful, I imagine we could put in an option to disable it.


When the thread title said “translate”, I thought it would mean automatically handling translations in the spatial sense, like as in rotations and mirroring.


I guess that pedantically rotations and mirroring are translation, though customarily translation would be more thought of like panning.

There’s a thread nearby somewhere where someone was threatening recently to write some rotation code, which I too would love to see in OJE.

… although actually I haven’t been able to find a definition of “translation” that includes rotation or reflection. Rather, wikipedia for examples support the idea that geometric translation is pure displacement, as does Wolfram.


In the mathematical sense, “transformation” is the broader term that will contain reflections, rotations, translations and compositions thereof.

Edit: But I should add that mathematicians are known for taking a broad word and making it mean something very specific :laughing: so while translation is a separate concept from rotations and reflections in a geometry book, that doesn’t really say much about how the terms are used in plain English


I guess I don’t expect everyone else to carefully observe such pedantic distinctions. I think, in casual use, one often sees these terms conflated and interchanged, even though it may be incorrect usage.

1 Like

Got any examples?

(I have a hunch you mistook translation for transformation - I think I got swept along with that till benjito pointed it out. What you said would be true of “transformation”)

Yes, as an example, I mistakenly thought that you meant “translation” to be “transformation” in the general sense, like for rotations and mirroring that would be applicable for joseki.

It’s hard to point to many specific quotes where some others have used “translation” and “transformation” interchanged, since I think I’ve most often heard it just in informal and/or spoken discussions, but I’m sure I’ve heard people get mixed up about it many times. I don’t think that should be so surprising, since you even seem to believe that I misunderstood the distinction.

However, searching through the forum discussion about the Josekle game, I found one case where the word “translation” was meant to really describe mirroring and rotation:

I think I’ve heard it misused often enough, which may also be due to “translation” also having the metaphorical connection to language transformation, that I do not automatically assume that when someone says “translation”, that they precisely mean just spatial shifts.

Well… at least no-one is yelling at me for cluttering up their OJE with translations :sweat_smile:


I am endlessly amazed by the awesome addition of OJE to the site and it’s continued improvements.



Oh? What are they yelling at you for? :smiley:


Is there a way to improve translations?

A faulty translation

Schwarz spielt hier, um zu verhindern, dass die Ecke von Schwarz umzingelt wird.

Wenn Weiß einen Stein oben links hat, kann Weiß eine Zange bei etwa 1 spielen.

(original text)
Black plays here to avoid having Black’s corner surrounded.

If White has a stone in the upper left, White can play a pincer at around 1.

(translation of translation)
The German part is saying: “Back plays here to avoid, that black surrounds the corner.”


1 Like

Unfortunately there is not a good way.

Finding a good way to support this gets ongoing consideration and discussion.

The yucky workaround is:

  • go to DeepL Translate: The world's most accurate translator and paste in the original text
    • see it produce the wrong translation
    • click the “dislike translation” button… doesn’t immediately achieve anything, but we might as well tell them :slight_smile:
  • tweak the original until the translator does the right job.
  • edit the original with the more translatable version ( * )

Obviously this is totally yucky, and would devolve into the originals being continuallly tweaked for different languages if it were done extensively, but as a short term thing it’s currently the best we have.


What I really want to avoid is providing a naive mechanism that invites:

  1. completely different information being supplied in different languages (ie a “translation” that is actually someone-else’s opinion on the position)
  2. vandalism

That’s why there isn’t the simple option to select a language and type something in.

Finding a solution for this is definitely under active and ongoing consideration, though it is slightly behind other more exiting things right now.

  • Obviously you need edit permission to do this, Edit permission for this sort of activity will be gladly given - you just need to ask (at least one person is already enabled for this kind of maintenance).

Thanks for the info. Actually the translation is not as bad as I thought it was before, I just misunderstood it. But that means, that it might be too easy to misunderstand it.

Explanation of the possible misunderstanding

“Die Ecke von Schwarz” means “the corner of Black/Black’s corner” in this context, but “dass die Ecke von Schwarz umzingelt wird” could be (and was) misinterpreted as “that the corner gets surrounded by Black”.
Now I’d probably translate “Black’s corner” as “die schwarze Ecke” meaning “the black corner”, which I think is pretty clear in the context of Go. But would the AI understand that?


I went over to the website and this happened:

No room for the misunderstanding there.


Thanks for following up.

Here’s a funny thing. I took just the first sentence and converted it to German, then converted that German back to English, and ended up with:

“Black plays here to prevent the corner from being surrounded by Black.”

… I think that the AI made the misunderstanding you feared! :open_mouth:

Anyhow, if there’s a better way to phrase the English in this case, by all means let’s do it, and meanwhile we’ll keep pondering a good solution.


I’ve thought about that too, but the English is pretty clear, isn’t it? And changing it to produce a better German translation, might result in worse translation to other languages.

I’m glad my natural language processing isn’t worse than the AI.

My guess right now - and it’s really only a guess - is that any change in the original text that does deliver a better translation in one language has a better than even chance of improving all other languages.

I guess this because I suspect that to fix a mis-translation, you have to simplify the way in which it is expressed, leaving less room for error.

I only have one example so far: the “Empty Board”. This title was mistranslated into Japanese (!). I presume because “Board” is an English word that has many meanings, and the two word phrase is not enough for contextual choice for the AI.

I changed it to “Empty Goban” … and I have to think that this makes it easier for all languages.

When I’m trying to write messages for translation, I try to reduce it down simple basic language, and keep reducing until I can translate it multiple times back and forth and keep the same result. I get pretty good results from that process. (Well, at least I haven’t had complaints from the native speakers I’m trying to communicate with.)

Spot on - good advice for Joseki Contributors (linked to the Group!).

In fact, I am almost tempted to run their text through deepl as they try to save it, and make sure it does go back and forth. But… unfortunately I think this is a human-intervention-required kind test :slight_smile:

Instead of going to that trouble, I should just come up with a way to supply translations :slight_smile:


Well, translation requires two steps. First the translator needs to understand the input, then they have to produce clear output. If changing the input helps to understand it, it will certainly increase the probability of better output. But in the case of “surround Black’s corner” it should be clear to the translator, that Black is the one being surrounded and not doing the surrounding.

The problem in this case arises in the second step, when it is translated to German. The translator produces a correct German text that has two possible meanings due to the quirks of the German language, but isn’t aware of (or doesn’t care enough about) the new potential to misunderstand the produced text. Suddenly it is unclear whether Black is the one being surrounded, or doing the surrounding.

I think the right way to fix this is by improving the second step. The translator should reconsider what they produced and think about how it could be perceived, recognize the room for misunderstandings and think of a better way to get across the intended meaning. For example by calling it “die schwarze Ecke” instead of “die Ecke von Schwarz”.

Now we could work around that and call it “the black corner” instead of “Black’s corner” to nudge the translator towards a better German translation, but this would potentially change all the translations to other languages for the better or the worse. As German and English are the only languages I know, I can’t estimate which way it would go for other translations.

In this case I would hesitate to introduce a workaround that fixes one edge case without knowing how it would influence other edge cases. I would try to fix the bug instead or explain the complications to the user whenever they complain.

It makes the automated translation easier, because it leaves half of the translation to the reader. Learning Go means learning some Japanese terms too, but having to learn those terms in order to understand learning material can unnecessarily complicate the learning process. Another not so easy decision to make as a producer of such material.

Using a loanword for better Japanese translation? That’s cheating!

You could say so, but actually it’s just being more specific, like saying “Empty board-for-go”.

Rather than “cheating” I would say it is a perfect example of providing the best available original text to help the automatic translator know what is needed.

From reading your description, I’m not entirely sure if you have a clear picture of what is happening.

… in this case, the translator that we have is the AI at

… and so it is already doing the best it can, and we can’t influence that other than by providing simpler semantical construction of what we are trying to convey, in the original text.

It’s not that we have a bug.

The thing that we need to fix, when we work out how, is “how to provide a means for humans to provide translations of Joseki Descriptions”.

We have a good way of humans providing translations of text which developers have coded into the website.

But Joseki Descriptions are not like that - they are provided by different people, in a different way: they are data, not code, and they can change “at any time”, not only when new code is released.

This challenge is far from insurmountable - totally doable in fact - but it does need a lot of thought and some inspiration, which has not been tackled in earnest yet, and is behind some other more bang-for-buck things in the queue.

So making the auto-translate work as well as we can in the mean time is worthwhile…