<table><tr><td style="">pino added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D14504">View Revision</a></tr></table><br /><div><div><p>TBH I had the idea of making <tt style="background: #ebebeb; font-size: 13px;">splitLocale()</tt> public, since it was a public API in <tt style="background: #ebebeb; font-size: 13px;">KLocale</tt>. I still see a couple of users of it, and in the past I remember people working around the lack of <tt style="background: #ebebeb; font-size: 13px;">splitLocale()</tt> by doing the same job on their own, when porting away from kdelibs4support.</p>

<p>With that in mind, IMHO using <tt style="background: #ebebeb; font-size: 13px;">QStringRef</tt> for a public API still seems odd to me, especially that if you really care about any part split, then most probably you will pass to other APIs that use <tt style="background: #ebebeb; font-size: 13px;">QString</tt> (sort of nullifying the gain from using <tt style="background: #ebebeb; font-size: 13px;">QStringRef</tt>).</p>

<p>I saw too many cases in kdelibs 4.x applications using patterns like:</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="c++" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);"><span class="n">QString</span> <span class="n">language</span><span class="p">,</span> <span class="n">dummy</span><span class="p">;</span>
<span class="n">KLocale</span><span style="color: #aa2211">::</span><span class="n">splitLocale</span><span class="p">(</span><span class="n">locale</span><span class="p">,</span> <span class="n">language</span><span class="p">,</span> <span class="n">dummy</span><span class="p">,</span> <span class="n">dumy</span><span class="p">,</span> <span class="n">dummy</span><span class="p">);</span></pre></div>

<p>Because of that, a better API would be to pass <tt style="background: #ebebeb; font-size: 13px;">QString*</tt> for the split parts, so you can decide what actually you want as results -- e.g.:</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="c++" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);"><span class="n">QString</span> <span class="n">language</span><span class="p">;</span>
<span class="n">KLocalizedString</span><span style="color: #aa2211">::</span><span class="n">splitLocale</span><span class="p">(</span><span class="n">locale</span><span class="p">,</span> <span style="color: #aa2211">&</span><span class="n">language</span><span class="p">,</span> <span style="color: #aa4000">nullptr</span><span class="p">,</span> <span style="color: #aa4000">nullptr</span><span class="p">,</span> <span style="color: #aa4000">nullptr</span><span class="p">);</span></pre></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R249 KI18n</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D14504">https://phabricator.kde.org/D14504</a></div></div><br /><div><strong>To: </strong>apol, Frameworks, ilic<br /><strong>Cc: </strong>pino, kde-frameworks-devel, michaelh, ngraham, bruns<br /></div>