(I'm not sure if this will get through to the list, so I'm cc'ing those who did commits to the relevant dir)
Today I reviewed our po files and noticed a lot of new UI strings coming from the ui/ directory. This needs to be fixed immediately, or at least before we declare the string freeze and call the translators to update translations. These new strings are really a very bad idea for several reasons:
- They are duplicate of strings found elsewhere, but often non-exact duplicates (or their originals have changed since they were copied). This means a lot of useless extra work for translators, dangers of further desynchronization, etc.
- These strings are sometimes "fixed" wrongly. For example in stock-items.cpp, someone wrote "Select _Original Clone" instead of the "Select _Original". This "correction" simply does not make sense; what is meant is "select the original _of the_ clone" but even in that form it's wrong because it is applicable not only to clones.
- Most strings in ui/view/edit.cpp have hard-coded shortcuts in them, e.g "Next zoom (from history of zooms) (Shift+`)". This is absolutely intolerable, for obvious reasons. The old code has special provisions for generating shortcut strings for the UI, and losing that is a serious regression.
I can see several approaches to fixing this, please choose one or more as appropriate:
1. If this ui/ code is unused and is not going to be used, simply delete it and regenerate the po's.
2. If it is currently unused but may be used later, at least remove it from the list of po sources, so it does not contaminate the po files, until it is fixed properly.
3. Rewrite the code so that, where possible, it takes the strings from the standard central location. For example all verbs have their commands and tooltips in verbs.cpp, so copying them over into ui/stock-items.cpp is very very wrong.
4. Where 3. is not appropriate and you want to move some of the strings into some new code or structure, do this ONLY when that new code or structure is fully workable, and then immediately delete them from the source location, so that there's no duplication ever. Until then, use some placeholder strings in your code and make sure they don't get into the po files.
As you may have noticed, I'm _constantly_ revising and copyediting the UI strings, because it's such an important aspect of the UI. Please don't undermine my efforts. I hope this mess is cleaned as soon as possible.
Thanks!