DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(gettext.info.gz) Optimized gettext

Info Catalog (gettext.info.gz) Plural forms (gettext.info.gz) gettext
 
 11.2.7 Optimization of the *gettext functions
 ---------------------------------------------
 
 At this point of the discussion we should talk about an advantage of the
 GNU `gettext' implementation.  Some readers might have pointed out that
 an internationalized program might have a poor performance if some
 string has to be translated in an inner loop.  While this is unavoidable
 when the string varies from one run of the loop to the other it is
 simply a waste of time when the string is always the same.  Take the
 following example:
 
      {
        while (...)
          {
            puts (gettext ("Hello world"));
          }
      }
 
 When the locale selection does not change between two runs the resulting
 string is always the same.  One way to use this is:
 
      {
        str = gettext ("Hello world");
        while (...)
          {
            puts (str);
          }
      }
 
 But this solution is not usable in all situation (e.g. when the locale
 selection changes) nor does it lead to legible code.
 
    For this reason, GNU `gettext' caches previous translation results.
 When the same translation is requested twice, with no new message
 catalogs being loaded in between, `gettext' will, the second time, find
 the result through a single cache lookup.
 
Info Catalog (gettext.info.gz) Plural forms (gettext.info.gz) gettext
automatically generated byinfo2html