Skip to content

Conversation

@kellertuer
Copy link
Contributor

@kellertuer kellertuer commented Aug 17, 2025

In german there is a formal “Sie”-level of conversation and an informal/personal “Du”-Level. The Du is much more common these days even in some stores.
So for the software I also went for that. I used an AI (Claude to be precise) for the rough translation, but no worries, German is my mother tongue, so that was just to reduce a bit of typing. I then carenfully checked all strings again that they chose the right tone/form.
If one wants to be super exact the is a de/de (German/German) form, there might be subtle differences in de/at (Austrian) and de/ch (Swiss) German, but they should also just be subtle.

This is also my first contribution to Pluto, so I hope I was careful enough in preparing this and following the Readme :)

A few comments and questions

  • I kept order and line numbers the same for easier maintenance
  • i dadpted the addition for languages from the Polish PR - should we order languages alphabetically in those places? Makes them easier to find when we have a few more.
  • One thing I did not translate is “Notebook”. Formally that would be “Notizbuch” but for Pluto or Jupyter Notebooks I have never heard anyone say Notizbuch; everyone says Notebook.
  • The same for “Code” where also the AI kept that. The original word would be “Quelltext” but that is a bit like the 80s called...
  • For some terminology like Stack-Trace there is no reasonable tranmslation and everyone would use Stack-Trace or souund from the 50s.
  • both t_stack_frame_this_cell and t_stack_frame_other_cell are “This cell” in the original, is that on purpose? I would have called the second differently?
  • German has a few different capitalization rules in full sentences, I tried to adapt that carefully
  • Though “⚠️ Danger” means “Gefahr” in the context of loading unsafe notebooks and such, I went for “⚠️ Achtung!”
  • I feel AI and LLM are a bit mixed, but I kept their original usages.
  • I am a bit unsure about instantiate1 to 3, what do they mean? (lines 311-313)
  • 314/315 run contains the verb evaluate evaluate contains Running - is that on purpose or to confuse the German (me) ;) ?
  • For the lines 318-322 I am unsure wehther that reports ongoing actions (e.g. displayed while connecting to backend) or when that is finished (after having connected) - in german those would translate differently

Finally I was a bit unsure how to test this - locally in pkg dev mode?

Try this Pull Request!

Open Julia and type:

julia> import Pkg
julia> Pkg.activate(temp=true)
julia> Pkg.add(url="https://github.com/kellertuer/Pluto.jl", rev="kellertuer/deutsch")
julia> using Pluto

@fonsp
Copy link
Owner

fonsp commented Aug 17, 2025

Hey @kellertuer

Thanks soooo much for your contribution!! This is super exciting 😍 I believe we have a lot of German-language users who will benefit a lot! This also goes great together with the German localization of PlutoTeachingTools.jl :)

For your comments – I feel like you 100% understood my intention with localization, and I agree with all your points :) The questions are really interesting, I had some similar choices with the Dutch localization and I made similar choices (like the informal "je", leaving tech words like "Notebook" and "Stack trace" in English, etc).

Some questions

I used an AI (Claude to be precise) for the rough translation, but no worries, German is my mother tongue, so that was just to reduce a bit of typing. I then carenfully checked all strings again that they chose the right tone/form.

Perfect! I forgot to write about using AI in the documentation, but I'm happy with it as long as all translations are checked by a human :)

If one wants to be super exact the is a de/de (German/German) form, there might be subtle differences in de/at (Austrian) and de/ch (Swiss) German, but they should also just be subtle.

Good you mention it! I'd like to add nice support for local language variants at some point :)

  • I kept order and line numbers the same for easier maintenance

Did you use the frontend/lang/update_languages.jl script also?

  • i adapted the addition for languages from the Polish PR - should we order languages alphabetically in those places? Makes them easier to find when we have a few more.

Sure!

  • both t_stack_frame_this_cell and t_stack_frame_other_cell are “This cell” in the original, is that on purpose? I would have called the second differently?

Oops! Well found :) I fixed it in 5852649

  • I am a bit unsure about instantiate1 to 3, what do they mean? (lines 311-313)

This is part of the "Status" tab in the bottom right.

I'm not sure! I think they all mean the same ("Pkg.instantiate() is running"). You can search for :instantiate1 etc in our source code to be more detailed.

  • 314/315 run contains the verb evaluate evaluate contains Running - is that on purpose or to confuse the German (me) ;) ?

This is part of the "Status" tab in the bottom right.

😅 I looked in the source code (search for :evaluate and :run). "run" is the category that does a reactive evaluation of cells. It's structured like:

- run
  - resolve_topology (Pluto is analyzing code and reactive dependencies)
  - evaluate (Cell code is evaluated in the notebook process)
    - 1 (first cell)
    - 2 (second cell)
    - 3 etc
  • For the lines 318-322 I am unsure wehther that reports ongoing actions (e.g. displayed while connecting to backend) or when that is finished (after having connected) - in german those would translate differently

This is part of the "Status" tab in the bottom right. So it describes a "subtask". It will show with the same text, first as "planned" (grey), then "running" (orange) and "done" (green). Do you need to write different text based on the status of the text? We could do that!

How to test

Finally I was a bit unsure how to test this - locally in pkg dev mode?

Exactly! You can follow the instructions here – https://github.com/fonsp/Pluto.jl/tree/main/frontend/lang#how-to-contribute

And you should be able to select German in the language selector.

@fonsp
Copy link
Owner

fonsp commented Aug 17, 2025

It also looks like some of the text is flowing out of the box, e.g. the export menu:

image

This was to be expected! I designed this UI with hard-coded sizes for English text.

I will see what to do with this tomorrow :) I will either make the boxes bigger, or I might modify the German languages files a bit and ask for your review

@fonsp fonsp added the language About translating and localising Pluto to different natural languages label Aug 17, 2025
@kellertuer
Copy link
Contributor Author

For your comments – I feel like you 100% understood my intention with localization, and I agree with all your points :) The questions are really interesting, I had some similar choices with the Dutch localization and I made similar choices (like the informal "je", leaving tech words like "Notebook" and "Stack trace" in English, etc).

Nice. In German stores the formal tone is still used every now and then but for example IKEA consistently does not do that. In Software I feel the move to informal is also relatively common

Perfect! I forgot to write about using AI in the documentation, but I'm happy with it as long as all translations are checked by a human :)

Yes, I very carefully revised all translations. It was really meant to be a reduced typing issue.

If one wants to be super exact the is a de/de (German/German) form, there might be subtle differences in de/at (Austrian) and de/ch (Swiss) German, but they should also just be subtle.

Good you mention it! I'd like to add nice support for local language variants at some point :)

Nice. I do not know how to map that in a choice menu, but maybe also something to have in mind once that comes along

  • I kept order and line numbers the same for easier maintenance

Did you use the frontend/lang/update_languages.jl script also?

Oh, sorry, no. My approach was to copy the English file and take it from there. Should that still be run or is it too late for that now? I ran it, and it would mainly delete a few empty lines in the file. For now I undid those changes again to keep the file aligned in lines with the English one.

  • both t_stack_frame_this_cell and t_stack_frame_other_cell are “This cell” in the original, is that on purpose? I would have called the second differently?

Oops! Well found :) I fixed it in 5852649

Fixed it in the German version as well then.

  • I am a bit unsure about instantiate1 to 3, what do they mean? (lines 311-313)

I'm not sure! I think they all mean the same ("Pkg.instantiate() is running"). You can search for :instantiate1 etc in our source code to be more detailed.

Ok, I am not sure what they mean then and I will keep them as is. They might sound a bit strange if one is meant to be a plural or so. But in code it seems they all might mean the same.

  • 314/315 run contains the verb evaluate evaluate contains Running - is that on purpose or to confuse the German (me) ;) ?

This is part of the "Status" tab in the bottom right.

😅 I looked in the source code (search for :evaluate and :run). "run" is the category that does a reactive evaluation of cells. It's structured like:

- run
  - resolve_topology (Pluto is analyzing code and reactive dependencies)
  - evaluate (Cell code is evaluated in the notebook process)
    - 1 (first cell)
    - 2 (second cell)
    - 3 etc

This sadly does not help me much seeing what I should put in the translation

  • For the lines 318-322 I am unsure wehther that reports ongoing actions (e.g. displayed while connecting to backend) or when that is finished (after having connected) - in german those would translate differently

This is part of the "Status" tab in the bottom right. So it describes a "subtask". It will show with the same text, first as "planned" (grey), then "running" (orange) and "done" (green). Do you need to write different text based on the status of the text? We could do that!

I am not sure. Just from the English text I do not understand what a good translation would be (too less context) from your explanation I am still as unsure as before, sorry. But here is something in there in German that should maybe fit.

@kellertuer
Copy link
Contributor Author

It also looks like some of the text is flowing out of the box [...]

I will see what to do with this tomorrow :) I will either make the boxes bigger, or I might modify the German languages files a bit and ask for your review

Yeah one thing germans can do well is long words. But sure we can check what we can maybe shorten a bit as well.

@fonsp
Copy link
Owner

fonsp commented Aug 17, 2025

Thanks again! I wrote a bit more about the context. Maybe this helps, but since these items we are discussing are not very crucial UI (I did not translate them to Dutch, for example), I don't expect you to spend too much time on this :)

More context about status

So about the "status" items (intiantiate, evaluate, run, backend_connecting, etc), it's about this UI:

Schermopname.2025-08-17.om.17.00.30.mov

It tracks what is currently happening, which is especially helpful during startup. The colors here are: "planned" (grey), then "running" (orange) and "done" (green). And the text gives a short name of the task. And tasks have a tree structure: some tasks are subparts of other tasks. The screenshot below shows this really well:

Scherm­afbeelding 2025-08-17 om 17 07 42

To be honest, the titles that I wrote in English are also not too helpful. For the package text (instantiate, resolve, etc), these are just the names of the Pkg functions (Pkg.instantiate, Pkg.resolve).

Maybe in a future project I can include a description text for each item, e.g. "instantiate" - "Running Pkg.instatiate() in the notebook environment. This makes sure all packages files are installed."

evaluate and run

"run" is a "Reactive run" (I might change the text in english to this).
"evaluate" is the subtask of actual "Cell execution"

But it's not crucial to get this right :)

backend_something

This is very rare: it happens when you open a static HTML file (like https://pluto.land/n/cibk2zp8 ), you click "Edit or run notebook" in the top right, and then select Binder.

While Binder is loading, you can check the Status tab to see the progress of the binder launch.

The words are the phases of a binder launch. I would use the "ongoing" format.

I hope this helps!

@kellertuer
Copy link
Contributor Author

Thanks for the explanations. Then the current terms should be good.

@fonsp
Copy link
Owner

fonsp commented Aug 18, 2025

Would "Live-Doku" be okay? Or do you have another suggestion for a short form?

Maybe we could show the long form when the panels are closeD:

Scherm­afbeelding 2025-08-18 om 11 07 49

And a different short version when they are open:

Clipping

Not clipping Scherm­afbeelding 2025-08-18 om 11 11 37

To prevent clipping the text. But the clipping is not a dealbreaker, and I can work a bit on making it less invasive.

This was referenced Aug 18, 2025
@fonsp
Copy link
Owner

fonsp commented Aug 18, 2025

I made some sizing updates in this PR. From my side this is ready to merge! Let me know what you think about the "Live Docs" issue, I can also work on it in a future PR.

@kellertuer
Copy link
Contributor Author

LIve-Doku is a bit informal, but yeah, we could either do that or revert back to not mixing languages and write “Live-Docs” again.

@fonsp
Copy link
Owner

fonsp commented Aug 18, 2025

You can choose! We could do:

  1. Live Doku when the window is open, Live Dokumentation when closed
  2. Live Docs always
  3. Keep it as-is, with ... clipping

@kellertuer
Copy link
Contributor Author

I think, “Live Docs” is the most natural one then, though English.

@fonsp fonsp merged commit 651fae0 into fonsp:main Aug 18, 2025
6 checks passed
@fonsp
Copy link
Owner

fonsp commented Aug 18, 2025

Thank you!! I will release this within a week, hopefully together with #3324 :)

@kellertuer
Copy link
Contributor Author

Whoop! My first contribution to Pluto.jl

Bitte sehr!

I will maybe start even the Norwegian one the next few days; but that one will take longer, since after 4 years here, I am still learning the language. But it will also be a good exercise for that :)

@kellertuer kellertuer deleted the kellertuer/deutsch branch August 18, 2025 12:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

language About translating and localising Pluto to different natural languages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants