% --------------------------------------------------------------------------
%
% the CHEMMACROS package -- module: `lang'
%
% --------------------------------------------------------------------------
% Clemens Niederberger
% --------------------------------------------------------------------------
% https://github.org/cgnieder/chemmacros/
% contact@mychemistry.eu
% --------------------------------------------------------------------------
% If you have any ideas, questions, suggestions or bugs to report, please
% feel free to contact me.
% --------------------------------------------------------------------------
% Copyright 2011-2016 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
%
% The Current Maintainer of this work is Clemens Niederberger.
% --------------------------------------------------------------------------
\ChemModule{lang}{2016/02/03 language settings for chemmacros}

\RequirePackage{translations}

\msg_new:nnn {chemmacros} {language-not-defined}
  {
    You~ chose~ the~ language~ `#1'~ which~ is~ not~ defined~ by~ chemmacros.~
    `english'~ is~ used~ instead.~ If~ you~ just~ mistyped~ try~ again!~
    Otherwise~ contact~ the~ author~ and~ he'll~ probably~ add~ your~ language.
  }

% --------------------------------------------------------------------------
% language settings:
\bool_new:N      \l__chemmacros_language_auto_bool
\bool_set_true:N \l__chemmacros_language_auto_bool
% this token list will hold the chosen language for chemmacros; since the
% language is either chosen automatically or by option it is only available at
% begin document
\tl_new:N        \l_chemmacros_language_tl
\tl_set:Nn       \l_chemmacros_language_tl {english}
\tl_new:N        \l__chemmacros_current_language_tl

% translate the key #1
\cs_new:Npn \chemmacros_translate:n #1
  {
    \bool_if:NTF \l__chemmacros_language_auto_bool
      { \GetTranslation {#1} }
      { \GetTranslationFor {\l_chemmacros_language_tl} {#1} }
  }

\DeclareExpandableDocumentCommand \ChemTranslate {m}
  { \chemmacros_translate:n {#1} }

\chemmacros_define_global_keys:n
  {
    language .value_required:n = true ,
    language .code:n =
      \tl_if_eq:nnTF {#1} {auto}
        { \bool_set_true:N \l__chemmacros_language_auto_bool }
        {
          \bool_set_false:N \l__chemmacros_language_auto_bool
          \tl_set:Nn \l__chemmacros_current_language_tl {#1}
        } ,
    language .initial:n = auto
  }

\ChemCompatibilityTo{5.2}
\chemmacros_define_global_keys:n
  {
    german   .meta:n = { language = german } ,
    ngerman  .meta:n = { language = ngerman }
  }
\EndChemCompatibility

\AtBeginDocument{
  \bool_if:NTF \l__chemmacros_language_auto_bool
    {
      \tl_set:Nx \l_chemmacros_language_tl
        { \@trnslt@language{\@trnslt@current@language} }
    }
    {
      \tl_set_eq:NN
        \l_chemmacros_language_tl
        \l__chemmacros_current_language_tl
    }   
}

% --------------------------------------------------------------------------
\DeclareTranslationFallback   {scheme-name} {Scheme}
\DeclareTranslation {English} {scheme-name} {Scheme}
\DeclareTranslation {German}  {scheme-name} {Schema}

\DeclareTranslationFallback   {scheme-list} {List~ of~ Schemes}
\DeclareTranslation {English} {scheme-list} {List~ of~ Schemes}
\DeclareTranslation {German}  {scheme-list} {Verzeichnis~ der~ Schemata}

% --------------------------------------------------------------------------
\DeclareTranslation {English} {K-acid}  {\mathrm{a}}
\DeclareTranslation {German}  {K-acid}  {\mathrm{s}}
\DeclareTranslation {Dutch}   {K-acid}  {\mathrm{z}}

\DeclareTranslation {English} {K-base}  {\mathrm{b}}

\DeclareTranslation {English} {K-water} {\mathrm{w}}

% --------------------------------------------------------------------------
\DeclareTranslation {English} {phase-sld} {s}
\DeclareTranslation {German}  {phase-sld} {f}

\DeclareTranslation {English} {phase-lqd} {l}
\DeclareTranslation {German}  {phase-lqd} {f\/l}

\DeclareTranslation {English} {phase-gas} {g}
\DeclareTranslation {German}  {phase-gas} {g}

\DeclareTranslation {English} {phase-aq} {aq}
\DeclareTranslation {German}  {phase-aq} {aq}

% --------------------------------------------------------------------------
\DeclareTranslationFallback   {list-of-reactions} {List~ of~ Reactions}
\DeclareTranslation {English} {list-of-reactions} {List~ of~ Reactions}
\DeclareTranslation {German}  {list-of-reactions} {Reaktionsverzeichnis}
\DeclareTranslation {Italian} {list-of-reactions} {Elenco~ delle~ reazioni}
\DeclareTranslation {French}  {list-of-reactions} {Table~ des~ r\'eactions}
\DeclareTranslation {Dutch}   {list-of-reactions} {Lijst~ van~ reacties}

\DeclareTranslationFallback   {reaction} {Reaction}
\DeclareTranslation {English} {reaction} {Reaction}
\DeclareTranslation {German}  {reaction} {Reaktion}
\DeclareTranslation {Italian} {reaction} {Reazione}
\DeclareTranslation {French}  {reaction} {R\'eaction}
\DeclareTranslation {Dutch}   {reaction} {Reactie}

% --------------------------------------------------------------------------

\tex_endinput:D

2015/11/17 - remove options `german' and `ngerman', starting with v5.3
2016/02/03 - adapt to changes in `acid-base' module
