anchor.diff:    v := o.Values[TKeyboardInfoFile.SLanguageName];
     if not Assigned(v) then
       o.AddPair(TKeyboardInfoFile.SLanguageName, languageName);
  -
  +  {
     v := o.Values[TKeyboardInfoFile.SScriptName];
     if not Assigned(v) and (scriptName <> '') then
       o.AddPair(TKeyboardInfoFile.SScriptName, scriptName);
  
positive.code:   if id = '' then
      Exit;
    with TBCP47Tag.Create(id) do
      try
        TLanguageCodeUtils.BCP47Languages.TryGetValue(Language, languageName);
        TLanguageCodeUtils.BCP47Scripts.TryGetValue(Script, scriptName);
        TLanguageCodeUtils.BCP47Regions.TryGetValue(Region, regionName);
      finally
        Free;
    end;
  
    displayName := TLanguageCodeUtils.LanguageName(languageName, scriptName, regionName);
  
negative.code:   v := o.Values[TKeyboardInfoFile.SRegionName];
    if not Assigned(v) and (regionName <> '') then
      o.AddPair(TKeyboardInfoFile.SRegionName, regionName);
    }
  end;
  
  function TMergeKeyboardInfo.CheckOrMigrateLanguages: Boolean;
  