Add used modules for Groupe URD production server
This commit is contained in:
parent
f7a72d29c8
commit
cecff5bca1
2
calendar_ics/__init__.py
Normal file
2
calendar_ics/__init__.py
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
import calendar
|
||||||
|
import res_partner
|
BIN
calendar_ics/__init__.pyc
Normal file
BIN
calendar_ics/__init__.pyc
Normal file
Binary file not shown.
43
calendar_ics/__openerp__.py
Normal file
43
calendar_ics/__openerp__.py
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# OpenERP, Open Source Management Solution, third party addon
|
||||||
|
# Copyright (C) 2004-2016 Vertel AB (<http://vertel.se>).
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
{
|
||||||
|
'name': 'Calendar ics-urls',
|
||||||
|
'version': '0.1',
|
||||||
|
'category': 'Tools',
|
||||||
|
'summary': 'Subscription on calendar.ics-urls',
|
||||||
|
'licence': 'AGPL-3',
|
||||||
|
'description': """
|
||||||
|
Adds and updates calendar objects according to an ics-url
|
||||||
|
|
||||||
|
""",
|
||||||
|
'author': 'Vertel AB',
|
||||||
|
'website': 'http://www.vertel.se',
|
||||||
|
'depends': ['calendar',],
|
||||||
|
'data': [ 'res_partner_view.xml',
|
||||||
|
#'security/ir.model.access.csv',
|
||||||
|
'res_partner_data.xml'
|
||||||
|
],
|
||||||
|
'application': False,
|
||||||
|
'installable': True,
|
||||||
|
'demo': ['calendar_ics_demo.xml',],
|
||||||
|
}
|
||||||
|
# vim:expandtab:smartindent:tabstop=4s:softtabstop=4:shiftwidth=4:
|
312
calendar_ics/calendar.py
Normal file
312
calendar_ics/calendar.py
Normal file
@ -0,0 +1,312 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# OpenERP, Open Source Management Solution, third party addon
|
||||||
|
# Copyright (C) 2004-2016 Vertel AB (<http://vertel.se>).
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
from openerp import models, fields, api, _
|
||||||
|
from pytz import timezone
|
||||||
|
from openerp.exceptions import except_orm, Warning, RedirectWarning
|
||||||
|
from datetime import datetime, timedelta, time
|
||||||
|
from time import strptime, mktime, strftime
|
||||||
|
from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
|
||||||
|
import re
|
||||||
|
|
||||||
|
from openerp import http
|
||||||
|
from openerp.http import request
|
||||||
|
|
||||||
|
import logging
|
||||||
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
try:
|
||||||
|
from icalendar import Calendar, Event, vDatetime, FreeBusy
|
||||||
|
except ImportError:
|
||||||
|
raise Warning('icalendar library missing, pip install icalendar')
|
||||||
|
|
||||||
|
try:
|
||||||
|
import urllib2
|
||||||
|
except ImportError:
|
||||||
|
raise Warning('urllib2 library missing, pip install urllib2')
|
||||||
|
|
||||||
|
|
||||||
|
# calendar_ics -> res.partner
|
||||||
|
|
||||||
|
# http://ical.oops.se/holidays/Sweden/-1,+1
|
||||||
|
# http://www.skatteverketkalender.se/skvcal-manadsmoms-maxfyrtiomiljoner-ingenperiodisk-ingenrotrut-verk1.ics
|
||||||
|
|
||||||
|
class calendar_event(models.Model):
|
||||||
|
_inherit = 'calendar.event'
|
||||||
|
|
||||||
|
ics_subscription = fields.Boolean(default=False) # partner_ids + ics_subscription -> its ok to delete
|
||||||
|
|
||||||
|
@api.multi
|
||||||
|
def set_ics_event(self, ics_file, partner):
|
||||||
|
for event in Calendar.from_ical(ics_file).walk('vevent'):
|
||||||
|
#~ if not event.get('uid'):
|
||||||
|
#~ event.add('uid',reduce(lambda x,y: x ^ y, map(ord, str(event.get('dtstart') and event.get('dtstart').dt or '' + event.get('summary') + event.get('dtend') and event.get('dtend').dt or ''))) % 1024)
|
||||||
|
|
||||||
|
summary = ''
|
||||||
|
description = unicode(event.get('description', ''))
|
||||||
|
if unicode(event.get('summary')) and len(unicode(event.get('summary'))) < 35:
|
||||||
|
summary = unicode(event.get('summary'))
|
||||||
|
elif len(unicode(event.get('summary'))) >= 35:
|
||||||
|
summary = unicode(event.get('summary'))[:35]
|
||||||
|
if not event.get('description'):
|
||||||
|
description = unicode(event.get('summary'))
|
||||||
|
|
||||||
|
record = {r[1]:r[2] for r in [ ('dtstart','start_date',event.get('dtstart') and event.get('dtstart').dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT)),
|
||||||
|
('dtend','stop_date',event.get('dtend') and event.get('dtend').dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT)),
|
||||||
|
#~ ('dtstamp','start_datetime',event.get('dtstamp') and event.get('dtstamp').dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT)),
|
||||||
|
#~ ('description','description',description),
|
||||||
|
('duration','duration',event.get('duration')),
|
||||||
|
('location','location',event.get('location') and unicode(event.get('location')) or partner.ics_location),
|
||||||
|
('class','class',event.get('class') and str(event.get('class')) or partner.ics_class),
|
||||||
|
('summary','name',summary),
|
||||||
|
('rrule', 'rrule',event.get('rrule') and event.get('rrule').to_ical() or None),
|
||||||
|
] if event.get(r[0])}
|
||||||
|
|
||||||
|
partner_ids = self.env['res.partner'].get_attendee_ids(event)
|
||||||
|
#~ raise Warning(partner_ids)
|
||||||
|
if partner_ids:
|
||||||
|
partner_ids.append(partner.id)
|
||||||
|
else:
|
||||||
|
partner_ids = [partner.id]
|
||||||
|
|
||||||
|
record['partner_ids'] = [(6,0,[partner_ids])]
|
||||||
|
#~ record['partner_ids'] = [(6,0,self.env['res.partner'].get_attendee_ids(event)[0] and self.env['res.partner'].get_attendee_ids(event)[0].append(partner.id) or [partner.id])]
|
||||||
|
#~ raise Warning(record['partner_ids'])
|
||||||
|
#~ record['attendee_ids'] = [(6,0,[attendee])]
|
||||||
|
record['ics_subscription'] = True
|
||||||
|
record['start'] = record.get('start_date')
|
||||||
|
record['stop'] = record.get('stop_date') or record.get('start')
|
||||||
|
record['description'] = description
|
||||||
|
record['show_as'] = partner.ics_show_as
|
||||||
|
record['allday'] = partner.ics_allday
|
||||||
|
#~ record['rrule'] = event.get('rrule').to_ical()
|
||||||
|
#~ raise Warning(record['rrule_type'].to_ical)
|
||||||
|
|
||||||
|
tmpStart = datetime.time(datetime.fromtimestamp(mktime(strptime(record['start'], DEFAULT_SERVER_DATETIME_FORMAT))))
|
||||||
|
tmpStop = datetime.fromtimestamp(mktime(strptime(record['stop'], DEFAULT_SERVER_DATETIME_FORMAT)))
|
||||||
|
|
||||||
|
if tmpStart == time(0,0,0) and tmpStart == datetime.time(tmpStop):
|
||||||
|
record['allday'] = True
|
||||||
|
|
||||||
|
if not record.get('stop_date'):
|
||||||
|
record['allday'] = True
|
||||||
|
record['stop_date'] = record['start_date']
|
||||||
|
elif record.get('stop_date') and record['allday']:
|
||||||
|
record['stop_date'] = vDatetime(tmpStop - timedelta(hours=24)).dt.strftime(DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
|
record['stop'] = record['stop_date']
|
||||||
|
_logger.error('ICS %s' % record)
|
||||||
|
self.env['calendar.event'].create(record)
|
||||||
|
#~ event_id = self.env['calendar.event'].create(record)
|
||||||
|
#~
|
||||||
|
#~ attendee_values = self.env['res.partner'].get_attendee_ids(event)
|
||||||
|
#~ for i in range(len(attendee_values[0])):
|
||||||
|
#~ self.env['calendar.attendee'].create({
|
||||||
|
#~ 'event_id': event_id.id,
|
||||||
|
#~ 'partner_id': attendee_values[0][i],
|
||||||
|
#~ 'email': attendee_values[1][i],
|
||||||
|
#~ })
|
||||||
|
|
||||||
|
#~ 'state': fields.selection(STATE_SELECTION, 'Status', readonly=True, help="Status of the attendee's participation"),
|
||||||
|
#~ 'cn': fields.function(_compute_data, string='Common name', type="char", multi='cn', store=True),
|
||||||
|
#~ 'partner_id': fields.many2one('res.partner', 'Contact', readonly="True"),
|
||||||
|
#~ 'email': fields.char('Email', help="Email of Invited Person"),
|
||||||
|
#~ 'availability': fields.selection([('free', 'Free'), ('busy', 'Busy')], 'Free/Busy', readonly="True"),
|
||||||
|
#~ 'access_token': fields.char('Invitation Token'),
|
||||||
|
#~ 'event_id': fields.many2one('calendar.event', 'Meeting linked', ondelete='cascade'),
|
||||||
|
|
||||||
|
@api.multi
|
||||||
|
def get_ics_event(self):
|
||||||
|
event = self[0]
|
||||||
|
ics = Event()
|
||||||
|
ics = self.env['calendar.attendee'].get_ics_file(event)
|
||||||
|
calendar = Calendar()
|
||||||
|
date_format = DEFAULT_SERVER_DATETIME_FORMAT
|
||||||
|
|
||||||
|
|
||||||
|
#~ for t in ics_record:
|
||||||
|
#~ ics[t[2]] = eval(t[3])
|
||||||
|
#~
|
||||||
|
#~ foo = {ics[t[2]]: event.read([t[1]]) for t in ics_record}
|
||||||
|
#~
|
||||||
|
#~
|
||||||
|
#~ ics['uid'] = event.id
|
||||||
|
#~ ics['allday'] = event.allday
|
||||||
|
#~
|
||||||
|
#~ if ics['allday']:
|
||||||
|
#~ date_format = DEFAULT_SERVER_DATE_FORMAT
|
||||||
|
#~
|
||||||
|
#~ ics['dtstart'] = vDatetime(datetime.fromtimestamp(mktime(strptime(event.start_date, date_format))))
|
||||||
|
#~ ics['dtend'] = vDatetime(datetime.fromtimestamp(mktime(strptime(event.stop_date, date_format))))
|
||||||
|
#~ ics['summary'] = event.name
|
||||||
|
#~ ics['description'] = event.description
|
||||||
|
#~ ics['class'] = event.read(['class'])
|
||||||
|
|
||||||
|
#~ calendar.add_component(ics)
|
||||||
|
#~ raise Warning(calendar.to_ical())
|
||||||
|
return ics
|
||||||
|
|
||||||
|
|
||||||
|
@api.multi
|
||||||
|
def get_ics_file(self, events_exported, partner):
|
||||||
|
"""
|
||||||
|
Returns iCalendar file for the event invitation.
|
||||||
|
@param event: event object (browse record)
|
||||||
|
@return: .ics file content
|
||||||
|
"""
|
||||||
|
ics = Event()
|
||||||
|
event = self[0]
|
||||||
|
|
||||||
|
#~ raise Warning(self.env.cr.dbname)
|
||||||
|
#~ The method below needs som proper rewriting to avoid overusing libraries.
|
||||||
|
def ics_datetime(idate, allday=False):
|
||||||
|
if idate:
|
||||||
|
if allday:
|
||||||
|
return str(vDatetime(datetime.fromtimestamp(mktime(strptime(idate, DEFAULT_SERVER_DATETIME_FORMAT)))).to_ical())[:8]
|
||||||
|
else:
|
||||||
|
return vDatetime(datetime.fromtimestamp(mktime(strptime(idate, DEFAULT_SERVER_DATETIME_FORMAT)))).to_ical() + 'Z'
|
||||||
|
return False
|
||||||
|
|
||||||
|
#~ try:
|
||||||
|
#~ # FIXME: why isn't this in CalDAV?
|
||||||
|
#~ import vobject
|
||||||
|
#~ except ImportError:
|
||||||
|
#~ return res
|
||||||
|
|
||||||
|
#~ cal = vobject.iCalendar()
|
||||||
|
|
||||||
|
#~ event = cal.add('vevent')
|
||||||
|
if not event.start or not event.stop:
|
||||||
|
raise osv.except_osv(_('Warning!'), _("First you have to specify the date of the invitation."))
|
||||||
|
ics['summary'] = event.name
|
||||||
|
if event.description:
|
||||||
|
ics['description'] = event.description
|
||||||
|
if event.location:
|
||||||
|
ics['location'] = event.location
|
||||||
|
if event.rrule:
|
||||||
|
ics['rrule'] = event.rrule
|
||||||
|
#~ ics.add('rrule', str(event.rrule), encode=0)
|
||||||
|
#~ raise Warning(ics['rrule'])
|
||||||
|
|
||||||
|
if event.alarm_ids:
|
||||||
|
for alarm in event.alarm_ids:
|
||||||
|
valarm = ics.add('valarm')
|
||||||
|
interval = alarm.interval
|
||||||
|
duration = alarm.duration
|
||||||
|
trigger = valarm.add('TRIGGER')
|
||||||
|
trigger.params['related'] = ["START"]
|
||||||
|
if interval == 'days':
|
||||||
|
delta = timedelta(days=duration)
|
||||||
|
elif interval == 'hours':
|
||||||
|
delta = timedelta(hours=duration)
|
||||||
|
elif interval == 'minutes':
|
||||||
|
delta = timedelta(minutes=duration)
|
||||||
|
trigger.value = delta
|
||||||
|
valarm.add('DESCRIPTION').value = alarm.name or 'Odoo'
|
||||||
|
if event.attendee_ids:
|
||||||
|
for attendee in event.attendee_ids:
|
||||||
|
attendee_add = ics.get('attendee')
|
||||||
|
attendee_add = attendee.cn and ('CN=' + attendee.cn) or ''
|
||||||
|
if attendee.cn and attendee.email:
|
||||||
|
attendee_add += ':'
|
||||||
|
attendee_add += attendee.email and ('MAILTO:' + attendee.email) or ''
|
||||||
|
|
||||||
|
ics.add('attendee', attendee_add, encode=0)
|
||||||
|
|
||||||
|
if events_exported:
|
||||||
|
event_not_found = True
|
||||||
|
|
||||||
|
for event_comparison in events_exported:
|
||||||
|
#~ raise Warning('event_comparison = %s ics = %s' % (event_comparison, ics))
|
||||||
|
if str(ics) == event_comparison:
|
||||||
|
event_not_found = False
|
||||||
|
break
|
||||||
|
|
||||||
|
if event_not_found:
|
||||||
|
events_exported.append(str(ics))
|
||||||
|
|
||||||
|
ics['uid'] = '%s@%s-%s' % (event.id, self.env.cr.dbname, partner.id)
|
||||||
|
ics['created'] = ics_datetime(strftime(DEFAULT_SERVER_DATETIME_FORMAT))
|
||||||
|
tmpStart = ics_datetime(event.start, event.allday)
|
||||||
|
tmpEnd = ics_datetime(event.stop, event.allday)
|
||||||
|
|
||||||
|
if event.allday:
|
||||||
|
ics['dtstart;value=date'] = tmpStart
|
||||||
|
else:
|
||||||
|
ics['dtstart'] = tmpStart
|
||||||
|
|
||||||
|
if tmpStart != tmpEnd or not event.allday:
|
||||||
|
if event.allday:
|
||||||
|
ics['dtend;value=date'] = str(vDatetime(datetime.fromtimestamp(mktime(strptime(event.stop, DEFAULT_SERVER_DATETIME_FORMAT))) + timedelta(hours=24)).to_ical())[:8]
|
||||||
|
else:
|
||||||
|
ics['dtend'] = tmpEnd
|
||||||
|
|
||||||
|
return [ics, events_exported]
|
||||||
|
|
||||||
|
else:
|
||||||
|
events_exported.append(str(ics))
|
||||||
|
|
||||||
|
ics['uid'] = '%s@%s-%s' % (event.id, self.env.cr.dbname, partner.id)
|
||||||
|
ics['created'] = ics_datetime(strftime(DEFAULT_SERVER_DATETIME_FORMAT))
|
||||||
|
tmpStart = ics_datetime(event.start, event.allday)
|
||||||
|
tmpEnd = ics_datetime(event.stop, event.allday)
|
||||||
|
|
||||||
|
if event.allday:
|
||||||
|
ics['dtstart;value=date'] = tmpStart
|
||||||
|
else:
|
||||||
|
ics['dtstart'] = tmpStart
|
||||||
|
|
||||||
|
if tmpStart != tmpEnd or not event.allday:
|
||||||
|
if event.allday:
|
||||||
|
ics['dtend;value=date'] = str(vDatetime(datetime.fromtimestamp(mktime(strptime(event.stop, DEFAULT_SERVER_DATETIME_FORMAT))) + timedelta(hours=24)).to_ical())[:8]
|
||||||
|
else:
|
||||||
|
ics['dtend'] = tmpEnd
|
||||||
|
|
||||||
|
return [ics, events_exported]
|
||||||
|
|
||||||
|
@api.multi
|
||||||
|
def get_ics_freebusy(self):
|
||||||
|
"""
|
||||||
|
Returns iCalendar file for the event invitation.
|
||||||
|
@param event: event object (browse record)
|
||||||
|
@return: .ics file content
|
||||||
|
"""
|
||||||
|
#~ ics = FreeBusy()
|
||||||
|
event = self[0]
|
||||||
|
|
||||||
|
def ics_datetime(idate, iallday=False):
|
||||||
|
if idate:
|
||||||
|
return vDatetime(idate).to_ical()
|
||||||
|
return False
|
||||||
|
|
||||||
|
if not event.start or not event.stop:
|
||||||
|
raise osv.except_osv(_('Warning!'), _("First you have to specify the date of the invitation."))
|
||||||
|
|
||||||
|
allday = event.allday
|
||||||
|
event_start = datetime.fromtimestamp(mktime(strptime(event.start, DEFAULT_SERVER_DATETIME_FORMAT)))
|
||||||
|
event_stop = datetime.fromtimestamp(mktime(strptime(event.stop, DEFAULT_SERVER_DATETIME_FORMAT)))
|
||||||
|
|
||||||
|
if allday:
|
||||||
|
event_stop += timedelta(hours=23, minutes=59, seconds=59)
|
||||||
|
|
||||||
|
return '%s/%s' % (ics_datetime(event_start, allday), ics_datetime(event_stop, allday))
|
||||||
|
|
||||||
|
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
BIN
calendar_ics/calendar.pyc
Normal file
BIN
calendar_ics/calendar.pyc
Normal file
Binary file not shown.
76
calendar_ics/calendar_ics_demo.xml
Normal file
76
calendar_ics/calendar_ics_demo.xml
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<openerp>
|
||||||
|
<data noupdate="1">
|
||||||
|
<record id="calendar_event_1" model="calendar.event">
|
||||||
|
<field eval="1" name="active" />
|
||||||
|
<field name="user_id" ref="base.user_demo" />
|
||||||
|
<field name="partner_ids" eval="[(6,0,[ref('base.res_partner_address_4')])]" />
|
||||||
|
<field name="name">Demo meeting about meat</field>
|
||||||
|
<field name="description">Meeting to discuss project plan and hash out the details of implementation.</field>
|
||||||
|
<field eval="time.strftime('%Y-%m-03 10:20:00')" name="start" />
|
||||||
|
<field name="categ_ids" eval="[(6,0,[ref('calendar.categ_meet1')])]" />
|
||||||
|
<field eval="time.strftime('%Y-%m-03 16:30:00')" name="stop" />
|
||||||
|
<field eval="6.3" name="duration" />
|
||||||
|
<field eval="0" name="allday" />
|
||||||
|
<field name="state">open</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="calendar_event_2" model="calendar.event">
|
||||||
|
<field eval="1" name="active" />
|
||||||
|
<field name="user_id" ref="base.user_demo" />
|
||||||
|
<field name="partner_ids" eval="[(6,0,[ref('base.res_partner_address_4')])]" />
|
||||||
|
<field name="name">Demo Kickoff</field>
|
||||||
|
<field name="description">Weekend at burneys</field>
|
||||||
|
<field eval="time.strftime('%Y-%m-05 10:20:00')" name="start" />
|
||||||
|
<field name="categ_ids" eval="[(6,0,[ref('calendar.categ_meet1')])]" />
|
||||||
|
<field eval="time.strftime('%Y-%m-07 10:20:00')" name="stop" />
|
||||||
|
<field eval="6.3" name="duration" />
|
||||||
|
<field eval="0" name="allday" />
|
||||||
|
<field name="state">open</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="calendar_event_3" model="calendar.event">
|
||||||
|
<field eval="1" name="active" />
|
||||||
|
<field name="user_id" ref="base.user_demo" />
|
||||||
|
<field name="partner_ids" eval="[(6,0,[ref('base.res_partner_address_4')])]" />
|
||||||
|
<field name="name">Demo Bring the meat.</field>
|
||||||
|
<field name="description">All you can eat buffe.</field>
|
||||||
|
<field eval="time.strftime('%Y-%m-10')" name="start" />
|
||||||
|
<field name="categ_ids" eval="[(6,0,[ref('calendar.categ_meet1')])]" />
|
||||||
|
<field eval="time.strftime('%Y-%m-10')" name="stop" />
|
||||||
|
<field eval="6.3" name="duration" />
|
||||||
|
<field eval="1" name="allday" />
|
||||||
|
<field name="state">open</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="calendar_event_4" model="calendar.event">
|
||||||
|
<field eval="1" name="active" />
|
||||||
|
<field name="user_id" ref="base.user_demo" />
|
||||||
|
<field name="partner_ids" eval="[(6,0,[ref('base.res_partner_address_4')])]" />
|
||||||
|
<field name="name">Demo Trash the meat grinder</field>
|
||||||
|
<field name="description">Bring your own hammers and tools</field>
|
||||||
|
<field name="location">BurgerTown, 31 butcherstreet</field>
|
||||||
|
<field eval="time.strftime('%Y-%m-25 08:00:00')" name="start" />
|
||||||
|
<field name="categ_ids" eval="[(6,0,[ref('calendar.categ_meet1')])]" />
|
||||||
|
<field eval="time.strftime('%Y-%m-25 09:00:00')" name="stop" />
|
||||||
|
<field eval="6.3" name="duration" />
|
||||||
|
<field eval="0" name="allday" />
|
||||||
|
<field name="state">open</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="calendar_event_5" model="calendar.event">
|
||||||
|
<field eval="1" name="active" />
|
||||||
|
<field name="user_id" ref="base.user_demo" />
|
||||||
|
<field name="partner_ids" eval="[(6,0,[ref('base.res_partner_address_4')])]" />
|
||||||
|
<field name="name">Demo Trash the meat grinder reunion!</field>
|
||||||
|
<field name="description">Bring your own hammers and tools AND meat this time</field>
|
||||||
|
<field name="location">BurgerTown, 31 butcherstreet</field>
|
||||||
|
<field eval="time.strftime('%Y-%m-28 08:00:00')" name="start" />
|
||||||
|
<field name="categ_ids" eval="[(6,0,[ref('calendar.categ_meet1')])]" />
|
||||||
|
<field eval="time.strftime('%Y-%m-28 09:00:00')" name="stop" />
|
||||||
|
<field eval="6.3" name="duration" />
|
||||||
|
<field eval="0" name="allday" />
|
||||||
|
<field name="state">open</field>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</openerp>
|
108
calendar_ics/calendar_view.xml
Normal file
108
calendar_ics/calendar_view.xml
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<openerp>
|
||||||
|
<data>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Calendar ICS Form View -->
|
||||||
|
|
||||||
|
<record model="ir.ui.view" id="view_calendar_ics_form">
|
||||||
|
<field name="name">Calendar - ics url</field>
|
||||||
|
<field name="model">calendar.ics</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<form string="Ics">
|
||||||
|
<sheet>
|
||||||
|
<div class="oe_title">
|
||||||
|
<div class="oe_edit_only">
|
||||||
|
<label for="name"/>
|
||||||
|
</div>
|
||||||
|
<h1>
|
||||||
|
<field name="name"/>
|
||||||
|
</h1>
|
||||||
|
<h2>
|
||||||
|
<field name="user_id" />
|
||||||
|
<field name="url" />
|
||||||
|
<field name="active" />
|
||||||
|
<button name="get_events" string="Check" type="object" icon="gtk-ok" colspan="1"/>
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
</sheet>
|
||||||
|
<div class="oe_chatter">
|
||||||
|
<field name="message_follower_ids" widget="mail_followers"/>
|
||||||
|
<field name="message_ids" widget="mail_thread" />
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- CRM Meeting Tree View -->
|
||||||
|
|
||||||
|
<record model="ir.ui.view" id="view_calendar_ics_tree">
|
||||||
|
<field name="name">Calendar ics-url</field>
|
||||||
|
<field name="model">calendar.ics</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<tree string="Ics-urls" fonts="bold:active==False">
|
||||||
|
<field name="name" />
|
||||||
|
<field name="user_id" />
|
||||||
|
<field name="url" />
|
||||||
|
<field name="active" />
|
||||||
|
<button name="get_events" string="Check" type="object" icon="gtk-ok" colspan="1"/>
|
||||||
|
</tree>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- CRM Meeting Search View -->
|
||||||
|
<record id="view_calendar_ics_search" model="ir.ui.view">
|
||||||
|
<field name="name">Calendar ics Search</field>
|
||||||
|
<field name="model">calendar.ics</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<search string="Search Calendar ics-urls">
|
||||||
|
<field name="name" string="Ics" filter_domain="[('name','ilike',self),('url','ilike',self)]"/>
|
||||||
|
<field name="user_id"/>
|
||||||
|
<filter icon="terp-go-today" string="My Urls" domain="[('user_id','=',uid)]" help="My Urls"/>
|
||||||
|
<filter icon="terp-go-today" string="Active" domain="[('cative','=',True)]" help="Active"/>
|
||||||
|
<filter icon="terp-go-today" string="Inactive" domain="[('user_id','=',False)]" help="Inactive"/>
|
||||||
|
<separator/>
|
||||||
|
<group expand="0" string="Group By">
|
||||||
|
<filter string="Owner" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||||
|
</group>
|
||||||
|
</search>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="action_calendar_ics" model="ir.actions.act_window">
|
||||||
|
<field name="name">Calendar ics</field>
|
||||||
|
<field name="res_model">calendar.ics</field>
|
||||||
|
<field name="view_mode">tree,form</field>
|
||||||
|
<field name="view_id" ref="view_calendar_ics_tree"/>
|
||||||
|
<field name="search_view_id" ref="view_calendar_ics_search"/>
|
||||||
|
<field name="help" type="html">
|
||||||
|
<p class="oe_view_nocontent_create">
|
||||||
|
Click to schedule a new Calendar ics url.
|
||||||
|
</p><p>
|
||||||
|
The calendar events in the url updates the calendar.
|
||||||
|
</p>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.actions.act_window.view" id="action_view_calendar_ics_tree">
|
||||||
|
<field name="act_window_id" ref="action_calendar_ics"/>
|
||||||
|
<field name="sequence" eval="2"/>
|
||||||
|
<field name="view_mode">tree</field>
|
||||||
|
<field name="view_id" ref="view_calendar_ics_tree"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.actions.act_window.view" id="action_view_calendar_ics_form">
|
||||||
|
<field name="act_window_id" ref="action_calendar_ics"/>
|
||||||
|
<field name="sequence" eval="3"/>
|
||||||
|
<field name="view_mode">form</field>
|
||||||
|
<field name="view_id" ref="view_calendar_ics_form"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<menuitem id="menu_calendar_configuration" name="Calendar ics" parent="calendar.menu_calendar_configuration" action='action_calendar_ics' /> <!-- groups="base.group_no_one"/> -->
|
||||||
|
|
||||||
|
|
||||||
|
</data>
|
||||||
|
</openerp>
|
287
calendar_ics/res_partner - Copie.py
Normal file
287
calendar_ics/res_partner - Copie.py
Normal file
@ -0,0 +1,287 @@
|
|||||||
|
from openerp import models, fields, api, _
|
||||||
|
from pytz import timezone
|
||||||
|
from openerp.exceptions import except_orm, Warning, RedirectWarning
|
||||||
|
from datetime import datetime, timedelta, time
|
||||||
|
from time import strptime, mktime, strftime
|
||||||
|
from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
|
||||||
|
import re
|
||||||
|
|
||||||
|
from openerp import http
|
||||||
|
from openerp.http import request
|
||||||
|
|
||||||
|
import logging
|
||||||
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
#Debuggger package
|
||||||
|
#import pdb
|
||||||
|
## APPELER "pdb.set_trace()" pour faire un point de debuggage qu'on peut piloter ensuite depuis la console
|
||||||
|
|
||||||
|
try:
|
||||||
|
from icalendar import Calendar, Event, vDatetime, FreeBusy
|
||||||
|
except ImportError:
|
||||||
|
raise Warning('icalendar library missing, pip install icalendar')
|
||||||
|
|
||||||
|
try:
|
||||||
|
import urllib2
|
||||||
|
except ImportError:
|
||||||
|
raise Warning('urllib2 library missing, pip install urllib2')
|
||||||
|
|
||||||
|
class res_partner_icalendar(http.Controller):
|
||||||
|
# http://partner/<res.partner>/calendar/[private.ics|freebusy.ics|public.ics]
|
||||||
|
#~ simple_blog_list = request.env['blog.post'].sudo().search([('blog_id', '=', simple_blog.id)], order='message_last_post desc')
|
||||||
|
|
||||||
|
#~ @http.route(['/partner/<model("res.partner"):partner>/calendar/private.ics'], type='http', auth="public", website=True)
|
||||||
|
#~ def icalendar_private(self, partner=False, **post):
|
||||||
|
#~ if partner:
|
||||||
|
#~ document = partner.sudo().get_ics_calendar(type='private').to_ical()
|
||||||
|
#~ return request.make_response(
|
||||||
|
#~ headers=[('WWW-Authenticate', 'Basic realm="MaxRealm"')]
|
||||||
|
#~ )
|
||||||
|
#~ else:
|
||||||
|
#~ raise Warning("Private failed")
|
||||||
|
#~ pass # Some error page
|
||||||
|
|
||||||
|
@http.route(['/partner/<model("res.partner"):partner>/calendar/freebusy.ics'], type='http', auth="public", website=True)
|
||||||
|
def icalendar_freebusy(self, partner=False, **post):
|
||||||
|
if partner:
|
||||||
|
#~ raise Warning("Public successfull %s" % partner.get_ics_calendar(type='public').to_ical())
|
||||||
|
#~ return partner.get_ics_calendar(type='public').to_ical()
|
||||||
|
document = partner.sudo().get_ics_calendar(type='freebusy').to_ical()
|
||||||
|
return request.make_response(
|
||||||
|
document,
|
||||||
|
headers=[
|
||||||
|
('Content-Disposition', 'attachment; filename="freebusy.ifb"'),
|
||||||
|
('Content-Type', 'text/calendar'),
|
||||||
|
('Content-Length', len(document)),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
raise Warning()
|
||||||
|
pass # Some error page
|
||||||
|
|
||||||
|
#@http.route(['/partner/<model("res.partner"):partner>/calendar/public.ics'], type='http', auth="public", website=True)
|
||||||
|
@http.route(['/calendar-ics/<database_name>/<partner_id>/public.ics'], auth="public")
|
||||||
|
def icalendar_public(self, partner_id, **post):
|
||||||
|
#pdb.set_trace()
|
||||||
|
|
||||||
|
partner = http.request.env['res.partner'].sudo().search([('id','=',partner_id)])
|
||||||
|
if partner:
|
||||||
|
#~ raise Warning("Public successfull %s" % partner.get_ics_calendar(type='public').to_ical())
|
||||||
|
#~ return partner.sudo().get_ics_calendar(type='public')
|
||||||
|
document = partner.sudo().get_ics_calendar(type='public')
|
||||||
|
return request.make_response(
|
||||||
|
document,
|
||||||
|
headers=[
|
||||||
|
('Content-Disposition', 'attachment; filename="public.ics"'),
|
||||||
|
('Content-Type', 'text/calendar'),
|
||||||
|
('Content-Length', len(document)),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
raise Warning("Public failed")
|
||||||
|
pass # Some error page
|
||||||
|
|
||||||
|
class res_partner(models.Model):
|
||||||
|
_inherit = "res.partner"
|
||||||
|
|
||||||
|
ics_url = fields.Char(string='Url',required=False)
|
||||||
|
ics_active = fields.Boolean(string='Active',default=False)
|
||||||
|
ics_nextdate = fields.Datetime(string="Next")
|
||||||
|
#~ ics_frequency = fields.Integer(string="Frequency",default=60, help="Frequency in minutes, 60 = every hour, 1440 once per day, 10080 week, 43920 month, 131760 quarterly")
|
||||||
|
ics_frequency = fields.Selection([('15', 'Every fifteen minutes'), ('60', 'Every hour'), ('360', 'Four times a day'), ('1440', 'Once per day'), ('10080', 'Once every week'), ('43920', 'Once every month'), ('131760', 'Once every third month')], string='Frequency', default='60')
|
||||||
|
ics_class = fields.Selection([('private', 'Private'), ('public', 'Public'), ('confidential', 'Public for Employees')], string='Privacy', default='private')
|
||||||
|
ics_show_as = fields.Selection([('free', 'Free'), ('busy', 'Busy')], string='Show Time as')
|
||||||
|
ics_location = fields.Char(string='Location', help="Location of Event")
|
||||||
|
ics_allday = fields.Boolean(string='All Day')
|
||||||
|
ics_url_field = fields.Char(string='URL to the calendar', compute='create_ics_url')
|
||||||
|
|
||||||
|
@api.one
|
||||||
|
def create_ics_url(self):
|
||||||
|
self.ics_url_field = '%s/partner/%s/calendar/public.ics' % (self.env['ir.config_parameter'].sudo().get_param('web.base.url'), self.id)
|
||||||
|
|
||||||
|
@api.v7
|
||||||
|
def ics_cron_job(self, cr, uid, context=None):
|
||||||
|
for ics in self.pool.get('res.partner').browse(cr, uid, self.pool.get('res.partner').search(cr, uid, [('ics_active','=',True)])):
|
||||||
|
if (datetime.fromtimestamp(mktime(strptime(ics.ics_nextdate, DEFAULT_SERVER_DATETIME_FORMAT))) < datetime.today()):
|
||||||
|
ics.get_ics_events()
|
||||||
|
ics.ics_nextdate = datetime.fromtimestamp(mktime(strptime(ics.ics_nextdate, DEFAULT_SERVER_DATETIME_FORMAT))) + timedelta(minutes=int(ics.ics_frequency))
|
||||||
|
_logger.info('Cron job for %s done' % ics.name)
|
||||||
|
|
||||||
|
@api.one
|
||||||
|
def rm_ics_events(self):
|
||||||
|
self.env['calendar.event'].search(['&',('partner_ids','in',self.id),('ics_subscription','=',True)]).unlink()
|
||||||
|
|
||||||
|
@api.one
|
||||||
|
def get_ics_events(self):
|
||||||
|
if (self.ics_url):
|
||||||
|
try:
|
||||||
|
res = urllib2.urlopen(self.ics_url).read()
|
||||||
|
except urllib2.HTTPError as e:
|
||||||
|
_logger.error('ICS a %s %s' % (e.code, e.reason))
|
||||||
|
return False
|
||||||
|
except urllib2.URLError as e:
|
||||||
|
_logger.error('ICS c %s %s' % (e.code, e.reason))
|
||||||
|
return False
|
||||||
|
_logger.error('ICS %s' % res)
|
||||||
|
|
||||||
|
self.env['calendar.event'].search(['&',('partner_ids','in',self.id),('ics_subscription','=',True)]).unlink()
|
||||||
|
#~ for event in self.env['calendar.event'].search([('ics_id','=',self.id)]):
|
||||||
|
#~ event.unlink()
|
||||||
|
|
||||||
|
self.env['calendar.event'].set_ics_event(res, self)
|
||||||
|
|
||||||
|
@api.multi
|
||||||
|
def get_attendee_ids(self, event):
|
||||||
|
#~ raise Warning('get_attendee_ids run')
|
||||||
|
partner_ids = []
|
||||||
|
#~ attendee_mails = []
|
||||||
|
event_attendee_list = event.get('attendee')
|
||||||
|
if event_attendee_list:
|
||||||
|
if not (type(event_attendee_list) is list):
|
||||||
|
event_attendee_list = [event_attendee_list]
|
||||||
|
|
||||||
|
for vAttendee in event_attendee_list:
|
||||||
|
_logger.error('Attendee found %s' % vAttendee)
|
||||||
|
attendee_mailto = re.search('(:MAILTO:)([a-zA-Z0-9_@.\-]*)', vAttendee)
|
||||||
|
attendee_cn = re.search('(CN=)([^:]*)', vAttendee)
|
||||||
|
if attendee_mailto:
|
||||||
|
attendee_mailto = attendee_mailto.group(2)
|
||||||
|
if attendee_cn:
|
||||||
|
attendee_cn = attendee_cn.group(2)
|
||||||
|
elif not attendee_mailto and not attendee_cn:
|
||||||
|
attendee_cn = vAttendee
|
||||||
|
_logger.error('Attendee found %s' % attendee_cn)
|
||||||
|
|
||||||
|
#~ raise Warning('%s %s' % (vAttendee, attendee_cn))
|
||||||
|
if attendee_mailto:
|
||||||
|
partner_result = self.env['res.partner'].search([('email','=',attendee_mailto)])
|
||||||
|
|
||||||
|
if not partner_result:
|
||||||
|
partner_id = self.env['res.partner'].create({
|
||||||
|
'email': attendee_mailto,
|
||||||
|
'name': attendee_cn or attendee_mailto,
|
||||||
|
})
|
||||||
|
else:
|
||||||
|
partner_id = partner_result[0]
|
||||||
|
elif attendee_cn:
|
||||||
|
partner_result = self.env['res.partner'].search([('name','=',attendee_cn)])
|
||||||
|
|
||||||
|
if not partner_result:
|
||||||
|
partner_id = self.env['res.partner'].create({
|
||||||
|
'name': attendee_cn or attendee_mailto,
|
||||||
|
})
|
||||||
|
else:
|
||||||
|
partner_id = partner_result[0]
|
||||||
|
|
||||||
|
#~ self.env['calendar.attendee'].create({
|
||||||
|
#~ 'event_id': event_id.id,
|
||||||
|
#~ 'partner_id': partner_id.id or None,
|
||||||
|
#~ 'email': attendee_mailto or '',
|
||||||
|
#~ })
|
||||||
|
|
||||||
|
partner_ids.append(partner_id.id or None)
|
||||||
|
#~ attendee_mails.append(attendee_mailto or '')
|
||||||
|
|
||||||
|
return partner_ids
|
||||||
|
#~ return [partner_ids, attendee_mails]
|
||||||
|
|
||||||
|
def get_ics_calendar(self,type='public'):
|
||||||
|
calendar = Calendar()
|
||||||
|
if type == 'private':
|
||||||
|
for event in self.env['calendar.event'].search([('partner_ids','in',self.id)]):
|
||||||
|
calendar.add_component(event.get_ics_file())
|
||||||
|
elif type == 'freebusy':
|
||||||
|
fc = FreeBusy()
|
||||||
|
|
||||||
|
organizer_add = self.name and ('CN=' + self.name) or ''
|
||||||
|
if self.name and self.email:
|
||||||
|
organizer_add += ':'
|
||||||
|
organizer_add += self.email and ('MAILTO:' + self.email) or ''
|
||||||
|
fc['organizer'] = organizer_add
|
||||||
|
|
||||||
|
for event in self.env['calendar.event'].search([('partner_ids','in',self.id)]):
|
||||||
|
fc.add('freebusy', event.get_ics_freebusy(), encode=0)
|
||||||
|
#~ fb.add_component(fc)
|
||||||
|
return fc
|
||||||
|
elif type == 'public':
|
||||||
|
#~ raise Warning(self.env['calendar.event'].search([('partner_ids','in',self.id)]))
|
||||||
|
exported_ics = []
|
||||||
|
for event in reversed(self.env['calendar.event'].search([('partner_ids','in',self.id)])):
|
||||||
|
temporary_ics = event.get_ics_file(exported_ics, self)
|
||||||
|
if temporary_ics:
|
||||||
|
exported_ics.append(temporary_ics[1])
|
||||||
|
#~ temporary_ics[0].add('url', self.ics_url_field, encode=0)
|
||||||
|
calendar.add_component(temporary_ics[0])
|
||||||
|
#~ calendar.add('vevent', temporary_ics[0], encode=0)
|
||||||
|
|
||||||
|
#~ for attendees in event.attendee_ids:
|
||||||
|
#~ calendar.add('attendee', event.get_event_attendees(attendees), encode=0)
|
||||||
|
|
||||||
|
tmpCalendar = calendar.to_ical()
|
||||||
|
tmpSearch = re.findall('RRULE:[^\n]*\\;[^\n]*', tmpCalendar)
|
||||||
|
|
||||||
|
for counter in range(len(tmpSearch)):
|
||||||
|
tmpCalendar = tmpCalendar.replace(tmpSearch[counter], tmpSearch[counter].replace('\\;', ';', tmpSearch[counter].count('\\;')))
|
||||||
|
|
||||||
|
#~ raise Warning(tmpCalendar)
|
||||||
|
|
||||||
|
return tmpCalendar
|
||||||
|
|
||||||
|
@api.multi
|
||||||
|
def ics_mail(self,context=None):
|
||||||
|
#raise Warning('%s | %s' % (ids,picking))
|
||||||
|
compose_form = self.env.ref('mail.email_compose_message_wizard_form', False)
|
||||||
|
#~ raise Warning("%s compose_form" % compose_form)
|
||||||
|
mail= self.env['mail.compose.message'].create({
|
||||||
|
'template_id':self.env.ref('calendar_ics.email_ics_url').id,
|
||||||
|
'model': 'res.partner',
|
||||||
|
'res_id': self.id,
|
||||||
|
})
|
||||||
|
mail.write(mail.onchange_template_id( # gets defaults from template
|
||||||
|
self.env.ref('calendar_ics.email_ics_url').id, mail.composition_mode,
|
||||||
|
mail.model, mail.res_id,context=context
|
||||||
|
)['value'])
|
||||||
|
return {
|
||||||
|
'name': _('Compose Email'),
|
||||||
|
'type': 'ir.actions.act_window',
|
||||||
|
'view_type': 'form',
|
||||||
|
'view_mode': 'form',
|
||||||
|
'res_model': 'mail.compose.message',
|
||||||
|
'res_id':mail.id,
|
||||||
|
'views': [(compose_form.id, 'form')],
|
||||||
|
'view_id': compose_form.id,
|
||||||
|
'target': 'new',
|
||||||
|
}
|
||||||
|
|
||||||
|
return {'value': {'partner_id': False}, 'warning': {'title': 'Hello', 'message': 'Hejsan'}}
|
||||||
|
|
||||||
|
|
||||||
|
#~ ics['freebusy'] = '%s/%s' % (ics_datetime(event.start, event.allday), ics_datetime(event.stop, event.allday))
|
||||||
|
|
||||||
|
# vtodo, vjournal, vfreebusy
|
||||||
|
|
||||||
|
|
||||||
|
#~ eventprop = *(
|
||||||
|
|
||||||
|
#~ ; the following are optional,
|
||||||
|
#~ ; but MUST NOT occur more than once
|
||||||
|
|
||||||
|
#~ class / created / description / dtstart / geo /
|
||||||
|
#~ last-mod / location / organizer / priority /
|
||||||
|
#~ dtstamp / seq / status / summary / transp /
|
||||||
|
#~ uid / url / recurid /
|
||||||
|
|
||||||
|
#~ ; either 'dtend' or 'duration' may appear in
|
||||||
|
#~ ; a 'eventprop', but 'dtend' and 'duration'
|
||||||
|
#~ ; MUST NOT occur in the same 'eventprop'
|
||||||
|
|
||||||
|
#~ dtend / duration /
|
||||||
|
|
||||||
|
#~ ; the following are optional,
|
||||||
|
#~ ; and MAY occur more than once
|
||||||
|
|
||||||
|
#~ attach / attendee / categories / comment /
|
||||||
|
#~ contact / exdate / exrule / rstatus / related /
|
||||||
|
#~ resources / rdate / rrule / x-prop
|
||||||
|
|
||||||
|
#~ )
|
279
calendar_ics/res_partner.py
Normal file
279
calendar_ics/res_partner.py
Normal file
@ -0,0 +1,279 @@
|
|||||||
|
from openerp import models, fields, api, _
|
||||||
|
from pytz import timezone
|
||||||
|
from openerp.exceptions import except_orm, Warning, RedirectWarning
|
||||||
|
from datetime import datetime, timedelta, time
|
||||||
|
from time import strptime, mktime, strftime
|
||||||
|
from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
|
||||||
|
import re
|
||||||
|
|
||||||
|
from openerp import http
|
||||||
|
from openerp.http import request
|
||||||
|
|
||||||
|
import logging
|
||||||
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
try:
|
||||||
|
from icalendar import Calendar, Event, vDatetime, FreeBusy
|
||||||
|
except ImportError:
|
||||||
|
raise Warning('icalendar library missing, pip install icalendar')
|
||||||
|
|
||||||
|
try:
|
||||||
|
import urllib2
|
||||||
|
except ImportError:
|
||||||
|
raise Warning('urllib2 library missing, pip install urllib2')
|
||||||
|
|
||||||
|
class res_partner_icalendar(http.Controller):
|
||||||
|
# http://partner/<res.partner>/calendar/[private.ics|freebusy.ics|public.ics]
|
||||||
|
#~ simple_blog_list = request.env['blog.post'].sudo().search([('blog_id', '=', simple_blog.id)], order='message_last_post desc')
|
||||||
|
|
||||||
|
#~ @http.route(['/partner/<model("res.partner"):partner>/calendar/private.ics'], type='http', auth="public", website=True)
|
||||||
|
#~ def icalendar_private(self, partner=False, **post):
|
||||||
|
#~ if partner:
|
||||||
|
#~ document = partner.sudo().get_ics_calendar(type='private').to_ical()
|
||||||
|
#~ return request.make_response(
|
||||||
|
#~ headers=[('WWW-Authenticate', 'Basic realm="MaxRealm"')]
|
||||||
|
#~ )
|
||||||
|
#~ else:
|
||||||
|
#~ raise Warning("Private failed")
|
||||||
|
#~ pass # Some error page
|
||||||
|
|
||||||
|
@http.route(['/partner/<model("res.partner"):partner>/calendar/freebusy.ics'], type='http', auth="public", website=True)
|
||||||
|
def icalendar_freebusy(self, partner=False, **post):
|
||||||
|
if partner:
|
||||||
|
#~ raise Warning("Public successfull %s" % partner.get_ics_calendar(type='public').to_ical())
|
||||||
|
#~ return partner.get_ics_calendar(type='public').to_ical()
|
||||||
|
document = partner.sudo().get_ics_calendar(type='freebusy').to_ical()
|
||||||
|
return request.make_response(
|
||||||
|
document,
|
||||||
|
headers=[
|
||||||
|
('Content-Disposition', 'attachment; filename="freebusy.ifb"'),
|
||||||
|
('Content-Type', 'text/calendar'),
|
||||||
|
('Content-Length', len(document)),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
raise Warning()
|
||||||
|
pass # Some error page
|
||||||
|
|
||||||
|
@http.route(['/partner/<model("res.partner"):partner>/calendar/public.ics'], type='http', auth="public", website=True)
|
||||||
|
def icalendar_public(self, partner=False, **post):
|
||||||
|
if partner:
|
||||||
|
#~ raise Warning("Public successfull %s" % partner.get_ics_calendar(type='public').to_ical())
|
||||||
|
#~ return partner.sudo().get_ics_calendar(type='public')
|
||||||
|
document = partner.sudo().get_ics_calendar(type='public')
|
||||||
|
return request.make_response(
|
||||||
|
document,
|
||||||
|
headers=[
|
||||||
|
('Content-Disposition', 'attachment; filename="public.ics"'),
|
||||||
|
('Content-Type', 'text/calendar'),
|
||||||
|
('Content-Length', len(document)),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
raise Warning("Public failed")
|
||||||
|
pass # Some error page
|
||||||
|
|
||||||
|
class res_partner(models.Model):
|
||||||
|
_inherit = "res.partner"
|
||||||
|
|
||||||
|
ics_url = fields.Char(string='Url',required=False)
|
||||||
|
ics_active = fields.Boolean(string='Active',default=False)
|
||||||
|
ics_nextdate = fields.Datetime(string="Next")
|
||||||
|
#~ ics_frequency = fields.Integer(string="Frequency",default=60, help="Frequency in minutes, 60 = every hour, 1440 once per day, 10080 week, 43920 month, 131760 quarterly")
|
||||||
|
ics_frequency = fields.Selection([('15', 'Every fifteen minutes'), ('60', 'Every hour'), ('360', 'Four times a day'), ('1440', 'Once per day'), ('10080', 'Once every week'), ('43920', 'Once every month'), ('131760', 'Once every third month')], string='Frequency', default='60')
|
||||||
|
ics_class = fields.Selection([('private', 'Private'), ('public', 'Public'), ('confidential', 'Public for Employees')], string='Privacy', default='private')
|
||||||
|
ics_show_as = fields.Selection([('free', 'Free'), ('busy', 'Busy')], string='Show Time as')
|
||||||
|
ics_location = fields.Char(string='Location', help="Location of Event")
|
||||||
|
ics_allday = fields.Boolean(string='All Day')
|
||||||
|
ics_url_field = fields.Char(string='URL to the calendar', compute='create_ics_url')
|
||||||
|
|
||||||
|
@api.one
|
||||||
|
def create_ics_url(self):
|
||||||
|
self.ics_url_field = '%s/partner/%s/calendar/public.ics' % (self.env['ir.config_parameter'].sudo().get_param('web.base.url'), self.id)
|
||||||
|
|
||||||
|
@api.v7
|
||||||
|
def ics_cron_job(self, cr, uid, context=None):
|
||||||
|
for ics in self.pool.get('res.partner').browse(cr, uid, self.pool.get('res.partner').search(cr, uid, [('ics_active','=',True)])):
|
||||||
|
if (datetime.fromtimestamp(mktime(strptime(ics.ics_nextdate, DEFAULT_SERVER_DATETIME_FORMAT))) < datetime.today()):
|
||||||
|
ics.get_ics_events()
|
||||||
|
ics.ics_nextdate = datetime.fromtimestamp(mktime(strptime(ics.ics_nextdate, DEFAULT_SERVER_DATETIME_FORMAT))) + timedelta(minutes=int(ics.ics_frequency))
|
||||||
|
_logger.info('Cron job for %s done' % ics.name)
|
||||||
|
|
||||||
|
@api.one
|
||||||
|
def rm_ics_events(self):
|
||||||
|
self.env['calendar.event'].search(['&',('partner_ids','in',self.id),('ics_subscription','=',True)]).unlink()
|
||||||
|
|
||||||
|
@api.one
|
||||||
|
def get_ics_events(self):
|
||||||
|
if (self.ics_url):
|
||||||
|
try:
|
||||||
|
res = urllib2.urlopen(self.ics_url).read()
|
||||||
|
except urllib2.HTTPError as e:
|
||||||
|
_logger.error('ICS a %s %s' % (e.code, e.reason))
|
||||||
|
return False
|
||||||
|
except urllib2.URLError as e:
|
||||||
|
_logger.error('ICS c %s %s' % (e.code, e.reason))
|
||||||
|
return False
|
||||||
|
_logger.error('ICS %s' % res)
|
||||||
|
|
||||||
|
self.env['calendar.event'].search(['&',('partner_ids','in',self.id),('ics_subscription','=',True)]).unlink()
|
||||||
|
#~ for event in self.env['calendar.event'].search([('ics_id','=',self.id)]):
|
||||||
|
#~ event.unlink()
|
||||||
|
|
||||||
|
self.env['calendar.event'].set_ics_event(res, self)
|
||||||
|
|
||||||
|
@api.multi
|
||||||
|
def get_attendee_ids(self, event):
|
||||||
|
#~ raise Warning('get_attendee_ids run')
|
||||||
|
partner_ids = []
|
||||||
|
#~ attendee_mails = []
|
||||||
|
event_attendee_list = event.get('attendee')
|
||||||
|
if event_attendee_list:
|
||||||
|
if not (type(event_attendee_list) is list):
|
||||||
|
event_attendee_list = [event_attendee_list]
|
||||||
|
|
||||||
|
for vAttendee in event_attendee_list:
|
||||||
|
_logger.error('Attendee found %s' % vAttendee)
|
||||||
|
attendee_mailto = re.search('(:MAILTO:)([a-zA-Z0-9_@.\-]*)', vAttendee)
|
||||||
|
attendee_cn = re.search('(CN=)([^:]*)', vAttendee)
|
||||||
|
if attendee_mailto:
|
||||||
|
attendee_mailto = attendee_mailto.group(2)
|
||||||
|
if attendee_cn:
|
||||||
|
attendee_cn = attendee_cn.group(2)
|
||||||
|
elif not attendee_mailto and not attendee_cn:
|
||||||
|
attendee_cn = vAttendee
|
||||||
|
_logger.error('Attendee found %s' % attendee_cn)
|
||||||
|
|
||||||
|
#~ raise Warning('%s %s' % (vAttendee, attendee_cn))
|
||||||
|
if attendee_mailto:
|
||||||
|
partner_result = self.env['res.partner'].search([('email','=',attendee_mailto)])
|
||||||
|
|
||||||
|
if not partner_result:
|
||||||
|
partner_id = self.env['res.partner'].create({
|
||||||
|
'email': attendee_mailto,
|
||||||
|
'name': attendee_cn or attendee_mailto,
|
||||||
|
})
|
||||||
|
else:
|
||||||
|
partner_id = partner_result[0]
|
||||||
|
elif attendee_cn:
|
||||||
|
partner_result = self.env['res.partner'].search([('name','=',attendee_cn)])
|
||||||
|
|
||||||
|
if not partner_result:
|
||||||
|
partner_id = self.env['res.partner'].create({
|
||||||
|
'name': attendee_cn or attendee_mailto,
|
||||||
|
})
|
||||||
|
else:
|
||||||
|
partner_id = partner_result[0]
|
||||||
|
|
||||||
|
#~ self.env['calendar.attendee'].create({
|
||||||
|
#~ 'event_id': event_id.id,
|
||||||
|
#~ 'partner_id': partner_id.id or None,
|
||||||
|
#~ 'email': attendee_mailto or '',
|
||||||
|
#~ })
|
||||||
|
|
||||||
|
partner_ids.append(partner_id.id or None)
|
||||||
|
#~ attendee_mails.append(attendee_mailto or '')
|
||||||
|
|
||||||
|
return partner_ids
|
||||||
|
#~ return [partner_ids, attendee_mails]
|
||||||
|
|
||||||
|
def get_ics_calendar(self,type='public'):
|
||||||
|
calendar = Calendar()
|
||||||
|
if type == 'private':
|
||||||
|
for event in self.env['calendar.event'].search([('partner_ids','in',self.id)]):
|
||||||
|
calendar.add_component(event.get_ics_file())
|
||||||
|
elif type == 'freebusy':
|
||||||
|
fc = FreeBusy()
|
||||||
|
|
||||||
|
organizer_add = self.name and ('CN=' + self.name) or ''
|
||||||
|
if self.name and self.email:
|
||||||
|
organizer_add += ':'
|
||||||
|
organizer_add += self.email and ('MAILTO:' + self.email) or ''
|
||||||
|
fc['organizer'] = organizer_add
|
||||||
|
|
||||||
|
for event in self.env['calendar.event'].search([('partner_ids','in',self.id)]):
|
||||||
|
fc.add('freebusy', event.get_ics_freebusy(), encode=0)
|
||||||
|
#~ fb.add_component(fc)
|
||||||
|
return fc
|
||||||
|
elif type == 'public':
|
||||||
|
#~ raise Warning(self.env['calendar.event'].search([('partner_ids','in',self.id)]))
|
||||||
|
exported_ics = []
|
||||||
|
for event in reversed(self.env['calendar.event'].search([('partner_ids','in',self.id)])):
|
||||||
|
temporary_ics = event.get_ics_file(exported_ics, self)
|
||||||
|
if temporary_ics:
|
||||||
|
exported_ics.append(temporary_ics[1])
|
||||||
|
#~ temporary_ics[0].add('url', self.ics_url_field, encode=0)
|
||||||
|
calendar.add_component(temporary_ics[0])
|
||||||
|
#~ calendar.add('vevent', temporary_ics[0], encode=0)
|
||||||
|
|
||||||
|
#~ for attendees in event.attendee_ids:
|
||||||
|
#~ calendar.add('attendee', event.get_event_attendees(attendees), encode=0)
|
||||||
|
|
||||||
|
tmpCalendar = calendar.to_ical()
|
||||||
|
tmpSearch = re.findall('RRULE:[^\n]*\\;[^\n]*', tmpCalendar)
|
||||||
|
|
||||||
|
for counter in range(len(tmpSearch)):
|
||||||
|
tmpCalendar = tmpCalendar.replace(tmpSearch[counter], tmpSearch[counter].replace('\\;', ';', tmpSearch[counter].count('\\;')))
|
||||||
|
|
||||||
|
#~ raise Warning(tmpCalendar)
|
||||||
|
|
||||||
|
return tmpCalendar
|
||||||
|
|
||||||
|
@api.multi
|
||||||
|
def ics_mail(self,context=None):
|
||||||
|
#raise Warning('%s | %s' % (ids,picking))
|
||||||
|
compose_form = self.env.ref('mail.email_compose_message_wizard_form', False)
|
||||||
|
#~ raise Warning("%s compose_form" % compose_form)
|
||||||
|
mail= self.env['mail.compose.message'].create({
|
||||||
|
'template_id':self.env.ref('calendar_ics.email_ics_url').id,
|
||||||
|
'model': 'res.partner',
|
||||||
|
'res_id': self.id,
|
||||||
|
})
|
||||||
|
mail.write(mail.onchange_template_id( # gets defaults from template
|
||||||
|
self.env.ref('calendar_ics.email_ics_url').id, mail.composition_mode,
|
||||||
|
mail.model, mail.res_id,context=context
|
||||||
|
)['value'])
|
||||||
|
return {
|
||||||
|
'name': _('Compose Email'),
|
||||||
|
'type': 'ir.actions.act_window',
|
||||||
|
'view_type': 'form',
|
||||||
|
'view_mode': 'form',
|
||||||
|
'res_model': 'mail.compose.message',
|
||||||
|
'res_id':mail.id,
|
||||||
|
'views': [(compose_form.id, 'form')],
|
||||||
|
'view_id': compose_form.id,
|
||||||
|
'target': 'new',
|
||||||
|
}
|
||||||
|
|
||||||
|
return {'value': {'partner_id': False}, 'warning': {'title': 'Hello', 'message': 'Hejsan'}}
|
||||||
|
|
||||||
|
|
||||||
|
#~ ics['freebusy'] = '%s/%s' % (ics_datetime(event.start, event.allday), ics_datetime(event.stop, event.allday))
|
||||||
|
|
||||||
|
# vtodo, vjournal, vfreebusy
|
||||||
|
|
||||||
|
|
||||||
|
#~ eventprop = *(
|
||||||
|
|
||||||
|
#~ ; the following are optional,
|
||||||
|
#~ ; but MUST NOT occur more than once
|
||||||
|
|
||||||
|
#~ class / created / description / dtstart / geo /
|
||||||
|
#~ last-mod / location / organizer / priority /
|
||||||
|
#~ dtstamp / seq / status / summary / transp /
|
||||||
|
#~ uid / url / recurid /
|
||||||
|
|
||||||
|
#~ ; either 'dtend' or 'duration' may appear in
|
||||||
|
#~ ; a 'eventprop', but 'dtend' and 'duration'
|
||||||
|
#~ ; MUST NOT occur in the same 'eventprop'
|
||||||
|
|
||||||
|
#~ dtend / duration /
|
||||||
|
|
||||||
|
#~ ; the following are optional,
|
||||||
|
#~ ; and MAY occur more than once
|
||||||
|
|
||||||
|
#~ attach / attendee / categories / comment /
|
||||||
|
#~ contact / exdate / exrule / rstatus / related /
|
||||||
|
#~ resources / rdate / rrule / x-prop
|
||||||
|
|
||||||
|
#~ )
|
BIN
calendar_ics/res_partner.pyc
Normal file
BIN
calendar_ics/res_partner.pyc
Normal file
Binary file not shown.
29
calendar_ics/res_partner_data.xml
Normal file
29
calendar_ics/res_partner_data.xml
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<openerp>
|
||||||
|
<data noupdate="1">
|
||||||
|
<!--
|
||||||
|
Email Templates
|
||||||
|
-->
|
||||||
|
<record id="email_ics_url" model="email.template">
|
||||||
|
<field name="name">ics_url</field>
|
||||||
|
<field name="email_from">admin@example.com</field>
|
||||||
|
<field name="model_object_field" ref="calendar_ics.field_res_partner_ics_url_field" />
|
||||||
|
<field name="subject">Calendar ics url</field>
|
||||||
|
<field name="email_to">${(object.email or '')|safe}</field>
|
||||||
|
<field name="model_id" ref="base.model_res_partner" />
|
||||||
|
<field name="body_html">
|
||||||
|
<![CDATA[<p>Use this url for the ${object.name} calendar:</p>
|
||||||
|
<p>${object.ics_url_field}</p>
|
||||||
|
]]>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
<record model="ir.cron" id="calendar_partner_cron_job">
|
||||||
|
<field name="name">Generate Recurring Calendar updates for Partners</field>
|
||||||
|
<field name="interval_number">15</field>
|
||||||
|
<field name="interval_type">minutes</field>
|
||||||
|
<field name="numbercall">-1</field>
|
||||||
|
<field name="model" eval="'res.partner'" />
|
||||||
|
<field name="function" eval="'ics_cron_job'" />
|
||||||
|
<field name="args" eval="'()'" />
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</openerp>
|
32
calendar_ics/res_partner_view.xml
Normal file
32
calendar_ics/res_partner_view.xml
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<openerp>
|
||||||
|
<data>
|
||||||
|
<record id="view_partner_form" model="ir.ui.view">
|
||||||
|
<field name="name">res.partner.ics</field>
|
||||||
|
<field name="model">res.partner</field>
|
||||||
|
<field name="inherit_id" ref="base.view_partner_form" />
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<page name="internal_notes" position="after">
|
||||||
|
<page name="ics" string="Calendar ICS">
|
||||||
|
<group col="16">
|
||||||
|
<field name="ics_url" placeholder="http://your calendar ics url..." colspan="11" />
|
||||||
|
<button string="Check url" type="object" name="get_ics_events" colspan="2" />
|
||||||
|
<button string="Remove events" type="object" name="rm_ics_events" colspan="3" />
|
||||||
|
<field name="ics_active" colspan="16" />
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<field name="ics_frequency" />
|
||||||
|
<field name="ics_nextdate" />
|
||||||
|
<field name="ics_class" />
|
||||||
|
<field name="ics_show_as" />
|
||||||
|
<field name="ics_location" />
|
||||||
|
<field name="ics_allday" />
|
||||||
|
<field name="ics_url_field" />
|
||||||
|
<button string="ics_url_mail" type="object" name="ics_mail" />
|
||||||
|
</group>
|
||||||
|
</page>
|
||||||
|
</page>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</openerp>
|
3
calendar_ics/security/ir.model.access.csv
Normal file
3
calendar_ics/security/ir.model.access.csv
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
|
||||||
|
access_calendar_ics_manager,res.groups,model_calendar_ics,base.group_erp_manager,1,1,1,1
|
||||||
|
access_calendar_ics_all,res.groups,model_calendar_ics,,1,0,0,0
|
|
24
google_account/__init__.py
Normal file
24
google_account/__init__.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# OpenERP, Open Source Management Solution
|
||||||
|
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
|
import google_account
|
||||||
|
import controllers
|
||||||
|
|
||||||
|
from .google_account import TIMEOUT # noqa
|
41
google_account/__openerp__.py
Normal file
41
google_account/__openerp__.py
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# OpenERP, Open Source Management Solution
|
||||||
|
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
'name': 'Google Users',
|
||||||
|
'version': '1.0',
|
||||||
|
'category': 'Tools',
|
||||||
|
'description': """
|
||||||
|
The module adds google user in res user.
|
||||||
|
========================================
|
||||||
|
""",
|
||||||
|
'author': 'OpenERP SA',
|
||||||
|
'website': 'https://www.odoo.com',
|
||||||
|
'depends': ['base_setup'],
|
||||||
|
'data': [
|
||||||
|
'google_account_data.xml',
|
||||||
|
],
|
||||||
|
'demo': [],
|
||||||
|
'installable': True,
|
||||||
|
'auto_install': False,
|
||||||
|
}
|
||||||
|
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
1
google_account/controllers/__init__.py
Normal file
1
google_account/controllers/__init__.py
Normal file
@ -0,0 +1 @@
|
|||||||
|
import main
|
32
google_account/controllers/main.py
Normal file
32
google_account/controllers/main.py
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
import simplejson
|
||||||
|
import urllib
|
||||||
|
import openerp
|
||||||
|
from openerp import http
|
||||||
|
from openerp.http import request
|
||||||
|
import openerp.addons.web.controllers.main as webmain
|
||||||
|
from openerp.addons.web.http import SessionExpiredException
|
||||||
|
from werkzeug.exceptions import BadRequest
|
||||||
|
import werkzeug.utils
|
||||||
|
|
||||||
|
class google_auth(http.Controller):
|
||||||
|
|
||||||
|
@http.route('/google_account/authentication', type='http', auth="none")
|
||||||
|
def oauth2callback(self, **kw):
|
||||||
|
""" This route/function is called by Google when user Accept/Refuse the consent of Google """
|
||||||
|
|
||||||
|
state = simplejson.loads(kw['state'])
|
||||||
|
dbname = state.get('d')
|
||||||
|
service = state.get('s')
|
||||||
|
url_return = state.get('f')
|
||||||
|
|
||||||
|
registry = openerp.modules.registry.RegistryManager.get(dbname)
|
||||||
|
with registry.cursor() as cr:
|
||||||
|
if kw.get('code',False):
|
||||||
|
registry.get('google.%s' % service).set_all_tokens(cr,request.session.uid,kw['code'])
|
||||||
|
return werkzeug.utils.redirect(url_return)
|
||||||
|
elif kw.get('error'):
|
||||||
|
return werkzeug.utils.redirect("%s%s%s" % (url_return ,"?error=" , kw.get('error')))
|
||||||
|
else:
|
||||||
|
return werkzeug.utils.redirect("%s%s" % (url_return ,"?error=Unknown_error"))
|
||||||
|
|
||||||
|
|
189
google_account/google_account.py
Normal file
189
google_account/google_account.py
Normal file
@ -0,0 +1,189 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import openerp
|
||||||
|
from openerp.http import request
|
||||||
|
from openerp.osv import osv
|
||||||
|
from openerp import SUPERUSER_ID
|
||||||
|
from openerp.tools.translate import _
|
||||||
|
from datetime import datetime
|
||||||
|
from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT
|
||||||
|
|
||||||
|
import werkzeug.urls
|
||||||
|
import urllib2
|
||||||
|
import simplejson
|
||||||
|
|
||||||
|
import logging
|
||||||
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
TIMEOUT = 20
|
||||||
|
|
||||||
|
class google_service(osv.osv_memory):
|
||||||
|
_name = 'google.service'
|
||||||
|
|
||||||
|
def generate_refresh_token(self, cr, uid, service, authorization_code, context=None):
|
||||||
|
ir_config = self.pool['ir.config_parameter']
|
||||||
|
client_id = ir_config.get_param(cr, SUPERUSER_ID, 'google_%s_client_id' % service)
|
||||||
|
client_secret = ir_config.get_param(cr, SUPERUSER_ID, 'google_%s_client_secret' % service)
|
||||||
|
redirect_uri = ir_config.get_param(cr, SUPERUSER_ID, 'google_redirect_uri')
|
||||||
|
|
||||||
|
#Get the Refresh Token From Google And store it in ir.config_parameter
|
||||||
|
headers = {"Content-type": "application/x-www-form-urlencoded"}
|
||||||
|
data = dict(code=authorization_code, client_id=client_id, client_secret=client_secret, redirect_uri=redirect_uri, grant_type="authorization_code")
|
||||||
|
data = werkzeug.url_encode(data)
|
||||||
|
try:
|
||||||
|
req = urllib2.Request("https://accounts.google.com/o/oauth2/token", data, headers)
|
||||||
|
content = urllib2.urlopen(req, timeout=TIMEOUT).read()
|
||||||
|
except urllib2.HTTPError:
|
||||||
|
error_msg = "Something went wrong during your token generation. Maybe your Authorization Code is invalid or already expired"
|
||||||
|
raise self.pool.get('res.config.settings').get_config_warning(cr, _(error_msg), context=context)
|
||||||
|
|
||||||
|
content = simplejson.loads(content)
|
||||||
|
return content.get('refresh_token')
|
||||||
|
|
||||||
|
def _get_google_token_uri(self, cr, uid, service, scope, context=None):
|
||||||
|
ir_config = self.pool['ir.config_parameter']
|
||||||
|
params = {
|
||||||
|
'scope': scope,
|
||||||
|
'redirect_uri': ir_config.get_param(cr, SUPERUSER_ID, 'google_redirect_uri'),
|
||||||
|
'client_id': ir_config.get_param(cr, SUPERUSER_ID, 'google_%s_client_id' % service),
|
||||||
|
'response_type': 'code',
|
||||||
|
'client_id': ir_config.get_param(cr, SUPERUSER_ID, 'google_%s_client_id' % service),
|
||||||
|
}
|
||||||
|
uri = 'https://accounts.google.com/o/oauth2/auth?%s' % werkzeug.url_encode(params)
|
||||||
|
return uri
|
||||||
|
|
||||||
|
# If no scope is passed, we use service by default to get a default scope
|
||||||
|
def _get_authorize_uri(self, cr, uid, from_url, service, scope=False, context=None):
|
||||||
|
""" This method return the url needed to allow this instance of OpenErp to access to the scope of gmail specified as parameters """
|
||||||
|
state_obj = dict(d=cr.dbname, s=service, f=from_url)
|
||||||
|
|
||||||
|
base_url = self.get_base_url(cr, uid, context)
|
||||||
|
client_id = self.get_client_id(cr, uid, service, context)
|
||||||
|
|
||||||
|
params = {
|
||||||
|
'response_type': 'code',
|
||||||
|
'client_id': client_id,
|
||||||
|
'state': simplejson.dumps(state_obj),
|
||||||
|
'scope': scope or 'https://www.googleapis.com/auth/%s' % (service,),
|
||||||
|
'redirect_uri': base_url + '/google_account/authentication',
|
||||||
|
'approval_prompt': 'force',
|
||||||
|
'access_type': 'offline'
|
||||||
|
}
|
||||||
|
|
||||||
|
uri = self.get_uri_oauth(a='auth') + "?%s" % werkzeug.url_encode(params)
|
||||||
|
return uri
|
||||||
|
|
||||||
|
def _get_google_token_json(self, cr, uid, authorize_code, service, context=None):
|
||||||
|
res = False
|
||||||
|
base_url = self.get_base_url(cr, uid, context)
|
||||||
|
client_id = self.get_client_id(cr, uid, service, context)
|
||||||
|
client_secret = self.get_client_secret(cr, uid, service, context)
|
||||||
|
|
||||||
|
params = {
|
||||||
|
'code': authorize_code,
|
||||||
|
'client_id': client_id,
|
||||||
|
'client_secret': client_secret,
|
||||||
|
'grant_type': 'authorization_code',
|
||||||
|
'redirect_uri': base_url + '/google_account/authentication'
|
||||||
|
}
|
||||||
|
|
||||||
|
headers = {"content-type": "application/x-www-form-urlencoded"}
|
||||||
|
|
||||||
|
try:
|
||||||
|
uri = self.get_uri_oauth(a='token')
|
||||||
|
data = werkzeug.url_encode(params)
|
||||||
|
|
||||||
|
st, res, ask_time = self._do_request(cr, uid, uri, params=data, headers=headers, type='POST', preuri='', context=context)
|
||||||
|
except urllib2.HTTPError:
|
||||||
|
error_msg = "Something went wrong during your token generation. Maybe your Authorization Code is invalid"
|
||||||
|
raise self.pool.get('res.config.settings').get_config_warning(cr, _(error_msg), context=context)
|
||||||
|
return res
|
||||||
|
|
||||||
|
def _refresh_google_token_json(self, cr, uid, refresh_token, service, context=None): # exchange_AUTHORIZATION vs Token (service = calendar)
|
||||||
|
res = False
|
||||||
|
client_id = self.get_client_id(cr, uid, service, context)
|
||||||
|
client_secret = self.get_client_secret(cr, uid, service, context)
|
||||||
|
|
||||||
|
params = {
|
||||||
|
'refresh_token': refresh_token,
|
||||||
|
'client_id': client_id,
|
||||||
|
'client_secret': client_secret,
|
||||||
|
'grant_type': 'refresh_token',
|
||||||
|
}
|
||||||
|
|
||||||
|
headers = {"content-type": "application/x-www-form-urlencoded"}
|
||||||
|
|
||||||
|
try:
|
||||||
|
uri = self.get_uri_oauth(a='token')
|
||||||
|
|
||||||
|
data = werkzeug.url_encode(params)
|
||||||
|
st, res, ask_time = self._do_request(cr, uid, uri, params=data, headers=headers, type='POST', preuri='', context=context)
|
||||||
|
except urllib2.HTTPError, e:
|
||||||
|
if e.code == 400: # invalid grant
|
||||||
|
registry = openerp.modules.registry.RegistryManager.get(request.session.db)
|
||||||
|
with registry.cursor() as cur:
|
||||||
|
self.pool['res.users'].write(cur, uid, [uid], {'google_%s_rtoken' % service: False}, context=context)
|
||||||
|
error_key = simplejson.loads(e.read()).get("error", "nc")
|
||||||
|
_logger.exception("Bad google request : %s !" % error_key)
|
||||||
|
error_msg = "Something went wrong during your token generation. Maybe your Authorization Code is invalid or already expired [%s]" % error_key
|
||||||
|
raise self.pool.get('res.config.settings').get_config_warning(cr, _(error_msg), context=context)
|
||||||
|
return res
|
||||||
|
|
||||||
|
def _do_request(self, cr, uid, uri, params={}, headers={}, type='POST', preuri="https://www.googleapis.com", context=None):
|
||||||
|
if context is None:
|
||||||
|
context = {}
|
||||||
|
|
||||||
|
""" Return a tuple ('HTTP_CODE', 'HTTP_RESPONSE') """
|
||||||
|
_logger.debug("Uri: %s - Type : %s - Headers: %s - Params : %s !" % (uri, type, headers, werkzeug.url_encode(params) if type == 'GET' else params))
|
||||||
|
|
||||||
|
status = 418
|
||||||
|
response = ""
|
||||||
|
ask_time = datetime.now().strftime(DEFAULT_SERVER_DATETIME_FORMAT)
|
||||||
|
try:
|
||||||
|
if type.upper() == 'GET' or type.upper() == 'DELETE':
|
||||||
|
data = werkzeug.url_encode(params)
|
||||||
|
req = urllib2.Request(preuri + uri + "?" + data)
|
||||||
|
elif type.upper() == 'POST' or type.upper() == 'PATCH' or type.upper() == 'PUT':
|
||||||
|
req = urllib2.Request(preuri + uri, params, headers)
|
||||||
|
else:
|
||||||
|
raise ('Method not supported [%s] not in [GET, POST, PUT, PATCH or DELETE]!' % (type))
|
||||||
|
req.get_method = lambda: type.upper()
|
||||||
|
|
||||||
|
request = urllib2.urlopen(req, timeout=TIMEOUT)
|
||||||
|
status = request.getcode()
|
||||||
|
|
||||||
|
if int(status) in (204, 404): # Page not found, no response
|
||||||
|
response = False
|
||||||
|
else:
|
||||||
|
content = request.read()
|
||||||
|
response = simplejson.loads(content)
|
||||||
|
|
||||||
|
try:
|
||||||
|
ask_time = datetime.strptime(request.headers.get('date'), "%a, %d %b %Y %H:%M:%S %Z")
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
except urllib2.HTTPError, e:
|
||||||
|
if e.code in (204, 404):
|
||||||
|
status = e.code
|
||||||
|
response = ""
|
||||||
|
else:
|
||||||
|
_logger.exception("Bad google request : %s !" % e.read())
|
||||||
|
if e.code in (400, 401, 410):
|
||||||
|
raise e
|
||||||
|
raise self.pool.get('res.config.settings').get_config_warning(cr, _("Something went wrong with your request to google"), context=context)
|
||||||
|
return (status, response, ask_time)
|
||||||
|
|
||||||
|
def get_base_url(self, cr, uid, context=None):
|
||||||
|
return self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://www.openerp.com?NoBaseUrl', context=context)
|
||||||
|
|
||||||
|
def get_client_id(self, cr, uid, service, context=None):
|
||||||
|
return self.pool.get('ir.config_parameter').get_param(cr, SUPERUSER_ID, 'google_%s_client_id' % (service,), default=False, context=context)
|
||||||
|
|
||||||
|
def get_client_secret(self, cr, uid, service, context=None):
|
||||||
|
return self.pool.get('ir.config_parameter').get_param(cr, SUPERUSER_ID, 'google_%s_client_secret' % (service,), default=False, context=context)
|
||||||
|
|
||||||
|
def get_uri_oauth(self, a=''): # a = optional action
|
||||||
|
return "https://accounts.google.com/o/oauth2/%s" % (a,)
|
||||||
|
|
||||||
|
def get_uri_api(self):
|
||||||
|
return 'https://www.googleapis.com'
|
9
google_account/google_account.xml
Normal file
9
google_account/google_account.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<openerp>
|
||||||
|
<data noupdate="1">
|
||||||
|
<record id="config_google_redirect_uri" model="ir.config_parameter">
|
||||||
|
<field name="key">google_redirect_uri</field>
|
||||||
|
<field name="value">urn:ietf:wg:oauth:2.0:oob</field>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</openerp>
|
9
google_account/google_account_data.xml
Normal file
9
google_account/google_account_data.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<openerp>
|
||||||
|
<data noupdate="1">
|
||||||
|
<record id="config_google_redirect_uri" model="ir.config_parameter">
|
||||||
|
<field name="key">google_redirect_uri</field>
|
||||||
|
<field name="value">urn:ietf:wg:oauth:2.0:oob</field>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</openerp>
|
49
google_account/i18n/af.po
Normal file
49
google_account/i18n/af.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-05-18 11:29+0000\n"
|
||||||
|
"Last-Translator: <>\n"
|
||||||
|
"Language-Team: Afrikaans (http://www.transifex.com/odoo/odoo-8/language/af/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: af\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Geskep deur"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Geskep op"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Laas Opgedateer deur"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Laas Opgedateer op"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Iets het foutgegaan met jou versoek aan google"
|
52
google_account/i18n/ar.po
Normal file
52
google_account/i18n/ar.po
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
# hoxhe aits <hoxhe0@gmail.com>, 2015
|
||||||
|
# Mustafa Rawi <mustafa@cubexco.com>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-09-12 22:29+0000\n"
|
||||||
|
"Last-Translator: Mustafa Rawi <mustafa@cubexco.com>\n"
|
||||||
|
"Language-Team: Arabic (http://www.transifex.com/odoo/odoo-8/language/ar/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: ar\n"
|
||||||
|
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "أُنشئ بواسطة"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "أنشئ في"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "المعرف"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "آخر تحديث بواسطة"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "آخر تحديث في"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "حدث خطأ ما مع طلبك إلى جوجل"
|
50
google_account/i18n/bg.po
Normal file
50
google_account/i18n/bg.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Radina <radis.choice@gmail.com>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-01 12:32+0000\n"
|
||||||
|
"Last-Translator: Radina <radis.choice@gmail.com>\n"
|
||||||
|
"Language-Team: Bulgarian (http://www.transifex.com/odoo/odoo-8/language/bg/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: bg\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Създадено от"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Създадено на"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Последно обновено от"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Последно обновено на"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Нещо се обърка с Вашето искане до Google"
|
49
google_account/i18n/bs.po
Normal file
49
google_account/i18n/bs.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-10-11 16:53+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Bosnian (http://www.transifex.com/odoo/odoo-8/language/bs/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: bs\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Kreirao"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Kreirano"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Zadnji ažurirao"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Zadnje ažurirano"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
49
google_account/i18n/ca.po
Normal file
49
google_account/i18n/ca.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-11-25 18:54+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Catalan (http://www.transifex.com/odoo/odoo-8/language/ca/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: ca\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Creat per"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Creat el"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Actualitzat per última vegada per"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Actualitzat per última vegada el dia"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Alguna cosa ha fallat amb la seva sol·licitud a google"
|
49
google_account/i18n/cs.po
Normal file
49
google_account/i18n/cs.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-05-27 09:14+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Czech (http://www.transifex.com/projects/p/odoo-8/language/cs/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: cs\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Vytvořil(a)"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Vytvořeno"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Naposled upraveno"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Naposled upraveno"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
49
google_account/i18n/da.po
Normal file
49
google_account/i18n/da.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-05-27 09:14+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Danish (http://www.transifex.com/odoo/odoo-8/language/da/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: da\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Oprettet af"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Oprettet den"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "Id"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Sidst opdateret af"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Sidst opdateret den"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
51
google_account/i18n/de.po
Normal file
51
google_account/i18n/de.po
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
# Mathias Neef <mn@copado.de>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-11-05 15:35+0000\n"
|
||||||
|
"Last-Translator: Mathias Neef <mn@copado.de>\n"
|
||||||
|
"Language-Team: German (http://www.transifex.com/odoo/odoo-8/language/de/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: de\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Erstellt von"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Erstellt am"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Zuletzt aktualisiert durch"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Zuletzt aktualisiert am"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Etwas ging schief mit Ihrer Anfrage an Google"
|
50
google_account/i18n/el.po
Normal file
50
google_account/i18n/el.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Goutoudis Kostas <goutoudis@gmail.com>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-12-05 19:26+0000\n"
|
||||||
|
"Last-Translator: Goutoudis Kostas <goutoudis@gmail.com>\n"
|
||||||
|
"Language-Team: Greek (http://www.transifex.com/odoo/odoo-8/language/el/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: el\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Δημιουργήθηκε από"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Δημιουργήθηκε στις"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "Κωδικός"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Τελευταία Ενημέρωση από"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Τελευταία Ενημέρωση στις"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Κάτι πήγε λάθος με το αίτημα στην Google"
|
49
google_account/i18n/en_GB.po
Normal file
49
google_account/i18n/en_GB.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: English (United Kingdom) (http://www.transifex.com/odoo/odoo-8/language/en_GB/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: en_GB\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Created by"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Created on"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Last Updated by"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Last Updated on"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
52
google_account/i18n/es.po
Normal file
52
google_account/i18n/es.po
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# David Perez <david@closemarketing.es>, 2015
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
# Pedro M. Baeza <pedro.baeza@gmail.com>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Pedro M. Baeza <pedro.baeza@gmail.com>\n"
|
||||||
|
"Language-Team: Spanish (http://www.transifex.com/odoo/odoo-8/language/es/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: es\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Creado por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Creado en"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID (identificación)"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Última actualización de"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Última actualización en"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Algo fue mal en la petición a Google"
|
50
google_account/i18n/es_AR.po
Normal file
50
google_account/i18n/es_AR.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Leonardo Germán Chianea <noamixcontenidos@gmail.com>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-08-20 21:41+0000\n"
|
||||||
|
"Last-Translator: Leonardo Germán Chianea <noamixcontenidos@gmail.com>\n"
|
||||||
|
"Language-Team: Spanish (Argentina) (http://www.transifex.com/odoo/odoo-8/language/es_AR/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: es_AR\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Creado por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Creado en"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Última actualización realizada por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Última actualización el"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Algo salió mal con su solicitud a google"
|
49
google_account/i18n/es_BO.po
Normal file
49
google_account/i18n/es_BO.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-05-18 11:29+0000\n"
|
||||||
|
"Last-Translator: <>\n"
|
||||||
|
"Language-Team: Spanish (Bolivia) (http://www.transifex.com/odoo/odoo-8/language/es_BO/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: es_BO\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Creado por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Creado en"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Última actualización de"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Última actualización en"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
49
google_account/i18n/es_CL.po
Normal file
49
google_account/i18n/es_CL.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-05-18 11:29+0000\n"
|
||||||
|
"Last-Translator: <>\n"
|
||||||
|
"Language-Team: Spanish (Chile) (http://www.transifex.com/odoo/odoo-8/language/es_CL/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: es_CL\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Creado por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Creado en"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID (identificación)"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Última actualización de"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Última actualización en"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
49
google_account/i18n/es_CO.po
Normal file
49
google_account/i18n/es_CO.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-10-23 05:10+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Spanish (Colombia) (http://www.transifex.com/odoo/odoo-8/language/es_CO/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: es_CO\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Creado por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Creado"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Actualizado por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Actualizado"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Algo salió mal con su petición a Google"
|
50
google_account/i18n/es_CR.po
Normal file
50
google_account/i18n/es_CR.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Spanish (Costa Rica) (http://www.transifex.com/odoo/odoo-8/language/es_CR/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: es_CR\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Creado en"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
49
google_account/i18n/es_DO.po
Normal file
49
google_account/i18n/es_DO.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-11-08 17:05+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Spanish (Dominican Republic) (http://www.transifex.com/odoo/odoo-8/language/es_DO/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: es_DO\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Creado por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Creado en"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID (identificación)"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Última actualización de"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Última actualización en"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Algo fue mal en la petición a Google"
|
49
google_account/i18n/es_EC.po
Normal file
49
google_account/i18n/es_EC.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-10-14 01:51+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Spanish (Ecuador) (http://www.transifex.com/odoo/odoo-8/language/es_EC/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: es_EC\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Creado por:"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Creado"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Ultima Actualización por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Actualizado en"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Ha existido un error cuando enviamos el requerimiento a Google"
|
49
google_account/i18n/es_MX.po
Normal file
49
google_account/i18n/es_MX.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2016-01-18 18:41+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Spanish (Mexico) (http://www.transifex.com/odoo/odoo-8/language/es_MX/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: es_MX\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Creado por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Creado en"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Ultima actualizacion por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Ultima actualización realizada"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Algo enviado esta mal con el requerimiento de google"
|
49
google_account/i18n/es_PA.po
Normal file
49
google_account/i18n/es_PA.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-05-18 11:29+0000\n"
|
||||||
|
"Last-Translator: <>\n"
|
||||||
|
"Language-Team: Spanish (Panama) (http://www.transifex.com/odoo/odoo-8/language/es_PA/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: es_PA\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Creado por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Creado en"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Última actualización de"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Última actualización en"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
50
google_account/i18n/es_PE.po
Normal file
50
google_account/i18n/es_PE.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Luis Miguel Sarabia <lmsarabia@gmail.com>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-21 14:52+0000\n"
|
||||||
|
"Last-Translator: Luis Miguel Sarabia <lmsarabia@gmail.com>\n"
|
||||||
|
"Language-Team: Spanish (Peru) (http://www.transifex.com/odoo/odoo-8/language/es_PE/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: es_PE\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Creado por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Creado en"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Actualizado última vez por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Ultima Actualización"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Algo ha fallado en su envío a google"
|
49
google_account/i18n/es_PY.po
Normal file
49
google_account/i18n/es_PY.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Spanish (Paraguay) (http://www.transifex.com/odoo/odoo-8/language/es_PY/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: es_PY\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
49
google_account/i18n/es_VE.po
Normal file
49
google_account/i18n/es_VE.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2016-05-15 18:49+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Spanish (Venezuela) (http://www.transifex.com/odoo/odoo-8/language/es_VE/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: es_VE\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Creado por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Creado en"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Última actualización realizada por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Ultima actualizacion en"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
49
google_account/i18n/et.po
Normal file
49
google_account/i18n/et.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2016-03-12 14:09+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Estonian (http://www.transifex.com/odoo/odoo-8/language/et/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: et\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Loonud"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Loodud"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Viimati uuendatud"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Viimati uuendatud"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
50
google_account/i18n/eu.po
Normal file
50
google_account/i18n/eu.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Oihane Crucelaegui <oihanecruce@gmail.com>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-10-14 15:10+0000\n"
|
||||||
|
"Last-Translator: Oihane Crucelaegui <oihanecruce@gmail.com>\n"
|
||||||
|
"Language-Team: Basque (http://www.transifex.com/odoo/odoo-8/language/eu/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: eu\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Nork sortua"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Noiz sortua"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Nork eguneratua"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Noiz eguneratua"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Zerbait oker joan da googleko zure eskaerarekin"
|
49
google_account/i18n/fa.po
Normal file
49
google_account/i18n/fa.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Persian (http://www.transifex.com/odoo/odoo-8/language/fa/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: fa\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "ایجاد شده توسط"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "ایجاد شده در"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "شناسه"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "آخرین به روز رسانی توسط"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "آخرین به روز رسانی در"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
51
google_account/i18n/fi.po
Normal file
51
google_account/i18n/fi.po
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
# Kari Lindgren <kari.lindgren@emsystems.fi>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-22 16:16+0000\n"
|
||||||
|
"Last-Translator: Kari Lindgren <kari.lindgren@emsystems.fi>\n"
|
||||||
|
"Language-Team: Finnish (http://www.transifex.com/odoo/odoo-8/language/fi/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: fi\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Luonut"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Luotu"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Viimeksi päivittänyt"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Viimeksi päivitetty"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Jotakin meni vikaan google pyynnössäsi"
|
51
google_account/i18n/fr.po
Normal file
51
google_account/i18n/fr.po
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
# Simon CARRIER <carrier.sim@gmail.com>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-09-07 09:22+0000\n"
|
||||||
|
"Last-Translator: Florian Hatat\n"
|
||||||
|
"Language-Team: French (http://www.transifex.com/odoo/odoo-8/language/fr/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: fr\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Créé par"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Créé le"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Dernière modification par"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Dernière mise à jour le"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Quelque chose ne s'est pas passé comme prévu avec votre demande à Google"
|
49
google_account/i18n/fr_BE.po
Normal file
49
google_account/i18n/fr_BE.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-05-18 11:29+0000\n"
|
||||||
|
"Last-Translator: <>\n"
|
||||||
|
"Language-Team: French (Belgium) (http://www.transifex.com/odoo/odoo-8/language/fr_BE/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: fr_BE\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Créé par"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Créé le"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Derniere fois mis à jour par"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Dernière mis à jour le"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
49
google_account/i18n/fr_CA.po
Normal file
49
google_account/i18n/fr_CA.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-10-09 05:52+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: French (Canada) (http://www.transifex.com/odoo/odoo-8/language/fr_CA/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: fr_CA\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Créé par"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Créé le"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "Identifiant"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Dernière mise à jour par"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Dernière mise à jour le"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Quelque chose se passait mal avec votre demande chez Google"
|
49
google_account/i18n/gl.po
Normal file
49
google_account/i18n/gl.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Galician (http://www.transifex.com/odoo/odoo-8/language/gl/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: gl\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Creado o"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
48
google_account/i18n/google_account.pot
Normal file
48
google_account/i18n/google_account.pot
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo Server 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"Last-Translator: <>\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Plural-Forms: \n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
||||||
|
|
106
google_account/i18n/google_base_account.pot
Normal file
106
google_account/i18n/google_base_account.pot
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
# Translation of OpenERP Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_base_account
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||||
|
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
|
||||||
|
"Last-Translator: <>\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Plural-Forms: \n"
|
||||||
|
|
||||||
|
#. module: google_base_account
|
||||||
|
#: field:res.users,gmail_user:0
|
||||||
|
msgid "Username"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_base_account
|
||||||
|
#: model:ir.actions.act_window,name:google_base_account.act_google_login_form
|
||||||
|
msgid "Google Login"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_base_account
|
||||||
|
#: code:addons/google_base_account/wizard/google_login.py:29
|
||||||
|
#, python-format
|
||||||
|
msgid "Google Contacts Import Error!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_base_account
|
||||||
|
#: model:ir.model,name:google_base_account.model_res_users
|
||||||
|
msgid "Users"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_base_account
|
||||||
|
#: view:google.login:0
|
||||||
|
msgid "or"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_base_account
|
||||||
|
#: view:google.login:0
|
||||||
|
msgid "Google login"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_base_account
|
||||||
|
#: field:google.login,password:0
|
||||||
|
msgid "Google Password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_base_account
|
||||||
|
#: code:addons/google_base_account/wizard/google_login.py:77
|
||||||
|
#, python-format
|
||||||
|
msgid "Error!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_base_account
|
||||||
|
#: view:res.users:0
|
||||||
|
msgid "Google Account"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_base_account
|
||||||
|
#: view:res.users:0
|
||||||
|
msgid "Synchronization"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_base_account
|
||||||
|
#: code:addons/google_base_account/wizard/google_login.py:77
|
||||||
|
#, python-format
|
||||||
|
msgid "Authentication failed. Check the user and password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_base_account
|
||||||
|
#: code:addons/google_base_account/wizard/google_login.py:29
|
||||||
|
#, python-format
|
||||||
|
msgid "Please install gdata-python-client from http://code.google.com/p/gdata-python-client/downloads/list"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_base_account
|
||||||
|
#: model:ir.model,name:google_base_account.model_google_login
|
||||||
|
msgid "Google Contact"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_base_account
|
||||||
|
#: view:google.login:0
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_base_account
|
||||||
|
#: field:google.login,user:0
|
||||||
|
msgid "Google Username"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_base_account
|
||||||
|
#: field:res.users,gmail_password:0
|
||||||
|
msgid "Password"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_base_account
|
||||||
|
#: view:google.login:0
|
||||||
|
msgid "_Login"
|
||||||
|
msgstr ""
|
||||||
|
|
49
google_account/i18n/gu.po
Normal file
49
google_account/i18n/gu.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Gujarati (http://www.transifex.com/odoo/odoo-8/language/gu/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: gu\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ઓળખ"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
49
google_account/i18n/he.po
Normal file
49
google_account/i18n/he.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Hebrew (http://www.transifex.com/odoo/odoo-8/language/he/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: he\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "נוצר על ידי"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "נוצר ב-"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "מזהה"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "עודכן לאחרונה על ידי"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "עודכן לאחרונה על"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
50
google_account/i18n/hi.po
Normal file
50
google_account/i18n/hi.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Lata Verma <lataverma@gmail.com>, 2016
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2016-09-02 17:51+0000\n"
|
||||||
|
"Last-Translator: Lata Verma <lataverma@gmail.com>\n"
|
||||||
|
"Language-Team: Hindi (http://www.transifex.com/odoo/odoo-8/language/hi/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: hi\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "निर्माण कर्ता"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "निर्माण तिथि"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "पहचान"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "अंतिम सुधारकर्ता"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "अंतिम सुधार की तिथि"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "गूगल करने के लिए आपके अनुरोध के साथ कुछ गलत हुआ।"
|
50
google_account/i18n/hr.po
Normal file
50
google_account/i18n/hr.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-10-15 18:04+0000\n"
|
||||||
|
"Last-Translator: Davor Bojkić <bole@dajmi5.com>\n"
|
||||||
|
"Language-Team: Croatian (http://www.transifex.com/odoo/odoo-8/language/hr/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: hr\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Kreirao"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Vrijeme kreiranja"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Promijenio"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Vrijeme promjene"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Nešto je pogrešno u vašem zahtjevu prema Google-u"
|
52
google_account/i18n/hu.po
Normal file
52
google_account/i18n/hu.po
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
# krnkris, 2015
|
||||||
|
# Tóth Csaba <i3rendszerhaz@gmail.com>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: krnkris\n"
|
||||||
|
"Language-Team: Hungarian (http://www.transifex.com/odoo/odoo-8/language/hu/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: hu\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Készítette"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Létrehozás dátuma"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Utoljára frissítette"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Utoljára frissítve"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Valami hiba lépett fel a google felé feladott kérés közben"
|
50
google_account/i18n/id.po
Normal file
50
google_account/i18n/id.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# oon arfiandwi <oon.arfiandwi@gmail.com>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-12-18 06:51+0000\n"
|
||||||
|
"Last-Translator: oon arfiandwi <oon.arfiandwi@gmail.com>\n"
|
||||||
|
"Language-Team: Indonesian (http://www.transifex.com/odoo/odoo-8/language/id/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: id\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Dibuat oleh"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Dibuat pada"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Diperbaharui oleh"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Diperbaharui pada"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Terjadi kesalahan pada permintaan layanan ke google"
|
49
google_account/i18n/is.po
Normal file
49
google_account/i18n/is.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Icelandic (http://www.transifex.com/odoo/odoo-8/language/is/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: is\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Búið til af"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "Auðkenni"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
50
google_account/i18n/it.po
Normal file
50
google_account/i18n/it.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2016-01-04 22:33+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Italian (http://www.transifex.com/odoo/odoo-8/language/it/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: it\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Creato da"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Creato il"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Ultima modifica di"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Ultima modifica il"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Qualcosa è andata male con la tua richiesta a google"
|
52
google_account/i18n/ja.po
Normal file
52
google_account/i18n/ja.po
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
# Manami Hashi <manami@roomsfor.hk>, 2015
|
||||||
|
# Yoshi Tashiro <tashiro@roomsfor.hk>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-10-23 15:32+0000\n"
|
||||||
|
"Last-Translator: Yoshi Tashiro <tashiro@roomsfor.hk>\n"
|
||||||
|
"Language-Team: Japanese (http://www.transifex.com/odoo/odoo-8/language/ja/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: ja\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "作成者"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "作成日"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "最終更新者"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "最終更新日"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Googleへのリクエストに異常があるようです"
|
49
google_account/i18n/ka.po
Normal file
49
google_account/i18n/ka.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-11-04 12:01+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Georgian (http://www.transifex.com/odoo/odoo-8/language/ka/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: ka\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "შემქმნელი"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "შექმნის თარიღი"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "იდენტიფიკატორი"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "ბოლოს განაახლა"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "ბოლოს განახლებულია"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
51
google_account/i18n/kab.po
Normal file
51
google_account/i18n/kab.po
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Belkacem Mohammed <belkacem77@gmail.com>, 2015
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Belkacem Mohammed <belkacem77@gmail.com>\n"
|
||||||
|
"Language-Team: Kabyle (http://www.transifex.com/odoo/odoo-8/language/kab/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: kab\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Yerna-t"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Yerna di"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "Asulay"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Asnifel aneggaru sɣur"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Aleqqem aneggaru di"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
49
google_account/i18n/ko.po
Normal file
49
google_account/i18n/ko.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-08-17 07:49+0000\n"
|
||||||
|
"Last-Translator: choijaeho <hwangtog@gmail.com>\n"
|
||||||
|
"Language-Team: Korean (http://www.transifex.com/odoo/odoo-8/language/ko/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: ko\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "작성자"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "작성일"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "최근 갱신한 사람"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "최근 갱신 날짜"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "귀하가 Google에 요청한 것에 무언가 문제가 발생했습니다"
|
49
google_account/i18n/ln.po
Normal file
49
google_account/i18n/ln.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Lingala (http://www.transifex.com/odoo/odoo-8/language/ln/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: ln\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
49
google_account/i18n/lt.po
Normal file
49
google_account/i18n/lt.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Lithuanian (http://www.transifex.com/odoo/odoo-8/language/lt/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: lt\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Sukūrė"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Sukurta"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Paskutini kartą atnaujino"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Paskutinį kartą atnaujinta"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
49
google_account/i18n/lv.po
Normal file
49
google_account/i18n/lv.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Latvian (http://www.transifex.com/odoo/odoo-8/language/lv/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: lv\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Izveidoja"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Izveidots"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Pēdējo reizi atjaunoja"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Pēdējās izmaiņas"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
51
google_account/i18n/mk.po
Normal file
51
google_account/i18n/mk.po
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Aleksandar Vangelovski <aleksandarv@hbee.eu>, 2015
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-09-22 11:46+0000\n"
|
||||||
|
"Last-Translator: Aleksandar Vangelovski <aleksandarv@hbee.eu>\n"
|
||||||
|
"Language-Team: Macedonian (http://www.transifex.com/odoo/odoo-8/language/mk/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: mk\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Креирано од"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Креирано на"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Последно ажурирање од"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Последно ажурирање на"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Се извинуваме но има некој проблем со вашето барање до google"
|
50
google_account/i18n/ml_IN.po
Normal file
50
google_account/i18n/ml_IN.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Shoble Thomas <mail2shobz@gmail.com>, 2016
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2016-04-22 12:17+0000\n"
|
||||||
|
"Last-Translator: Shoble Thomas <mail2shobz@gmail.com>\n"
|
||||||
|
"Language-Team: Malayalam (India) (http://www.transifex.com/odoo/odoo-8/language/ml_IN/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: ml_IN\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "നിർമിച്ചത്"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "നിർമിച്ച ദിവസം"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ഐ ഡി"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "അവസാനം അപ്ഡേറ്റ് ചെയ്തത്"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "അവസാനം അപ്ഡേറ്റ് ചെയ്ത ദിവസം"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "താങ്കൾ ഗൂഗിൾ ലിൽ കൊടുത്ത അപേക്ഷ യിൽ എന്തോ കുഴപ്പം സംഭവിച്ചു "
|
50
google_account/i18n/mn.po
Normal file
50
google_account/i18n/mn.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Mongolian (http://www.transifex.com/odoo/odoo-8/language/mn/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: mn\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Үүсгэгч"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Үүсгэсэн огноо"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Сүүлийн засвар хийсэн"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Сүүлийн засвар хийсэн огноо"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
50
google_account/i18n/nb.po
Normal file
50
google_account/i18n/nb.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Norwegian Bokmål (http://www.transifex.com/odoo/odoo-8/language/nb/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: nb\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Opprettet av"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Opprettet"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Sist oppdatert av"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Sist oppdatert"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
51
google_account/i18n/nl.po
Normal file
51
google_account/i18n/nl.po
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
# Yenthe Van Ginneken <yenthespam@gmail.com>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-09-22 09:50+0000\n"
|
||||||
|
"Last-Translator: Yenthe Van Ginneken <yenthespam@gmail.com>\n"
|
||||||
|
"Language-Team: Dutch (http://www.transifex.com/odoo/odoo-8/language/nl/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: nl\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Aangemaakt door"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Aangemaakt op"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Laatst aangepast door"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Laatst aangepast op"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Er ging iets fout tijdens het verbinden met Google"
|
49
google_account/i18n/nl_BE.po
Normal file
49
google_account/i18n/nl_BE.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Dutch (Belgium) (http://www.transifex.com/odoo/odoo-8/language/nl_BE/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: nl_BE\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Gemaakt door"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Gemaakt op"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Laatst bijgewerkt door"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Laatst bijgewerkt op"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
50
google_account/i18n/pl.po
Normal file
50
google_account/i18n/pl.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-10-08 14:15+0000\n"
|
||||||
|
"Last-Translator: Dariusz Żbikowski <darek@krokus.com.pl>\n"
|
||||||
|
"Language-Team: Polish (http://www.transifex.com/odoo/odoo-8/language/pl/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: pl\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Utworzone przez"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Data utworzenia"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Ostatnio modyfikowane przez"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Data ostatniej modyfikacji"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Coś poszło nie tak z twoim zapytaniem do Google"
|
50
google_account/i18n/pt.po
Normal file
50
google_account/i18n/pt.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-11-25 14:30+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Portuguese (http://www.transifex.com/odoo/odoo-8/language/pt/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: pt\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Criada por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Fundado em"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Últimamente Actualizado por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Última Actualização em"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Aconteceu algo errado com o seu pedido à Google"
|
51
google_account/i18n/pt_BR.po
Normal file
51
google_account/i18n/pt_BR.po
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
# Mateus Cerqueira Lopes <mateus1@gmail.com>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: danimaribeiro <danimaribeiro@gmail.com>\n"
|
||||||
|
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/odoo/odoo-8/language/pt_BR/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: pt_BR\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Criado por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Criado em"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Última atualização por"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Última atualização em"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Algo deu errado com o seu pedido para o Google"
|
50
google_account/i18n/ro.po
Normal file
50
google_account/i18n/ro.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 18:23+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Romanian (http://www.transifex.com/odoo/odoo-8/language/ro/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: ro\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Creat de"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Creat în"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Ultima actualizare făcută de"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Ultima actualizare în"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
51
google_account/i18n/ru.po
Normal file
51
google_account/i18n/ru.po
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Eduard, 2015
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-11-13 19:44+0000\n"
|
||||||
|
"Last-Translator: Eduard\n"
|
||||||
|
"Language-Team: Russian (http://www.transifex.com/odoo/odoo-8/language/ru/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: ru\n"
|
||||||
|
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Создано"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Создан"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Последний раз обновлено"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Последний раз обновлено"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Что-то пошло не так с вашим запросом к google"
|
49
google_account/i18n/sk.po
Normal file
49
google_account/i18n/sk.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-10-08 05:16+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Slovak (http://www.transifex.com/odoo/odoo-8/language/sk/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: sk\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Vytvoril"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Vytvorené"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Naposledy upravoval"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Naposledy upravované"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Niečo sa pokazilo na vašej požiadavke na google"
|
51
google_account/i18n/sl.po
Normal file
51
google_account/i18n/sl.po
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
# Matjaž Mozetič <m.mozetic@matmoz.si>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Matjaž Mozetič <m.mozetic@matmoz.si>\n"
|
||||||
|
"Language-Team: Slovenian (http://www.transifex.com/odoo/odoo-8/language/sl/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: sl\n"
|
||||||
|
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Ustvaril"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Ustvarjeno"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Zadnji posodobil"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Zadnjič posodobljeno"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Pri vašem zahtevku google je prišlo do težav."
|
49
google_account/i18n/sq.po
Normal file
49
google_account/i18n/sq.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-05-18 11:29+0000\n"
|
||||||
|
"Last-Translator: <>\n"
|
||||||
|
"Language-Team: Albanian (http://www.transifex.com/odoo/odoo-8/language/sq/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: sq\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Krijuar nga"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Krijuar me"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Modifikuar per here te fundit nga"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Modifikuar per here te fundit me"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
49
google_account/i18n/sr.po
Normal file
49
google_account/i18n/sr.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Serbian (http://www.transifex.com/odoo/odoo-8/language/sr/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: sr\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Kreiran"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
50
google_account/i18n/sr@latin.po
Normal file
50
google_account/i18n/sr@latin.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-10-31 16:30+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Serbian (Latin) (http://www.transifex.com/odoo/odoo-8/language/sr@latin/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: sr@latin\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Kreirao"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Kreiran"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Zadnja izmjena"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Zadnja izmjena"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
51
google_account/i18n/sv.po
Normal file
51
google_account/i18n/sv.po
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Anders Wallenquist <anders.wallenquist@vertel.se>, 2015
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-12-11 13:25+0000\n"
|
||||||
|
"Last-Translator: Anders Wallenquist <anders.wallenquist@vertel.se>\n"
|
||||||
|
"Language-Team: Swedish (http://www.transifex.com/odoo/odoo-8/language/sv/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: sv\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Skapad av"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Skapad den"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Senast uppdaterad av"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Senast uppdaterad"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Något gick fel med Google-anropet"
|
49
google_account/i18n/ta.po
Normal file
49
google_account/i18n/ta.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-05-18 11:29+0000\n"
|
||||||
|
"Last-Translator: <>\n"
|
||||||
|
"Language-Team: Tamil (http://www.transifex.com/odoo/odoo-8/language/ta/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: ta\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "உருவாக்கியவர்"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "உருவாக்கப்பட்ட \nதேதி"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "கடைசியாக புதுப்பிக்கப்பட்டது"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "கடைசியாக புதுப்பிக்கப்பட்டது"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "உங்கள் கோரிக்கை Google க்கு கொண்டு ஏதோ தவறு நடந்துவிட்டது"
|
50
google_account/i18n/th.po
Normal file
50
google_account/i18n/th.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Thai (http://www.transifex.com/odoo/odoo-8/language/th/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: th\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "จัดทำโดย"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "สร้างเมื่อ"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "อัพเดทครั้งสุดท้ายโดย"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "อัพเดทครั้งสุดท้ายเมื่อ"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
50
google_account/i18n/tr.po
Normal file
50
google_account/i18n/tr.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-07-17 07:11+0000\n"
|
||||||
|
"Last-Translator: Murat Kaplan <muratk@projetgrup.com>\n"
|
||||||
|
"Language-Team: Turkish (http://www.transifex.com/odoo/odoo-8/language/tr/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: tr\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Oluşturan"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Oluşturulma"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Son Güncelleyen"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Son Güncelleme"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Google da yaptığınız isteğinizle ilgili bir şeyler yanlış gitti"
|
50
google_account/i18n/uk.po
Normal file
50
google_account/i18n/uk.po
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# Bogdan, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-08-22 14:18+0000\n"
|
||||||
|
"Last-Translator: Bogdan\n"
|
||||||
|
"Language-Team: Ukrainian (http://www.transifex.com/odoo/odoo-8/language/uk/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: uk\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Створив"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Створено"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Востаннє відредаговано"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Дата останньої зміни"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "Щось пішло не так з вашим запитом в google"
|
49
google_account/i18n/vi.po
Normal file
49
google_account/i18n/vi.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2016-02-23 04:22+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Vietnamese (http://www.transifex.com/odoo/odoo-8/language/vi/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: vi\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "Tạo bởi"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "Tạo trên"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "Cập nhật lần cuối bởi"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "Cập nhật lần cuối"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
51
google_account/i18n/zh_CN.po
Normal file
51
google_account/i18n/zh_CN.po
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012,2014
|
||||||
|
# mrshelly <mrshelly@hotmail.com>, 2015
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-08-07 12:18+0000\n"
|
||||||
|
"Last-Translator: mrshelly <mrshelly@hotmail.com>\n"
|
||||||
|
"Language-Team: Chinese (China) (http://www.transifex.com/odoo/odoo-8/language/zh_CN/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: zh_CN\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "创建人"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "创建"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "标识"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "最后更新"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "最后一次更新"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr "你对谷歌的访问出错了"
|
49
google_account/i18n/zh_TW.po
Normal file
49
google_account/i18n/zh_TW.po
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * google_account
|
||||||
|
#
|
||||||
|
# Translators:
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo 8.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2015-01-21 14:08+0000\n"
|
||||||
|
"PO-Revision-Date: 2015-12-04 06:06+0000\n"
|
||||||
|
"Last-Translator: Martin Trigaux\n"
|
||||||
|
"Language-Team: Chinese (Taiwan) (http://www.transifex.com/odoo/odoo-8/language/zh_TW/)\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Language: zh_TW\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_uid:0
|
||||||
|
msgid "Created by"
|
||||||
|
msgstr "建立者"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,create_date:0
|
||||||
|
msgid "Created on"
|
||||||
|
msgstr "建立於"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,id:0
|
||||||
|
msgid "ID"
|
||||||
|
msgstr "ID"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_uid:0
|
||||||
|
msgid "Last Updated by"
|
||||||
|
msgstr "最後更新:"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: field:google.service,write_date:0
|
||||||
|
msgid "Last Updated on"
|
||||||
|
msgstr "最後更新於"
|
||||||
|
|
||||||
|
#. module: google_account
|
||||||
|
#: code:addons/google_account/google_account.py:168
|
||||||
|
#, python-format
|
||||||
|
msgid "Something went wrong with your request to google"
|
||||||
|
msgstr ""
|
112
mail_tracking/README.rst
Normal file
112
mail_tracking/README.rst
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
|
||||||
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||||
|
:alt: License: AGPL-3
|
||||||
|
|
||||||
|
=============
|
||||||
|
Mail tracking
|
||||||
|
=============
|
||||||
|
|
||||||
|
This module shows email notification tracking status for any messages in
|
||||||
|
mail thread (chatter). Each notified partner will have an intuitive icon just
|
||||||
|
right to his name.
|
||||||
|
|
||||||
|
|
||||||
|
Installation
|
||||||
|
============
|
||||||
|
|
||||||
|
If you're using a multi-database installation (with or without dbfilter option)
|
||||||
|
where /web/databse/selector returns a list of more than one database, then
|
||||||
|
you need to add ``mail_tracking`` addon to wide load addons list
|
||||||
|
(by default, only ``web`` addon), setting ``--load`` option.
|
||||||
|
For example, ``--load=web,mail_tracking``
|
||||||
|
|
||||||
|
|
||||||
|
Usage
|
||||||
|
=====
|
||||||
|
|
||||||
|
When user sends a message in mail_thread (chatter), for instance in partner
|
||||||
|
form, then an email tracking is created for each email notification. Then a
|
||||||
|
status icon will appear just right to name of notified partner.
|
||||||
|
|
||||||
|
These are all available status icons:
|
||||||
|
|
||||||
|
.. |sent| image:: mail_tracking/static/src/img/sent.png
|
||||||
|
:width: 10px
|
||||||
|
|
||||||
|
.. |delivered| image:: mail_tracking/static/src/img/delivered.png
|
||||||
|
:width: 15px
|
||||||
|
|
||||||
|
.. |opened| image:: mail_tracking/static/src/img/opened.png
|
||||||
|
:width: 15px
|
||||||
|
|
||||||
|
.. |error| image:: mail_tracking/static/src/img/error.png
|
||||||
|
:width: 10px
|
||||||
|
|
||||||
|
.. |waiting| image:: mail_tracking/static/src/img/waiting.png
|
||||||
|
:width: 10px
|
||||||
|
|
||||||
|
.. |unknown| image:: mail_tracking/static/src/img/unknown.png
|
||||||
|
:width: 10px
|
||||||
|
|
||||||
|
|unknown| **Unknown**: No email tracking info available. Maybe this notified partner has 'Receive Inbox Notifications by Email' == 'Never'
|
||||||
|
|
||||||
|
|waiting| **Waiting**: Waiting to be sent
|
||||||
|
|
||||||
|
|error| **Error**: Error while sending
|
||||||
|
|
||||||
|
|sent| **Sent**: Sent to SMTP server configured
|
||||||
|
|
||||||
|
|delivered| **Delivered**: Delivered to final MX server
|
||||||
|
|
||||||
|
|opened| **Opened**: Opened by partner
|
||||||
|
|
||||||
|
|
||||||
|
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
|
||||||
|
:alt: Try me on Runbot
|
||||||
|
:target: https://runbot.odoo-community.org/runbot/205/8.0
|
||||||
|
|
||||||
|
If you want to see all tracking emails and events you can go to
|
||||||
|
|
||||||
|
* Settings > Technical > Email > Tracking emails
|
||||||
|
* Settings > Technical > Email > Tracking events
|
||||||
|
|
||||||
|
|
||||||
|
Bug Tracker
|
||||||
|
===========
|
||||||
|
|
||||||
|
Bugs are tracked on `GitHub Issues
|
||||||
|
<https://github.com/OCA/social/issues>`_. In case of trouble, please
|
||||||
|
check there if your issue has already been reported. If you spotted it first,
|
||||||
|
help us smashing it by providing a detailed and welcomed feedback.
|
||||||
|
|
||||||
|
Credits
|
||||||
|
=======
|
||||||
|
|
||||||
|
Images
|
||||||
|
------
|
||||||
|
|
||||||
|
* Odoo Community Association: `Icon <https://github.com/OCA/maintainer-tools/blob/master/template/module/static/description/icon.svg>`_.
|
||||||
|
* Thanks to `LlubNek <https://openclipart.org/user-detail/LlubNek>`_ and `Openclipart
|
||||||
|
<https://openclipart.org>`_ for `the icon
|
||||||
|
<https://openclipart.org/detail/19342/open-envelope>`_.
|
||||||
|
|
||||||
|
Contributors
|
||||||
|
------------
|
||||||
|
|
||||||
|
* Pedro M. Baeza <pedro.baeza@tecnativa.com>
|
||||||
|
* Antonio Espinosa <antonio.espinosa@tecnativa.com>
|
||||||
|
|
||||||
|
Maintainer
|
||||||
|
----------
|
||||||
|
|
||||||
|
.. image:: https://odoo-community.org/logo.png
|
||||||
|
:alt: Odoo Community Association
|
||||||
|
:target: https://odoo-community.org
|
||||||
|
|
||||||
|
This module is maintained by the OCA.
|
||||||
|
|
||||||
|
OCA, or the Odoo Community Association, is a nonprofit organization whose
|
||||||
|
mission is to support the collaborative development of Odoo features and
|
||||||
|
promote its widespread use.
|
||||||
|
|
||||||
|
To contribute to this module, please visit https://odoo-community.org.
|
8
mail_tracking/__init__.py
Normal file
8
mail_tracking/__init__.py
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
|
||||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||||
|
# flake8: noqa
|
||||||
|
|
||||||
|
from . import models
|
||||||
|
from . import controllers
|
||||||
|
from .hooks import pre_init_hook
|
BIN
mail_tracking/__init__.pyc
Normal file
BIN
mail_tracking/__init__.pyc
Normal file
Binary file not shown.
32
mail_tracking/__openerp__.py
Normal file
32
mail_tracking/__openerp__.py
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
|
||||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||||
|
|
||||||
|
{
|
||||||
|
"name": "Email tracking",
|
||||||
|
"summary": "Email tracking system for all mails sent",
|
||||||
|
"version": "8.0.2.0.2",
|
||||||
|
"category": "Social Network",
|
||||||
|
"website": "http://www.tecnativa.com",
|
||||||
|
"author": "Tecnativa, "
|
||||||
|
"Odoo Community Association (OCA)",
|
||||||
|
"license": "AGPL-3",
|
||||||
|
"application": False,
|
||||||
|
"installable": True,
|
||||||
|
"depends": [
|
||||||
|
"decimal_precision",
|
||||||
|
"mail",
|
||||||
|
],
|
||||||
|
"data": [
|
||||||
|
"data/tracking_data.xml",
|
||||||
|
"security/ir.model.access.csv",
|
||||||
|
"views/assets.xml",
|
||||||
|
"views/mail_tracking_email_view.xml",
|
||||||
|
"views/mail_tracking_event_view.xml",
|
||||||
|
"views/res_partner_view.xml",
|
||||||
|
],
|
||||||
|
"qweb": [
|
||||||
|
"static/src/xml/mail_tracking.xml",
|
||||||
|
],
|
||||||
|
"pre_init_hook": "pre_init_hook",
|
||||||
|
}
|
6
mail_tracking/controllers/__init__.py
Normal file
6
mail_tracking/controllers/__init__.py
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
|
||||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||||
|
# flake8: noqa
|
||||||
|
|
||||||
|
from . import main
|
BIN
mail_tracking/controllers/__init__.pyc
Normal file
BIN
mail_tracking/controllers/__init__.pyc
Normal file
Binary file not shown.
86
mail_tracking/controllers/main.py
Normal file
86
mail_tracking/controllers/main.py
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# © 2016 Antonio Espinosa - <antonio.espinosa@tecnativa.com>
|
||||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||||
|
|
||||||
|
import werkzeug
|
||||||
|
from psycopg2 import OperationalError
|
||||||
|
from openerp import api, http, registry, SUPERUSER_ID
|
||||||
|
import logging
|
||||||
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
BLANK = 'R0lGODlhAQABAIAAANvf7wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='
|
||||||
|
|
||||||
|
|
||||||
|
def _env_get(db):
|
||||||
|
reg = False
|
||||||
|
try:
|
||||||
|
reg = registry(db)
|
||||||
|
except OperationalError:
|
||||||
|
_logger.warning("Selected BD '%s' not found", db)
|
||||||
|
except: # pragma: no cover
|
||||||
|
_logger.warning("Selected BD '%s' connection error", db)
|
||||||
|
if reg:
|
||||||
|
return api.Environment(reg.cursor(), SUPERUSER_ID, {})
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
class MailTrackingController(http.Controller):
|
||||||
|
|
||||||
|
def _request_metadata(self):
|
||||||
|
request = http.request.httprequest
|
||||||
|
return {
|
||||||
|
'ip': request.remote_addr or False,
|
||||||
|
'user_agent': request.user_agent or False,
|
||||||
|
'os_family': request.user_agent.platform or False,
|
||||||
|
'ua_family': request.user_agent.browser or False,
|
||||||
|
}
|
||||||
|
|
||||||
|
@http.route('/mail/tracking/all/<string:db>',
|
||||||
|
type='http', auth='none')
|
||||||
|
def mail_tracking_all(self, db, **kw):
|
||||||
|
env = _env_get(db)
|
||||||
|
if not env:
|
||||||
|
return 'NOT FOUND'
|
||||||
|
metadata = self._request_metadata()
|
||||||
|
response = env['mail.tracking.email'].event_process(
|
||||||
|
http.request, kw, metadata)
|
||||||
|
env.cr.commit()
|
||||||
|
env.cr.close()
|
||||||
|
return response
|
||||||
|
|
||||||
|
@http.route('/mail/tracking/event/<string:db>/<string:event_type>',
|
||||||
|
type='http', auth='none')
|
||||||
|
def mail_tracking_event(self, db, event_type, **kw):
|
||||||
|
env = _env_get(db)
|
||||||
|
if not env:
|
||||||
|
return 'NOT FOUND'
|
||||||
|
metadata = self._request_metadata()
|
||||||
|
response = env['mail.tracking.email'].event_process(
|
||||||
|
http.request, kw, metadata, event_type=event_type)
|
||||||
|
env.cr.commit()
|
||||||
|
env.cr.close()
|
||||||
|
return response
|
||||||
|
|
||||||
|
@http.route('/mail/tracking/open/<string:db>'
|
||||||
|
'/<int:tracking_email_id>/blank.gif',
|
||||||
|
type='http', auth='none')
|
||||||
|
def mail_tracking_open(self, db, tracking_email_id, **kw):
|
||||||
|
env = _env_get(db)
|
||||||
|
if env:
|
||||||
|
tracking_email = env['mail.tracking.email'].search([
|
||||||
|
('id', '=', tracking_email_id),
|
||||||
|
])
|
||||||
|
if tracking_email:
|
||||||
|
metadata = self._request_metadata()
|
||||||
|
tracking_email.event_create('open', metadata)
|
||||||
|
else:
|
||||||
|
_logger.warning(
|
||||||
|
"MailTracking email '%s' not found", tracking_email_id)
|
||||||
|
env.cr.commit()
|
||||||
|
env.cr.close()
|
||||||
|
|
||||||
|
# Always return GIF blank image
|
||||||
|
response = werkzeug.wrappers.Response()
|
||||||
|
response.mimetype = 'image/gif'
|
||||||
|
response.data = BLANK.decode('base64')
|
||||||
|
return response
|
BIN
mail_tracking/controllers/main.pyc
Normal file
BIN
mail_tracking/controllers/main.pyc
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user