diff options
Diffstat (limited to 'macros/latex-dev/required/latex-lab/documentmetadata-support.dtx')
-rw-r--r-- | macros/latex-dev/required/latex-lab/documentmetadata-support.dtx | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/macros/latex-dev/required/latex-lab/documentmetadata-support.dtx b/macros/latex-dev/required/latex-lab/documentmetadata-support.dtx index 54483ec4c9..a629d9c551 100644 --- a/macros/latex-dev/required/latex-lab/documentmetadata-support.dtx +++ b/macros/latex-dev/required/latex-lab/documentmetadata-support.dtx @@ -350,14 +350,35 @@ \file_input:n {l3backend-testphase-\c_sys_backend_str.def} \ExplSyntaxOff\makeatother % \end{macrocode} -% Set the default language (this requires that the backend has been loaded), -% process the rest of the keys, -% and setup the generic driver. +% +% Process the init keys and setup the generic driver. % \begin{macrocode} - \keys_set_filter:nnn { document / metadata } { init } { lang=en-US, #1 } + \keys_set_filter:nnn { document / metadata } { init } { #1 } \bool_if:NT \g_@@_active_bool { \PassOptionsToPackage{customdriver=hgeneric-testphase}{hyperref} +% \end{macrocode} +% Finally we setup the language default. +% This is done after the begindocument hook so that it can pick up settings +% from babel. If the Catalog dictionary already contains a lang value we do nothing, +% otherwise we use the value stored in \cs{BCPdata}, either the main language +% (if its exists) or the fall back language. +% Note: if babel is loaded without a language this gives the language \texttt{und}. +% \begin{macrocode} + \g@addto@macro\@kernel@after@begindocument + { + \pdfdict_get:nnN {g__pdf_Core/Catalog}{Lang}\l_@@_tmpa_tl + \quark_if_no_value:NT\l_@@_tmpa_tl + { + \tl_if_empty:eTF { \BCPdata{main.language} } + { \tl_set:Ne \l_@@_tmpb_tl { \BCPdata{language} } } + { \tl_set:Ne \l_@@_tmpb_tl { \BCPdata{main.language} } } + \msg_warning:nne { meta } { lang-missing }{ \l_@@_tmpb_tl } + \exp_last_unbraced:Ne + \AddToDocumentProperties{[document]{lang}{\l_@@_tmpb_tl}} + \pdfmanagement_add:nne {Catalog} {Lang}{(\l_@@_tmpb_tl)} + } + } } % \end{macrocode} % \cs{pdfmanagement_add:nnn} has collected values in this hook. @@ -556,6 +577,11 @@ { LaTeX-lab~package~'#1'~not~found. } +\msg_new:nnn { meta } { lang-missing } + { + The~language~has~not~been~set~in~\token_to_str:N + \DocumentMetadata.\\Setting~it~to~'#1'~as~fallback. + } % \end{macrocode} % % \begin{macrocode} |