Core languages, or masters, are root-level language packs. They SHOULD NOT be deleted, which is prevented by a foreign key constraint fk_language_id on the self-referencing key parent_id. If the language_id is equal to the parent_id, a language has no parent and is therefore a core language located at the root of the language family tree.

Currently, the core supports four European master languages. These are defined in the SUPPORTED_LANGUAGES constant of the Locale class:

  • de-DE for German
  • en-GB for English
  • fr-FR for French
  • nl-NL for Dutch

If no language match is found, StoreCore defaults to en-GB for British English.

 

Master languages cannot be deleted; they can only be disabled. If you do try to delete a master language from the database, the DELETE query fails on a foreign key constraint.


Incorrect:

DELETE FROM sc_languages
      WHERE iso_code = 'de-DE';


Correct:

UPDATE sc_languages
   SET status = 0
 WHERE iso_code = 'de-DE';