function locale_add_language
API function to add a language.
Parameters
$langcode: Language code.
$name: English name of the language
$native: Native name of the language
$direction: LANGUAGE_LTR or LANGUAGE_RTL
$domain: Optional custom domain name with protocol, without trailing slash (eg. http://de.example.com).
$prefix: Optional path prefix for the language. Defaults to the language code if omitted.
$enabled: Optionally TRUE to enable the language when created or FALSE to disable.
$default: Optionally set this language to be the default.
Related topics
12 calls to locale_add_language()
- DateTimeFunctionalTest::testDateFormatStorage in modules/
system/ system.test - Test if the date formats are stored properly.
- DrupalHTTPRequestTestCase::testDrupalHTTPRequestHeaders in modules/
simpletest/ tests/ common.test - Tests Content-language headers generated by Drupal.
- FieldTranslationsTestCase::setUp in modules/
field/ tests/ field.test - Set the default field storage backend for fields created during tests.
- install_import_locales in includes/
install.core.inc - Imports languages via a batch process during installation.
- LocaleLanguageSwitchingFunctionalTest::testNewDisabledLanguage in modules/
locale/ locale.test - Tests that languages can be added as disabled.
File
-
includes/
locale.inc, line 595
Code
function locale_add_language($langcode, $name = NULL, $native = NULL, $direction = LANGUAGE_LTR, $domain = '', $prefix = '', $enabled = TRUE, $default = FALSE) {
// Default prefix on language code.
if (empty($prefix)) {
$prefix = $langcode;
}
// If name was not set, we add a predefined language.
if (!isset($name)) {
include_once DRUPAL_ROOT . '/includes/iso.inc';
$predefined = _locale_get_predefined_list();
$name = $predefined[$langcode][0];
$native = isset($predefined[$langcode][1]) ? $predefined[$langcode][1] : $predefined[$langcode][0];
$direction = isset($predefined[$langcode][2]) ? $predefined[$langcode][2] : LANGUAGE_LTR;
}
db_insert('languages')->fields(array(
'language' => $langcode,
'name' => $name,
'native' => $native,
'direction' => $direction,
'domain' => $domain,
'prefix' => $prefix,
'enabled' => $enabled ? 1 : 0,
))
->execute();
// Only set it as default if enabled.
if ($enabled && $default) {
variable_set('language_default', (object) array(
'language' => $langcode,
'name' => $name,
'native' => $native,
'direction' => $direction,
'enabled' => (int) $enabled,
'plurals' => 0,
'formula' => '',
'domain' => '',
'prefix' => $prefix,
'weight' => 0,
'javascript' => '',
));
}
if ($enabled) {
// Increment enabled language count if we are adding an enabled language.
variable_set('language_count', variable_get('language_count', 1) + 1);
}
// Kill the static cache in language_list().
drupal_static_reset('language_list');
// Force JavaScript translation file creation for the newly added language.
_locale_invalidate_js($langcode);
watchdog('locale', 'The %language language (%code) has been created.', array(
'%language' => $name,
'%code' => $langcode,
));
module_invoke_all('multilingual_settings_changed');
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.