[MERGE] forward port branch saas-11.1 up to 7e469eb77a
This commit is contained in:
@@ -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,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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,3 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from . import barcodes
|
||||
from . import barcode_events_mixin
|
||||
from . import ir_http
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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\">"
|
||||
#: 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 "<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,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
|
||||
|
||||
@@ -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,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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 " ("
|
||||
msgstr ""
|
||||
msgstr " ("
|
||||
|
||||
#. 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
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
" &nbsp;"
|
||||
msgstr ""
|
||||
"&nbsp;\n"
|
||||
" 1\n"
|
||||
" &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">
|
||||
|
||||
@@ -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
@@ -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
@@ -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 -> C + D)"
|
||||
msgstr ""
|
||||
msgstr "产生残留产物(A + B > 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
|
||||
|
||||
@@ -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']
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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,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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
@@ -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"
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
@@ -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"
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
@@ -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 ""
|
||||
" <body class=\"ie9\">\n"
|
||||
" <![endif]-->"
|
||||
msgstr ""
|
||||
"<!—[if lt IE 10]>\n"
|
||||
" <body class=“ie9”>\n"
|
||||
" <![endif]—>"
|
||||
|
||||
#. 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)',
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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());
|
||||
});
|
||||
},
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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 "&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
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
Reference in New Issue
Block a user