Changeset 28913
- Timestamp:
- Jul 2, 2014, 10:12:16 AM (10 years ago)
- Location:
- trunk/include
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/functions.inc.php
r28691 r28913 1436 1436 * @option bool return - if true the file content is returned 1437 1437 * @option bool no_fallback - if true do not load default language 1438 * @option bool|string force_fallback - force pre-loading of another language 1439 * default language if *true* or specified language 1438 1440 * @option bool local - if true load file from local directory 1439 1441 * @return boolean|string … … 1443 1445 global $user, $language_files; 1444 1446 1445 if ( !empty($dirname) and !empty($filename) ) 1446 { 1447 if ( empty($language_files[$dirname]) or !in_array($filename,$language_files[$dirname]) ) 1448 { 1449 $language_files[$dirname][] = $filename; 1450 } 1451 } 1452 1453 if (! @$options['return'] ) 1454 { 1455 $filename .= '.php'; //MAYBE to do .. load .po and .mo localization files 1447 // keep trace of plugins loaded files for switch_lang_to() function 1448 if (!empty($dirname) && !empty($filename) && !@$options['return'] 1449 && !isset($language_files[$dirname][$filename])) 1450 { 1451 $language_files[$dirname][$filename] = $options; 1452 } 1453 1454 if (!@$options['return']) 1455 { 1456 $filename .= '.php'; 1456 1457 } 1457 1458 if (empty($dirname)) … … 1461 1462 $dirname .= 'language/'; 1462 1463 1464 $default_language = defined('PHPWG_INSTALLED') ? 1465 get_default_language() : PHPWG_DEFAULT_LANGUAGE; 1466 1467 // construct list of potential languages 1463 1468 $languages = array(); 1464 if ( !empty($options['language']))1465 { 1469 if (!empty($options['language'])) 1470 { // explicit language 1466 1471 $languages[] = $options['language']; 1467 1472 } 1468 if ( !empty($user['language']))1469 { 1473 if (!empty($user['language'])) 1474 { // use language 1470 1475 $languages[] = $user['language']; 1471 1476 } 1472 if ( ($parent = get_parent_language()) != null) 1473 { 1477 if (($parent = get_parent_language()) != null) 1478 { // parent language 1479 // this is only for when the "child" language is missing 1474 1480 $languages[] = $parent; 1475 1481 } 1476 if ( ! @$options['no_fallback'] ) 1477 { 1478 if ( defined('PHPWG_INSTALLED') ) 1479 { 1480 $languages[] = get_default_language(); 1481 } 1482 $languages[] = PHPWG_DEFAULT_LANGUAGE; 1482 if (isset($options['force_fallback'])) 1483 { // fallback language 1484 // this is only for when the main language is missing 1485 if ($options['force_fallback'] === true) 1486 { 1487 $options['force_fallback'] = $default_language; 1488 } 1489 $languages[] = $options['force_fallback']; 1490 } 1491 if (!@$options['no_fallback']) 1492 { // default language 1493 $languages[] = $default_language; 1483 1494 } 1484 1495 1485 1496 $languages = array_unique($languages); 1486 1497 1487 /*Note: target charset is always utf-8 1488 if ( empty($options['target_charset']) ) 1489 { 1490 $target_charset = get_pwg_charset(); 1491 } 1492 else 1493 { 1494 $target_charset = $options['target_charset']; 1495 } 1496 $target_charset = strtolower($target_charset);*/ 1498 // find first existing 1497 1499 $source_file = ''; 1498 1500 $selected_language = ''; … … 1510 1512 } 1511 1513 } 1512 1513 if ( !empty($source_file) ) 1514 { 1515 if (! @$options['return'] ) 1516 { 1514 1515 if ($dirname == GUESTBOOK_PATH.'language/') var_dump($languages); 1516 1517 if (!empty($source_file)) 1518 { 1519 if (!@$options['return']) 1520 { 1521 // load forced fallback 1522 if (isset($options['force_fallback']) && $options['force_fallback'] != $selected_language) 1523 { 1524 @include(str_replace($selected_language, $options['force_fallback'], $source_file)); 1525 } 1526 1527 // load language content 1517 1528 @include($source_file); 1518 1529 $load_lang = @$lang; 1519 1530 $load_lang_info = @$lang_info; 1520 1531 1532 // access already existing values 1521 1533 global $lang, $lang_info; 1522 if ( !isset($lang) ) $lang=array(); 1523 if ( !isset($lang_info) ) $lang_info=array(); 1524 1525 $parent_language = !empty($load_lang_info['parent']) ? $load_lang_info['parent'] : ( 1526 !empty($lang_info['parent']) ? $lang_info['parent'] : null ); 1527 if (!empty($parent_language) and $parent_language != $selected_language) 1534 if (!isset($lang)) $lang = array(); 1535 if (!isset($lang_info)) $lang_info = array(); 1536 1537 // load parent language content directly in global 1538 if (!empty($load_lang_info['parent'])) 1539 $parent_language = $load_lang_info['parent']; 1540 else if (!empty($lang_info['parent'])) 1541 $parent_language = $lang_info['parent']; 1542 else 1543 $parent_language = null; 1544 1545 if (!empty($parent_language) && $parent_language != $selected_language) 1528 1546 { 1529 1547 @include(str_replace($selected_language, $parent_language, $source_file)); 1530 1548 } 1531 1549 1532 /* Note: target charset is always utf-8 1533 if ( 'utf-8'!=$target_charset) 1534 { 1535 if ( is_array($load_lang) ) 1536 { 1537 foreach ($load_lang as $k => $v) 1538 { 1539 if ( is_array($v) ) 1540 { 1541 $func = create_function('$v', 'return convert_charset($v, "utf-8", "'.$target_charset.'");' ); 1542 $lang[$k] = array_map($func, $v); 1543 } 1544 else 1545 $lang[$k] = convert_charset($v, 'utf-8', $target_charset); 1546 } 1547 } 1548 if ( is_array($load_lang_info) ) 1549 { 1550 foreach ($load_lang_info as $k => $v) 1551 { 1552 $lang_info[$k] = convert_charset($v, 'utf-8', $target_charset); 1553 } 1554 } 1555 } 1556 else 1557 {*/ 1558 $lang = array_merge( $lang, (array)$load_lang ); 1559 $lang_info = array_merge( $lang_info, (array)$load_lang_info ); 1560 //} 1550 // merge contents 1551 $lang = array_merge($lang, (array)$load_lang); 1552 $lang_info = array_merge($lang_info, (array)$load_lang_info); 1561 1553 return true; 1562 1554 } … … 1568 1560 } 1569 1561 } 1562 1570 1563 return false; 1571 1564 } -
trunk/include/functions_mail.inc.php
r28587 r28913 309 309 { 310 310 foreach ($language_files as $dirname => $files) 311 foreach ($files as $filename) 312 load_language($filename, $dirname, array('language'=>$language) ); 311 { 312 foreach ($files as $filename => $options) 313 { 314 $options['language'] = $language; 315 load_language($filename, $dirname, $options); 316 } 317 } 313 318 } 314 319 … … 331 336 * Switch back language pushed with switch_lang_to() function. 332 337 * @see switch_lang_to() 338 * Language files are not reloaded 333 339 */ 334 340 function switch_lang_back()
Note: See TracChangeset
for help on using the changeset viewer.