diff options
author | Karl Berry <karl@freefriends.org> | 2022-04-21 20:13:21 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-04-21 20:13:21 +0000 |
commit | 44b32b2d63a16a1cea0784e31a91d6acfdd06dcb (patch) | |
tree | ea435f460a1391867eb3c0a361155b7cd5e4a1d5 /Master/texmf-dist/tex/latex/projlib/projlib-language.sty | |
parent | 535f726c3859c39187f594666ae9d9ea846e188a (diff) |
jxu (21apr22)
git-svn-id: svn://tug.org/texlive/trunk@63098 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/projlib/projlib-language.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/projlib/projlib-language.sty | 165 |
1 files changed, 142 insertions, 23 deletions
diff --git a/Master/texmf-dist/tex/latex/projlib/projlib-language.sty b/Master/texmf-dist/tex/latex/projlib/projlib-language.sty index 409562366b3..45aa4755cb6 100644 --- a/Master/texmf-dist/tex/latex/projlib/projlib-language.sty +++ b/Master/texmf-dist/tex/latex/projlib/projlib-language.sty @@ -19,7 +19,7 @@ \RequirePackage{l3keys2e} \ProvidesExplPackage {projlib-language} - {2022/04/03} {} + {2022/04/18} {} {Multi-language configuration} \clist_const:Nn \c__projlib_language_supported_clist @@ -145,7 +145,7 @@ \cs_new:Nn \projlib_language_str_to_languagename:n { - \str_case_e:nnF { \str_foldcase:n { #1 } } + \str_case_e:nnF { \exp_args:Ne \str_foldcase:n { \tl_trim_spaces:n { #1 } } } { { all } { common } { common } { common } @@ -183,7 +183,7 @@ \cs_new:Nn \projlib_language_str_to_languagetype:n { - \str_case_e:nn { \str_foldcase:n { #1 } } + \str_case_e:nnF { \exp_args:Ne \str_foldcase:n { \tl_trim_spaces:n { #1 } } } { { cn } { cjk } { chinese } { cjk } @@ -214,6 +214,7 @@ { ru } { latin } { russian } { latin } } + { latin } } \sys_if_engine_pdftex:T @@ -281,7 +282,6 @@ \tl_gput_right:Nn \g_projlib_language_settings_schinese_tl { - \g_projlib_language_settings_common_tl \tl_set:Nn \languagename { schinese } \tl_set:cn { abstractname } { 摘要 } \tl_set:cn { proofname } { 证明 } @@ -295,10 +295,22 @@ \tl_set:cn { refname } { 参考文献 } \tl_set:cn { bibname } { 参考文献 } } +\cs_new_protected:Nn \projlib_language_apply_settings_globally_schinese: + { + \g_projlib_language_settings_common_tl + \g_projlib_language_settings_schinese_tl + } +\cs_new_protected:Nn \projlib_language_apply_settings_locally_schinese:n + { + \group_begin: + \g_projlib_language_settings_common_tl + \g_projlib_language_settings_schinese_tl + #1 + \group_end: + } \tl_gput_right:Nn \g_projlib_language_settings_tchinese_tl { - \g_projlib_language_settings_common_tl \tl_set:Nn \languagename { tchinese } \tl_set:cn { abstractname } { 摘要 } \tl_set:cn { proofname } { 證明 } @@ -312,60 +324,157 @@ \tl_set:cn { refname } { 參考文獻 } \tl_set:cn { bibname } { 參考文獻 } } +\cs_new_protected:Nn \projlib_language_apply_settings_globally_tchinese: + { + \g_projlib_language_settings_common_tl + \g_projlib_language_settings_tchinese_tl + } +\cs_new_protected:Nn \projlib_language_apply_settings_locally_tchinese:n + { + \group_begin: + \g_projlib_language_settings_common_tl + \g_projlib_language_settings_tchinese_tl + #1 + \group_end: + } -\tl_gput_right:Nn \g_projlib_language_settings_japanese_tl +\cs_new_protected:Nn \projlib_language_apply_settings_globally_japanese: { \selectlanguage { japanese } \g_projlib_language_settings_common_tl + \g_projlib_language_settings_japanese_tl + } +\cs_new_protected:Nn \projlib_language_apply_settings_locally_japanese:n + { + \group_begin: + \g_projlib_language_settings_common_tl + \g_projlib_language_settings_japanese_tl + \foreignlanguage { japanese } { #1 } + \group_end: } -\tl_gput_right:Nn \g_projlib_language_settings_english_tl +\cs_new_protected:Nn \projlib_language_apply_settings_globally_english: { \selectlanguage { english } \g_projlib_language_settings_common_tl + \g_projlib_language_settings_english_tl + } +\cs_new_protected:Nn \projlib_language_apply_settings_locally_english:n + { + \group_begin: + \g_projlib_language_settings_common_tl + \g_projlib_language_settings_english_tl + \foreignlanguage { english } { #1 } + \group_end: } \tl_gput_right:Nn \g_projlib_language_settings_french_tl { + \tl_gset:cn { frenchpartname } { Partie } + } +\cs_new_protected:Nn \projlib_language_apply_settings_globally_french: + { \selectlanguage { french } \g_projlib_language_settings_common_tl - \tl_gset:cn { frenchpartname } { Partie } + \g_projlib_language_settings_french_tl + } +\cs_new_protected:Nn \projlib_language_apply_settings_locally_french:n + { + \group_begin: + \g_projlib_language_settings_common_tl + \g_projlib_language_settings_french_tl + \foreignlanguage { french } { #1 } + \group_end: } -\tl_gput_right:Nn \g_projlib_language_settings_ngerman_tl +\cs_new_protected:Nn \projlib_language_apply_settings_globally_ngerman: { \selectlanguage { ngerman } \g_projlib_language_settings_common_tl + \g_projlib_language_settings_ngerman_tl + } +\cs_new_protected:Nn \projlib_language_apply_settings_locally_ngerman:n + { + \group_begin: + \g_projlib_language_settings_common_tl + \g_projlib_language_settings_ngerman_tl + \foreignlanguage { ngerman } { #1 } + \group_end: } -\tl_gput_right:Nn \g_projlib_language_settings_italian_tl +\cs_new_protected:Nn \projlib_language_apply_settings_globally_italian: { \selectlanguage { italian } \g_projlib_language_settings_common_tl + \g_projlib_language_settings_italian_tl + } +\cs_new_protected:Nn \projlib_language_apply_settings_locally_italian:n + { + \group_begin: + \g_projlib_language_settings_common_tl + \g_projlib_language_settings_italian_tl + \foreignlanguage { italian } { #1 } + \group_end: } -\tl_gput_right:Nn \g_projlib_language_settings_portuguese_tl +\cs_new_protected:Nn \projlib_language_apply_settings_globally_portuguese: { \selectlanguage { portuguese } \g_projlib_language_settings_common_tl + \g_projlib_language_settings_portuguese_tl + } +\cs_new_protected:Nn \projlib_language_apply_settings_locally_portuguese:n + { + \group_begin: + \g_projlib_language_settings_common_tl + \g_projlib_language_settings_portuguese_tl + \foreignlanguage { portuguese } { #1 } + \group_end: } -\tl_gput_right:Nn \g_projlib_language_settings_brazilian_tl +\cs_new_protected:Nn \projlib_language_apply_settings_globally_brazilian: { \selectlanguage { brazilian } \g_projlib_language_settings_common_tl + \g_projlib_language_settings_brazilian_tl + } +\cs_new_protected:Nn \projlib_language_apply_settings_locally_brazilian:n + { + \group_begin: + \g_projlib_language_settings_common_tl + \g_projlib_language_settings_brazilian_tl + \foreignlanguage { brazilian } { #1 } + \group_end: } -\tl_gput_right:Nn \g_projlib_language_settings_spanish_tl +\cs_new_protected:Nn \projlib_language_apply_settings_globally_spanish: { \selectlanguage { spanish } \g_projlib_language_settings_common_tl + \g_projlib_language_settings_spanish_tl + } +\cs_new_protected:Nn \projlib_language_apply_settings_locally_spanish:n + { + \group_begin: + \g_projlib_language_settings_common_tl + \g_projlib_language_settings_spanish_tl + \foreignlanguage { spanish } { #1 } + \group_end: } -\tl_gput_right:Nn \g_projlib_language_settings_russian_tl +\cs_new_protected:Nn \projlib_language_apply_settings_globally_russian: { \selectlanguage { russian } \g_projlib_language_settings_common_tl + \g_projlib_language_settings_russian_tl + } +\cs_new_protected:Nn \projlib_language_apply_settings_locally_russian:n + { + \group_begin: + \g_projlib_language_settings_common_tl + \g_projlib_language_settings_russian_tl + \foreignlanguage { russian } { #1 } + \group_end: } \NewDocumentCommand \AddLanguageSetting { O{} m } @@ -459,23 +568,34 @@ \use:c { projlib_language_set_ #1 _ #2 :n } { #3 } } -\cs_new:Nn \projlib_language_use_language_pure:n +\msg_new:nnn { projlib-language } + { language-not-support } + { The~language~"#1"~is~not~supported. } + +\cs_new:Nn \projlib_language_use_language_locally:nn { - \tl_use:c { g_projlib_language_settings_ \projlib_language_str_to_languagename:n { #1 } _tl } + \cs_if_exist_use:cF { projlib_language_apply_settings_locally_ \projlib_language_str_to_languagename:n { #1 } :n } + { + \msg_warning:nnn { projlib-language } { language-not-support } { #1 } + } + { #2 } } -\cs_generate_variant:Nn \projlib_language_use_language_pure:n { e } +\cs_generate_variant:Nn \projlib_language_use_language_locally:nn { e } \cs_new:Nn \projlib_language_use_language:n { - \projlib_language_use_language_pure:n { #1 } - \tl_use:c { g_projlib_language_linespacing_ \projlib_language_str_to_languagetype:n { #1 } _tl } - \tl_use:c { g_projlib_language_parindent_ \projlib_language_str_to_languagetype:n { #1 } _tl } + \cs_if_exist_use:cF { projlib_language_apply_settings_globally_ \projlib_language_str_to_languagename:n { #1 } : } + { + \msg_warning:nnn { projlib-language } { language-not-support } { #1 } + } + \cs_if_exist_use:c { g_projlib_language_linespacing_ \projlib_language_str_to_languagetype:n { #1 } _tl } + \cs_if_exist_use:c { g_projlib_language_parindent_ \projlib_language_str_to_languagetype:n { #1 } _tl } } \cs_generate_variant:Nn \projlib_language_use_language:n { e } \NewDocumentCommand \UseLanguage { m } { - \hook_gput_code:nnn { begindocument } { projlib-language } + \hook_gput_code:nnn { begindocument/end } { projlib-language } { \projlib_language_use_language:e { #1 } } @@ -483,8 +603,7 @@ \NewDocumentCommand \UseOtherLanguage { m m } { \group_begin: - \projlib_language_use_language_pure:e { #1 } - #2 + \projlib_language_use_language_locally:en { #1 } { #2 } \group_end: } |