Page 1 of 4

ITT suggestions

Posted: 26 Nov 2012 19:00
by fenixproductions
Hi

I have noticed that search filter in ITT is not as easy for use as it could bem so I have decided two write down two small suggestions:

1. add a mode to ignore & character in strings, so even if I type Copy it will show &Copy BUT with taking into consideration string length: so &copy will show up before Copy selected items.

2. allow to filter strings with & character, i.e. &>Copy could mean showing only Copy strings which contain ampersand (&Copy, C&opy, etc.).

3. allow exact match (little combination of two from above)

4. provide some way to track shortcut keys conflicts (ALT+letter)

Re: ITT suggestions

Posted: 26 Nov 2012 20:20
by admin
I see, but unfortunately none of this is possible (unless with unreasonable effort). :|

Re: ITT suggestions

Posted: 27 Nov 2012 09:30
by Borut
I would find the suggestions made by fenix useful too. However, not worth the great effort.

On the other hand, Don, are you thinking about some quality assurance function? For instance:

- Flagging all those having an '&' in the original, but not in the translation (and vice versa)
- Flagging all those having some pending or trailing blanks, but not the same number of them in the translation

Regards,
Borut

Re: ITT suggestions

Posted: 27 Nov 2012 09:43
by admin
That would be possible.

Generally, accelerators (&) is a bug unsolved problem. There is no way to programmatically determine which elements are visible at the same time (i.e. which can have accelerator collisions. This info could only be added manually in some way, but only a crazy person would do this work.

All I could do is to provide automatic accelerators for translations that have none yet AND contain the same accelerator letter as the original.

Re: ITT suggestions

Posted: 28 Nov 2012 01:25
by fenixproductions
@admin
admin wrote:This info could only be added manually in some way, but only a crazy person would do this work.
I don't want to sound rude but such crazy people exist (i.e. Total Commander has small tool for checking such collisions) but I know that: more language strings you have the bigger is work it takes.

I'd like to truly appreciate your effort though: there are only few applications with custom built translation tools I am aware of (i.e. Advanced Renamer). And it is pretty original to have multiple plurals implemented. This is very, very neat.

Edited: I've just had an idea which I need to test with some of my old tools: INI switch which will cut off all letters from strings on load except the ones with '& prefix'. It will look awkward but may provide good enough visual indication. I need to check it…

Re: ITT suggestions

Posted: 28 Nov 2012 10:07
by admin
fenixproductions wrote:@admin
admin wrote:This info could only be added manually in some way, but only a crazy person would do this work.
I don't want to sound rude but such crazy people exist (i.e. Total Commander has small tool for checking such collisions) but I know that: more language strings you have the bigger is work it takes.

I'd like to truly appreciate your effort though: there are only few applications with custom built translation tools I am aware of (i.e. Advanced Renamer). And it is pretty original to have multiple plurals implemented. This is very, very neat.

Edited: I've just had an idea which I need to test with some of my old tools: INI switch which will cut off all letters from strings on load except the ones with '& prefix'. It will look awkward but may provide good enough visual indication. I need to check it…
Interesting. I currently cannot see how such a tool could work. But then I don't now TC. I'll find a solution one day.

EDIT: I just added a remark on accelerators to the Translation Guide (http://www.xyplorer.com/xyfc/viewtopic. ... 557#p78557) with the basic message: Don't worry, I'll find a solution.

When we are speaking about accelerators...

Posted: 28 Nov 2012 11:02
by Borut
When we are speaking about accelerators...

I have noticed (many?) cases, where the original English string in Reference.lng does not have accelerator, while the translation (the "same" English string) does! Example:

Code: Select all

kc.0192=00|Exit|--|E&xit
Few days ago there were many such strings and I am afraid that there are still many. I first thought that it is a glitch in the ITT, but apparently it is the Reference.lng itself, if I am not wrong.

How to proceed? :? :?:

Also, since you are already presenting the current line as a hint when hovering over the score bar, it would be nice to define some handy functions for double clicking and left/right clicking the score bar, that would copy some strings into clipboard, for instance like the following ones (of which the first one is being inspired by the daily reports of pseudoz on this forum):

Code: Select all

Français [ 2012-11-27 13:03 - LF 7.6 - 3567/5210 (68,46%) ]
kc.0192=00|Exit|--|E&xit
Exit
E&xit

Re: ITT suggestions

Posted: 28 Nov 2012 12:35
by fenixproductions
@admin
I know it is not easy to do it from running application but you have sources

So maybe, just maybe:
1. take source code parts responsible for generating GUI
2. parse them to get parent -> children information.
3. save it to CSV file in the form of:
ParentControlName;ChildrenControlName;ParentControlTranslationId;ChildrenControlTranslationId.
where:
ParentControlName - control name or id used by XYplorer (internal purpose),
ChildrenControlName - control name or id used by XYplorer (internal purpose),
ParentControlTranslationId - used for notifications,
ChildrenControlTranslationId - used to get translated text with & characters and notifications.

Now ITT tool could use such file:
1. check all strings for children from the same parent,
2. notify about accelerator conflicts: "<ParentControlTranslationId.Text> has conflicting accelerator keys:\n<list of children strings with ChildrenControlTranslationId >"
3. maybe even provide info: "You have following letters left…" - who knows.

I am aware that some controls are meant for grouping (GroupBox, Panel) so sometimes you would need to use grandparent instead.

I hope I did not complicate it too much ;)

Re: When we are speaking about accelerators...

Posted: 28 Nov 2012 14:17
by admin
Borut wrote:When we are speaking about accelerators...

I have noticed (many?) cases, where the original English string in Reference.lng does not have accelerator, while the translation (the "same" English string) does! Example:

Code: Select all

kc.0192=00|Exit|--|E&xit
Few days ago there were many such strings and I am afraid that there are still many. I first thought that it is a glitch in the ITT, but apparently it is the Reference.lng itself, if I am not wrong.

How to proceed? :? :?:

Also, since you are already presenting the current line as a hint when hovering over the score bar, it would be nice to define some handy functions for double clicking and left/right clicking the score bar, that would copy some strings into clipboard, for instance like the following ones (of which the first one is being inspired by the daily reports of pseudoz on this forum):

Code: Select all

Français [ 2012-11-27 13:03 - LF 7.6 - 3567/5210 (68,46%) ]
kc.0192=00|Exit|--|E&xit
Exit
E&xit
Exit|--|E&xit -- oh, bug. I fixed that now. No worries, your translations will not be touched by upgrading.

Daily reports of pseudoz? :) Where?

Right clicking the score bar: okay, but the last two items are original and translation, right? You already got those commands in another context menu (item list, and apply button).

Re: When we are speaking about accelerators...

Posted: 28 Nov 2012 14:31
by Borut
admin wrote:Exit|--|E&xit -- oh, bug. I fixed that now. No worries, your translations will not be touched by upgrading.
Good, thanks. I was spending yesterday some time deleting the "&" from a lot of translations. I'll probably have to put them back, I guess. As I wrote, a simple QA reporting on strings that have/don't have "&" in original and don't have/have it in translation would be helpful, I think. BTW, I am surprised that no German, French, Portuguese... translators are reporting any such problems, but only I do. Hope you do not mind.
admin wrote:Daily reports of pseudoz? :) Where?
Multilingual support area. He/she is just changing the title of the thread each day. Look at thread titles there. - Today it is over 73% already.
admin wrote:Right clicking the score bar: okay, but the last two items are original and translation, right? You already got those commands in another context menu (item list, and apply button).
OK, yes, I agree. Was just thinking that it would be cool having them at one place via different clicks. But, never mind.

Re: When we are speaking about accelerators...

Posted: 28 Nov 2012 14:43
by admin
QA reporting on strings ...
I might do something with filters...
He/she is just changing the title of the thread each day.
Oh, I never noted that! Wow, 73%! He really wants that t-shirt! :)

I packed all those new copy commands in one place now.

Re: When we are speaking about accelerators...

Posted: 28 Nov 2012 14:53
by admin
Borut wrote:
admin wrote:Exit|--|E&xit -- oh, bug. I fixed that now. No worries, your translations will not be touched by upgrading.
Good, thanks. I was spending yesterday some time deleting the "&" from a lot of translations. I'll probably have to put them back, I guess. As I wrote, a simple QA reporting on strings that have/don't have "&" in original and don't have/have it in translation would be helpful, I think. BTW, I am surprised that no German, French, Portuguese... translators are reporting any such problems, but only I do. Hope you do not mind.
Of course, I don't, I love feedback.

BTW, I only fixed this in the "kc" section. In "ms" (messages) it is on purpose that the accelerators are removed from the original. This is necessary for the way it is coded; ultimately to make it future-proof against changes in accelerators which can always happen without notice.

Re: When we are speaking about accelerators...

Posted: 28 Nov 2012 15:09
by Borut
admin wrote:In "ms" (messages) it is on purpose that the accelerators are removed from the original. This is necessary for the way it is coded; ultimately to make it future-proof against changes in accelerators which can always happen without notice.
Oh, I see. Then the rule for translators is: as soon as an accelerator is in "translated" English string, it should be there in the real translation (if at all possible and translator has time for this). Thank you for clarification.

Re: When we are speaking about accelerators...

Posted: 28 Nov 2012 16:33
by admin
Borut wrote:
admin wrote:In "ms" (messages) it is on purpose that the accelerators are removed from the original. This is necessary for the way it is coded; ultimately to make it future-proof against changes in accelerators which can always happen without notice.
Oh, I see. Then the rule for translators is: as soon as an accelerator is in "translated" English string, it should be there in the real translation (if at all possible and translator has time for this). Thank you for clarification.
Exactly.

Re: ITT suggestions

Posted: 29 Nov 2012 09:40
by admin
fenixproductions wrote:@admin
I know it is not easy to do it from running application but you have sources

So maybe, just maybe:
1. take source code parts responsible for generating GUI
2. parse them to get parent -> children information.
3. save it to CSV file in the form of:
ParentControlName;ChildrenControlName;ParentControlTranslationId;ChildrenControlTranslationId.
where:
ParentControlName - control name or id used by XYplorer (internal purpose),
ChildrenControlName - control name or id used by XYplorer (internal purpose),
ParentControlTranslationId - used for notifications,
ChildrenControlTranslationId - used to get translated text with & characters and notifications.

Now ITT tool could use such file:
1. check all strings for children from the same parent,
2. notify about accelerator conflicts: "<ParentControlTranslationId.Text> has conflicting accelerator keys:\n<list of children strings with ChildrenControlTranslationId >"
3. maybe even provide info: "You have following letters left…" - who knows.

I am aware that some controls are meant for grouping (GroupBox, Panel) so sometimes you would need to use grandparent instead.

I hope I did not complicate it too much ;)
Yes, I already thought along these lines, but it's complicated. Controls of different levels can be visible at the same time. Not only shared parents, but A's parent is B's grandparent is C's grandgrandparent, and all are visible at the same time. These constellations are hard to determine if at all. I'll find a way...