anchor.diff:  -spec handle_cast(term(), #state{}) ->
       {noreply, #state{}}.
   
  -handle_cast({insert, Keys, Lang}, State) ->
  -    Values = [{{to_bin(Key), Lang}, to_bin(Txt)} || {Key, Txt} <- Keys],
  +handle_cast({insert, SrvId, Keys, Lang}, State) ->
  +    Values = [{{SrvId, to_bin(Key), Lang}, to_bin(Txt)} || {Key, Txt} <- Keys],
       ets:insert(?MODULE, Values),
       {noreply, State};
   
  
positive.code: %% ===================================================================
  
  %% @doc Gets a string for english
  -spec get(key()) ->
      binary().
  
  get(Key) ->
      get(Key, <<"en">>).
  
  
  %% @doc Gets a string for any language, or use english default
  -spec get(key(), lang()) ->
      binary().
  
  get(Key, Lang) ->
      Lang2 = to_bin(Lang),
      case ets:lookup(?MODULE, {to_bin(Key), Lang2}) of
          [] when Lang2 == <<"en">> -> <<>>;
          [] -> get(Key, <<"en">>);
          [{_, Msg}] -> Msg
      end.
  
  
  %% @doc Gets a string an expands parameters
  -spec get(key(), list(), lang()) ->
      binary().
  
  get(Key, List, Lang) when is_list(List) ->
      case get(Key, Lang) of
          <<>> ->
              <<>>;
          Msg ->
  
negative.code: 
  
  %% @doc Inserts a key or keys for english
  -spec insert(srv_id(), {key(), text()}|[{key(), text()}]) ->
      ok.
  
  insert(SrvId, Keys) ->
      insert(SrvId, Keys, <<"en">>).
  
  
  %% @doc Inserts a key or keys for any language
  -spec insert(srv_id(), {key(), text()}|[{key(), text()}], lang()) ->
      ok.
  
  insert(_SrvId, [], _Lang) ->
      ok;
  
  insert(SrvId, [{_, _}|_]=Keys, Lang) ->
      gen_server:cast(?MODULE, {insert, SrvId, Keys, to_bin(Lang)});
  
  insert(SrvId, {Key, Txt}, Lang) ->
      insert(SrvId, [{Key, Txt}], Lang);
  
  insert(SrvId, Map, Lang) when is_map(Map) ->
      insert(SrvId, maps:to_list(Map), Lang).
  
  
  %% @doc Bulk loading for modules implementing this behaviour
  -spec load(srv_id(), module()) ->
      ok.
  
  load(SrvId, Module) ->
      Data = Module:i18n(),
      lists:foreach(
          fun({Lang, Keys}) -> insert(SrvId, Keys, Lang) end,
          maps:to_list(Data)).
  
  
  