RT Translation Process Update

Thats the trick. Since i was sure, its my very poor knowledge of RT i didnt take care of the RT-Version i used but i am very sure, at that point i did not have any idea of camera profiles and didnt use them. Btw, i am using a Sony Alpha77 M II and the Sigma lenses 18-200 are not correctly recognised.

Not sure if that’s a lensfun issue or a relative of Fix so E-Mount lens names are retrieved (#6437) · Beep6581/RawTherapee@784625b · GitHub - that was for E-mount, but A-mount might have been affected too?

As far as color profile, A77M2 does not have a DCP and camconst goes back at least 7 years.

I think, its a lensfun issue, because the lenses are well recognized with my former camera a sony alpha 100

As a translator myself, I don’t think the problem of orphaned strings should be diminissed. I have also found what appear to be duplicated entries, one obsolete and another one actually used in the gui (don’t ask for examples, I can’t remember which ones; there are almost 4k entries).

Think of it such as this:

  • you’re translating RT, but your mother tongue is obviously not English
  • you find some random string that you can’t locate in the gui (that doesn’t mean it’s not used, because sometimes those strings are shown in the weirdest places). So you take your time trying to figure out where the h**k it is, and what is it that it means
  • as suggested, if you finally can’t find it anywhere in RT gui, you open an issue and wait for an answer
  • when you get an answer, you can continue your efforts with the translation

That’s not a couple minutes of translator time, believe me.

I know the amount of time a translator spends is much less than that spent by a developer, but you can’t expect a translator to be constantly checking which changes appear in the gui, so most probably it will only be checked 1-2 times a year. And that presumably means quite a few changes that have to be identified, understood and translated.

Do whatever you think is best for the project, but please, don’t think translating RT is a piece of cake… Just consider the enormous time spent translating all the strings inside LA, which happened in just one year. And they where edited quite a few times… (again, nothing close to the time spent coding it, but even so).

Just a thought

3 Likes

OK, you’ve got a very different answer from one of the other translators. That’s very valuable input - and sounds like you’ve actually found scenarios of obsolete strings. Based on this I’ll definitely look into writing a tool to try and find such scenarios.

I’m assuming the obsolete string in question is now gone, but by any chance do you remember roughly when you found it, what it was, and when it was nuked? Sounds like a good test case for such a tool.

Don’t assume anything… :wink:

I haven’t been able to find these entries in the gui (after using any tool/slider):

HISTORY_MSG_581;Local - deNoise lum f 1
HISTORY_MSG_582;Local - deNoise lum c

Those are just a couple entries. There may be more.

By the way, this is a perfect example of what you face when translating RT: if you don’t have full control and knowledge about all the tools, then you most probably won’t know what this means (what have you done in that history step).

That means you first have to know where the entry is located or how it is triggered, so you know what does it refer to. Then, you can translate it.

Oh, and if by any means those are not orphaned or obsolete, would you please post a screen capture showing where or how are they triggered?

Ding ding ding - we have a winner!

adodd@andyslaptop:~/gitrepos/RawTherapee$ grep -r HISTORY_MSG_581
rtdata/languages/Japanese:HISTORY_MSG_581;ローカル - ノイズ除去 輝度 細かい1
rtdata/languages/Chinese (Simplified):!HISTORY_MSG_581;Local - deNoise lum f 1
rtdata/languages/default:HISTORY_MSG_581;Local - deNoise lum f 1
adodd@andyslaptop:~/gitrepos/RawTherapee$ grep -r HISTORY_MSG_582
rtdata/languages/Japanese:HISTORY_MSG_582;ローカル - ノイズ除去 輝度 祖い
rtdata/languages/Chinese (Simplified):!HISTORY_MSG_582;Local - deNoise lum c
rtdata/languages/default:HISTORY_MSG_582;Local - deNoise lum c
adodd@andyslaptop:~/gitrepos/RawTherapee$ 

A good proof of concept for such a script - my rough plan was to, for each entry in default, grep everywhere but rtdata/languages for the reference, and flag anything that got no hits. I now have a known test case.

A little bit of Googling to find bash - Recursive Grep to show only total matchin count - Stack Overflow

adodd@andyslaptop:~/gitrepos/RawTherapee$ grep -ro --exclude-dir=languages CURVEEDITOR_CURVES | wc -l
1
adodd@andyslaptop:~/gitrepos/RawTherapee$ grep -ro --exclude-dir=languages HISTORY_MSG_581 | wc -l
0
adodd@andyslaptop:~/gitrepos/RawTherapee$ 

Will work on wrapping something to traverse the whole file later this week. I’m exhausted tonight and heading to bed REALLY early.

2 Likes

I have been translating GUI into Japanese and never felt that I waisted my time.

I check the language page more often than before (especially, I see a notice about a new tool) whether the default is updated. Once a certain number of strings (addition, deletions and amendments) is accumulated I post the updated GUI in Beep 5681.

Last of all, in this posting occasion, I want to mention my appreciation to the developments member of RawTherapee for the work and careful thoughts.

4 Likes

Numbered history messages are special because their keys are generated.

You will need to search with the corresponding ProcEventCode.

1 Like

@XavAL is correct in describing the way to find a entry you cannot find in the GUI. You need to shut down RT, restart with the new translation, search the entry… as he described. It indeed takes a lot of time. I am there since about two years and still working on it.

Yes, the answer sounds different. In my case, i think, the time wasn’t wasted, because i learned a lot of RT and i still do.

2 Likes

Over the night I was wondering if something like this might be the case - numbers like 581 and 582 are, um, unusual outside of the context of something like that. Looks like I’ll have to find the events table, parse it, and look for gaps.

Edit: Found the table, procevents.h

But at least that hints at where @XavAL might find these, from the looks of it, it would be in the history box, and judging from the text, some of the new local adjustments operations. Looks like a luminance denoise, not sure what f 1 and c are.

rtengine/procevents.h

Edit: You’ve been faster :wink:

1 Like

Btw: The table in rtengine/refreshmap.cc has to be synchron with the table in procevents.h regarding obsolete entries:-(

1 Like

Look at the wonderful can of worms we’ve opened here! :slight_smile:

Finding some way to automate the analysis is definitely going to be useful. Obviously the scope of that has increased significantly and requires more thinking.

Seeing “AUTOEXP” for all of the local stuff kinda seems strange to me - maybe all of the local adjustments stuff should have had its own category???

It’s just a wrong naming imho. Not so easy to remap this…

Yeah, maybe a long term project to start cleaning some of that up post-5.9 in the name of longer-term maintainability.

By the way, thank you to the translators from providing some perspective on this task.

How about, to leave the default file as it is at this point? RT is working fine in the latest dev-version.

Does it really matter, if there are orphaned entries? Missing entries we will find during the translation process.

1 Like

@XavAL definitely seems to think it’s problematic - although so far what seemed to be an orphaned entry was not actually orphaned. I think it is worth at least ATTEMPTING to do an orphaned-entry search both for now and the future, at least a partial semi-automated solution.

I can easily find strings outside of HISTORY_MSG_NNN that are orphaned in the source code
I should be able to find HISTORY_MSG_NNN orphans without too much trouble

Limitations will be:
If it exists in source but is commented out, I won’t flag it with any currently planned approaches. Most likely the good reviewing @heckflosse and @floessie have been doing will prevent most if not all occurrences of this from happening
If it exists in source, but is in a code path that is somehow dead/inaccessible, an automated tool won’t detect this. Again, hopefully mostly if not entirely prevented by our code reviewers.

To be fair, I think my explanation make you miss my point: I’m not worried at all about duplicated, orphaned or obsolete entries. I know how to deal with them. The point is that translators also work hard in RT, and their (our) work is not something done in a few minutes, whenever we are bored and don’t know what else to do.

By the way, the brand new Spanish translation was ready a few months ago, with the invaluable help of @paco.lores . We are just waiting a final (?) English version to re-check our translations.

1 Like

And thus I think it’s a responsibility to try and reduce your effort required if possible.

Longterm that might be something like crowdin or weblate (weblate seems to be 100% FOSS and there’s already an instance hosted on the pixls infrastructure, so while my past familiarity is with crowdin, weblate may be a better longterm option, although translator input would be beneficial here on the future roadmap too!)

Short term, if I can parse those tables and find obvious orphans with a few hours of work, it seems like I should.

Dupes are going to be harder, obsolete entries that are still somehow present in the source code will be too. But obvious orphans seems to be low-hanging fruit to me.

Edit: Side note, timing is slightly bad this week due to the upcoming Easter holiday.

1 Like