https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38573

Frederic Marchal <fmarchal at perso dot be> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fmarchal at perso dot be

--- Comment #5 from Frederic Marchal <fmarchal at perso dot be> ---
This issue is still present in gcc 7.

The strings assigned to symstd_msg in gfc_check_intrinsic_standard() should be
marked for translation.

As it is, the current code in fortran/resolve.c at line 1709 outputs an error
message containing one untranslated fragment:

  /* Check it is actually available in the standard settings.  */
  if (!gfc_check_intrinsic_standard (isym, &symstd, false, sym->declared_at))
    {
      gfc_error ("The intrinsic %qs declared INTRINSIC at %L is not "
         "available in the current standard settings but %s. Use "
         "an appropriate %<-std=*%> option or enable "
         "%<-fall-intrinsics%> in order to use it.",
         sym->name, &sym->declared_at, symstd);
      return false;
    }

I don't know how many languages could work around that string concatenation and
still present a meaningful message to the user but none can output a legible
message if %s isn't translated. Therefore, I recommend to mark the strings for
translation as a stopgap until a full i18n compatible solution is available.

I also suggest to write a comment for translators stating that %s is a string
such as "available since Fortran 77".

Reply via email to