anchor.diff:  %% ===================================================================
   
   %% @doc Gets a string for english
  --spec get(key()) ->
  +-spec get(srv_id(), key()) ->
       binary().
   
  -get(Key) ->
  -    get(Key, <<"en">>).
  +get(SrvId, Key) ->
  +    get(SrvId, Key, <<"en">>).
   
   
   %% @doc Gets a string for any language, or use english default
  --spec get(key(), lang()) ->
  +-spec get(srv_id(), key(), lang()) ->
       binary().
   
  -get(Key, Lang) ->
  +get(SrvId, Key, Lang) ->
       Lang2 = to_bin(Lang),
  -    case ets:lookup(?MODULE, {to_bin(Key), Lang2}) of
  -        [] when Lang2 == <<"en">> -> <<>>;
  -        [] -> get(Key, <<"en">>);
  -        [{_, Msg}] -> Msg
  +    case ets:lookup(?MODULE, {SrvId, to_bin(Key), Lang2}) of
  +        [] when Lang2 == <<"en">> ->
  +            <<>>;
  +        [] ->
  +            get(SrvId, Key, <<"en">>);
  +        [{_, Msg}] ->
  +            Msg
       end.
   
   
   %% @doc Gets a string an expands parameters
  --spec get(key(), list(), lang()) ->
  +-spec get(srv_id(), key(), list(), lang()) ->
       binary().
   
  -get(Key, List, Lang) when is_list(List) ->
  -    case get(Key, Lang) of
  +get(SrvId, Key, List, Lang) when is_list(List) ->
  +    case get(SrvId, Key, Lang) of
           <<>> ->
               <<>>;
           Msg ->
  
positive.code: %% Types
  %% ===================================================================
  
  -type key() :: binary().
  -type text() :: string() | binary().
  
  
negative.code: -spec handle_cast(term(), #state{}) ->
      {noreply, #state{}}.
  
  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};
  
  