On 12/09/2023 16:05, Ihor Radchenko wrote:
Max Nikulin writes:

Every piece of code accessing this public constant must implement
fallback from e.g. "de-ch" (or de_CH) to "de". Or to "en" for an
unsupported language.

Not necessarily. I mostly thought about some unconventional code that
uses the constant for some reason unexpected to us. We do not want to
break that.

My point is that direct usage of `org-latex-language-alist' should be discouraged.

This languange-region identifiers may be written in different way
(dash/underscore, case), but they are used specify POSIX locale LANG,
LC_* and extensions like LANGUAGE, so in some cases human friendly names
may be less convenient.

Sorry, but I do not follow you about the downsides of "human friendly" names.

I am not against them for the "#+language" keyword (however I am unsure concerning e.g. human variant for de_IT). In the code I would prefer ll_RR locale identifiers as a widely accepted practice.

Though I am not sure if we can easily handle tricky
cases like weird installation directory for TeXLive or MikTeX.

kpsewhich babel-de.ini

which may not be in the PATH.

From my point of view it is a call to trouble. E.g. I have no idea how to determine if LuaLaTeX is installed. Notice that in Debian the executable file is provided by

    texlive-latex-base: /usr/bin/lualatex

while actually texlive-luatex must be installed to make lualatex usable. Unsure if there is a better way than

    kpsewhich -engine luahbtex lualatex.fmt

and I am not sure that this particular command is reliable enough.

Moreover kpsewhich may help to detect if some packages are available for export or a fallback to less advanced ones should be used instead.

/usr/share/texlive/texmf-dist/tex/generic/babel/locale/de/babel-de.ini

which is not true on Guix, or when installed under /opt via make install.

It is the exact reason to use kpsewhich. Besides install paths it respects TEXMF environment variables that may additional user-specific directories to search path.

I did not mean the conventional distros that follow conventional naming
schemes, but the edge cases - I see no point adding automation just to
fight various non-standard user installations later. It will not make
maintenance any easier.

I am considering generating of some locale data on a developer machine that has all necessary packages installed. In general I am against storing of autogenerated files in git, but in this case it may have sense.



Reply via email to