<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://git.reviewboard.kde.org/r/104314/">http://git.reviewboard.kde.org/r/104314/</a>
     </td>
    </tr>
   </table>
   <br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On March 18th, 2012, 1:35 a.m., <b>Daniele Elmo Domenichelli</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Thanks for the patch, and welcome! A couple of comments:</pre>
 </blockquote>









</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">4545</pre>
<br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On March 18th, 2012, 1:35 a.m., <b>Daniele Elmo Domenichelli</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  



<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="http://git.reviewboard.kde.org/r/104314/diff/1/?file=53621#file53621line114" style="color: black; font-weight: bold; text-decoration: underline;">telepathy-mpris.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">void TelepathyMPRIS::onPlayerSignalReceived(const QString &interface, const QVariantMap &changedProperties, const QStringList &invalidatedProperties)</pre></td>

  </tr>
 </tbody>




 
 



 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">114</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span class="n">statusMessage</span><span class="p">.</span><span class="n">replace</span><span class="p">(</span><span class="n">QLatin1String</span><span class="p">(</span><span class="s">"%title"</span><span class="p">),</span> <span class="n">title</span><span class="p">,</span> <span class="n">Qt</span><span class="o">::</span><span class="n">CaseInsensitive</span><span class="p">);</span></pre></td>
  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">On the other hand we might want to do this i18n replacement only when the string is set and store the string always in this form, so that if one changes the language of the application it doesn't break...

I'd consider making 3 replacements:
 - the first one from i18n("%title") to QLatin1String("%title") when we save the string from the KCM module
 - the second one from QLatin1String("%title") to the real title when nowPlaying replaces it (i.e. leave it unchanged here and modify the string where it is stored from the kcm module)
 - the third one from QLatin1String("%title") to i18n("%title") when you load the entry to display it in the KCM module.

In this way we always store the english version but we display the i18n one.

What do you think?</pre>
 </blockquote>



 <p>On March 18th, 2012, 2:04 a.m., <b>David Edmundson</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">That's frickin' clever.

So to clarify we leave this code alone, sort out the translations purely in the config.

So the user will type and see
"Ich höre zu %muziktitelsatzding" (or whatever the correct German is) and we will save "Ich höre zu %title"



A big +1 from me, as that solves any issue with translators using different terms in the two places.

QString nowPlayingText = kdedConfig.readEntry(QLatin1String("nowPlayingText"),
                                   i18nc("The text displayed by now playing plugin", "Now listening to %1 by %2"), QLatin1String("%title"),                            QLatin1String("%artist"));

and _then_ we do (which we'd be doing anyway)

nowPlayingText.replace(QLatin1String("%title", i18n("%title")));
ui->setText(nowPlayingText);

The translations part of "%title" is now only in one place, and not in two very different strings so it can't go wrong. (famous last words)


--

Othmane does the suggestion make sense to you?</pre>
 </blockquote>







</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">@Daniele
I think is a nice and "elegant" way to handle the i18n part, great idea!

@Dave
Thank you for the additional clarification :)
I understood the concept</pre>
<br />

<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On March 18th, 2012, 1:35 a.m., <b>Daniele Elmo Domenichelli</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  



<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="http://git.reviewboard.kde.org/r/104314/diff/1/?file=53621#file53621line115" style="color: black; font-weight: bold; text-decoration: underline;">telepathy-mpris.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">void TelepathyMPRIS::onPlayerSignalReceived(const QString &interface, const QVariantMap &changedProperties, const QStringList &invalidatedProperties)</pre></td>

  </tr>
 </tbody>




 
 



 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">115</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span class="n">statusMessage</span><span class="p">.</span><span class="n">replace</span><span class="p">(</span><span class="n">QLatin1String</span><span class="p">(</span><span class="s">"%artist"</span><span class="p">),</span> <span class="n">artist</span><span class="p">,</span> <span class="n">Qt</span><span class="o">::</span><span class="n">CaseInsensitive</span><span class="p">);</span></pre></td>
  </tr>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">116</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span class="n">statusMessage</span><span class="p">.</span><span class="n">replace</span><span class="p">(</span><span class="n">QLatin1String</span><span class="p">(</span><span class="s">"%album"</span><span class="p">),</span> <span class="n">album</span><span class="p">,</span> <span class="n">Qt</span><span class="o">::</span><span class="n">CaseInsensitive</span><span class="p">);</span></pre></td>
  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">You might want to allow more fields here (track number, year, gender...) see http://www.mpris.org/2.1/spec/TrackList_Node.html#Mapping:Metadata_Map and http://xmms2.org/wiki/MPRIS_Metadata for the properties that you can set</pre>
 </blockquote>





</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Since the number of fields is enough consistent maybe it's better if I use a QStringList that contains all tags? Also i18n replacements managed via QStringList should be simpler...</pre>
<br />




<p>- Othmane</p>


<br />
<p>On March 17th, 2012, 2:29 p.m., Othmane Moustaouda wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/media/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Telepathy.</div>
<div>By Othmane Moustaouda.</div>


<p style="color: grey;"><i>Updated March 17, 2012, 2:29 p.m.</i></p>






<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Enabled the possibility for the user to set his custom 'Now listening' presence string</pre>
  </td>
 </tr>
</table>




<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>


 <a href="http://bugs.kde.org/show_bug.cgi?id=282944">282944</a>


</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>config/telepathy-kded-config.cpp <span style="color: grey">(1fb515f56500407b7b221d1d5310237f8d94ca7f)</span></li>

 <li>telepathy-mpris.h <span style="color: grey">(d909863e68d0fdc7a6eb4ebb972d975ba224b6ef)</span></li>

 <li>telepathy-mpris.cpp <span style="color: grey">(8dae701a203f6c5ba43a622ce7125615b4392b63)</span></li>

</ul>

<p><a href="http://git.reviewboard.kde.org/r/104314/diff/" style="margin-left: 3em;">View Diff</a></p>




  </td>
 </tr>
</table>








  </div>
 </body>
</html>