anchor.diff:    ErrorControlledRegistry,
     RegistryKeys;
   
  -{ TCustomisationMessages }
  -
  -(*
  -function TCustomisationMessages.Add: TCustomisationMessage;
  -begin
  -  Result := inherited Add as TCustomisationMessage;
  -end;
  -
  -constructor TCustomisationMessages.Create;
  -begin
  -  inherited Create(TCustomisationMessage);
  -end;
  -
  -destructor TCustomisationMessages.Destroy;
  -begin
  -  inherited Destroy;
  -end;
  -
  -function TCustomisationMessages.GetItem(Index: Integer): TCustomisationMessage;
  -begin
  -  Result := inherited GetItem(Index) as TCustomisationMessage;
  -end;
  -
  -procedure TCustomisationMessages.SetItem(Index: Integer; const Value: TCustomisationMessage);
  -begin
  -  inherited SetItem(Index, Value);
  -end;
  -*)
  -
   { TCustomisationMessageManager }
   
   constructor TCustomisationMessageManager.Create(ACustStorageFilename: string; ALoadLocale: Boolean = True);
  
positive.code:   end;
  end;
  
  (*function TCustomisationMessageManager.MessageObjectFromID(ID: string): TCustomisationMessage;
  var
    i: Integer;
  begin
    for i := 0 to FMessages.Count - 1 do
      if AnsiCompareText(FMessages[i].ID, ID) = 0 then
      begin
        Result := FMessages[i];
        Exit;
      end;
    Result := nil;
  end;*)
  
  //procedure TCustomisationMessageManager.Save;
  //begin
  //  FCustFile.Stream.Size := 0;
  //  FCustFile.Stream.WriteComponent(Self);
  //end;
  
  procedure TCustomisationMessageManager.SetLanguageCode(Value: string);
  begin
    FLanguageCode := Value;
    LoadLocale;
  end;
  
  {procedure TCustomisationMessageManager.SetMessages(const Value: TCustomisationMessages);
  begin
    FMessages.Assign(Value);
  end;
  
  procedure TCustomisationMessageManager.SetSections(
    const Value: TStockMessageSections);  // I3217
  begin
    FSections.Assign(Value);
  end;}
  
  { TCustomisationMessage }
  
  (*function TCustomisationMessage.TranslatedValue(const localedoc, defaultlocaledoc: IXMLDOMDocument): WideString;
  var
    node: IXMLDOMNode;
  begin
    node := localedoc.selectSingleNode('/Locale/String[@Id="'+ID+'"]');
    if Assigned(node) then
      Result := node.text
    else
    begin
      node := defaultlocaledoc.selectSingleNode('/Locale/String[@Id="'+ID+'"]');
      if Assigned(node)
        then Result := node.text
        else Result := Value;
    end;
    //Result := dgettext(domain, ID);
    //if Result = ID then Result := Value; { No default found, so use the value from the .pxx file }
  end;*)
  
  end.
  
  
negative.code:     constructor Create(ACustStorageFilename: string; ALoadLocale: Boolean = True); reintroduce;
      destructor Destroy; override;
      procedure Load(ALoadLocale: Boolean = True);
      function MessageFromID(ID: WideString): WideString; overload;
      function MessageFromID(ID, LanguageCode: WideString): WideString; overload;
      function GetLocalePathForLocale(LocaleName: WideString): WideString;
      procedure GetDialogParameters(DialogName: WideString; var FWidth: Integer; var FHeight: Integer);
    published
      property AvailableLanguages: string read GetAvailableLanguages;
      property LanguageCode: string read FLanguageCode write SetLanguageCode;
    end;
  
  implementation
  