godot: Word "Force" is used ambiguously, needs translation context

Godot version

v4.2.dev.custom_build [f5696c311]

System information

Godot v4.2.dev (f5696c311) - Arch Linux #1 SMP PREEMPT_DYNAMIC Sat, 23 Sep 2023 22:55:13 +0000 - X11 - GLES3 (Compatibility) - Mesa Intel® HD Graphics 2000 (SNB GT1) () - Intel® Core™ i5-2500S CPU @ 2.70GHz (4 Threads)

Issue description

While translating Godot, I noticed there is a string with an ambigious meaning in Godot Properties: “Force”.

This string is used with two different meanings:

  1. In editor/import/resource_importer_wav.cpp it is used to force certain WAV import settings in the WAV importer.
  2. But in scene/2d/physics_body_2d.cpp and scene/3d/physics_body_3d.cpp, it is used to mean physical force, something entirely different.

This makes it impossible to translate in some languages. This also applies to v4.1 stable.

The string in Weblate: https://hosted.weblate.org/translate/godot-engine/godot-properties/de/?checksum=b2baabd9a1355710

Suggested fix: To fix this, I suggest to either make use of the Gettext context feature or by changing the string in one of the two contexts.

Steps to reproduce

First, let me show where you can find the string in Godot:

To find the string in the first meaning, go to Project Settings > Import default values, then select the Microsoft WAV importer from the drop-down list. Here you see the word “Force” as a header, meaning to force certain WAV import settings like 8-bit.

For the second meaning, add a RigidBody2D node, select it, and in the inspector go to “Constant Forces”. In this section you can also find the word “Froce” (for constant_force), but to mean physical force.

Now try to translate it into German. Oops! It doesn’t work. Forcing something translates to “erzwingen” while physical force translates to “Kraft”. There is no way in German to work around this. You will probably bump into issues with other languages as well.

Minimal reproduction project

N/A

About this issue

  • Original URL
  • State: closed
  • Created 9 months ago
  • Comments: 16 (9 by maintainers)

Most upvoted comments

Note to self (and anyone who translates): Fix the translation once this ticket is merged.

Strings with different context are different entries (also different from a version without any context). They won’t propagate to each other.

Propagation between different Weblate components is not related to this issue.

Created a proof of concept PR #82852

Some details may need to be refined. Suggestions are welcome.

Yeah, another example is the word “Normal”. It’s used both for “Normal” vector of WorldBounaryShape2D and for “Normal” texture / theme item of UI elements. The former usage has a dedicated term in Chinese.

I’ll try to make it possible to add context for properties.