Estoy usando CentOS 5.5 Linux (sin X), PHP 5.3 y Drupal 7.0.¿Cómo generar un archivo de traducción para un módulo personalizado de Drupal 7?
¡El idioma principal de mi sitio es el ruso (no el inglés)!
He creado un game.info y la siguiente game.module que genera a 3 cuadras de la primera página:
function game_block_info() {
return array(
'game_main' => array(
'info' => t('Set FlashVars and show the flash game.'),
'cache' => DRUPAL_NO_CACHE,
),
'game_winner' => array(
'info' => t('Show the winner of the last week.'),
'cache' => DRUPAL_NO_CACHE,
),
'game_leader' => array(
'info' => t('Show the leader of the current week.'),
'cache' => DRUPAL_NO_CACHE,
);
}
function game_block_view($block_name = '') {
global $user;
if ($block_name == 'game_main') {
if (user_is_logged_in()) {
$content = t('User is logged in.');
} else {
$content = t('User is an anonymous user.');
}
drupal_set_message("<pre>$output</pre>\n");
return array(
'subject' => t('Main Game'),
'content' => $content,
);
} else if ($block_name == 'game_winner') {
....
} else if ($block_name == 'game_leader') {
....
}
}
Funciona bien, pero necesito todas las cadenas estar en Ruso y no quiero codificarlos en mi archivo game.module.
¿Necesito crear el tercer archivo llamado game.po y agregarlo al juego.info?
¿Cómo puedo crear un archivo .po? Preferiría una edición simple de ese archivo si es posible, sin herramientas oscuras.
También he intentado una herramienta:
# xgettext -n game/game.module --keyword=t
xgettext: warning: file `game/game.module' extension `module' is unknown; will try C
game/game.module:87: warning: unterminated character constant
game/game.module:100: warning: unterminated character constant
No es que, aunque todo esto es correcto, para los módulos contribuidos, la extracción de cadenas de localización se produce automáticamente cuando una nueva versión es publicada por http://localize.drupal.org. Luego, http://drupal.org/project/l10n_update se puede usar para obtener las traducciones desde allí. Pero los módulos personalizados son una historia diferente, obviamente ... – Berdir
Si está traduciendo un módulo * personalizado *, debe * reinstalar * para poder aplicar la traducción. Cuando no desee hacer eso (por ejemplo, no desea perder todos los permisos y tablas db al desinstalar) puede ejecutar un comando drush para forzar la carga de traducciones: '' drush php-eval '' locale_system_update (array ('yourmodule_name ')); drush_backend_batch_process(); "' – gakhov
@corbacho: sigo tus pasos pero no funcionó para mí –