[MERGE] forward port branch saas-11.1 up to 7e469eb77a

This commit is contained in:
Christophe Simonis
2018-02-01 18:20:28 +01:00
112 changed files with 1165 additions and 671 deletions
+50 -6
View File
@@ -4,7 +4,7 @@
#
# Translators:
# Xavier Belmere <Info@cartmeleon.com>, 2016
# Martin Trigaux <mat@odoo.com>, 2016
# Martin Trigaux, 2016
# Maxime Chambreuil <mchambreuil@ursainfosystems.com>, 2016
# Xavier Symons <xsy@openerp.com>, 2016
# Melanie Bernard <mbe@odoo.com>, 2016
@@ -14,7 +14,7 @@
# Olivier Lenoir <olivier.lenoir@free.fr>, 2016
# Olivier Dony <odo@odoo.com>, 2016
# Stanislas Sodonon <stanislas.sodonon@gmail.com>, 2016
# Florian Hatat <mininet@wanadoo.fr>, 2016
# Florian Hatat, 2016
# Nissar Chababy <funilrys@outlook.com>, 2016
# Nancy Bolognesi <nb@microcom.ca>, 2016
# Nicolas JEUDY <njeudy@panda-chi.io>, 2016
@@ -25,9 +25,9 @@
# Lucas Deliege <lud@odoo.com>, 2016
# Adriana Ierfino <adriana.ierfino@savoirfairelinux.com>, 2016
# Mickaël Audigane <maudigane@teclib.com>, 2016
# ShevAbam <shevabam@gmail.com>, 2016
# ShevAbam, 2016
# Sébastien LANGE (SYLEAM) <sebastien.lange@syleam.fr>, 2016
# Fabrice Henrion <fhe@odoo.com>, 2016
# Fabrice Henrion, 2016
# lucasdeliege <deliegelucas@gmail.com>, 2016
# Loic <loic.richard2@gmail.com>, 2016
# Daniel & Delphine <dd2013@leschoupinous.net>, 2016
@@ -37,9 +37,9 @@
# Frédéric LIETART <stuff@tifred.fr>, 2016
# Benjamin Delagoutte <ben@ampletus.fr>, 2016
# Mensanh Dodji Anani LAWSON <omolowo73@gmail.com>, 2016
# Stéphane Bidoul (ACSONE) <stephane.bidoul@acsone.eu>, 2016
# Stéphane Bidoul (ACSONE), 2016
# Lionel Sausin <ls@numerigraphe.com>, 2016
# Hamid Darabi <hamid.darabi@gmail.com>, 2016
# Hamid Darabi, 2016
# Nacim ABOURA <nacim.aboura@gmail.com>, 2016
# salwa belhadj <salwa.belhadj@gmail.com>, 2016
# Lamia Ishak <lamiaishak@hotmail.co.uk>, 2016
@@ -369,6 +369,50 @@ msgid ""
"</p>\n"
"</div>"
msgstr ""
"<div>\n"
"<p>Cher ${object.partner_id.name}\n"
"% set access_action = object.with_context(force_website=True).get_access_action()\n"
"% set is_online = access_action and access_action['type'] == 'ir.actions.act_url'\n"
"% set access_url = object.get_mail_url()\n"
"\n"
"% if object.partner_id.parent_id:\n"
" (<i>${object.partner_id.parent_id.name}</i>)\n"
"% endif\n"
",</p>\n"
"<p>Voici, en pièce jointe, votre \n"
"% if object.number:\n"
"facture <strong>${object.number}</strong>\n"
"% else:\n"
"facture\n"
"% endif\n"
"% if object.origin:\n"
"(avec la référence ${object.origin})\n"
"% endif\n"
", son montant s'élève à <strong>${object.amount_total} ${object.currency_id.name}</strong>\n"
"émis par ${object.company_id.name}.\n"
"</p>\n"
"\n"
"% if is_online:\n"
" <br/><br/>\n"
" <center>\n"
" <a href=\"${access_url}\" style=\"background-color: #1abc9c; padding: 20px; text-decoration: none; color: #fff; border-radius: 5px; font-size: 16px;\" class=\"o_default_snippet_text\">Voir la facture</a>\n"
" </center>\n"
"% endif\n"
" <br/><br/>\n"
"\n"
"% if object.state=='paid':\n"
" <p>Cette facture est déjà payée.</p>\n"
"% else:\n"
" <p>Merci de procéder au payement dès que possible.</p>\n"
"% endif\n"
"\n"
"<p>Merci,</p>\n"
"<p style=\"color:#888888\">\n"
"% if object.user_id and object.user_id.signature:\n"
" ${object.user_id.signature | safe}\n"
"% endif\n"
"</p>\n"
"</div>"
#. module: account
#: model:ir.ui.view,arch_db:account.portal_my_invoices
+5 -5
View File
@@ -5,8 +5,8 @@
# Translators:
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# Gary Wei <Gary.wei@elico-corp.com>, 2016
# Martin Trigaux <mat@odoo.com>, 2016
# fausthuang <faust_huang@hotmail.com>, 2016
# Martin Trigaux, 2016
# fausthuang, 2016
# 菜小蛇 <lttlsnk@gmail.com>, 2016
# Connie Xiao <connie.xiao@elico-corp.com>, 2016
# Michael Chong <michaelchong2005@gmail.com>, 2016
@@ -28,11 +28,11 @@
# mrshelly <mrshelly@hotmail.com>, 2016
# Kai Zhu <parahexen@gmail.com>, 2016
# Gang LIU <liu9ang@hotmail.com>, 2016
# Brown Hu <suhyy@163.com>, 2016
# Brown Hu, 2016
# 苏州远鼎 <tiexinliu@126.com>, 2016
# 军 李 <niathack@hotmail.com>, 2016
# Rona Lin <ssauapw@qq.com>, 2016
# 林俊 <54773801@qq.com>, 2016
# 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2016
# 坤 陈 <1339537473@qq.com>, 2016
# Ted Wang <feiyuwang2012@gmail.com>, 2016
# Godners Ren <godners@163.com>, 2017
@@ -6190,7 +6190,7 @@ msgstr "无详情"
msgid ""
"No miscellaneous journal could be found. Please create one before "
"proceeding."
msgstr ""
msgstr "未找到杂项日记账,请在处理之前先创建一个"
#. module: account
#: code:addons/account/models/account.py:116
+15 -6
View File
@@ -332,7 +332,7 @@ class account_payment(models.Model):
else:
if self.payment_type == 'inbound':
domain.append(('at_least_one_inbound', '=', True))
else:
elif self.payment_type == 'outbound':
domain.append(('at_least_one_outbound', '=', True))
return {'domain': domain, 'journal_types': set(journal_type)}
@@ -341,9 +341,16 @@ class account_payment(models.Model):
jrnl_filters = self._compute_journal_domain_and_types()
journal_types = jrnl_filters['journal_types']
domain_on_types = [('type', 'in', list(journal_types))]
if self.journal_id.type not in journal_types:
self.journal_id = self.env['account.journal'].search(domain_on_types, limit=1)
return {'domain': {'journal_id': jrnl_filters['domain'] + domain_on_types}}
journal_domain = jrnl_filters['domain'] + domain_on_types
default_journal_id = self.env.context.get('default_journal_id')
if not default_journal_id:
if self.journal_id.type not in journal_types:
self.journal_id = self.env['account.journal'].search(domain_on_types, limit=1)
else:
journal_domain = journal_domain.append(('id', '=', default_journal_id))
return {'domain': {'journal_id': journal_domain}}
@api.one
@api.depends('invoice_ids', 'payment_type', 'partner_type', 'partner_id')
@@ -374,6 +381,8 @@ class account_payment(models.Model):
self.partner_type = 'customer'
elif self.payment_type == 'outbound':
self.partner_type = 'supplier'
else:
self.partner_type = False
# Set payment method domain
res = self._onchange_journal()
if not res.get('domain', {}):
@@ -505,7 +514,7 @@ class account_payment(models.Model):
@api.multi
def action_draft(self):
return self.write({'state': 'draft'})
def action_validate_invoice_payment(self):
""" Posts a payment used to pay an invoice. This function only posts the
payment by default but can be overridden to apply specific post or pre-processing.
@@ -669,7 +678,7 @@ class account_payment(models.Model):
for inv in invoice:
if inv.move_id:
name += inv.number + ', '
name = name[:len(name)-2]
name = name[:len(name)-2]
return {
'name': name,
'account_id': self.destination_account_id.id,
@@ -168,10 +168,6 @@
<label for="currency_exchange_journal_id" class="col-md-3 o_light_label"/>
<field name="currency_exchange_journal_id"/>
</div>
<div class="row mt16">
<label for="currency_exchange_journal_id" class="col-md-3 o_light_label"/>
<field name="currency_exchange_journal_id"/>
</div>
</div>
</div>
</div>
@@ -4,15 +4,16 @@
#
# Translators:
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# Martin Trigaux <mat@odoo.com>, 2017
# Martin Trigaux, 2017
# 苏州远鼎 <tiexinliu@126.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:53+0000\n"
"PO-Revision-Date: 2017-09-20 09:53+0000\n"
"Last-Translator: 苏州远鼎 <tiexinliu@126.com>, 2017\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -90,7 +91,7 @@ msgstr "创建时间"
#. module: account_analytic_default
#: model:ir.ui.view,arch_db:account_analytic_default.res_config_settings_view_form
msgid "Default Analytic Values"
msgstr ""
msgstr "默认值"
#. module: account_analytic_default
#: model:ir.model.fields,help:account_analytic_default.field_account_analytic_default_date_stop
+5 -4
View File
@@ -3,18 +3,19 @@
# * account_asset
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# SHRe Liu <shreliu@outlook.com>, 2016
# 苏州远鼎 <tiexinliu@126.com>, 2016
# Ted Wang <feiyuwang2012@gmail.com>, 2016
# Rangy Chen <rangychen@163.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-30 13:11+0000\n"
"PO-Revision-Date: 2017-11-30 13:11+0000\n"
"Last-Translator: Rangy Chen <rangychen@163.com>, 2017\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -54,7 +55,7 @@ msgstr "# 分期明细"
#: model:ir.cron,cron_name:account_asset.account_asset_cron
#: model:ir.cron,name:account_asset.account_asset_cron
msgid "Account Asset: Generate asset entries"
msgstr ""
msgstr "资产科目:生成资产分录"
#. module: account_asset
#: model:ir.model.fields,field_description:account_asset.field_asset_depreciation_confirmation_wizard_date
@@ -89,7 +90,7 @@ msgstr "会计用于记录资产采购的原始价格"
#: code:addons/account_asset/static/src/js/account_asset.js:52
#, python-format
msgid "Accounting entries waiting for manual verification"
msgstr ""
msgstr "会计分录等待手动验证"
#. module: account_asset
#: model:ir.model.fields,field_description:account_asset.field_account_asset_asset_active
@@ -3,7 +3,8 @@
from datetime import datetime
from dateutil.relativedelta import relativedelta
from odoo import api, fields, models
from odoo import api, fields, models, _
from odoo.exceptions import UserError
from odoo.tools import DEFAULT_SERVER_DATE_FORMAT as DF
from odoo.addons import decimal_precision as dp
+4 -3
View File
@@ -3,14 +3,15 @@
# * account_budget
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-10-10 11:34+0000\n"
"PO-Revision-Date: 2017-10-10 11:34+0000\n"
"Last-Translator: Jeffery CHEN <jeffery9@gmail.com>, 2016\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -278,7 +279,7 @@ msgstr "状态"
#: code:addons/account_budget/models/account_budget.py:31
#, python-format
msgid "The budget must have at least one account."
msgstr ""
msgstr "预算应该至少有一个科目"
#. module: account_budget
#: model:ir.model.fields,field_description:account_budget.field_crossovered_budget_lines_theoritical_amount
+4 -7
View File
@@ -3,18 +3,15 @@
# * account_cancel
#
# Translators:
# Martin Trigaux <mat@odoo.com>, 2017
# 訾明华 <565209960@qq.com>, 2017
# liAnGjiA <liangjia@qq.com>, 2017
# Jeffery CHEN <jeffery9@gmail.com>, 2017
# mrshelly <mrshelly@hotmail.com>, 2017
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:53+0000\n"
"PO-Revision-Date: 2017-09-20 09:53+0000\n"
"Last-Translator: mrshelly <mrshelly@hotmail.com>, 2017\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -51,4 +48,4 @@ msgstr "重置为草稿"
#. module: account_cancel
#: model:ir.ui.view,arch_db:account_cancel.bank_statement_cancel_form_inherit
msgid "Revert reconciliation"
msgstr ""
msgstr "反核销"
@@ -34,7 +34,7 @@ class AccountRegisterPayments(models.TransientModel):
res = super(AccountRegisterPayments, self)._prepare_payment_vals(invoices)
if self.payment_method_id == self.env.ref('account_check_printing.account_payment_method_check'):
res.update({
'check_amount_in_words': self.check_amount_in_words,
'check_amount_in_words': self.currency_id.amount_to_text(res['amount']) if self.multi else self.check_amount_in_words,
'check_manual_sequencing': self.check_manual_sequencing,
})
return res
+4 -3
View File
@@ -3,18 +3,19 @@
# * account_payment
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2017
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2017
# Jeff Yu - Elico Corp <jeff.yu@elico-corp.com>, 2017
# glovebx <ruinning@163.com>, 2017
# Luke <cialuo@qq.com>, 2017
# Gary Wei <Gary.wei@elico-corp.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~11.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-12-13 14:36+0000\n"
"PO-Revision-Date: 2017-12-13 14:36+0000\n"
"Last-Translator: Gary Wei <Gary.wei@elico-corp.com>, 2017\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -50,7 +51,7 @@ msgstr "<i class=\"fa fa-arrow-circle-right\"/> 现在付款"
msgid ""
"<i class=\"fa fa-arrow-circle-right\"/><span class=\"hidden-xs\"> Pay "
"Now</span>"
msgstr ""
msgstr "立即支付"
#. module: account_payment
#: model:ir.ui.view,arch_db:account_payment.portal_invoice_page_inherit_payment
+4 -3
View File
@@ -3,16 +3,17 @@
# * barcodes
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# 苏州远鼎 <tiexinliu@126.com>, 2016
# liAnGjiA <liangjia@qq.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:53+0000\n"
"PO-Revision-Date: 2017-09-20 09:53+0000\n"
"Last-Translator: liAnGjiA <liangjia@qq.com>, 2017\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -193,7 +194,7 @@ msgstr "编码"
#: code:addons/barcodes/static/src/js/barcode_form_view.js:301
#, python-format
msgid "Error : Barcode command is undefined"
msgstr ""
msgstr "错误:条码命令未定义"
#. module: barcodes
#. openerp-web
+1
View File
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
from . import barcodes
from . import barcode_events_mixin
from . import ir_http
+14
View File
@@ -0,0 +1,14 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models
class IrHttp(models.AbstractModel):
_inherit = 'ir.http'
def session_info(self):
res = super(IrHttp, self).session_info()
res['max_time_between_keys_in_ms'] = int(
self.env['ir.config_parameter'].sudo().get_param('barcode.max_time_between_keys_in_ms', default='55'))
return res
@@ -3,6 +3,7 @@ odoo.define('barcodes.BarcodeEvents', function(require) {
var core = require('web.core');
var mixins = require('web.mixins');
var session = require('web.session');
// For IE >= 9, use this, new CustomEvent(), instead of new Event()
@@ -26,7 +27,7 @@ var BarcodeEvents = core.Class.extend(mixins.PropertiesMixin, {
suffix: /[\n\r\t]+/,
// Keys from a barcode scanner are usually processed as quick as possible,
// but some scanners can use an intercharacter delay (we support <= 50 ms)
max_time_between_keys_in_ms: 55,
max_time_between_keys_in_ms: session.max_time_between_keys_in_ms || 55,
init: function() {
mixins.PropertiesMixin.init.call(this);
+7 -6
View File
@@ -3,25 +3,26 @@
# * base_automation
#
# Translators:
# Martin Trigaux <mat@odoo.com>, 2017
# Martin Trigaux, 2017
# Max Belyanin <maxbelyanin@gmail.com>, 2017
# Masha Koc <mariya.kos.ua@gmail.com>, 2017
# Максим Дронь <dronmax@gmail.com>, 2017
# Sergey Vilizhanin <sv@grimmette.ru>, 2017
# Viktor Pogrebniak <vp@aifil.ru>, 2017
# Эдуард Манятовский <manyatovskiy@gmail.com>, 2017
# Collex100, 2017
# Gennady Marchenko <gennadym@gmail.com>, 2017
# Русский «kolobok2048» Ивашка <kolobok2048@gmail.com>, 2017
# Denis Trepalin <zekarious@gmail.com>, 2017
# Артур Чеботарь <artcha.chebotar@gmail.com>, 2017
# Dimko Pythonic <d.v.selitsky@gmail.com>, 2017
# Dmitry sky <d.v.selitsky@gmail.com>, 2017
# Yuriy Ney <k_wizard@mail.ru>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-10-02 11:26+0000\n"
"PO-Revision-Date: 2017-10-02 11:26+0000\n"
"Last-Translator: Dimko Pythonic <d.v.selitsky@gmail.com>, 2017\n"
"Last-Translator: Yuriy Ney <k_wizard@mail.ru>, 2018\n"
"Language-Team: Russian (https://www.transifex.com/odoo/teams/41243/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -162,12 +163,12 @@ msgstr "Перед обновлением домена"
#. module: base_automation
#: model:ir.model.fields,field_description:base_automation.field_base_automation_binding_model_id
msgid "Binding Model"
msgstr ""
msgstr "Связанная модель"
#. module: base_automation
#: model:ir.model.fields,field_description:base_automation.field_base_automation_binding_type
msgid "Binding Type"
msgstr ""
msgstr "Связанный Тип"
#. module: base_automation
#: selection:base.automation.lead.test,state:0
+4 -3
View File
@@ -3,14 +3,15 @@
# * board
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:53+0000\n"
"PO-Revision-Date: 2017-09-20 09:53+0000\n"
"Last-Translator: Jeffery CHEN <jeffery9@gmail.com>, 2016\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -56,7 +57,7 @@ msgstr "添加到我的仪表板"
#: code:addons/board/static/src/js/dashboard.js:335
#, python-format
msgid "Are you sure you want to remove this item?"
msgstr ""
msgstr "你确定要删除此项吗?"
#. module: board
#: model:ir.model,name:board.model_board_board
+16 -15
View File
@@ -8,15 +8,16 @@
# liAnGjiA <liangjia@qq.com>, 2017
# Talway <9010446@qq.com>, 2017
# Jeff Yu - Elico Corp <jeff.yu@elico-corp.com>, 2017
# Martin Trigaux <mat@odoo.com>, 2017
# Martin Trigaux, 2017
# Gary Wei <Gary.wei@elico-corp.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-30 13:12+0000\n"
"PO-Revision-Date: 2017-11-30 13:12+0000\n"
"Last-Translator: Gary Wei <Gary.wei@elico-corp.com>, 2017\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -335,37 +336,37 @@ msgstr "%s拒绝了邀请"
#. module: calendar
#: model:calendar.alarm,name:calendar.alarm_notif_5
msgid "1 Day(s)"
msgstr ""
msgstr "1天"
#. module: calendar
#: model:calendar.alarm,name:calendar.alarm_notif_3
msgid "1 Hour(s)"
msgstr ""
msgstr "1小时"
#. module: calendar
#: model:calendar.alarm,name:calendar.alarm_notif_1
msgid "15 Minute(s)"
msgstr ""
msgstr "15分钟"
#. module: calendar
#: model:calendar.alarm,name:calendar.alarm_notif_4
msgid "2 Hour(s)"
msgstr ""
msgstr "2小时"
#. module: calendar
#: model:calendar.alarm,name:calendar.alarm_mail_1
msgid "3 Hour(s), by e-mail"
msgstr ""
msgstr "3小时发邮件"
#. module: calendar
#: model:calendar.alarm,name:calendar.alarm_notif_2
msgid "30 Minute(s)"
msgstr ""
msgstr "20分钟"
#. module: calendar
#: model:calendar.alarm,name:calendar.alarm_mail_2
msgid "6 Hour(s), by e-mail"
msgstr ""
msgstr "6小时发邮件"
#. module: calendar
#: model:ir.ui.view,arch_db:calendar.view_calendar_event_form
@@ -484,14 +485,14 @@ msgstr "日程邀请"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_mail_activity_calendar_event_id
msgid "Calendar Meeting"
msgstr ""
msgstr "日历会议"
#. module: calendar
#: model:ir.actions.server,name:calendar.ir_cron_scheduler_alarm_ir_actions_server
#: model:ir.cron,cron_name:calendar.ir_cron_scheduler_alarm
#: model:ir.cron,name:calendar.ir_cron_scheduler_alarm
msgid "Calendar: Event Reminder"
msgstr ""
msgstr "日历:活动提醒"
#. module: calendar
#: model:ir.ui.view,arch_db:calendar.view_calendar_event_form
@@ -709,7 +710,7 @@ msgstr "所有人"
#: code:addons/calendar/models/mail_activity.py:38
#, python-format
msgid "Feedback: "
msgstr ""
msgstr "反馈:"
#. module: calendar
#: selection:calendar.event,byday:0
@@ -1082,7 +1083,7 @@ msgstr "循环规则"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_alarm_duration
msgid "Remind Before"
msgstr ""
msgstr "提醒早于"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event_alarm_ids
@@ -1124,7 +1125,7 @@ msgstr "负责人"
#. module: calendar
#: selection:calendar.alarm,type:0
msgid "SMS Text Message"
msgstr ""
msgstr "短信"
#. module: calendar
#: model:ir.model.fields,field_description:calendar.field_calendar_event_sa
@@ -1139,7 +1140,7 @@ msgstr "周六"
#. module: calendar
#: model:ir.ui.view,arch_db:calendar.mail_activity_view_form_popup
msgid "Schedule a meeting"
msgstr ""
msgstr "安排会议"
#. module: calendar
#: model:ir.ui.view,arch_db:calendar.view_calendar_event_search
+5 -5
View File
@@ -3,10 +3,10 @@
# * crm
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# 苏州远鼎 <tiexinliu@126.com>, 2016
# Ted Wang <feiyuwang2012@gmail.com>, 2016
# Martin Trigaux <mat@odoo.com>, 2016
# Martin Trigaux, 2016
# zpq001 <zpq001@live.com>, 2017
# waveyeung <waveyeung@qq.com>, 2017
# xiaobin wu <bd5dml@gmail.com>, 2017
@@ -259,7 +259,7 @@ msgstr "活动完成目标"
#. module: crm
#: model:ir.ui.view,arch_db:crm.view_crm_case_opportunities_filter
msgid "Activities Todo"
msgstr ""
msgstr "活动待办"
#. module: crm
#: model:ir.model.fields,field_description:crm.field_crm_lead_kanban_state
@@ -451,7 +451,7 @@ msgstr "取消"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_team_act_tree
msgid "Cases by Sales Channel"
msgstr ""
msgstr "按销售漏斗"
#. module: crm
#: model:ir.model,name:crm.model_crm_lead_tag
@@ -1753,7 +1753,7 @@ msgstr "业务开启的天数"
#. module: crm
#: model:ir.model.fields,field_description:crm.field_crm_team_opportunities_count
msgid "Number of open opportunities"
msgstr ""
msgstr "开启的商机数"
#. module: crm
#: model:ir.actions.act_window,help:crm.crm_case_form_view_salesteams_opportunity
+4 -4
View File
@@ -4,17 +4,17 @@
#
# Translators:
# liAnGjiA <liangjia@qq.com>, 2017
# Jeffery CHEN <jeffery9@gmail.com>, 2017
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2017
# waveyeung <waveyeung@qq.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2017
# Martin Trigaux <mat@odoo.com>, 2017
# Martin Trigaux, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:52+0000\n"
"PO-Revision-Date: 2017-09-20 09:52+0000\n"
"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n"
"Last-Translator: Martin Trigaux, 2017\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -39,7 +39,7 @@ msgstr "取消"
#: model:ir.ui.view,arch_db:crm_project.crm_lead_convert2task_view_form
#: model:ir.ui.view,arch_db:crm_project.crm_lead_view_form
msgid "Convert to Task"
msgstr ""
msgstr "转换为任务"
#. module: crm_project
#: model:ir.ui.view,arch_db:crm_project.crm_lead_convert2task_view_form
+8 -7
View File
@@ -3,19 +3,20 @@
# * delivery
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# 林俊 <54773801@qq.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2016
# 苏州远鼎 <tiexinliu@126.com>, 2016
# Ted Wang <feiyuwang2012@gmail.com>, 2016
# Martin Trigaux <mat@odoo.com>, 2016
# Martin Trigaux, 2016
# Xiaoming Deng <sumandeng@hotmail.com>, 2016
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~11.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-12-13 14:36+0000\n"
"PO-Revision-Date: 2017-12-13 14:36+0000\n"
"Last-Translator: Xiaoming Deng <sumandeng@hotmail.com>, 2016\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -26,7 +27,7 @@ msgstr ""
#. module: delivery
#: model:mail.template,report_name:delivery.mail_template_data_delivery_confirmation
msgid "${(object.name or '').replace('/','_')}"
msgstr ""
msgstr "${(object.name or ‘’).replace(‘/‘,’_’)}"
#. module: delivery
#: model:mail.template,subject:delivery.mail_template_data_delivery_confirmation
@@ -143,7 +144,7 @@ msgstr "<strong>承运商</strong>"
#. module: delivery
#: model:ir.ui.view,arch_db:delivery.report_delivery_document2
msgid "<strong>Tracking Number</strong>"
msgstr ""
msgstr "<strong>跟踪号码</strong>"
#. module: delivery
#: model:ir.ui.view,arch_db:delivery.report_delivery_document2
@@ -266,7 +267,7 @@ msgstr "交货承运商"
#. module: delivery
#: model:ir.ui.view,arch_db:delivery.view_delivery_price_rule_form
msgid "Delivery Cost"
msgstr ""
msgstr "运输成本"
#. module: delivery
#: model:ir.ui.view,arch_db:delivery.view_picking_withcarrier_out_form
+4 -4
View File
@@ -3,10 +3,10 @@
# * event
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# 卓忆科技 <zhanghao@jointd.com>, 2016
# 老窦 北京 <2662059195@qq.com>, 2017
# Martin Trigaux <mat@odoo.com>, 2017
# Martin Trigaux, 2017
# Michael Chong <michaelchong2005@gmail.com>, 2017
# SHOM <shanmuxin@yeah.net>, 2017
# liAnGjiA <liangjia@qq.com>, 2017
@@ -748,7 +748,7 @@ msgstr "活动"
#. module: event
#: model:ir.model,name:event.model_event_mail
msgid "Event Automated Mailing"
msgstr ""
msgstr "自动发邮件"
#. module: event
#: model:ir.actions.report,name:event.report_event_event_badge
@@ -833,7 +833,7 @@ msgstr "活动类型"
#: model:ir.cron,cron_name:event.event_mail_scheduler
#: model:ir.cron,name:event.event_mail_scheduler
msgid "Event: Mail Scheduler"
msgstr ""
msgstr "活动:邮件计划"
#. module: event
#: model:ir.actions.act_window,name:event.action_event_view
+4 -2
View File
@@ -96,6 +96,7 @@ class EventMailScheduler(models.Model):
@api.one
def execute(self):
now = fields.Datetime.now()
if self.interval_type == 'after_sub':
# update registration lines
lines = [
@@ -105,9 +106,10 @@ class EventMailScheduler(models.Model):
if lines:
self.write({'mail_registration_ids': lines})
# execute scheduler on registrations
self.mail_registration_ids.filtered(lambda reg: reg.scheduled_date and reg.scheduled_date <= datetime.strftime(fields.datetime.now(), tools.DEFAULT_SERVER_DATETIME_FORMAT)).execute()
self.mail_registration_ids.filtered(lambda reg: reg.scheduled_date and reg.scheduled_date <= now).execute()
else:
if not self.mail_sent:
# Do not send emails if the mailing was scheduled before the event but the event is over
if not self.mail_sent and (self.interval_type != 'before_event' or self.event_id.date_end > now):
self.event_id.mail_attendees(self.template_id.id)
self.write({'mail_sent': True})
return True
+5 -4
View File
@@ -3,15 +3,16 @@
# * fetchmail
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# liAnGjiA <liangjia@qq.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:53+0000\n"
"PO-Revision-Date: 2017-09-20 09:53+0000\n"
"Last-Translator: liAnGjiA <liangjia@qq.com>, 2017\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -131,7 +132,7 @@ msgstr "入局邮件服务器"
#. module: fetchmail
#: model:ir.ui.view,arch_db:fetchmail.res_config_settings_view_form
msgid "Incoming Email Servers"
msgstr ""
msgstr "收取邮件服务器"
#. module: fetchmail
#: model:ir.ui.view,arch_db:fetchmail.view_email_server_form
@@ -218,7 +219,7 @@ msgstr "可选的自定义服务器动作,用于在收到邮件时自动触发
#. module: fetchmail
#: model:ir.ui.view,arch_db:fetchmail.res_config_settings_view_form
msgid "Outgoing Email Servers"
msgstr ""
msgstr "发送邮件服务器"
#. module: fetchmail
#: model:ir.model,name:fetchmail.model_mail_mail
+4 -3
View File
@@ -5,15 +5,16 @@
# Translators:
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# 苏州远鼎 <tiexinliu@126.com>, 2016
# Martin Trigaux <mat@odoo.com>, 2017
# Martin Trigaux, 2017
# liAnGjiA <liangjia@qq.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:54+0000\n"
"PO-Revision-Date: 2017-09-20 09:54+0000\n"
"Last-Translator: liAnGjiA <liangjia@qq.com>, 2017\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -170,7 +171,7 @@ msgstr "更换刹车片"
#. module: fleet
#: model:ir.model,name:fleet.model_fleet_vehicle_model_brand
msgid "Brand of the vehicle"
msgstr ""
msgstr "车辆品牌"
#. module: fleet
#: model:fleet.vehicle.tag,name:fleet.vehicle_tag_break
+5 -2
View File
@@ -3,15 +3,16 @@
# * gamification
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# 卓忆科技 <zhanghao@jointd.com>, 2016
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-10-02 11:27+0000\n"
"PO-Revision-Date: 2017-10-02 11:27+0000\n"
"Last-Translator: 卓忆科技 <zhanghao@jointd.com>, 2016\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -355,6 +356,8 @@ msgid ""
"<span class=\"o_stat_text\">Related</span>\n"
" <span class=\"o_stat_text\">Goals</span>"
msgstr ""
"<span class=\"o_stat_text\">相关的</span>\n"
"<span class=\"o_stat_text\">目标</span>"
#. module: gamification
#: model:ir.actions.act_window,help:gamification.badge_list_action
+4 -2
View File
@@ -290,12 +290,14 @@
</field>
</record>
<!-- TODO remove me in master -->
<record id="hr_employee_action_subordinate_hierachy" model="ir.actions.act_window">
<field name="name">Subordinate Hierarchy</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">hr.employee</field>
<field name="domain">[('id','in',active_ids)]</field>
<field name="view_type">tree</field>
<field name="domain">['|', ('id','in',active_ids), ('parent_id', 'in', active_ids)]</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_partner_tree2"/>
<field name="binding_model_id" ref="hr.model_hr_employee"/>
</record>
+4 -3
View File
@@ -3,16 +3,17 @@
# * hr_gamification
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# Xu Lei <xulei8@qq.com>, 2017
# Talway <9010446@qq.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:53+0000\n"
"PO-Revision-Date: 2017-09-20 09:53+0000\n"
"Last-Translator: Talway <9010446@qq.com>, 2017\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -94,7 +95,7 @@ msgstr "描述他们做了什么,以及为什么它很重要(将公开)"
#. module: hr_gamification
#: model:ir.model.fields,field_description:hr_gamification.field_hr_employee_direct_badge_ids
msgid "Direct Badge"
msgstr ""
msgstr "直接徽章"
#. module: hr_gamification
#: model:ir.model,name:hr_gamification.model_hr_employee
+6 -5
View File
@@ -3,17 +3,18 @@
# * hr_holidays
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# zhichen ge <mangoge1999@gmail.com>, 2016
# liAnGjiA <liangjia@qq.com>, 2017
# Connie Xiao <connie.xiao@elico-corp.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~11.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-12-13 14:36+0000\n"
"PO-Revision-Date: 2017-12-13 14:36+0000\n"
"Last-Translator: Connie Xiao <connie.xiao@elico-corp.com>, 2017\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -50,7 +51,7 @@ msgstr "!important; font-size: 8px; min-width: 18px\"&gt;"
#: code:addons/hr_holidays/models/hr_holidays.py:123
#, python-format
msgid "%g remaining out of %g"
msgstr ""
msgstr "%g剩余%g"
#. module: hr_holidays
#: code:addons/hr_holidays/models/hr_holidays.py:341
@@ -94,12 +95,12 @@ msgstr "&lt;th class=\"text-center\" colspan="
#. module: hr_holidays
#: model:ir.ui.view,arch_db:hr_holidays.view_hr_holidays_kanban
msgid "<small class=\"text-muted\">from</small>"
msgstr ""
msgstr "<small class=\"text-muted\">从</small>"
#. module: hr_holidays
#: model:ir.ui.view,arch_db:hr_holidays.view_hr_holidays_kanban
msgid "<small class=\"text-muted\">to</small>"
msgstr ""
msgstr "<small class=\"text-muted\">到</small>"
#. module: hr_holidays
#: model:ir.ui.view,arch_db:hr_holidays.report_holidayssummary
+3 -3
View File
@@ -3,9 +3,9 @@
# * hr_payroll
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# Gary Wei <Gary.wei@elico-corp.com>, 2016
# Martin Trigaux <mat@odoo.com>, 2016
# Martin Trigaux, 2016
# Connie Xiao <connie.xiao@elico-corp.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2017
msgid ""
@@ -153,7 +153,7 @@ msgstr "添加内部备注"
#. module: hr_payroll
#: model:ir.ui.view,arch_db:hr_payroll.hr_contract_advantage_template_view_form
msgid "Advantage Name"
msgstr ""
msgstr "补贴名称"
#. module: hr_payroll
#: model:ir.actions.act_window,name:hr_payroll.act_children_salary_rules
+7 -7
View File
@@ -3,22 +3,22 @@
# * hr_recruitment
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# 苏州远鼎 <tiexinliu@126.com>, 2016
# Bo Cao <cao.poobo@hotmail.com>, 2017
# Bo Cao, 2017
# liAnGjiA <liangjia@qq.com>, 2017
# Martin Trigaux <mat@odoo.com>, 2017
# Martin Trigaux, 2017
# liulixia <liu.lixia@elico-corp.com>, 2017
# 卓忆科技 <zhanghao@jointd.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2017
# fausthuang <faust_huang@hotmail.com>, 2017
# fausthuang, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-16 08:08+0000\n"
"PO-Revision-Date: 2017-11-16 08:08+0000\n"
"Last-Translator: fausthuang <faust_huang@hotmail.com>, 2017\n"
"Last-Translator: fausthuang, 2017\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -505,7 +505,7 @@ msgstr "别名的模型"
#. module: hr_recruitment
#: model:ir.ui.menu,name:hr_recruitment.menu_crm_case_categ_all_app
msgid "All Applications"
msgstr ""
msgstr "全部申请"
#. module: hr_recruitment
#: model:ir.model,name:hr_recruitment.model_hr_applicant
@@ -618,7 +618,7 @@ msgstr "附件"
#. module: hr_recruitment
#: model:ir.model.fields,field_description:hr_recruitment.field_hr_recruitment_stage_template_id
msgid "Automated Email"
msgstr ""
msgstr "自动发邮件"
#. module: hr_recruitment
#: model:ir.model.fields,field_description:hr_recruitment.field_hr_applicant_availability
+3 -3
View File
@@ -3,7 +3,7 @@
# * hr_timesheet
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# 苏州远鼎 <tiexinliu@126.com>, 2016
# zyx <zheng.yaxi@elico-corp.com>, 2017
# Maie <m@maie.name>, 2017
@@ -32,7 +32,7 @@ msgstr "<span class=\"o_label\">工时表</span>"
#. module: hr_timesheet
#: model:ir.ui.view,arch_db:hr_timesheet.hr_employee_view_form_inherit_timesheet
msgid "<span class=\"o_stat_text\">Timesheets</span>"
msgstr ""
msgstr "<span class=\"o_stat_text\">工时表</span>"
#. module: hr_timesheet
#: model:ir.ui.view,arch_db:hr_timesheet.report_timesheet
@@ -42,7 +42,7 @@ msgstr "<span>工时表条目</span>"
#. module: hr_timesheet
#: model:ir.ui.view,arch_db:hr_timesheet.view_kanban_account_analytic_line
msgid "<strong>Duration: </strong>"
msgstr ""
msgstr "<strong>时长:</strong>"
#. module: hr_timesheet
#: model:ir.ui.view,arch_db:hr_timesheet.report_timesheet
+1 -1
View File
@@ -50,7 +50,7 @@ class Task(models.Model):
if 'project_id' in values:
project_id = values.get('project_id')
# a timesheet must have an analytic account (and a project)
if not project_id:
if self and not project_id:
raise UserError(_('This task must have a project since they are linked to timesheets.'))
self.sudo().mapped('timesheet_ids').write({
'project_id': project_id,
+2
View File
@@ -418,6 +418,8 @@ class IrHttp(models.AbstractModel):
try:
_, path = rule.build(arguments)
assert path is not None
except odoo.exceptions.MissingError:
return cls._handle_exception(werkzeug.exceptions.NotFound())
except Exception as e:
return cls._handle_exception(e)
+5 -3
View File
@@ -17,9 +17,11 @@
</div>
<t t-extend="DashboardApps">
<t t-jquery=".o_web_settings_dashboard_pills" t-operation="append">
<a class="pull-right" t-att-href="widget.data.url" target="_blank">
<i class="fa fa-money fa-2x text-muted"/> In-App Purchases</a>
<t t-jquery=".o_web_settings_dashboard_pills" t-operation="after">
<div class="text-center" style="display: inline-block">
<a t-att-href="widget.data.url" target="_blank">
<i class="fa fa-money fa-2x text-muted"/> In-App Purchases</a>
</div>
</t>
</t>
@@ -62,7 +62,8 @@
<strong><span t-esc="h['rule_category']"/></strong>
</td>
<td>
<strong><span t-esc="format(h['total'], 'monetary', o.company_id.currency_id)"/></strong>
<strong><span t-esc="h['total']"
t-esc-options='{"widget": "monetary", "display_currency": o.company_id.currency_id}'/></strong>
</td>
</tr>
</t>
@@ -75,7 +76,8 @@
<span t-esc="'..'*h['level']"/><span t-esc="h['rule_category']"/>
</td>
<td>
<span t-esc="format(h['total'], 'monetary', o.company_id.currency_id)"/>
<span t-esc="h['total']"
t-esc-options='{"widget": "monetary", "display_currency": o.company_id.currency_id}'/>
</td>
</tr>
</t>
+6 -5
View File
@@ -3,17 +3,18 @@
# * lunch
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# 苏州远鼎 <tiexinliu@126.com>, 2016
# Martin Trigaux <mat@odoo.com>, 2017
# Martin Trigaux, 2017
# Jeff Yu - Elico Corp <jeff.yu@elico-corp.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-10-02 11:26+0000\n"
"PO-Revision-Date: 2017-10-02 11:26+0000\n"
"Last-Translator: Jeff Yu - Elico Corp <jeff.yu@elico-corp.com>, 2017\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -115,7 +116,7 @@ msgstr "已归档"
#. module: lunch
#: model:ir.model.fields,field_description:lunch.field_lunch_order_balance_visible
msgid "Balance Visible"
msgstr ""
msgstr "余额可见"
#. module: lunch
#: model:ir.model.fields,field_description:lunch.field_lunch_alert_start_hour
@@ -125,7 +126,7 @@ msgstr "介于"
#. module: lunch
#: model:ir.ui.view,arch_db:lunch.view_lunch_alert_kanban
msgid "Between:"
msgstr ""
msgstr "介于:"
#. module: lunch
#: model:ir.ui.view,arch_db:lunch.lunch_cashmove_view_search_2
+4 -1
View File
@@ -6,7 +6,7 @@
# Yenthe Van Ginneken <yenthespam@gmail.com>, 2016
# Stephan Van Dyck <stephan.vandyck@vanroey.be>, 2016
# Cas Vissers <casvissers@brahoo.nl>, 2016
# Martin Trigaux <mat@odoo.com>, 2016
# Martin Trigaux, 2016
# Volluta <volluta@tutanota.com>, 2016
# Erwin van der Ploeg <erwin@odooexperts.nl>, 2016
# Eric Geens <ericgeens@yahoo.com>, 2016
@@ -5553,6 +5553,9 @@ msgid ""
"and Enterprise versions. Online users already benefit from a ready-to-use "
"email server (@mycompany.odoo.com)."
msgstr ""
"Het gebruik van uw eigen e-mailserver is vereist voor het verzenden / "
"ontvangen van e-mails in Community- en Enterprise-versies. Online gebruikers"
" profiteren van een kant-en-klare e-mailserver (@ mijnbedrijf.odoo.com)."
#. module: mail
#: code:addons/mail/models/mail_thread.py:670
+3 -3
View File
@@ -8,7 +8,7 @@
# liAnGjiA <liangjia@qq.com>, 2017
# liulixia <liu.lixia@elico-corp.com>, 2017
# waveyeung <waveyeung@qq.com>, 2017
# Martin Trigaux <mat@odoo.com>, 2017
# Martin Trigaux, 2017
# Rona Lin <ssauapw@qq.com>, 2017
# xiaobin wu <bd5dml@gmail.com>, 2017
# Michael Chong <michaelchong2005@gmail.com>, 2017
@@ -183,7 +183,7 @@ msgstr "%s 加入到 %s 网络."
#: code:addons/mail/static/src/xml/client_action.xml:211
#, python-format
msgid "&nbsp;("
msgstr ""
msgstr "&nbsp;("
#. module: mail
#. openerp-web
@@ -5553,7 +5553,7 @@ msgstr "一般"
#. module: mail
#: model:ir.ui.view,arch_db:mail.message_origin_link
msgid "has been"
msgstr ""
msgstr "已经"
#. module: mail
#: code:addons/mail/models/mail_alias.py:282
+1 -1
View File
@@ -331,7 +331,7 @@ class MailTemplate(models.Model):
def _process_link(url):
new_url = urls.url_parse(url)
if new_url.scheme and new_url.netloc:
if new_url.scheme and (new_url.netloc or new_url.scheme == 'mailto'):
return url
return new_url.replace(scheme=base.scheme, netloc=base.netloc).to_url()
+1 -1
View File
@@ -905,7 +905,7 @@ var Discuss = Widget.extend(ControlPanelMixin, {
var def = window.Notification && window.Notification.requestPermission();
if (def) {
def.then(function (value) {
if (value === 'denied') {
if (value !== 'granted') {
self._sendNotification(self, _t('Permission denied'),
_t('Odoo will not have the permission to send native notifications on this device.'));
} else {
+5 -5
View File
@@ -3,20 +3,20 @@
# * maintenance
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# 卓忆科技 <zhanghao@jointd.com>, 2016
# Eddie Lim <bhweelim@yahoo.com>, 2017
# liulixia <liu.lixia@elico-corp.com>, 2017
# Gary Wei <Gary.wei@elico-corp.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2017
# Martin Trigaux <mat@odoo.com>, 2017
# Martin Trigaux, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-30 13:12+0000\n"
"PO-Revision-Date: 2017-11-30 13:12+0000\n"
"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n"
"Last-Translator: Martin Trigaux, 2017\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -62,12 +62,12 @@ msgstr "<span>视图</span>"
#. module: maintenance
#: model:ir.ui.view,arch_db:maintenance.view_maintenance_equipment_category_kanban
msgid "<strong>Equipments:</strong>"
msgstr ""
msgstr "<strong>设备:</strong>"
#. module: maintenance
#: model:ir.ui.view,arch_db:maintenance.view_maintenance_equipment_category_kanban
msgid "<strong>Maintenance:</strong>"
msgstr ""
msgstr "<strong>维保:"
#. module: maintenance
#: model:ir.model.fields,help:maintenance.field_maintenance_equipment_category_alias_defaults
+1 -1
View File
@@ -374,7 +374,7 @@ class MaintenanceTeam(models.Model):
_name = 'maintenance.team'
_description = 'Maintenance Teams'
name = fields.Char(required=True)
name = fields.Char(required=True, translate=True)
active = fields.Boolean(default=True)
company_id = fields.Many2one('res.company', string='Company', required=True,
default=lambda self: self.env.user.company_id)
+8 -5
View File
@@ -3,13 +3,13 @@
# * mass_mailing
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# fausthuang <faust_huang@hotmail.com>, 2017
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# fausthuang, 2017
# 卓忆科技 <zhanghao@jointd.com>, 2017
# LIYan <liliane.li@elico-corp.com>, 2017
# Bo Cao <cao.poobo@hotmail.com>, 2017
# Bo Cao, 2017
# Yuan Xulei <hi@yxl.name>, 2017
# Martin Trigaux <mat@odoo.com>, 2017
# Martin Trigaux, 2017
# 钟小华 <mackz@sina.com>, 2017
# Gary Wei <Gary.wei@elico-corp.com>, 2017
# niulin lnc. <admin@niulin.net>, 2017
@@ -35,7 +35,7 @@ msgstr ""
#. module: mass_mailing
#: model:ir.ui.view,arch_db:mass_mailing.s_mail_block_comparison_table
msgid "$18"
msgstr ""
msgstr "$18"
#. module: mass_mailing
#: model:ir.ui.view,arch_db:mass_mailing.s_mail_block_discount2
@@ -77,6 +77,9 @@ msgid ""
" <span class=\"fa fa-compass fa-2x text-delta\"/>\n"
" &amp;nbsp;"
msgstr ""
"&amp;nbsp;\n"
" 1\n"
" &amp;nbsp"
#. module: mass_mailing
#: model:ir.ui.view,arch_db:mass_mailing.s_mail_block_steps
@@ -327,20 +327,20 @@ snippets_editor.Class.include({
$body.removeClass(all_classes).addClass(theme_params.className);
var $old_layout = $editable_area.find(".o_layout");
// This wrapper structure is the only way to have a responsive and
// centered fixed-width content column on all mail clients
var $new_wrapper, $new_wrapper_content;
if (theme_params.nowrap) {
$new_wrapper = $new_wrapper_content = $("<div/>", {"class": "oe_structure"});
}
else {
// This wrapper structure is the only way to have a responsive and
// centered fixed-width content column on all mail clients
$new_wrapper = $('<table/>', {class: 'o_mail_wrapper'});
$new_wrapper_content = $("<td/>", {class: 'o_mail_no_resize o_mail_wrapper_td oe_structure'});
$new_wrapper_content = $("<td/>", {class: 'o_mail_no_resize o_mail_no_colorpicker o_mail_wrapper_td oe_structure'});
$new_wrapper.append($('<tr/>').append(
$("<td/>", {class: 'o_mail_no_resize'}),
$("<td/>", {class: 'o_mail_no_resize o_not_editable', contenteditable: 'false'}),
$new_wrapper_content,
$("<td/>", {class: 'o_mail_no_resize'})
$("<td/>", {class: 'o_mail_no_resize o_not_editable', contenteditable: 'false'})
));
}
var $new_layout = $("<div/>", {"class": "o_layout " + theme_params.className}).append($new_wrapper);
@@ -6,9 +6,12 @@
<t t-raw="0"/>
<div data-js="sizing_x"
data-selector="img, .mv, .col_mv, td:not(.o_mail_no_resize), th"/>
data-selector="img, .mv, .col_mv, td, th"
data-exclude=".o_mail_no_resize, .o_mail_wrapper_td"/>
<div data-js="table_item" data-selector="td, th"/>
<div data-js="table_item"
data-selector="td, th"
data-exclude=".o_mail_wrapper_td"/>
<div data-js="table_row"
data-selector="tr:has(> .row), tr:has(> .col_mv)"
@@ -17,11 +20,13 @@
<div data-js="table_column"
data-selector=".col>td, .col>th"
data-exclude=".o_mail_wrapper_td"
data-drop-near=".col>td, .col>th">
</div>
<div data-js="table_column_mv"
data-selector=".col_mv, td, th"
data-exclude=".o_mail_wrapper_td"
data-drop-near=".col_mv, td, th">
</div>
@@ -32,14 +37,16 @@
</div>
<div data-js="sizing_y"
data-selector="[data-oe-field='body_html'] > div:not(.o_layout), [data-oe-field='body_html'] .oe_structure > div, td:not(.o_mail_no_resize), th"/>
data-selector="[data-oe-field='body_html'] > div:not(.o_layout), [data-oe-field='body_html'] .oe_structure > div, th"
data-exclude=".o_mail_no_resize, .o_mail_wrapper_td">
<div data-js="colorpicker"
data-selector="
[data-oe-field='body_html'] > div:not(.o_layout):not(.o_mail_no_colorpicker),
[data-oe-field='body_html'] .oe_structure > div:not(.o_mail_no_colorpicker),
[data-oe-field='body_html'] > div:not(.o_layout),
[data-oe-field='body_html'] .oe_structure > div,
td, th
">
"
data-exclude=".o_mail_no_colorpicker">
<li class="dropdown-submenu">
<a tabindex="-1" href="#"><i class="fa fa-eyedropper"/>Background Color</a>
<ul class="dropdown-menu">
+5 -4
View File
@@ -3,14 +3,15 @@
# * membership
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:53+0000\n"
"PO-Revision-Date: 2017-09-20 09:53+0000\n"
"Last-Translator: Jeffery CHEN <jeffery9@gmail.com>, 2016\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -36,12 +37,12 @@ msgstr "# 正在等待"
#. module: membership
#: model:ir.ui.view,arch_db:membership.membership_products_kanban
msgid "<i class=\"fa fa-clock-o\" aria-hidden=\"true\"/><strong> From: </strong>"
msgstr ""
msgstr "<i class=\"fa fa-clock-o\" aria-hidden=\"true\"/><strong>从:</strong>"
#. module: membership
#: model:ir.ui.view,arch_db:membership.membership_products_kanban
msgid "<strong> To:</strong>"
msgstr ""
msgstr "<strong>到:</strong>"
#. module: membership
#: model:ir.model.fields,help:membership.field_res_partner_associate_member
+18 -1
View File
@@ -6,7 +6,7 @@
# Yenthe Van Ginneken <yenthespam@gmail.com>, 2016
# Stephan Van Dyck <stephan.vandyck@vanroey.be>, 2016
# Cas Vissers <casvissers@brahoo.nl>, 2016
# Martin Trigaux <mat@odoo.com>, 2016
# Martin Trigaux, 2016
# Erwin van der Ploeg <erwin@odooexperts.nl>, 2016
# Eric Geens <ericgeens@yahoo.com>, 2016
# wilcobergacker <wilcobergacker@gmail.com>, 2016
@@ -1656,6 +1656,9 @@ msgid ""
" of workers and/or machines, they are used for costing, scheduling, capacity planning, etc.\n"
" The Work Centers are defined on the Routing's operations."
msgstr ""
"Productie handelingen worden verwerkt in werkcentra. Een werkcentrum kan worden samengesteld\n"
" uit werknemers en/of machines, ze worden gebruikt voor calculatie, planning, capaciteitsplanning, etc.\n"
" De werkcentra worden gedefinieerd bij de bewerkingen van de routering."
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_workcenter_kanban_action
@@ -1664,6 +1667,9 @@ msgid ""
" workers and/or machines, they are used for costing, scheduling, capacity planning, etc.\n"
" The Work Centers are defined on the Routing's operations."
msgstr ""
"Productie handelingen worden verwerkt in werkcentra. Een werkcentrum kan worden samengesteld\n"
" uit werknemers en/of machines, ze worden gebruikt voor calculatie, planning, capaciteitsplanning, etc.\n"
" De werkcentra worden gedefinieerd bij de bewerkingen van de routering."
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_production_action_planning
@@ -3288,6 +3294,9 @@ msgid ""
"is useful if you have long lead time and if you produce based on sales "
"forecasts."
msgstr ""
"Het gebruik van een MPS rapport om uw bevoorrading- en productieactiviteiten"
" te plannen, is handig als u een lange doorlooptijd hebt en als u produceert"
" op basis van verkoopprognoses."
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_message_valid_until
@@ -3467,6 +3476,8 @@ msgid ""
"Work Order Messages are used to warn users about any change in the product,\n"
" process, etc. These messages will appear on the involved Work Orders."
msgstr ""
"Werkorderberichten worden gebruikt om gebruikers te waarschuwen voor alle veranderingen in het product,\n"
" proces, etc. Deze berichten verschijnen op de gerelateerde werkorders."
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.res_config_settings_view_form
@@ -3524,6 +3535,8 @@ msgid ""
" Manufacturing Order. Work Orders are trigerred by Manufacturing Orders,\n"
" they are based on the Routing defined on these ones"
msgstr ""
"Werkorders zijn bewerkingen die moeten worden verwerkt in een werkcentrum om een productie order te realiseren. Werkorders worden aangemaakt door productieorders,\n"
" ze zijn gebaseerd op de routing die op de stuklijst is gedefinieerd."
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_workorder_todo
@@ -3532,6 +3545,8 @@ msgid ""
" Manufacturing Order. Work Orders are trigerred by Manufacturing Orders,\n"
" they are based on the Routing defined on these ones."
msgstr ""
"Werkorders zijn bewerkingen die moeten worden verwerkt in een Werkcentrum om een productie order te realiseren. Werkorders worden aangemaakt door productieorders,\n"
" ze zijn gebaseerd op de routing die op de stuklijst is gedefinieerd."
#. module: mrp
#: model:ir.actions.act_window,help:mrp.action_mrp_workorder_workcenter
@@ -3540,6 +3555,8 @@ msgid ""
" Manufacturing Order. Work Orders are trigerred by Manufacturing Orders,\n"
" they are based on the Routing defined on these ones."
msgstr ""
"Werkorders zijn bewerkingen die moeten worden verwerkt in een Werkcentrum om een productie order te realiseren. Werkorders worden aangemaakt door productieorders,\n"
" ze zijn gebaseerd op de routing die op de stuklijst is gedefinieerd."
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_routing_workcenter_form_view
+137 -96
View File
@@ -4,7 +4,7 @@
#
# Translators:
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# Martin Trigaux <mat@odoo.com>, 2016
# Martin Trigaux, 2016
# liAnGjiA <liangjia@qq.com>, 2016
# Gary Wei <Gary.wei@elico-corp.com>, 2016
# waveyeung <waveyeung@qq.com>, 2016
@@ -15,7 +15,7 @@
# Jeff Yu - Elico Corp <jeff.yu@elico-corp.com>, 2017
# xiaobin wu <bd5dml@gmail.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2017
# fausthuang <faust_huang@hotmail.com>, 2017
# fausthuang, 2017
# 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2018
msgid ""
msgstr ""
@@ -74,7 +74,7 @@ msgstr "# 工单"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_product_template_used_in_bom_count
msgid "# of BoM Where is Used"
msgstr ""
msgstr "#BOM 在哪里被使用"
#. module: mrp
#: code:addons/mrp/models/mrp_bom.py:293
@@ -86,6 +86,11 @@ msgid ""
" Use this feature to store any files, like drawings or specifications.\n"
" </p>"
msgstr ""
"<p class =“oe_view_nocontent_create”>\n"
"                         点击上传文件到您的产品。\n"
"                    </ p> <p>\n"
"                         使用此功能存储任何文件,如图纸或规格。\n"
"                    </ p>"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_production_form_view
@@ -94,6 +99,9 @@ msgid ""
"['|',('availability', 'in', ('assigned', 'none')), ('state', 'not in', "
"('confirmed','progress'))]}\">Raw materials not available!</span>"
msgstr ""
"<span class=“label label-danger” attrs=“{‘invisible’: [‘|’,(‘availability’, "
"‘in’, (‘assigned’, ‘none’)), (‘state’, ‘not in’, "
"(‘confirmed’,’progress’))]}”>原材料不可用!</span>"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_workcenter_view
@@ -167,16 +175,18 @@ msgid ""
"<strong attrs=\"{'invisible': [('date_planned_finished', '=', False)]}\" class=\"mr8\">to</strong>\n"
" <strong class=\"oe_edit_only mr8\" attrs=\"{'invisible': [('date_planned_finished', '!=', False)]}\">to</strong>"
msgstr ""
"<strong attrs=“{‘invisible’: [(‘date_planned_finished’, ‘=‘, False)]}” class=“mr8”>至</strong>\n"
" <strong class=“oe_edit_only mr8” attrs=“{‘invisible’: [(‘date_planned_finished’, ‘!=‘, False)]}”>至</strong>"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_production_workcenter_form_view_inherit
msgid "<strong class=\"mr8\">to</strong>"
msgstr ""
msgstr "<strong class =“mr8”>至</ strong>"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.view_mrp_workcenter_productivity_loss_kanban
msgid "<strong>Effectiveness Category: </strong>"
msgstr ""
msgstr "<strong>生效类别:</ strong>"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.view_mrp_workcenter_productivity_loss_kanban
@@ -292,7 +302,7 @@ msgid ""
"Add by-products to bills of materials. This can be used to get several "
"finished products as well. Without this option you only do: A + B = C. With "
"the option: A + B = C + D."
msgstr ""
msgstr "添加副产品到物料清单。 这也可以用来获得几个成品。 没有这个选项,你只能这样做:A + B = C。选项:A + B = C + D"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.res_config_settings_view_form
@@ -316,16 +326,19 @@ msgid ""
"Lines with 0 quantities can be used as optional lines. \n"
"You should install the mrp_byproduct module if you want to manage extra products on BoMs !"
msgstr ""
"所有产品数量必须大于或等于0。\n"
"数量为0的行可以用作可选行。\n"
"如果要管理BoM上的额外产品,则应安装mrp_byproduct模块!"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_production_post_visible
msgid "Allowed to Post Inventory"
msgstr ""
msgstr "允许盘存"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_production_unreserve_visible
msgid "Allowed to Unreserve Inventory"
msgstr ""
msgstr "允许取消保留库存"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.view_change_production_qty_wizard
@@ -427,6 +440,8 @@ msgid ""
"Based on a Bill of Material, a Manufacturing Order will consume raw materials\n"
" and produce finished products."
msgstr ""
"根据材料清单,制造订单将消耗原材料\n"
"                 并生产成品。"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.report_mrporder
@@ -615,32 +630,32 @@ msgstr "清除"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_workcenter_kanban_action
msgid "Click here"
msgstr ""
msgstr "点击这里"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_production_action
msgid "Click here to create a Manufacturing Order."
msgstr ""
msgstr "点击这里创建一个制造订单。"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_unbuild
msgid "Click here to create a Unbuild Order."
msgstr ""
msgstr "点击这里创建一个拆卸单。"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_routing_action
msgid "Click here to create a new Routing."
msgstr ""
msgstr "点击这里创建一个新的路由。"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_workcenter_action
msgid "Click here to create a new Work Center"
msgstr ""
msgstr "点击这里创建一个新的工作中心"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_message_action_main
msgid "Click here to create a new Work Order Message."
msgstr ""
msgstr "点击这里创建一个新的工作订单信息。"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.action_work_orders
@@ -722,17 +737,17 @@ msgstr "消耗的"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_unbuild_consume_line_ids
msgid "Consumed Disassembly Lines"
msgstr ""
msgstr "拆卸单行"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_stock_move_consume_unbuild_id
msgid "Consumed Disassembly Order"
msgstr ""
msgstr "拆卸单"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_production_consumed_less_than_planned
msgid "Consumed Less Than Planned"
msgstr ""
msgstr "消费量少于计划数量"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_production_form_view
@@ -762,7 +777,7 @@ msgstr "创建工单"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_stock_move_created_production_id
msgid "Created Production Order"
msgstr ""
msgstr "创建生产订单"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_change_production_qty_create_uid
@@ -837,12 +852,12 @@ msgstr "日期"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_production_date_planned_finished
msgid "Deadline End"
msgstr ""
msgstr "截止日期结束"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_production_date_planned_start
msgid "Deadline Start"
msgstr ""
msgstr "截止日期开始"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_routing_workcenter_form_view
@@ -852,7 +867,7 @@ msgstr "默认时长"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_res_config_settings_use_manufacturing_lead
msgid "Default Manufacturing Lead Time"
msgstr ""
msgstr "默认制造提前期"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.view_mrp_bom_filter
@@ -889,7 +904,7 @@ msgstr "目的位置"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_stock_move_unbuild_id
msgid "Disassembly Order"
msgstr ""
msgstr "拆卸顺序"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_message_view_form_embedded_bom
@@ -1049,13 +1064,13 @@ msgstr "完成的批次"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_stock_move_finished_lots_exist
msgid "Finished Lots Exist"
msgstr ""
msgstr "已存在完成的批次"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_production_finished_move_line_ids
#: model:ir.ui.view,arch_db:mrp.view_finisehd_move_line
msgid "Finished Product"
msgstr ""
msgstr "完成的产品"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_production_move_finished_ids
@@ -1091,7 +1106,7 @@ msgstr "一般信息"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_mrp_document_priority
msgid "Gives the sequence order when displaying a list of MRP documents."
msgstr ""
msgstr "在显示MRP文档列表时给出序列顺序。"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_mrp_bom_sequence
@@ -1107,7 +1122,7 @@ msgstr "指定一个编号,用于在显示一系列工作中心时排序。"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_mrp_workcenter_sequence
msgid "Gives the sequence order when displaying a list of work centers."
msgstr ""
msgstr "显示工作中心列表时显示顺序顺序。"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_mrp_bom_line_sequence
@@ -1142,7 +1157,7 @@ msgstr "有附件"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_workorder_is_produced
msgid "Has Been Produced"
msgstr ""
msgstr "已生产"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_production_has_moves
@@ -1215,7 +1230,7 @@ msgstr "如果去掉这个启用的勾,工艺不需要删除就可以隐藏"
#: model:ir.ui.view,arch_db:mrp.mrp_production_form_view
msgid ""
"If the manufacturing order is unlocked you can add to the initial demand."
msgstr ""
msgstr "如果制造订单被解锁,您可以添加到最初的需求。"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_bom_form_view
@@ -1224,6 +1239,9 @@ msgid ""
" order for this product, the delivery order will contain the raw\n"
" materials, instead of the finished product."
msgstr ""
"如果产品是成品:处理销售\n"
"                                     为了这个产品,交货单将包含原料\n"
"                                     材料,而不是成品。"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_bom_form_view
@@ -1233,6 +1251,9 @@ msgid ""
" the raw materials of that product will be added to the\n"
" manufacturing order of the final product."
msgstr ""
"如果产品是半成品:在处理包含该产品作为组件的制造订单时,\n"
"                                     该产品的原料将被添加到\n"
"                                     最终产品的生产订单。"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_workcenter_kanban
@@ -1303,7 +1324,7 @@ msgstr "这是公开文档"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_workorder_is_user_working
msgid "Is the Current User Working"
msgstr ""
msgstr "当前用户正在工作吗?"
#. module: mrp
#: code:addons/mrp/models/mrp_workcenter.py:162
@@ -1317,7 +1338,7 @@ msgid ""
"Keep empty if you produce at the location where you find the raw "
"materials.Set a location if you produce at a fixed location. This can be a "
"partner location if you subcontract the manufacturing operations."
msgstr ""
msgstr "如果您在找到原材料的位置生产,请保持空置。如果您在固定的位置生产,请设置一个位置。 如果您转包制造业务,这可以是合作伙伴的位置。"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.view_mrp_bom_filter selection:mrp.bom,type:0
@@ -1412,7 +1433,7 @@ msgstr "逾期活动"
msgid ""
"Lines need to be deleted, but can not as you still have some quantities to "
"consume in them. "
msgstr ""
msgstr "行需要删除,但不能,因为您还有一些要消耗的数量。"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_unbuild_location_id
@@ -1460,7 +1481,7 @@ msgstr "批次/序列号码"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.view_finisehd_move_line
msgid "Lot/Serial number"
msgstr ""
msgstr "批号/序列号"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_stock_move_active_move_line_ids
@@ -1537,7 +1558,7 @@ msgstr "制造提前期(日)"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_stock_warehouse_manu_type_id
msgid "Manufacturing Operation Type"
msgstr ""
msgstr "生产操作类型"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_change_production_qty_mo_id
@@ -1573,6 +1594,8 @@ msgid ""
"Manufacturing Orders can be generated automatically based on customer\n"
" requirements or reordering rules."
msgstr ""
"制造订单可以根据客户自动生成\n"
" 要求或重新排序规则。"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.view_mrp_production_filter
@@ -1602,6 +1625,9 @@ msgid ""
" of workers and/or machines, they are used for costing, scheduling, capacity planning, etc.\n"
" The Work Centers are defined on the Routing's operations."
msgstr ""
"制造业务在工作中心进行。 工作中心可以组成\n"
"                 的工人和/或机器,它们被用于成本核算,调度,能力计划等。\n"
"                 工作中心在路由的操作上定义。"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_workcenter_kanban_action
@@ -1610,6 +1636,9 @@ msgid ""
" workers and/or machines, they are used for costing, scheduling, capacity planning, etc.\n"
" The Work Centers are defined on the Routing's operations."
msgstr ""
"制造业务在工作中心进行。 一个工作中心可以组成\n"
"                 工人和/或机器,它们用于成本核算,进度安排,能力规划等。\n"
"                 工作中心在路由的操作上定义"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_production_action_planning
@@ -1639,7 +1668,7 @@ msgstr "主生产排程"
#: model:ir.model.fields,field_description:mrp.field_mrp_production_availability
#: model:ir.model.fields,field_description:mrp.field_mrp_workorder_production_availability
msgid "Materials Availability"
msgstr ""
msgstr "材料可用性"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_message_message
@@ -1672,7 +1701,7 @@ msgstr "移动完成"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.res_config_settings_view_form
msgid "Move forward deadline start dates by"
msgstr ""
msgstr "提前截止日期开始日期"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_workorder_move_raw_ids
@@ -1692,7 +1721,7 @@ msgstr "MRP 工作中心"
#. module: mrp
#: model:ir.actions.server,name:mrp.production_order_server_action
msgid "Mrp: Plan Production Orders"
msgstr ""
msgstr "Mrp:计划生产订单"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_unbuild_search_view
@@ -1752,6 +1781,8 @@ msgid ""
"No data to display. You will get here statistics about the\n"
" work orders duration related to this routing."
msgstr ""
"没有数据显示。 你会得到这里的统计数据\n"
"               与此路由相关的工作订单持续时间。"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_workcenter_productivity_loss_action
@@ -1767,7 +1798,7 @@ msgstr "此设备没有生产力损失"
#: model:ir.ui.view,arch_db:mrp.mrp_workcenter_kanban
msgid ""
"No workorder currently in progress. Click to mark work center as blocked."
msgstr ""
msgstr "没有进行工单。单击以将工作中心标记为阻塞。"
#. module: mrp
#: selection:mrp.production,availability:0
@@ -1784,7 +1815,7 @@ msgstr "一般"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_stock_scrap_workorder_id
msgid "Not to restrict or prefer quants, but informative."
msgstr ""
msgstr "不限制或偏好数量,但内容丰富。"
#. module: mrp
#: selection:mrp.production,priority:0
@@ -1799,28 +1830,28 @@ msgstr "备注"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_stock_picking_type_count_mo_late
msgid "Number of Manufacturing Orders Late"
msgstr ""
msgstr "制造订单数量延迟"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_stock_picking_type_count_mo_waiting
msgid "Number of Manufacturing Orders Waiting"
msgstr ""
msgstr "制造订单等待的数量"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_stock_picking_type_count_mo_todo
msgid "Number of Manufacturing Orders to Process"
msgstr ""
msgstr "制造订单的数量"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_mrp_workcenter_capacity
#: model:ir.model.fields,help:mrp.field_mrp_workorder_capacity
msgid "Number of pieces that can be produced in parallel."
msgstr ""
msgstr "可以并行生产的件数。"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_workcenter_kanban
msgid "OEE"
msgstr ""
msgstr "OEE"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_workcenter_oee_target
@@ -1842,7 +1873,7 @@ msgstr "根据补货规则Odoo用BOM自动的生产生产订单"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_workcenter_oee
msgid "Oee"
msgstr ""
msgstr "Oee"
#. module: mrp
#: selection:mrp.routing.workcenter,batch:0
@@ -1976,7 +2007,7 @@ msgstr "规划订单"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.res_config_settings_view_form
msgid "Plan manufacturing or purchase orders based on forecasts"
msgstr ""
msgstr "根据预测计划制造或采购订单"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.stock_production_type_kanban
@@ -2000,7 +2031,7 @@ msgstr "规划"
#: code:addons/mrp/wizard/mrp_product_produce.py:147
#, python-format
msgid "Please enter a lot or serial number for %s !"
msgstr ""
msgstr "请输入%s的序列号或序列号!"
#. module: mrp
#: code:addons/mrp/models/mrp_workorder.py:296
@@ -2008,7 +2039,7 @@ msgstr ""
msgid ""
"Please set the quantity you are currently producing. It should be different "
"from zero."
msgstr ""
msgstr "请设定您正在生产的数量。 它不能为零。"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_production_form_view
@@ -2051,7 +2082,7 @@ msgstr "生产"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.res_config_settings_view_form
msgid "Produce residual products (A + B -&gt; C + D)"
msgstr ""
msgstr "产生残留产物(A + B &gt; C + D)"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.production_message
@@ -2342,7 +2373,7 @@ msgstr "记录生产明细"
msgid ""
"Recursion error! A product with a Bill of Material should not have itself "
"in its BoM or child BoMs!"
msgstr ""
msgstr "递归错误!一个物料清单的产品不应该自己或孩子BOM BOM!"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_bom_code
@@ -2377,7 +2408,7 @@ msgstr "维修"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.res_config_settings_view_form
msgid "Repair products and invoice the repair orders"
msgstr ""
msgstr "修理产品和发票修理订单"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_mrp_reporting
@@ -2475,6 +2506,9 @@ msgid ""
" done to realize a Manufacturing Order. Each operation from\n"
" a Routing is done at a specific Work Center and has a specific duration."
msgstr ""
"路线定义了需要的连续操作\n"
"                 完成制造订单。 从每个操作\n"
"                 路由在特定的工作中心完成,并具有特定的持续时间。"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_message_view_form_embedded_bom
@@ -2485,12 +2519,12 @@ msgstr "保存"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.res_config_settings_view_form
msgid "Schedule manufacturing orders earlier to avoid delays"
msgstr ""
msgstr "提前安排生产订单以避免延误"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.res_config_settings_view_form
msgid "Schedule the maintenance of your equipment"
msgstr ""
msgstr "安排设备的保养"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_workorder_date_planned_finished
@@ -2605,7 +2639,7 @@ msgid ""
"Set 'no' to schedule the next work order after the previous one. Set 'yes' "
"to produce after the quantity set in 'Quantity To Process' has been "
"produced."
msgstr ""
msgstr "设置“否”,安排上一个工作单之后的下一个工作单。 设置“是”,在“处理数量”中设置的数量生成后生成。"
#. module: mrp
#: selection:mrp.routing.workcenter,time_mode:0
@@ -2629,7 +2663,7 @@ msgstr "对于产成品应该有批次"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_production_show_final_lots
msgid "Show Final Lots"
msgstr ""
msgstr "显示最后一批"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_unbuild_search_view
@@ -2677,7 +2711,7 @@ msgstr "库存移动"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_production_move_dest_ids
msgid "Stock Movements of Produced Goods"
msgstr ""
msgstr "生产货物的库存移动"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_mrp_unbuild_moves
@@ -2708,40 +2742,40 @@ msgstr "TPM 大损失"
#: model:ir.model.fields,help:mrp.field_stock_move_is_done
#: model:ir.model.fields,help:mrp.field_stock_move_line_done_move
msgid "Technical Field to order moves"
msgstr ""
msgstr "技术领域的订单移动"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_mrp_production_check_to_done
msgid "Technical Field to see if we can show 'Mark as Done' button"
msgstr ""
msgstr "技术领域,看看我们是否可以显示“标记为完成”按钮"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_stock_move_line_done_wo
msgid ""
"Technical Field which is False when temporarily filled in in work order"
msgstr ""
msgstr "技术领域临时填写工单时为假"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_mrp_workorder_is_user_working
msgid "Technical field indicating whether the current user is working. "
msgstr ""
msgstr "表示当前用户是否正在工作的技术字段。"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_mrp_production_post_visible
msgid "Technical field to check when we can post"
msgstr ""
msgstr "技术领域来检查什么时候我们可以发布"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_mrp_production_unreserve_visible
msgid "Technical field to check when we can unreserve"
msgstr ""
msgstr "技术领域来检查什么时候我们可以保留"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_mrp_production_consumed_less_than_planned
msgid ""
"Technical field used to see if we have to display a warning or not when "
"confirming an order."
msgstr ""
msgstr "技术领域用于查看在确认订单时是否需要显示警告。"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_mrp_workorder_production_availability
@@ -2764,7 +2798,7 @@ msgstr "技术: 仅用于视图."
#. module: mrp
#: model:ir.model.fields,help:mrp.field_stock_production_lot_use_next_on_work_order_id
msgid "Technical: used to figure out default serial number on work orders"
msgstr ""
msgstr "技术:用于计算工单上的默认序列号"
#. module: mrp
#: code:addons/mrp/models/mrp_bom.py:76 code:addons/mrp/models/mrp_bom.py:254
@@ -2788,7 +2822,7 @@ msgstr "第一作业的部件"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_mrp_document_res_model
msgid "The database object this attachment will be attached to."
msgstr ""
msgstr "该附件将附加到的数据库对象。"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_mrp_production_routing_id
@@ -2805,12 +2839,12 @@ msgid ""
"The list of operations to produce the finished product. The routing is "
"mainly used to compute work center costs during operations and to plan "
"future loads on work centers based on production planning."
msgstr ""
msgstr "生产成品的操作列表。 路线主要用于计算运营期间的工作中心成本,并根据生产计划计划未来的工作中心负载。"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_mrp_workorder_qty_produced
msgid "The number of products already handled by this work order"
msgstr ""
msgstr "此工单已处理的产品数量"
#. module: mrp
#: model:ir.model,name:mrp.model_stock_picking_type
@@ -2822,7 +2856,7 @@ msgstr "操作类型决定分拣视图。"
msgid ""
"The operation where the components are consumed, or the finished products "
"created."
msgstr ""
msgstr "组件消耗的操作或创建的成品。"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_mrp_bom_routing_id
@@ -2830,13 +2864,13 @@ msgid ""
"The operations for producing this BoM. When a routing is specified, the "
"production orders will be executed through work orders, otherwise "
"everything is processed in the production order itself. "
msgstr ""
msgstr "生产这个BoM的操作。 在指定工艺路线时,将通过工单执行生产订单,否则所有工作都将在生产订单本身中进行处理。"
#. module: mrp
#: code:addons/mrp/wizard/mrp_product_produce.py:94
#, python-format
msgid "The production order for '%s' has no quantity specified"
msgstr ""
msgstr "‘%s’ 的生产订单没有指定的数量"
#. module: mrp
#: sql_constraint:mrp.production:0
@@ -2846,7 +2880,7 @@ msgstr "待生产的数量必须是正数!"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_mrp_document_res_id
msgid "The record id this is attached to."
msgstr ""
msgstr "这是附加到记录ID。"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_mrp_routing_workcenter_routing_id
@@ -2854,7 +2888,7 @@ msgid ""
"The routing contains all the Work Centers used and for how long. This will "
"create work orders afterwardswhich alters the execution of the manufacturing"
" order. "
msgstr ""
msgstr "路由包含所有使用的工作中心和多久。 这将在之后创建工单,改变制造订单的执行。"
#. module: mrp
#: code:addons/mrp/models/procurement.py:20
@@ -2862,7 +2896,7 @@ msgstr ""
msgid ""
"There is no Bill of Material found for the product %s. Please define a Bill "
"of Material for this product."
msgstr ""
msgstr "没有为产品 %s找到物料清单。 请为此产品定义物料清单。"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.oee_search_view
@@ -2903,7 +2937,7 @@ msgstr "时间"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_workcenter_time_efficiency
msgid "Time Efficiency"
msgstr ""
msgstr "时间效率"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_workcenter_time_ids
@@ -2946,7 +2980,7 @@ msgstr "设置的时间,以分钟计."
msgid ""
"Time in minutes. Is the time used in manual mode, or the first time supposed"
" in real time when there are not any work orders yet."
msgstr ""
msgstr "时间在几分钟内。 是在手动模式下使用的时间,还是在没有任何工单的情况下第一次实时应用。"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_product_produce_line_qty_to_consume
@@ -3064,7 +3098,7 @@ msgstr "拆解单"
#: code:addons/mrp/models/mrp_unbuild.py:77
#, python-format
msgid "Unbuild Order product quantity has to be strictly positive."
msgstr ""
msgstr "建立订单产品数量必须严格为正数。"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_unbuild
@@ -3078,7 +3112,7 @@ msgstr "拆解单"
msgid ""
"Unbuild Orders are used to break down a product you manufactured or "
"purchased into its components, based on its Bill of Material."
msgstr ""
msgstr "未建立订单是用来分解您生产或购买的产品的组件,根据其材料清单。"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_bom_cost_report
@@ -3151,7 +3185,7 @@ msgstr "Url网址"
msgid ""
"Use the Produce button or process the work orders to create some finished "
"products."
msgstr ""
msgstr "使用“生产”按钮或处理工单来创建一些成品。"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.product_product_form_view_bom_button
@@ -3172,7 +3206,7 @@ msgid ""
"Using a MPS report to schedule your reordering and manufacturing operations "
"is useful if you have long lead time and if you produce based on sales "
"forecasts."
msgstr ""
msgstr "如果您的交货时间很长,并根据销售预测进行生产,那么使用MPS报告来安排重新排序和制造操作是非常有用的。"
#. module: mrp
#: model:ir.model.fields,field_description:mrp.field_mrp_message_valid_until
@@ -3243,6 +3277,7 @@ msgid ""
" operation type. That allows to define procurement rules which trigger "
"different manufacturing orders with different BoMs."
msgstr ""
"当采购具有设定操作类型的“生产”路线时,它将尝试使用相同操作类型的BoM为该产品创建生产订单。 这允许定义触发与不同BoM的不同制造订单的采购规则。"
#. module: mrp
#: model:ir.model.fields,help:mrp.field_stock_warehouse_manufacture_to_resupply
@@ -3342,7 +3377,7 @@ msgstr "工单消息"
msgid ""
"Work Order Messages are used to warn users about any change in the product,\n"
" process, etc. These messages will appear on the involved Work Orders."
msgstr ""
msgstr "工作订单消息用于警告用户产品中的任何更改, 流程等。这些消息将出现在所涉及的工作订单上。"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.res_config_settings_view_form
@@ -3397,7 +3432,7 @@ msgid ""
"Work Orders are operations to be processed at a Work Center to realize a\n"
" Manufacturing Order. Work Orders are trigerred by Manufacturing Orders,\n"
" they are based on the Routing defined on these ones"
msgstr ""
msgstr "工作订单是在工作中心进行处理的操作,以实现 制造订单。制造订单与工作订单无关, 它们基于在这些路由上定义的路由。"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_workorder_todo
@@ -3406,6 +3441,9 @@ msgid ""
" Manufacturing Order. Work Orders are trigerred by Manufacturing Orders,\n"
" they are based on the Routing defined on these ones."
msgstr ""
"工作指令是要在工作中心处理的操作,以实现一个\n"
"             制造订单。 工作订单被制造订单激怒,\n"
"             它们基于这些路由上定义的路由。"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.action_mrp_workorder_workcenter
@@ -3414,6 +3452,9 @@ msgid ""
" Manufacturing Order. Work Orders are trigerred by Manufacturing Orders,\n"
" they are based on the Routing defined on these ones."
msgstr ""
"工作指令是要在工作中心处理的操作,以实现一个\n"
"            制造订单。 工作订单被制造订单激怒,\n"
"            它们基于这些路由上定义的路由。"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_routing_workcenter_form_view
@@ -3505,7 +3546,7 @@ msgstr "不能变更已完成的工单."
#: code:addons/mrp/models/mrp_production.py:554
#, python-format
msgid "You can not consume without telling for which lot you consumed it"
msgstr ""
msgstr "你不能不知道你消费了多少东西"
#. module: mrp
#: code:addons/mrp/models/mrp_bom.py:91
@@ -3522,7 +3563,7 @@ msgid ""
"You cannot cancel a manufacturing order if you have already consumed "
"material. If you want to cancel this MO, please change the "
"consumed quantities to 0."
msgstr ""
msgstr "如果您已经消耗了材料,则无法取消制造订单。 如果你想取消这个MO,请把消耗的数量改为0。"
#. module: mrp
#: code:addons/mrp/wizard/mrp_product_produce.py:204
@@ -3530,20 +3571,20 @@ msgstr ""
msgid ""
"You cannot consume the same serial number twice. Please correct the serial "
"numbers encoded."
msgstr ""
msgstr "您不能使用相同的序列号两次。 请更正编码的序列号。"
#. module: mrp
#: code:addons/mrp/wizard/change_production_qty.py:46
#, python-format
msgid "You have already processed %d. Please input a quantity higher than %d "
msgstr ""
msgstr "你已经处理了 %d。 请输入高于 %d 的数量"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_production_form_view
msgid ""
"You have consumed less material than what was planned. Are you sure you want"
" to close this MO?"
msgstr ""
msgstr "你消耗的材料比计划的要少。 你确定要关闭这个MO吗?"
#. module: mrp
#: code:addons/mrp/models/mrp_workorder.py:406
@@ -3552,7 +3593,7 @@ msgid ""
"You need to define at least one productivity loss in the category "
"'Performance'. Create one from the Manufacturing app, menu: Configuration / "
"Productivity Losses."
msgstr ""
msgstr "您需要在“绩效”类别中至少定义一个生产力损失。 从制造应用程序创建一个菜单:配置/生产力损失。"
#. module: mrp
#: code:addons/mrp/models/mrp_workorder.py:402
@@ -3561,7 +3602,7 @@ msgid ""
"You need to define at least one productivity loss in the category "
"'Productivity'. Create one from the Manufacturing app, menu: Configuration /"
" Productivity Losses."
msgstr ""
msgstr "您需要在“生产力”类别中至少定义一个生产力损失。 从制造应用程序创建一个菜单:配置/生产力损失。"
#. module: mrp
#: code:addons/mrp/models/mrp_workorder.py:460
@@ -3570,7 +3611,7 @@ msgid ""
"You need to define at least one unactive productivity loss in the category "
"'Performance'. Create one from the Manufacturing app, menu: Configuration / "
"Productivity Losses."
msgstr ""
msgstr "您需要在“绩效”类别中定义至少一个无效的生产力损失。 从制造应用程序创建一个菜单:配置/生产力损失。"
#. module: mrp
#: code:addons/mrp/wizard/mrp_product_produce.py:125
@@ -3582,13 +3623,13 @@ msgstr "你需要为产成品提供批号"
#: code:addons/mrp/models/mrp_workorder.py:322
#, python-format
msgid "You should provide a lot/serial number for a component"
msgstr ""
msgstr "您应该提供组件的批号/序列号"
#. module: mrp
#: code:addons/mrp/models/mrp_workorder.py:299
#, python-format
msgid "You should provide a lot/serial number for the final product"
msgstr ""
msgstr "您应该提供最终产品的批号/序列号"
#. module: mrp
#: code:addons/mrp/models/mrp_unbuild.py:95
@@ -3596,7 +3637,7 @@ msgstr ""
msgid ""
"You should specify a manufacturing order in order to find the correct "
"tracked products."
msgstr ""
msgstr "您应该指定一个制造订单,以便找到正确的跟踪产品。"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.res_config_settings_view_form
@@ -3634,17 +3675,17 @@ msgstr "mrp.bom.line"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.production_message
msgid "quantity has been updated."
msgstr ""
msgstr "quantity has been updated."
#. module: mrp
#: model:ir.model,name:mrp.model_report_mrp_mrp_bom_cost_report
msgid "report.mrp.mrp_bom_cost_report"
msgstr ""
msgstr "report.mrp.mrp_bom_cost_report"
#. module: mrp
#: model:ir.model,name:mrp.model_report_mrp_mrp_bom_structure_report
msgid "report.mrp.mrp_bom_structure_report"
msgstr ""
msgstr "report.mrp.mrp_bom_structure_report"
#. module: mrp
#: model:ir.model,name:mrp.model_res_config_settings
@@ -3664,12 +3705,12 @@ msgstr "stock.traceability.report"
#. module: mrp
#: model:ir.model,name:mrp.model_stock_warn_insufficient_qty_unbuild
msgid "stock.warn.insufficient.qty.unbuild"
msgstr ""
msgstr "stock.warn.insufficient.qty.unbuild"
#. module: mrp
#: model:ir.actions.act_window,help:mrp.mrp_workcenter_kanban_action
msgid "to create a new Work Center."
msgstr ""
msgstr "若要创建新的工作中心,请执行以下操作。"
#. module: mrp
#: model:ir.ui.view,arch_db:mrp.mrp_routing_workcenter_form_view
+1 -1
View File
@@ -151,7 +151,7 @@ class StockMove(models.Model):
# all grouped in the same picking.
if not self.picking_type_id:
return self
bom = self.env['mrp.bom'].sudo()._bom_find(product=self.product_id)
bom = self.env['mrp.bom'].sudo()._bom_find(product=self.product_id, company_id=self.company_id.id)
if not bom or bom.type != 'phantom':
return self
phantom_moves = self.env['stock.move']
+1 -1
View File
@@ -48,7 +48,7 @@
<button name="button_unreserve" type="object" string="Unreserve" attrs="{'invisible': [('unreserve_visible', '=', False)]}"/>
<span class="label label-danger" attrs="{'invisible': ['|',('availability', 'in', ('assigned', 'none')), ('state', 'not in', ('confirmed','progress'))]}">Raw materials not available!</span>
<field name="state" widget="statusbar" statusbar_visible="confirmed,progress,done"/>
<button name="action_toggle_is_locked" attrs="{'invisible': ['|', '|', ('state', '=', 'cancel'), ('id', '=', False), ('is_locked', '=', False)]}" string="Unlock" groups="mrp.group_mrp_manager" type="object" help="If the manufacturing order is unlocked you can add to the initial demand."/>
<button name="action_toggle_is_locked" attrs="{'invisible': ['|', '|', ('state', '=', 'cancel'), ('id', '=', False), ('is_locked', '=', False)]}" string="Unlock" groups="mrp.group_mrp_manager" type="object" help="Unlock the manufacturing order to correct what has been consumed or produced."/>
<button name="action_toggle_is_locked" attrs="{'invisible': [('is_locked', '=', True)]}" string="Lock" class="oe_highlight" groups="mrp.group_mrp_manager" type="object"/>
</header>
<sheet>
+1 -1
View File
@@ -132,7 +132,7 @@ class PadCommon(models.AbstractModel):
# Update the `pad_content_field` if the pad is modified
for k, v in list(vals.items()):
field = self._fields[k]
field = self._fields.get(k)
if hasattr(field, 'pad_content_field'):
vals[field.pad_content_field] = self.pad_get_content(v)
+7 -6
View File
@@ -6,18 +6,19 @@
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# max_xu <wangzhanwh@163.com>, 2016
# Gary Wei <Gary.wei@elico-corp.com>, 2017
# Martin Trigaux <mat@odoo.com>, 2017
# Martin Trigaux, 2017
# liAnGjiA <liangjia@qq.com>, 2017
# glovebx <ruinning@163.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2017
# fausthuang <faust_huang@hotmail.com>, 2017
# fausthuang, 2017
# 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:53+0000\n"
"PO-Revision-Date: 2017-09-20 09:53+0000\n"
"Last-Translator: fausthuang <faust_huang@hotmail.com>, 2017\n"
"Last-Translator: 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -38,7 +39,7 @@ msgstr "<i class=\"fa fa-arrow-circle-right\"/> 返回我的帐户"
#. module: payment
#: model:ir.ui.view,arch_db:payment.payment_tokens_list
msgid "<i class=\"fa fa-lock\"> Pay</i>"
msgstr ""
msgstr "<i class=\"fa fa-lock\">付款</i>"
#. module: payment
#: model:ir.ui.view,arch_db:payment.payment_tokens_list
@@ -48,7 +49,7 @@ msgstr ""
#. module: payment
#: model:ir.ui.view,arch_db:payment.payment_tokens_list
msgid "<i class=\"fa fa-trash\"/> Delete"
msgstr ""
msgstr "<i class=\"fa fa-trash\"/>删除"
#. module: payment
#. openerp-web
@@ -1108,7 +1109,7 @@ msgstr "服务器到服务器"
#: code:addons/payment/static/src/js/payment_form.js:266
#, python-format
msgid "Server error"
msgstr ""
msgstr "服务器错误"
#. module: payment
#: model:ir.model.fields,field_description:payment.field_payment_token_short_name
+1 -1
View File
@@ -76,7 +76,7 @@ class AcquirerSips(models.Model):
if self.environment == 'prod':
# For production environment, key version 2 is required
merchant_id = getattr(self, 'sips_merchant_id')
key_version = '2'
key_version = self.env['ir.config_parameter'].sudo().get_param('sips.key_version', '2')
else:
# Test key provided by Atos Wordline works only with version 1
merchant_id = '002001000000001'
+11 -10
View File
@@ -3,15 +3,15 @@
# * point_of_sale
#
# Translators:
# Martin Trigaux <mat@odoo.com>, 2017
# Martin Trigaux, 2017
# Anja Funk <anja.funk@afimage.de>, 2017
# Wolfgang Taferner <wolfgang.transifex@service.wt-io-it.at>, 2017
# Wolfgang Taferner, 2017
# Tina Rittmüller <tr@ife.de>, 2017
# Niki Waibel <niki.waibel@gmail.com>, 2017
# Niki Waibel, 2017
# Ermin Trevisan <trevi@twanda.com>, 2017
# darenkster <inactive+darenkster@transifex.com>, 2017
# Philipp Hug <philipp@hug.cx>, 2017
# Renzo Meister <info@jamotion.ch>, 2017
# Renzo Meister, 2017
# JackTheHunter <Maximilian.N98@gmail.com>, 2017
# Malte Jansen <work@maltejansen.de>, 2017
# Andreas Stauder <andreas.stauder@brain-tec.ch>, 2017
@@ -24,7 +24,7 @@
# Martin K <martinkuenz@gmail.com>, 2017
# Alexander Klockhaus <a.klockhaus@gmail.com>, 2017
# Ralf Hilgenstock <rh@dialoge.info>, 2017
# Andi <flimflam@salasar.de>, 2017
# Andi, 2017
# Rudolf Schnapka <rs@techno-flex.de>, 2017
# Fabian Liesch <fabian.liesch@gmail.com>, 2017
# Constantin Ehrenstein <transifex@skiller.eu>, 2017
@@ -32,13 +32,14 @@
# DE T1 <e2f8846@yahoo.com>, 2017
# Bülent Tiknas <btiknas@googlemail.com>, 2017
# key six <mobile.umts@gmail.com>, 2017
# Juan José Trujillo <juanjosetrujillo@gmx.de>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~11.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-12-13 14:36+0000\n"
"PO-Revision-Date: 2017-12-13 14:36+0000\n"
"Last-Translator: key six <mobile.umts@gmail.com>, 2017\n"
"Last-Translator: Juan José Trujillo <juanjosetrujillo@gmx.de>, 2018\n"
"Language-Team: German (https://www.transifex.com/odoo/teams/41243/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -2404,7 +2405,7 @@ msgstr "Zahlungen"
#: code:addons/point_of_sale/static/src/xml/pos.xml:939
#, python-format
msgid "Payments:"
msgstr ""
msgstr "Zahlungen"
#. module: point_of_sale
#: model:ir.filters,name:point_of_sale.filter_orders_per_session
@@ -2473,7 +2474,7 @@ msgstr "Bitte Partner für diesen Verkauf definieren"
#: code:addons/point_of_sale/static/src/xml/pos.xml:533
#, python-format
msgid "Please select a payment method."
msgstr ""
msgstr "Bitte wählen Sie eine Zahlungsmethode"
#. module: point_of_sale
#. openerp-web
@@ -2643,7 +2644,7 @@ msgstr "Gebucht"
#. module: point_of_sale
#: model:ir.model.fields,field_description:point_of_sale.field_pos_config_iface_precompute_cash
msgid "Prefill Cash Payment"
msgstr ""
msgstr "Barzahlung vorausfüllen"
#. module: point_of_sale
#: model:ir.ui.view,arch_db:point_of_sale.pos_config_view_form
@@ -3860,7 +3861,7 @@ msgstr "Gesamtpreis"
#: code:addons/point_of_sale/static/src/xml/pos.xml:868
#, python-format
msgid "Total Taxes"
msgstr ""
msgstr "Gesamte Steuern"
#. module: point_of_sale
#: model:ir.model.fields,help:point_of_sale.field_pos_session_cash_register_total_entry_encoding
+4 -4
View File
@@ -4,8 +4,8 @@
#
# Translators:
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# Martin Trigaux <mat@odoo.com>, 2017
# Bo Cao <cao.poobo@hotmail.com>, 2017
# Martin Trigaux, 2017
# Bo Cao, 2017
# 卓忆科技 <zhanghao@jointd.com>, 2017
# Talway <9010446@qq.com>, 2017
# Alex Duan <alex.duan@elico-corp.com>, 2017
@@ -509,7 +509,7 @@ msgstr "可用价格表"
#. module: point_of_sale
#: model:ir.ui.view,arch_db:point_of_sale.view_account_journal_search_inherit_point_of_sale
msgid "Available for Point of Sale"
msgstr ""
msgstr "POS可用"
#. module: point_of_sale
#: model:ir.ui.view,arch_db:point_of_sale.product_template_search_view_pos
@@ -520,7 +520,7 @@ msgstr "POS可用"
#: model:ir.model.fields,field_description:point_of_sale.field_product_product_available_in_pos
#: model:ir.model.fields,field_description:point_of_sale.field_product_template_available_in_pos
msgid "Available in Point of Sale"
msgstr ""
msgstr "POS可用"
#. module: point_of_sale
#: model:ir.model.fields,field_description:point_of_sale.field_report_pos_order_average_price
+4 -1
View File
@@ -1018,7 +1018,10 @@ class ReportSaleDetails(models.AbstractModel):
for tax in line_taxes['taxes']:
taxes.setdefault(tax['id'], {'name': tax['name'], 'tax_amount':0.0, 'base_amount':0.0})
taxes[tax['id']]['tax_amount'] += tax['amount']
taxes[tax['id']]['base_amount'] += line.price_subtotal
taxes[tax['id']]['base_amount'] += tax['base']
else:
taxes.setdefault(0, {'name': _('No Taxes'), 'tax_amount':0.0, 'base_amount':0.0})
taxes[0]['base_amount'] += line.price_subtotal_incl
st_line_ids = self.env["account.bank.statement.line"].search([('pos_statement_id', 'in', orders.ids)]).ids
if st_line_ids:
+3 -3
View File
@@ -331,7 +331,7 @@ exports.PosModel = Backbone.Model.extend({
ids: function(self){ return [self.config.currency_id[0]]; },
loaded: function(self, currencies){
self.currency = currencies[0];
if (self.currency.rounding > 0) {
if (self.currency.rounding > 0 && self.currency.rounding < 1) {
self.currency.decimals = Math.ceil(Math.log(1.0 / self.currency.rounding) / Math.log(10));
} else {
self.currency.decimals = 0;
@@ -528,7 +528,7 @@ exports.PosModel = Backbone.Model.extend({
var fields = typeof model.fields === 'function' ? model.fields(self,tmp) : model.fields;
var domain = typeof model.domain === 'function' ? model.domain(self,tmp) : model.domain;
var context = typeof model.context === 'function' ? model.context(self,tmp) : model.context;
var context = typeof model.context === 'function' ? model.context(self,tmp) : model.context || {};
var ids = typeof model.ids === 'function' ? model.ids(self,tmp) : model.ids;
var order = typeof model.order === 'function' ? model.order(self,tmp): model.order;
progress += progress_step;
@@ -536,7 +536,7 @@ exports.PosModel = Backbone.Model.extend({
if( model.model ){
var params = {
model: model.model,
context: context,
context: _.extend(context, session.user_context || {}),
};
if (model.ids) {
+5 -3
View File
@@ -3,9 +3,9 @@
# * portal
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Martin Trigaux <mat@odoo.com>, 2017
# fausthuang <faust_huang@hotmail.com>, 2017
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# Martin Trigaux, 2017
# fausthuang, 2017
# waveyeung <waveyeung@qq.com>, 2017
# Talway <9010446@qq.com>, 2017
# Siyuan Gu <siyuancn@hotmail.com>, 2017
@@ -117,6 +117,8 @@ msgid ""
"Confirm\n"
" <span class=\"fa fa-long-arrow-right\"/>"
msgstr ""
"确认\n"
"<span class=\"fa fa-long-arrow-right\"/>"
#. module: portal
#: model:ir.model.fields,field_description:portal.field_portal_wizard_user_partner_id
+19 -12
View File
@@ -52,21 +52,28 @@ var PortalChatter = Widget.extend({
params: this._messageFetchPrepareParams()
}), this._loadTemplates()
).then(function(result){
// bind events
self.on("change:messages", self, self._renderMessages);
self.on("change:message_count", self, function(){
self._renderMessageCount();
self.set('pager', self._pager(self._current_page));
});
self.on("change:pager", self, self._renderPager);
self.on("change:domain", self, self._onChangeDomain);
// set options and parameters
self.options = _.extend(self.options, result['options'] || {});
self.set('message_count', self.options['message_count']);
self.set('messages', self.preprocessMessages(result['messages']));
self.result = result
return result;
});
},
/**
* @override
*/
start: function () {
// bind events
this.on("change:messages", this, this._renderMessages);
this.on("change:message_count", this, function(){
this._renderMessageCount();
this.set('pager', this._pager(this._current_page));
});
this.on("change:pager", this, this._renderPager);
this.on("change:domain", this, this._onChangeDomain);
// set options and parameters
this.options = _.extend(this.options, this.result['options'] || {});
this.set('message_count', this.options['message_count']);
this.set('messages', this.preprocessMessages(this.result['messages']));
return this._super.apply(this, arguments);
},
//--------------------------------------------------------------------------
// Public
+5 -4
View File
@@ -3,17 +3,18 @@
# * pos_restaurant
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# Joray <13637815@qq.com>, 2017
# Gary Wei <Gary.wei@elico-corp.com>, 2017
# liulixia <liu.lixia@elico-corp.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:52+0000\n"
"PO-Revision-Date: 2017-09-20 09:52+0000\n"
"Last-Translator: liulixia <liu.lixia@elico-corp.com>, 2017\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -29,7 +30,7 @@ msgstr "<strong>楼层名称: </strong>"
#. module: pos_restaurant
#: model:ir.ui.view,arch_db:pos_restaurant.view_restaurant_floor_kanban
msgid "<strong>Point of Sale: </strong>"
msgstr ""
msgstr "<strong>POS:</strong>"
#. module: pos_restaurant
#: model:ir.model.fields,help:pos_restaurant.field_restaurant_floor_background_image
@@ -67,7 +68,7 @@ msgstr "增加备注"
#. module: pos_restaurant
#: model:ir.ui.view,arch_db:pos_restaurant.pos_config_view_form_inherit_restaurant
msgid "Add notes to orderlines"
msgstr ""
msgstr "添加备注到订单行"
#. module: pos_restaurant
#: model:ir.model.fields,help:pos_restaurant.field_pos_config_iface_orderline_notes
+6 -6
View File
@@ -3,19 +3,19 @@
# * project
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# 苏州远鼎 <tiexinliu@126.com>, 2016
# Bo Cao <cao.poobo@hotmail.com>, 2017
# Bo Cao, 2017
# Ted Wang <feiyuwang2012@gmail.com>, 2017
# Talway <9010446@qq.com>, 2017
# liAnGjiA <liangjia@qq.com>, 2017
# liulixia <liu.lixia@elico-corp.com>, 2017
# Martin Trigaux <mat@odoo.com>, 2017
# Martin Trigaux, 2017
# Gary Wei <Gary.wei@elico-corp.com>, 2017
# 卓忆科技 <zhanghao@jointd.com>, 2017
# Maie <m@maie.name>, 2017
# 老窦 北京 <2662059195@qq.com>, 2017
# fausthuang <faust_huang@hotmail.com>, 2017
# fausthuang, 2017
# Luke <cialuo@qq.com>, 2017
msgid ""
msgstr ""
@@ -488,7 +488,7 @@ msgstr "已归档"
#. module: project
#: model:ir.ui.view,arch_db:project.view_task_form2
msgid "Assign to Me"
msgstr ""
msgstr "分配给我"
#. module: project
#: model:ir.model.fields,field_description:project.field_report_project_task_user_date_start
@@ -750,7 +750,7 @@ msgstr "创建一个新的项目"
#. module: project
#: model:ir.model.fields,field_description:project.field_project_task_merge_wizard_create_new_task
msgid "Create a new task"
msgstr ""
msgstr "创建一个新任务"
#. module: project
#: model:ir.model.fields,field_description:project.field_project_project_create_uid
+6 -1
View File
@@ -5,7 +5,7 @@
# Translators:
# Yenthe Van Ginneken <yenthespam@gmail.com>, 2016
# Stephan Van Dyck <stephan.vandyck@vanroey.be>, 2016
# Martin Trigaux <mat@odoo.com>, 2016
# Martin Trigaux, 2016
# Erwin van der Ploeg <erwin@odooexperts.nl>, 2016
# Eric Geens <ericgeens@yahoo.com>, 2016
# Cas Vissers <casvissers@brahoo.nl>, 2016
@@ -2005,6 +2005,11 @@ msgid ""
"on-demand flow. The requested delivery address will be the customer delivery"
" address and not your warehouse."
msgstr ""
"Dit voegt een dropshipping-route toe, welke toegepast kan worden op "
"producten om uw leveranciers te vragen om direct aan uw klanten te leveren. "
"Een dropship product genereert een inkoop offerte aanvraag zodra de "
"verkooporder is bevestigd. Het proces is compleet gebaseerd op vraag. Het "
"afleveradres is het afleveradres van de klant en niet van uw magazijn."
#. module: purchase
#: model:ir.ui.view,arch_db:purchase.purchase_order_form
+2 -4
View File
@@ -94,13 +94,11 @@ class AccountInvoice(models.Model):
self.purchase_id = False
return {}
@api.onchange('currency_id', 'date_invoice')
@api.onchange('currency_id')
def _onchange_currency_id(self):
if self.currency_id:
for line in self.invoice_line_ids.filtered(lambda r: r.purchase_line_id):
if line.purchase_id.currency_id != self.currency_id:
line.price_unit = line.purchase_id.currency_id.with_context(date=self.date_invoice)\
.compute(line.purchase_line_id.price_unit, self.currency_id, round=False)
line.price_unit = line.purchase_id.currency_id.with_context(date=self.date_invoice).compute(line.purchase_line_id.price_unit, self.currency_id, round=False)
@api.onchange('invoice_line_ids')
def _onchange_origin(self):
+5 -4
View File
@@ -6,14 +6,15 @@
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# Shenglan Chen <dodolobox@gmail.com>, 2016
# Eddie Lim <bhweelim@yahoo.com>, 2017
# Martin Trigaux <mat@odoo.com>, 2017
# Martin Trigaux, 2017
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:53+0000\n"
"PO-Revision-Date: 2017-09-20 09:53+0000\n"
"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -31,7 +32,7 @@ msgstr ""
#. module: rating
#: model:ir.ui.view,arch_db:rating.rating_rating_view_form
msgid "<span class=\"o_stat_text\">Resource</span>"
msgstr ""
msgstr "<span class=\"o_stat_text\">资源</span>"
#. module: rating
#: model:ir.model.fields,help:rating.field_rating_rating_access_token
@@ -120,7 +121,7 @@ msgstr "分组"
#: model:ir.ui.view,arch_db:rating.rating_rating_view_search
#: selection:rating.rating,rating_text:0
msgid "Highly dissatisfied"
msgstr ""
msgstr "非常不满意"
#. module: rating
#: model:ir.model.fields,field_description:rating.field_rating_mixin_id
+35 -15
View File
@@ -27,12 +27,12 @@ msgstr ""
#. module: mrp_repair
#: model:mail.template,report_name:mrp_repair.mail_template_mrp_repair_quotation
msgid "${(object.name or '').replace('/','_')}"
msgstr ""
msgstr "${(object.name or ‘’).replace(‘/‘,’_’)}"
#. module: mrp_repair
#: model:mail.template,subject:mrp_repair.mail_template_mrp_repair_quotation
msgid "${object.partner_id.name} Repair Orders (Ref ${object.name or 'n/a' })"
msgstr ""
msgstr "${object.partner_id.name} 维修单 (Ref ${object.name or ’n/a’ })"
#. module: mrp_repair
#: model:ir.ui.view,arch_db:mrp_repair.report_mrprepairorder
@@ -54,6 +54,12 @@ msgid ""
"* The 'Done' status is set when repairing is completed.\n"
"* The 'Cancelled' status is used when user cancel repair order."
msgstr ""
"*“草稿”状态用于用户正在编码新的和未经确认的维修订单。\n"
"*用户确认维修订单时使用“确认”状态。\n"
"*“准备维修”状态用于开始维修,用户只有在维修订单确认后才能开始维修。\n"
"*“待开票”状态用于在维修完成之前或之后生成发票。\n"
"*维修完成后,“完成”状态将被设置。\n"
"*用户取消维修订单时使用“取消”状态。"
#. module: mrp_repair
#: model:mail.template,body_html:mrp_repair.mail_template_mrp_repair_quotation
@@ -73,6 +79,20 @@ msgid ""
" <p>Thank you,</p>\n"
" </data>"
msgstr ""
"<?xml version=\"1.0\"?>\n"
"<data><p>Dear ${object.partner_id.name}</p>\n"
" <p>\n"
" Here is your repair order ${doc_name} <strong>${object.name}</strong>\n"
" % if object.origin:\n"
" (with reference: ${object.origin} )\n"
" % endif\n"
" % if object.invoice_method != ‘none’:\n"
" amounting in <strong>${object.amount_total} ${object.pricelist_id.currency_id.name}.</strong>\n"
" % endif\n"
" </p>\n"
" <p>You can reply to this email if you have any questions.</p>\n"
" <p>Thank you,</p>\n"
" </data>"
#. module: mrp_repair
#: model:ir.ui.view,arch_db:mrp_repair.report_mrprepairorder
@@ -82,17 +102,17 @@ msgstr "<i>(添加)</i>"
#. module: mrp_repair
#: model:ir.ui.view,arch_db:mrp_repair.report_mrprepairorder
msgid "<strong>Lot/Serial Number:</strong>"
msgstr ""
msgstr "<strong>批次/序列号</strong>"
#. module: mrp_repair
#: model:ir.ui.view,arch_db:mrp_repair.report_mrprepairorder
msgid "<strong>Operations</strong>"
msgstr ""
msgstr "<strong>操作</strong>"
#. module: mrp_repair
#: model:ir.ui.view,arch_db:mrp_repair.report_mrprepairorder
msgid "<strong>Parts</strong>"
msgstr ""
msgstr "<strong>零件</strong>"
#. module: mrp_repair
#: model:ir.ui.view,arch_db:mrp_repair.report_mrprepairorder
@@ -122,7 +142,7 @@ msgstr "<strong>总计</strong>"
#. module: mrp_repair
#: model:ir.ui.view,arch_db:mrp_repair.report_mrprepairorder
msgid "<strong>Warranty:</strong>"
msgstr ""
msgstr "<strong>保证:</strong>"
#. module: mrp_repair
#: selection:mrp.repair.line,type:0
@@ -153,7 +173,7 @@ msgstr "修理前"
#: code:addons/mrp_repair/models/mrp_repair.py:237
#, python-format
msgid "Can only confirm draft repairs."
msgstr ""
msgstr "只能确认草稿维修单。"
#. module: mrp_repair
#: model:ir.ui.view,arch_db:mrp_repair.view_cancel_repair
@@ -567,7 +587,7 @@ msgstr "业务伙伴"
#: model:ir.model.fields,field_description:mrp_repair.field_mrp_repair_operations
#: model:ir.ui.view,arch_db:mrp_repair.view_repair_order_form
msgid "Parts"
msgstr ""
msgstr "零件"
#. module: mrp_repair
#: model:ir.ui.view,arch_db:mrp_repair.report_mrprepairorder
@@ -715,25 +735,25 @@ msgstr "修理参考"
#: code:addons/mrp_repair/models/mrp_repair.py:203
#, python-format
msgid "Repair must be canceled in order to reset it to draft."
msgstr ""
msgstr "必须取消维修单,以便将其重置为草稿。"
#. module: mrp_repair
#: code:addons/mrp_repair/models/mrp_repair.py:408
#, python-format
msgid "Repair must be confirmed before starting reparation."
msgstr ""
msgstr "维修单必须确认后才能进行维修。"
#. module: mrp_repair
#: code:addons/mrp_repair/models/mrp_repair.py:436
#, python-format
msgid "Repair must be repaired in order to make the product moves."
msgstr ""
msgstr "维修单必须维修后,才能移动"
#. module: mrp_repair
#: code:addons/mrp_repair/models/mrp_repair.py:419
#, python-format
msgid "Repair must be under repair in order to end reparation."
msgstr ""
msgstr "维修单必须维修,以便结束赔偿。"
#. module: mrp_repair
#: code:addons/mrp_repair/models/mrp_repair.py:251
@@ -865,7 +885,7 @@ msgstr "修理单在序列号上用质保期,这样是为了标明是否要给
msgid ""
"The status of a repair line is set automatically to the one of the linked "
"repair order."
msgstr ""
msgstr "修复线的状态自动设置为链接修复顺序之一。"
#. module: mrp_repair
#: model:ir.ui.view,arch_db:mrp_repair.view_cancel_repair
@@ -960,7 +980,7 @@ msgstr "你必须在修理单上选择业务伙伴的发票地址!"
msgid ""
"You have to select a pricelist in the Repair form !\n"
" Please set one before choosing a product."
msgstr ""
msgstr "您必须在维修表单中选择一个价目表! 在选择产品之前请设置一个。"
#. module: mrp_repair
#: model:ir.model,name:mrp_repair.model_stock_traceability_report
@@ -970,4 +990,4 @@ msgstr "stock.traceability.report"
#. module: mrp_repair
#: model:ir.model,name:mrp_repair.model_stock_warn_insufficient_qty_repair
msgid "stock.warn.insufficient.qty.repair"
msgstr ""
msgstr "stock.warn.insufficient.qty.repair"
+6 -4
View File
@@ -142,6 +142,8 @@ class ResourceCalendar(models.Model):
)
def _interval_and(self, interval, interval_dst):
if interval.start_datetime > interval_dst.end_datetime or interval.end_datetime < interval_dst.start_datetime:
return None
return self._interval_obj(
interval.start_datetime > interval_dst.start_datetime and interval.start_datetime or interval_dst.start_datetime,
interval.end_datetime < interval_dst.end_datetime and interval.end_datetime or interval_dst.end_datetime,
@@ -406,10 +408,10 @@ class ResourceCalendar(models.Model):
start_datetime=datetime.datetime.combine(day_date, start_time),
end_datetime=datetime.datetime.combine(day_date, end_time))
final_intervals = [
self._interval_and(leave_interval, work_interval)
for leave_interval in leaves_intervals
for work_interval in working_intervals]
final_intervals = [i for i in
[self._interval_and(leave_interval, work_interval)
for leave_interval in leaves_intervals
for work_interval in working_intervals] if i]
# adapt tz
return [self._interval_new(
+6
View File
@@ -55,6 +55,12 @@ class TestIntervals(TestResourceCommon):
# Third interval: 04, 17-21, 18-19 being inside 17-21
self.assertEqual(cleaned_intervals[2][:2], (Datetime.from_string('2013-02-04 17:00:00'), Datetime.from_string('2013-02-04 21:00:00')))
def test_interval_and(self):
self.assertEqual(self.env['resource.calendar']._interval_and(self.intervals[0], self.intervals[1]),
self.calendar._interval_new(Datetime.from_string('2013-02-04 09:00:00'), Datetime.from_string('2013-02-04 11:00:00')))
self.assertEqual(self.env['resource.calendar']._interval_and(self.intervals[2], self.intervals[3]),
None)
def test_interval_remove(self):
working_interval = self.calendar._interval_new(Datetime.from_string('2013-02-04 08:00:00'), Datetime.from_string('2013-02-04 18:00:00'))
result = self.env['resource.calendar']._interval_remove_leaves(working_interval, self.intervals)
+2 -1
View File
@@ -826,8 +826,9 @@ class SaleOrderLine(models.Model):
# Prevent writing on a locked SO.
protected_fields = self._get_protected_fields()
if 'done' in self.mapped('order_id.state') and any(f in values.keys() for f in protected_fields):
protected_fields_modified = list(set(protected_fields) & set(values.keys()))
fields = self.env['ir.model.fields'].search([
('name', 'in', protected_fields), ('model', '=', self._name)
('name', 'in', protected_fields_modified), ('model', '=', self._name)
])
raise UserError(
_('It is forbidden to modify the following fields in a locked order:\n%s')
+11 -9
View File
@@ -5,17 +5,18 @@
# Translators:
# José Matias Zuazo <jose.zuazo@tpsistemas.com.ar>, 2017
# e2f_es_ t6 <e2f_es_t6@outlook.com>, 2017
# Martin Trigaux <mat@odoo.com>, 2017
# Martin Trigaux, 2017
# Pedro M. Baeza <pedro.baeza@gmail.com>, 2017
# Inigo Zuluaga <inigo_zuluaga@yahoo.es>, 2017
# Alejandro Santana <alejandrosantana@anubia.es>, 2017
# Sarai Osorio <sarai.osorio@jarsa.com.mx>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-10-10 11:35+0000\n"
"PO-Revision-Date: 2017-10-10 11:35+0000\n"
"Last-Translator: Alejandro Santana <alejandrosantana@anubia.es>, 2017\n"
"Last-Translator: Sarai Osorio <sarai.osorio@jarsa.com.mx>, 2018\n"
"Language-Team: Spanish (https://www.transifex.com/odoo/teams/41243/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -64,7 +65,7 @@ msgstr "ID (identificación)"
#: code:addons/sms/models/mail_thread.py:53
#, python-format
msgid "Insufficient credit, unable to send SMS message: %s"
msgstr ""
msgstr "Crédito insuficiente, no puede enviar mensajes SMS:%s"
#. module: sms
#: model:ir.model.fields,field_description:sms.field_sms_api___last_update
@@ -91,13 +92,14 @@ msgstr "Mensaje"
#: code:addons/sms/wizard/send_sms.py:48
#, python-format
msgid "Missing mobile number for %s."
msgstr ""
msgstr "Falta el número de móvil para%s."
#. module: sms
#: code:addons/sms/models/mail_thread.py:55
#, python-format
msgid "No mobile number defined, unable to send SMS message: %s"
msgstr ""
"Sin número de teléfono definido, no se puede enviar mensaje de texto: %s"
#. module: sms
#: model:ir.model.fields,field_description:sms.field_sms_send_sms_recipients
@@ -108,7 +110,7 @@ msgstr "Destinatarios"
#: code:addons/sms/models/mail_thread.py:48
#, python-format
msgid "SMS message sent: %s"
msgstr ""
msgstr "Mensaje SMS enviado: %s"
#. module: sms
#: model:ir.ui.view,arch_db:sms.send_sms_view_form
@@ -119,19 +121,19 @@ msgstr "Enviar"
#: model:ir.actions.act_window,name:sms.send_sms_action
#: model:ir.actions.act_window,name:sms.send_sms_form_action
msgid "Send SMS"
msgstr ""
msgstr "Enviar SMS"
#. module: sms
#: model:ir.ui.view,arch_db:sms.send_sms_view_form
msgid "Send an SMS"
msgstr ""
msgstr "Enviar un SMS"
#. module: sms
#: model:ir.model,name:sms.model_sms_api
msgid "sms.api"
msgstr ""
msgstr "sms.api"
#. module: sms
#: model:ir.model,name:sms.model_sms_send_sms
msgid "sms.send_sms"
msgstr ""
msgstr "sms.send_sms"
+1 -1
View File
@@ -35,7 +35,7 @@ class SendSMS(models.TransientModel):
def _sms_sanitization(self, partner, field_name):
number = partner[field_name]
if _sms_phonenumbers_lib_imported:
if number and _sms_phonenumbers_lib_imported:
country = self._phone_get_country(partner)
country_code = country.code if country else None
try:
+1 -1
View File
@@ -244,7 +244,7 @@
<field name="backorder_id" readonly="1" attrs="{'invisible': [('backorder_id','=',False)]}"/>
</group>
<group>
<field name="scheduled_date" attrs="{'readonly': [('id', '=', False)]}"/>
<field name="scheduled_date" attrs="{'readonly': [('id', '=', False)], 'required': [('id', '!=', False)]}"/>
<field name="origin" placeholder="e.g. PO0032"/>
<field name="owner_id" groups="stock.group_tracking_owner"/>
<div groups="stock.group_tracking_owner" colspan="2" col="2">
@@ -43,9 +43,9 @@
<field name="inherit_id" ref="stock.view_stock_return_picking_form"/>
<field name="model">stock.return.picking</field>
<field name="arch" type="xml">
<field name="uom_id" position="after">
<xpath expr="//field[@name='product_return_moves']/tree" position="inside">
<field name="to_refund"/>
</field>
</xpath>
</field>
</record>
+55 -46
View File
@@ -4,8 +4,8 @@
#
# Translators:
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# Martin Trigaux <mat@odoo.com>, 2016
# fausthuang <faust_huang@hotmail.com>, 2016
# Martin Trigaux, 2016
# fausthuang, 2016
# Gary Wei <Gary.wei@elico-corp.com>, 2016
# Talway <9010446@qq.com>, 2016
# xiaobin wu <bd5dml@gmail.com>, 2016
@@ -18,13 +18,14 @@
# 菜小蛇 <lttlsnk@gmail.com>, 2016
# 苏州远鼎 <tiexinliu@126.com>, 2017
# 卓忆科技 <zhanghao@jointd.com>, 2017
# 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server saas~11.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-12-13 14:37+0000\n"
"PO-Revision-Date: 2017-12-13 14:37+0000\n"
"Last-Translator: 卓忆科技 <zhanghao@jointd.com>, 2017\n"
"Last-Translator: 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -51,7 +52,7 @@ msgstr " [我]"
#: code:addons/web/static/src/js/chrome/search_filters.js:226
#, python-format
msgid " and "
msgstr ""
msgstr " 与"
#. module: web
#. openerp-web
@@ -154,6 +155,9 @@ msgid ""
" &lt;body class=\"ie9\"&gt;\n"
" &lt;![endif]--&gt;"
msgstr ""
"&lt;!—[if lt IE 10]&gt;\n"
" &lt;body class=“ie9”&gt;\n"
" &lt;![endif]—&gt;"
#. module: web
#: model:ir.ui.view,arch_db:web.minimal_layout
@@ -200,7 +204,7 @@ msgstr "'%s' 不是正确的整数"
#: code:addons/web/static/src/js/fields/field_utils.js:483
#, python-format
msgid "'%s' is not a correct monetary field"
msgstr ""
msgstr "‘%s’ 不是正确的货币字段"
#. module: web
#. openerp-web
@@ -228,7 +232,7 @@ msgstr "(无标签)"
#: code:addons/web/static/src/js/fields/field_utils.js:239
#, python-format
msgid "1 record"
msgstr ""
msgstr "1条记录"
#. module: web
#: model:ir.ui.view,arch_db:web.menu_secondary
@@ -247,21 +251,21 @@ msgstr "<span>Odoo</span>"
msgid ""
"A popup window with your report was blocked. You may need to change your "
"browser settings to allow popup windows for this page."
msgstr ""
msgstr "你的报告弹出窗口被封锁了。您可能需要更改浏览器设置,以允许此页的弹出窗口。"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:589
#, python-format
msgid "ALL"
msgstr ""
msgstr "所有"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:590
#, python-format
msgid "ANY"
msgstr ""
msgstr "任何"
#. module: web
#. openerp-web
@@ -452,7 +456,7 @@ msgstr "发生了错误"
msgid ""
"An unknown CORS error occured. The error probably originates from a "
"JavaScript file served from a different origin."
msgstr ""
msgstr "发生未知的CORS错误。 该错误可能来自不同来源的JavaScript文件。"
#. module: web
#. openerp-web
@@ -548,7 +552,7 @@ msgstr "柱状图"
msgid ""
"Binary fields can not be exported to Excel unless their content is "
"base64-encoded. That does not seem to be the case for %s."
msgstr ""
msgstr "二进制字段不能导出到Excel,除非他们的内容是Base64编码。这似乎不适用于 %s。"
#. module: web
#. openerp-web
@@ -1229,6 +1233,9 @@ msgid ""
"\n"
"Tip: try to flip axis, filter further or reduce the number of measures."
msgstr ""
"为了兼容Excel,如果列数超过256,则不能导出数据。\n"
"\n"
"提示:尝试翻转轴,进一步过滤或减少测量次数。"
#. module: web
#. openerp-web
@@ -1290,7 +1297,7 @@ msgstr ""
#: code:addons/web/static/src/js/core/dialog.js:250
#, python-format
msgid "I am sure about this."
msgstr ""
msgstr "我确信这一点。"
#. module: web
#. openerp-web
@@ -1335,7 +1342,7 @@ msgstr "无效的数据"
msgid ""
"Invalid database name. Only alphanumerical characters, underscore, hyphen "
"and dot are allowed."
msgstr ""
msgstr "数据库名称无效。只允许字母数字字符,下划线,连字符和点。"
#. module: web
#. openerp-web
@@ -1364,7 +1371,7 @@ msgstr "非法的模式"
#: code:addons/web/static/src/js/widgets/debug_manager.js:208
#, python-format
msgid "JS Mobile Tests"
msgstr ""
msgstr "JS移动端测试"
#. module: web
#. openerp-web
@@ -1471,7 +1478,7 @@ msgstr "M2O搜索字段目前不支持多个默认值"
#. module: web
#: model:ir.ui.view,arch_db:web.external_layout_boxed
msgid "Mail:"
msgstr ""
msgstr "Mail:"
#. module: web
#: model:ir.ui.view,arch_db:web.login_layout
@@ -1498,14 +1505,14 @@ msgstr "匹配"
#: code:addons/web/static/src/xml/base.xml:603
#, python-format
msgid "Match records with"
msgstr ""
msgstr "配记录"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:601
#, python-format
msgid "Match records with the following rule:"
msgstr ""
msgstr "根据以下规则匹配记录:"
#. module: web
#. openerp-web
@@ -1612,7 +1619,7 @@ msgstr "我的Odoo.com帐号"
#: code:addons/web/static/src/xml/base.xml:591
#, python-format
msgid "NONE"
msgstr ""
msgstr "无"
#. module: web
#. openerp-web
@@ -1835,7 +1842,7 @@ msgstr "仅整型数值是合法的。"
#, python-format
msgid ""
"Only employee can access this database. Please contact the administrator."
msgstr ""
msgstr "只有员工才能访问这个数据库。请与管理员联系。"
#. module: web
#. openerp-web
@@ -1941,7 +1948,7 @@ msgstr "透视表"
#: code:addons/web/static/src/js/views/list/list_renderer.js:327
#, python-format
msgid "Please click on the \"save\" button first"
msgstr ""
msgstr "请先点击“保存”按钮"
#. module: web
#. openerp-web
@@ -1993,7 +2000,7 @@ msgstr ""
#, python-format
msgid ""
"Please use the copy button to report the error to your support service."
msgstr ""
msgstr "请使用复制按钮将错误报告给您的支持服务。"
#. module: web
#: model:ir.ui.view,arch_db:web.menu_secondary
@@ -2112,7 +2119,7 @@ msgstr "恢复记录"
#: code:addons/web/static/src/xml/base.xml:223
#, python-format
msgid "Run JS Mobile Tests"
msgstr ""
msgstr "运行JS 移动端测试"
#. module: web
#. openerp-web
@@ -2380,7 +2387,7 @@ msgstr ""
#: code:addons/web/static/src/js/widgets/switch_company_menu.js:44
#, python-format
msgid "Tap on the list to change company"
msgstr ""
msgstr "点击列表更改公司"
#. module: web
#. openerp-web
@@ -2401,7 +2408,7 @@ msgstr "电话:"
#: code:addons/web/static/src/js/widgets/domain_selector.js:567
#, python-format
msgid "The domain you entered is not properly formed"
msgstr ""
msgstr "您输入的域格式不正确。"
#. module: web
#. openerp-web
@@ -2410,7 +2417,7 @@ msgstr ""
msgid ""
"The field chain is not valid. Did you maybe use a non-existing field name or"
" followed a non-relational field?"
msgstr ""
msgstr "字段链无效。 你可能使用了一个不存在的字段名称,或者跟着一个非关系的字段?"
#. module: web
#. openerp-web
@@ -2446,7 +2453,7 @@ msgstr "你提供的原密码是错误的,密码没有改变"
msgid ""
"The record has been modified, your changes will be discarded. Do you want to"
" proceed?"
msgstr ""
msgstr "记录已被修改,您的更改将被丢弃。你想继续吗?"
#. module: web
#. openerp-web
@@ -2470,7 +2477,7 @@ msgstr "字段类型 '%s' 必须是一个关联到 'ir.attachment'模型的 man
msgid ""
"There are too many rows (%s rows, limit: 65535) to export as Excel 97-2003 "
"(.xls) format. Consider splitting the export."
msgstr ""
msgstr "有太多行 (%s行, 限制: 65535) 导出为 Excel 97-2003 (. xls) 格式。考虑拆分导出。"
#. module: web
#. openerp-web
@@ -2484,7 +2491,7 @@ msgstr "上传文件时发生了问题"
#: code:addons/web/static/src/js/widgets/domain_selector.js:459
#, python-format
msgid "This domain is not supported."
msgstr ""
msgstr "此域不受支持"
#. module: web
#. openerp-web
@@ -2725,17 +2732,17 @@ msgstr "警告"
#. module: web
#: model:ir.ui.view,arch_db:web.benchmark_suite
msgid "Web Benchmarks"
msgstr ""
msgstr "Web 基准"
#. module: web
#: model:ir.ui.view,arch_db:web.qunit_mobile_suite
msgid "Web Mobile Tests"
msgstr ""
msgstr "Web 移动端测试"
#. module: web
#: model:ir.ui.view,arch_db:web.qunit_suite
msgid "Web Tests"
msgstr ""
msgstr "Web 测试"
#. module: web
#: model:ir.ui.view,arch_db:web.external_layout_boxed
@@ -2826,7 +2833,7 @@ msgstr "正要创建新的 %s,确认它真的不存在吗?"
#: code:addons/web/static/src/js/widgets/model_field_selector.js:455
#, python-format
msgid "You cannot follow relations for this field chain construction"
msgstr ""
msgstr "无法跟踪此字段链结构的关系。"
#. module: web
#: code:addons/web/controllers/main.py:787
@@ -2885,13 +2892,15 @@ msgid ""
"shown in html.<br><br><a href=\"http://wkhtmltopdf.org/\" "
"target=\"_blank\">wkhtmltopdf.org</a>"
msgstr ""
"你安装的 Wkhtmltopdf 似乎坏了。该报告将以 html 格式显示。<br> <br> <a "
"href=“http://wkhtmltopdf.org/“ target=“_blank”> wkhtmltopdf.org </a>"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/views/kanban/kanban_record.js:199
#, python-format
msgid "[No widget %s]"
msgstr ""
msgstr "[没有小部件 %s]"
#. module: web
#. openerp-web
@@ -2945,7 +2954,7 @@ msgstr "base"
#: code:addons/web/static/src/js/widgets/domain_selector.js:28
#, python-format
msgid "child of"
msgstr ""
msgstr "子类"
#. module: web
#. openerp-web
@@ -3005,14 +3014,14 @@ msgstr "是"
#: code:addons/web/static/src/js/chrome/search_filters.js:183
#, python-format
msgid "is after"
msgstr ""
msgstr "在之后"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/chrome/search_filters.js:184
#, python-format
msgid "is before"
msgstr ""
msgstr "在之前"
#. module: web
#. openerp-web
@@ -3092,7 +3101,7 @@ msgstr "为真"
#: code:addons/web/static/src/js/core/utils.js:111
#, python-format
msgid "kMGTPE"
msgstr ""
msgstr "kMGTPE"
#. module: web
#. openerp-web
@@ -3123,7 +3132,7 @@ msgstr "少于及等于"
#: code:addons/web/static/src/xml/base.xml:686
#, python-format
msgid "not"
msgstr ""
msgstr "不是"
#. module: web
#. openerp-web
@@ -3144,35 +3153,35 @@ msgstr "不是一个有效的数字"
#: code:addons/web/static/src/js/widgets/domain_selector.js:24
#, python-format
msgid "not contains"
msgstr ""
msgstr "不包含"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/widgets/domain_selector.js:26
#, python-format
msgid "not in"
msgstr ""
msgstr "不在"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/widgets/domain_selector.js:658
#, python-format
msgid "not set (false)"
msgstr ""
msgstr "未设置 (否)"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:605
#, python-format
msgid "of the following rules:"
msgstr ""
msgstr "以下规则:"
#. module: web
#. openerp-web
#: code:addons/web/static/src/xml/base.xml:620
#, python-format
msgid "of:"
msgstr ""
msgstr "的:"
#. module: web
#. openerp-web
@@ -3187,7 +3196,7 @@ msgstr "或"
#: code:addons/web/static/src/js/widgets/domain_selector.js:29
#, python-format
msgid "parent of"
msgstr ""
msgstr "父类"
#. module: web
#. openerp-web
@@ -3208,11 +3217,11 @@ msgstr "剩余)"
#: code:addons/web/static/src/xml/base.xml:686
#, python-format
msgid "set"
msgstr ""
msgstr "设置"
#. module: web
#. openerp-web
#: code:addons/web/static/src/js/widgets/domain_selector.js:658
#, python-format
msgid "set (true)"
msgstr ""
msgstr "设置(真)"
@@ -1082,6 +1082,7 @@ var UrlWidget = InputField.extend({
_renderReadonly: function () {
this.$el.text(this.attrs.text || this.value)
.addClass('o_form_uri o_text_overflow')
.attr('target', '_blank')
.attr('href', this.value);
}
});
@@ -1105,6 +1105,7 @@ var FieldX2Many = AbstractField.extend({
* @param {OdooEvent} event
*/
_onResequence: function (event) {
event.stopPropagation();
var self = this;
this.trigger_up('freeze_order', {id: this.value.id});
var rowIDs = event.data.rowIDs.slice();
@@ -20,7 +20,8 @@ var FieldTimezoneMismatch = FieldSelection.extend({
* @override
*/
start: function () {
this._datetime = setInterval(this._renderDateTimeTimezone.bind(this), 1000);
var interval = navigator.platform.toUpperCase().indexOf('MAC') >= 0 ? 60000 : 1000;
this._datetime = setInterval(this._renderDateTimeTimezone.bind(this), interval);
return this._super.apply(this, arguments);
},
/**
@@ -102,7 +102,7 @@ var KanbanColumn = Widget.extend({
// should find a way to use the touch events to make sortable work.
this.$el.sortable({
connectWith: '.o_kanban_group',
containment: this.draggable ? '.o_kanban_view' : 'parent',
containment: this.draggable ? false : 'parent',
revert: 0,
delay: 0,
items: '> .o_kanban_record:not(.o_updating)',
+24 -26
View File
@@ -80,39 +80,37 @@ div.o_boolean_toggle {
width: 32px !important;
height: 18px;
& > label {
& > input {
> input {
display: none;
}
& > .slider {
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #a0a0a0;
border-radius: 24px;
&:before {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #a0a0a0;
border-radius: 24px;
&:before {
position: absolute;
content: "";
height: 12px;
width: 12px;
left: 3px;
bottom: 3px;
background-color: white;
border-radius: 50%;
}
content: "";
height: 12px;
width: 12px;
left: 3px;
bottom: 3px;
background-color: white;
border-radius: 50%;
}
}
& > input:checked + .slider {
background-color: @odoo-brand-optional;
> input:checked + .slider {
background-color: @odoo-brand-optional;
&:before {
.translate(14px; 0px);
}
&:before {
.translate(14px; 0px);
}
}
}
@@ -1111,7 +1111,7 @@ QUnit.module('basic_fields', {
QUnit.module('UrlWidget');
QUnit.test('url widget in form view', function (assert) {
assert.expect(8);
assert.expect(9);
var form = createView({
View: FormView,
@@ -1131,6 +1131,8 @@ QUnit.module('basic_fields', {
"should have a anchor with correct classes");
assert.strictEqual(form.$('a.o_form_uri.o_field_widget.o_text_overflow').attr('href'), 'yop',
"should have proper href link");
assert.strictEqual(form.$('a.o_form_uri.o_field_widget.o_text_overflow').attr('target'), '_blank',
"should have target attribute set to _blank");
assert.strictEqual(form.$('a.o_form_uri.o_field_widget.o_text_overflow').text(), 'yop',
"the value should be displayed properly");
@@ -1321,6 +1321,93 @@ QUnit.module('relational_fields', {
form.destroy();
});
QUnit.test('X2Many sequence list in modal', function (assert) {
assert.expect(5);
this.data.partner.fields.sequence = {string: 'Sequence', type: 'integer'};
this.data.partner.records[0].sequence = 1;
this.data.partner.records[1].sequence = 2;
this.data.partner.onchanges = {
sequence: function (obj) {
if (obj.id === 2) {
obj.sequence = 1;
assert.step('onchange sequence');
}
},
};
this.data.product.fields.turtle_ids = {string: 'Turtles', type: 'one2many', relation: 'turtle'};
this.data.product.records[0].turtle_ids = [1];
this.data.turtle.fields.partner_types_ids = {string: "Partner", type: "one2many", relation: 'partner'};
this.data.turtle.fields.type_id = {string: "Partner Type", type: "many2one", relation: 'partner_type'};
this.data.partner_type.fields.partner_ids = {string: "Partner", type: "one2many", relation: 'partner'};
this.data.partner_type.records[0].partner_ids = [1,2];
testUtils.createAsyncView({
View: FormView,
model: 'product',
data: this.data,
arch: '<form>' +
'<field name="name"/>' +
'<field name="turtle_ids" widget="one2many_list">' +
'<tree string="Turtles" editable="bottom">' +
'<field name="type_id"/>' +
'</tree>' +
'</field>' +
'</form>',
archs: {
'partner_type,false,form': '<form><field name="partner_ids"/></form>',
'partner,false,list': '<tree string="Vendors">' +
'<field name="display_name"/>' +
'<field name="sequence" widget="handle"/>' +
'</tree>',
},
res_id: 37,
mockRPC: function (route, args) {
if (route === '/web/dataset/call_kw/product/read') {
return $.when([{id: 37, name: 'xphone', display_name: 'leonardo', turtle_ids: [1]}]);
}
if (route === '/web/dataset/call_kw/turtle/read') {
return $.when([{id: 1, type_id: [12, 'gold']}]);
}
if (route === '/web/dataset/call_kw/partner_type/get_formview_id') {
return $.when(false)
}
if (route === '/web/dataset/call_kw/partner_type/read') {
return $.when([{id: 12, partner_ids: [1,2], display_name: 'gold'}])
}
if (route === '/web/dataset/call_kw/partner_type/write') {
assert.step('partner_type write');
}
return this._super.apply(this, arguments);
},
}).then(function(form) {
form.$buttons.find('.o_form_button_edit').click();
form.$('.o_data_cell').click();
form.$('.o_external_button').click();
var $modal = $('.modal-dialog');
assert.equal($modal.length, 1,
'There should be 1 modal opened');
var $handles = $modal.find('.ui-sortable-handle');
assert.equal($handles.length, 2,
'There should be 2 sequence handlers');
testUtils.dragAndDrop($handles.eq(1), $modal.find('tbody tr').first());
// Saving the modal and then the original model
$modal.find('.modal-footer .btn-primary').click();
form.$buttons.find('.o_form_button_save').click();
assert.verifySteps(['onchange sequence', 'partner_type write']);
form.destroy();
});
});
QUnit.test('autocompletion in a many2one, in form view with a domain', function (assert) {
assert.expect(1);
+7 -6
View File
@@ -3,15 +3,16 @@
# * web_diagram
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2017
# Martin Trigaux <mat@odoo.com>, 2017
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# Martin Trigaux, 2016
# 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:54+0000\n"
"PO-Revision-Date: 2017-09-20 09:54+0000\n"
"Last-Translator: Martin Trigaux <mat@odoo.com>, 2017\n"
"Last-Translator: 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -34,14 +35,14 @@ msgstr "活动"
msgid ""
"Are you sure you want to remove this node ? This will remove its connected "
"transitions as well."
msgstr ""
msgstr "你确定要删除这个节点? 这也将删除其连接的转换。"
#. module: web_diagram
#. openerp-web
#: code:addons/web_diagram/static/src/js/diagram_controller.js:172
#, python-format
msgid "Are you sure you want to remove this transition?"
msgstr ""
msgstr "你确定要删除这个转换吗?"
#. module: web_diagram
#. openerp-web
@@ -71,7 +72,7 @@ msgstr "新建节点"
#: code:addons/web_diagram/static/src/js/diagram_controller.js:160
#, python-format
msgid "Open:"
msgstr ""
msgstr "打开"
#. module: web_diagram
#. openerp-web
+55 -54
View File
@@ -3,25 +3,26 @@
# * web_editor
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# fausthuang <faust_huang@hotmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# fausthuang, 2016
# Xia Fajin <xia.fajin@elico-corp.com>, 2016
# Xu Lei <xulei8@qq.com>, 2016
# Talway <9010446@qq.com>, 2016
# Martin Trigaux <mat@odoo.com>, 2016
# Martin Trigaux, 2016
# liAnGjiA <liangjia@qq.com>, 2016
# SHOM <shanmuxin@yeah.net>, 2016
# mrshelly <mrshelly@hotmail.com>, 2016
# Gary Wei <Gary.wei@elico-corp.com>, 2016
# THL <wt39181819@gmail.com>, 2016
# waveyeung <waveyeung@qq.com>, 2016
# 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:54+0000\n"
"PO-Revision-Date: 2017-09-20 09:54+0000\n"
"Last-Translator: waveyeung <waveyeung@qq.com>, 2016\n"
"Last-Translator: 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -51,7 +52,7 @@ msgstr "25% 黑"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "25% White"
msgstr ""
msgstr "25% 白"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
@@ -85,14 +86,14 @@ msgstr "<i class=\"fa fa-th-large\"/> 首个面板"
msgid ""
"A server error occured. Please check you correctly signed in and that the "
"file you are saving is well-formed."
msgstr ""
msgstr "服务器发生错误。 请检查您是否正确登录,并且保存的文件格式正确。"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Accepts"
msgstr ""
msgstr " 接受"
#. module: web_editor
#. openerp-web
@@ -144,7 +145,7 @@ msgstr "居右"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "Alpha"
msgstr ""
msgstr "Alpha"
#. module: web_editor
#. openerp-web
@@ -158,7 +159,7 @@ msgstr "替代上传"
#: code:addons/web_editor/static/src/xml/editor.xml:315
#, python-format
msgid "Assign a focal point that will always be visible"
msgstr ""
msgstr "指定一个总是可见的焦点"
#. module: web_editor
#: model:ir.model.fields,field_description:web_editor.field_ir_attachment_local_url
@@ -232,7 +233,7 @@ msgstr "背景宽度"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "Beta"
msgstr ""
msgstr "Beta"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
@@ -258,7 +259,7 @@ msgstr "加粗"
#: code:addons/web_editor/static/src/js/widgets/ace.js:827
#, python-format
msgid "Careful !"
msgstr ""
msgstr "小心!"
#. module: web_editor
#. openerp-web
@@ -337,7 +338,7 @@ msgstr "待翻译的内容"
#: code:addons/web_editor/static/src/xml/editor.xml:194
#, python-format
msgid "Copy-paste your URL or embed code here"
msgstr ""
msgstr "复制粘贴您的URL或在这里嵌入代码"
#. module: web_editor
#. openerp-web
@@ -375,7 +376,7 @@ msgstr "定制"
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Dailymotion"
msgstr ""
msgstr "Dailymotion"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
@@ -394,7 +395,7 @@ msgstr "默认"
#: code:addons/web_editor/static/src/xml/editor.xml:387
#, python-format
msgid "Define if/how the background image will be repeated"
msgstr ""
msgstr "定义背景图像是否重复"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
@@ -413,7 +414,7 @@ msgstr "说明"
#: code:addons/web_editor/static/src/xml/editor.xml:34
#, python-format
msgid "Description (alt tag)"
msgstr ""
msgstr "描述(ALT标签)"
#. module: web_editor
#. openerp-web
@@ -483,14 +484,14 @@ msgstr "编辑"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "Epsilon"
msgstr ""
msgstr "Epsilon"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/widgets/ace.js:93
#, python-format
msgid "Expected "
msgstr ""
msgstr "预期"
#. module: web_editor
#. openerp-web
@@ -572,7 +573,7 @@ msgstr "全屏"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "Gamma"
msgstr ""
msgstr "Gamma"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
@@ -587,7 +588,7 @@ msgstr "深灰"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "Gray Darker"
msgstr ""
msgstr "暗灰色"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
@@ -597,7 +598,7 @@ msgstr "浅灰"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
msgid "Gray Lighter"
msgstr ""
msgstr "亮灰色"
#. module: web_editor
#: model:ir.model,name:web_editor.model_ir_http
@@ -665,35 +666,35 @@ msgstr "这是用来帮助你提高翻译效率的可视化工具:"
#: code:addons/web_editor/static/src/xml/editor.xml:219
#, python-format
msgid "Hide Dailymotion logo"
msgstr ""
msgstr "隐藏Dailymotion标志"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:216
#, python-format
msgid "Hide Youtube logo"
msgstr ""
msgstr "隐藏Youtube标志"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:213
#, python-format
msgid "Hide fullscreen button"
msgstr ""
msgstr "隐藏全屏按钮"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:210
#, python-format
msgid "Hide player controls"
msgstr ""
msgstr "隐藏播放器控件"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:222
#, python-format
msgid "Hide sharing button"
msgstr ""
msgstr "隐藏分享按钮"
#. module: web_editor
#. openerp-web
@@ -714,7 +715,7 @@ msgstr "ID"
msgid ""
"If you discard the current edition, all unsaved changes will be lost. You "
"can cancel to return to the edition mode."
msgstr ""
msgstr "如果放弃当前版本,则所有未保存的更改都将丢失。 您可以取消返回到编辑模式。"
#. module: web_editor
#. openerp-web
@@ -723,7 +724,7 @@ msgstr ""
msgid ""
"If you reset this file, all your customizations will be lost as it will be "
"reverted to the default file."
msgstr ""
msgstr "如果您重置此文件,所有您的自定义将丢失,因为它将被还原为默认文件。"
#. module: web_editor
#. openerp-web
@@ -746,14 +747,14 @@ msgstr "图像网址"
msgid ""
"In this mode, you can only translate texts. To change the structure of the page, you must edit the master page.\n"
" Each modification on the master page is automatically applied to all translated versions."
msgstr ""
msgstr "在这种模式下,您只能翻译文本。若要更改页的结构,必须编辑母版页。 母版页上的每一项修改都会自动应用于所有已翻译的版本。"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/ace.xml:23
#, python-format
msgid "Include All LESS Files"
msgstr ""
msgstr "包括所有LESS文件"
#. module: web_editor
#. openerp-web
@@ -807,7 +808,7 @@ msgstr "插入视频"
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Instagram"
msgstr ""
msgstr "Instagram"
#. module: web_editor
#. openerp-web
@@ -842,7 +843,7 @@ msgstr "键盘快捷键"
#: code:addons/web_editor/static/src/xml/ace.xml:11
#, python-format
msgid "LESS (CSS)"
msgstr ""
msgstr "LESS (CSS)"
#. module: web_editor
#. openerp-web
@@ -872,7 +873,7 @@ msgstr "最后更新时间"
#: code:addons/web_editor/static/src/js/widgets/ace.js:360
#, python-format
msgid "Less file: %s"
msgstr ""
msgstr "Less 文件: %s"
#. module: web_editor
#. openerp-web
@@ -907,7 +908,7 @@ msgstr "链接到"
#: code:addons/web_editor/static/src/xml/editor.xml:207
#, python-format
msgid "Loop"
msgstr ""
msgstr "循环"
#. module: web_editor
#. openerp-web
@@ -971,7 +972,7 @@ msgstr "确定"
#: code:addons/web_editor/static/src/js/editor/translator.js:93
#, python-format
msgid "Ok, never show me this again"
msgstr ""
msgstr "好了, 别再给我看这个"
#. module: web_editor
#. openerp-web
@@ -1043,7 +1044,7 @@ msgstr "预览"
#: code:addons/web_editor/static/src/xml/editor.xml:57
#, python-format
msgid "Previous"
msgstr ""
msgstr "以前"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
@@ -1154,7 +1155,7 @@ msgstr "设置为默认"
#: code:addons/web_editor/static/src/js/widgets/ace.js:485
#, python-format
msgid "Reseting views is not supported yet"
msgstr ""
msgstr "不支持重置视图"
#. module: web_editor
#. openerp-web
@@ -1212,7 +1213,7 @@ msgstr "搜索联系人"
#: code:addons/web_editor/static/src/xml/snippets.xml:17
#, python-format
msgid "Select Parent Container"
msgstr ""
msgstr "选择父容器"
#. module: web_editor
#. openerp-web
@@ -1240,14 +1241,14 @@ msgstr "从文件中选择"
#: code:addons/web_editor/static/src/js/widgets/ace.js:567
#, python-format
msgid "Server error"
msgstr ""
msgstr "服务器错误"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:365
#, python-format
msgid "Set the starting position of the background image."
msgstr ""
msgstr "设置背景图像的起始位置。"
#. module: web_editor
#. openerp-web
@@ -1263,7 +1264,7 @@ msgstr "设置透明"
msgid ""
"Sets the width and height of the background image in percent of the parent "
"element."
msgstr ""
msgstr "设置背景图像的宽度和高度,以父元素的百分比表示。"
#. module: web_editor
#. openerp-web
@@ -1371,21 +1372,21 @@ msgstr ""
#: code:addons/web_editor/static/src/js/widgets/widgets.js:871
#, python-format
msgid "The provided url does not reference any supported video"
msgstr ""
msgstr "提供的网址不存在任何支持的视频"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/widgets/widgets.js:865
#, python-format
msgid "The provided url is not valid"
msgstr ""
msgstr "提供的网址无效"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/js/editor/rte.summernote.js:53
#, python-format
msgid "Theme colors"
msgstr ""
msgstr "主题颜色"
#. module: web_editor
#. openerp-web
@@ -1428,7 +1429,7 @@ msgstr "已翻译的内容"
#: code:addons/web_editor/static/src/js/editor/translator.js:91
#, python-format
msgid "Translation Info"
msgstr ""
msgstr "翻译信息"
#. module: web_editor
#. openerp-web
@@ -1443,7 +1444,7 @@ msgstr "透明"
#: code:addons/web_editor/static/src/xml/editor.xml:248
#, python-format
msgid "URL or Email"
msgstr ""
msgstr "网址或电子邮件"
#. module: web_editor
#. openerp-web
@@ -1464,7 +1465,7 @@ msgstr "取消"
#: code:addons/web_editor/static/src/js/widgets/ace.js:86
#, python-format
msgid "Unexpected "
msgstr ""
msgstr "意外"
#. module: web_editor
#. openerp-web
@@ -1535,21 +1536,21 @@ msgstr "视频网址?"
#: code:addons/web_editor/static/src/xml/editor.xml:193
#, python-format
msgid "Video code"
msgstr ""
msgstr "视频代码"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Vimeo"
msgstr ""
msgstr "Vimeo"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Vine.co"
msgstr ""
msgstr "Vine.co"
#. module: web_editor
#: model:ir.ui.view,arch_db:web_editor.colorpicker
@@ -1567,7 +1568,7 @@ msgstr "白"
#: code:addons/web_editor/static/src/xml/ace.xml:10
#, python-format
msgid "XML (HTML)"
msgstr ""
msgstr "XML (HTML)"
#. module: web_editor
#. openerp-web
@@ -1588,14 +1589,14 @@ msgstr "你将进入翻译模式。"
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Youku"
msgstr ""
msgstr "Youku"
#. module: web_editor
#. openerp-web
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "Youtube"
msgstr ""
msgstr "Youtube"
#. module: web_editor
#. openerp-web
@@ -1619,7 +1620,7 @@ msgstr "自动"
#: code:addons/web_editor/static/src/xml/editor.xml:113
#, python-format
msgid "https://www.odoo.com/logo.png"
msgstr ""
msgstr "https://www.odoo.com/logo.png"
#. module: web_editor
#: model:ir.model,name:web_editor.model_ir_attachment
@@ -1721,7 +1722,7 @@ msgstr "ir.ui.view"
#: code:addons/web_editor/static/src/xml/editor.xml:198
#, python-format
msgid "videos"
msgstr ""
msgstr "视频"
#. module: web_editor
#: model:ir.model,name:web_editor.model_web_editor_converter_test
@@ -409,7 +409,19 @@ var FieldTextHtml = AbstractField.extend({
var layoutInfo = self.editor.rte.editable().data('layoutInfo');
$.summernote.pluginEvents.codeview(undefined, undefined, layoutInfo, false);
}
var $ancestors = self.$iframe.filter(':not(:visible)').parentsUntil(':visible').addBack();
var ancestorsStyle = [];
// temporarily force displaying iframe (needed for firefox)
_.each($ancestors, function (el) {
var $el = $(el);
ancestorsStyle.unshift($el.attr('style') || null);
$el.css({display: 'initial', visibility: 'hidden', height: 1});
});
self.editor.snippetsMenu && self.editor.snippetsMenu.cleanForSave();
_.each($ancestors, function (el) {
var $el = $(el);
$el.attr('style', ancestorsStyle.pop());
});
self._setValue(self.$content.html());
});
},
+13 -21
View File
@@ -281,8 +281,10 @@ var RTEWidget = Widget.extend({
.each(function () {
var $node = $(this);
// fallback for firefox iframe display:none see https://github.com/odoo/odoo/pull/22610
var computedStyles = window.getComputedStyle(this) || window.parent.getComputedStyle(this);
// add class to display inline-block for empty t-field
if (window.getComputedStyle(this).display === 'inline' && $node.data('oe-type') !== 'image') {
if (computedStyles.display === 'inline' && $node.data('oe-type') !== 'image') {
$node.addClass('o_is_inline_editable');
}
});
@@ -651,26 +653,16 @@ var RTEWidget = Widget.extend({
self.historyRecordUndo($target, 'activate', true);
});
// To Fix Google Chrome Tripleclick Issue, which selects the ending
// whitespace characters (so Tripleclicking then typing text will remove
// the whole paragraph instead of its content).
// http://stackoverflow.com/questions/38467334/why-does-google-chrome-always-add-space-after-selected-text
if ($.browser.chrome === true && ev.originalEvent.detail === 3) {
var currentSelection = range.create();
if (currentSelection.sc.parentNode === currentSelection.ec) {
_selectSC(currentSelection);
} else if (currentSelection.eo === 0) {
var $hasNext = $(currentSelection.sc).parent();
while (!$hasNext.next().length && !$hasNext.is('body')) {
$hasNext = $hasNext.parent();
}
if ($hasNext.next()[0] === currentSelection.ec) {
_selectSC(currentSelection);
}
}
}
function _selectSC(selection) {
range.create(selection.sc, selection.so, selection.sc, selection.sc.length).select();
// Browsers select different content from one to another after a
// triple click (especially: if triple-clicking on a paragraph on
// Chrome, blank characters of the element following the paragraph are
// selected too)
//
// The triple click behavior is reimplemented for all browsers here
if (ev.originalEvent.detail === 3) {
// Select the whole content inside the deepest DOM element that was
// triple-clicked
range.create(ev.target, 0, ev.target, ev.target.childNodes.length).select();
}
},
});
@@ -421,6 +421,9 @@ dom.isImg = function (node) {
};
var fn_is_forbidden_node = dom.isForbiddenNode || function () {};
dom.isForbiddenNode = function (node) {
if (node.tagName === "BR") {
return false;
}
return fn_is_forbidden_node(node) || $(node).is(".media_iframe_video");
};
var fn_is_img_font = dom.isImgFont || function () {};
@@ -694,10 +694,16 @@ dom.isRemovableEmptyNode = function (node) {
dom.isForbiddenNode = function (node) {
return node.tagName === "BR" || $(node).is(".fa, img");
};
dom.listBetween = function (sc, ec) {
/**
* @todo 'so' and 'eo' were added as a bugfix and are not given everytime. They
* however should be as the function may be wrong without them (for example,
* when asking the list between an element and its parent, as there is no path
* from the beginning of the former to the beginning of the later).
*/
dom.listBetween = function (sc, ec, so, eo) {
var nodes = [];
var ancestor = dom.commonAncestor(sc, ec);
dom.walkPoint({'node': sc, 'offset': 0}, {'node': ec, 'offset': 0}, function (point) {
dom.walkPoint({'node': sc, 'offset': so || 0}, {'node': ec, 'offset': eo || 0}, function (point) {
if (ancestor !== point.node || ancestor === sc || ancestor === ec) {
nodes.push(point.node);
}
@@ -1869,7 +1875,7 @@ $.summernote.pluginEvents.formatBlock = function (event, editor, layoutInfo, sTa
}
// fix by odoo because if you select a style in a li with no p tag all the ul is wrapped by the style tag
var nodes = dom.listBetween(r.sc, r.ec);
var nodes = dom.listBetween(r.sc, r.ec, r.so, r.eo);
for (var i=0; i<nodes.length; i++) {
if (dom.isBR(nodes[i]) || (dom.isText(nodes[i]) && dom.isVisibleText(nodes[i])) || dom.isB(nodes[i]) || dom.isU(nodes[i]) || dom.isS(nodes[i]) || dom.isI(nodes[i]) || dom.isFont(nodes[i])) {
var ancestor = dom.ancestor(nodes[i], isFormatNode);
@@ -1984,6 +1990,14 @@ eventHandler.modules.editor.currentStyle = function (target) {
if (r)
styleInfo.image = r.isOnImg();
}
// Fix when the target is a link: the text-align buttons state should
// indicate the alignment of the link in the parent, not the text inside
// the link (which is not possible to customize with summernote). Summernote fixed
// this in their newest version... by just not showing the active button
// for alignments.
if (styleInfo.anchor) {
styleInfo['text-align'] = $(styleInfo.anchor).parent().css('text-align');
}
return styleInfo;
};
@@ -742,7 +742,7 @@ var ViewEditor = Widget.extend({
var text = data.text || '';
if (!isSelected) {
text = Array($elem.data('level')).join('-') + ' ' + text;
text = Array($elem.data('level') + 1).join('-') + ' ' + text;
}
var $div = $('<div/>', {
text: text,
@@ -136,12 +136,12 @@ QUnit.test('field html_frame widget', function (assert) {
model: 'mass.mailing',
data: this.data,
arch: '<form string="Partners">' +
'<field name="body" widget="html_frame" options="{\'editor_url\': \'/test\'}"/>' +
'<field name="body" widget="html_frame" options="{\'editor_url\': \'/logo\'}"/>' +
'</form>',
res_id: 1,
session: {user_context: {lang: "en_us"}},
mockRPC: function (route) {
if (_.str.startsWith(route, '/test')) {
if (_.str.startsWith(route, '/logo')) {
// those tests will be executed twice, once in readonly and once in edit
assert.ok(route.search('model=mass.mailing') > 0,
"the route should specify the correct model");
@@ -200,7 +200,7 @@ QUnit.test('html_frame does not crash when saving in readonly', function (assert
data: this.data,
arch: '<form string="Partners">' +
'<sheet>' +
'<field name="body" widget="html_frame" options="{\'editor_url\': \'/test\'}"/>' +
'<field name="body" widget="html_frame" options="{\'editor_url\': \'/logo\'}"/>' +
'</sheet>' +
'</form>',
res_id: 1,
@@ -208,7 +208,7 @@ QUnit.test('html_frame does not crash when saving in readonly', function (assert
if (args.method) {
assert.step(args.method);
}
if (_.str.startsWith(route, '/test')) {
if (_.str.startsWith(route, '/logo')) {
// manually call the callback to simulate that the iframe has
// been loaded (note: just the content, not the editor)
window.odoo[$.deparam(route).callback + '_content'].call();
@@ -237,7 +237,7 @@ QUnit.test('html_frame does not crash when saving in edit mode (editor not loade
arch: '<form string="Partners">' +
'<sheet>' +
'<field name="display_name"/>' +
'<field name="body" widget="html_frame" options="{\'editor_url\': \'/test\'}"/>' +
'<field name="body" widget="html_frame" options="{\'editor_url\': \'/logo\'}"/>' +
'</sheet>' +
'</form>',
res_id: 1,
@@ -245,7 +245,7 @@ QUnit.test('html_frame does not crash when saving in edit mode (editor not loade
if (args.method) {
assert.step(args.method);
}
if (_.str.startsWith(route, '/test')) {
if (_.str.startsWith(route, '/logo')) {
// manually call the callback to simulate that the iframe has
// been partially loaded (just the content, not the editor)
window.odoo[$.deparam(route).callback + '_content']();
@@ -279,7 +279,7 @@ QUnit.test('html_frame saving in edit mode (editor and content fully loaded)', f
arch: '<form string="Partners">' +
'<sheet>' +
'<field name="display_name"/>' +
'<field name="body" widget="html_frame" options="{\'editor_url\': \'/test\'}"/>' +
'<field name="body" widget="html_frame" options="{\'editor_url\': \'/logo\'}"/>' +
'</sheet>' +
'</form>',
res_id: 1,
@@ -290,7 +290,7 @@ QUnit.test('html_frame saving in edit mode (editor and content fully loaded)', f
writeDeferred.resolve();
}
}
if (_.str.startsWith(route, '/test')) {
if (_.str.startsWith(route, '/logo')) {
// manually call the callback to simulate that the iframe has
// been fully loaded (content + editor)
var callback = $.deparam(route).callback;
+7 -5
View File
@@ -6,9 +6,9 @@
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# Talway <9010446@qq.com>, 2016
# niulin lnc. <admin@niulin.net>, 2016
# fausthuang <faust_huang@hotmail.com>, 2016
# fausthuang, 2016
# waveyeung <waveyeung@qq.com>, 2016
# Martin Trigaux <mat@odoo.com>, 2016
# Martin Trigaux, 2016
# Maie <m@maie.name>, 2016
# 菜小蛇 <lttlsnk@gmail.com>, 2016
# xiaobin wu <bd5dml@gmail.com>, 2016
@@ -21,7 +21,7 @@
# Wei "oldrev" Li <liwei@sandwych.com>, 2016
# SHOM <shanmuxin@yeah.net>, 2016
# 苏州远鼎 <tiexinliu@126.com>, 2016
# Bo Cao <cao.poobo@hotmail.com>, 2017
# Bo Cao, 2017
# Liping Wang <lynn.config@gmail.com>, 2017
# Jeff Yu - Elico Corp <jeff.yu@elico-corp.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2017
@@ -111,6 +111,8 @@ msgid ""
",\n"
" the #1"
msgstr ""
",\n"
"此 #1"
#. module: website
#: model:ir.ui.view,arch_db:website.show_website_info
@@ -143,7 +145,7 @@ msgstr ""
#. module: website
#: model:ir.ui.view,arch_db:website.default_csv
msgid "1,2,3"
msgstr ""
msgstr "1,2,3"
#. module: website
#: model:ir.ui.view,arch_db:website.snippet_options
@@ -286,7 +288,7 @@ msgstr "<i class=\"fa fa-clock-o\"/>幻灯片播放速度"
#. module: website
#: model:ir.ui.view,arch_db:website.snippets
msgid "<i class=\"fa fa-diamond\"/> Feature"
msgstr ""
msgstr "特征"
#. module: website
#: model:ir.ui.view,arch_db:website.snippet_options
+7 -8
View File
@@ -123,12 +123,6 @@ class Http(models.AbstractModel):
}, mimetype=_guess_mimetype(ext))
return False
@classmethod
def _serve_404(cls):
req_page = request.httprequest.path
page404 = 'website.%s' % (request.website.is_publisher() and 'page_404' or '404')
return request.render(page404, {'path': req_page[1:]})
@classmethod
def _serve_redirect(cls):
req_page = request.httprequest.path
@@ -153,7 +147,7 @@ class Http(models.AbstractModel):
if redirect:
return request.redirect(redirect.url_to, code=redirect.type)
return cls._serve_404()
return False
@classmethod
def _handle_exception(cls, exception):
@@ -212,11 +206,16 @@ class Http(models.AbstractModel):
status_code=code,
)
view_id = code
if request.website.is_publisher() and isinstance(exception, werkzeug.exceptions.NotFound):
view_id = 'page_404'
values['path'] = request.httprequest.path[1:]
if not request.uid:
cls._auth_method_public()
try:
html = request.env['ir.ui.view'].render_template('website.%s' % code, values)
html = request.env['ir.ui.view'].render_template('website.%s' % view_id, values)
except Exception:
html = request.env['ir.ui.view'].render_template('website.http_error', values)
return werkzeug.wrappers.Response(html, status=code, content_type='text/html;charset=utf-8')
+6 -5
View File
@@ -3,10 +3,10 @@
# * website_blog
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# liAnGjiA <liangjia@qq.com>, 2016
# Martin Trigaux <mat@odoo.com>, 2016
# fausthuang <faust_huang@hotmail.com>, 2016
# Martin Trigaux, 2016
# fausthuang, 2016
# Talway <9010446@qq.com>, 2016
# Eddie Lim <bhweelim@yahoo.com>, 2016
# waveyeung <waveyeung@qq.com>, 2016
@@ -16,13 +16,14 @@
# n37r06u3 <n37r06u3@gmail.com>, 2016
# 苏州远鼎 <tiexinliu@126.com>, 2016
# THL <wt39181819@gmail.com>, 2017
# 老窦 北京 <2662059195@qq.com>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-10-24 09:00+0000\n"
"PO-Revision-Date: 2017-10-24 09:00+0000\n"
"Last-Translator: THL <wt39181819@gmail.com>, 2017\n"
"Last-Translator: 老窦 北京 <2662059195@qq.com>, 2018\n"
"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -725,7 +726,7 @@ msgstr "发布选项"
#. module: website_blog
#: model:ir.model.fields,field_description:website_blog.field_blog_post_post_date
msgid "Publishing date"
msgstr ""
msgstr "发布日期"
#. module: website_blog
#: model:ir.ui.view,arch_db:website_blog.website_blog
+1 -1
View File
@@ -209,7 +209,7 @@ class BlogPost(models.Model):
def write(self, vals):
result = True
for post in self:
copy_vals = vals
copy_vals = dict(vals)
if 'website_published' in vals and 'published_date' not in vals and (post.published_date or '') <= fields.Datetime.now():
copy_vals['published_date'] = vals['website_published'] and fields.Datetime.now() or False
result &= super(BlogPost, self).write(copy_vals)
+5 -5
View File
@@ -5,8 +5,8 @@
# Translators:
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# Talway <9010446@qq.com>, 2016
# fausthuang <faust_huang@hotmail.com>, 2016
# Martin Trigaux <mat@odoo.com>, 2016
# fausthuang, 2016
# Martin Trigaux, 2016
# waveyeung <waveyeung@qq.com>, 2016
# Luke <cialuo@qq.com>, 2016
# glovebx <ruinning@163.com>, 2016
@@ -49,12 +49,12 @@ msgstr "&amp;nbsp;"
#. module: website_sale
#: model:ir.ui.view,arch_db:website_sale.cart_lines
msgid "/shop/cart"
msgstr ""
msgstr "/shop/cart"
#. module: website_sale
#: model:ir.ui.view,arch_db:website_sale.payment
msgid "/shop/payment"
msgstr ""
msgstr "/shop/payment"
#. module: website_sale
#: model:ir.ui.view,arch_db:website_sale.product
@@ -595,7 +595,7 @@ msgstr ""
#. module: website_sale
#: model:ir.ui.view,arch_db:website_sale.cart
msgid "Click here"
msgstr ""
msgstr "点击这里"
#. module: website_sale
#. openerp-web
+7 -7
View File
@@ -420,8 +420,8 @@
<div id="o-carousel-product" class="carousel slide" data-ride="carousel" data-interval="0">
<div class="carousel-outer">
<div class="carousel-inner">
<div class="item active" itemprop="image" t-field="product.image" t-options="{'widget': 'image', 'class': 'product_detail_img js_variant_img', 'alt-field': 'name', 'zoom': 'image', 'unique': product['__last_update']}"/>
<div t-if="variant_img" class="item" itemprop="image" t-field="product.product_variant_id.image" t-options="{'widget': 'image', 'class': 'product_detail_img', 'alt-field': 'name', 'zoom': 'image', 'unique': product['__last_update'] + (product.product_variant_id['__last_update'] or '')}"/>
<div t-if="variant_img" class="item active" itemprop="image" t-field="product.product_variant_id.image" t-options="{'widget': 'image', 'class': 'product_detail_img js_variant_img', 'alt-field': 'name', 'zoom': 'image', 'unique': product['__last_update'] + (product.product_variant_id['__last_update'] or '')}"/>
<div t-attf-class="item#{'' if variant_img else ' active'}" itemprop="image" t-field="product.image" t-options="{'widget': 'image', 'class': 'product_detail_img', 'alt-field': 'name', 'zoom': 'image', 'unique': product['__last_update']}"/>
<t t-if="len(image_ids)" t-foreach="image_ids" t-as="pimg">
<div class="item" t-field="pimg.image" t-options='{"widget": "image", "class": "product_detail_img", "alt-field": "name", "zoom": "image" }'/>
</t>
@@ -440,11 +440,11 @@
</div>
<ol class="carousel-indicators" t-if="len(image_ids) or variant_img">
<li data-target="#o-carousel-product" data-slide-to="0" class="active">
<img class="img img-responsive js_variant_img_small" t-attf-src="/website/image/product.template/{{product.id}}/image/90x90" t-att-alt="product.name"/>
<li t-if="variant_img" data-target="#o-carousel-product" data-slide-to="0" class="active">
<img class="img img-responsive js_variant_img_small" t-attf-src="/website/image/product.product/{{product.product_variant_id.id}}/image/90x90" t-att-alt="product.name"/>
</li>
<li t-if="variant_img" data-target="#o-carousel-product" data-slide-to="1" class="">
<img class="img img-responsive" t-attf-src="/website/image/product.product/{{product.product_variant_id.id}}/image/90x90" t-att-alt="product.name"/>
<li data-target="#o-carousel-product" t-att-data-slide-to="1 if variant_img else 0" t-att-class="'' if variant_img else 'active'">
<img class="img img-responsive" t-attf-src="/website/image/product.template/{{product.id}}/image/90x90" t-att-alt="product.name"/>
</li>
<t t-if="len(image_ids)" t-foreach="image_ids" t-as="pimg">
<li data-target="#o-carousel-product" t-att-data-slide-to="pimg_index + (variant_img and 2 or 1)">
@@ -521,7 +521,7 @@
<div t-field="alt_product.image_small" t-options="{'widget': 'image', 'class': 'img-rounded shadow o_alternative_product' }" />
<h5>
<a t-attf-href="/shop/product/#{ slug(alt_product) }" style="display: block">
<span t-att-title="alt_product.name" t-field="alt_product.name" style="display: block;" />
<span t-att-title="alt_product.name" t-field="alt_product.name" class="o_text_overflow" style="display: block;" />
</a>
</h5>
</div>
+2 -2
View File
@@ -3,7 +3,7 @@
# * website_sale_stock
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# Gary Wei <Gary.wei@elico-corp.com>, 2016
# waveyeung <waveyeung@qq.com>, 2017
# liAnGjiA <liangjia@qq.com>, 2017
@@ -67,7 +67,7 @@ msgstr "<strong>交货单</strong>"
#: model:ir.ui.view,arch_db:website_sale_stock.website_sale_stock_cart_lines
#: model:ir.ui.view,arch_db:website_sale_stock.website_sale_stock_payment
msgid "<strong>Warning!</strong>"
msgstr ""
msgstr "<strong>警告!</strong>"
#. module: website_sale_stock
#: model:ir.model.fields,help:website_sale_stock.field_product_product_inventory_availability
+5 -5
View File
@@ -3,12 +3,12 @@
# * website_slides
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2016
# fausthuang <faust_huang@hotmail.com>, 2016
# Jeffery CHEN Fan <jeffery9@gmail.com>, 2016
# fausthuang, 2016
# Siyuan Gu <siyuancn@hotmail.com>, 2016
# liAnGjiA <liangjia@qq.com>, 2016
# waveyeung <waveyeung@qq.com>, 2016
# Martin Trigaux <mat@odoo.com>, 2016
# Martin Trigaux, 2016
# Talway <9010446@qq.com>, 2016
# 菜小蛇 <lttlsnk@gmail.com>, 2016
# Wei "oldrev" Li <liwei@sandwych.com>, 2016
@@ -336,7 +336,7 @@ msgstr ""
#. module: website_slides
#: model:slide.tag,name:website_slides.tag1
msgid "CMS"
msgstr ""
msgstr "CMS"
#. module: website_slides
#: model:ir.model.fields,field_description:website_slides.field_slide_channel_can_see
@@ -416,7 +416,7 @@ msgstr "频道"
#. module: website_slides
#: model:slide.slide,name:website_slides.slide_10
msgid "Company Culture"
msgstr ""
msgstr "企业文化"
#. module: website_slides
#: model:ir.model.fields,field_description:website_slides.field_slide_slide_datas
+1
View File
@@ -42,3 +42,4 @@ Edgar Rivero edgar@vauxoo.com https://github.com/egrivero
Alexander Olivares alexander@vauxoo.com https://github.com/alxolivares
Jose Manuel Robles josemanuel@vauxoo.com https://github.com/keylor2906
Erick Birbe erick@vauxoo.com https://github.com/ebirbe
Tomas Alvarez tomas@vauxoo.com https://github.com/tomeyro
+11
View File
@@ -0,0 +1,11 @@
Switzerland, 2018-01-30
I hereby agree to the terms of the Odoo Individual Contributor License
Agreement v1.0.
I declare that I am authorized and able to make this agreement and sign this
declaration.
Signed,
Kumar Aberer office@aberer-solutions.ch https://github.com/kaberer
+9
View File
@@ -0,0 +1,9 @@
Spain, 2018-01-29
I hereby agree to the terms of the Odoo Individual Contributor License Agreement v1.0.
I declare that I am authorized and able to make this agreement and sign this declaration.
Signed,
Nacho Muñoz nacmuro@gmail.com https://github.com/moutio

Some files were not shown because too many files have changed in this diff Show More