anchor.diff:  %%  Language = atom()
   %%  Descr = list()
   lc2descr(Language) ->
  -	iso639:lc2lang(atom_to_list(Language)).
  +    iso639:lc2lang(atom_to_list(Language)).
  
positive.code:     lookup_fallback_language/3,
      default_language/1, 
      is_language/1, 
      language_list/1,
      lc2/1, 
      lc2descr/1
  ]).
  
  
negative.code: 
  
  %% @doc Return the configured default language for this server
  -spec default_language(#context{}) -> atom().
  default_language(Context) ->
      z_convert:to_atom(m_config:get_value(i18n, language, en, Context)).
  
  
  %% @doc check if the two letter code is a valid language
  -spec is_language(Language :: term()) -> boolean().
  is_language(<<A,B>>) -> iso639:lc2lang([A,B]) /= "";
  is_language([_,_] = IsoCode) -> iso639:lc2lang(IsoCode) /= "";
  is_language(_) -> false.
  
  %% @doc Translate a language-code to an atom.
  -spec to_language_atom(IsoCode:: list() | binary()) -> {ok, atom()} | {error, not_a_language}.
  to_language_atom([_,_] = IsoCode) ->
      case is_language(IsoCode) of
          false -> {error, not_a_language};
          true -> {ok, list_to_atom(IsoCode)}
      end;
  to_language_atom(IsoCode) when is_atom(IsoCode) ->
      to_language_atom(atom_to_list(IsoCode));
  to_language_atom(IsoCode) when is_binary(IsoCode) ->
      to_language_atom(binary_to_list(IsoCode));
  to_language_atom(_) ->
      {error, not_a_language}.
  
  
  %% @doc Return a descriptive (english) string for the language
  