I am running CiviCRM v.5.4.0 in a WordPress (v.4.9.9) multisite. The WordPress main site is CiviCRM Domain_ID 1, and each WordPress child site has a different CiviCRM Domain_ID. This has been working fine without CiviCRM multilingual support enabled.
Because different child sites need to use different languages (French, Spanish, German, etc.), I enabled "Multiple Languages Support" on the "Settings - Localization" page (menu "Administer... Localization... Languages, Currencies, Locations"). After enabling this, the main site (Domain_ID 1) continued to work fine, but when I navigated to a child site, I got an error. Digging down, I found it was a database error:
Unknown column 'v.label' in 'field list' for table
civicrm_option_value. Inspecting the DB schema, I saw that the table had a field named
value_en_US rather than
value. The SQL query was
SELECT v.label as label ,v.name as value, v.grouping as grouping FROM civicrm_option_value v, civicrm_option_group g WHERE v.option_group_id = g.id
AND g.name = 'languages' ... (clipped). The SQL was not constructed with the right database field name suffixes (a default locale for the child site?).
Inspecting more code, I could not readily see where the field suffix for the child site was supposed to come from. For the time being, I disabled the "Multiple Languages Support" support on the main site, and now the child site works again.
For the child site, the error occurred on every WordPress page, and the WordPress admin pages would not load at all due to a cascading error. So there was no way to get into the CiviCRM admin pages to change settings for the child site once the Multiple Language Support was switched on for the main site.
At the end user/administrator level, how can I correctly and successfully enable multiple languages support for both the main site and the child sites? It seems the database schema itself is fine, but there's a locale or language setting missing for the child sites, preventing CiviCRM from successfully initializing.