views_plugin_localization.inc in Views (for Drupal 7) 6.3
Same filename and directory in other branches
Contains the base class for views localization plugins.
File
plugins/views_plugin_localization.incView source
<?php
/**
* @file
* Contains the base class for views localization plugins.
*/
/**
* The base plugin to handle localization of Views strings.
*
* @ingroup views_localization_plugins
*/
class views_plugin_localization extends views_plugin {
// Store for exported strings
var $export_strings = array();
var $translate = TRUE;
/**
* Initialize the plugin.
*
* @param $view
* The view object.
*/
function init(&$view) {
$this->view =& $view;
}
/**
* Translate a string / text with format
*
* The $source parameter is an array with the following elements:
* - value, source string
* - format, input format in case the text has some format to be applied
* - keys. An array of keys to identify the string. Generally constructed from
* view name, display_id, and a property, e.g., 'header'.
*
* @param $source
* Full data for the string to be translated.
*
* @return string
* Translated string / text
*/
function translate($source) {
// Allow other modules to make changes to the string before and after translation
$source['pre_process'] = $this
->invoke_translation_process($source, 'pre');
$source['translation'] = $this
->translate_string($source['value'], $source['keys'], $source['format']);
$source['post_process'] = $this
->invoke_translation_process($source, 'post');
return $source['translation'];
}
/**
* Translate a string.
*
* @param $string
* The string to be translated.
* @param $keys
* An array of keys to identify the string. Generally constructed from
* view name, display_id, and a property, e.g., 'header'.
* @param $format
* The input format of the string. This is optional.
*/
function translate_string($string, $keys = array(), $format = '') {
}
/**
* Save string source for translation.
*
* @param $source
* Full data for the string to be translated.
*/
function save($source) {
// Allow other modules to make changes to the string before saving
$source['pre_process'] = $this
->invoke_translation_process($source, 'pre');
$this
->save_string($source['value'], $source['keys'], isset($source['format']) ? $source['format'] : '');
}
/**
* Save a string for translation
*
* @param $string
* The string to be translated.
* @param $keys
* An array of keys to identify the string. Generally constructed from
* view name, display_id, and a property, e.g., 'header'.
* @param $format
* The input format of the string. This is optional.
*/
function save_string($string, $keys = array(), $format = '') {
}
/**
* Delete a string.
*
* @param $source
* Full data for the string to be translated.
*/
function delete($source) {
}
/**
* Collect strings to be exported to code.
*
* @param $source
* Full data for the string to be translated.
*/
function export($source) {
}
/**
* Render any collected exported strings to code.
*
* @param $indent
* An optional indentation for prettifying nested code.
*/
function export_render($indent = ' ') {
}
/**
* Invoke hook_translation_pre_process() or hook_translation_post_process().
*
* Like node_invoke_nodeapi(), this function is needed to enable both passing
* by reference and fetching return values.
*/
function invoke_translation_process(&$value, $op) {
$return = array();
$hook = 'translation_' . $op . '_process';
foreach (module_implements($hook) as $module) {
$function = $module . '_' . $hook;
$result = $function($value);
if (isset($result)) {
$return[$module] = $result;
}
}
return $return;
}
function process_locale_strings($op) {
$this->view
->init_display();
foreach ($this->view->display as $display_id => $display) {
$translatable = array();
// Special handling for display title.
if (isset($display->display_title)) {
$translatable[] = array(
'value' => $display->display_title,
'keys' => array(
'display_title',
),
);
}
// Unpack handlers.
if (is_object($this->view->display[$display_id]->handler)) {
$this->view->display[$display_id]->handler
->unpack_translatables($translatable);
}
foreach ($translatable as $data) {
$data['keys'] = array_merge(array(
$this->view->name,
$display_id,
), $data['keys']);
switch ($op) {
case 'save':
$this
->save($data);
break;
case 'delete':
$this
->delete($data);
break;
case 'export':
$this
->export($data);
break;
}
}
}
}
}
Classes
Name | Description |
---|---|
views_plugin_localization | The base plugin to handle localization of Views strings. |