知识网
  • 主页
  • 建站基础
  • 网页设计
  • 开发代码
  • 网页特效
  • 精品网站
  • 数据库
  • 推广运营
  • 广告视觉
  • 开源系统
  • 电脑常识
  • 游戏攻略
  • 科技资讯
  • 其他
  • 当前位置:首页 > 开源系统 > Drupal的t()函数原理

    Drupal的t()函数原理


    时间:2014-06-19 20:25:18 来源:51xuejianzhan.com 作者:网络 点击:75
    Drupal中的t()函数用于翻译字符串,原型如下:
    t($string, array $args = array(), array $options = array())
    使用该函数时要注意下面3个问题:
     
    交给t()函数处理的字符串必须是英语
    绝对不要直接使用t()函数翻译变量,类似这样:
    t($variable); 
    绝对不要直接使用t()函数翻译用户输入的文本,类似这样:
     
    t($user_input_text); 
    在字符串中必须使用变量和用户输入文本的情况下,可以在字符串中使用站位符进行替换。类似这样:
     
    $text = t("@name's blog", array('@name' => format_username($account)));
    参数说明
     
    $string:一个待翻译英语字符串。
     
    $args:上述站位符替换方法所用的关联数组。
     
    $options:关联数组形式的附加选项,有两个键,langcode是Drupal的语言代码,context是上下文。
     
    返回值
     
    翻译过的字符串
     
    Drupal内核中的代码
     
    URL:includes/bootstrap.inc,第1478行
    51xuejianzhan.com
     
    function t($string, array $args = array(), array $options = array()) {
      global $language;
      static $custom_strings;
     
      // Merge in default.
      if (empty($options['langcode'])) {
        $options['langcode'] = isset($language->language) ? $language->language : 'en';
      }
      if (empty($options['context'])) {
        $options['context'] = '';
      }
     
      // First, check for an array of customized strings. If present, use the array
      // *instead of* database lookups. This is a high performance way to provide a
      // handful of string replacements. See settings.php for examples.
      // Cache the $custom_strings variable to improve performance.
      if (!isset($custom_strings[$options['langcode']])) {
        $custom_strings[$options['langcode']] = variable_get('locale_custom_strings_' . $options['langcode'], array());
      }
      // Custom strings work for English too, even if locale module is disabled.
      if (isset($custom_strings[$options['langcode']][$options['context']][$string])) {
        $string = $custom_strings[$options['langcode']][$options['context']][$string];
      }
      // Translate with locale module if enabled.
      elseif ($options['langcode'] != 'en' && function_exists('locale')) {
        $string = locale($string, $options['context'], $options['langcode']);
      }
      if (empty($args)) {
        return $string;
      }
      else {
    学建站51xuejianzhan.com     return format_string($string, $args);
      }
    }

    (责任编辑:小站童)
    drupal, t函数,
    评论

    用户名 验证码
    最新评论
    赞助商链接
    网页取色器 | 网页配色工具 | 时间转换 | 精彩收藏 | 每日阅读 | 常用函数库 |

    Copyright © 2012 - 2013 我要学建站 All rights reserved.