<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="https://git.reviewboard.kde.org/r/118526/">https://git.reviewboard.kde.org/r/118526/</a>
     </td>
    </tr>
   </table>
   <br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On June 5th, 2014, 8:29 a.m. UTC, <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;">+1 from me.
The i18nd is definitely useful.

The setTranslationDomain isn't ideal, but there's no 100% nice solution to it.
</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;">Brainstorming:

There is one other possible way we could have i18n automatically select the right catalog, even if you have imports from QML files all over the place.

 - define all i18n functions in javascript instead of C++
 - have them do something like
          function i18n(text) { i18nd(__catalogName, text);

then imports or applications or whatever need to declare a:
 readonly property string __catalogName: "catalogName"
somewhere in the root file qml file, as well as in any imported file.

Because JS would then be evaluating the catalog name, it would find the variable in the right scope, and thus the right catalogName.
</pre>
<br />










<p>- David</p>


<br />
<p>On June 4th, 2014, 1:06 p.m. UTC, Martin Gräßlin wrote:</p>








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

<div>Review request for KDE Frameworks, Plasma and Marco Martin.</div>
<div>By Martin Gräßlin.</div>


<p style="color: grey;"><i>Updated June 4, 2014, 1:06 p.m.</i></p>









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


<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;">Provide i18nd wrappers in kdeclarative

As QML might combine multiple modules with different cataloges we need
to be able to specify the translation domain explicitly. If there is a
need to use a specific domain for all i18n calls (e.g. in a library
using QML) there is the possibility to set a global translation domain
through KDeclarative. If such a domain is set all i18n calls delegate
to the i18nd variant.

Due to the nature of KDeclarative we cannot mix i18n calls with
different domains. If two modules would require to set the translation
domain it's bound to fail. Thus the recommendation is to use the i18nd
variants in any QML code which is intended to be used as an import.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </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;">adjusted kwineffects KCM and run it with the x-test language: the strings with i18n from QML side are now picking up the translated strings.</pre>
  </td>
 </tr>
</table>


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

 <li>src/kdeclarative/kdeclarative.h <span style="color: grey">(b4a274b710f4de7ffbfc275d1e9a0a93be283053)</span></li>

 <li>src/kdeclarative/kdeclarative.cpp <span style="color: grey">(a35dac5cfbd42e75e892d4ad88c491345be4a1b0)</span></li>

 <li>src/kdeclarative/private/kdeclarative_p.h <span style="color: grey">(6b61d123bf74671b413e4e68bf911bb969fdaf53)</span></li>

 <li>src/kdeclarative/private/rootcontext.cpp <span style="color: grey">(123066669b096495910b83ed1e388989042b45a1)</span></li>

 <li>src/kdeclarative/private/rootcontext_p.h <span style="color: grey">(16694b155c668e11cf7a16549a18cdc89b81b3e2)</span></li>

</ul>

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







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








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