<table><tr><td style="">vkrause 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/D15173">View Revision</a></tr></table><br /><div><div><blockquote style="border-left: 3px solid #8C98B8;
          color: #6B748C;
          font-style: italic;
          margin: 4px 0 12px 0;
          padding: 8px 12px;
          background-color: #F8F9FC;">
<div style="font-style: normal;
          padding-bottom: 4px;">In <a href="https://phabricator.kde.org/D15173#317976" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">D15173#317976</a>, <a href="https://phabricator.kde.org/p/pino/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;">@pino</a> wrote:</div>
<div style="margin: 0;
          padding: 0;
          border: 0;
          color: rgb(107, 116, 140);"><p>Please lookup the strings at runtime, instead of embedding them in the library.<br />
 Otherwise, an update to iso-codes (like updating the name of a country) will break the mapping, since the installed translations will not reflect the old text embedded.</p></div>
</blockquote>

<p>Yes, there are downsides with this approach. The reason it's done that way is that the old runtime lookup was way too slow (it's the reason I started looking into this code in the first place, it was dominating runtime cost when scrolling the KDE Itinerary timeline and when benchmarking data extraction, and that includes heavy PDF parsing...). The alternative would be a single load and keep all of the data in per-process memory to mitigate most of that, compared of this now being in shared read-only data. This function is potentially called in models (the worst case might be the locale-aware sorted country name combo box in KDE Itinerary, opening the page containing this takes a few seconds on my phone), so performance matters here.</p>

<p>IMHO this approach is preferable, as country name change intervals tend to be larger than our release cycles, and therefore don't justify the runtime performance and memory trade-offs.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R174 PIM: KContacts</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D15173">https://phabricator.kde.org/D15173</a></div></div><br /><div><strong>To: </strong>vkrause, mlaurent, pino<br /><strong>Cc: </strong>pino, mlaurent, svuorela, kde-pim, dvasin, rodsevich, winterz, vkrause, knauss, dvratil<br /></div>