| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 | <?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) {}
 |