https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38573
Jerry DeLisle <jvdelisle at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jvdelisle at gcc dot gnu.org
--- Comment #6 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> ---
(In reply to Frederic Marchal from comment #5)
> 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".
It looks wrong to me here. The "but %s" makes no sense in English. There are
two sentences in the above error message. Do you need the strings split like
this?
gfc_error ("The procedure %qs declared INTRINSIC at %L is not "
"available with the current standard setting of %s. "
"Try a different standard setting option (-std= ) or enable "
"all intrinsics (-fall-intrinsics).",
sym->name, &sym->declared_at, symstd);