<div dir="ltr"><div>Fixed: <a href="https://invent.kde.org/kde/kate/commit/d10af90957bfce5b7c8b55bb43faf0a7584b9354">https://invent.kde.org/kde/kate/commit/d10af90957bfce5b7c8b55bb43faf0a7584b9354</a></div><div><br></div><div>Thanks!</div><div>Dominik<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Oct 7, 2019 at 10:36 PM Albert Astals Cid <<a href="mailto:aacid@kde.org">aacid@kde.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">El dilluns, 7 d’octubre de 2019, a les 22:27:20 CEST, Dominik Haumann va escriure:<br>
> Ok, thanks. Both fixed.<br>
> <br>
> Yet, I have another one:<br>
> I use i18nc("External tools name", name) and i18nc("External tools<br>
> category", category) to translate external tools. This works for external<br>
> tools that are shipped by default.<br>
> <br>
> However, if the user creates a new tool, the name and category initially is<br>
> empty: i18n("") then returns "(I18N_EMPTY_MESSAGE)" as user visible string,<br>
> which is not what I want.<br>
> <br>
> I found on <a href="https://api.kde.org/frameworks/ki18n/html/prg_guide.html" rel="noreferrer" target="_blank">https://api.kde.org/frameworks/ki18n/html/prg_guide.html</a> that<br>
> "an empty string should never be wrapped with a basic i18n call (no i18n("")),<br>
> because in translation catalog the message with empty text has a special<br>
> meaning, and is not intended for client use. The behavior of i18n("") is<br>
> undefined, and there will be some warnings in debug mode."<br>
> <br>
> So what's the proper way of using i18n() if the string possibly is empty?<br>
> Create a helper function "QString myI18n(const QString &)" that only calls<br>
> i18n() if the passed string is non-empty?<br>
<br>
Yes.<br>
<br>
Cheers,<br>
  Albert<br>
<br>
> <br>
> Thanks & best regards<br>
> Dominik<br>
> <br>
> <br>
> <br>
> <br>
> <br>
> <br>
> <br>
> On Mon, Sep 23, 2019 at 11:52 PM Albert Astals Cid <<a href="mailto:aacid@kde.org" target="_blank">aacid@kde.org</a>> wrote:<br>
> <br>
> > El dilluns, 23 de setembre de 2019, a les 16:12:45 CEST, Dominik Haumann<br>
> > va escriure:<br>
> > > Hi everyone,<br>
> > ><br>
> > > I have some translation-related questions for the external tools plugin.<br>
> > > Currently some things are certainly wrong.<br>
> > ><br>
> > > 1. Messages.sh<br>
> > > We have default tools in a file compiled into Kate, see:<br>
> > ><br>
> > <a href="https://invent.kde.org/kde/kate/blob/master/addons/externaltools/defaultexternaltoolsrc" rel="noreferrer" target="_blank">https://invent.kde.org/kde/kate/blob/master/addons/externaltools/defaultexternaltoolsrc</a><br>
> > > In short, this is a ini-like file. Entries that need translation are:<br>
> > > name=...<br>
> > > category=...<br>
> > > The rest must not be translated. Still, I am pretty sure we are missing a<br>
> > > line or so in the Message.sh extraction script:<br>
> > ><br>
> > <a href="https://invent.kde.org/kde/kate/blob/master/addons/externaltools/Messages.sh" rel="noreferrer" target="_blank">https://invent.kde.org/kde/kate/blob/master/addons/externaltools/Messages.sh</a><br>
> > ><br>
> > > Can one of you clarify how to do this properly?<br>
> ><br>
> > You're using a custom file format, so you need a custom solution.<br>
> ><br>
> > Something with sed/grep/whatever that extracts from that customrc file and<br>
> > appends to rc.cpp<br>
> ><br>
> > Also you'll need to call i18n() on whatever thing you read from that rc<br>
> > file so it actually gets translated.<br>
> ><br>
> > ><br>
> > > 2. ui.rc<br>
> > > The xmlgui file is located here:<br>
> > > <a href="https://invent.kde.org/kde/kate/blob/master/addons/externaltools/ui.rc" rel="noreferrer" target="_blank">https://invent.kde.org/kde/kate/blob/master/addons/externaltools/ui.rc</a><br>
> > > The contents to be discussed is:<br>
> > > <gui name="externaltools" library="externaltoolsplugin" version="1"><br>
> > ><br>
> > > In other plugins, I can also find an attribute "translationDomain", e.g.:<br>
> > > <a href="https://invent.kde.org/kde/kate/blob/master/addons/lspclient/ui.rc" rel="noreferrer" target="_blank">https://invent.kde.org/kde/kate/blob/master/addons/lspclient/ui.rc</a><br>
> > ><br>
> > > My CMakeLists.txt file located at<br>
> > ><br>
> > <a href="https://invent.kde.org/kde/kate/blob/master/addons/externaltools/CMakeLists.txt" rel="noreferrer" target="_blank">https://invent.kde.org/kde/kate/blob/master/addons/externaltools/CMakeLists.txt</a><br>
> > > contains this:<br>
> > > target_compile_definitions(externaltoolsplugin PRIVATE<br>
> > > TRANSLATION_DOMAIN="kateexternaltoolsplugin")<br>
> > ><br>
> > > Am I missing the translationDomain in the ui.rc file?<br>
> ><br>
> > Yes, how do you expect the kpart code to know from which domain(aka file)<br>
> > to load the translations when presented with that xml file otherwise?<br>
> ><br>
> > Cheers,<br>
> >   Albert<br>
> ><br>
> > ><br>
> > > Any hints are welcome.<br>
> > ><br>
> > > Best regards<br>
> > > Dominik<br>
> > ><br>
> ><br>
> ><br>
> ><br>
> ><br>
> ><br>
> <br>
<br>
<br>
<br>
<br>
</blockquote></div>