最近同事在为以前Drupal 6做的网站扩展多语言时发现一个问题,Drupal Core的内容找不到翻译,例如‹ previous next ›以及菜单项都没有翻译,经查是翻译更新列表(admin/build/translate/update)中本来应该是Drupal 6.28的版本不知道为什么错误识别为6.29了,因此找不到翻译信息。
这个识别错了版本的原因还没有找到(我估计是l10n模块把提示需要进行完全更新到的6.29的版本错误当成当前版本了),但可以手工在Drupal数据库中修改版本号:
UPDATE `table_name`.`l10n_update_project` SET `version` = '6.28' WHERE `l10n_update_project`.`name` = 'drupal'; UPDATE `table_name`.`l10n_update_project` SET `l10n_path` = 'http://ftp.drupal.org/files/translations/6.x/drupal/drupal-6.28.%language.po' WHERE `l10n_update_project`.`name` = 'drupal';
然后清空各种缓存:
TRUNCATE `cache`; TRUNCATE `cache_block`; TRUNCATE `cache_content`; TRUNCATE `cache_filter`; TRUNCATE `cache_form`; TRUNCATE `cache_l10n_update`; TRUNCATE `cache_menu`; TRUNCATE `cache_page`; TRUNCATE `cache_update`; TRUNCATE `cache_views`; TRUNCATE `cache_views_data`;
再在翻译更新列表页面中就可以看到是6.28了,点击“刷新信息”可以找到6.28的ftp翻译文件、点击“更新翻译”就可以了。更新完成后检查网站内容、菜单等都有了正常的翻译内容。
更新完成后,/admin/build/translate/update 中再次点击“刷新信息”,看到列表中“drupal 6.29 无信息”的错误提示,但跟着后面的po文件却是对的:“Afrikaans(南非荷兰语) drupal-6.28.af.po 星期四, 2013-12-12 10:28 最新的”,因此还是可以继续点击“更新翻译”。
估计遇到这个Bug的人很少,我们自己正好在做Drupal 6.28的多语言扩展才会遇到这个问题,就记录一下。后面会把6.28升级到6.29,那这个问题应该自然也没有了。
评论