118 lines
3.6 KiB
PHP
118 lines
3.6 KiB
PHP
<?php
|
|
/**
|
|
* @file
|
|
* API documentation for Internationalization module
|
|
*
|
|
* Most i18n hooks can be placed on each module.i18n.inc file but in this case
|
|
* such file must be listed in the module.info file.
|
|
*/
|
|
|
|
|
|
/**
|
|
* Provide information about object types handled by i18n system.
|
|
*
|
|
* @see i18n_object_info()
|
|
*
|
|
* Other features like translation sets (i18n_translation) or string translation (i18n_string)
|
|
* rely on the information provided by this hook for automating string translation
|
|
*/
|
|
function hook_i18n_object_info() {
|
|
// Information for node type object, see i18n_node_i18n_object_info()
|
|
$info['node_type'] = array(
|
|
// Generic object properties, title, etc..
|
|
'title' => t('Node type'),
|
|
// Field to be used as key to index different node types
|
|
'key' => 'type',
|
|
// Mapping object fields and menu place holders
|
|
'placeholders' => array(
|
|
'%node_type' => 'type',
|
|
),
|
|
// Path for automatically generated translation tabs. Note placeholders above are used here.
|
|
'edit path' => 'admin/structure/types/manage/%node_type',
|
|
'translate tab' => 'admin/structure/types/manage/%node_type/translate',
|
|
// We can easily list all these objects because they should be limited and manageable
|
|
// Only in this case we provide a 'list callback'.
|
|
'list callback' => 'node_type_get_types',
|
|
// Metadata for string translation
|
|
// In this case we are defining fields and keys for string translation's string names
|
|
// String ids are of the form: [textgroup]:[type]:[key]:[property]
|
|
// Thus in this case we'll have string names like
|
|
// - node:type:story:name
|
|
// - node:type:story:description
|
|
'string translation' => array(
|
|
'textgroup' => 'node',
|
|
'type' => 'type',
|
|
'properties' => array(
|
|
'name' => t('Name'),
|
|
'title_label' => t('Title label'),
|
|
'description' => t('Description'),
|
|
'help' => t('Help text'),
|
|
),
|
|
'translate path' => 'admin/structure/types/manage/%node_type/translate/%i18n_language',
|
|
)
|
|
);
|
|
// Example information for taxonomy term object, see i18n_taxonomy_i18n_object_info().
|
|
$info['taxonomy_term'] = array(
|
|
'title' => t('Taxonomy term'),
|
|
'class' => 'i18n_taxonomy_term',
|
|
'entity' => 'taxonomy_term',
|
|
'key' => 'tid',
|
|
'placeholders' => array(
|
|
'%taxonomy_term' => 'tid',
|
|
),
|
|
// Auto generate edit path
|
|
'edit path' => 'taxonomy/term/%taxonomy_term/edit',
|
|
// Auto-generate translate tab
|
|
'translate tab' => 'taxonomy/term/%taxonomy_term/translate',
|
|
'string translation' => array(
|
|
'textgroup' => 'taxonomy',
|
|
'type' => 'term',
|
|
'properties' => array(
|
|
'name' => t('Name'),
|
|
'description' => array(
|
|
'title' => t('Description'),
|
|
'format' => 'format',
|
|
),
|
|
),
|
|
)
|
|
);
|
|
return $info;
|
|
}
|
|
|
|
/**
|
|
* Alter i18n object information provided by modules with the previous hook
|
|
*
|
|
* @see i18n_object_info()
|
|
*/
|
|
function hook_i18n_object_info_alter(&$info) {
|
|
}
|
|
|
|
/**
|
|
* Provide information about available translations for specific path.
|
|
*
|
|
* @see i18n_get_path_translations($path)
|
|
*
|
|
* @param $path
|
|
* Internal path to translate.
|
|
* @return array
|
|
* Translations indexed by language code. Each translation is an array with:
|
|
* - 'path'
|
|
* - 'title'
|
|
* - 'options'
|
|
*/
|
|
function hook_i18n_translate_path($path) {
|
|
if ($path == 'mypath') {
|
|
$translations['es'] = array(
|
|
'path' => 'mypath/spanish',
|
|
'title' => t('My Spanish translation'),
|
|
);
|
|
return $translations;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Alter path translations
|
|
*/
|
|
function hook_i18n_translate_path_alter(&$translations, $path) {
|
|
}
|