diff --git a/openerp/addons/base/base_data.xml b/openerp/addons/base/base_data.xml index 2503adc5525..a0e66de8dba 100644 --- a/openerp/addons/base/base_data.xml +++ b/openerp/addons/base/base_data.xml @@ -1373,7 +1373,7 @@ INR - Rs + ₹ 0.01 4 diff --git a/openerp/addons/base/base_menu.xml b/openerp/addons/base/base_menu.xml index c79b86e6af4..c3ad5982f28 100644 --- a/openerp/addons/base/base_menu.xml +++ b/openerp/addons/base/base_menu.xml @@ -27,8 +27,10 @@ parent="base.menu_custom" name="Reporting" sequence="30" /> - + + + + diff --git a/openerp/addons/base/i18n/ja.po b/openerp/addons/base/i18n/ja.po index 31643b45dd5..a55fc048ca0 100644 --- a/openerp/addons/base/i18n/ja.po +++ b/openerp/addons/base/i18n/ja.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-server\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:44+0000\n" -"PO-Revision-Date: 2012-02-28 16:02+0000\n" +"PO-Revision-Date: 2012-03-25 04:24+0000\n" "Last-Translator: Akira Hiyama \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-10 04:49+0000\n" -"X-Generator: Launchpad (build 14914)\n" +"X-Launchpad-Export-Date: 2012-03-26 04:37+0000\n" +"X-Generator: Launchpad (build 15008)\n" #. module: base #: model:res.country,name:base.sh @@ -107,12 +107,12 @@ msgstr "ギャップなし" #. module: base #: selection:base.language.install,lang:0 msgid "Hungarian / Magyar" -msgstr "ハンガリー語 / マジャール語" +msgstr "ハンガリー語 / Magyar" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (PY) / Español (PY)" -msgstr "スペイン語(パラグアイ)" +msgstr "スペイン語(パラグアイ)/ Español (PY)" #. module: base #: model:ir.module.category,description:base.module_category_project_management @@ -178,7 +178,7 @@ msgstr "参照" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_be_invoice_bba msgid "Belgium - Structured Communication" -msgstr "ベルギー-構造化されたコミュニケーション" +msgstr "ベルギー-構造化された通信" #. module: base #: field:ir.actions.act_window,target:0 @@ -276,7 +276,7 @@ msgstr "会社組織" #. module: base #: selection:base.language.install,lang:0 msgid "Inuktitut / ᐃᓄᒃᑎᑐᑦ" -msgstr "イヌクウティトット語 / ……" +msgstr "イヌクウティトット語 / Inuktitut" #. module: base #: model:ir.actions.todo.category,name:base.category_sales_management_config @@ -574,7 +574,7 @@ msgstr "オリジナルビュー" #. module: base #: selection:base.language.install,lang:0 msgid "Bosnian / bosanski jezik" -msgstr "ボスニア語" +msgstr "ボスニア語 / bosanski jezik" #. module: base #: help:ir.actions.report.xml,attachment_use:0 @@ -591,7 +591,7 @@ msgstr "受注のプリントレイアウト" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (VE) / Español (VE)" -msgstr "スペイン語(ベネズエラ)" +msgstr "スペイン語(ベネズエラ)/ Español (VE)" #. module: base #: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice @@ -828,7 +828,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Swedish / svenska" -msgstr "スウェーデン語" +msgstr "スウェーデン語 / svenska" #. module: base #: model:res.country,name:base.rs @@ -864,7 +864,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Albanian / Shqip" -msgstr "アルバニア語" +msgstr "アルバニア語 / Shqip" #. module: base #: model:ir.ui.menu,name:base.menu_crm_config_opportunity @@ -970,7 +970,7 @@ msgstr "モジュール更新" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (UY) / Español (UY)" -msgstr "スペイン語(ウルグアイ)" +msgstr "スペイン語(ウルグアイ)/ Español (UY)" #. module: base #: field:res.partner,mobile:0 @@ -1203,12 +1203,12 @@ msgstr "文字" #. module: base #: selection:base.language.install,lang:0 msgid "Slovak / Slovenský jazyk" -msgstr "スロバキア語" +msgstr "スロバキア語 / Slovenský jazyk" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (AR) / Español (AR)" -msgstr "スペイン語(アルゼンチン)" +msgstr "スペイン語(アルゼンチン)/ Español (AR)" #. module: base #: model:res.country,name:base.ug @@ -1248,7 +1248,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (GT) / Español (GT)" -msgstr "スペイン語(グアテマラ)" +msgstr "スペイン語(グアテマラ)/ Español (GT)" #. module: base #: field:ir.mail_server,smtp_port:0 @@ -2242,12 +2242,12 @@ msgstr "ログ" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish / Español" -msgstr "スペイン語" +msgstr "スペイン語 / Español" #. module: base #: selection:base.language.install,lang:0 msgid "Korean (KP) / 한국어 (KP)" -msgstr "北朝鮮" +msgstr "韓国語(北朝鮮) / 한국어 (KP)" #. module: base #: view:base.module.update:0 @@ -2451,7 +2451,7 @@ msgstr "グループ" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (CL) / Español (CL)" -msgstr "スペイン語(チリ)" +msgstr "スペイン語(チリ) / Español (CL)" #. module: base #: model:res.country,name:base.bz @@ -2499,7 +2499,7 @@ msgstr "ホームページウィジット管理" #. module: base #: field:res.company,rml_header1:0 msgid "Report Header / Company Slogan" -msgstr "レポートヘッダ / 会社の標語" +msgstr "レポートヘッダー / 会社の標語" #. module: base #: model:res.country,name:base.pl @@ -2608,7 +2608,7 @@ msgstr "請求書" #. module: base #: selection:base.language.install,lang:0 msgid "Portugese (BR) / Português (BR)" -msgstr "ポルトガル語(ブラジル)" +msgstr "ポルトガル語(ブラジル)/ Português (BR)" #. module: base #: model:res.country,name:base.bb @@ -2761,7 +2761,7 @@ msgstr "Eメールアドレス" #. module: base #: selection:base.language.install,lang:0 msgid "French (BE) / Français (BE)" -msgstr "フランス語(ベルギー)" +msgstr "フランス語(ベルギー)/ Français (BE)" #. module: base #: view:ir.actions.server:0 @@ -3018,7 +3018,7 @@ msgstr "ノーフォーク島" #. module: base #: selection:base.language.install,lang:0 msgid "Korean (KR) / 한국어 (KR)" -msgstr "韓国" +msgstr "韓国語(韓国)/ 한국어 (KR)" #. module: base #: help:ir.model.fields,model:0 @@ -3483,7 +3483,7 @@ msgstr "翻訳者がエクスポートする際に、ファイルのエンコー #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (DO) / Español (DO)" -msgstr "スペイン語(ドミニカ共和国)" +msgstr "スペイン語(ドミニカ共和国)/ Español (DO)" #. module: base #: model:res.country,name:base.na @@ -3520,7 +3520,7 @@ msgstr "リード用Eメールゲートウェイ" #. module: base #: selection:base.language.install,lang:0 msgid "Finnish / Suomi" -msgstr "フィンランド語" +msgstr "フィンランド語 / Suomi" #. module: base #: field:ir.rule,perm_write:0 @@ -3535,7 +3535,7 @@ msgstr "プレフィックス" #. module: base #: selection:base.language.install,lang:0 msgid "German / Deutsch" -msgstr "ドイツ語" +msgstr "ドイツ語 / Deutsch" #. module: base #: view:ir.actions.server:0 @@ -3631,7 +3631,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Portugese / Português" -msgstr "ポルトガル語" +msgstr "ポルトガル語 / Português" #. module: base #: model:res.partner.title,name:base.res_partner_title_sir @@ -3666,7 +3666,7 @@ msgstr "インポートする(.zipファイル)モジュールパッケー #. module: base #: selection:base.language.install,lang:0 msgid "French / Français" -msgstr "フランス語" +msgstr "フランス語 / Français" #. module: base #: model:res.country,name:base.mt @@ -4018,7 +4018,7 @@ msgstr "ロシア連邦" #. module: base #: selection:base.language.install,lang:0 msgid "Urdu / اردو" -msgstr "ウルドゥー語" +msgstr "ウルドゥー語 / اردو" #. module: base #: field:res.company,name:0 @@ -4494,7 +4494,7 @@ msgid "" " " msgstr "" "\n" -"このモジュールは顧客 / サプライヤのクレームや不満の追跡をします。\n" +"このモジュールは顧客 / 仕入先のクレームや不満の追跡をします。\n" "=============================================================================" "===\n" "\n" @@ -4661,15 +4661,15 @@ msgid "" " " msgstr "" "\n" -"購入モジュールはサプライヤからの商品購入のために注文書を作成します。\n" +"仕入モジュールは仕入先から商品購入のために仕入注文を生成します。\n" "=============================================================================" "============\n" "\n" -"個々の注文書に応じたサプライヤの請求書が作成されます。\n" +"特定の仕入注文に応じた仕入先の請求が作成されます。\n" "\n" -"購入管理のダッシュボードは以下を含みます:\n" -" ・ 最新の注文書\n" -" ・ ドラフトの注文書\n" +"発注管理のダッシュボードは以下を含みます:\n" +" ・ 最新の仕入注文\n" +" ・ ドラフトの仕入注文\n" " ・ 月別の発注量と金額のグラフ\n" "\n" " " @@ -4709,7 +4709,7 @@ msgstr "検証" #. module: base #: view:res.company:0 msgid "Header/Footer" -msgstr "ヘッダ/フッタ" +msgstr "ヘッダー / フッター" #. module: base #: help:ir.mail_server,sequence:0 @@ -4826,7 +4826,7 @@ msgstr "ギリシャ-会計" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (HN) / Español (HN)" -msgstr "スペイン語(ホンジュラス)" +msgstr "スペイン語(ホンジュラス)/ Español (HN)" #. module: base #: view:ir.sequence.type:0 @@ -5001,7 +5001,7 @@ msgstr "マーケティングキャンペーンの管理を順番にお手伝い #. module: base #: selection:base.language.install,lang:0 msgid "Hebrew / עִבְרִי" -msgstr "ヘブライ語" +msgstr "ヘブライ語 / עִבְרִי" #. module: base #: model:res.country,name:base.bo @@ -5056,7 +5056,7 @@ msgstr "選択されたモジュールは更新あるいはインストールさ #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (PR) / Español (PR)" -msgstr "スペイン語(プエルトリコ)" +msgstr "スペイン語(プエルトリコ)/ Español (PR)" #. module: base #: model:res.country,name:base.gt @@ -5155,7 +5155,7 @@ msgstr "カスタムレポート" #. module: base #: selection:base.language.install,lang:0 msgid "Abkhazian / аҧсуа" -msgstr "アブハジア語" +msgstr "アブハジア語 / аҧсуа" #. module: base #: view:base.module.configuration:0 @@ -5404,7 +5404,7 @@ msgstr "インストール済み" #. module: base #: selection:base.language.install,lang:0 msgid "Ukrainian / українська" -msgstr "ウクライナ語" +msgstr "ウクライナ語 / українська" #. module: base #: model:res.country,name:base.sn @@ -5424,11 +5424,11 @@ msgid "" "order all your purchase orders.\n" msgstr "" "\n" -"このモジュールは購入要求を管理します。\n" +"このモジュールは仕入要求を管理します。\n" "===========================================================\n" "\n" -"注文書が作られるときに、あなたは関連する購入要求を救済する機会を持ちます。\n" -"新しいオブジェクトは再グループ化され容易に追跡を続けることができるので、全ての購入要求を注文することができます。\n" +"仕入注文が作られるときに、あなたは関連する要求を保存する機会を持ちます。\n" +"新しいオブジェクトは再グループ化され容易に追跡を続けることができるので、全ての仕入注文をすることができます。\n" #. module: base #: model:res.country,name:base.hu @@ -5473,7 +5473,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (PA) / Español (PA)" -msgstr "スペイン語(パナマ)" +msgstr "スペイン語(パナマ)/ Español (PA)" #. module: base #: view:res.currency:0 @@ -6171,7 +6171,7 @@ msgstr "" " 2) 第2ステップとしてCODAトランザクション行の’構造化通信’項目は内部あるいは外部への請求書\n" " (ベルギー構造化通信タイプはサポート済み)の参照項目に対して一致させられます。\n" " 3) 前ステップで一致するものが見つからなかった場合、トランザクションの相手方はOpenERPの顧客、\n" -" サプライヤレコード上に設定された銀行口座番号を使って特定されます。\n" +" 仕入先レコード上に設定された銀行口座番号を使って特定されます。\n" " 4) 上記のステップが成功しないケースは、さらに手作業による処理を行うために、CODAファイルインポート\n" " ウィザードの’認識できない移動のためのデフォルト口座’項目を使ってトランザクションは生成されます。\n" "\n" @@ -6431,7 +6431,7 @@ msgstr "モジュール品質の分析" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (BO) / Español (BO)" -msgstr "スペイン語(ボリビア)" +msgstr "スペイン語(ボリビア)/ Español (BO)" #. module: base #: model:ir.actions.act_window,name:base.ir_access_act @@ -6482,7 +6482,7 @@ msgstr "整数データ" #. module: base #: selection:base.language.install,lang:0 msgid "Gujarati / ગુજરાતી" -msgstr "グジャラート語" +msgstr "グジャラート語 / ગુજરાતી" #. module: base #: code:addons/base/module/module.py:297 @@ -6850,7 +6850,7 @@ msgstr "価格精度" #. module: base #: selection:base.language.install,lang:0 msgid "Latvian / latviešu valoda" -msgstr "ラトビア語" +msgstr "ラトビア語 / latviešu valoda" #. module: base #: view:res.config:0 @@ -7053,7 +7053,7 @@ msgstr "非表示" #. module: base #: selection:base.language.install,lang:0 msgid "Serbian (Latin) / srpski" -msgstr "セルビア語" +msgstr "セルビア語(ラテン)/ srpski" #. module: base #: model:res.country,name:base.il @@ -7314,7 +7314,7 @@ msgstr "総計後" #. module: base #: selection:base.language.install,lang:0 msgid "Lithuanian / Lietuvių kalba" -msgstr "リトアニア語" +msgstr "リトアニア語 / Lietuvių kalba" #. module: base #: help:ir.actions.server,record_id:0 @@ -7331,7 +7331,7 @@ msgstr "その目的モデルの関係項目のための技術的な名前" #. module: base #: selection:base.language.install,lang:0 msgid "Indonesian / Bahasa Indonesia" -msgstr "インドネシア語" +msgstr "インドネシア語 / Bahasa Indonesia" #. module: base #: help:base.language.import,overwrite:0 @@ -7399,7 +7399,7 @@ msgstr "監査" #. module: base #: help:ir.values,company_id:0 msgid "If set, action binding only applies for this company" -msgstr "もしセットすると、アクションバインディングはこの会社のみに適用されます。" +msgstr "もしセットした場合、アクション結合はこの会社のみに適用されます。" #. module: base #: model:res.country,name:base.lc @@ -7795,7 +7795,7 @@ msgstr "整数" #. module: base #: selection:base.language.install,lang:0 msgid "Hindi / हिंदी" -msgstr "ヒンディー語" +msgstr "ヒンディー語 / हिंदी" #. module: base #: help:res.users,company_id:0 @@ -7924,7 +7924,7 @@ msgstr "閉じる" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (MX) / Español (MX)" -msgstr "スペイン語(メキシコ)" +msgstr "スペイン語(メキシコ)/ Español (MX)" #. module: base #: code:addons/base/publisher_warranty/publisher_warranty.py:145 @@ -7950,7 +7950,7 @@ msgstr "この順番の次の番号" #. module: base #: model:res.partner.category,name:base.res_partner_category_11 msgid "Textile Suppliers" -msgstr "繊維供給元" +msgstr "布地仕入先" #. module: base #: selection:ir.actions.url,target:0 @@ -8170,7 +8170,7 @@ msgstr "項目が定義されているモジュールのリスト" #. module: base #: selection:base.language.install,lang:0 msgid "Chinese (CN) / 简体中文" -msgstr "中国語(简体中文)" +msgstr "中国語 / 简体中文" #. module: base #: field:res.bank,street:0 @@ -8310,11 +8310,14 @@ msgid "" "interface, which has less features but is easier to use. You can switch to " "the other interface from the User/Preferences menu at any time." msgstr "" +"OpenERPは簡易 / " +"拡張の2種類のユーザインタフェースを提供します。最初にOpenERPを使う場合は、機能は少ないながらも、使い易い簡易なユーザインタフェースを選択することを" +"強くお勧めします。なお、いつでも設定メニューから拡張インタフェースに変更できます。" #. module: base #: model:res.country,name:base.cc msgid "Cocos (Keeling) Islands" -msgstr "" +msgstr "ココス諸島" #. module: base #: selection:base.language.install,state:0 @@ -8326,22 +8329,22 @@ msgstr "" #. module: base #: view:res.lang:0 msgid "11. %U or %W ==> 48 (49th week)" -msgstr "" +msgstr "11. %U or %W ==> 48(49番目の週)" #. module: base #: model:ir.model,name:base.model_res_partner_bank_type_field msgid "Bank type fields" -msgstr "" +msgstr "銀行タイプ項目" #. module: base #: selection:base.language.install,lang:0 msgid "Dutch / Nederlands" -msgstr "" +msgstr "オランダ語 / Nederlands" #. module: base #: selection:res.company,paper_format:0 msgid "US Letter" -msgstr "" +msgstr "US レター" #. module: base #: model:ir.module.module,description:base.module_stock_location @@ -8433,6 +8436,63 @@ msgid "" "from Gate A\n" " " msgstr "" +"\n" +"このモジュールはプッシュ / プル倉庫フローを効果的に実行する倉庫アプリケーションを補います。\n" +"=============================================================================" +"===============================\n" +"\n" +"典型的な利用例:\n" +" * 製品製造チェーンの管理\n" +" * 製品ごとのデフォルトロケーションの管理\n" +" * 以下のようなビジネス要求による倉庫の中の経路の定義:\n" +" - 品質管理\n" +" - 販売サービスの後\n" +" - 仕入先返品\n" +"\n" +" * レンタル製品の自動返品を生成することでレンタル管理を助けます。\n" +"\n" +"ひとたびこのモジュールがインストールされたら、製品フォームに追加タブが現れます。\n" +"そこで、プッシュとプルのフローの仕様を加えることができます。\n" +"CPU1製品のプッシュとプルのデモデータ:\n" +"\n" +"プッシュフロー\n" +"----------\n" +"プッシュフローは、一定の製品が常に必要に応じて他の場所に対応して動くように到着する時、\n" +"オプションとして一定の遅延がある時に役立ちます。\n" +"オリジナルの倉庫アプリケーションは既にそれ自身にプッシュフローの仕様をサポートしています。\n" +"しかし、これは製品ごとに改良されません。\n" +"\n" +"プッシュプローの仕様は、どの場所がどの場所と何のパラメータでつながれているかを示します。\n" +"製品の所定の量が供給元の場所で動きがあるや否や結び付けられた動作がフロー定義\n" +"(目的地の場所、遅延、移動の種類、ジャーナル他)でセットされたパラメータにしたがって\n" +"自動的に予測されます。\n" +"この新しい動きはパラメータにしたがって自動的に実行されるか、手動確認を要求します。\n" +"\n" +"プルフロー\n" +"----------\n" +"プルフローはプッシュフローとは少し異なっています。これは製品の動きの処理には関係せず、\n" +"むしろ調達した注文の処理に関係します。直接の商品ではなくニーズに依ります。\n" +"プルフローの古典的な例は、仕入に責任を持つ親会社を持つアウトレット会社です。\n" +"\n" +" [ 顧客 ] <- A - [ アウトレット ] <- B - [ 親会社 ] <~ C ~ [ 仕入先 ]\n" +"\n" +"新しい調達注文(A:注文の確認がくる例)がアウトレットに到着すると、それは親会社から要求されたもう一つの調達注文に変換されます(B:プルフローのタイプは'" +"move')。親会社により調達注文Bが処理される時、そしてその製品が在庫切れの時、それは仕入先からの仕入注文(C:プルフローのタイプは仕入)に変換されます" +"。結果として調達注文、ニーズは顧客と仕入先の間の全てにプッシュされます。\n" +"\n" +"技術的には、プルフローは調達注文と別に処理することを許します。製品に対しての考慮に依存するのみならず、その製品のニーズを持つ場所(即ち調達注文の目的地)に" +"依存します。\n" +"\n" +"使用例\n" +"--------\n" +"\n" +"以下のデモデータを使います:\n" +" CPU1:ショップ1からいくらかのCPU1を売り、スケジューラを走らせます。\n" +" - 倉庫:配達注文,ショップ1: 受付\n" +" CPU3:\n" +" - 商品を受け取る時、それは品質管理場所に行き、棚2に保管されます。\n" +" - 顧客に配達する時:ピックリスト -> 梱包 -> GateAから配達注文\n" +" " #. module: base #: model:ir.module.module,description:base.module_marketing @@ -8444,21 +8504,27 @@ msgid "" "Contains the installer for marketing-related modules.\n" " " msgstr "" +"\n" +"マーケティングメニュー\n" +"===================\n" +"\n" +"マーケティング関連のモジュールのインストーラを含んでいます。\n" +" " #. module: base #: model:ir.module.category,name:base.module_category_knowledge_management msgid "Knowledge Management" -msgstr "" +msgstr "知識管理" #. module: base #: model:ir.actions.act_window,name:base.bank_account_update msgid "Company Bank Accounts" -msgstr "" +msgstr "顧客銀行口座" #. module: base #: help:ir.mail_server,smtp_pass:0 msgid "Optional password for SMTP authentication" -msgstr "" +msgstr "SMTP認証のための任意のパスワード" #. module: base #: model:ir.module.module,description:base.module_project_mrp @@ -8491,6 +8557,25 @@ msgid "" "task is completed.\n" "\n" msgstr "" +"\n" +"自動的に調達ラインからプロジェクトタスクの生成します。\n" +"==========================================================\n" +"\n" +"対応する製品が以下の特徴を満たす場合、このモジュールはそれぞれの調達注文ライン\n" +"(例えば販売注文ライン)のための新しいタスクを作成します。\n" +"\n" +" ・ タイプ = サービス\n" +" ・ 調達手法(注文実現) = MTO(受注生産)\n" +" ・ 供給 / 調達手法 = 産物\n" +"\n" +"もし先頭のプロジェクトが製品フォーム(調達タブ)で定義されているなら、新しいタスクは\n" +"その特定のプロジェクトの中に作られます。\n" +"それ以外の場合は、新しいタスクはどんなプロジェクトにも属さず、後で手作業でプロジェクトに\n" +"追加されるかも知れません。\n" +"\n" +"プロジェクトのタスクが完了するか、中止される時、調達ラインに対応するワークフローはそれに応じて更新されます。\n" +"例えば、もしこの調達が受注ラインに対応するなら、仕事が完了する時に受注ラインは配達されたと考えられます。\n" +"\n" #. module: base #: code:addons/base/res/res_config.py:348 @@ -8500,6 +8585,9 @@ msgid "" "\n" "This addon is already installed on your system" msgstr "" +"\n" +"\n" +"このアドオンは既にシステムにインストール済みです。" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -8508,11 +8596,14 @@ msgid "" " Module for the Check writing and check printing \n" " " msgstr "" +"\n" +" チェックの作成と印刷のためのモジュール \n" +" " #. module: base #: model:res.partner.bank.type,name:base.bank_normal msgid "Normal Bank Account" -msgstr "" +msgstr "通常の銀行口座" #. module: base #: view:ir.actions.wizard:0 @@ -8542,6 +8633,21 @@ msgid "" "\n" " " msgstr "" +"\n" +"このモジュールは受信したEメールを元に自動的にプロジェクトタスクを生成します。\n" +"===========================================================================\n" +"\n" +"所定のメールボックスに到着した新しいEメールを元にタスクの生成を許します。\n" +"同様にCRMアプリケーションがリード / オポチュニティを持つもの。\n" +"メールボックス統合の設定のために2つの共通の選択肢があります:\n" +"\n" +" ・ fetchmailモジュールをインストールし、新しいメールボックスを設定し、それから\n" +"  受信EメールのためにProject Tasksをターゲットとして選んで下さい。\n" +" ・ mail gatewayスクリプトが提供したmailモジュールに基づいて、メールサーバを手作業で設定して、\n" +"  そしてproject.taskモデルにそれを接続して下さい。\n" +"\n" +"\n" +" " #. module: base #: model:ir.module.module,description:base.module_membership @@ -8561,6 +8667,18 @@ msgid "" "invoice and send propositions for membership renewal.\n" " " msgstr "" +"\n" +"このモジュールはメンバーシップの管理のために、全ての管理操作を許可します。\n" +"=========================================================================\n" +"\n" +"以下の異なった種類の会員をサポートします:\n" +"・ 無料会員\n" +"・ 関連会員(例:全ての子会社のメンバーシップのためのグループ加入)\n" +"・ 有料会員\n" +"・ 特別な会員価格など\n" +"\n" +"メンバーシップ更新のための請求書を作り、条件書を送付するために、これは販売と会計と統合されます。\n" +" " #. module: base #: model:ir.module.module,description:base.module_hr_attendance @@ -8573,46 +8691,52 @@ msgid "" "actions(Sign in/Sign out) performed by them.\n" " " msgstr "" +"\n" +"このモジュールは従業員の出勤管理を目指しています。\n" +"==================================================\n" +"\n" +"従業員自身が行ったサインイン / サインアウトの行動をベースにして、従業員の出勤の根拠を保持します。\n" +" " #. module: base #: field:ir.module.module,maintainer:0 msgid "Maintainer" -msgstr "" +msgstr "保守担当者" #. module: base #: field:ir.sequence,suffix:0 msgid "Suffix" -msgstr "" +msgstr "サフィックス" #. module: base #: model:res.country,name:base.mo msgid "Macau" -msgstr "" +msgstr "マカオ" #. module: base #: model:ir.actions.report.xml,name:base.res_partner_address_report msgid "Labels" -msgstr "" +msgstr "ラベル" #. module: base #: field:partner.massmail.wizard,email_from:0 msgid "Sender's email" -msgstr "" +msgstr "送信者のEメール" #. module: base #: field:ir.default,field_name:0 msgid "Object Field" -msgstr "" +msgstr "オブジェクト項目" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (PE) / Español (PE)" -msgstr "" +msgstr "スペイン語(ペルー)/ Español (PE)" #. module: base #: selection:base.language.install,lang:0 msgid "French (CH) / Français (CH)" -msgstr "" +msgstr "フランス語(スイス)/ Français (CH)" #. module: base #: help:ir.actions.server,subject:0 @@ -8621,6 +8745,8 @@ msgid "" "the same values as those available in the condition field, e.g. `Hello [[ " "object.partner_id.name ]]`" msgstr "" +"電子メールの件名には条件項目で使用可能な同じ値を元にした二重括弧で囲まれた表現、例えば、‘こんにちは[[ object.partner_id.name " +"]]’を含むことができます。" #. module: base #: model:ir.module.module,description:base.module_account_sequence @@ -8639,11 +8765,24 @@ msgid "" " * Number Padding\n" " " msgstr "" +"\n" +"このモジュールは会計項目のために内部の連続番号を維持管理します。\n" +"======================================================================\n" +"\n" +"あなたは会計の順序が維持されるように設定することができます。\n" +"\n" +"以下の順序の属性をカスタマイズできます:\n" +" ・ プレフィックス(接頭辞)\n" +" ・ サフィックス(接尾辞)\n" +" ・ 次の番号\n" +" ・ 増分番号\n" +" ・ 番号埋め文字\n" +" " #. module: base #: model:res.country,name:base.to msgid "Tonga" -msgstr "" +msgstr "トンガ" #. module: base #: help:ir.model.fields,serialization_field_id:0 @@ -8652,35 +8791,37 @@ msgid "" "serialization field, instead of having its own database column. This cannot " "be changed after creation." msgstr "" +"もしセットする場合、この項目は自身のデータベースのカラムの代わりに、シリアライズされた項目の疎な構造の中に保存されます。これを作成した後で、変更することは" +"できません。" #. module: base #: view:res.partner.bank:0 msgid "Bank accounts belonging to one of your companies" -msgstr "" +msgstr "銀行口座はあなたの会社の一つに属します。" #. module: base #: help:res.users,action_id:0 msgid "" "If specified, this action will be opened at logon for this user, in addition " "to the standard menu." -msgstr "" +msgstr "もし指定された場合,このアクションは標準メニューに追加され、このユーザに対してログイン時に開かれます。" #. module: base #: selection:ir.module.module,complexity:0 msgid "Easy" -msgstr "" +msgstr "易しい" #. module: base #: view:ir.values:0 msgid "Client Actions" -msgstr "" +msgstr "顧客アクション" #. module: base #: help:ir.actions.server,trigger_obj_id:0 msgid "" "The field on the current object that links to the target object record (must " "be a many2one, or an integer field with the record ID)" -msgstr "" +msgstr "現在のオブジェクトのその項目は、目的のオブジェクトレコード(レコードIDを持ち多対1の関係か、または整数項目である)にリンクします。" #. module: base #: code:addons/base/module/module.py:423 @@ -8689,18 +8830,20 @@ msgid "" "You try to upgrade a module that depends on the module: %s.\n" "But this module is not available in your system." msgstr "" +"あなたは次のモジュールに依存するモジュールをアップグレードしようとしています: %s.\n" +"しかし、そのモジュールはあなたのシステムでは使用できません。" #. module: base #: field:workflow.transition,act_to:0 msgid "Destination Activity" -msgstr "" +msgstr "目的地のアクティビティ" #. module: base #: help:res.currency,position:0 msgid "" "Determines where the currency symbol should be placed after or before the " "amount." -msgstr "" +msgstr "通貨記号が金額の前後、どちらに置かれるべきなのかを決定します。" #. module: base #: model:ir.model,name:base.model_base_update_translations @@ -8710,7 +8853,7 @@ msgstr "" #. module: base #: field:res.partner.category,parent_id:0 msgid "Parent Category" -msgstr "" +msgstr "親分類" #. module: base #: selection:ir.property,type:0 @@ -8721,12 +8864,12 @@ msgstr "" #: selection:res.partner.address,type:0 #: selection:res.partner.title,domain:0 msgid "Contact" -msgstr "" +msgstr "コンタクト" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_at msgid "Austria - Accounting" -msgstr "" +msgstr "オーストラリア-会計" #. module: base #: model:ir.model,name:base.model_ir_ui_menu @@ -8737,39 +8880,39 @@ msgstr "" #: model:ir.module.category,name:base.module_category_project_management #: model:ir.module.module,shortdesc:base.module_project msgid "Project Management" -msgstr "" +msgstr "プロジェクト管理" #. module: base #: model:res.country,name:base.us msgid "United States" -msgstr "" +msgstr "アメリカ合衆国" #. module: base #: model:ir.module.module,shortdesc:base.module_crm_fundraising msgid "Fundraising" -msgstr "" +msgstr "募金" #. module: base #: view:ir.module.module:0 msgid "Cancel Uninstall" -msgstr "" +msgstr "アンインストールのキャンセル" #. module: base #: view:res.bank:0 #: view:res.partner:0 #: view:res.partner.address:0 msgid "Communication" -msgstr "" +msgstr "通信" #. module: base #: model:ir.module.module,shortdesc:base.module_analytic msgid "Analytic Accounting" -msgstr "" +msgstr "分析会計" #. module: base #: view:ir.actions.report.xml:0 msgid "RML Report" -msgstr "" +msgstr "RMLレポート" #. module: base #: model:ir.model,name:base.model_ir_server_object_lines @@ -8779,23 +8922,23 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_be msgid "Belgium - Accounting" -msgstr "" +msgstr "ベルギー-会計" #. module: base #: code:addons/base/module/module.py:622 #, python-format msgid "Module %s: Invalid Quality Certificate" -msgstr "" +msgstr "モジュール %s: 無効な品質証明書" #. module: base #: model:res.country,name:base.kw msgid "Kuwait" -msgstr "" +msgstr "クウェート" #. module: base #: field:workflow.workitem,inst_id:0 msgid "Instance" -msgstr "" +msgstr "インスタンス" #. module: base #: help:ir.actions.report.xml,attachment:0 @@ -8804,23 +8947,25 @@ msgid "" "Keep empty to not save the printed reports. You can use a python expression " "with the object and time variables." msgstr "" +"これは印刷結果を保存するために使われる添付ファイルのファイル名です。印刷レポートを保存しない場合は、空の状態にして下さい。オブジェクトと時間変数にはpyt" +"hon表現を使うことができます。" #. module: base #: sql_constraint:ir.model.data:0 msgid "" "You cannot have multiple records with the same external ID in the same " "module!" -msgstr "" +msgstr "同じモジュールの中に、同じ外部IDで複数のレコードを持つことはできません。" #. module: base #: selection:ir.property,type:0 msgid "Many2One" -msgstr "" +msgstr "多対1" #. module: base #: model:res.country,name:base.ng msgid "Nigeria" -msgstr "" +msgstr "ナイジェリア" #. module: base #: model:ir.module.module,description:base.module_crm_caldav @@ -8831,41 +8976,46 @@ msgid "" "\n" " * Share meeting with other calendar clients like sunbird\n" msgstr "" +"\n" +"ミーティングにおけるCaldavの機能\n" +"===========================\n" +"\n" +" ・ Sunbirdなど他のカレンダークライアントとミーティング情報を共有できます。\n" #. module: base #: model:ir.module.module,shortdesc:base.module_base_iban msgid "IBAN Bank Accounts" -msgstr "" +msgstr "IBAN銀行口座" #. module: base #: field:res.company,user_ids:0 msgid "Accepted Users" -msgstr "" +msgstr "受け入れられたユーザ" #. module: base #: field:ir.ui.menu,web_icon_data:0 msgid "Web Icon Image" -msgstr "" +msgstr "Webアイコンイメージ" #. module: base #: field:ir.actions.server,wkf_model_id:0 msgid "Target Object" -msgstr "" +msgstr "目的のオブジェクト" #. module: base #: selection:ir.model.fields,select_level:0 msgid "Always Searchable" -msgstr "" +msgstr "常時検索可能" #. module: base #: model:res.country,name:base.hk msgid "Hong Kong" -msgstr "" +msgstr "香港" #. module: base #: field:ir.default,ref_id:0 msgid "ID Ref." -msgstr "" +msgstr "ID参照" #. module: base #: model:ir.actions.act_window,help:base.action_partner_address_form @@ -8878,23 +9028,26 @@ msgid "" "installed the CRM, with the history tab, you can track all the interactions " "with a partner such as opportunities, emails, or sales orders issued." msgstr "" +"顧客(システムの他のエリアではパートナと呼ばれる)は、あなたが彼らが将来顧客であるのか、仕入先であるのかどうか会社の住所録の管理するのを手助けします。パー" +"トナのフォームは、会社のアドレスから、価格リストなどの多くの情報、パートナの連絡先まで相互に必要なすべての情報を追跡し、記録することができます。\r\n" +"CRMをインストールした場合は、履歴タブでパートナと共にオポチュニティ、電子メール、発行された受注など全ての対話を追跡することができます。" #. module: base #: model:res.country,name:base.ph msgid "Philippines" -msgstr "" +msgstr "フィリピン" #. module: base #: model:res.country,name:base.ma msgid "Morocco" -msgstr "" +msgstr "モロッコ" #. module: base #: help:ir.values,model_id:0 msgid "" "Model to which this entry applies - helper field for setting a model, will " "automatically set the correct model name" -msgstr "" +msgstr "このエントリーが適用されるモデル-モデルを設定するための補助項目は自動的に正しいモデル名をセットします。" #. module: base #: view:res.lang:0 @@ -8904,12 +9057,12 @@ msgstr "" #. module: base #: view:res.request.history:0 msgid "Request History" -msgstr "" +msgstr "要望履歴" #. module: base #: help:ir.rule,global:0 msgid "If no group is specified the rule is global and applied to everyone" -msgstr "" +msgstr "グループが定義されていない場合は、そのルールはグローバルであり、全ての人に適用されます。" #. module: base #: model:res.country,name:base.td @@ -8921,48 +9074,48 @@ msgstr "チャド" msgid "" "The priority of the job, as an integer: 0 means higher priority, 10 means " "lower priority." -msgstr "" +msgstr "ジョブの優先度の整数値:0は高い優先度,10は低い優先度を意味します。" #. module: base #: model:ir.model,name:base.model_workflow_transition msgid "workflow.transition" -msgstr "" +msgstr "ワークフロー.遷移" #. module: base #: view:res.lang:0 msgid "%a - Abbreviated weekday name." -msgstr "" +msgstr "%a - 省略形の曜日名" #. module: base #: view:ir.ui.menu:0 msgid "Submenus" -msgstr "" +msgstr "サブメニュー" #. module: base #: model:res.groups,name:base.group_extended msgid "Extended View" -msgstr "" +msgstr "拡張ビュー" #. module: base #: model:res.country,name:base.pf msgid "Polynesia (French)" -msgstr "" +msgstr "ポリネシア(フランス語)" #. module: base #: model:res.country,name:base.dm msgid "Dominica" -msgstr "" +msgstr "ドミニカ" #. module: base #: model:ir.module.module,shortdesc:base.module_base_module_record msgid "Record and Create Modules" -msgstr "" +msgstr "モジュールの記録と作成" #. module: base #: model:ir.model,name:base.model_partner_sms_send #: view:partner.sms.send:0 msgid "Send SMS" -msgstr "" +msgstr "SMS を送信" #. module: base #: model:ir.module.module,description:base.module_hr_holidays @@ -9000,63 +9153,88 @@ msgid "" " Administration / Users / Users\n" " for example, you maybe will do it for the user 'admin'.\n" msgstr "" +"\n" +"このモジュールは休暇と休暇申請の管理をします。\n" +"=============================================================\n" +"\n" +"次を含む人的資源管理のダッシュボードが実装されています:\n" +" ・ 休暇\n" +"\n" +"注意事項:\n" +" ・ " +"内部の予定表(CRMモジュールの使用)との同期が可能です。休暇申請が許可される時に自動的にそれを事実化するためには休暇ステータスをそこに結びつける必要があ" +"ります。次の場所でその情報と色の好みを設定することができます。\n" +"   Human Resources/Configuration/Holidays/Leave Type\n" +" ・ 従業員は利用可能な合計の休暇タイプを増やす(もし要求が受け入れられたら)新しい割り当てによってより多くの休暇を求めることができます。\n" +" ・ 従業員の休暇を印刷する2つの方法があります:\n" +"   ・ 最初の方法は、部門の従業員を選択し、以下にあるメニューをクリックする。\n" +"     Human Resources/Reporting/Holidays/Leaves by Department\n" +"   ・ 二番目の方法は、特定の従業員の休暇レポートを選択する。以下に行き、\n" +"     Human Resources/Human Resources/Employees\n" +"     それから好みのものを選択して印刷アイコンをクリックし、従業員の休暇を選択する。\n" +"\n" +" ・ " +"このウィザードでは休暇の確認と検証、または休暇の検証の何れかの印刷ができます。このステータスはグループHRのユーザが設定すル必要があります。以下のユーザデ" +"ータからセキュリティタブの中の機能を定義します。\n" +"   Administration / Users / Users\n" +"   例えば、adminユーザがそれを実行できます。\n" #. module: base #: field:ir.actions.report.xml,report_xsl:0 msgid "XSL path" -msgstr "" +msgstr "XSLパス" #. module: base #: model:ir.module.module,shortdesc:base.module_account_invoice_layout msgid "Invoice Layouts" -msgstr "" +msgstr "請求書のレイアウト" #. module: base #: model:ir.module.module,shortdesc:base.module_stock_location msgid "Advanced Routes" -msgstr "" +msgstr "高度な経路" #. module: base #: model:ir.module.module,shortdesc:base.module_pad msgid "Collaborative Pads" -msgstr "" +msgstr "共同作業パッド" #. module: base #: model:ir.module.module,shortdesc:base.module_account_anglo_saxon msgid "Anglo-Saxon Accounting" -msgstr "" +msgstr "アングロサクソン会計" #. module: base #: model:res.country,name:base.np msgid "Nepal" -msgstr "" +msgstr "ネパール" #. module: base #: help:res.groups,implied_ids:0 msgid "Users of this group automatically inherit those groups" -msgstr "" +msgstr "グループのユーザは自動的にグループを継承します。" #. module: base #: model:ir.module.module,shortdesc:base.module_hr_attendance msgid "Attendances" -msgstr "" +msgstr "参加" #. module: base #: field:ir.module.category,visible:0 msgid "Visible" -msgstr "" +msgstr "表示" #. module: base #: model:ir.actions.act_window,name:base.action_ui_view_custom #: model:ir.ui.menu,name:base.menu_action_ui_view_custom #: view:ir.ui.view.custom:0 msgid "Customized Views" -msgstr "" +msgstr "カスタマイズビュー" #. module: base #: view:partner.sms.send:0 msgid "Bulk SMS send" -msgstr "" +msgstr "一括SMS送信" #. module: base #: model:ir.module.module,description:base.module_wiki_quality_manual @@ -9069,35 +9247,41 @@ msgid "" "for Wiki Quality Manual.\n" " " msgstr "" +"\n" +"品質マニュアルのテンプレート\n" +"========================\n" +"\n" +"Wikiの品質マニュアルのためにデモデータ、それによるWikiグループとWikiページの作成を提供します。\n" +" " #. module: base #: model:ir.actions.act_window,name:base.act_values_form_action #: model:ir.ui.menu,name:base.menu_values_form_action #: view:ir.values:0 msgid "Action Bindings" -msgstr "" +msgstr "アクション結合" #. module: base #: view:ir.sequence:0 msgid "Seconde: %(sec)s" -msgstr "" +msgstr "秒: %(sec)s" #. module: base #: model:ir.ui.menu,name:base.menu_view_base_module_update msgid "Update Modules List" -msgstr "" +msgstr "モジュールリストの更新" #. module: base #: code:addons/base/module/module.py:295 #, python-format msgid "" "Unable to upgrade module \"%s\" because an external dependency is not met: %s" -msgstr "" +msgstr "モジュール %s の外部依存関係が満たされていないため更新できません: %s" #. module: base #: model:ir.module.module,shortdesc:base.module_account msgid "eInvoicing" -msgstr "" +msgstr "電子請求" #. module: base #: model:ir.module.module,description:base.module_association @@ -9110,38 +9294,44 @@ msgid "" "memberships, membership products (schemes), etc.\n" " " msgstr "" +"\n" +"このモジュールは協会に関係するモジュールを構成します。\n" +"==============================================================\n" +"\n" +"イベント、登録、メンバーシップ、メンバーシップ製品(計画)などを管理するために協会のためのプロファイルをインストールします。\n" +" " #. module: base #: code:addons/orm.py:2693 #, python-format msgid "The value \"%s\" for the field \"%s.%s\" is not in the selection" -msgstr "" +msgstr "その値 %s は項目%s.%s の上では選択できません。" #. module: base #: view:ir.actions.configuration.wizard:0 msgid "Continue" -msgstr "" +msgstr "続き" #. module: base #: selection:base.language.install,lang:0 msgid "Thai / ภาษาไทย" -msgstr "" +msgstr "タイ語 / ภาษาไทย" #. module: base #: code:addons/orm.py:343 #, python-format msgid "Object %s does not exists" -msgstr "" +msgstr "オブジェクト %s は存在しません。" #. module: base #: view:res.lang:0 msgid "%j - Day of the year [001,366]." -msgstr "" +msgstr "%j - 年の通算日 [001,366]." #. module: base #: selection:base.language.install,lang:0 msgid "Slovenian / slovenščina" -msgstr "" +msgstr "スロベニア語 / slovenščina" #. module: base #: model:ir.module.module,shortdesc:base.module_wiki @@ -9160,16 +9350,24 @@ msgid "" "German accounting chart and localization.\n" " " msgstr "" +"\n" +"Dieses Modul beinhaltet einen deutschen Kontenrahmen basierend auf dem " +"SKR03.\n" +"=============================================================================" +"=\n" +"\n" +"ドイツの会計表とローカル化\n" +" " #. module: base #: field:ir.actions.report.xml,attachment_use:0 msgid "Reload from Attachment" -msgstr "" +msgstr "添付ファイルからリロード" #. module: base #: view:ir.module.module:0 msgid "Hide technical modules" -msgstr "" +msgstr "専門的なモジュールの非表示" #. module: base #: model:ir.module.module,description:base.module_procurement @@ -9191,38 +9389,50 @@ msgid "" "depending on the product's configuration.\n" " " msgstr "" +"\n" +"このモジュールはコンピュータ調達のためのモジュールです。\n" +"==============================================\n" +"\n" +"MRPプロセスでは、製造注文、仕入注文、在庫割り当てなどを起動されるために調達指示が作成されます。\n" +"調達注文はシステムにより自動的に生成され、そして問題がある場合を除きユーザには通知されません。\n" +"問題は生じた場合には、システムは手作業で解決されるべき阻害要因について(組み立てBoM(部品表)の欠如、仕入先の欠落の類い)、ユーザに知らせるために幾つか" +"の調達例外を発生させます。\n" +"\n" +"調達指示は補充を必要とする製品の自動調達のための提案をスケジュールします。この調達は仕入先の仕入注文書かまたは製品の構成に応じてた製造注文のタスクを開始し" +"ます。\n" +" " #. module: base #: model:res.country,name:base.mx msgid "Mexico" -msgstr "" +msgstr "メキシコ" #. module: base #: code:addons/base/ir/ir_mail_server.py:414 #, python-format msgid "Missing SMTP Server" -msgstr "" +msgstr "SMTPサーバが見つかりません。" #. module: base #: field:ir.attachment,name:0 msgid "Attachment Name" -msgstr "" +msgstr "添付ファイル名" #. module: base #: field:base.language.export,data:0 #: field:base.language.import,data:0 msgid "File" -msgstr "" +msgstr "ファイル" #. module: base #: model:ir.actions.act_window,name:base.action_view_base_module_upgrade_install msgid "Module Upgrade Install" -msgstr "" +msgstr "モジュールの更新インストール" #. module: base #: model:ir.module.module,shortdesc:base.module_email_template msgid "E-Mail Templates" -msgstr "" +msgstr "Eメールテンプレート" #. module: base #: model:ir.model,name:base.model_ir_actions_configuration_wizard @@ -9290,6 +9500,56 @@ msgid "" "\n" " " msgstr "" +"\n" +"このモジュールはHTML+CSSでデザインされたレポートをサポートするためにWebKitライブラリ(wkhtmltopdf)に基づいた新しいレポートエンジ" +"ンを加えます。\n" +"\n" +"=============================================================================" +"========================================\n" +"\n" +"モジュール構造といくらかのコードはreport_openofficeモジュールに触発されました。\n" +"\n" +"このモジュールは以下をサポートします:\n" +" ・ HTMLレポート定義\n" +" ・ マルチヘッダーサポート\n" +" ・ マルチロゴ\n" +" ・ 複数会社サポート\n" +" ・ HTMLとCSS-3サポート(制約は実際のWebKitのバージョンによる)\n" +" ・ JavaScriptサポート\n" +" ・ 生のHTMLデバッガ\n" +" ・ ブック印刷機能\n" +" ・ 余白の定義\n" +" ・ 用紙サイズ定義\n" +" ・ その他\n" +"\n" +"複数のヘッダーとロゴは会社ごとに定義することができます。\n" +"CSSスタイル、ヘッダーとフッターの本体は会社ごとに定義されます。\n" +"\n" +"サンプルレポートはwebkit_report_sampleモジュールと次のビデオを参照下さい:\n" +"  http://files.me.com/nbessi/06n92k.mov\n" +"\n" +"インストール要件\n" +"-----------------------------\n" +"このモジュールはPDFとしてHTMLドキュメントをレンダリングするために、wkthtmltopdfライブラリを必要とします。\n" +"0.9.9以降のバージョンが必要です。Linux、Mac OS X(i386)、Windows(32bits)は以下から。\n" +"http://code.google.com/p/wkhtmltopdf/\n" +"\n" +"OpenERPサーバにライブラリをインストールした後、各会社にwkthtmltopdf実行可能ファイルへのパスの設定が必要です。\n" +"\n" +"Linuxでヘッダー / " +"フッターが見つからない問題を経験している場合は、ライブラリはスタティックバージョンをインストールして下さい。Ubuntuのデフォルトのwkhtmltopd" +"fはこの問題を持つことが知られています。\n" +"\n" +"\n" +"To Do\n" +"----\n" +"\n" +"・ JavaScriptアックティベーション、ディアクテイベーションサポート\n" +"・ 校合されたものブック形式のサポート\n" +"・ 別々のPDFのためのZIP戻り\n" +"・ WebクライアントのWYSIWYG\n" +"\n" +" " #. module: base #: model:ir.module.module,description:base.module_l10n_gt @@ -9302,11 +9562,18 @@ msgid "" "la moneda del Quetzal. -- Adds accounting chart for Guatemala. It also " "includes taxes and the Quetzal currency" msgstr "" +"\n" +"これはグアテマラのための会計表管理の基本モジュールです。\n" +"=====================================================================\n" +"\n" +"Agrega una nomenclatura contable para Guatemala. También icluye impuestos y " +"la moneda del Quetzal. \n" +"-- グアテマラの会計表が追加されます。また、税とケツァール通貨が含まれています。" #. module: base #: view:res.lang:0 msgid "%b - Abbreviated month name." -msgstr "" +msgstr "%b - 省略形の月の名称" #. module: base #: field:res.partner,supplier:0 @@ -9314,50 +9581,50 @@ msgstr "" #: field:res.partner.address,is_supplier_add:0 #: model:res.partner.category,name:base.res_partner_category_8 msgid "Supplier" -msgstr "" +msgstr "仕入先" #. module: base #: view:ir.actions.server:0 #: selection:ir.actions.server,state:0 msgid "Multi Actions" -msgstr "" +msgstr "複数のアクション" #. module: base #: view:base.language.export:0 #: view:base.language.import:0 #: view:wizard.ir.model.menu.create:0 msgid "_Close" -msgstr "" +msgstr "閉じる" #. module: base #: field:multi_company.default,company_dest_id:0 msgid "Default Company" -msgstr "" +msgstr "デフォルト会社" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (EC) / Español (EC)" -msgstr "" +msgstr "スペイン語(エクアドル)/ Español (EC)" #. module: base #: help:ir.ui.view,xml_id:0 msgid "ID of the view defined in xml file" -msgstr "" +msgstr "XMLファイルで定義されたビューのID" #. module: base #: model:ir.model,name:base.model_base_module_import msgid "Import Module" -msgstr "" +msgstr "インポートモジュール" #. module: base #: model:res.country,name:base.as msgid "American Samoa" -msgstr "" +msgstr "アメリカ領サモア" #. module: base #: help:ir.actions.act_window,res_model:0 msgid "Model name of the object to open in the view window" -msgstr "" +msgstr "ビューウィンドウで開くためのオブジェクトのモデル名" #. module: base #: model:ir.module.module,description:base.module_caldav @@ -9384,27 +9651,47 @@ msgid "" "created\n" " CALENDAR_NAME: Name of calendar to access\n" msgstr "" +"\n" +"このモジュールはCalDAVシステムの基本機能を含んでいます。\n" +"===========================================================\n" +"\n" +" ・ カレンダーにリモートアクセスを提供するWebDAVサーバ\n" +" ・ WebDAVを使用してカレンダーと同期\n" +" ・ カレンダーイベントとToDoをOpenERPモデルにカスタマイズ\n" +" ・ スケジュールの標準フォーマットiCalのインポート / エクスポート機能を提供\n" +"\n" +"CalDAVクライアントを利用してカレンダーにアクセスするには以下をポイントします:\n" +"  http://HOSTNAME:PORT/webdav/DATABASE_NAME/calendars/users/USERNAME/c\n" +"\n" +"WebCalを使ってOpenERPカレンダーにアクセスするためのリモートサイトは以下のようなURLを使います:\n" +"  http://HOSTNAME:PORT/webdav/DATABASE_NAME/Calendars/CALENDAR_NAME.ics\n" +"\n" +"  ここで\n" +"   HOSTNAME:OpenERP(WebDAVとともに)が実行されているホスト\n" +"   PORT:OpenERPサーバが実行されているポート(デフォルト:8069)\n" +"   DATABASE_NAME:OpenERPカレンダーが作成されるデータベース名\n" +"   CALENDAR_NAME:アクセスするためのカレンダー名\n" #. module: base #: field:ir.model.fields,selectable:0 msgid "Selectable" -msgstr "" +msgstr "選択可能" #. module: base #: code:addons/base/ir/ir_mail_server.py:199 #, python-format msgid "Everything seems properly set up!" -msgstr "" +msgstr "全てのセットアップが適切に行われました。" #. module: base #: field:res.users,date:0 msgid "Latest Connection" -msgstr "" +msgstr "最新の接続" #. module: base #: view:res.request.link:0 msgid "Request Link" -msgstr "" +msgstr "リクエストリンク" #. module: base #: model:ir.module.module,description:base.module_plugin_outlook @@ -9419,6 +9706,19 @@ msgid "" "mail into mail.message with attachments.\n" " " msgstr "" +"\n" +"これはOutlookプラグインを提供します。\n" +"=========================================\n" +"Outlookプラグインによって、あなたはMS OutlookからEメールやその添付ファイルに指定したい\n" +"オブジェクトの選択ができます。\n" +"あなたが選択したパートナ、タスク、プロジェクト、分析アカウント、その他のオブジェクトを、\n" +"選択されたメールメッセージに添付ファイルとともにアーカイブします。\n" +" plug-in allows you to select an object that you would like to add\n" +"to your email and its attachments from MS Outlook. You can select a partner, " +"a task,\n" +"a project, an analytical account, or any other object and archive selected\n" +"mail into mail.message with attachments.\n" +" " #. module: base #: view:ir.attachment:0 @@ -9435,36 +9735,38 @@ msgid "" "use the same timezone that is otherwise used to pick and render date and " "time values: your computer's timezone." msgstr "" +"ユーザのタイムゾーンは内部で印刷されたレポートに適切な日付と時間の値を出力するために使用されます。この項目のために値を設定することが大切です。日付と時間を" +"選んで、レンダリングされるために使われるタイムゾーン(あなたのコンピュータのタイムゾーン)と同じものを使うべきです。" #. module: base #: help:res.country,name:0 msgid "The full name of the country." -msgstr "" +msgstr "国のフルネーム" #. module: base #: selection:ir.actions.server,state:0 msgid "Iteration" -msgstr "" +msgstr "繰り返し" #. module: base #: model:ir.module.module,shortdesc:base.module_project_planning msgid "Resources Planing" -msgstr "" +msgstr "資源計画" #. module: base #: field:ir.module.module,complexity:0 msgid "Complexity" -msgstr "" +msgstr "複雑さ" #. module: base #: selection:ir.actions.act_window,target:0 msgid "Inline" -msgstr "" +msgstr "インライン" #. module: base #: model:res.partner.bank.type.field,name:base.bank_normal_field_bic msgid "bank_bic" -msgstr "" +msgstr "BIC(銀行特定コード)" #. module: base #: code:addons/orm.py:3988 @@ -9515,6 +9817,12 @@ msgid "" "Greek accounting chart and localization.\n" " " msgstr "" +"\n" +"これはギリシャの会計表を管理するための基本モジュールです。\n" +"==================================================================\n" +"\n" +"ギリシャの会計表とローカル化\n" +" " #. module: base #: view:ir.values:0 @@ -9964,7 +10272,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Flemish (BE) / Vlaams (BE)" -msgstr "" +msgstr "フラマン語(ベルギー)/ Vlaams (BE)" #. module: base #: field:ir.cron,interval_number:0 @@ -10124,7 +10432,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Vietnamese / Tiếng Việt" -msgstr "" +msgstr "ベトナム語 / Tiếng Việt" #. module: base #: model:res.country,name:base.dz @@ -10328,7 +10636,7 @@ msgstr "" #. module: base #: model:res.partner.category,name:base.res_partner_category_9 msgid "Components Supplier" -msgstr "" +msgstr "部品仕入先" #. module: base #: model:ir.module.category,name:base.module_category_purchase_management @@ -10670,7 +10978,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Telugu / తెలుగు" -msgstr "" +msgstr "テルグ語 / తెలుగు" #. module: base #: model:ir.module.module,description:base.module_document_ics @@ -10699,6 +11007,12 @@ msgid "" "Indian accounting chart and localization.\n" " " msgstr "" +"\n" +"インドの会計:会計表\n" +"=====================================\n" +"\n" +"インドの会計表とローカル化\n" +" " #. module: base #: view:ir.attachment:0 @@ -10817,7 +11131,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (CO) / Español (CO)" -msgstr "" +msgstr "スペイン語(コロンビア)/ Español (CO)" #. module: base #: view:base.module.configuration:0 @@ -10935,7 +11249,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_cn msgid "中国会计科目表 - Accounting" -msgstr "" +msgstr "中国-会計" #. module: base #: view:ir.model.access:0 @@ -10964,7 +11278,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Chinese (TW) / 正體字" -msgstr "" +msgstr "中国語(台湾)/ 正體字" #. module: base #: model:ir.model,name:base.model_res_request @@ -11267,7 +11581,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Estonian / Eesti keel" -msgstr "" +msgstr "エストニア語 / Eesti keel" #. module: base #: field:res.partner,email:0 @@ -11357,7 +11671,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Mongolian / монгол" -msgstr "" +msgstr "モンゴル語 / монгол" #. module: base #: model:res.country,name:base.mr @@ -11433,7 +11747,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (CR) / Español (CR)" -msgstr "" +msgstr "スペイン語(コスタリカ)/ Español (CR)" #. module: base #: view:ir.rule:0 @@ -11485,6 +11799,12 @@ msgid "" "Thai accounting chart and localization.\n" " " msgstr "" +"\n" +"タイの会計表\n" +"===============================\n" +"\n" +"タイの会計表とローカル化\n" +" " #. module: base #: model:res.country,name:base.kn @@ -11653,7 +11973,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_br msgid "Brazilian - Accounting" -msgstr "" +msgstr "ブラジル-会計" #. module: base #: model:res.country,name:base.pk @@ -11832,7 +12152,7 @@ msgstr "" #. module: base #: model:res.partner.category,name:base.res_partner_category_woodsuppliers0 msgid "Wood Suppliers" -msgstr "" +msgstr "木材仕入先" #. module: base #: model:res.country,name:base.tg @@ -11915,7 +12235,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Arabic / الْعَرَبيّة" -msgstr "" +msgstr "アラビア語 / الْعَرَبيّة" #. module: base #: model:ir.module.module,shortdesc:base.module_web_hello @@ -12179,6 +12499,13 @@ msgid "" "picking and invoice. The message is triggered by the form's onchange event.\n" " " msgstr "" +"\n" +"OpenERPオブジェクトの中の警告トリガーのモジュール\n" +"==============================================\n" +"\n" +"警告メッセージは購入注文、仕入注文、収集、請求のようなオブジェクトのために表示させることができます。\n" +"このメッセージはフォームのonChangeイベントによってトリガーとなります。\n" +" " #. module: base #: code:addons/osv.py:150 @@ -12328,7 +12655,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (NI) / Español (NI)" -msgstr "" +msgstr "スペイン語(ニカラグア)/ Español (NI)" #. module: base #: model:ir.module.module,description:base.module_product_visible_discount @@ -12666,7 +12993,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_uk msgid "UK - Accounting" -msgstr "" +msgstr "イギリス-会計" #. module: base #: model:ir.module.module,description:base.module_project_scrum @@ -12737,7 +13064,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_in msgid "India - Accounting" -msgstr "" +msgstr "インド-会計" #. module: base #: field:ir.actions.server,expression:0 @@ -12752,7 +13079,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_gt msgid "Guatemala - Accounting" -msgstr "" +msgstr "グアテマラ-会計" #. module: base #: help:ir.cron,args:0 @@ -12834,7 +13161,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Galician / Galego" -msgstr "" +msgstr "ガリラヤ語 / Galego" #. module: base #: model:res.country,name:base.no @@ -12865,7 +13192,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Sinhalese / සිංහල" -msgstr "" +msgstr "シンハラ語 / සිංහල" #. module: base #: selection:res.request,state:0 @@ -13244,7 +13571,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Norwegian Bokmål / Norsk bokmål" -msgstr "" +msgstr "ノルウェー語ブックモール / Norsk bokmål" #. module: base #: model:res.partner.title,name:base.res_partner_title_madam @@ -13336,7 +13663,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Occitan (FR, post 1500) / Occitan" -msgstr "" +msgstr "オック語(FR, post 1500)/ Occitan" #. module: base #: code:addons/base/ir/ir_mail_server.py:192 @@ -13366,7 +13693,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Malayalam / മലയാളം" -msgstr "" +msgstr "マラヤーラム語 / മലയാളം" #. module: base #: view:res.request:0 @@ -13444,7 +13771,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Croatian / hrvatski jezik" -msgstr "" +msgstr "クロアチア語 / hrvatski jezik" #. module: base #: sql_constraint:res.country:0 @@ -13652,7 +13979,7 @@ msgstr "" #: model:ir.ui.menu,name:base.menu_procurement_management_supplier_name #: view:res.partner:0 msgid "Suppliers" -msgstr "" +msgstr "仕入先" #. module: base #: view:publisher_warranty.contract.wizard:0 @@ -13713,7 +14040,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_th msgid "Thailand - Accounting" -msgstr "" +msgstr "タイ-会計" #. module: base #: view:res.lang:0 @@ -14189,6 +14516,13 @@ msgid "" "plans.\n" " " msgstr "" +"\n" +"この基本モジュールは分析的な分類と仕入注文を管理します。\n" +"====================================================================\n" +"\n" +"ユーザは複数の分析計画を維持することができます。\n" +"これはあなたに仕入先の仕入注文の行を複数のアカウントと分析計画に分割させます。\n" +" " #. module: base #: field:res.company,vat:0 @@ -14275,7 +14609,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Turkish / Türkçe" -msgstr "" +msgstr "トルコ語 / Türkçe" #. module: base #: model:ir.module.module,description:base.module_project_long_term @@ -14334,7 +14668,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_es msgid "Spanish - Accounting (PGCE 2008)" -msgstr "" +msgstr "スペイン-会計(PGCE 2008)" #. module: base #: model:ir.module.module,shortdesc:base.module_stock_no_autopicking @@ -14429,7 +14763,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_nl msgid "Netherlands - Accounting" -msgstr "" +msgstr "オランダ-会計" #. module: base #: field:res.bank,bic:0 @@ -14548,7 +14882,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Danish / Dansk" -msgstr "" +msgstr "デンマーク語 / Dansk" #. module: base #: selection:ir.model.fields,select_level:0 @@ -14586,7 +14920,7 @@ msgstr "" #. module: base #: view:res.partner:0 msgid "Supplier Partners" -msgstr "" +msgstr "仕入先パートナ" #. module: base #: view:res.config.installer:0 @@ -14728,12 +15062,12 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Catalan / Català" -msgstr "" +msgstr "カタロニア語 / Català" #. module: base #: selection:base.language.install,lang:0 msgid "Greek / Ελληνικά" -msgstr "" +msgstr "ギリシャ語 / Ελληνικά" #. module: base #: model:res.country,name:base.do @@ -14743,7 +15077,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Serbian (Cyrillic) / српски" -msgstr "" +msgstr "セルビア語(キリル文字)/ српски" #. module: base #: code:addons/orm.py:2527 @@ -14784,6 +15118,8 @@ msgid "" "Check this box if the partner is a supplier. If it's not checked, purchase " "people will not see it when encoding a purchase order." msgstr "" +"パートナが仕入先である場合は、このチェックボックスをオンにして下さい。それをチェックしない場合は、仕入注文をエンコードする際に、仕入の人々はそれを見ること" +"はできません。" #. module: base #: field:ir.actions.server,trigger_obj_id:0 @@ -14877,7 +15213,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_account_payment msgid "Suppliers Payment Management" -msgstr "" +msgstr "仕入先支払管理" #. module: base #: model:res.country,name:base.sv @@ -14958,7 +15294,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Romanian / română" -msgstr "" +msgstr "ルーマニア語 / română" #. module: base #: view:res.log:0 @@ -15137,7 +15473,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_de msgid "Deutschland - Accounting" -msgstr "" +msgstr "ドイツ-会計" #. module: base #: model:ir.module.module,shortdesc:base.module_auction @@ -15163,7 +15499,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Persian / فارس" -msgstr "" +msgstr "ペルシア語 / فارس" #. module: base #: view:ir.actions.act_window:0 @@ -15381,7 +15717,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Bulgarian / български език" -msgstr "" +msgstr "ブルガリア語 / български език" #. module: base #: model:ir.ui.menu,name:base.menu_aftersale @@ -15391,7 +15727,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_fr msgid "France - Accounting" -msgstr "" +msgstr "フランス-会計" #. module: base #: view:ir.actions.todo:0 @@ -15528,7 +15864,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Czech / Čeština" -msgstr "" +msgstr "チェコ語 / Čeština" #. module: base #: model:ir.module.category,name:base.module_category_generic_modules @@ -15720,7 +16056,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (SV) / Español (SV)" -msgstr "" +msgstr "スペイン語(エルサルバドル)/ Español (SV)" #. module: base #: help:res.lang,grouping:0 @@ -15803,7 +16139,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_ca msgid "Canada - Accounting" -msgstr "" +msgstr "カナダ-会計" #. module: base #: model:ir.actions.act_window,name:base.act_ir_actions_todo_form @@ -15842,7 +16178,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_ve msgid "Venezuela - Accounting" -msgstr "" +msgstr "ベネズエラ-会計" #. module: base #: model:res.country,name:base.cl @@ -15884,7 +16220,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Italian / Italiano" -msgstr "" +msgstr "イタリア語 / Italiano" #. module: base #: field:ir.actions.report.xml,attachment:0 @@ -16102,7 +16438,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Polish / Język polski" -msgstr "" +msgstr "ポーランド語 / Język polski" #. module: base #: model:ir.module.module,description:base.module_base_tools @@ -16195,7 +16531,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Russian / русский язык" -msgstr "ロシア" +msgstr "ロシア語 / русский язык" #~ msgid "Metadata" #~ msgstr "メタデータ" diff --git a/openerp/addons/base/ir/ir_mail_server.py b/openerp/addons/base/ir/ir_mail_server.py index ecb41b32592..04156411e48 100644 --- a/openerp/addons/base/ir/ir_mail_server.py +++ b/openerp/addons/base/ir/ir_mail_server.py @@ -22,6 +22,7 @@ from email.MIMEText import MIMEText from email.MIMEBase import MIMEBase from email.MIMEMultipart import MIMEMultipart +from email.Charset import Charset from email.Header import Header from email.Utils import formatdate, make_msgid, COMMASPACE from email import Encoders @@ -97,6 +98,26 @@ def encode_header(header_text): return header_text_ascii if header_text_ascii\ else Header(header_text_utf8, 'utf-8') +def encode_header_param(param_text): + """Returns an appropriate RFC2047 encoded representation of the given + header parameter value, suitable for direct assignation as the + param value (e.g. via Message.set_param() or Message.add_header()) + RFC2822 assumes that headers contain only 7-bit characters, + so we ensure it is the case, using RFC2047 encoding when needed. + + :param param_text: unicode or utf-8 encoded string with header value + :rtype: string + :return: if ``param_text`` represents a plain ASCII string, + return the same 7-bit string, otherwise returns an + ASCII string containing the RFC2047 encoded text. + """ + # For details see the encode_header() method that uses the same logic + if not param_text: return "" + param_text_utf8 = tools.ustr(param_text).encode('utf-8') + param_text_ascii = try_coerce_ascii(param_text_utf8) + return param_text_ascii if param_text_ascii\ + else Charset('utf8').header_encode(param_text_utf8) + name_with_email_pattern = re.compile(r'("[^<@>]+")\s*<([^ ,<@]+@[^> ,]+)>') address_pattern = re.compile(r'([^ ,<@]+@[^> ,]+)') @@ -309,7 +330,7 @@ class ir_mail_server(osv.osv): msg['Cc'] = encode_rfc2822_address_header(COMMASPACE.join(email_cc)) if email_bcc: msg['Bcc'] = encode_rfc2822_address_header(COMMASPACE.join(email_bcc)) - msg['Date'] = formatdate(localtime=True) + msg['Date'] = formatdate() # Custom headers may override normal headers or provide additional ones for key, value in headers.iteritems(): msg[ustr(key).encode('utf-8')] = encode_header(value) @@ -334,14 +355,16 @@ class ir_mail_server(osv.osv): if attachments: for (fname, fcontent) in attachments: - filename_utf8 = ustr(fname).encode('utf-8') + filename_rfc2047 = encode_header_param(fname) part = MIMEBase('application', "octet-stream") + + # The default RFC2231 encoding of Message.add_header() works in Thunderbird but not GMail + # so we fix it by using RFC2047 encoding for the filename instead. + part.set_param('name', filename_rfc2047) + part.add_header('Content-Disposition', 'attachment', filename=filename_rfc2047) + part.set_payload(fcontent) Encoders.encode_base64(part) - # Force RFC2231 encoding for attachment filename - # See email.message.Message.add_header doc - part.add_header('Content-Disposition', 'attachment', - filename=('utf-8',None,filename_utf8)) msg.attach(part) return msg diff --git a/openerp/addons/base/ir/ir_values.py b/openerp/addons/base/ir/ir_values.py index bd619966b67..2a33e0c73c4 100644 --- a/openerp/addons/base/ir/ir_values.py +++ b/openerp/addons/base/ir/ir_values.py @@ -404,7 +404,7 @@ class ir_values(osv.osv): results[action['name']] = (action['id'], action['name'], action_def) except except_orm, e: continue - return results.values() + return sorted(results.values()) def _map_legacy_model_list(self, model_list, map_fn, merge_results=False): """Apply map_fn to the various models passed, according to diff --git a/openerp/addons/base/module/module.py b/openerp/addons/base/module/module.py index beb35ee38b2..cb484520058 100644 --- a/openerp/addons/base/module/module.py +++ b/openerp/addons/base/module/module.py @@ -452,6 +452,7 @@ class module(osv.osv): 'sequence': terp.get('sequence', 100), 'application': terp.get('application', False), 'auto_install': terp.get('auto_install', False), + 'icon': terp.get('icon', False), } # update the list of available packages diff --git a/openerp/addons/base/res/ir_property.py b/openerp/addons/base/res/ir_property.py index 496bfffe1a2..4768ba1e0d0 100644 --- a/openerp/addons/base/res/ir_property.py +++ b/openerp/addons/base/res/ir_property.py @@ -55,7 +55,7 @@ class ir_property(osv.osv): 'fields_id': fields.many2one('ir.model.fields', 'Field', ondelete='cascade', required=True, select=1), 'value_float' : fields.float('Value'), - 'value_integer' : fields.integer_big('Value'), # will contain (int, bigint) + 'value_integer' : fields.integer('Value'), 'value_text' : fields.text('Value'), # will contain (char, text) 'value_binary' : fields.binary('Value'), 'value_reference': fields.reference('Value', selection=_models_get2, size=128), @@ -65,7 +65,6 @@ class ir_property(osv.osv): ('float', 'Float'), ('boolean', 'Boolean'), ('integer', 'Integer'), - ('integer_big', 'Integer Big'), ('text', 'Text'), ('binary', 'Binary'), ('many2one', 'Many2One'), @@ -100,7 +99,6 @@ class ir_property(osv.osv): 'float': 'value_float', 'boolean' : 'value_integer', 'integer': 'value_integer', - 'integer_big': 'value_integer', 'text': 'value_text', 'binary': 'value_binary', 'many2one': 'value_reference', @@ -142,7 +140,7 @@ class ir_property(osv.osv): return record.value_float elif record.type == 'boolean': return bool(record.value_integer) - elif record.type in ('integer', 'integer_big'): + elif record.type == 'integer': return record.value_integer elif record.type == 'binary': return record.value_binary diff --git a/openerp/addons/base/res/ir_property_view.xml b/openerp/addons/base/res/ir_property_view.xml index 9f980c7d71c..b793c090491 100644 --- a/openerp/addons/base/res/ir_property_view.xml +++ b/openerp/addons/base/res/ir_property_view.xml @@ -31,7 +31,7 @@ - + diff --git a/openerp/addons/base/res/res_partner.py b/openerp/addons/base/res/res_partner.py index f4a36b46b77..9c98521e86c 100644 --- a/openerp/addons/base/res/res_partner.py +++ b/openerp/addons/base/res/res_partner.py @@ -346,21 +346,35 @@ class res_partner_address(osv.osv): def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=100): if not args: - args=[] - if not context: - context={} - if context.get('contact_display', 'contact')=='partner ' or context.get('contact_display', 'contact')=='partner_address ' : - ids = self.search(cr, user, [('partner_id',operator,name)], limit=limit, context=context) + args = [] + if context is None: + context = {} + + if not name: + ids = self.search(cr, user, args, limit=limit, context=context) + elif context.get('contact_display', 'contact') == 'partner': + ids = self.search(cr, user, [('partner_id', operator, name)] + args, limit=limit, context=context) else: - if not name: - ids = self.search(cr, user, args, limit=limit, context=context) + # first lookup zip code, as it is a common and efficient way to search on these data + ids = self.search(cr, user, [('zip', '=', name)] + args, limit=limit, context=context) + # then search on other fields: + if context.get('contact_display', 'contact') == 'partner_address': + fields = ['partner_id', 'name', 'country_id', 'city', 'street'] else: - ids = self.search(cr, user, [('zip','=',name)] + args, limit=limit, context=context) - if not ids: - ids = self.search(cr, user, [('city',operator,name)] + args, limit=limit, context=context) - if name: - ids += self.search(cr, user, [('name',operator,name)] + args, limit=limit, context=context) - ids += self.search(cr, user, [('partner_id',operator,name)] + args, limit=limit, context=context) + fields = ['name', 'country_id', 'city', 'street'] + # Here we have to search the records that satisfy the domain: + # OR([[(f, operator, name)] for f in fields])) + args + # Searching on such a domain can be dramatically inefficient, due to the expansion made + # for field translations, and the handling of the disjunction by the DB engine itself. + # So instead, we search field by field until the search limit is reached. + while len(ids) < limit and fields: + f = fields.pop(0) + new_ids = self.search(cr, user, [(f, operator, name)] + args, limit=limit, context=context) + # extend ids with the ones in new_ids that are not in ids yet (and keep order) + old_ids = set(ids) + ids.extend([id for id in new_ids if id not in old_ids]) + + ids = ids[:limit] return self.name_get(cr, user, ids, context=context) def get_city(self, cr, uid, id): diff --git a/openerp/addons/base/res/res_partner_view.xml b/openerp/addons/base/res/res_partner_view.xml index 1f0e8f88b1c..4c0aa349b24 100644 --- a/openerp/addons/base/res/res_partner_view.xml +++ b/openerp/addons/base/res/res_partner_view.xml @@ -6,7 +6,11 @@ web_icon_hover="data/sales-hover.png" groups="base.group_sale_salesman"/> - + + + @@ -175,7 +179,7 @@ - + Addresses ir.actions.act_window @@ -198,9 +202,6 @@ - - -%s -%s - -""" + xml1, xml2 = [], [] - xml1.append('' % _('Applications')) + xml1.append(E.separator(string=_('Application'), colspan="4")) for app, kind, gs in self.get_groups_by_application(cr, uid, context): if kind == 'selection': # application name with a selection field field_name = name_selection_groups(map(int, gs)) - xml1.append('' % field_name) - xml1.append('') + xml1.append(E.field(name=field_name)) + xml1.append(E.newline()) else: # application separator with boolean fields app_name = app and app.name or _('Other') - xml2.append('' % app_name) + xml2.append(E.separator(string=app_name, colspan="4")) for g in gs: field_name = name_boolean_group(g.id) - xml2.append('' % field_name) - view.write({'arch': xml % ('\n'.join(xml1), '\n'.join(xml2))}) + xml2.append(E.field(name=field_name)) + + xml = E.field(*(xml1 + xml2), name="groups_id", position="replace") + xml.addprevious(etree.Comment("GENERATED AUTOMATICALLY BY GROUPS")) + xml_content = etree.tostring(xml, pretty_print=True, xml_declaration=True, encoding="utf-8") + view.write({'arch': xml_content}) return True def get_user_groups_view(self, cr, uid, context=None): diff --git a/openerp/osv/fields.py b/openerp/osv/fields.py index bb654caea4d..e228ac32c41 100644 --- a/openerp/osv/fields.py +++ b/openerp/osv/fields.py @@ -159,32 +159,6 @@ class integer(_column): " `required` has no effect, as NULL values are " "automatically turned into 0.") -class integer_big(_column): - """Experimental 64 bit integer column type, currently unused. - - TODO: this field should work fine for values up - to 32 bits, but greater values will not fit - in the XML-RPC int type, so a specific - get() method is needed to pass them as floats, - like what we do for integer functional fields. - """ - _type = 'integer_big' - # do not reference the _symbol_* of integer class, as that would possibly - # unbind the lambda functions - _symbol_c = '%s' - _symbol_f = lambda x: int(x or 0) - _symbol_set = (_symbol_c, _symbol_f) - _symbol_get = lambda self,x: x or 0 - _deprecated = True - - def __init__(self, string='unknown', required=False, **args): - super(integer_big, self).__init__(string=string, required=required, **args) - if required: - _logger.debug( - "required=True is deprecated: making an integer_big field" - " `required` has no effect, as NULL values are " - "automatically turned into 0.") - class reference(_column): _type = 'reference' _classic_read = False # post-process to handle missing target @@ -347,20 +321,6 @@ class datetime(_column): exc_info=True) return timestamp -class time(_column): - _type = 'time' - _deprecated = True - @staticmethod - def now( *args): - """ Returns the current time in a format fit for being a - default value to a ``time`` field. - - This method should be proivided as is to the _defaults dict, - it should not be called. - """ - return DT.datetime.now().strftime( - tools.DEFAULT_SERVER_TIME_FORMAT) - class binary(_column): _type = 'binary' _symbol_c = '%s' @@ -426,34 +386,6 @@ class selection(_column): # (4, ID) link # (5) unlink all (only valid for one2many) # -#CHECKME: dans la pratique c'est quoi la syntaxe utilisee pour le 5? (5) ou (5, 0)? -class one2one(_column): - _classic_read = False - _classic_write = True - _type = 'one2one' - _deprecated = True - - def __init__(self, obj, string='unknown', **args): - _logger.warning("The one2one field is deprecated and doesn't work anymore.") - _column.__init__(self, string=string, **args) - self._obj = obj - - def set(self, cr, obj_src, id, field, act, user=None, context=None): - if not context: - context = {} - obj = obj_src.pool.get(self._obj) - self._table = obj_src.pool.get(self._obj)._table - if act[0] == 0: - id_new = obj.create(cr, user, act[1]) - cr.execute('update '+obj_src._table+' set '+field+'=%s where id=%s', (id_new, id)) - else: - cr.execute('select '+field+' from '+obj_src._table+' where id=%s', (act[0],)) - id = cr.fetchone()[0] - obj.write(cr, user, [id], act[1], context=context) - - def search(self, cr, obj, args, name, value, offset=0, limit=None, uid=None, context=None): - return obj.pool.get(self._obj).search(cr, uid, args+self._domain+[('name', 'like', value)], offset, limit, context=context) - class many2one(_column): _classic_read = False @@ -1079,7 +1011,7 @@ class function(_column): self._symbol_f = boolean._symbol_f self._symbol_set = boolean._symbol_set - if type in ['integer','integer_big']: + if type == 'integer': self._symbol_c = integer._symbol_c self._symbol_f = integer._symbol_f self._symbol_set = integer._symbol_set @@ -1119,7 +1051,7 @@ class function(_column): elif not context.get('bin_raw'): result = sanitize_binary_value(value) - if field_type in ("integer","integer_big") and value > xmlrpclib.MAXINT: + if field_type == "integer" and value > xmlrpclib.MAXINT: # integer/long values greater than 2^31-1 are not supported # in pure XMLRPC, so we have to pass them as floats :-( # This is not needed for stored fields and non-functional integer @@ -1588,7 +1520,7 @@ def field_to_dict(model, cr, user, field, context=None): else: # call the 'dynamic selection' function res['selection'] = field.selection(model, cr, user, context) - if res['type'] in ('one2many', 'many2many', 'many2one', 'one2one'): + if res['type'] in ('one2many', 'many2many', 'many2one'): res['relation'] = field._obj res['domain'] = field._domain res['context'] = field._context diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 32b039f6598..31a433855af 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -413,7 +413,7 @@ class browse_record(object): for result_line in field_values: new_data = {} for field_name, field_column in fields_to_fetch: - if field_column._type in ('many2one', 'one2one'): + if field_column._type == 'many2one': if result_line[field_name]: obj = self._table.pool.get(field_column._obj) if isinstance(result_line[field_name], (list, tuple)): @@ -544,10 +544,8 @@ def pg_varchar(size=0): FIELDS_TO_PGTYPES = { fields.boolean: 'bool', fields.integer: 'int4', - fields.integer_big: 'int8', fields.text: 'text', fields.date: 'date', - fields.time: 'time', fields.datetime: 'timestamp', fields.binary: 'bytea', fields.many2one: 'int4', @@ -1527,11 +1525,11 @@ class BaseModel(object): for id, field, field_value in res: if field in fields_list: fld_def = (field in self._columns) and self._columns[field] or self._inherit_fields[field][2] - if fld_def._type in ('many2one', 'one2one'): + if fld_def._type == 'many2one': obj = self.pool.get(fld_def._obj) if not obj.search(cr, uid, [('id', '=', field_value or False)]): continue - if fld_def._type in ('many2many'): + if fld_def._type == 'many2many': obj = self.pool.get(fld_def._obj) field_value2 = [] for i in range(len(field_value)): @@ -1540,18 +1538,18 @@ class BaseModel(object): continue field_value2.append(field_value[i]) field_value = field_value2 - if fld_def._type in ('one2many'): + if fld_def._type == 'one2many': obj = self.pool.get(fld_def._obj) field_value2 = [] for i in range(len(field_value)): field_value2.append({}) for field2 in field_value[i]: - if field2 in obj._columns.keys() and obj._columns[field2]._type in ('many2one', 'one2one'): + if field2 in obj._columns.keys() and obj._columns[field2]._type == 'many2one': obj2 = self.pool.get(obj._columns[field2]._obj) if not obj2.search(cr, uid, [('id', '=', field_value[i][field2])]): continue - elif field2 in obj._inherit_fields.keys() and obj._inherit_fields[field2][2]._type in ('many2one', 'one2one'): + elif field2 in obj._inherit_fields.keys() and obj._inherit_fields[field2][2]._type == 'many2one': obj2 = self.pool.get(obj._inherit_fields[field2][2]._obj) if not obj2.search(cr, uid, [('id', '=', field_value[i][field2])]): @@ -4354,7 +4352,7 @@ class BaseModel(object): for v in value: if v not in val: continue - if self._columns[v]._type in ('many2one', 'one2one'): + if self._columns[v]._type == 'many2one': try: value[v] = value[v][0] except: @@ -4376,7 +4374,7 @@ class BaseModel(object): if f in field_dict[r]: result.pop(r) for id, value in result.items(): - if self._columns[f]._type in ('many2one', 'one2one'): + if self._columns[f]._type == 'many2one': try: value = value[0] except: @@ -4653,7 +4651,7 @@ class BaseModel(object): data[f] = data[f] and data[f][0] except: pass - elif ftype in ('one2many', 'one2one'): + elif ftype == 'one2many': res = [] rel = self.pool.get(fields[f]['relation']) if data[f]: @@ -4704,7 +4702,7 @@ class BaseModel(object): translation_records = [] for field_name, field_def in fields.items(): # we must recursively copy the translations for o2o and o2m - if field_def['type'] in ('one2one', 'one2many'): + if field_def['type'] == 'one2many': target_obj = self.pool.get(field_def['relation']) old_record, new_record = self.read(cr, uid, [old_id, new_id], [field_name], context=context) # here we rely on the order of the ids to match the translations diff --git a/openerp/service/web_services.py b/openerp/service/web_services.py index 46beaecd323..330bb86dcfc 100644 --- a/openerp/service/web_services.py +++ b/openerp/service/web_services.py @@ -173,6 +173,8 @@ class db(netsvc.ExportService): raise Exception, e def exp_drop(self, db_name): + if not self.exp_db_exist(db_name): + return False openerp.modules.registry.RegistryManager.delete(db_name) sql_db.close_db(db_name) @@ -180,6 +182,17 @@ class db(netsvc.ExportService): cr = db.cursor() cr.autocommit(True) # avoid transaction block try: + # Try to terminate all other connections that might prevent + # dropping the database + try: + cr.execute("""SELECT pg_terminate_backend(procpid) + FROM pg_stat_activity + WHERE datname = %s AND + procpid != pg_backend_pid()""", + (db_name,)) + except Exception: + pass + try: cr.execute('DROP DATABASE "%s"' % db_name) except Exception, e: diff --git a/openerp/tools/graph.py b/openerp/tools/graph.py index b54e101eec4..1b039ce97c6 100755 --- a/openerp/tools/graph.py +++ b/openerp/tools/graph.py @@ -313,7 +313,8 @@ class graph(object): self.order[level] = self.order[level]+1 for sec_end in self.transitions.get(node, []): - self.init_order(sec_end, self.result[sec_end]['x']) + if node!=sec_end: + self.init_order(sec_end, self.result[sec_end]['x']) def order_heuristic(self): @@ -438,33 +439,27 @@ class graph(object): l.reverse() no = len(l) - if no%2==0: - first_half = l[no/2:] - factor = 1 - else: - first_half = l[no/2+1:] - factor = 0 - + rest = no%2 + first_half = l[no/2+rest:] last_half = l[:no/2] - i=1 - for child in first_half: - self.result[child]['y'] = mid_pos - (i - (factor * 0.5)) - i += 1 + for i, child in enumerate(first_half): + self.result[child]['y'] = mid_pos - (i+1 - (0 if rest else 0.5)) if self.transitions.get(child, False): if last: self.result[child]['y'] = last + len(self.transitions[child])/2 + 1 last = self.tree_order(child, last) - if no%2: + if rest: mid_node = l[no/2] self.result[mid_node]['y'] = mid_pos if self.transitions.get((mid_node), False): if last: self.result[mid_node]['y'] = last + len(self.transitions[mid_node])/2 + 1 - last = self.tree_order(mid_node) + if node!=mid_node: + last = self.tree_order(mid_node) else: if last: self.result[mid_node]['y'] = last + 1 @@ -474,13 +469,14 @@ class graph(object): i=1 last_child = None for child in last_half: - self.result[child]['y'] = mid_pos + (i - (factor * 0.5)) + self.result[child]['y'] = mid_pos + (i - (0 if rest else 0.5)) last_child = child i += 1 if self.transitions.get(child, False): if last: self.result[child]['y'] = last + len(self.transitions[child])/2 + 1 - last = self.tree_order(child, last) + if node!=child: + last = self.tree_order(child, last) if last_child: last = self.result[last_child]['y']