<?php /** * Created by Stefan Herndler. * User: Stefan * Date: 15.05.14 * Time: 16:21 * Version: 1.0 * Since: 1.0 */ /** * loads the langauge file including localization if exists * otherwise loads the langauge file without localization information * @since 1.0 */ function footnotes_load_language() { /* read current wordpress langauge */ $l_str_locale = apply_filters('plugin_locale', get_locale(), FOOTNOTES_PLUGIN_NAME); /* get only language code (removed localization code) */ $l_str_languageCode = footnotes_getLanguageCode(); /* language file with localization exists */ if ($l_bool_loaded = load_textdomain(FOOTNOTES_PLUGIN_NAME, FOOTNOTES_LANGUAGE_DIR . FOOTNOTES_PLUGIN_NAME . '-' . $l_str_locale . '.mo')) { /* language file without localization exists */ } else if ($l_bool_loaded = load_textdomain(FOOTNOTES_PLUGIN_NAME, FOOTNOTES_LANGUAGE_DIR . FOOTNOTES_PLUGIN_NAME . '-' . $l_str_languageCode . '.mo')) { /* load default language file, nothing will happen: default language will be used (=english) */ } else { load_textdomain(FOOTNOTES_PLUGIN_NAME, FOOTNOTES_LANGUAGE_DIR . FOOTNOTES_PLUGIN_NAME . '-en.mo'); } } /** * reads the wordpress langauge and returns only the language code lowercase * removes the localization code * @since 1.0 * @return string (only the "en" from "en_US") */ function footnotes_getLanguageCode() { /* read current wordpress langauge */ $l_str_locale = apply_filters('plugin_locale', get_locale(), FOOTNOTES_PLUGIN_NAME); /* check if wordpress language has a localization (e.g. "en_US" or "de_AT") */ if (strpos($l_str_locale, "_") !== false) { /* remove localization code */ $l_arr_languageCode = explode("_", $l_str_locale); $l_str_languageCode = $l_arr_languageCode[0]; return $l_str_languageCode; } /* return language code lowercase */ return strtolower($l_str_locale); }