Is it adding/deleting a language from control panel is same as adding/deleting in content editor /sitecore/system/Languages
?
TL/DR;
There is no difference
Long version:
This is the code that gets executed when you use the Delete Language
option from the control panel:
protected void Delete()
{
Job job = Context.Job;
Assert.IsNotNull((object) job, "Job is null");
Database database = Factory.GetDatabase(this._databaseName);
Assert.IsNotNull((object) database, "Database");
try
{
foreach (Language language in this._languages)
{
ID languageItemId = LanguageManager.GetLanguageItemId(language, database);
Item obj = database.GetItem(languageItemId);
Assert.IsNotNull((object) obj, "Item is null: /sitecore/system/languages/{0}", (object) language.Name);
if (Settings.RecycleBinActive)
{
Log.Audit((object) this, "Recycle Language: {0}", new string[1]{ language.Name });
obj.Recycle();
}
else
{
Log.Audit((object) this, "Delete Language: {0}", new string[1]{ language.Name });
obj.Delete();
}
}
}
catch (Exception ex)
{
job.Status.Failed = true;
job.Status.Messages.Add(ex.ToString());
}
job.Status.State = JobState.Finished;
}
}
As you can see, ultimately it does the same thing as removing the language item would. There is some extra logging around it, and it has a nice form for you to select the language to delete first.
The code is not run within any disablers so all the same item:deleted
events and item:deleting
events would run in the same way.