[mythtv-commits] Ticket #13585: Channelscan progress lost in translation
MythTV
noreply at mythtv.org
Sat Feb 22 13:05:53 UTC 2020
#13585: Channelscan progress lost in translation
--------------------------------------+-------------------------------
Reporter: Klaas de Waal | Owner: Klaas de Waal
Type: Bug Report - General | Status: assigned
Priority: minor | Milestone: 31.0
Component: MythTV - Channel Scanner | Version: Master Head
Severity: medium | Resolution:
Keywords: Translation | Ticket locked: 0
--------------------------------------+-------------------------------
Changes (by Klaas de Waal):
* milestone: needs_triage => 31.0
Old description:
> The presentation of the progress and the signal strength by the
> channelscanner is wrong since a few days. See the attached picture.
> This regression is likely to be have been introduced by the translations
> recently committed.
>
> The relevant bit of code in channelscanner_gui_pan.cpp is from 15 Jul
> 2017, commit 24064ac6e618bc5f340c08116c6ed4dae2c0aaa6 and has always
> worked correct.
> This is the code:
> {{{
> void ChannelScannerGUIScanPane::SetStatusSignalStrength(int value)
> {
> if (m_signalStrengthText)
> m_signalStrengthText->SetText(tr("%1%")
> .arg(static_cast<uint>(value * 100 /
> 65535)));
>
> }}}
> It looks to me that it tries to translate the number. I am not aware that
> this is done anywhere else in the code and if the translation is done by
> a string to string replacement then you need a lot of strings.....
>
> I intend to fix this now for the time being by changing the code to this:
> {{{
> void ChannelScannerGUIScanPane::SetStatusSignalStrength(int value)
> {
> if (m_signalStrengthText)
> m_signalStrengthText->SetText(QString("%1%")
> .arg(static_cast<uint>(value * 100 /
> 65535)));
> }}}
> which will restore the old behavior.
>
> If the intention is really to translate the number then the original code
> can always be restored once the translation is fixed.
>
> It is possible that the changed behavior of the "tr" function may have
> effects elsewhere as well.
New description:
The presentation of the progress and the signal strength by the
channelscanner is wrong since a few days. See the attached picture.
This regression is likely to be have been introduced by the translations
recently committed.
The relevant bit of code in channelscanner_gui_scan_pane.cpp is from 15
Jul 2017, commit 24064ac6e618bc5f340c08116c6ed4dae2c0aaa6 and has always
worked correct.
This is the code:
{{{
void ChannelScannerGUIScanPane::SetStatusSignalStrength(int value)
{
if (m_signalStrengthText)
m_signalStrengthText->SetText(tr("%1%")
.arg(static_cast<uint>(value * 100 /
65535)));
}}}
It looks to me that it tries to translate the number. I am not aware that
this is done anywhere else in the code and if the translation is done by a
string to string replacement then you need a lot of strings.....
I intend to fix this now for the time being by changing the code to this:
{{{
void ChannelScannerGUIScanPane::SetStatusSignalStrength(int value)
{
if (m_signalStrengthText)
m_signalStrengthText->SetText(QString("%1%")
.arg(static_cast<uint>(value * 100 /
65535)));
}}}
which will restore the old behavior.
If the intention is really to translate the number then the original code
can always be restored once the translation is fixed.
It is possible that the changed behavior of the "tr" function may have
effects elsewhere as well.
--
Comment:
This does of course not solve the underlying problem in the translation
system, which produces now the string "18:{1%?}" instead of "18%" for
{{{
tr("%1%).arg(18)
}}}
as shown in the attached screenshot.
--
Ticket URL: <https://code.mythtv.org/trac/ticket/13585#comment:3>
MythTV <http://www.mythtv.org>
MythTV Media Center
More information about the mythtv-commits
mailing list