%////////////////////////////////////////////////////////////////////////////////
%//// IDENTIFICATION ////////////////////////////////////////////////////////////
%////////////////////////////////////////////////////////////////////////////////
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{conditext}[2020/06/01 Extension personnelle, V1.5%
    (Jean-Louis Brabant), released under the LaTeX Project Public License %
     v1.3c or later]

%////////////////////////////////////////////////////////////////////////////////
%//// CODE PR��LIMINAIRE /////////////////////////////////////////////////////////
%////////////////////////////////////////////////////////////////////////////////
\RequirePackage{simplekv}                                                           % Gestion des options cl��-valeur
\setKVdefault[display]{%
    defaultdisplayall=false,%
    condispaceenabled=false}
\setKVdefault[icf]{%
    icf=none}

%////////////////////////////////////////////////////////////////////////////////
%//// DECLARATION DES OPTIONS ///////////////////////////////////////////////////
%////////////////////////////////////////////////////////////////////////////////
\DeclareOption{defaultdisplayall}{%
    \setKV[display]{defaultdisplayall=true}}

%////////////////////////////////////////////////////////////////////////////////
%//// EX��CUTION DES OPTIONS /////////////////////////////////////////////////////
%////////////////////////////////////////////////////////////////////////////////
\ProcessOptions

%////////////////////////////////////////////////////////////////////////////////
%//// CHARGEMENT DES PAQUETS ////////////////////////////////////////////////////
%////////////////////////////////////////////////////////////////////////////////
\RequirePackage{xifthen}                                                            % Gestion des conditions
\RequirePackage{xparse}

%////////////////////////////////////////////////////////////////////////////////
%//// COMMANDES /////////////////////////////////////////////////////////////////
%////////////////////////////////////////////////////////////////////////////////

%////////////////////////////////////////////////////////////////////////////////
%//// Commandes : gestion conditionnelle ////////////////////////////////////////
%////////////////////////////////////////////////////////////////////////////////

%//// Commandes : gestion conditionnelle : domaine de condition implicite ///////
%////////////////////////////////////////////////////////////////////////////////
\NewDocumentCommand\setimplicitcondifield{m}{%                                      % Interface pour d��finir un domaine de condition implicite
    \ifcfemptythenelse{#1}                                                                  % dc renseign�� ?
        {\errorifcfempty{setimplicitcondifield}}                                                % non : message d'erreur sur dc
        {\ifcfokthenelse{#1}                                                                    % oui : dc valide [cr����] ?
            {\setKV[icf]{icf=#1} \edef\icf{\useKV[icf]{icf}}}                                       % oui : d��finit le dc comme dc implicite
            {\errorifcfnoncreated{setimplicitcondifield}{#1}}}}                                     % non : message d'erreur sur dc

%//// Commandes : gestion conditionnelle : domaines de condition ////////////////
%////////////////////////////////////////////////////////////////////////////////
\NewDocumentCommand\newcondifield{s m}{%                                            % Interface pour cr��er un domaine de condition
    \ifcfemptythenelse{#2}                                                                  % dc renseign�� ?
        {\errorifcfempty{newcondifield}}                                                        % non : message d'erreur sur dc
        {\ifcfalreadycreatedthenelse{#2}                                                        % oui : dc d��j�� cr���� ?
            {\errorifcfalreadycreated{newcondifield}{#2}}                                               % oui : message d'erreur sur dc
            {\setKVdefault[cf#2]{cf=#2}%                                                                % non : cr��e le dc
             \IfBooleanTF{#1}                                                                                   % ��toile ?
                {\ifcpalreadycreatedthenelse{#2}{#2}                                                                % oui : pc de m��me nom d��j�� cr����e pour le m��me dc ?
                    {\errorifcpalreadycreated{newcondifield*}{#2}}                                                      % oui : message d'erreur sur pc
                    {\setKVdefault[cp#2#2]{cp=#2#2}}}                                                                   % non : cr��e la pc
                {}}}}                                                                                               % non : ne fait rien

%//// Commandes : gestion conditionnelle : domaines de condition : tests ////////
\NewDocumentCommand\ifcfalreadycreatedthenelse{m m m}{%                             Teste si le domaine de condition existe d��j��
    \ifthenelse{\equal{\useKV[cf#1]{cf}}{#1}}
        {#2}
        {#3}}

\NewDocumentCommand\ifcfokthenelse{m m m}{%                                         % Teste si le domaine de condition est valide
    \ifthenelse{\equal{\useKV[cf#1]{cf}}{#1}}%
        {#2}
        {#3}}

\NewDocumentCommand\ifcfemptythenelse{m m m}{%                                      % Teste si le domaine de condition est renseign��
    \ifthenelse{\equal{#1}{}}
        {#2}
        {#3}}

%//// Commandes : gestion conditionnelle : propri��t��s de condition //////////////
%////////////////////////////////////////////////////////////////////////////////
\NewDocumentCommand\newcondiprop{m m}{%                                             % Interface pour cr��er une propri��t�� de condition
    \ifcfemptythenelse{#1}                                                                  % dc renseign�� ?
        {\errorifcfempty{newcondiprop}}                                                         % non : message d'erreur sur dc
        {\ifcfokthenelse{#1}                                                                    % oui : dc valide [cr����] ?
            {\ifcpemptythenelse{#2}                                                                 % oui : pc renseign��e ?
                {\errorifcpempty{newcondiprop}}                                                         % non : message d'erreur sur pc
                {\ifcpalreadycreatedthenelse{#1}{#2}                                                    % oui : pc d��j�� cr����e ?
                    {\errorifcpalreadycreated{newcondiprop}{#2}}                                           % oui : message d'erreur sur pc
                    {\setKVdefault[cp#1#2]{cp=#1#2}}}}                                                     % non : cr��e la pc
            {\errorifcfnoncreated{newcondiprop}{#1}}}}                                              % non : message d'erreur sur dc

%//// Commandes : gestion conditionnelle : propri��t��s de condition : tests //////
\NewDocumentCommand\ifcpalreadycreatedthenelse{m m m m}{%                           % Teste si la propri��t�� de condition existe d��j��
    \ifthenelse{\equal{\useKV[cp#1#2]{cp}}{#1#2}}
        {#3}
        {#4}}

\NewDocumentCommand\ifcpokthenelse{m m m m}{%                                       % Teste si la propri��t�� de condition est valide
    \ifthenelse{\equal{\useKV[cp#1#2]{cp}}{#1#2}}%
        {#3}
        {#4}}

\NewDocumentCommand\ifcpemptythenelse{m m m}{%                                      % Teste si la propri��t�� de condition est renseign��e
    \ifthenelse{\equal{#1}{}}
        {#2}
        {#3}}

%//// Commandes : gestion conditionnelle : espaces de condition /////////////////
%////////////////////////////////////////////////////////////////////////////////
\NewDocumentCommand\setcondispace{s O{} m}{%                                          % Interface pour d��finir un espace de condition
    \ifcfemptythenelse{#2}%                                                                 % dc renseign�� ?
        {\ifcpemptythenelse{#3}                                                                 % non : pc renseign��e ?
            {\errorifcpempty{setcondispace}}                                                        % non : message d'erreur sur pc
            {\ifcpokthenelse{\icf}{#3}                                                              % oui : (dc implicite) pc valide ?
                {\ifcsalreadydefinedthenelse{\icf}{#3}                                                  % oui : ec d��j�� d��fini ?
                    {\errorifcsalreadydefined{setcondispace}{\icf}{#3}}                                     % oui : message d'erreur sur ec
                    {\setKVdefault[cs\icf#3]{cs=\icf#3}%                                                    % non : d��finit l'ec
                     \setKV[display]{condispaceenabled=true}                                                        % indique qu'un ec est d��fini
                     \IfBooleanT{#1}                                                                                % ��toile ?
                         {\ifthenelse{\equal{\icf}{language}}                                                           % oui : contexte de s��mantique linguistique ?
                            {\setminicondispace{#3}}                                                                        % oui : d��finit un mini-ec correspondant �� la langue
                            {}}}}                                                                                           % non : ne fait rien
                {\errorifcpnonok{setcondispace}{#3}}}}                                                  % non : message d'erreur sur pc
        {\ifcfokthenelse{#2}                                                                    % oui : dc valide [cr����] ?
            {\ifcpemptythenelse{#3}                                                                % oui : pc renseign��e ?
                {\ifcsalreadydefinedthenelse{#2}{all}                                                   % non : ec global d��j�� d��fini ?
                    {\errorifcsalreadydefined{setcondispace}{#2}{all}}                                      % oui : message d'erreur sur ec
                    {\setKVdefault[cs#2all]{cs=#2all}                                                       % non : d��finit l'ec global
                        \setKV[display]{condispaceenabled=true}}}                                                   % indique qu'un ec est d��fini
                {\ifcpokthenelse{#2}{#3}                                                                % oui : pc valide ?
                    {\ifcsalreadydefinedthenelse{#2}{#3}                                                    % oui : ec d��j�� d��fini ?
                        {\errorifcsalreadydefined{conditext}{#2}{#3}}                                           % oui : message d'erreur sur ec
                        {\setKVdefault[cs#2#3]{cs=#2#3}%                                                        % non : d��finit l'ec
                         \setKV[display]{condispaceenabled=true}                                                        % indique qu'un ec est d��fini
                         \IfBooleanT{#1}                                                                                % ��toile ?
                             {\ifthenelse{\equal{\#2}{language}}                                                            % oui : contexte de s��mantique linguistique ?
                                {\setminicondispace{#3}}                                                                        % oui : d��finit un mini-ec correspondant �� la langue
                                {}}}}                                                                                           % non : ne fait rien
                    {\errorifcpnonok{setcondispace}{#3}}}}                                                  % non : message d'erreur sur pc
            {\errorifcfnoncreated{setcondispace}{#2}}}}                                             % non : message d'erreur sur dc

%//// Commandes : gestion conditionnelle : espaces de condition : tests /////////
\NewDocumentCommand\ifcsalreadydefinedthenelse{m m m m}{%                           % Teste si l'espace de condition est d��j�� d��fini
    \ifthenelse{\equal{\useKV[cs#1#2]{cs}}{#1#2}}
        {#3}
        {#4}}

\NewDocumentCommand\ifmatchingcsthenelse{m m m m}{%                                 % Teste s'il existe un espace de condition correspondant au domaine de condition et �� la propri��t�� de condition renseign��s
    \ifthenelse{\equal{\useKV[cs#1#2]{cs}}{#1#2}}
        {#3}
        {#4}}

%//// Commandes : gestion conditionnelle : contenu conditionnel /////////////////
%////////////////////////////////////////////////////////////////////////////////
\NewDocumentEnvironment{conditext}{O{} m s +b}{%                                    % Interface pour contenu conditionnel
    \ifthenelse{\equal{\useKV[display]{condispaceenabled}}{true}}                           % Au moins un ec d��fini ?
        {\ifcfemptythenelse{#1}                                                                 % oui : dc renseign�� ?
            {\ifcpemptythenelse{#2}                                                                 % non : pc renseign��e ?
                {\errorifcpempty{conditext}}                                                            % non : message d'erreur sur pc
                {\ifcpokthenelse{\icf}{#2}                                                              % oui : (dc implicite) pc valide ?
                    {\ifmatchingcsthenelse{\icf}{all}                                                       % oui : ec global correspondant ?
                        {\IfBooleanTF{#3}                                                                       % oui : ��toile ?
                            {}                                                                                      % oui : n'affiche rien
                            {\textdisplay{\icf}{#2}{#4}}}                                                           % non : affiche le contenu
                        {\ifmatchingcsthenelse{\icf}{#2}                                                        % non : ec correspondant ?
                            {\IfBooleanTF{#3}                                                                       % oui : ��toile ?
                                {}                                                                                      % oui : n'affiche rien
                                {\textdisplay{\icf}{#2}{#4}}}                                                           % non : affiche le contenu
                            {\IfBooleanTF{#3}                                                                       % non : ��toile ?
                                {\textdisplay{\icf}{#2}{#4}}                                                            % oui : affiche le contenu
                                {}}}}                                                                                   % non : n'affiche rien
                    {\errorifcpnonok{conditext}{#2}}}}                                                        % non : message d'erreur sur pc
            {\ifcfokthenelse{#1}                                                                    % oui : dc valide ?
                {\ifcpemptythenelse{#2}                                                                 % oui : pc renseign��e ?
                    {\errorifcpempty{conditext}}                                                            % non : message d'erreur sur pc
                    {\ifcpokthenelse{#1}{#2}                                                                % oui : pc valide ?
                        {\ifmatchingcsthenelse{#1}{all}                                                         % oui : ec global correspondant ?
                            {\IfBooleanTF{#3}                                                                       % oui : ��toile ?
                                {}                                                                                      % oui : n'affiche rien
                                {\textdisplay{#1}{#2}{#4}}}                                                             % non : affiche le contenu
                            {\ifmatchingcsthenelse{#1}{#2}                                                          % non : ec correspondant ?
                                {\IfBooleanTF{#3}                                                                       % oui : ��toile ?
                                    {}                                                                                      % oui : n'affiche rien
                                    {\textdisplay{#1}{#2}{#4}}}                                                             % non : affiche le contenu
                                {\IfBooleanTF{#3}                                                                       % non : ��toile ?
                                    {\textdisplay{#1}{#2}{#4}}                                                              % oui : affiche le contenu
                                    {}}}}                                                                                   % non : n'affiche rien
                        {\errorifcpnonok{conditext}{#2}}}}                                                       % non : message d'erreur sur pc
                {\errorifcfnoncreated{conditext}{#1}}}}                                                 % non : message d'erreur sur dc
        {\ifthenelse{\equal{\useKV[display]{defaultdisplayall}}{true}}                          % non : affichage total par d��faut ?
            {\ifcfemptythenelse{#1}                                                                 % oui : dc renseign�� ?
                {\ifcpemptythenelse{#2}                                                                 % non : pc renseign��e ?
                    {\errorifcpempty{conditext}}                                                            % non : message d'erreur sur pc
                    {\ifcpokthenelse{\icf}{#2}                                                              % oui : (dc implicite) pc valide ?
                        {\IfBooleanTF{#3}                                                                       % oui : ��toile ?
                            {}                                                                                      % oui : n'affiche rien
                            {\textdisplay{\icf}{#2}{#4}}}                                                           % non : affiche le contenu
                        {\errorifcpnonok{conditext}{#2}}}}                                                       % non : message d'erreur sur pc
                {\ifcfokthenelse{#1}                                                                    % oui : dc valide ?
                    {\ifcpemptythenelse{#2}                                                                 % oui : pc renseign��e ?
                        {\errorifcpempty{conditext}}                                                            % non : message d'erreur sur pc
                        {\ifcpokthenelse{#1}{#2}                                                                % oui : pc valide ?
                            {\IfBooleanTF{#3}                                                                       % oui : ��toile ?
                                {}                                                                                      % oui : n'affiche rien
                                {\textdisplay{#1}{#2}{#4}}}                                                             % non : affiche le contenu
                            {\errorifcpnonok{conditext}{#2}}}}                                                      % non : message d'erreur sur pc
                    {\errorifcfnoncreated{conditext}{#1}}}}                                                % non : message d'erreur sur dc
            {\ifcfemptythenelse{#1}                                                                 % non : dc renseign�� ?
                {\ifcpemptythenelse{#2}                                                                 % non : pc renseign��e ?
                    {\errorifcpempty{conditext}}                                                            % non : message d'erreur sur pc
                    {\ifcpokthenelse{\icf}{#2}                                                              % oui : (dc implicite) pc valide ?
                        {\IfBooleanTF{#3}                                                                       % oui : ��toile ?
                            {\textdisplay{\icf}{#2}{#4}}                                                            % oui : affiche le contenu
                            {}}                                                                                     % non : n'affiche rien
                        {\errorifcpnonok{conditext}{#2}}}}                                                      % non : message d'erreur sur pc
                {\ifcfokthenelse{#1}                                                                    % oui : dc valide ?
                    {\ifcpemptythenelse{#2}                                                                 % oui : pc renseign��e ?
                        {\errorifcpempty{conditext}}                                                            % non : message d'erreur sur pc
                        {\ifcpokthenelse{#1}{#2}                                                                % oui : pc valide ?
                            {\IfBooleanTF{#3}                                                                       % oui : ��toile ?
                                {\textdisplay{#1}{#2}{#4}}                                                              % oui : affiche le contenu
                                {}}                                                                                     % non : n'affiche rien
                            {\errorifcpnonok{conditext}{#2}}}}                                                      % non : message d'erreur sur pc
                    {\errorifcfnoncreated{conditext}{#1}}}}}}                                                % non : message d'erreur sur dc


\NewDocumentCommand\textdisplay{m m m}{%                                            % Affiche une forme substituable selon que le domaine de condition est linguistique ou autre
    \ifthenelse{\equal{#1}{language}}%
        {\begin{otherlanguage}{#2}#3\end{otherlanguage}}%
        {#3}}

%////////////////////////////////////////////////////////////////////////////////
%//// Commandes : mini-gestion conditionnelle ///////////////////////////////////
%////////////////////////////////////////////////////////////////////////////////

%//// Commandes : mini-gestion conditionnelle : propri��t��s de condition /////////
%////////////////////////////////////////////////////////////////////////////////
\setKVdefault[mncpi]{mncpi=french}
\setKVdefault[mncpii]{mncpii=english}
\setKVdefault[mncpiii]{mncpiii=german}
\setKVdefault[mncpiv]{mncpiv=spanish}
\setKVdefault[mncpv]{mncpv=italian}
\setKVdefault[mncpvi]{mncpvi=portuguese}
\setKVdefault[mncpvii]{mncpvii=dutch}
\setKVdefault[mncpviii]{mncpviii=danish}
\setKVdefault[mncpix]{mncpix=norsk}
\setKVdefault[mncplanguage]{mncplanguage=true}
\setKVdefault[mncpreset]{mncpreset=false}

\NewDocumentCommand\resettingminicondiprops{s}{%                                    % Interface pour r��initialiser les propri��t��s de condition
    \IfBooleanTF{#1}
        {\setKV[mncpi]{mncpi=french}
         \setKV[mncpii]{mncpii=english}
         \setKV[mncpiii]{mncpiii=german}
         \setKV[mncpiv]{mncpiv=spanish}
         \setKV[mncpv]{mncpv=italian}
         \setKV[mncpvi]{mncpvi=portuguese}
         \setKV[mncpvii]{mncpvii=dutch}
         \setKV[mncpviii]{mncpviii=danish}
         \setKV[mncpix]{mncpix=norsk}
         \setKV[mncplanguage]{mncplanguage=true}
         \setKV[mncpreset]{mncpreset=true}}
        {\setKV[mncpi]{mncpi=none}
         \setKV[mncpii]{mncpii=none}
         \setKV[mncpiii]{mncpiii=none}
         \setKV[mncpiv]{mncpiv=none}
         \setKV[mncpv]{mncpv=none}
         \setKV[mncpvi]{mncpvi=none}
         \setKV[mncpvii]{mncpvii=none}
         \setKV[mncpviii]{mncpviii=none}
         \setKV[mncpix]{mncpix=none}
         \setKV[mncplanguage]{mncplanguage=false}
         \setKV[mncpreset]{mncpreset=true}}}

\NewDocumentCommand\setminicondiprop{m m}{%                                         % Interface g��n��rale pour red��finir une propri��t�� de condition pour mini-gestion conditionnelle
    \ifmncpnoresettingthenelse                                                              % r��initialisation pr��alable ?
        {\errorifmncpnoresetting{setminicondiprop-}}                                            % non : message d'erreur
        {\ifmncpemptythenelse{#2}                                                               % oui : pc renseign��e ?
            {\errorifmncpempty{setminicondiprop#1}}                                                 % non : message d'erreur sur pc
            {\ifmncpalreadyredefinedthenelse{#1}{#2}                                                % oui : pc d��j�� red��finie ?
                {\errorifmncpalreadyredefined{setminicondiprop#1}{#2}}                                  % oui : message d'erreur sur pc
                {\setKV[mncp#1]{mncp#1=#2}}}}}                                                          % non : red��finit la pc

\NewDocumentCommand\setminicondipropi{m}{%                                          % Interface pour red��finir une propri��t�� de condition pour la forme substituable n�� 1 de la mini-gestion conditionnelle
    \setminicondiprop{i}{#1}}
\NewDocumentCommand\setminicondipropii{m}{%                                         % Interface pour red��finir une propri��t�� de condition pour la forme substituable n�� 2 de la mini-gestion conditionnelle
    \setminicondiprop{ii}{#1}}
\NewDocumentCommand\setminicondipropiii{m}{%                                        % Interface pour red��finir une propri��t�� de condition pour la forme substituable n�� 3 de la mini-gestion conditionnelle
    \setminicondiprop{iii}{#1}}
\NewDocumentCommand\setminicondipropiv{m}{%                                         % Interface pour red��finir une propri��t�� de condition pour la forme substituable n�� 4 de la mini-gestion conditionnelle
    \setminicondiprop{iv}{#1}}
\NewDocumentCommand\setminicondipropv{m}{%                                          % Interface pour red��finir une propri��t�� de condition pour la forme substituable n�� 5 de la mini-gestion conditionnelle
    \setminicondiprop{v}{#1}}
\NewDocumentCommand\setminicondipropvi{m}{%                                         % Interface pour red��finir une propri��t�� de condition pour la forme substituable n�� 6 de la mini-gestion conditionnelle
    \setminicondiprop{vi}{#1}}
\NewDocumentCommand\setminicondipropvii{m}{%                                        % Interface pour red��finir une propri��t�� de condition pour la forme substituable n�� 7 de la mini-gestion conditionnelle
    \setminicondiprop{vii}{#1}}
\NewDocumentCommand\setminicondipropviii{m}{%                                       % Interface pour red��finir une propri��t�� de condition pour la forme substituable n�� 8 de la mini-gestion conditionnelle
    \setminicondiprop{viii}{#1}}
\NewDocumentCommand\setminicondipropix{m}{%                                         % Interface pour red��finir une propri��t�� de condition pour la forme substituable n�� 9 de la mini-gestion conditionnelle
   \setminicondiprop{ix}{#1}}

%//// Commandes : mini-gestion conditionnelle : propri��t��s de condition : tests /
\NewDocumentCommand\ifmncpnoresettingthenelse{m m}{%                                % Teste s'il y a eu r��initialisation des propri��t��s de condition
    \ifthenelse{\equal{\useKV[mncpreset]{mncpreset}}{false}}
        {#1}
        {#2}}

\NewDocumentCommand\ifmncpemptythenelse{m m m}{%                                    % Teste si la propri��t�� de condition est renseign��e
    \ifthenelse{\equal{#1}{}}
        {#2}
        {#3}}

\NewDocumentCommand\ifmncpnonethenelse{m m m}{%                                     % Teste si la propri��t�� de condition est neutre
    \ifthenelse{\equal{\useKV[mncp#1]{mncp#1}}{none}}
        {#2 \errmsgifmncpnone{#1}}
        {#3}}

\NewDocumentCommand\ifmncpokthenelse{m m m}{%                                       % Teste si la propri��t�� de condition est valide
    \ifthenelse{\equal{\useKV[mncpi]{mncpi}}{#1}
                \AND \not\equal{\useKV[mncpi]{mncpi}}{none}}
        {#2}
        {\ifthenelse{\equal{\useKV[mncpii]{mncpii}}{#1}
                     \AND \not\equal{\useKV[mncpii]{mncpii}}{none}}
            {#2}
            {\ifthenelse{\equal{\useKV[mncpiii]{mncpiii}}{#1}
                         \AND \not\equal{\useKV[mncpiii]{mncpiii}}{none}}
                {#2}
                {\ifthenelse{\equal{\useKV[mncpiv]{mncpiv}}{#1}
                             \AND \not\equal{\useKV[mncpiv]{mncpiv}}{none}}
                    {#2}
                    {\ifthenelse{\equal{\useKV[mncpv]{mncpv}}{#1}
                                 \AND \not\equal{\useKV[mncpv]{mncpv}}{none}}
                        {#2}
                        {\ifthenelse{\equal{\useKV[mncpvi]{mncpvi}}{#1}
                                     \AND \not\equal{\useKV[mncpvi]{mncpvi}}{none}}
                            {#2}
                            {\ifthenelse{\equal{\useKV[mncpvii]{mncpvii}}{#1}
                                         \AND \not\equal{\useKV[mncpvii]{mncpvii}}{none}}
                                {#2}
                                {\ifthenelse{\equal{\useKV[mncpviii]{mncpviii}}{#1}
                                             \AND \not\equal{\useKV[mncpviii]{mncpviii}}{none}}
                                    {#2}
                                    {\ifthenelse{\equal{\useKV[mncpix]{mncpix}}{#1}
                                                 \AND \not\equal{\useKV[mncpix]{mncpix}}{none}}
                                        {#2}
                                        {#3}}}}}}}}}}

\NewDocumentCommand\ifmncpalreadyredefinedthenelse{m m m m}{%                       % Teste si une propri��t�� de condition de m��me nom existe d��j��
    \ifthenelse{\equal{#1}{i}}
        {\ifthenelse{%
         \equal{\useKV[mncpii]{mncpii}}{#2} \OR%
         \equal{\useKV[mncpiii]{mncpiii}}{#2} \OR%
         \equal{\useKV[mncpiv]{mncpiv}}{#2} \OR%
         \equal{\useKV[mncpv]{mncpv}}{#2} \OR%
         \equal{\useKV[mncpvi]{mncpvi}}{#2} \OR%
         \equal{\useKV[mncpvii]{mncpvii}}{#2} \OR%
         \equal{\useKV[mncpviii]{mncpviii}}{#2} \OR%
         \equal{\useKV[mncpix]{mncpix}}{#2}}
            {#3}
            {#4}}
        {\ifthenelse{\equal{#1}{ii}}
            {\ifthenelse{%
             \equal{\useKV[mncpi]{mncpi}}{#2} \OR%
             \equal{\useKV[mncpiii]{mncpiii}}{#2} \OR%
             \equal{\useKV[mncpiv]{mncpiv}}{#2} \OR%
             \equal{\useKV[mncpv]{mncpv}}{#2} \OR%
             \equal{\useKV[mncpvi]{mncpvi}}{#2} \OR%
             \equal{\useKV[mncpvii]{mncpvii}}{#2} \OR%
             \equal{\useKV[mncpviii]{mncpviii}}{#2} \OR%
             \equal{\useKV[mncpix]{mncpix}}{#2}}
                {#3}
                {#4}}
            {\ifthenelse{\equal{#1}{iii}}
                {\ifthenelse{%
                 \equal{\useKV[mncpi]{mncpi}}{#2} \OR%
                 \equal{\useKV[mncpii]{mncpii}}{#2} \OR%
                 \equal{\useKV[mncpiv]{mncpiv}}{#2} \OR%
                 \equal{\useKV[mncpv]{mncpv}}{#2} \OR%
                 \equal{\useKV[mncpvi]{mncpvi}}{#2} \OR%
                 \equal{\useKV[mncpvii]{mncpvii}}{#2} \OR%
                 \equal{\useKV[mncpviii]{mncpviii}}{#2} \OR%
                 \equal{\useKV[mncpix]{mncpix}}{#2}}
                    {#3}
                    {#4}}
                {\ifthenelse{\equal{#1}{iv}}
                    {\ifthenelse{%
                     \equal{\useKV[mncpi]{mncpi}}{#2} \OR%
                     \equal{\useKV[mncpii]{mncpii}}{#2} \OR%
                     \equal{\useKV[mncpiii]{mncpiii}}{#2} \OR%
                     \equal{\useKV[mncpv]{mncpv}}{#2} \OR%
                     \equal{\useKV[mncpvi]{mncpvi}}{#2} \OR%
                     \equal{\useKV[mncpvii]{mncpvii}}{#2} \OR%
                     \equal{\useKV[mncpviii]{mncpviii}}{#2} \OR%
                     \equal{\useKV[mncpix]{mncpix}}{#2}}
                        {#3}
                        {#4}}
                    {\ifthenelse{\equal{#1}{v}}
                        {\ifthenelse{%
                         \equal{\useKV[mncpi]{mncpi}}{#2} \OR%
                         \equal{\useKV[mncpii]{mncpii}}{#2} \OR%
                         \equal{\useKV[mncpiii]{mncpiii}}{#2} \OR%
                         \equal{\useKV[mncpiv]{mncpiv}}{#2} \OR%
                         \equal{\useKV[mncpvi]{mncpvi}}{#2} \OR%
                         \equal{\useKV[mncpvii]{mncpvii}}{#2} \OR%
                         \equal{\useKV[mncpviii]{mncpviii}}{#2} \OR%
                         \equal{\useKV[mncpix]{mncpix}}{#2}}
                            {#3}
                            {#4}}
                        {\ifthenelse{\equal{#1}{vi}}
                            {\ifthenelse{%
                             \equal{\useKV[mncpi]{mncpi}}{#2} \OR%
                             \equal{\useKV[mncpii]{mncpii}}{#2} \OR%
                             \equal{\useKV[mncpiii]{mncpiii}}{#2} \OR%
                             \equal{\useKV[mncpiv]{mncpiv}}{#2} \OR%
                             \equal{\useKV[mncpv]{mncpv}}{#2} \OR%
                             \equal{\useKV[mncpvii]{mncpvii}}{#2} \OR%
                             \equal{\useKV[mncpviii]{mncpviii}}{#2} \OR%
                             \equal{\useKV[mncpix]{mncpix}}{#2}}
                                {#3}
                                {#4}}
                            {\ifthenelse{\equal{#1}{vii}}
                                {\ifthenelse{%
                                 \equal{\useKV[mncpi]{mncpi}}{#2} \OR%
                                 \equal{\useKV[mncpii]{mncpii}}{#2} \OR%
                                 \equal{\useKV[mncpiii]{mncpiii}}{#2} \OR%
                                 \equal{\useKV[mncpiv]{mncpiv}}{#2} \OR%
                                 \equal{\useKV[mncpv]{mncpv}}{#2} \OR%
                                 \equal{\useKV[mncpvi]{mncpvi}}{#2} \OR%
                                 \equal{\useKV[mncpviii]{mncpviii}}{#2} \OR%
                                 \equal{\useKV[mncpix]{mncpix}}{#2}}
                                    {#3}
                                    {#4}}
                                {\ifthenelse{\equal{#1}{viii}}
                                    {\ifthenelse{%
                                     \equal{\useKV[mncpi]{mncpi}}{#2} \OR%
                                     \equal{\useKV[mncpii]{mncpii}}{#2} \OR%
                                     \equal{\useKV[mncpiii]{mncpiii}}{#2} \OR%
                                     \equal{\useKV[mncpiv]{mncpiv}}{#2} \OR%
                                     \equal{\useKV[mncpv]{mncpv}}{#2} \OR%
                                     \equal{\useKV[mncpvi]{mncpvi}}{#2} \OR%
                                     \equal{\useKV[mncpviii]{mncpvii}}{#2} \OR%
                                     \equal{\useKV[mncpix]{mncpix}}{#2}}
                                        {#3}
                                        {#4}}
                                    {\ifthenelse{\equal{#1}{ix}}
                                        {\ifthenelse{%
                                         \equal{\useKV[mncpi]{mncpi}}{#2} \OR%
                                         \equal{\useKV[mncpii]{mncpii}}{#2} \OR%
                                         \equal{\useKV[mncpiii]{mncpiii}}{#2} \OR%
                                         \equal{\useKV[mncpiv]{mncpiv}}{#2} \OR%
                                         \equal{\useKV[mncpv]{mncpv}}{#2} \OR%
                                         \equal{\useKV[mncpvi]{mncpvi}}{#2} \OR%
                                         \equal{\useKV[mncpvii]{mncpvii}}{#2} \OR%
                                         \equal{\useKV[mncpviii]{mncpvii}}{#2}}
                                            {#3}
                                            {#4}}
                                        {}}}}}}}}}}

%//// Commandes : mini-gestion conditionnelle : espaces de condition ////////////
%////////////////////////////////////////////////////////////////////////////////
\NewDocumentCommand\setminicondispace{m}{%                                          % Interface pour d��finir l'espace de condition relatif �� la mini-gestion conditionnelle
    \ifmncsemptythenelse{#1}                                                                % pc renseign��e ?
        {\errorifmncsempty{setminicondispace}}                                                  % non : message d'erreur sur ec
        {\ifmncpokthenelse{#1}                                                                  % oui : pc valide ?
            {\ifmncsalreadydefinedthenelse{#1}                                                      % oui : ec d��j�� d��fini ?
                {\errorifmncsalreadydefined{setminicondispace}{#1}}                                     % oui : message d'erreur sur ec
                {\setKVdefault[mncs]{cs=#1}}}                                                           % non : d��finit l'ec
            {\errorifmncpnonok{setminicondispace}}}}                                                % non : message d'erreur sur pc

\NewDocumentCommand\ifmncsemptythenelse{m m m}{%                                    % Teste si l'espace de condition relatif �� la mini-gestion conditionnelle est renseign��
    \ifthenelse{\equal{#1}{}}
        {#2 \errmsgifmncsempty{}}
        {#3}}

%//// Commandes : mini-gestion conditionnelle : espaces de condition : test /////
\NewDocumentCommand\ifmncsalreadydefinedthenelse{m m m}{%                           % Teste si l'espace de condition relatif �� la mini-gestion conditionnelle est d��j�� d��fini
    \ifthenelse{\equal{\useKV[mncs]{cs}}{#1}}
        {#2}
        {#3}}

%//// Commandes : mini-gestion conditionnelle : formes substituables ////////////
%////////////////////////////////////////////////////////////////////////////////
\NewDocumentCommand\minidisplay{m m m}{%                                            % Affiche une forme substituable en mini-gestion conditionnelle
    \ifmncpnonethenelse{#1}                                                                 % pc neutre ?
        {}                                                                                      % oui : n'affiche rien
        {\ifmatchingmncsthenelse{#1}                                                            % non : ec correspondant ?
            {#2}                                                                                    % oui
            {#3}}}                                                                                  % non

\NewDocumentCommand\ifmatchingmncsthenelse{m m m}{%                                 % Teste s'il existe un espace de condition pour mini-gestion condit. correspondant �� la propri��t�� de condition renseign��e
    \ifthenelse{\equal{\useKV[mncs]{cs}}{\useKV[mncp#1]{mncp#1}}}
        {#2}
        {#3}}

\NewDocumentCommand\minidisplayi{m m}{\minidisplay{i}{#1}{#2}}                      % Affiche la forme substituable n�� 1 de la mini-gestion conditionnelle
\NewDocumentCommand\minidisplayii{m m}{\minidisplay{ii}{#1}{#2}}                    % Affiche la forme substituable n�� 2 de la mini-gestion conditionnelle
\NewDocumentCommand\minidisplayiii{m m}{\minidisplay{iii}{#1}{#2}}                  % Affiche la forme substituable n�� 3 de la mini-gestion conditionnelle
\NewDocumentCommand\minidisplayiv{m m}{\minidisplay{iv}{#1}{#2}}                    % Affiche la forme substituable n�� 4 de la mini-gestion conditionnelle
\NewDocumentCommand\minidisplayv{m m}{\minidisplay{v}{#1}{#2}}                      % Affiche la forme substituable n�� 5 de la mini-gestion conditionnelle
\NewDocumentCommand\minidisplayvi{m m}{\minidisplay{vi}{#1}{#2}}                    % Affiche la forme substituable n�� 6 de la mini-gestion conditionnelle
\NewDocumentCommand\minidisplayvii{m m}{\minidisplay{vii}{#1}{#2}}                  % Affiche la forme substituable n�� 7 de la mini-gestion conditionnelle
\NewDocumentCommand\minidisplayviii{m m}{\minidisplay{viii}{#1}{#2}}                % Affiche la forme substituable n�� 8 de la mini-gestion conditionnelle
\NewDocumentCommand\minidisplayix{m m}{\minidisplay{xi}{#1}{#2}}                    % Affiche la forme substituable n�� 9 de la mini-gestion conditionnelle

\NewDocumentCommand\miniconditext{m  O{}  O{}  O{}  O{}  O{}  O{}  O{}  O{}}{%      % Interface pour contenus substituables en mini-gestion conditionnelle
    \minidisplayi{#1}{%
        \minidisplayii{#2}{%
            \minidisplayiii{#3}{%
                \minidisplayiv{#4}{%
                    \minidisplayv{#5}{%
                        \minidisplayvi{#6}{%
                            \minidisplayvii{#7}{%
                                \minidisplayviii{#8}{%
                                    \minidisplayix{#9}{}}}}}}}}}}

%////////////////////////////////////////////////////////////////////////////////
%//// MESSAGES D'ERREUR /////////////////////////////////////////////////////////
%////////////////////////////////////////////////////////////////////////////////

%////////////////////////////////////////////////////////////////////////////////
%//// Messages d'erreur : gestion conditionnelle ////////////////////////////////
%////////////////////////////////////////////////////////////////////////////////

%//// Messages d'erreur : gestion conditionnelle : domaines de condition ////////
%////////////////////////////////////////////////////////////////////////////////

%//// Messages d'erreur : gestion conditionnelle : domaines de condition : non renseign��
\edef\errtxtifcfempty{no condition field entered}                                   % Message d'erreur en cas de domaine de condition non renseign��
\edef\hlptxtifcfempty{You must not leave the argument empty : %                     % Message d'aide en cas de domaine de condition non renseign��
                      a condition field must be entered}

\NewDocumentCommand\errorifcfempty{m}{%                                             % Erreur d��clench��e en cas de domaine de condition non renseign��
    \PackageError{conditext}%
        {#1 statement failed --> \errtxtifcfempty}%
        {\hlptxtifcfempty.}}

%//// Messages d'erreur : gestion conditionnelle : domaines de condition : non cr����
\edef\errtxtifcfnoncreated{condition field not created}                             % Message d'erreur en cas de domaine de condition non cr����
\edef\hlptxtifcfnoncreated{You may not have created the condition field %           % Message d'aide en cas de domaine de condition non cr����
                           whose name is entered : use a newcondifield %
                           statement to make it}

\NewDocumentCommand\errorifcfnoncreated{m m}{%                                      % Erreur d��clench��e en cas de domaine de condition non cr����
    \PackageError{conditext}%
        {#1 statement with "#2" failed --> \errtxtifcfnoncreated}%
        {\hlptxtifcfnoncreated.}}

%//// Messages d'erreur : gestion conditionnelle : domaines de condition : d��j�� cr����
\edef\errtxtifcfalreadycreated{condition field already created}                     % Message d'erreur en cas de domaine de condition d��j�� cr����
\edef\hlptxtifcfalreadycreated{There must not be two condition fields with %        % Message d'aide en cas de domaine de condition d��j�� cr����
                               the same name : you should check in the preamble %
                               if there is not another newcondifield statement %
                               already defined with the same name as argument}

\NewDocumentCommand\errorifcfalreadycreated{m m}{%                                  % Erreur d��clench��e en cas de domaine de condition d��j�� cr����
    \PackageError{conditext}%
        {#1 statement with "#2" failed --> \errtxtifcfalreadycreated}%
        {\hlptxtifcfalreadycreated.}}

%//// Messages d'erreur : gestion conditionnelle : propri��t��s de condition //////
%////////////////////////////////////////////////////////////////////////////////

%//// Messages d'erreur : gestion conditionnelle : propri��t��s de condition : non renseign��e
\edef\errtxtifcpempty{no condition property entered}                                % Message d'erreur en cas de propri��t�� de condition non renseign��e
\edef\hlptxtifcpempty{You must not leave the argument empty : %                     % Message d'aide en cas de propri��t�� de condition non renseign��e
                      a condition property must be entered}

\NewDocumentCommand\errorifcpempty{m}{%                                             % Erreur d��clench��e en cas de propri��t�� de condition non renseign��e
    \PackageError{conditext}%
        {#1 statement failed --> \errtxtifcpempty}%
        {\hlptxtifcpempty.}}

%//// Messages d'erreur : gestion conditionnelle : propri��t��s de condition : non cr����e
\edef\errtxtifcpnoncreated{condition property non created}                          % Message d'erreur en cas de propri��t�� de condition non cr����e
\edef\hlptxtifcpnoncreated{You may not have created the condition property %        % Message d'aide en cas de propri��t�� de condition non cr����e
                           whose name you have entered : use a newcondiprop %
                           statement to make it}

\NewDocumentCommand\errorifcpnoncreated{m m}{%                                      % Erreur d��clench��e en cas de propri��t�� de condition non cr����e
    \PackageError{conditext}%
        {#1 statement with "#2" failed --> \errtxtifcpnoncreated}%
        {\hlptxtifcpnoncreated.}}

%//// Messages d'erreur : gestion conditionnelle : propri��t��s de condition : non cr����e ou inappropri��
\edef\errtxtifcpnonok{\errtxtifcpnoncreated, or unsuitable}                         % Message d'erreur en cas de propri��t�� de condition non cr����e ou inappropri��e
\edef\hlptxtifcpnonok{\hlptxtifcpnoncreated. Or maybe, you should look for %        % Message d'aide en cas de propri��t�� de condition non cr����e ou inappropri��e
                       a suitable condition property among the ones created %
                       with link to the condition field entered in the first argument}

\NewDocumentCommand\errorifcpnonok{m m}{%                                           % Erreur d��clench��e en cas de propri��t�� de condition non cr����e ou inappropri��e
    \PackageError{conditext}%
        {#1 statement with "#2" failed --> \errtxtifcpnonok}%
        {\hlptxtifcpnonok.}}

%//// Messages d'erreur : gestion conditionnelle : propri��t��s de condition : d��j�� cr����e
\edef\errtxtifcpalreadycreated{condition property already created}                  % Message d'erreur en cas de propri��t�� de condition d��j�� cr����e
\edef\hlptxtifcpalreadycreated{There must not be two condition properties with %    % Message d'aide en cas de propri��t�� de condition d��j�� cr����e
                               the same name when linked to the same condition field : %
                               you should check in the preamble if there is not %
                               another newcondiprop statement already defined %
                               with the same names of condition field and %
                               condition property as arguments}

\NewDocumentCommand\errorifcpalreadycreated{m m}{%                                  % Erreur d��clench��e en cas de propri��t�� de condition d��j�� cr����e
    \PackageError{conditext}%
        {#1 statement with "#2" failed --> \errtxtifcpalreadycreated}%
        {\hlptxtifcpalreadycreated.}}

%//// Messages d'erreur : gestion conditionnelle : espaces de condition /////////
%////////////////////////////////////////////////////////////////////////////////

%//// Messages d'erreur : gestion conditionnelle : espaces de condition : d��j�� d��fini
\edef\errtxtifcsalreadydefined{condition space already defined}                     % Message d'erreur en cas d'espace de condition d��j�� d��fini
\edef\hlptxtifcsalreadydefined{You should check if there is not another %           % Message d'aide en cas d'espace de condition d��j�� d��fini
                               setcondispace statement already defined %
                               with the same names of condition field and %
                               condition property as arguments}

\NewDocumentCommand\errorifcsalreadydefined{m m m}{%                                % Erreur d��clench��e en cas d'espace de condition d��j�� d��fini
    \PackageError{conditext}%
        {#1 statement with "#2" et "#3" failed --> \errtxtifcsalreadydefined}%
        {\hlptxtifcsalreadydefined.}}

%////////////////////////////////////////////////////////////////////////////////
%//// Messages d'erreur : mini-gestion conditionnelle ///////////////////////////
%////////////////////////////////////////////////////////////////////////////////

%//// Messages d'erreur : mini-gestion conditionnelle : propri��t��s de condition /
%////////////////////////////////////////////////////////////////////////////////

%//// Messages d'erreur : mini-gestion conditionnelle : propri��t��s de condition : non r��initialisation
\edef\errtxtifmncpnoresetting{no resetting of the condition properties %            % Message d'erreur en cas de non r��initialisation
                              has been made}
\edef\hlptxtifmncpnoresetting{You must use a resettingminicondiprops statement %    % Message d'aide en cas de propri��t�� de non r��initialisation
                              before redefining the condition properties}

\NewDocumentCommand\errorifmncpnoresetting{m}{%                                     % Erreur d��clench��e en cas de propri��t�� de non r��initialisation
    \PackageError{conditext}%
        {#1 statement failed --> \errtxtifmncpnoresetting}%
        {\hlptxtifmncpnoresetting.}}

%//// Messages d'erreur : mini-gestion conditionnelle : propri��t��s de condition : non renseign��e
\edef\errtxtifmncpempty{no condition property entered}                              % Message d'erreur en cas de propri��t�� de condition non renseign��e
\edef\hlptxtifmncpempty{You must not leave the argument empty : %                   % Message d'aide en cas de propri��t�� de condition non renseign��e
                        a condition property must be entered}

\NewDocumentCommand\errorifmncpempty{m}{%                                           % Erreur d��clench��e en cas de propri��t�� de condition non renseign��e
    \PackageError{conditext}%
        {#1 statement failed --> \errtxtifmncpempty}%
        {\hlptxtifmncpempty.}}

%//// Messages d'erreur : mini-gestion conditionnelle : propri��t��s de condition : d��j�� red��finie
\edef\errtxtifmncpalreadyredefined{condition property already redefined}            % Message d'erreur en cas de propri��t�� de condition d��j�� red��finie
\edef\hlptxtifmncpalreadyredefined{There must not be two condition properties %     % Message d'aide en cas de propri��t�� de condition d��j�� red��finie
                                   with the same name in a mini conditional management : %
                                   you should check in the preamble if there is not %
                                   another setminicondiprop- statement already defined %
                                   with the same name as argument}

\NewDocumentCommand\errorifmncpalreadyredefined{m m}{%                              % Erreur d��clench��e en cas de propri��t�� de condition d��j�� red��finie
    \PackageError{conditext}%
        {#1 statement with "#2" failed --> \errtxtifmncpalreadyredefined}%
        {\hlptxtifmncpalreadyredefined.}}

%//// Messages d'erreur : mini-gestion conditionnelle : propri��t��s de condition : neutre
\edef\errtxtifmncpnone{condition property with "none" status}                       % Message d'erreur en cas de propri��t�� de condition neutre
\edef\hlptxtifmncpnone{You must not use a condition property with a "none" status : % Message d'aide en cas de propri��t�� de condition neutre
                       redefine it using a setminicondiprop- statement}

\NewDocumentCommand\errorifmncpnone{m m}{%                                          % Erreur d��clench��e en cas de propri��t�� de condition neutre
    \PackageError{conditext}%
        {#1 statement failed --> \errtxtifmncpalreadyredefined}%
        {\hlptxtifmncpalreadyredefined.}}

%//// Messages d'erreur : mini-gestion conditionnelle : propri��t��s de condition : valide
\edef\errtxtifmncpnonok{\errtxtifmncpnone, or unknown}                              % Message d'erreur en cas de propri��t�� de condition neutre ou saisie erron��ment
\edef\hlptxtifmncpnonok{\hlptxtifmncpnone. Or you should check if %                 % Message d'aide en cas de propri��t�� de condition neutre ou saisie erron��ment
                        the condition property is correctly entered}

\NewDocumentCommand\errorifmncpnonok{m}{%                                           % Erreur d��clench��e en cas de propri��t�� de condition neutre ou saisie erron��ment
    \PackageError{conditext}%
        {#1 statement failed --> \errtxtifmncpnonok}%
        {\hlptxtifmncpnonok.}}

%//// Messages d'erreur : mini-gestion conditionnelle : espaces de condition ////
%////////////////////////////////////////////////////////////////////////////////

%//// Messages d'erreur : mini-gestion conditionnelle : espaces de condition : non renseign��
\edef\errtxtifmncsempty{no condition space entered}                                 % Message d'erreur en cas d'espace de condition non renseign��
\edef\hlptxtifmncsempty{You must not leave the argument empty : %                   % Message d'aide en cas d'espace de condition non renseign��
                        a condition space must be entered}

\NewDocumentCommand\errorifmncsempty{m}{%                                           % Erreur d��clench��e en cas d'espace de condition non renseign��
    \PackageError{conditext}%
        {#1 statement failed --> \errtxtifmncsempty}%
        {\hlptxtifmncsempty.}}

%//// Messages d'erreur : mini-gestion conditionnelle : espaces de condition : d��j�� d��fini
\edef\errtxtifmncsalreadydefined{condition space already defined}                   % Message d'erreur en cas d'espace de condition d��j�� d��fini
\edef\hlptxtifmncsalreadydefined{You should check if there is not %                 % Message d'aide en cas d'espace de condition d��j�� d��fini
                                 another setminicondispace statement already defined %
                                 with the same name as argument}

\NewDocumentCommand\errorifmncsalreadydefined{m m}{%                                % Erreur d��clench��e en cas d'espace de condition d��j�� d��fini
    \PackageError{conditext}%
        {#1 statement with "#2" failed --> \errtxtifmncsalreadydefined}%
        {\hlptxtifmncsalreadydefined.}}

%////////////////////////////////////////////////////////////////////////////////
%//// Valeurs d'��l��ments pr��d��finis /////////////////////////////////////////////
%////////////////////////////////////////////////////////////////////////////////

%//// Valeurs d'��l��ments pr��d��finis : domaine de condition linguistique /////////
%////////////////////////////////////////////////////////////////////////////////
\newcondifield{language}

%//// Valeurs d'��l��ments pr��d��finis : domaine de condition implicite ////////////
%////////////////////////////////////////////////////////////////////////////////
\setimplicitcondifield{language}

%//// Valeurs d'��l��ments pr��d��finis : domaines de condition g��n��riques //////////
%////////////////////////////////////////////////////////////////////////////////
\newcondifield{fieldi}
\newcondifield{fieldii}
\newcondifield{fieldiii}

%//// Valeurs d'��l��ments pr��d��finis : propri��t��s de condition linguistiques /////
%////////////////////////////////////////////////////////////////////////////////
\newcondiprop{language}{albanian}
\newcondiprop{language}{american}
\newcondiprop{language}{arabic}
\newcondiprop{language}{armenian}
\newcondiprop{language}{bosnian}
\newcondiprop{language}{brazilian}
\newcondiprop{language}{breton}
\newcondiprop{language}{canadian}
\newcondiprop{language}{cantonese}
\newcondiprop{language}{catalan}
\newcondiprop{language}{chinese}
\newcondiprop{language}{croatian}
\newcondiprop{language}{czech}
\newcondiprop{language}{danish}
\newcondiprop{language}{dutch}
\newcondiprop{language}{english}
\newcondiprop{language}{esperanto}
\newcondiprop{language}{estonian}
\newcondiprop{language}{finnish}
\newcondiprop{language}{french}
\newcondiprop{language}{georgian}
\newcondiprop{language}{german}
\newcondiprop{language}{greek}
\newcondiprop{language}{hebrew}
\newcondiprop{language}{hungarian}
\newcondiprop{language}{icelandic}
\newcondiprop{language}{irish}
\newcondiprop{language}{italian}
\newcondiprop{language}{japanese}
\newcondiprop{language}{lithuanian}
\newcondiprop{language}{luxemburgish}
\newcondiprop{language}{macedonian}
\newcondiprop{language}{mexican}
\newcondiprop{language}{norsk}
\newcondiprop{language}{occitan}
\newcondiprop{language}{portuguese}
\newcondiprop{language}{romanian}
\newcondiprop{language}{romansh}
\newcondiprop{language}{russian}
\newcondiprop{language}{sanskrit}
\newcondiprop{language}{serbian}
\newcondiprop{language}{slovenian}
\newcondiprop{language}{spanish}
\newcondiprop{language}{swedish}
\newcondiprop{language}{tibetan}
\newcondiprop{language}{turkish}
\newcondiprop{language}{ukrainian}
\newcondiprop{language}{vietnamese}

%//// Valeurs d'��l��ments pr��d��finis : propri��t��s de condition g��n��riques ////////
%////////////////////////////////////////////////////////////////////////////////
\newcondiprop{fieldi}{propa}
\newcondiprop{fieldi}{propb}
\newcondiprop{fieldi}{propc}
\newcondiprop{fieldi}{propd}
\newcondiprop{fieldi}{prope}
\newcondiprop{fieldi}{propf}
\newcondiprop{fieldi}{propg}
\newcondiprop{fieldi}{proph}
\newcondiprop{fieldi}{propi}

\newcondiprop{fieldii}{propaa}
\newcondiprop{fieldii}{propbb}
\newcondiprop{fieldii}{propcc}
\newcondiprop{fieldii}{propdd}
\newcondiprop{fieldii}{propee}
\newcondiprop{fieldii}{propff}
\newcondiprop{fieldii}{propgg}
\newcondiprop{fieldii}{prophh}
\newcondiprop{fieldii}{propii}

\newcondiprop{fieldiii}{propaaa}
\newcondiprop{fieldiii}{propbbb}
\newcondiprop{fieldiii}{propccc}
\newcondiprop{fieldiii}{propddd}
\newcondiprop{fieldiii}{propeee}
\newcondiprop{fieldiii}{propfff}
\newcondiprop{fieldiii}{propggg}
\newcondiprop{fieldiii}{prophhh}
\newcondiprop{fieldiii}{propiii}