翻訳の自動インポートは、モジュールのインストール時に翻訳を自動的にインポートする機能です。モジュールのpoディレクトリにja.poファイルがあればインポートします。ただし、プロフィールディレクトリのtranslations/ja/modulesディレクトリ内に「モジュールディレクトリ名.po」ファイルがある場合は、そちらをインポートします。(これにより、プロフィール毎に独自の翻訳を提供できます。)
ネットワークインポートの設定は、「ローカライゼーション」画面の「文字列の更新」タブで行います。「翻訳用CVSレポジトリ」を以下に設定すると、ネットワークインポートが有効となります。
:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/drupal-jp
また、「更新間隔」を設定すれば、新たに追加された翻訳や修正された翻訳が一定間隔で自動的に反映されます。これにはcronの設定が必要です。
更に、翻訳文字列をカスタマイズしない場合は、「モデレーション」を無効とすればすべて自動で翻訳が更新されます。
コメント
update_localeについての質問
今さらなのですが、update_localeについての質問というか確認をさせてください。
とあるのですが、これは
モジュールのpoディレクトリに格納する場合は"ja.po"というファイル名にする必要があり、
プロフィールディレクトリのtranslations/ja/modulesディレクトリ内に格納する場合は"モジュールディレクトリ名.po"というファイル名にする必要がある、ということですよね?
ところで、locale_exで文字列を抽出すると、.po ファイルは、"モジュールディレクトリ名.ja.po"というファイル名で抽出されるわけですが、
抽出して作成した翻訳をupdate_locale を使ってインポートしたい場合は格納するディレクトリに応じてファイル名を上記のように変更する必要があり、
それが面倒な場合は通常のインポート方法(/admin/settings/locale/language/import)を取らなければならない、という理解でよいのでしょうか?
よろしくお願いします。
追記:Drupal 5 での話です。
PostgreSQLで利用する際の修正点
お世話になります。Drupalの日本語化モジュールを提供してくださり、
英語が苦手な当方としては非常に助かっております。
PostgreSQLで利用した際、update_localeを利用した際に、
以下のような修正が必要でした。
クエリ周りについてはPostgreSQL特有の問題かな、ともおもいましたが、
include_once が無いのはこちらの環境特有の問題でしょうか?
とりあえず、修正した部分について報告させていただきます。
# バグ報告をどこにすればよいのかわからなかったのでこちらに書いてしまったのですが、
# よろしかったでしょうか・・・?
環境:
HostOS : CentOS 5.1
Software : Apache 2.2.3 ; PHP 5.1.6 ; PostgreSQL 8.1.11 ; Drupal 5.7
差分:
# diff -c ./org/update_locale/ update_locale
diff -c ./org/update_locale/admin.inc update_locale/admin.inc
*** ./org/update_locale/admin.inc 2007-12-04 23:21:08.000000000 +0900
--- update_locale/admin.inc 2008-02-10 04:34:03.000000000 +0900
***************
*** 1,6 ****
<?php
// $Id: admin.inc,v 1.1.2.4 2007/03/31 19:02:51 z0rac Exp $
!
function _update_locale_admin_overview() {
include_once './includes/install.inc';
$langs = locale_supported_languages();
--- 1,6 ----
<?php
// $Id: admin.inc,v 1.1.2.4 2007/03/31 19:02:51 z0rac Exp $
! include_once 'modules/update_locale/import.inc';
function _update_locale_admin_overview() {
include_once './includes/install.inc';
$langs = locale_supported_languages();
***************
*** 68,74 ****
function _update_locale_admin_updatenow($form_id, $form_values) {
if ($form_values['op'] == $form_values['updatenow']) {
! update_locale_import_translations();
return;
}
return system_settings_form_submit($form_id, $form_values);
--- 68,74 ----
function _update_locale_admin_updatenow($form_id, $form_values) {
if ($form_values['op'] == $form_values['updatenow']) {
! _update_locale_import_translations(module_list(),TRUE);
return;
}
return system_settings_form_submit($form_id, $form_values);
***************
*** 155,161 ****
);
$form['strings']['status'] = array('#tree' => TRUE);
! $sql = "SELECT u.lid, u.translation new, t.translation old, s.source";
$sql .= " FROM {update_locale_string} u";
$sql .= " LEFT JOIN {locales_target} t USING (lid, locale)";
$sql .= " LEFT JOIN {locales_source} s USING (lid)";
--- 155,161 ----
);
$form['strings']['status'] = array('#tree' => TRUE);
! $sql = "SELECT u.lid, u.translation as new, t.translation as old, s.source";
$sql .= " FROM {update_locale_string} u";
$sql .= " LEFT JOIN {locales_target} t USING (lid, locale)";
$sql .= " LEFT JOIN {locales_source} s USING (lid)";
共通の下位ディレクトリー: ./org/update_locale/poとupdate_locale/po
diff -c ./org/update_locale/update_locale.install update_locale/update_locale.install
*** ./org/update_locale/update_locale.install 2007-12-04 23:21:10.000000000 +0900
--- update_locale/update_locale.install 2008-02-10 04:05:18.000000000 +0900
***************
*** 38,50 ****
translator text NOT NULL default '',
team text NOT NULL default '',
ptime int NOT NULL default '0',
! ftime int NOT NULL default '0'
status smallint NOT NULL default '0'
)");
db_query("CREATE TABLE {update_locale_string} (
lid int NOT NULL default '0',
! locale varchar(12) NOT NULL default ''
translation text NOT NULL,
status smallint NOT NULL default '0'
)");
--- 38,50 ----
translator text NOT NULL default '',
team text NOT NULL default '',
ptime int NOT NULL default '0',
! ftime int NOT NULL default '0',
status smallint NOT NULL default '0'
)");
db_query("CREATE TABLE {update_locale_string} (
lid int NOT NULL default '0',
! locale varchar(12) NOT NULL default '',
translation text NOT NULL,
status smallint NOT NULL default '0'
)");
以上、よろしくお願いいたします。
PostgreSQLは未確認(^^;;;
ktakagiさん。ご報告有難う御座います。
PostgreSQLは未確認なので、ご指摘ありがたいです。本当は確認しなきゃいけないんでしょうが、そこまで手が廻らないというか...私の不精です。スミマセン。
include_onceに関しては、1.4リリースの際のバグフィックス時に修正を忘れたものです。CVS上では修正しておりますが、6.x用と同期して修正版をリリースしようとして遅れてしまっています。
PostgreSQL対応は有り難く使わせて頂きます。
気になったのは別名の「AS」ですが、PostgreSQLでは必須なのですね。
うぁ、他のモジュールも見直す必要が...。
未確認了解しました(^^;
世の中の流れがMySQLですからね。
個人的な趣味でPostgreSQLを利用しています。
PostgreSQLでも簡単な修正で動きましたので助かりました。
本家にあったモジュールの中には完全にMySQLにしか対応していないものもありましたし・・・。
見直す必要があるパッケージをリストアップして頂ければ
動作確認程度でよろしければ私の方でも協力できますので
お気軽にお声がけ下さい。
有難う御座います。
CVS上のものは修正しました。6.x用も"AS"が抜けていましたので修正しました。
後日修正版のリリースを行います。