summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/projlib/projlib-language.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/projlib/projlib-language.sty')
-rw-r--r--Master/texmf-dist/tex/latex/projlib/projlib-language.sty165
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:
}