From ba70c43dc19a13a950454630a744c8b0e20b9e5c Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Thu, 2 Feb 2012 18:35:22 +0100 Subject: [PATCH 001/102] [IMP] inter-process signaling, proof-of-concept. bzr revid: vmt@openerp.com-20120202173522-2grq11zfm7855i6s --- gunicorn.conf.py | 6 +++-- openerp-server | 2 +- openerp/addons/base/base.sql | 8 +++++++ openerp/osv/osv.py | 44 ++++++++++++++++++++++++++++++++++++ openerp/service/__init__.py | 2 +- openerp/wsgi.py | 8 +++---- 6 files changed, 62 insertions(+), 8 deletions(-) diff --git a/gunicorn.conf.py b/gunicorn.conf.py index 7f23553a1de..8e94fc7cea6 100644 --- a/gunicorn.conf.py +++ b/gunicorn.conf.py @@ -17,7 +17,7 @@ pidfile = '.gunicorn.pid' # Gunicorn recommends 2-4 x number_of_cpu_cores, but # you'll want to vary this a bit to find the best for your # particular work load. -workers = 4 +workers = 1 # Some application-wide initialization is needed. on_starting = openerp.wsgi.on_starting @@ -31,6 +31,8 @@ timeout = 240 max_requests = 2000 +#accesslog = '/tmp/blah.txt' + # Equivalent of --load command-line option openerp.conf.server_wide_modules = ['web'] @@ -39,7 +41,7 @@ conf = openerp.tools.config # Path to the OpenERP Addons repository (comma-separated for # multiple locations) -conf['addons_path'] = '/home/openerp/addons/trunk,/home/openerp/web/trunk/addons' +conf['addons_path'] = '/home/thu/repos/addons/trunk,/home/thu/repos/web/trunk/addons' # Optional database config if not using local socket #conf['db_name'] = 'mycompany' diff --git a/openerp-server b/openerp-server index ab31c3803cd..4111b54ed99 100755 --- a/openerp-server +++ b/openerp-server @@ -247,7 +247,7 @@ if __name__ == "__main__": # Call any post_load hook. info = openerp.modules.module.load_information_from_description_file(m) if info['post_load']: - getattr(sys.modules[m], info['post_load'])() + getattr(sys.modules['openerp.addons.' + m], info['post_load'])() except Exception: msg = '' if m == 'web': diff --git a/openerp/addons/base/base.sql b/openerp/addons/base/base.sql index 409ce81b285..3f7f2e3581c 100644 --- a/openerp/addons/base/base.sql +++ b/openerp/addons/base/base.sql @@ -347,6 +347,14 @@ CREATE TABLE ir_model_data ( res_id integer, primary key(id) ); +-- Inter-process signaling: +-- The `base_registry_signaling` sequence indicates the whole registry +-- must be reloaded. +-- The `base_cache_signaling sequence` indicates all caches must be +-- invalidated (i.e. cleared). +CREATE SEQUENCE base_registry_signaling INCREMENT BY 1 START WITH 1; +CREATE SEQUENCE base_cache_signaling INCREMENT BY 1 START WITH 1; + --------------------------------- -- Users --------------------------------- diff --git a/openerp/osv/osv.py b/openerp/osv/osv.py index 44597bf6507..d46f8a1bb4f 100644 --- a/openerp/osv/osv.py +++ b/openerp/osv/osv.py @@ -34,6 +34,8 @@ from openerp.tools.translate import translate from openerp.osv.orm import MetaModel, Model, TransientModel, AbstractModel import openerp.exceptions +_logger = logging.getLogger(__name__) + # Deprecated. class except_osv(Exception): def __init__(self, name, value): @@ -43,6 +45,14 @@ class except_osv(Exception): service = None +# Inter-process signaling: +# The `base_registry_signaling` sequence indicates the whole registry +# must be reloaded. +# The `base_cache_signaling sequence` indicates all caches must be +# invalidated (i.e. cleared). +base_registry_signaling_sequence = None +base_cache_signaling_sequence = None + class object_proxy(object): def __init__(self): self.logger = logging.getLogger('web-services') @@ -167,6 +177,40 @@ class object_proxy(object): @check def execute(self, db, uid, obj, method, *args, **kw): + + # Check if the model registry must be reloaded (e.g. after the + # database has been updated by another process). + cr = pooler.get_db(db).cursor() + registry_reloaded = False + try: + cr.execute('select last_value from base_registry_signaling') + r = cr.fetchone()[0] + global base_registry_signaling_sequence + if base_registry_signaling_sequence != r: + _logger.info("Reloading the model registry after database signaling.") + base_registry_signaling_sequence = r + # Don't run the cron in the Gunicorn worker. + openerp.modules.registry.RegistryManager.new(db, pooljobs=False) + registry_reloaded = True + finally: + cr.close() + + # Check if the model caches must be invalidated (e.g. after a write + # occured on another process). Don't clear right after a registry + # has been reload. + cr = pooler.get_db(db).cursor() + try: + cr.execute('select last_value from base_cache_signaling') + r = cr.fetchone()[0] + global base_cache_signaling_sequence + if base_cache_signaling_sequence != r and not registry_reloaded: + _logger.info("Invalidating all model caches after database signaling.") + base_cache_signaling_sequence = r + registry = openerp.modules.registry.RegistryManager.get(db, pooljobs=False) + registry.clear_caches() + finally: + cr.close() + cr = pooler.get_db(db).cursor() try: try: diff --git a/openerp/service/__init__.py b/openerp/service/__init__.py index 1bb83dfd228..508ad136a5e 100644 --- a/openerp/service/__init__.py +++ b/openerp/service/__init__.py @@ -63,7 +63,7 @@ def start_services(): netrpc_server.init_servers() # Start the main cron thread. - openerp.cron.start_master_thread() + #openerp.cron.start_master_thread() # Start the top-level servers threads (normally HTTP, HTTPS, and NETRPC). openerp.netsvc.Server.startAll() diff --git a/openerp/wsgi.py b/openerp/wsgi.py index 2b721648196..90e6072eccd 100644 --- a/openerp/wsgi.py +++ b/openerp/wsgi.py @@ -421,7 +421,7 @@ def serve(): port = config['xmlrpc_port'] try: import werkzeug.serving - httpd = werkzeug.serving.make_server(interface, port, application, threaded=True) + httpd = werkzeug.serving.make_server(interface, port, application, threaded=False) logging.getLogger('wsgi').info('HTTP service (werkzeug) running on %s:%s', interface, port) except ImportError: import wsgiref.simple_server @@ -436,7 +436,7 @@ def start_server(): The WSGI server can be shutdown with stop_server() below. """ - threading.Thread(target=openerp.wsgi.serve).start() + threading.Thread(name='WSGI server', target=openerp.wsgi.serve).start() def stop_server(): """ Initiate the shutdown of the WSGI server. @@ -462,11 +462,11 @@ def on_starting(server): openerp.modules.loading.open_openerp_namespace() for m in openerp.conf.server_wide_modules: try: - __import__(m) + __import__('openerp.addons.' + m) # Call any post_load hook. info = openerp.modules.module.load_information_from_description_file(m) if info['post_load']: - getattr(sys.modules[m], info['post_load'])() + getattr(sys.modules['openerp.addons.' + m], info['post_load'])() except Exception: msg = '' if m == 'web': From 589c12ada0feda6a915948731e0bd718d503deb2 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 8 Feb 2012 15:28:34 +0100 Subject: [PATCH 002/102] [IMP] gunicorn: moved database signaling to RegistryManager. bzr revid: vmt@openerp.com-20120208142834-52oxaq72gghj687h --- openerp/__init__.py | 7 ++++ openerp/addons/base/base.sql | 2 ++ openerp/modules/registry.py | 69 ++++++++++++++++++++++++++++++++++++ openerp/osv/orm.py | 1 + openerp/osv/osv.py | 44 ++--------------------- openerp/tools/cache.py | 2 ++ openerp/wsgi.py | 1 + 7 files changed, 85 insertions(+), 41 deletions(-) diff --git a/openerp/__init__.py b/openerp/__init__.py index 7e723c41f9d..521a9ef2dd8 100644 --- a/openerp/__init__.py +++ b/openerp/__init__.py @@ -45,5 +45,12 @@ import wizard import workflow import wsgi +# Is the server running in multi-process mode (e.g. behind Gunicorn). +# If this is True, the processes have to communicate some events, +# e.g. database update or cache invalidation. Each process has also +# its own copy of the data structure and we don't need to care about +# locks between threads. +multi_process = False + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/openerp/addons/base/base.sql b/openerp/addons/base/base.sql index 3f7f2e3581c..06a13d311a2 100644 --- a/openerp/addons/base/base.sql +++ b/openerp/addons/base/base.sql @@ -353,7 +353,9 @@ CREATE TABLE ir_model_data ( -- The `base_cache_signaling sequence` indicates all caches must be -- invalidated (i.e. cleared). CREATE SEQUENCE base_registry_signaling INCREMENT BY 1 START WITH 1; +SELECT nextval('base_registry_signaling'); CREATE SEQUENCE base_cache_signaling INCREMENT BY 1 START WITH 1; +SELECT nextval('base_cache_signaling'); --------------------------------- -- Users diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py index 82928c3911b..26e153f233b 100644 --- a/openerp/modules/registry.py +++ b/openerp/modules/registry.py @@ -50,6 +50,9 @@ class Registry(object): self._init_parent = {} self.db_name = db_name self.db = openerp.sql_db.db_connect(db_name) + # Flag indicating if at least one model cache has been cleared. + # Useful only in a multi-process context. + self._any_cache_cleared = False cr = self.db.cursor() has_unaccent = openerp.modules.db.has_unaccent(cr) @@ -115,6 +118,14 @@ class Registry(object): for model in self.models.itervalues(): model.clear_caches() + # Useful only in a multi-process context. + def reset_any_cache_cleared(self): + self._any_cache_cleared = False + + # Useful only in a multi-process context. + def any_cache_cleared(self): + return self._any_cache_cleared + class RegistryManager(object): """ Model registries manager. @@ -127,6 +138,14 @@ class RegistryManager(object): registries = {} registries_lock = threading.RLock() + # Inter-process signaling (used only when openerp.multi_process is True): + # The `base_registry_signaling` sequence indicates the whole registry + # must be reloaded. + # The `base_cache_signaling sequence` indicates all caches must be + # invalidated (i.e. cleared). + base_registry_signaling_sequence = 1 + base_cache_signaling_sequence = 1 + @classmethod def get(cls, db_name, force_demo=False, status=None, update_module=False, pooljobs=True): @@ -215,5 +234,55 @@ class RegistryManager(object): if db_name in cls.registries: cls.registries[db_name].clear_caches() + @classmethod + def check_registry_signaling(cls, db_name): + if openerp.multi_process: + # Check if the model registry must be reloaded (e.g. after the + # database has been updated by another process). + cr = openerp.sql_db.db_connect(db_name).cursor() + registry_reloaded = False + try: + cr.execute('SELECT last_value FROM base_registry_signaling') + r = cr.fetchone()[0] + if cls.base_registry_signaling_sequence != r: + _logger.info("Reloading the model registry after database signaling.") + cls.base_registry_signaling_sequence = r + # Don't run the cron in the Gunicorn worker. + cls.new(db_name, pooljobs=False) + registry_reloaded = True + finally: + cr.close() + + # Check if the model caches must be invalidated (e.g. after a write + # occured on another process). Don't clear right after a registry + # has been reload. + cr = openerp.sql_db.db_connect(db_name).cursor() + try: + cr.execute('SELECT last_value FROM base_cache_signaling') + r = cr.fetchone()[0] + if cls.base_cache_signaling_sequence != r and not registry_reloaded: + _logger.info("Invalidating all model caches after database signaling.") + cls.base_cache_signaling_sequence = r + registry = cls.get(db_name, pooljobs=False) + registry.clear_caches() + finally: + cr.close() + + @classmethod + def signal_caches_change(cls, db_name): + if openerp.multi_process: + # Check the registries if any cache has been cleared and signal it + # through the database to other processes. + registry = cls.get(db_name, pooljobs=False) + if registry.any_cache_cleared(): + _logger.info("At least one model cache has been cleare, signaling through the database.") + cr = openerp.sql_db.db_connect(db_name).cursor() + try: + pass + # cr.execute("select nextval('base_registry_signaling')") + # cls.base_cache_signaling to = result + finally: + cr.close() + registry.reset_any_cache_cleared() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 3e190939997..47b9c9c7b35 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -2384,6 +2384,7 @@ class BaseModel(object): try: getattr(self, '_ormcache') self._ormcache = {} + self.pool._any_cache_cleared = True except AttributeError: pass diff --git a/openerp/osv/osv.py b/openerp/osv/osv.py index 15eb90dbcbf..7ae672b4367 100644 --- a/openerp/osv/osv.py +++ b/openerp/osv/osv.py @@ -45,14 +45,6 @@ class except_osv(Exception): service = None -# Inter-process signaling: -# The `base_registry_signaling` sequence indicates the whole registry -# must be reloaded. -# The `base_cache_signaling sequence` indicates all caches must be -# invalidated (i.e. cleared). -base_registry_signaling_sequence = None -base_cache_signaling_sequence = None - class object_proxy(object): def __init__(self): global service @@ -176,39 +168,7 @@ class object_proxy(object): @check def execute(self, db, uid, obj, method, *args, **kw): - - # Check if the model registry must be reloaded (e.g. after the - # database has been updated by another process). - cr = pooler.get_db(db).cursor() - registry_reloaded = False - try: - cr.execute('select last_value from base_registry_signaling') - r = cr.fetchone()[0] - global base_registry_signaling_sequence - if base_registry_signaling_sequence != r: - _logger.info("Reloading the model registry after database signaling.") - base_registry_signaling_sequence = r - # Don't run the cron in the Gunicorn worker. - openerp.modules.registry.RegistryManager.new(db, pooljobs=False) - registry_reloaded = True - finally: - cr.close() - - # Check if the model caches must be invalidated (e.g. after a write - # occured on another process). Don't clear right after a registry - # has been reload. - cr = pooler.get_db(db).cursor() - try: - cr.execute('select last_value from base_cache_signaling') - r = cr.fetchone()[0] - global base_cache_signaling_sequence - if base_cache_signaling_sequence != r and not registry_reloaded: - _logger.info("Invalidating all model caches after database signaling.") - base_cache_signaling_sequence = r - registry = openerp.modules.registry.RegistryManager.get(db, pooljobs=False) - registry.clear_caches() - finally: - cr.close() + openerp.modules.registry.RegistryManager.check_registry_signaling(db) cr = pooler.get_db(db).cursor() try: @@ -224,6 +184,8 @@ class object_proxy(object): raise finally: cr.close() + + openerp.modules.registry.RegistryManager.signal_caches_change(db) return res def exec_workflow_cr(self, cr, uid, obj, method, *args): diff --git a/openerp/tools/cache.py b/openerp/tools/cache.py index 2c5c4a46e0d..68474fbc04c 100644 --- a/openerp/tools/cache.py +++ b/openerp/tools/cache.py @@ -57,10 +57,12 @@ class ormcache(object): try: key = args[self.skiparg-2:] del d[key] + self2.pool._any_cache_cleared = True except KeyError: pass else: d.clear() + self2.pool._any_cache_cleared = True class ormcache_multi(ormcache): def __init__(self, skiparg=2, size=8192, multi=3): diff --git a/openerp/wsgi.py b/openerp/wsgi.py index f62c94d5e03..b865a8476c0 100644 --- a/openerp/wsgi.py +++ b/openerp/wsgi.py @@ -456,6 +456,7 @@ arbiter_pid = None def on_starting(server): global arbiter_pid arbiter_pid = os.getpid() # TODO check if this is true even after replacing the executable + openerp.multi_process = True # Yay! #openerp.tools.cache = kill_workers_cache openerp.netsvc.init_logger() openerp.osv.osv.start_object_proxy() From 0b9ba395448ac7ae92244b513f3f12597d3e4576 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 8 Feb 2012 15:35:07 +0100 Subject: [PATCH 003/102] [IMP] gunicorn: no longer use the SIGWINCH signal to clear caches across workers. bzr revid: vmt@openerp.com-20120208143507-rob436rzyg7x1mwp --- gunicorn.conf.py | 1 - openerp/wsgi.py | 27 --------------------------- 2 files changed, 28 deletions(-) diff --git a/gunicorn.conf.py b/gunicorn.conf.py index 8e94fc7cea6..1eaebe4bddc 100644 --- a/gunicorn.conf.py +++ b/gunicorn.conf.py @@ -21,7 +21,6 @@ workers = 1 # Some application-wide initialization is needed. on_starting = openerp.wsgi.on_starting -when_ready = openerp.wsgi.when_ready pre_request = openerp.wsgi.pre_request post_request = openerp.wsgi.post_request diff --git a/openerp/wsgi.py b/openerp/wsgi.py index b865a8476c0..4010fe9a96c 100644 --- a/openerp/wsgi.py +++ b/openerp/wsgi.py @@ -457,7 +457,6 @@ def on_starting(server): global arbiter_pid arbiter_pid = os.getpid() # TODO check if this is true even after replacing the executable openerp.multi_process = True # Yay! - #openerp.tools.cache = kill_workers_cache openerp.netsvc.init_logger() openerp.osv.osv.start_object_proxy() openerp.service.web_services.start_web_services() @@ -478,11 +477,6 @@ The `web` module is provided by the addons found in the `openerp-web` project. Maybe you forgot to add those addons in your addons_path configuration.""" _logger.exception('Failed to load server-wide module `%s`.%s', m, msg) -# Install our own signal handler on the master process. -def when_ready(server): - # Hijack gunicorn's SIGWINCH handling; we can choose another one. - signal.signal(signal.SIGWINCH, make_winch_handler(server)) - # Install limits on virtual memory and CPU time consumption. def pre_request(worker, req): import os @@ -510,30 +504,9 @@ def post_request(worker, req, environ): 'too high, rebooting the worker.') worker.alive = False # Commit suicide after the request. -# Our signal handler will signal a SGIQUIT to all workers. -def make_winch_handler(server): - def handle_winch(sig, fram): - server.kill_workers(signal.SIGQUIT) # This is gunicorn specific. - return handle_winch - # SIGXCPU (exceeded CPU time) signal handler will raise an exception. def time_expired(n, stack): _logger.info('CPU time limit exceeded.') raise Exception('CPU time limit exceeded.') # TODO one of openerp.exception -# Kill gracefuly the workers (e.g. because we want to clear their cache). -# This is done by signaling a SIGWINCH to the master process, so it can be -# called by the workers themselves. -def kill_workers(): - try: - os.kill(arbiter_pid, signal.SIGWINCH) - except OSError, e: - if e.errno == errno.ESRCH: # no such pid - return - raise - -class kill_workers_cache(openerp.tools.ormcache): - def clear(self, dbname, *args, **kwargs): - kill_workers() - # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From d7f305c923f6adf7497a2bd3dd389aeefb89e757 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 8 Feb 2012 16:19:42 +0100 Subject: [PATCH 004/102] [IMP] ir_ui_menu: no more shared cache in menu visibility computation. It is slower in the GTK client (0.0050s instead of 0.00009s) to get a menu tree. bzr revid: vmt@openerp.com-20120208151942-c8dlyleoxmaczbry --- openerp/addons/base/ir/ir_ui_menu.py | 112 +++++++++++---------------- 1 file changed, 44 insertions(+), 68 deletions(-) diff --git a/openerp/addons/base/ir/ir_ui_menu.py b/openerp/addons/base/ir/ir_ui_menu.py index db5afcb7585..8c044fa1ad5 100644 --- a/openerp/addons/base/ir/ir_ui_menu.py +++ b/openerp/addons/base/ir/ir_ui_menu.py @@ -40,69 +40,57 @@ def one_in(setA, setB): class ir_ui_menu(osv.osv): _name = 'ir.ui.menu' - def __init__(self, *args, **kwargs): - self.cache_lock = threading.RLock() - self.clear_cache() - r = super(ir_ui_menu, self).__init__(*args, **kwargs) - self.pool.get('ir.model.access').register_cache_clearing_method(self._name, 'clear_cache') - return r - - def clear_cache(self): - with self.cache_lock: - # radical but this doesn't frequently happen - self._cache = {} - def _filter_visible_menus(self, cr, uid, ids, context=None): """Filters the give menu ids to only keep the menu items that should be visible in the menu hierarchy of the current user. Uses a cache for speeding up the computation. """ - with self.cache_lock: - modelaccess = self.pool.get('ir.model.access') - user_groups = set(self.pool.get('res.users').read(cr, 1, uid, ['groups_id'])['groups_id']) - result = [] - for menu in self.browse(cr, uid, ids, context=context): - # this key works because user access rights are all based on user's groups (cfr ir_model_access.check) - key = (cr.dbname, menu.id, tuple(user_groups)) - if key in self._cache: - if self._cache[key]: - result.append(menu.id) - #elif not menu.groups_id and not menu.action: - # result.append(menu.id) + _cache = {} + modelaccess = self.pool.get('ir.model.access') + user_groups = set(self.pool.get('res.users').read(cr, 1, uid, ['groups_id'])['groups_id']) + result = [] + for menu in self.browse(cr, uid, ids, context=context): + # this key works because user access rights are all based on user's groups (cfr ir_model_access.check) + key = (cr.dbname, menu.id, tuple(user_groups)) + if key in _cache: + if _cache[key]: + result.append(menu.id) + #elif not menu.groups_id and not menu.action: + # result.append(menu.id) + continue + + _cache[key] = False + if menu.groups_id: + restrict_to_groups = [g.id for g in menu.groups_id] + if not user_groups.intersection(restrict_to_groups): + continue + #result.append(menu.id) + #_cache[key] = True + #continue + + if menu.action: + # we check if the user has access to the action of the menu + data = menu.action + if data: + model_field = { 'ir.actions.act_window': 'res_model', + 'ir.actions.report.xml': 'model', + 'ir.actions.wizard': 'model', + 'ir.actions.server': 'model_id', + } + + field = model_field.get(menu.action._name) + if field and data[field]: + if not modelaccess.check(cr, uid, data[field], 'read', False): + continue + else: + # if there is no action, it's a 'folder' menu + if not menu.child_id: + # not displayed if there is no children continue - self._cache[key] = False - if menu.groups_id: - restrict_to_groups = [g.id for g in menu.groups_id] - if not user_groups.intersection(restrict_to_groups): - continue - #result.append(menu.id) - #self._cache[key] = True - #continue - - if menu.action: - # we check if the user has access to the action of the menu - data = menu.action - if data: - model_field = { 'ir.actions.act_window': 'res_model', - 'ir.actions.report.xml': 'model', - 'ir.actions.wizard': 'model', - 'ir.actions.server': 'model_id', - } - - field = model_field.get(menu.action._name) - if field and data[field]: - if not modelaccess.check(cr, uid, data[field], 'read', False): - continue - else: - # if there is no action, it's a 'folder' menu - if not menu.child_id: - # not displayed if there is no children - continue - - result.append(menu.id) - self._cache[key] = True - return result + result.append(menu.id) + _cache[key] = True + return result def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False): if context is None: @@ -146,18 +134,6 @@ class ir_ui_menu(osv.osv): parent_path = '' return parent_path + menu.name - def create(self, *args, **kwargs): - self.clear_cache() - return super(ir_ui_menu, self).create(*args, **kwargs) - - def write(self, *args, **kwargs): - self.clear_cache() - return super(ir_ui_menu, self).write(*args, **kwargs) - - def unlink(self, *args, **kwargs): - self.clear_cache() - return super(ir_ui_menu, self).unlink(*args, **kwargs) - def copy(self, cr, uid, id, default=None, context=None): ir_values_obj = self.pool.get('ir.values') res = super(ir_ui_menu, self).copy(cr, uid, id, context=context) From b90736b3e7c79364c2a3e3f0c2f0687fb83b8263 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 8 Feb 2012 17:13:12 +0100 Subject: [PATCH 005/102] [IMP] gunicorn: signaling used for more than just execute(). bzr revid: vmt@openerp.com-20120208161312-pv9dl8rezsvs00o7 --- openerp/osv/osv.py | 4 ---- openerp/service/web_services.py | 4 ++++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/openerp/osv/osv.py b/openerp/osv/osv.py index 7ae672b4367..877e804314c 100644 --- a/openerp/osv/osv.py +++ b/openerp/osv/osv.py @@ -168,8 +168,6 @@ class object_proxy(object): @check def execute(self, db, uid, obj, method, *args, **kw): - openerp.modules.registry.RegistryManager.check_registry_signaling(db) - cr = pooler.get_db(db).cursor() try: try: @@ -184,8 +182,6 @@ class object_proxy(object): raise finally: cr.close() - - openerp.modules.registry.RegistryManager.signal_caches_change(db) return res def exec_workflow_cr(self, cr, uid, obj, method, *args): diff --git a/openerp/service/web_services.py b/openerp/service/web_services.py index 3a9ba89c002..c885abf7e20 100644 --- a/openerp/service/web_services.py +++ b/openerp/service/web_services.py @@ -568,8 +568,10 @@ class objects_proxy(netsvc.ExportService): raise NameError("Method not available %s" % method) security.check(db,uid,passwd) assert openerp.osv.osv.service, "The object_proxy class must be started with start_object_proxy." + openerp.modules.registry.RegistryManager.check_registry_signaling(db) fn = getattr(openerp.osv.osv.service, method) res = fn(db, uid, *params) + openerp.modules.registry.RegistryManager.signal_caches_change(db) return res @@ -649,8 +651,10 @@ class report_spool(netsvc.ExportService): if method not in ['report', 'report_get', 'render_report']: raise KeyError("Method not supported %s" % method) security.check(db,uid,passwd) + openerp.modules.registry.RegistryManager.check_registry_signaling(db) fn = getattr(self, 'exp_' + method) res = fn(db, uid, *params) + openerp.modules.registry.RegistryManager.signal_caches_change(db) return res def exp_render_report(self, db, uid, object, ids, datas=None, context=None): From 9d7f004c3b5df0f43304476cb5099eaf2134b6d4 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 8 Feb 2012 18:09:26 +0100 Subject: [PATCH 006/102] [IMP] gunicorn: installing modules with multiple processes works. bzr revid: vmt@openerp.com-20120208170926-1ydiw27j560yv0vz --- gunicorn.conf.py | 2 +- openerp/addons/base/module/module.py | 2 ++ openerp/modules/registry.py | 14 ++++++++++++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/gunicorn.conf.py b/gunicorn.conf.py index 1eaebe4bddc..99b3abb4d65 100644 --- a/gunicorn.conf.py +++ b/gunicorn.conf.py @@ -17,7 +17,7 @@ pidfile = '.gunicorn.pid' # Gunicorn recommends 2-4 x number_of_cpu_cores, but # you'll want to vary this a bit to find the best for your # particular work load. -workers = 1 +workers = 10 # Some application-wide initialization is needed. on_starting = openerp.wsgi.on_starting diff --git a/openerp/addons/base/module/module.py b/openerp/addons/base/module/module.py index 1eb96c3735b..2eadb2f1078 100644 --- a/openerp/addons/base/module/module.py +++ b/openerp/addons/base/module/module.py @@ -30,6 +30,7 @@ import urllib import zipfile import zipimport +import openerp import openerp.modules as addons import pooler import release @@ -344,6 +345,7 @@ class module(osv.osv): if to_install_ids: self.button_install(cr, uid, to_install_ids, context=context) + openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname) return dict(ACTION_DICT, name=_('Install')) def button_immediate_install(self, cr, uid, ids, context=None): diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py index 26e153f233b..d79c56838cb 100644 --- a/openerp/modules/registry.py +++ b/openerp/modules/registry.py @@ -143,6 +143,7 @@ class RegistryManager(object): # must be reloaded. # The `base_cache_signaling sequence` indicates all caches must be # invalidated (i.e. cleared). + # TODO per registry base_registry_signaling_sequence = 1 base_cache_signaling_sequence = 1 @@ -279,10 +280,19 @@ class RegistryManager(object): cr = openerp.sql_db.db_connect(db_name).cursor() try: pass - # cr.execute("select nextval('base_registry_signaling')") - # cls.base_cache_signaling to = result + # cr.execute("select nextval('base_cache_signaling')") + # cls.base_cache_signaling_sequence to = result finally: cr.close() registry.reset_any_cache_cleared() + @classmethod + def signal_registry_change(cls, db_name): + cr = openerp.sql_db.db_connect(db_name).cursor() + try: + cr.execute("select nextval('base_registry_signaling')") + finally: + cr.close() + #cls.base_registry_signaling_sequence to = result + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From f4ba58602b647dcfc5214a019b0bafe60bfa5e33 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Thu, 9 Feb 2012 11:30:47 +0100 Subject: [PATCH 007/102] [IMP] gunicorn: database signaling is per-registry. bzr revid: vmt@openerp.com-20120209103047-fp8zrx21xrg92z1j --- openerp/modules/registry.py | 54 ++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py index d79c56838cb..c5caeeee086 100644 --- a/openerp/modules/registry.py +++ b/openerp/modules/registry.py @@ -50,6 +50,15 @@ class Registry(object): self._init_parent = {} self.db_name = db_name self.db = openerp.sql_db.db_connect(db_name) + + # Inter-process signaling (used only when openerp.multi_process is True): + # The `base_registry_signaling` sequence indicates the whole registry + # must be reloaded. + # The `base_cache_signaling sequence` indicates all caches must be + # invalidated (i.e. cleared). + self.base_registry_signaling_sequence = 1 + self.base_cache_signaling_sequence = 1 + # Flag indicating if at least one model cache has been cleared. # Useful only in a multi-process context. self._any_cache_cleared = False @@ -138,15 +147,6 @@ class RegistryManager(object): registries = {} registries_lock = threading.RLock() - # Inter-process signaling (used only when openerp.multi_process is True): - # The `base_registry_signaling` sequence indicates the whole registry - # must be reloaded. - # The `base_cache_signaling sequence` indicates all caches must be - # invalidated (i.e. cleared). - # TODO per registry - base_registry_signaling_sequence = 1 - base_cache_signaling_sequence = 1 - @classmethod def get(cls, db_name, force_demo=False, status=None, update_module=False, pooljobs=True): @@ -237,19 +237,20 @@ class RegistryManager(object): @classmethod def check_registry_signaling(cls, db_name): - if openerp.multi_process: + if openerp.multi_process and db_name in cls.registries: # Check if the model registry must be reloaded (e.g. after the # database has been updated by another process). - cr = openerp.sql_db.db_connect(db_name).cursor() + registry = cls.get(db_name, pooljobs=False) + cr = registry.db.cursor() registry_reloaded = False try: cr.execute('SELECT last_value FROM base_registry_signaling') r = cr.fetchone()[0] - if cls.base_registry_signaling_sequence != r: + if registry.base_registry_signaling_sequence != r: _logger.info("Reloading the model registry after database signaling.") - cls.base_registry_signaling_sequence = r # Don't run the cron in the Gunicorn worker. - cls.new(db_name, pooljobs=False) + registry = cls.new(db_name, pooljobs=False) + registry.base_registry_signaling_sequence = r registry_reloaded = True finally: cr.close() @@ -261,23 +262,22 @@ class RegistryManager(object): try: cr.execute('SELECT last_value FROM base_cache_signaling') r = cr.fetchone()[0] - if cls.base_cache_signaling_sequence != r and not registry_reloaded: + if registry.base_cache_signaling_sequence != r and not registry_reloaded: _logger.info("Invalidating all model caches after database signaling.") - cls.base_cache_signaling_sequence = r - registry = cls.get(db_name, pooljobs=False) + registry.base_cache_signaling_sequence = r registry.clear_caches() finally: cr.close() @classmethod def signal_caches_change(cls, db_name): - if openerp.multi_process: + if openerp.multi_process and db_name in cls.registries: # Check the registries if any cache has been cleared and signal it # through the database to other processes. registry = cls.get(db_name, pooljobs=False) if registry.any_cache_cleared(): _logger.info("At least one model cache has been cleare, signaling through the database.") - cr = openerp.sql_db.db_connect(db_name).cursor() + cr = registry.db.cursor() try: pass # cr.execute("select nextval('base_cache_signaling')") @@ -288,11 +288,15 @@ class RegistryManager(object): @classmethod def signal_registry_change(cls, db_name): - cr = openerp.sql_db.db_connect(db_name).cursor() - try: - cr.execute("select nextval('base_registry_signaling')") - finally: - cr.close() - #cls.base_registry_signaling_sequence to = result + if openerp.multi_process and db_name in cls.registries: + registry = cls.get(db_name, pooljobs=False) + cr = registry.db.cursor() + r = 1 + try: + cr.execute("select nextval('base_registry_signaling')") + r = cr.fetchone()[0] + finally: + cr.close() + registry.base_registry_signaling_sequence = r # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From db811640953666cee02de78e7662c20156b748e1 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Thu, 9 Feb 2012 11:48:01 +0100 Subject: [PATCH 008/102] [IMP] reverted commit 4006, re-establishing ir_ui_menu cache. bzr revid: vmt@openerp.com-20120209104801-mdwlk0kdxtv72qx4 --- openerp/addons/base/ir/ir_ui_menu.py | 112 ++++++++++++++++----------- 1 file changed, 68 insertions(+), 44 deletions(-) diff --git a/openerp/addons/base/ir/ir_ui_menu.py b/openerp/addons/base/ir/ir_ui_menu.py index 8c044fa1ad5..db5afcb7585 100644 --- a/openerp/addons/base/ir/ir_ui_menu.py +++ b/openerp/addons/base/ir/ir_ui_menu.py @@ -40,57 +40,69 @@ def one_in(setA, setB): class ir_ui_menu(osv.osv): _name = 'ir.ui.menu' + def __init__(self, *args, **kwargs): + self.cache_lock = threading.RLock() + self.clear_cache() + r = super(ir_ui_menu, self).__init__(*args, **kwargs) + self.pool.get('ir.model.access').register_cache_clearing_method(self._name, 'clear_cache') + return r + + def clear_cache(self): + with self.cache_lock: + # radical but this doesn't frequently happen + self._cache = {} + def _filter_visible_menus(self, cr, uid, ids, context=None): """Filters the give menu ids to only keep the menu items that should be visible in the menu hierarchy of the current user. Uses a cache for speeding up the computation. """ - _cache = {} - modelaccess = self.pool.get('ir.model.access') - user_groups = set(self.pool.get('res.users').read(cr, 1, uid, ['groups_id'])['groups_id']) - result = [] - for menu in self.browse(cr, uid, ids, context=context): - # this key works because user access rights are all based on user's groups (cfr ir_model_access.check) - key = (cr.dbname, menu.id, tuple(user_groups)) - if key in _cache: - if _cache[key]: - result.append(menu.id) - #elif not menu.groups_id and not menu.action: - # result.append(menu.id) - continue - - _cache[key] = False - if menu.groups_id: - restrict_to_groups = [g.id for g in menu.groups_id] - if not user_groups.intersection(restrict_to_groups): - continue - #result.append(menu.id) - #_cache[key] = True - #continue - - if menu.action: - # we check if the user has access to the action of the menu - data = menu.action - if data: - model_field = { 'ir.actions.act_window': 'res_model', - 'ir.actions.report.xml': 'model', - 'ir.actions.wizard': 'model', - 'ir.actions.server': 'model_id', - } - - field = model_field.get(menu.action._name) - if field and data[field]: - if not modelaccess.check(cr, uid, data[field], 'read', False): - continue - else: - # if there is no action, it's a 'folder' menu - if not menu.child_id: - # not displayed if there is no children + with self.cache_lock: + modelaccess = self.pool.get('ir.model.access') + user_groups = set(self.pool.get('res.users').read(cr, 1, uid, ['groups_id'])['groups_id']) + result = [] + for menu in self.browse(cr, uid, ids, context=context): + # this key works because user access rights are all based on user's groups (cfr ir_model_access.check) + key = (cr.dbname, menu.id, tuple(user_groups)) + if key in self._cache: + if self._cache[key]: + result.append(menu.id) + #elif not menu.groups_id and not menu.action: + # result.append(menu.id) continue - result.append(menu.id) - _cache[key] = True - return result + self._cache[key] = False + if menu.groups_id: + restrict_to_groups = [g.id for g in menu.groups_id] + if not user_groups.intersection(restrict_to_groups): + continue + #result.append(menu.id) + #self._cache[key] = True + #continue + + if menu.action: + # we check if the user has access to the action of the menu + data = menu.action + if data: + model_field = { 'ir.actions.act_window': 'res_model', + 'ir.actions.report.xml': 'model', + 'ir.actions.wizard': 'model', + 'ir.actions.server': 'model_id', + } + + field = model_field.get(menu.action._name) + if field and data[field]: + if not modelaccess.check(cr, uid, data[field], 'read', False): + continue + else: + # if there is no action, it's a 'folder' menu + if not menu.child_id: + # not displayed if there is no children + continue + + result.append(menu.id) + self._cache[key] = True + return result def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False): if context is None: @@ -134,6 +146,18 @@ class ir_ui_menu(osv.osv): parent_path = '' return parent_path + menu.name + def create(self, *args, **kwargs): + self.clear_cache() + return super(ir_ui_menu, self).create(*args, **kwargs) + + def write(self, *args, **kwargs): + self.clear_cache() + return super(ir_ui_menu, self).write(*args, **kwargs) + + def unlink(self, *args, **kwargs): + self.clear_cache() + return super(ir_ui_menu, self).unlink(*args, **kwargs) + def copy(self, cr, uid, id, default=None, context=None): ir_values_obj = self.pool.get('ir.values') res = super(ir_ui_menu, self).copy(cr, uid, id, context=context) From bad0bc85119b52967f032791cedbf86f370a49fa Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Thu, 9 Feb 2012 12:07:03 +0100 Subject: [PATCH 009/102] [IMP] gunicorn: connect ir_ui_cache with the signaling code. bzr revid: vmt@openerp.com-20120209110703-swsi7gckc46zqx40 --- openerp/addons/base/ir/ir_ui_menu.py | 4 ++++ openerp/modules/registry.py | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/openerp/addons/base/ir/ir_ui_menu.py b/openerp/addons/base/ir/ir_ui_menu.py index db5afcb7585..843c8dd64b0 100644 --- a/openerp/addons/base/ir/ir_ui_menu.py +++ b/openerp/addons/base/ir/ir_ui_menu.py @@ -50,6 +50,10 @@ class ir_ui_menu(osv.osv): def clear_cache(self): with self.cache_lock: # radical but this doesn't frequently happen + if self._cache: + # Normally this is done by openerp.tools.ormcache + # but since we do not use it, set it by ourself. + self.pool._any_cache_cleared = True self._cache = {} def _filter_visible_menus(self, cr, uid, ids, context=None): diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py index c5caeeee086..4dcb811da6b 100644 --- a/openerp/modules/registry.py +++ b/openerp/modules/registry.py @@ -126,6 +126,11 @@ class Registry(object): """ for model in self.models.itervalues(): model.clear_caches() + # Special case for ir_ui_menu which does not use openerp.tools.ormcache. + ir_ui_menu = self.models.get('ir.ui.menu') + if ir_ui_menu: + ir_ui_menu.clear_cache() + # Useful only in a multi-process context. def reset_any_cache_cleared(self): From a5ed5aa08cf77c52efa1c07433594f14e4fcfd38 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Thu, 9 Feb 2012 12:12:26 +0100 Subject: [PATCH 010/102] [FIX] gunicorn: pfff too hard to initialize stuff in the ctor. bzr revid: vmt@openerp.com-20120209111226-95bmhy1uxq03dbaj --- openerp/addons/base/ir/ir_ui_menu.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/addons/base/ir/ir_ui_menu.py b/openerp/addons/base/ir/ir_ui_menu.py index 843c8dd64b0..1db4527362e 100644 --- a/openerp/addons/base/ir/ir_ui_menu.py +++ b/openerp/addons/base/ir/ir_ui_menu.py @@ -42,7 +42,7 @@ class ir_ui_menu(osv.osv): def __init__(self, *args, **kwargs): self.cache_lock = threading.RLock() - self.clear_cache() + self._cache = {} r = super(ir_ui_menu, self).__init__(*args, **kwargs) self.pool.get('ir.model.access').register_cache_clearing_method(self._name, 'clear_cache') return r From a69fd7db534d5c38702748ba4367e433f399e971 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Thu, 9 Feb 2012 14:00:33 +0100 Subject: [PATCH 011/102] [IMP] gunicorn: uncomment the nextval(base_cache_signaling). bzr revid: vmt@openerp.com-20120209130033-cb459vlm2b9pg34l --- openerp/modules/registry.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py index 4dcb811da6b..9053eb82d1d 100644 --- a/openerp/modules/registry.py +++ b/openerp/modules/registry.py @@ -271,6 +271,7 @@ class RegistryManager(object): _logger.info("Invalidating all model caches after database signaling.") registry.base_cache_signaling_sequence = r registry.clear_caches() + registry.reset_any_cache_cleared() finally: cr.close() @@ -283,12 +284,14 @@ class RegistryManager(object): if registry.any_cache_cleared(): _logger.info("At least one model cache has been cleare, signaling through the database.") cr = registry.db.cursor() + r = 1 try: pass - # cr.execute("select nextval('base_cache_signaling')") - # cls.base_cache_signaling_sequence to = result + cr.execute("select nextval('base_cache_signaling')") + r = cr.fetchone()[0] finally: cr.close() + registry.base_cache_signaling_sequence = r registry.reset_any_cache_cleared() @classmethod From a49dd47178e835604b966712d9d864443635e1bf Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 13 Feb 2012 12:53:54 +0100 Subject: [PATCH 012/102] [IMP] cron: no master cron thread when no workers are needed. bzr revid: vmt@openerp.com-20120213115354-qa4kqx6hea82q8se --- openerp/cron.py | 11 +++++++---- openerp/modules/registry.py | 1 - openerp/service/__init__.py | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/openerp/cron.py b/openerp/cron.py index 7b67877f0fe..8551ed7dadc 100644 --- a/openerp/cron.py +++ b/openerp/cron.py @@ -204,9 +204,12 @@ def start_master_thread(): _logger.warning("Connection pool size (%s) is set lower than max number of cron threads (%s), " "this may cause trouble if you reach that number of parallel cron tasks.", db_maxconn, _thread_slots) - t = threading.Thread(target=runner, name="openerp.cron.master_thread") - t.setDaemon(True) - t.start() - _logger.debug("Master cron daemon started!") + if _thread_slots: + t = threading.Thread(target=runner, name="openerp.cron.master_thread") + t.setDaemon(True) + t.start() + _logger.debug("Master cron daemon started!") + else: + _logger.info("No master cron daemon (0 workers needed).") # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py index 9053eb82d1d..bc04d455c6b 100644 --- a/openerp/modules/registry.py +++ b/openerp/modules/registry.py @@ -286,7 +286,6 @@ class RegistryManager(object): cr = registry.db.cursor() r = 1 try: - pass cr.execute("select nextval('base_cache_signaling')") r = cr.fetchone()[0] finally: diff --git a/openerp/service/__init__.py b/openerp/service/__init__.py index bc9a83bfe76..c387d272e26 100644 --- a/openerp/service/__init__.py +++ b/openerp/service/__init__.py @@ -65,7 +65,7 @@ def start_services(): netrpc_server.init_servers() # Start the main cron thread. - #openerp.cron.start_master_thread() + openerp.cron.start_master_thread() # Start the top-level servers threads (normally HTTP, HTTPS, and NETRPC). openerp.netsvc.Server.startAll() From ac9fe7be3cac3a55b9138e0d6998f3368eaea8ce Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Mon, 13 Feb 2012 13:43:21 +0100 Subject: [PATCH 013/102] [REV] gunicorn.conf.py: reverted temporary changes. bzr revid: vmt@openerp.com-20120213124321-l5ba59s3m95iszo8 --- gunicorn.conf.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gunicorn.conf.py b/gunicorn.conf.py index 427aab6f026..2400aa9fccd 100644 --- a/gunicorn.conf.py +++ b/gunicorn.conf.py @@ -21,7 +21,7 @@ pidfile = '.gunicorn.pid' # Gunicorn recommends 2-4 x number_of_cpu_cores, but # you'll want to vary this a bit to find the best for your # particular work load. -workers = 10 +workers = 4 # Some application-wide initialization is needed. on_starting = openerp.wsgi.core.on_starting @@ -34,8 +34,6 @@ timeout = 240 max_requests = 2000 -#accesslog = '/tmp/blah.txt' - # Equivalent of --load command-line option openerp.conf.server_wide_modules = ['web'] @@ -44,7 +42,7 @@ conf = openerp.tools.config # Path to the OpenERP Addons repository (comma-separated for # multiple locations) -conf['addons_path'] = '/home/thu/repos/addons/trunk,/home/thu/repos/web/trunk/addons' +conf['addons_path'] = '/home/openerp/addons/trunk,/home/openerp/web/trunk/addons' # Optional database config if not using local socket #conf['db_name'] = 'mycompany' From 353a5aabeb8c7fa2053d71a313e8f02f82770350 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 21 Feb 2012 09:30:05 +0100 Subject: [PATCH 014/102] [ADD] res.users: added photo field bzr revid: tde@openerp.com-20120221083005-6lpz3208cgzwpcau --- openerp/addons/base/res/res_users.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index f148813ae05..ae1f1f9fe91 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -241,6 +241,7 @@ class users(osv.osv): "otherwise leave empty. After a change of password, the user has to login again."), 'user_email': fields.char('Email', size=64), 'signature': fields.text('Signature', size=64), + 'photo': fields.binary('Photo'), 'active': fields.boolean('Active'), 'action_id': fields.many2one('ir.actions.actions', 'Home Action', help="If specified, this action will be opened at logon for this user, in addition to the standard menu."), 'menu_id': fields.many2one('ir.actions.actions', 'Menu Action', help="If specified, the action will replace the standard menu for this user."), From 5d267e015860ec8ef3de64768a7238c62e60c1c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 21 Feb 2012 09:30:49 +0100 Subject: [PATCH 015/102] [ADD] Added default user photo file bzr revid: tde@openerp.com-20120221083049-crwehkw9qxwzlmmb --- openerp/addons/base/images/photo.png | Bin 0 -> 2685 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 openerp/addons/base/images/photo.png diff --git a/openerp/addons/base/images/photo.png b/openerp/addons/base/images/photo.png new file mode 100644 index 0000000000000000000000000000000000000000..1d124127b2bf7115fdb38ab2fc136fdf5b531237 GIT binary patch literal 2685 zcmV-@3WD{CP)@cEZEfxEk3asno3<^Q<_tXZ%rjptisIYOxmYO`k|dEhj$y6UT5BSrwW26~{@7!W z4W?ytDg>T*;)!H-cJ@bQSsn&Z0w~fnt+Ff&aU4?|$JSb#0!W>6rYy_fJo@OPzn|DJ z05uIIb8~Y)b0#_|B70 zJ{e7Ff1*YF^wUrGwAPOR820=9t-)Y$WoBk(n}`Y#aUle8&Y`L*4WQCm2j?7#h#{i6 zg9i`(1i;TeH3G(%FL>|6)vH$rhYugVHZwERUt3!nZES2*Q55mw;-Xk<5kd&gIUbEh z6hg2egbYBZEX#wF*q@kywf6Iyo15;ThaM^x78XX<+T#BE?{`Y6aQ^&xxp3hEhQlH5 zzWeTwBngZ$l~QW7y}douS{EUNxu>3b%1#nqC(Q!~XJ=>q+}vEPl&Y0dL2Dhf)^hy# zaXESNWIK)ku!wkOt_Oob{pzc)*2Wl)qUb&VZ{I0^i54+4ck?`FrIaV4pp*(qDG(8e z2qMz_^dyj~AjVOioUL(A3-#+%< zW70e{5dmXNIXgSs0^4&;`~4Up0l;w_OQ+L86h&7i!Ena}UU}t}Kp!}8z+-|13`{_v z)9L)9uIsMWS_6ng#E6J)35)@6!IOw+5wXqq$a|j<(d(ZIffFZAlp%z-8@EXTq(l?} z(DYFocdPczCjc@LNvf*ijg5^rKNSK15JLFva5&r+kz7PNA%ujPt%xXQMkCaSX68sl zvJgVf%rP@Refsoi{?rJZI(6zT0KX0)WX#+RA#_3rQ3JLG4rW%&Y?wJ=<~)Rud+$G3 zUS9s^B=#pJ001XXp1k0_-)81cLm&+yjL!lwvkDYTG71kKD8LZGH^LkNj;E-lM43L*SyDz>Mgq^hbv)OBr`Icwf>q6dp?Y)Qho*FVHgb;0SZ`*#q z|F>z_1*Sv*0HP>*>(Zr5)_ZT8J-=$+JT)_+opa{>_un^JmQ9qr#@p1&Dp{6Y9F0bb znGFEN%!-;M&|LM(%8FiCSfIgR@XoaCPK^LF*M|-rqLq~uSZmed;v(AJW>r;KSy{pS z{52$uKwXTS$ zBqB#dfrz+~KtxVNN+K$=Ec^bn>`qLeD2n;@_4V)Od9DCl6Okb^S0WOaSpZ1WF98hF zH0{sL&CM1?@x7|5mL|1-$1b$Bwe`iSs=jWmJ=E*AzTX~Y#U>Clu`pCD$25SWm$?+3Q-hMk|b6{5^HTINs<`=Ga}LjkO4@Td8Cwj z%{lkGJkPhLN?>bi>;BPb^i8ex=h8G~A}WkABM}*Dtp`LjAfgd7kF?fRUDsYjxX~>{ zL|SX5wKmO}Aq9{(;5*HBJQI-=fFYs_BJxs_ByUYjV0Cr%2LQg(>2ykK?NDnyP)ZGn zXb51Wlq!g*1W*I;L=^CmD~u~Ae021*jl?3-9&mC1xrlT`q(elBi2OB8(_i5hu60WS ztE;O&^xmK7^?HLONp=A25Ya$uJ=9v4L{y82BO)&%Ohnv({y3%W@k}>FGGm;6>ynAHTy2+xSDF`7F!~?7CMfBDweeV87q*b-UebH!9dOk(FinwJ3_n7&8Je z5|M(L9T9nMwBy#Ua;HRCDb>1FAtJ-ZK5MNX-0Q)c2&}BESZ01$Ywd}s5|IkK)5;nY$%*;k96|b+aKYSyB>lX3LFTYG#mL0t7uDf&; zMTz&mCnBDRED;sn`7dIFTU6bA^iB>d+$9uKR;htYe(Muk%*L9>$=zL)m2sbvMgPm z=i~8woWx$qjBbz?cq^8fO0r0PuI63008IC zom1ZXdqm_b_uY5jgG)JyIk0%8R2U2f-WcOs0z|}(ueSN&#t=JRy;e#oYKpYoAp<(+rlSwC~;%uQR0TW%%Jo;|CUmzQ-}mWx$YJ+QR2 zbR^5N12Z!-y>7Q_j4|zgpPR_hZl47Jm|2bu)lO}0f{*M4VbXJ;@NTwGgQ z`&X~mdvpK({a0Uj;RV?X_-zr`Yi0oGG);A<)1k|kFVA}K=S3tn#>CFKn3 Date: Tue, 21 Feb 2012 09:49:39 +0100 Subject: [PATCH 016/102] [IMP] res.users: added photo in form view bzr revid: tde@openerp.com-20120221084939-2eewuecsd476f2jt --- openerp/addons/base/base_update.xml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/openerp/addons/base/base_update.xml b/openerp/addons/base/base_update.xml index c5594f76e22..0ed0b525e5c 100644 --- a/openerp/addons/base/base_update.xml +++ b/openerp/addons/base/base_update.xml @@ -122,11 +122,17 @@ - - - - - + + + + + + + + + + + From 2388c019f15191adff1578ad7f6378aefc509823 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 21 Feb 2012 09:56:06 +0100 Subject: [PATCH 017/102] [IMP] res.users: added default photo (base/images/photo.png) bzr revid: tde@openerp.com-20120221085606-h5wufginyq4su9sw --- openerp/addons/base/res/res_users.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index ae1f1f9fe91..9b6a66d3b82 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -353,9 +353,14 @@ class users(osv.osv): pass return result + def _get_photo(self, cr, uid, context=None): + photo_path = openerp.modules.get_module_resource('base','images','photo.png') + return open(photo_path, 'rb').read().encode('base64') + _defaults = { 'password' : '', 'context_lang': 'en_US', + 'photo': _get_photo, 'active' : True, 'menu_id': _get_menu, 'company_id': _get_company, From 0e6c779ae2a213e748a9199d127259afa2c67117 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 21 Feb 2012 10:12:57 +0100 Subject: [PATCH 018/102] [ADD] Added photo_mini field, holding a resized version of photo. Added resizing method. bzr revid: tde@openerp.com-20120221091257-r2g306wgkalcpyrl --- openerp/addons/base/res/res_users.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index 9b6a66d3b82..5907840cd5b 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -35,6 +35,9 @@ from tools.translate import _ import openerp import openerp.exceptions +import io, StringIO +from PIL import Image + _logger = logging.getLogger(__name__) class groups(osv.osv): @@ -200,6 +203,20 @@ class users(osv.osv): self.write(cr, uid, ids, {'groups_id': [(4, extended_group_id)]}, context=context) return True + def _get_photo_mini(self, cr, uid, ids, name, args, context=None): + result = {} + for obj in self.browse(cr, uid, ids, context=context): + if not obj.photo: + result[obj.id] = False + continue + + image_stream = io.BytesIO(obj.photo.decode('base64')) + img = Image.open(image_stream) + img.thumbnail((120, 100), Image.ANTIALIAS) + img_stream = StringIO.StringIO() + img.save(img_stream, "JPEG") + result[obj.id] = img_stream.getvalue().encode('base64') + return result def _get_interface_type(self, cr, uid, ids, name, args, context=None): """Implementation of 'view' function field getter, returns the type of interface of the users. @@ -242,6 +259,10 @@ class users(osv.osv): 'user_email': fields.char('Email', size=64), 'signature': fields.text('Signature', size=64), 'photo': fields.binary('Photo'), + 'photo_mini': fields.function(_get_photo_mini, string='Photo Mini', type="binary", + store = { + 'res.users': (lambda self, cr, uid, ids, c={}: ids, ['photo'], 10), + }), 'active': fields.boolean('Active'), 'action_id': fields.many2one('ir.actions.actions', 'Home Action', help="If specified, this action will be opened at logon for this user, in addition to the standard menu."), 'menu_id': fields.many2one('ir.actions.actions', 'Menu Action', help="If specified, the action will replace the standard menu for this user."), From 42806faa81f5025cda6ec3bccbfc2e924f2bda9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 21 Feb 2012 10:23:54 +0100 Subject: [PATCH 019/102] [ADD] res.users: preferences screen: added photo field bzr revid: tde@openerp.com-20120221092354-x4hw1uqk8afk0k08 --- openerp/addons/base/base_update.xml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/openerp/addons/base/base_update.xml b/openerp/addons/base/base_update.xml index 0ed0b525e5c..af915e083aa 100644 --- a/openerp/addons/base/base_update.xml +++ b/openerp/addons/base/base_update.xml @@ -84,12 +84,18 @@
- - - - - - + + + + + + + + + + + + @@ -131,7 +137,7 @@ - + From 4183dcb27e79fa843b3b3e64879bb885ac86a744 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 21 Feb 2012 11:04:51 +0100 Subject: [PATCH 020/102] [IMP] res.users: form view: cleaned code tabulations, added names to fields for inheritance bzr revid: tde@openerp.com-20120221100451-2kl56w08ggdtxtj5 --- openerp/addons/base/base_update.xml | 54 ++++++++++++++--------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/openerp/addons/base/base_update.xml b/openerp/addons/base/base_update.xml index af915e083aa..250305ca7db 100644 --- a/openerp/addons/base/base_update.xml +++ b/openerp/addons/base/base_update.xml @@ -124,38 +124,38 @@ - - - - - - - - - + + + + + + + + + + + + + + - - - + + + + + + + + - - - - - - - - + + + + - - - - - - From ac1f134ac94b0bfacdae301f931220d2b03e3da7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 21 Feb 2012 11:12:05 +0100 Subject: [PATCH 021/102] [REF] Removed unused group names bzr revid: tde@openerp.com-20120221101205-akwdpwn09ytnagp1 --- openerp/addons/base/base_update.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openerp/addons/base/base_update.xml b/openerp/addons/base/base_update.xml index 250305ca7db..983ef792e25 100644 --- a/openerp/addons/base/base_update.xml +++ b/openerp/addons/base/base_update.xml @@ -127,8 +127,8 @@ - - + + From c9d383613a0996aed2a4f680147921ccbbbefeec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 21 Feb 2012 12:35:23 +0100 Subject: [PATCH 022/102] [IMP] res.users: added photo_calc for calculated photo; can be overriden to display photo from another module (ex: hr). By default, photo_calc is the photo defined in the user. bzr revid: tde@openerp.com-20120221113523-1o3j83a9hrtcojh9 --- openerp/addons/base/res/res_users.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index 5907840cd5b..4e52771b97d 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -218,6 +218,18 @@ class users(osv.osv): result[obj.id] = img_stream.getvalue().encode('base64') return result + def _get_photo_calc(self, cr, uid, ids, name, args, context=None): + result = {} + for user in self.browse(cr, uid, ids, context=context): + result[user.id] = user.photo + return result + + def _get_photo_calc_mini(self, cr, uid, ids, name, args, context=None): + result = {} + for user in self.browse(cr, uid, ids, context=context): + result[user.id] = user.photo_mini + return result + def _get_interface_type(self, cr, uid, ids, name, args, context=None): """Implementation of 'view' function field getter, returns the type of interface of the users. @param field_name: Name of the field @@ -258,11 +270,13 @@ class users(osv.osv): "otherwise leave empty. After a change of password, the user has to login again."), 'user_email': fields.char('Email', size=64), 'signature': fields.text('Signature', size=64), - 'photo': fields.binary('Photo'), - 'photo_mini': fields.function(_get_photo_mini, string='Photo Mini', type="binary", + 'photo': fields.binary('User Photo'), + 'photo_mini': fields.function(_get_photo_mini, string='User Photo Mini', type="binary", store = { 'res.users': (lambda self, cr, uid, ids, c={}: ids, ['photo'], 10), }), + 'photo_calc': fields.function(_get_photo_calc, string='Photo', type="binary", readonly=True), + 'photo_calc_mini': fields.function(_get_photo_calc_mini, string='Photo Mini', type="binary", readonly=True), 'active': fields.boolean('Active'), 'action_id': fields.many2one('ir.actions.actions', 'Home Action', help="If specified, this action will be opened at logon for this user, in addition to the standard menu."), 'menu_id': fields.many2one('ir.actions.actions', 'Menu Action', help="If specified, the action will replace the standard menu for this user."), From 3276c17594fb6be17f936eb3c98113d7dd1d7984 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 21 Feb 2012 14:30:25 +0100 Subject: [PATCH 023/102] [IMP] Cleaned photo display in res.users form: now in preferences column bzr revid: tde@openerp.com-20120221133025-6guy20g2hdd3se4o --- openerp/addons/base/base_update.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/openerp/addons/base/base_update.xml b/openerp/addons/base/base_update.xml index 983ef792e25..04d72a480f3 100644 --- a/openerp/addons/base/base_update.xml +++ b/openerp/addons/base/base_update.xml @@ -129,14 +129,13 @@ in simplified view --> + - - From 8413a61979942ab16fbebd1add8dcacfb29a36ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 21 Feb 2012 16:15:42 +0100 Subject: [PATCH 024/102] [IMP] Removed calculated photo. res.users do not have to be aware it will be inherited. We won't make links between employee photo and user photo: user photo will be used. bzr revid: tde@openerp.com-20120221151542-u2ic748f0wtnvrsr --- openerp/addons/base/res/res_users.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index 4e52771b97d..6ec8b6fd72f 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -218,18 +218,6 @@ class users(osv.osv): result[obj.id] = img_stream.getvalue().encode('base64') return result - def _get_photo_calc(self, cr, uid, ids, name, args, context=None): - result = {} - for user in self.browse(cr, uid, ids, context=context): - result[user.id] = user.photo - return result - - def _get_photo_calc_mini(self, cr, uid, ids, name, args, context=None): - result = {} - for user in self.browse(cr, uid, ids, context=context): - result[user.id] = user.photo_mini - return result - def _get_interface_type(self, cr, uid, ids, name, args, context=None): """Implementation of 'view' function field getter, returns the type of interface of the users. @param field_name: Name of the field @@ -275,8 +263,6 @@ class users(osv.osv): store = { 'res.users': (lambda self, cr, uid, ids, c={}: ids, ['photo'], 10), }), - 'photo_calc': fields.function(_get_photo_calc, string='Photo', type="binary", readonly=True), - 'photo_calc_mini': fields.function(_get_photo_calc_mini, string='Photo Mini', type="binary", readonly=True), 'active': fields.boolean('Active'), 'action_id': fields.many2one('ir.actions.actions', 'Home Action', help="If specified, this action will be opened at logon for this user, in addition to the standard menu."), 'menu_id': fields.many2one('ir.actions.actions', 'Menu Action', help="If specified, the action will replace the standard menu for this user."), From dc6b84ab97e899d28d13eb278a001c95e2777adc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 21 Feb 2012 16:29:10 +0100 Subject: [PATCH 025/102] [IMP] Renamed photo field to avatar. Propagated changes. Modified user view: photo is now on the left of users tab. bzr revid: tde@openerp.com-20120221152910-mw9zm3fnbyxbmqq8 --- openerp/addons/base/base_update.xml | 25 ++++++++++++------------- openerp/addons/base/res/res_users.py | 26 +++++++++++++++----------- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/openerp/addons/base/base_update.xml b/openerp/addons/base/base_update.xml index 04d72a480f3..0eef0a0f4cb 100644 --- a/openerp/addons/base/base_update.xml +++ b/openerp/addons/base/base_update.xml @@ -93,8 +93,8 @@ - - + + @@ -124,20 +124,19 @@ - + - + + + + + - - - - - - - - + + + @@ -149,7 +148,7 @@ - + diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index 6ec8b6fd72f..7936ec2f5c9 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -203,21 +203,25 @@ class users(osv.osv): self.write(cr, uid, ids, {'groups_id': [(4, extended_group_id)]}, context=context) return True - def _get_photo_mini(self, cr, uid, ids, name, args, context=None): + def _get_avatar_mini(self, cr, uid, ids, name, args, context=None): result = {} for obj in self.browse(cr, uid, ids, context=context): - if not obj.photo: + if not obj.avatar: result[obj.id] = False continue - image_stream = io.BytesIO(obj.photo.decode('base64')) + image_stream = io.BytesIO(obj.avatar.decode('base64')) img = Image.open(image_stream) - img.thumbnail((120, 100), Image.ANTIALIAS) + img.thumbnail((180, 150), Image.ANTIALIAS) img_stream = StringIO.StringIO() img.save(img_stream, "JPEG") result[obj.id] = img_stream.getvalue().encode('base64') return result + def _set_avatar_mini(self, cr, uid, id, name, value, args, context=None): + self.write(cr, uid, [id], {'avatar': value}, context=context) + return True + def _get_interface_type(self, cr, uid, ids, name, args, context=None): """Implementation of 'view' function field getter, returns the type of interface of the users. @param field_name: Name of the field @@ -258,10 +262,10 @@ class users(osv.osv): "otherwise leave empty. After a change of password, the user has to login again."), 'user_email': fields.char('Email', size=64), 'signature': fields.text('Signature', size=64), - 'photo': fields.binary('User Photo'), - 'photo_mini': fields.function(_get_photo_mini, string='User Photo Mini', type="binary", + 'avatar': fields.binary('User Avatar'), + 'avatar_mini': fields.function(_get_avatar_mini, fnct_inv=_set_avatar_mini, string='User Avatar Mini', type="binary", store = { - 'res.users': (lambda self, cr, uid, ids, c={}: ids, ['photo'], 10), + 'res.users': (lambda self, cr, uid, ids, c={}: ids, ['avatar'], 10), }), 'active': fields.boolean('Active'), 'action_id': fields.many2one('ir.actions.actions', 'Home Action', help="If specified, this action will be opened at logon for this user, in addition to the standard menu."), @@ -374,14 +378,14 @@ class users(osv.osv): pass return result - def _get_photo(self, cr, uid, context=None): - photo_path = openerp.modules.get_module_resource('base','images','photo.png') - return open(photo_path, 'rb').read().encode('base64') + def _get_avatar(self, cr, uid, context=None): + avatar_path = openerp.modules.get_module_resource('base','images','photo.png') + return open(avatar_path, 'rb').read().encode('base64') _defaults = { 'password' : '', 'context_lang': 'en_US', - 'photo': _get_photo, + 'avatar': _get_avatar, 'active' : True, 'menu_id': _get_menu, 'company_id': _get_company, From 8085156454ed92a5d31fa6bbc348ee5064ebb620 Mon Sep 17 00:00:00 2001 From: "Amit (OpenERP)" Date: Tue, 6 Mar 2012 12:19:02 +0530 Subject: [PATCH 026/102] [ADD]:event:added kanban view for event and realted changes for that. bzr revid: apa@tinyerp.com-20120306064902-rdx250ihctkpjph8 --- addons/event/__openerp__.py | 1 + addons/event/event.py | 54 ++++++++++++++++- addons/event/event_view.xml | 71 ++++++++++++++++++++++- addons/event/static/src/css/event.css | 83 +++++++++++++++++++++++++++ 4 files changed, 207 insertions(+), 2 deletions(-) create mode 100644 addons/event/static/src/css/event.css diff --git a/addons/event/__openerp__.py b/addons/event/__openerp__.py index 06252001c83..ea0e4316ef5 100644 --- a/addons/event/__openerp__.py +++ b/addons/event/__openerp__.py @@ -53,6 +53,7 @@ Note that: ], 'demo_xml': ['event_demo.xml'], 'test': ['test/process/event_draft2done.yml'], + 'css': ['static/src/css/event.css'], 'installable': True, 'application': True, 'auto_install': False, diff --git a/addons/event/event.py b/addons/event/event.py index 133d29281f1..1b92b995239 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -148,8 +148,30 @@ class event_event(osv.osv): number = reg_done elif field == 'register_prospect': number = reg_draft + elif field == 'register_avail': + number = event.register_max-reg_open res[event.id][field] = number return res + + def _subscribe_fnc(self, cr, uid, ids, fields, args, context=None): + """Get Confirm or uncofirm register value. + @param ids: List of Event registration type's id + @param fields: List of function fields(register_current and register_prospect). + @param context: A standard dictionary for contextual values + @return: Dictionary of function fields value. + """ + register_pool = self.pool.get('event.registration') + res = {} + for event in self.browse(cr, uid, ids, context=context): + curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',event.id)]) + if not curr_reg_id:res[event.id] = False + if curr_reg_id: + for reg in register_pool.browse(cr,uid,curr_reg_id,context=context): + if not reg.subscribe: + res[event.id]=False + else: + res[event.id]=True + return res _columns = { 'name': fields.char('Name', size=64, required=True, translate=True, readonly=False, states={'done': [('readonly', True)]}), @@ -158,6 +180,7 @@ class event_event(osv.osv): 'register_max': fields.integer('Maximum Registrations', help="You can for each event define a maximum registration level. If you have too much registrations you are not able to confirm your event. (put 0 to ignore this rule )", readonly=True, states={'draft': [('readonly', False)]}), 'register_min': fields.integer('Minimum Registrations', help="You can for each event define a minimum registration level. If you do not enough registrations you are not able to confirm your event. (put 0 to ignore this rule )", readonly=True, states={'draft': [('readonly', False)]}), 'register_current': fields.function(_get_register, string='Confirmed Registrations', multi='register_numbers'), + 'register_avail': fields.function(_get_register, string='Available Registrations', multi='register_numbers',type='integer'), 'register_prospect': fields.function(_get_register, string='Unconfirmed Registrations', multi='register_numbers'), 'register_attended': fields.function(_get_register, string='Attended Registrations', multi='register_numbers'), 'registration_ids': fields.one2many('event.registration', 'event_id', 'Registrations', readonly=False, states={'done': [('readonly', True)]}), @@ -182,6 +205,7 @@ class event_event(osv.osv): type='many2one', relation='res.country', string='Country', readonly=False, states={'done': [('readonly', True)]}), 'note': fields.text('Description', readonly=False, states={'done': [('readonly', True)]}), 'company_id': fields.many2one('res.company', 'Company', required=False, change_default=True, readonly=False, states={'done': [('readonly', True)]}), + 'subscribe' : fields.function(_subscribe_fnc, type="boolean", string='Subscribe'), } _defaults = { @@ -189,6 +213,33 @@ class event_event(osv.osv): 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'event.event', context=c), 'user_id': lambda obj, cr, uid, context: uid, } + + def subscribe_to_event(self,cr,uid,ids,context=None): + register_pool = self.pool.get('event.registration') + curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) + if not curr_reg_id: + register_pool.create(cr, uid, {'state':'open', + 'event_id':ids[0], + 'subscribe':True, + }) + else: + register_pool.write(cr, uid, curr_reg_id,{'state':'open','subscribe':True, + 'event_id':ids[0], + }) + + self.write(cr,uid,ids,{'subscribe':True}) + return True + + def unsubscribe_to_event(self,cr,uid,ids,context=None): + register_pool = self.pool.get('event.registration') + curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) + if curr_reg_id: + register_pool.write(cr, uid, curr_reg_id,{'state':'draft', + 'event_id':ids[0], + 'subscribe':False + }) + self.write(cr,uid,ids,{'subscribe':False}) + return True def _check_closing_date(self, cr, uid, ids, context=None): for event in self.browse(cr, uid, ids, context=context): @@ -239,7 +290,8 @@ class event_registration(osv.osv): ('open', 'Confirmed'), ('cancel', 'Cancelled'), ('done', 'Attended')], 'State', - size=16, readonly=True) + size=16, readonly=True), + 'subscribe': fields.boolean('Subscribe'), } _defaults = { diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 88be188080e..5aacf7a2845 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -156,6 +156,70 @@ + + + + + event.event.kanban + event.event + kanban + + + + + + + + + + + + +
+ +
+
+ + +
+
+
+
+

+

+ @
+ Organized by
+ + + + + seats + seat available. + + + +

+ + + + + + + + +
+
+
+
+
+
+
@@ -199,6 +263,10 @@ + @@ -229,7 +297,8 @@ ir.actions.act_window event.event form - calendar,tree,form,graph + kanban,calendar,tree,form,graph + {"search_default_upcoming":1} Event is the low level object used by meeting and others documents that should be synchronized with mobile devices or calendar applications through caldav. Most of the users should work in the Calendar menu, and not in the list of events. diff --git a/addons/event/static/src/css/event.css b/addons/event/static/src/css/event.css new file mode 100644 index 00000000000..f3d60fcee26 --- /dev/null +++ b/addons/event/static/src/css/event.css @@ -0,0 +1,83 @@ +.oe_event_date{ + border-top-left-radius:3px; + border-top-right-radius:3px; + font-size: 48px; + height: auto; + font-weight: bold; + text-align: center; + margin-bottom:-7px; + color: #FFFFFF; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); + background-color: #8A89BA; +} +.oe_event_time{ + border-bottom-left-radius:3px; + border-bottom-right-radius:3px; + font-size: 12px; + text-align: center; + font-weight: bold; + color: #8A89BA; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); + background-color: #FFFFFF; +} +.oe_event_month_year{ + border-bottom-left-radius:3px; + border-bottom-right-radius:3px; + font-size: 12px; + text-align: center; + font-weight: bold; + color: #FFFFFF; + background-color: #8A89BA; +} +div.oe_fold_column{ + padding:0px !important; +} +.oe_event_button_subscribe{ + display: block; + border: 1px solid #404040; + color: #404040; + font-size: 10px; + text-align: center; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; +} +.oe_event_button_unsubscribe{ + display: block; + border: 1px solid #404040; + color: #FFFFFF; + background-color:#DC5F59; + font-size: 10px; + text-align: center; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + border-radius: 3px; +} +.oe_event_button_subscribe:hover { + cursor: pointer; + background-color: #DC5F59; +} +.oe_event_button_unsubscribe:hover { + cursor: pointer; + background-color: #404040; +} +.subscribe, .subscribe_button:hover span { + display: none; + background-color: #DC5F59; +} +.subscribe_button:hover .subscribe { + display: inline; + background-color: #DC5F59; +} +.unsubscribe, .unsubscribe_button:hover span { + display: none; +} +.unsubscribe_button:hover .unsubscribe { + display: inline; + background-color: #404040; +} + From 43c887aff7c7cd0b991decc23420589b1785d62e Mon Sep 17 00:00:00 2001 From: "Dharti Ratani (OpenERP)" Date: Wed, 7 Mar 2012 12:30:04 +0530 Subject: [PATCH 027/102] [IMP]changes in css for buttons bzr revid: dhr@tinyerp.com-20120307070004-wvmtqmqu8ybj0uz3 --- addons/event/event_view.xml | 11 ++-- addons/event/static/src/css/event.css | 92 ++++++++++++++++++--------- 2 files changed, 68 insertions(+), 35 deletions(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 5aacf7a2845..79e8193134c 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -189,7 +189,7 @@

@
Organized by
- + Only @@ -197,20 +197,19 @@ seat available. - +

diff --git a/addons/event/static/src/css/event.css b/addons/event/static/src/css/event.css index f3d60fcee26..61ea2da3be3 100644 --- a/addons/event/static/src/css/event.css +++ b/addons/event/static/src/css/event.css @@ -32,52 +32,86 @@ div.oe_fold_column{ padding:0px !important; } -.oe_event_button_subscribe{ - display: block; - border: 1px solid #404040; +.oe_event_button_subscribe { + display: inline-block; + border: 1px solid #ababab; color: #404040; - font-size: 10px; + font-size: 12px; + padding: 3px 10px; text-align: center; + -o-background-size: 100% 100%; + -moz-background-size: 100% 100%; + -webkit-background-size: auto auto !important; + background-size: 100% 100%; + background: #d8d8d8 none; + background: none, -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8)); + background: none, -webkit-linear-gradient(#efefef, #d8d8d8); + background: none, -moz-linear-gradient(#efefef, #d8d8d8); + background: none, -o-linear-gradient(top, #efefef, #d8d8d8); + background: none, -khtml-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8)); + background: -ms-linear-gradient(top, #efefef, #d8d8d8); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#efefef', endColorstr='#d8d8d8',GradientType=0 ); -moz-border-radius: 3px; -webkit-border-radius: 3px; -o-border-radius: 3px; -ms-border-radius: 3px; border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + -o-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5); + -webkit-font-smoothing: antialiased; + outline: none; } -.oe_event_button_unsubscribe{ - display: block; - border: 1px solid #404040; - color: #FFFFFF; - background-color:#DC5F59; - font-size: 10px; +.oe_event_button_unsubscribe { + display: inline-block; + border: 1px solid #ababab; + color: #404040; + font-size: 12px; + padding: 3px 10px; text-align: center; + -o-background-size: 100% 100%; + -moz-background-size: 100% 100%; + -webkit-background-size: auto auto !important; + background-size: 100% 100%; + background: #8A89BA none; + background: none, -webkit-gradient(linear, left top, left bottom, from(#8A89BA), to(#8A89BA)); + background: none, -webkit-linear-gradient(#8A89BA, #8A89BA); + background: none, -moz-linear-gradient(#8A89BA, #8A89BA); + background: none, -o-linear-gradient(top, #8A89BA, #8A89BA); + background: none, -khtml-gradient(linear, left top, left bottom, from(#8A89BA), to(#8A89BA)); + background: -ms-linear-gradient(top, #8A89BA, #8A89BA); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#8A89BA, endColorstr='#8A89BA',GradientType=0 ); -moz-border-radius: 3px; -webkit-border-radius: 3px; -o-border-radius: 3px; -ms-border-radius: 3px; border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + -o-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5); + -webkit-font-smoothing: antialiased; + outline: none; } .oe_event_button_subscribe:hover { cursor: pointer; - background-color: #DC5F59; + background-size: 100% 100%; + background: #DC5F59 none; } .oe_event_button_unsubscribe:hover { - cursor: pointer; - background-color: #404040; -} -.subscribe, .subscribe_button:hover span { - display: none; - background-color: #DC5F59; -} -.subscribe_button:hover .subscribe { - display: inline; - background-color: #DC5F59; -} -.unsubscribe, .unsubscribe_button:hover span { - display: none; -} -.unsubscribe_button:hover .unsubscribe { - display: inline; - background-color: #404040; -} + cursor: pointer; + background-size: 100% 100%; + background: #DC5F59 none; + } + .unsubscribe, .unsubscribe_button:hover span { + display: none; + background-color: #DC5F59 + } + .unsubscribe_button:hover .unsubscribe { + display: inline; + background-color: #DC5F59; + } From 456b417f0bd3650d145f9cb94ec8e6f13faf179a Mon Sep 17 00:00:00 2001 From: "Dharti Ratani (OpenERP)" Date: Wed, 7 Mar 2012 14:14:18 +0530 Subject: [PATCH 028/102] [IMP] bzr revid: dhr@tinyerp.com-20120307084418-uaemwhxf24f95fkw --- addons/event/event_view.xml | 9 ++++++--- addons/event/static/src/css/event.css | 18 +++++++++--------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 79e8193134c..21c2e020098 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -172,6 +172,7 @@ + @@ -187,14 +188,16 @@

+ Status:
@
Organized by
- Only + Only + No ticket available. - seats - seat available. + tickets + ticket available. diff --git a/addons/event/static/src/css/event.css b/addons/event/static/src/css/event.css index 61ea2da3be3..bd73d67f20a 100644 --- a/addons/event/static/src/css/event.css +++ b/addons/event/static/src/css/event.css @@ -66,7 +66,7 @@ div.oe_fold_column{ } .oe_event_button_unsubscribe { display: inline-block; - border: 1px solid #ababab; + border: 1px solid #AAA; color: #404040; font-size: 12px; padding: 3px 10px; @@ -75,14 +75,14 @@ div.oe_fold_column{ -moz-background-size: 100% 100%; -webkit-background-size: auto auto !important; background-size: 100% 100%; - background: #8A89BA none; - background: none, -webkit-gradient(linear, left top, left bottom, from(#8A89BA), to(#8A89BA)); - background: none, -webkit-linear-gradient(#8A89BA, #8A89BA); - background: none, -moz-linear-gradient(#8A89BA, #8A89BA); - background: none, -o-linear-gradient(top, #8A89BA, #8A89BA); - background: none, -khtml-gradient(linear, left top, left bottom, from(#8A89BA), to(#8A89BA)); - background: -ms-linear-gradient(top, #8A89BA, #8A89BA); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#8A89BA, endColorstr='#8A89BA',GradientType=0 ); + background: #AAA none; + background: none, -webkit-gradient(linear, left top, left bottom, from(#AAA), to(#AAA)); + background: none, -webkit-linear-gradient(#AAA, #AAA); + background: none, -moz-linear-gradient(#AAA, #AAA); + background: none, -o-linear-gradient(top, #AAA, #AAA); + background: none, -khtml-gradient(linear, left top, left bottom, from(#AAA), to(#AAA)); + background: -ms-linear-gradient(top, #AAA, #AAA); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#AAA, endColorstr='#AAA',GradientType=0 ); -moz-border-radius: 3px; -webkit-border-radius: 3px; -o-border-radius: 3px; From 5bc638ec841424fc23d48bd1b254cab4b06c80ac Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 7 Mar 2012 15:23:36 +0530 Subject: [PATCH 029/102] [IMP]:event:removed status from kanban view. bzr revid: apa@tinyerp.com-20120307095336-c2w2o2dg7i81m38c --- addons/event/event_view.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 21c2e020098..0b9c893b881 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -188,8 +188,7 @@

- Status:
- @
+ @
Organized by
Only No ticket available. From b28d2c0a00ab0390f5c67e0e7ee152c7e6ec3baf Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Wed, 7 Mar 2012 14:05:26 +0100 Subject: [PATCH 030/102] [IMP] multi-process: moved signaling sequences to registry creation instead of base.sql. bzr revid: vmt@openerp.com-20120307130526-d7e67h51ba4t9vwn --- openerp/addons/base/base.sql | 10 ---------- openerp/modules/registry.py | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/openerp/addons/base/base.sql b/openerp/addons/base/base.sql index 06a13d311a2..409ce81b285 100644 --- a/openerp/addons/base/base.sql +++ b/openerp/addons/base/base.sql @@ -347,16 +347,6 @@ CREATE TABLE ir_model_data ( res_id integer, primary key(id) ); --- Inter-process signaling: --- The `base_registry_signaling` sequence indicates the whole registry --- must be reloaded. --- The `base_cache_signaling sequence` indicates all caches must be --- invalidated (i.e. cleared). -CREATE SEQUENCE base_registry_signaling INCREMENT BY 1 START WITH 1; -SELECT nextval('base_registry_signaling'); -CREATE SEQUENCE base_cache_signaling INCREMENT BY 1 START WITH 1; -SELECT nextval('base_cache_signaling'); - --------------------------------- -- Users --------------------------------- diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py index bc04d455c6b..036f8f64a98 100644 --- a/openerp/modules/registry.py +++ b/openerp/modules/registry.py @@ -140,6 +140,23 @@ class Registry(object): def any_cache_cleared(self): return self._any_cache_cleared + @classmethod + def setup_multi_process_signaling(cls, cr): + if not openerp.multi_process: + return + + # Inter-process signaling: + # The `base_registry_signaling` sequence indicates the whole registry + # must be reloaded. + # The `base_cache_signaling sequence` indicates all caches must be + # invalidated (i.e. cleared). + cr.execute("""SELECT sequence_name FROM information_schema.sequences WHERE sequence_name='base_registry_signaling'""") + if not cr.fetchall(): + cr.execute("""CREATE SEQUENCE base_registry_signaling INCREMENT BY 1 START WITH 1""") + cr.execute("""SELECT nextval('base_registry_signaling')""") + cr.execute("""CREATE SEQUENCE base_cache_signaling INCREMENT BY 1 START WITH 1""") + cr.execute("""SELECT nextval('base_cache_signaling')""") + class RegistryManager(object): """ Model registries manager. @@ -189,6 +206,7 @@ class RegistryManager(object): cr = registry.db.cursor() try: + Registry.setup_multi_process_signaling(cr) registry.do_parent_store(cr) registry.get('ir.actions.report.xml').register_all(cr) cr.commit() From fd86097f0244bda0d608cdaceea8a785f81c3fdb Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Thu, 8 Mar 2012 09:45:54 +0100 Subject: [PATCH 031/102] [FIX] multi-process signaling: one query instead of two (based on chs idea). bzr revid: vmt@openerp.com-20120308084554-bnyz7gd7nlka3141 --- openerp/modules/registry.py | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py index 036f8f64a98..0eccc5c2f17 100644 --- a/openerp/modules/registry.py +++ b/openerp/modules/registry.py @@ -261,33 +261,28 @@ class RegistryManager(object): @classmethod def check_registry_signaling(cls, db_name): if openerp.multi_process and db_name in cls.registries: - # Check if the model registry must be reloaded (e.g. after the - # database has been updated by another process). registry = cls.get(db_name, pooljobs=False) cr = registry.db.cursor() - registry_reloaded = False try: - cr.execute('SELECT last_value FROM base_registry_signaling') - r = cr.fetchone()[0] + cr.execute(""" + SELECT base_registry_signaling.last_value, + base_cache_signaling.last_value + FROM base_registry_signaling, base_cache_signaling""") + r, c = cr.fetchone() + print ">>>", r, c + # Check if the model registry must be reloaded (e.g. after the + # database has been updated by another process). if registry.base_registry_signaling_sequence != r: _logger.info("Reloading the model registry after database signaling.") # Don't run the cron in the Gunicorn worker. registry = cls.new(db_name, pooljobs=False) registry.base_registry_signaling_sequence = r - registry_reloaded = True - finally: - cr.close() - - # Check if the model caches must be invalidated (e.g. after a write - # occured on another process). Don't clear right after a registry - # has been reload. - cr = openerp.sql_db.db_connect(db_name).cursor() - try: - cr.execute('SELECT last_value FROM base_cache_signaling') - r = cr.fetchone()[0] - if registry.base_cache_signaling_sequence != r and not registry_reloaded: + # Check if the model caches must be invalidated (e.g. after a write + # occured on another process). Don't clear right after a registry + # has been reload. + elif registry.base_cache_signaling_sequence != c: _logger.info("Invalidating all model caches after database signaling.") - registry.base_cache_signaling_sequence = r + registry.base_cache_signaling_sequence = c registry.clear_caches() registry.reset_any_cache_cleared() finally: From 4bfa0d316e3a5424a3edcd062c08d1b1aa4fa1c5 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 9 Mar 2012 10:35:08 +0100 Subject: [PATCH 032/102] [FIX] removed spurious print statement. bzr revid: vmt@openerp.com-20120309093508-23r979ow6035k6ro --- gunicorn.conf.py | 5 +++-- openerp/modules/registry.py | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gunicorn.conf.py b/gunicorn.conf.py index 2400aa9fccd..75ca0511c39 100644 --- a/gunicorn.conf.py +++ b/gunicorn.conf.py @@ -21,7 +21,7 @@ pidfile = '.gunicorn.pid' # Gunicorn recommends 2-4 x number_of_cpu_cores, but # you'll want to vary this a bit to find the best for your # particular work load. -workers = 4 +workers = 10 # Some application-wide initialization is needed. on_starting = openerp.wsgi.core.on_starting @@ -32,7 +32,7 @@ post_request = openerp.wsgi.core.post_request # big reports for example timeout = 240 -max_requests = 2000 +#max_requests = 2000 # Equivalent of --load command-line option openerp.conf.server_wide_modules = ['web'] @@ -43,6 +43,7 @@ conf = openerp.tools.config # Path to the OpenERP Addons repository (comma-separated for # multiple locations) conf['addons_path'] = '/home/openerp/addons/trunk,/home/openerp/web/trunk/addons' +conf['addons_path'] = '/home/thu/repos/addons/trunk,/home/thu/repos/web/6.1-blocking-create-db/addons' # Optional database config if not using local socket #conf['db_name'] = 'mycompany' diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py index 0eccc5c2f17..8dbdbb4a75e 100644 --- a/openerp/modules/registry.py +++ b/openerp/modules/registry.py @@ -269,7 +269,6 @@ class RegistryManager(object): base_cache_signaling.last_value FROM base_registry_signaling, base_cache_signaling""") r, c = cr.fetchone() - print ">>>", r, c # Check if the model registry must be reloaded (e.g. after the # database has been updated by another process). if registry.base_registry_signaling_sequence != r: From 2bc799a1f611e19cb57e2d39bbd35e2d2d927c5c Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 9 Mar 2012 10:42:09 +0100 Subject: [PATCH 033/102] [FIX] typo. bzr revid: vmt@openerp.com-20120309094209-8x1gqa548uv438z6 --- openerp/modules/registry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py index 8dbdbb4a75e..de34aefe149 100644 --- a/openerp/modules/registry.py +++ b/openerp/modules/registry.py @@ -294,7 +294,7 @@ class RegistryManager(object): # through the database to other processes. registry = cls.get(db_name, pooljobs=False) if registry.any_cache_cleared(): - _logger.info("At least one model cache has been cleare, signaling through the database.") + _logger.info("At least one model cache has been cleared, signaling through the database.") cr = registry.db.cursor() r = 1 try: From f1f2332cc217bd9bf62610c4a771918b1f73ea8d Mon Sep 17 00:00:00 2001 From: Synconics Technologies Date: Sun, 11 Mar 2012 15:55:01 +0530 Subject: [PATCH 034/102] [FIX] Added tooltip to the calendar events. lp bug: https://launchpad.net/bugs/949817 fixed bzr revid: contact@synconics.com-20120311102501-wdpox1dcwsrfggx5 --- .../lib/dhtmlxScheduler/codebase/dhtmlxscheduler_debug.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/web_calendar/static/lib/dhtmlxScheduler/codebase/dhtmlxscheduler_debug.js b/addons/web_calendar/static/lib/dhtmlxScheduler/codebase/dhtmlxscheduler_debug.js index 6b2e961051c..30384b83b5c 100644 --- a/addons/web_calendar/static/lib/dhtmlxScheduler/codebase/dhtmlxscheduler_debug.js +++ b/addons/web_calendar/static/lib/dhtmlxScheduler/codebase/dhtmlxscheduler_debug.js @@ -3408,8 +3408,10 @@ scheduler.render_event_bar=function(ev){ var bg_color = (ev.color?("background-color:"+ev.color+";"):""); var color = (ev.textColor?("color:"+ev.textColor+";"):""); + + var title_line = scheduler.templates.event_bar_text(ev.start_date,ev.end_date,ev); - var html='

'; + var html='
'; if (ev._timed) html+=scheduler.templates.event_bar_date(ev.start_date,ev.end_date,ev); From 2da2d8ba5e4aa4cff4dff5313f03a28b062974e4 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Mon, 12 Mar 2012 18:28:12 +0530 Subject: [PATCH 035/102] [FIX] Week,Day mode should able to save/delete event. lp bug: https://launchpad.net/bugs/946378 fixed bzr revid: vda@tinyerp.com-20120312125812-k6swcoskhn134ba2 --- addons/web_calendar/static/src/js/calendar.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/web_calendar/static/src/js/calendar.js b/addons/web_calendar/static/src/js/calendar.js index fd5531b6271..912fa4d6e4d 100644 --- a/addons/web_calendar/static/src/js/calendar.js +++ b/addons/web_calendar/static/src/js/calendar.js @@ -339,7 +339,7 @@ openerp.web_calendar.CalendarView = openerp.web.View.extend({ }); } }, - do_edit_event: function(event_id) { + do_edit_event: function(event_id, evt) { var self = this; var index = this.dataset.get_id_index(event_id); if (index !== null) { @@ -363,6 +363,8 @@ openerp.web_calendar.CalendarView = openerp.web.View.extend({ // I tried scheduler.editStop(event_id); but doesn't work either // After losing one hour on this, here's a quick and very dirty fix : $(".dhx_cancel_btn").click(); + } else { + scheduler.editStop($(evt.target).hasClass('icon_save')); } }, get_event_data: function(event_obj) { From 6c4ccf9bd5cd87ace847ba95c65bb963493d3300 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 13 Mar 2012 09:57:43 +0100 Subject: [PATCH 036/102] [DOC] Added merge proposal documentation bzr revid: tde@openerp.com-20120313085743-oa9jrbvnqwklpnlb --- doc/api/user_img_specs.rst | 9 +++++++++ doc/index.rst.inc | 8 ++++++++ 2 files changed, 17 insertions(+) create mode 100644 doc/api/user_img_specs.rst diff --git a/doc/api/user_img_specs.rst b/doc/api/user_img_specs.rst new file mode 100644 index 00000000000..db15201ba0a --- /dev/null +++ b/doc/api/user_img_specs.rst @@ -0,0 +1,9 @@ +User avatar +=========== + +This revision adds an avatar for users. This replace the use of gravatar to emulate avatars, such as used in tasks kanban view. Two fields are added to res.users model: +- avatar, binary image +- avatar_mini, an automatically computed reduced version of the avatar +User avatar has to be used everywhere an image depicting users is likely to be used, by using the avatar_mini field. + +Avatar choice has been added to the users form view, as well as in Preferences. diff --git a/doc/index.rst.inc b/doc/index.rst.inc index 05c4a53640b..d208bf82eb1 100644 --- a/doc/index.rst.inc +++ b/doc/index.rst.inc @@ -6,3 +6,11 @@ OpenERP Server :maxdepth: 1 test-framework + +New feature merges +++++++++++++++++++ + +.. toctree:: + :maxdepth: 1 + + api/user_img_specs From 0790cbbfd781cc61cfd89d89ba20bd4328bcefbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 13 Mar 2012 10:16:51 +0100 Subject: [PATCH 037/102] [IMP] res.users: code cleaning bzr revid: tde@openerp.com-20120313091651-6jvvuljjrlpjsto6 --- openerp/addons/base/res/res_users.py | 37 ++++++++++++++-------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index 7936ec2f5c9..25d7ce9d9f9 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -203,25 +203,6 @@ class users(osv.osv): self.write(cr, uid, ids, {'groups_id': [(4, extended_group_id)]}, context=context) return True - def _get_avatar_mini(self, cr, uid, ids, name, args, context=None): - result = {} - for obj in self.browse(cr, uid, ids, context=context): - if not obj.avatar: - result[obj.id] = False - continue - - image_stream = io.BytesIO(obj.avatar.decode('base64')) - img = Image.open(image_stream) - img.thumbnail((180, 150), Image.ANTIALIAS) - img_stream = StringIO.StringIO() - img.save(img_stream, "JPEG") - result[obj.id] = img_stream.getvalue().encode('base64') - return result - - def _set_avatar_mini(self, cr, uid, id, name, value, args, context=None): - self.write(cr, uid, [id], {'avatar': value}, context=context) - return True - def _get_interface_type(self, cr, uid, ids, name, args, context=None): """Implementation of 'view' function field getter, returns the type of interface of the users. @param field_name: Name of the field @@ -233,6 +214,24 @@ class users(osv.osv): extended_users = group_obj.read(cr, uid, extended_group_id, ['users'], context=context)['users'] return dict(zip(ids, ['extended' if user in extended_users else 'simple' for user in ids])) + def _set_avatar_mini(self, cr, uid, id, name, value, args, context=None): + return self.write(cr, uid, [id], {'avatar': value}, context=context) + + def _get_avatar_mini(self, cr, uid, ids, name, args, context=None): + result = {} + for user in self.browse(cr, uid, ids, context=context): + if not user.avatar: + result[user.id] = False + continue + + image_stream = io.BytesIO(user.avatar.decode('base64')) + img = Image.open(image_stream) + img.thumbnail((180, 150), Image.ANTIALIAS) + img_stream = StringIO.StringIO() + img.save(img_stream, "JPEG") + result[user.id] = img_stream.getvalue().encode('base64') + return result + def _set_new_password(self, cr, uid, id, name, value, args, context=None): if value is False: # Do not update the password if no value is provided, ignore silently. From 9f2a5f2d039ace4c02f018888b35fdb6ead0e030 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 13 Mar 2012 11:29:16 +0100 Subject: [PATCH 038/102] [IMP] Improved default avatar (now takes randomly between 6 avatars); cleaned code about avatar and avatar_mini management; fixed bug when creating a new user where the chosen avatar was not saved bzr revid: tde@openerp.com-20120313102916-w5rdtwco72xe8m7n --- openerp/addons/base/base_update.xml | 2 +- openerp/addons/base/images/photo.png | Bin 2685 -> 0 bytes openerp/addons/base/res/res_users.py | 34 +++++++++++++++++---------- 3 files changed, 23 insertions(+), 13 deletions(-) delete mode 100644 openerp/addons/base/images/photo.png diff --git a/openerp/addons/base/base_update.xml b/openerp/addons/base/base_update.xml index 0eef0a0f4cb..5d6f214c0a9 100644 --- a/openerp/addons/base/base_update.xml +++ b/openerp/addons/base/base_update.xml @@ -130,7 +130,7 @@ - + diff --git a/openerp/addons/base/images/photo.png b/openerp/addons/base/images/photo.png deleted file mode 100644 index 1d124127b2bf7115fdb38ab2fc136fdf5b531237..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2685 zcmV-@3WD{CP)@cEZEfxEk3asno3<^Q<_tXZ%rjptisIYOxmYO`k|dEhj$y6UT5BSrwW26~{@7!W z4W?ytDg>T*;)!H-cJ@bQSsn&Z0w~fnt+Ff&aU4?|$JSb#0!W>6rYy_fJo@OPzn|DJ z05uIIb8~Y)b0#_|B70 zJ{e7Ff1*YF^wUrGwAPOR820=9t-)Y$WoBk(n}`Y#aUle8&Y`L*4WQCm2j?7#h#{i6 zg9i`(1i;TeH3G(%FL>|6)vH$rhYugVHZwERUt3!nZES2*Q55mw;-Xk<5kd&gIUbEh z6hg2egbYBZEX#wF*q@kywf6Iyo15;ThaM^x78XX<+T#BE?{`Y6aQ^&xxp3hEhQlH5 zzWeTwBngZ$l~QW7y}douS{EUNxu>3b%1#nqC(Q!~XJ=>q+}vEPl&Y0dL2Dhf)^hy# zaXESNWIK)ku!wkOt_Oob{pzc)*2Wl)qUb&VZ{I0^i54+4ck?`FrIaV4pp*(qDG(8e z2qMz_^dyj~AjVOioUL(A3-#+%< zW70e{5dmXNIXgSs0^4&;`~4Up0l;w_OQ+L86h&7i!Ena}UU}t}Kp!}8z+-|13`{_v z)9L)9uIsMWS_6ng#E6J)35)@6!IOw+5wXqq$a|j<(d(ZIffFZAlp%z-8@EXTq(l?} z(DYFocdPczCjc@LNvf*ijg5^rKNSK15JLFva5&r+kz7PNA%ujPt%xXQMkCaSX68sl zvJgVf%rP@Refsoi{?rJZI(6zT0KX0)WX#+RA#_3rQ3JLG4rW%&Y?wJ=<~)Rud+$G3 zUS9s^B=#pJ001XXp1k0_-)81cLm&+yjL!lwvkDYTG71kKD8LZGH^LkNj;E-lM43L*SyDz>Mgq^hbv)OBr`Icwf>q6dp?Y)Qho*FVHgb;0SZ`*#q z|F>z_1*Sv*0HP>*>(Zr5)_ZT8J-=$+JT)_+opa{>_un^JmQ9qr#@p1&Dp{6Y9F0bb znGFEN%!-;M&|LM(%8FiCSfIgR@XoaCPK^LF*M|-rqLq~uSZmed;v(AJW>r;KSy{pS z{52$uKwXTS$ zBqB#dfrz+~KtxVNN+K$=Ec^bn>`qLeD2n;@_4V)Od9DCl6Okb^S0WOaSpZ1WF98hF zH0{sL&CM1?@x7|5mL|1-$1b$Bwe`iSs=jWmJ=E*AzTX~Y#U>Clu`pCD$25SWm$?+3Q-hMk|b6{5^HTINs<`=Ga}LjkO4@Td8Cwj z%{lkGJkPhLN?>bi>;BPb^i8ex=h8G~A}WkABM}*Dtp`LjAfgd7kF?fRUDsYjxX~>{ zL|SX5wKmO}Aq9{(;5*HBJQI-=fFYs_BJxs_ByUYjV0Cr%2LQg(>2ykK?NDnyP)ZGn zXb51Wlq!g*1W*I;L=^CmD~u~Ae021*jl?3-9&mC1xrlT`q(elBi2OB8(_i5hu60WS ztE;O&^xmK7^?HLONp=A25Ya$uJ=9v4L{y82BO)&%Ohnv({y3%W@k}>FGGm;6>ynAHTy2+xSDF`7F!~?7CMfBDweeV87q*b-UebH!9dOk(FinwJ3_n7&8Je z5|M(L9T9nMwBy#Ua;HRCDb>1FAtJ-ZK5MNX-0Q)c2&}BESZ01$Ywd}s5|IkK)5;nY$%*;k96|b+aKYSyB>lX3LFTYG#mL0t7uDf&; zMTz&mCnBDRED;sn`7dIFTU6bA^iB>d+$9uKR;htYe(Muk%*L9>$=zL)m2sbvMgPm z=i~8woWx$qjBbz?cq^8fO0r0PuI63008IC zom1ZXdqm_b_uY5jgG)JyIk0%8R2U2f-WcOs0z|}(ueSN&#t=JRy;e#oYKpYoAp<(+rlSwC~;%uQR0TW%%Jo;|CUmzQ-}mWx$YJ+QR2 zbR^5N12Z!-y>7Q_j4|zgpPR_hZl47Jm|2bu)lO}0f{*M4VbXJ;@NTwGgQ z`&X~mdvpK({a0Uj;RV?X_-zr`Yi0oGG);A<)1k|kFVA}K=S3tn#>CFKn3 avatar6, choose randomly + random.seed() + avatar_path = openerp.modules.get_module_resource('base', 'images', 'avatar%d.jpg' % random.randint(0, 6)) + return self._avatar_resize(cr, uid, open(avatar_path, 'rb').read().encode('base64')) + _defaults = { 'password' : '', 'context_lang': 'en_US', - 'avatar': _get_avatar, + 'avatar_mini': _get_avatar, 'active' : True, 'menu_id': _get_menu, 'company_id': _get_company, From 14b71b0aeb3e19fb4af63139e63acd4740d8b2fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 13 Mar 2012 11:31:46 +0100 Subject: [PATCH 039/102] [ADD] Added files for new default avatars. bzr revid: tde@openerp.com-20120313103146-6b6yloob7pkxrscq --- openerp/addons/base/images/avatar0.jpg | Bin 0 -> 9916 bytes openerp/addons/base/images/avatar1.jpg | Bin 0 -> 12294 bytes openerp/addons/base/images/avatar2.jpg | Bin 0 -> 12549 bytes openerp/addons/base/images/avatar3.jpg | Bin 0 -> 12161 bytes openerp/addons/base/images/avatar4.jpg | Bin 0 -> 11921 bytes openerp/addons/base/images/avatar5.jpg | Bin 0 -> 11789 bytes openerp/addons/base/images/avatar6.jpg | Bin 0 -> 8128 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 openerp/addons/base/images/avatar0.jpg create mode 100644 openerp/addons/base/images/avatar1.jpg create mode 100644 openerp/addons/base/images/avatar2.jpg create mode 100644 openerp/addons/base/images/avatar3.jpg create mode 100644 openerp/addons/base/images/avatar4.jpg create mode 100644 openerp/addons/base/images/avatar5.jpg create mode 100644 openerp/addons/base/images/avatar6.jpg diff --git a/openerp/addons/base/images/avatar0.jpg b/openerp/addons/base/images/avatar0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1078135d040e0b31959d17d02a77677030c09782 GIT binary patch literal 9916 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 IICB4g0PvdiKL7v# literal 0 HcmV?d00001 diff --git a/openerp/addons/base/images/avatar1.jpg b/openerp/addons/base/images/avatar1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4746731da71afa466e96ccfb0111936a59ee6f35 GIT binary patch literal 12294 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 R>f8B$bMF89EBI5Y{{g?``yBuP literal 0 HcmV?d00001 diff --git a/openerp/addons/base/images/avatar2.jpg b/openerp/addons/base/images/avatar2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..58a84c3d499a7d7b750c5e76a040b57127fec05c GIT binary patch literal 12549 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 N;^+VQqs&6@{{S`JK=l9s literal 0 HcmV?d00001 diff --git a/openerp/addons/base/images/avatar5.jpg b/openerp/addons/base/images/avatar5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ee341becb756a5394828e021ea2da5a9d31f687f GIT binary patch literal 11789 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 literal 0 HcmV?d00001 From 8454553a5b443beda165a30d8d9b1d96e5148d4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 13 Mar 2012 11:41:55 +0100 Subject: [PATCH 040/102] [DOC] Updated merge documentation. bzr revid: tde@openerp.com-20120313104155-221i8zfzfs03yenq --- doc/api/user_img_specs.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/api/user_img_specs.rst b/doc/api/user_img_specs.rst index db15201ba0a..d2bce64f142 100644 --- a/doc/api/user_img_specs.rst +++ b/doc/api/user_img_specs.rst @@ -1,9 +1,9 @@ User avatar =========== -This revision adds an avatar for users. This replace the use of gravatar to emulate avatars, such as used in tasks kanban view. Two fields are added to res.users model: -- avatar, binary image -- avatar_mini, an automatically computed reduced version of the avatar +This revision adds an avatar for users. This replaces the use of gravatar to emulate avatars, used in views like the tasks kanban view. Two fields have been added to the res.users model: + - avatar, a binary field holding the image + - avatar_mini, a binary field holding an automatically resized version of the avatar. Dimensions of the resized avatar are 180x150. User avatar has to be used everywhere an image depicting users is likely to be used, by using the avatar_mini field. -Avatar choice has been added to the users form view, as well as in Preferences. +An avatar field has been added to the users form view, as well as in Preferences. When creating a new user, a default avatar is chosen among 6 possible default images. From 4c41a2994addcc1706f7e9e613b18ddb7bb96743 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 13 Mar 2012 12:14:18 +0100 Subject: [PATCH 041/102] [IMP] Avatar mini field gets automatically recomputed to avoid screwing the display when choosing a new one. bzr revid: tde@openerp.com-20120313111418-fsrtwhcp0eesg0aq --- openerp/addons/base/res/res_users.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index f5fba485b02..c98c3ab8f5a 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -218,7 +218,7 @@ class users(osv.osv): return dict(zip(ids, ['extended' if user in extended_users else 'simple' for user in ids])) def onchange_avatar_mini(self, cr, uid, ids, value, context=None): - return {'value': {'avatar': value } } + return {'value': {'avatar': value, 'avatar_mini': self._avatar_resize(cr, uid, value) } } def _set_avatar_mini(self, cr, uid, id, name, value, args, context=None): return self.write(cr, uid, [id], {'avatar': value}, context=context) From ce5483e4c447494f92b9b42852a37c93e3785ff6 Mon Sep 17 00:00:00 2001 From: "Purnendu Singh (OpenERP)" Date: Fri, 16 Mar 2012 12:29:27 +0530 Subject: [PATCH 042/102] [IMP] mail: add a feature to call _hook_message_sent method of the related module with will trigger the workflow and set state accordingly bzr revid: psi@tinyerp.com-20120316065927-1m4ns7gpe5bwr4pk --- addons/mail/mail_message.py | 4 +++- addons/mail/wizard/mail_compose_message.py | 5 +++-- addons/mail/wizard/mail_compose_message_view.xml | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py index b41f1213791..66d8441e564 100644 --- a/addons/mail/mail_message.py +++ b/addons/mail/mail_message.py @@ -517,7 +517,9 @@ class mail_message(osv.osv): message.write({'state':'sent', 'message_id': res}) else: message.write({'state':'exception'}) - + model_pool = self.pool.get(message.model) + if hasattr(model_pool, '_hook_message_sent'): + model_pool._hook_message_sent(cr, uid, message.res_id, context=context) # if auto_delete=True then delete that sent messages as well as attachments message.refresh() if message.state == 'sent' and message.auto_delete: diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index e68bd70a739..2010d7d0f5a 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -100,6 +100,7 @@ class mail_compose_message(osv.osv_memory): if not result.get('email_from'): current_user = self.pool.get('res.users').browse(cr, uid, uid, context) result['email_from'] = current_user.user_email or False + result['subtype'] = 'html' return result _columns = { @@ -158,8 +159,9 @@ class mail_compose_message(osv.osv_memory): if not (subject.startswith('Re:') or subject.startswith(re_prefix)): subject = "%s %s" % (re_prefix, subject) result.update({ - 'subtype' : 'plain', # default to the text version due to quoting + 'subtype' : message_data.subtype or 'plain', # default to the text version due to quoting 'body_text' : body, + 'body_html' : message_data.body_html, 'subject' : subject, 'attachment_ids' : [], 'model' : message_data.model or False, @@ -238,7 +240,6 @@ class mail_compose_message(osv.osv_memory): subtype=mail.subtype, headers=headers, context=context) # in normal mode, we send the email immediately, as the user expects us to (delay should be sufficiently small) mail_message.send(cr, uid, [msg_id], context=context) - return {'type': 'ir.actions.act_window_close'} def render_template(self, cr, uid, template, model, res_id, context=None): diff --git a/addons/mail/wizard/mail_compose_message_view.xml b/addons/mail/wizard/mail_compose_message_view.xml index d559d679c8b..3a44b040139 100644 --- a/addons/mail/wizard/mail_compose_message_view.xml +++ b/addons/mail/wizard/mail_compose_message_view.xml @@ -23,6 +23,7 @@ + From 00f7fbe5504f7a1b2783072f4e7b7f542fc08017 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Tue, 20 Mar 2012 15:52:17 +0530 Subject: [PATCH 043/102] [IMP]:event:remove mouse hover for subscribe button. bzr revid: apa@tinyerp.com-20120320102217-80icy0kj5ronpfq4 --- addons/event/static/src/css/event.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/event/static/src/css/event.css b/addons/event/static/src/css/event.css index bd73d67f20a..4a54d6cbe9e 100644 --- a/addons/event/static/src/css/event.css +++ b/addons/event/static/src/css/event.css @@ -99,7 +99,7 @@ div.oe_fold_column{ .oe_event_button_subscribe:hover { cursor: pointer; background-size: 100% 100%; - background: #DC5F59 none; + /*background: #DC5F59 none;*/ } .oe_event_button_unsubscribe:hover { cursor: pointer; From 4606fe32b7729583228124f8a29f6718eeef9002 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Tue, 20 Mar 2012 15:54:54 +0530 Subject: [PATCH 044/102] [IMP]help changed. bzr revid: kbh@tinyerp.com-20120320102454-4q2hvlbg2rsouj1r --- addons/event/event_view.xml | 6 +++--- addons/event/static/src/css/event.css | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 0b9c893b881..6f80299f02c 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -265,9 +265,9 @@ + name="upcoming" + domain="[('date_begin','>=', time.strftime('%%Y-%%m-%%d 00:00:00'))]" + help="Up Coming Events form today" /> diff --git a/addons/event/static/src/css/event.css b/addons/event/static/src/css/event.css index bd73d67f20a..4a0a286140d 100644 --- a/addons/event/static/src/css/event.css +++ b/addons/event/static/src/css/event.css @@ -99,7 +99,6 @@ div.oe_fold_column{ .oe_event_button_subscribe:hover { cursor: pointer; background-size: 100% 100%; - background: #DC5F59 none; } .oe_event_button_unsubscribe:hover { cursor: pointer; From 57c3460598edf0467755cdcc1c46f2b50936ab50 Mon Sep 17 00:00:00 2001 From: "Khushboo Bhatt (Open ERP)" Date: Tue, 20 Mar 2012 16:14:34 +0530 Subject: [PATCH 045/102] [IMP] bzr revid: kbh@tinyerp.com-20120320104434-1tkt040qzvukmsgc --- addons/event/event_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 6f80299f02c..c766201805e 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -267,7 +267,7 @@ + help="Up coming events form today" /> From 7f982abc8581b60a45727fb60922b3ab37a3f4dc Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Tue, 20 Mar 2012 16:41:58 +0530 Subject: [PATCH 046/102] [IMP] bzr revid: apa@tinyerp.com-20120320111158-4w449qdomaa29oqa --- addons/event/event_view.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index c766201805e..a6c00934fa5 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -265,9 +265,9 @@ + name="upcoming" + domain="[('date_begin','>=', time.strftime('%%Y-%%m-%%d 00:00:00'))]" + help="Up coming events form today" /> From 15249d4ce1eed0db3b0fd94006ddf5c3a6174707 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 21 Mar 2012 10:51:26 +0530 Subject: [PATCH 047/102] [IMP] bzr revid: apa@tinyerp.com-20120321052126-j5p0itn5ij5gdnia --- addons/event/event.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/addons/event/event.py b/addons/event/event.py index 1b92b995239..340719e99a8 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -216,10 +216,15 @@ class event_event(osv.osv): def subscribe_to_event(self,cr,uid,ids,context=None): register_pool = self.pool.get('event.registration') + user_pool = self.pool.get('res.users') curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) + user = user_pool.browse(cr,uid,uid,context) + print user.user_email if not curr_reg_id: register_pool.create(cr, uid, {'state':'open', 'event_id':ids[0], + 'email':user.user_email, + 'name':user.name, 'subscribe':True, }) else: @@ -234,7 +239,7 @@ class event_event(osv.osv): register_pool = self.pool.get('event.registration') curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) if curr_reg_id: - register_pool.write(cr, uid, curr_reg_id,{'state':'draft', + register_pool.write(cr, uid, curr_reg_id,{'state':'cancel', 'event_id':ids[0], 'subscribe':False }) From 94c68ff9382b5a9ead79e2f00240861a68b3f9cc Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 21 Mar 2012 11:13:56 +0530 Subject: [PATCH 048/102] [IMP] bzr revid: apa@tinyerp.com-20120321054356-t3t96j0kunsi4924 --- addons/event/event.py | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/addons/event/event.py b/addons/event/event.py index 340719e99a8..82b06bc8d48 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -221,17 +221,20 @@ class event_event(osv.osv): user = user_pool.browse(cr,uid,uid,context) print user.user_email if not curr_reg_id: - register_pool.create(cr, uid, {'state':'open', - 'event_id':ids[0], - 'email':user.user_email, - 'name':user.name, - 'subscribe':True, - }) + curr_reg_id = register_pool.create(cr, uid, {'event_id':ids[0], + 'email':user.user_email, + 'name':user.name, + 'subscribe':True, + }) + + else: register_pool.write(cr, uid, curr_reg_id,{'state':'open','subscribe':True, 'event_id':ids[0], }) - + if isinstance(curr_reg_id, (int, long)): + curr_reg_id = [curr_reg_id] + register_pool.confirm_registration(cr,uid,curr_reg_id,context) self.write(cr,uid,ids,{'subscribe':True}) return True @@ -239,11 +242,13 @@ class event_event(osv.osv): register_pool = self.pool.get('event.registration') curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) if curr_reg_id: - register_pool.write(cr, uid, curr_reg_id,{'state':'cancel', - 'event_id':ids[0], + if isinstance(curr_reg_id, (int, long)): + curr_reg_id = [curr_reg_id] + register_pool.write(cr, uid, curr_reg_id,{'event_id':ids[0], 'subscribe':False }) - self.write(cr,uid,ids,{'subscribe':False}) + register_pool.button_reg_cancel(cr,uid,curr_reg_id,context) + self.write(cr,uid,ids,{'subscribe':False}) return True def _check_closing_date(self, cr, uid, ids, context=None): From a1f79bde2a20981cec417e3ce3cd91ffdeece4b5 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 21 Mar 2012 12:34:08 +0530 Subject: [PATCH 049/102] [IMP] bzr revid: apa@tinyerp.com-20120321070408-gy02ke9mzh6xzkl0 --- addons/event/event.py | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/event/event.py b/addons/event/event.py index 82b06bc8d48..7d2c18a01bc 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -219,7 +219,6 @@ class event_event(osv.osv): user_pool = self.pool.get('res.users') curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) user = user_pool.browse(cr,uid,uid,context) - print user.user_email if not curr_reg_id: curr_reg_id = register_pool.create(cr, uid, {'event_id':ids[0], 'email':user.user_email, From 7f8b27131b658b2936e26777d996e5f2b96012ea Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 21 Mar 2012 15:33:57 +0530 Subject: [PATCH 050/102] [IMP] bzr revid: apa@tinyerp.com-20120321100357-0u42rph6fovo3cth --- addons/event/event_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index a6c00934fa5..338c2dd9ba8 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -267,7 +267,7 @@ + help="Up coming events from today" /> From 0d59afa455ef124252a865b22cbd82b30191bd8a Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Wed, 21 Mar 2012 18:24:58 +0530 Subject: [PATCH 051/102] [IMP] bzr revid: apa@tinyerp.com-20120321125458-4qu5opgtlogtpq2h --- addons/event/event.py | 11 ++++++----- addons/event/event_demo.xml | 3 --- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/addons/event/event.py b/addons/event/event.py index 7d2c18a01bc..baa14de9bbe 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -221,9 +221,10 @@ class event_event(osv.osv): user = user_pool.browse(cr,uid,uid,context) if not curr_reg_id: curr_reg_id = register_pool.create(cr, uid, {'event_id':ids[0], - 'email':user.user_email, - 'name':user.name, - 'subscribe':True, + 'email':user.user_email, + 'name':user.name, + 'user_id':uid, + 'subscribe':True, }) @@ -293,7 +294,7 @@ class event_registration(osv.osv): 'log_ids': fields.one2many('mail.message', 'res_id', 'Logs', domain=[('email_from', '=', False),('model','=',_name)]), 'event_end_date': fields.related('event_id','date_end', type='datetime', string="Event End Date", readonly=True), 'event_begin_date': fields.related('event_id', 'date_begin', type='datetime', string="Event Start Date", readonly=True), - 'user_id': fields.many2one('res.users', 'Responsible', states={'done': [('readonly', True)]}), + 'user_id': fields.many2one('res.users', 'Attendee', states={'done': [('readonly', True)]}), 'company_id': fields.related('event_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True, states={'draft':[('readonly',False)]}), 'state': fields.selection([('draft', 'Unconfirmed'), ('open', 'Confirmed'), @@ -306,7 +307,7 @@ class event_registration(osv.osv): _defaults = { 'nb_register': 1, 'state': 'draft', - 'user_id': lambda self, cr, uid, ctx: uid, + #'user_id': lambda self, cr, uid, ctx: uid, } _order = 'name, create_date desc' diff --git a/addons/event/event_demo.xml b/addons/event/event_demo.xml index 0dfbbf6de18..5b4654342c9 100644 --- a/addons/event/event_demo.xml +++ b/addons/event/event_demo.xml @@ -32,7 +32,6 @@ Concert of Bon Jovi - 500 @@ -42,7 +41,6 @@ - 50 350 @@ -52,7 +50,6 @@ 200 - From ef409154e6ad620c287c7bd3971993328742d497 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 22 Mar 2012 11:15:23 +0530 Subject: [PATCH 052/102] [IMP] bzr revid: apa@tinyerp.com-20120322054523-650x1m4vynflsfii --- addons/event/event_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 338c2dd9ba8..48fa1b9cc8b 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -264,7 +264,7 @@ - From 9f137659c4ca5405a0a3f42fc8e606822bb44ce7 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Thu, 22 Mar 2012 15:23:52 +0530 Subject: [PATCH 053/102] [FIX]:ValueError: No such external ID currently defined in the system: event.event_type_4 bzr revid: apa@tinyerp.com-20120322095352-duinua5esddclxw5 --- addons/event_sale/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/event_sale/__openerp__.py b/addons/event_sale/__openerp__.py index f92a9eb5617..d8f689986e2 100644 --- a/addons/event_sale/__openerp__.py +++ b/addons/event_sale/__openerp__.py @@ -37,8 +37,8 @@ It defines a new kind of service products that offers you the possibility to cho 'depends': ['event','sale','sale_crm'], 'update_xml': [ 'event_sale_view.xml', - 'event_demo.xml', ], + 'demo_xml': ['event_demo.xml'], 'test':['test/confirm.yml'], 'installable': True, 'active': False, From 4123078a82b58a3a3e067549998667f4f9de5e1c Mon Sep 17 00:00:00 2001 From: Xavier ALT Date: Thu, 22 Mar 2012 12:35:12 +0100 Subject: [PATCH 054/102] [FIX] web_calendar: ensure dhtmlx minical does not set offsetHeight < 0px, IE<9 raise 'Invalid argument.' breaking the view bzr revid: xal@openerp.com-20120322113512-092n348lrueg2ave --- .../lib/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_minical.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/web_calendar/static/lib/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_minical.js b/addons/web_calendar/static/lib/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_minical.js index 5bf564980f9..b7b0ba1d21d 100644 --- a/addons/web_calendar/static/lib/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_minical.js +++ b/addons/web_calendar/static/lib/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_minical.js @@ -13,7 +13,7 @@ scheduler._render_calendar=function(b,c,a,d){var e=scheduler.templates,f=this._c g.innerHTML="
"+l.innerHTML+"
";g.childNodes[0].innerHTML=this.templates.calendar_month(c);if(a.navigation){var h=document.createElement("DIV");h.className="dhx_cal_prev_button";h.style.cssText="left:1px;top:2px;position:absolute;";h.innerHTML=this._mini_cal_arrows[0];g.firstChild.appendChild(h);h.onclick=function(){scheduler.updateCalendar(g,scheduler.date.add(g._date,-1,"month"));scheduler._date.getMonth()== g._date.getMonth()&&scheduler._date.getFullYear()==g._date.getFullYear()&&scheduler._markCalendarCurrentDate(g)};h=document.createElement("DIV");h.className="dhx_cal_next_button";h.style.cssText="left:auto; right:1px;top:2px;position:absolute;";h.innerHTML=this._mini_cal_arrows[1];g.firstChild.appendChild(h);h.onclick=function(){scheduler.updateCalendar(g,scheduler.date.add(g._date,1,"month"));scheduler._date.getMonth()==g._date.getMonth()&&scheduler._date.getFullYear()==g._date.getFullYear()&&scheduler._markCalendarCurrentDate(g)}}g._date= new Date(c);g.week_start=(c.getDay()-(this.config.start_on_monday?1:0)+7)%7;var u=this.date.week_start(c);this._reset_month_scale(g.childNodes[2],c,u);for(var j=g.childNodes[2].firstChild.rows,q=j.length;q<6;q++){var t=j[j.length-1];j[0].parentNode.appendChild(t.cloneNode(!0));for(var r=parseInt(t.childNodes[t.childNodes.length-1].childNodes[0].innerHTML),r=r<10?r:0,s=0;s500))b=this._def_count.firstChild;if(b&&(b.onclick=null,b.innerHTML="",b.parentNode&&b.parentNode.removeChild(b),this._def_count))this._def_count.style.top="-1000px"};scheduler.isCalendarVisible=function(){return this._def_count&&parseInt(this._def_count.style.top,10)>0?this._def_count:!1}; scheduler.attachEvent("onTemplatesReady",function(){dhtmlxEvent(document.body,"click",function(){scheduler.destroyCalendar()})});scheduler.templates.calendar_time=scheduler.date.date_to_str("%d-%m-%Y"); scheduler.form_blocks.calendar_time={render:function(){var b="",c=scheduler.config,a=this.date.date_part(new Date);c.first_hour&&a.setHours(c.first_hour);b+=" ";var f=scheduler.config.full_day;return"
"+ From 3dbea7ec59865cb1d9034c61d0e698ae9fd8f0df Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Fri, 23 Mar 2012 10:25:55 +0530 Subject: [PATCH 055/102] [IMP] bzr revid: apa@tinyerp.com-20120323045555-qab1wjnq4dbymwbq --- addons/event/event_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 8032bd7a504..4b4f2b1e44d 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -299,7 +299,7 @@ event.event form kanban,calendar,tree,form,graph - {"search_default_upcoming":1,"search_default_section_id": section_id} + {"search_default_upcoming":1} Event is the low level object used by meeting and others documents that should be synchronized with mobile devices or calendar applications through caldav. Most of the users should work in the Calendar menu, and not in the list of events. From d48b3bdb6b5370af71efe1cc2557eaea68282581 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 23 Mar 2012 10:08:21 +0100 Subject: [PATCH 056/102] [IMP] Improved code: renamed avatar->avatar_stored (stored in database); avatar_mini->avatar (interface field taht must be used); removed unnecessary comments; added help string on added fields to help understanding how the functionality works. bzr revid: tde@openerp.com-20120323090821-rse7y3i1qpp8tbky --- openerp/addons/base/base_update.xml | 4 ++-- openerp/addons/base/res/res_users.py | 27 ++++++++++++--------------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/openerp/addons/base/base_update.xml b/openerp/addons/base/base_update.xml index 5d6f214c0a9..85d92106fc8 100644 --- a/openerp/addons/base/base_update.xml +++ b/openerp/addons/base/base_update.xml @@ -94,7 +94,7 @@ - + @@ -130,7 +130,7 @@ - + diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index c98c3ab8f5a..55e251b9af0 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -35,10 +35,8 @@ from tools.translate import _ import openerp import openerp.exceptions -# for avatar resizing import io, StringIO from PIL import Image -# for default avatar choice import random _logger = logging.getLogger(__name__) @@ -217,11 +215,11 @@ class users(osv.osv): extended_users = group_obj.read(cr, uid, extended_group_id, ['users'], context=context)['users'] return dict(zip(ids, ['extended' if user in extended_users else 'simple' for user in ids])) - def onchange_avatar_mini(self, cr, uid, ids, value, context=None): - return {'value': {'avatar': value, 'avatar_mini': self._avatar_resize(cr, uid, value) } } + def onchange_avatar(self, cr, uid, ids, value, context=None): + return {'value': {'avatar_stored': value, 'avatar': self._avatar_resize(cr, uid, value, context=context) } } - def _set_avatar_mini(self, cr, uid, id, name, value, args, context=None): - return self.write(cr, uid, [id], {'avatar': value}, context=context) + def _set_avatar(self, cr, uid, id, name, value, args, context=None): + return self.write(cr, uid, [id], {'avatar_stored': value}, context=context) def _avatar_resize(self, cr, uid, avatar, context=None): image_stream = io.BytesIO(avatar.decode('base64')) @@ -231,13 +229,13 @@ class users(osv.osv): img.save(img_stream, "JPEG") return img_stream.getvalue().encode('base64') - def _get_avatar_mini(self, cr, uid, ids, name, args, context=None): + def _get_avatar(self, cr, uid, ids, name, args, context=None): result = {} for user in self.browse(cr, uid, ids, context=context): if not user.avatar: result[user.id] = False else: - result[user.id] = self._avatar_resize(cr, uid, user.avatar) + result[user.id] = self._avatar_resize(cr, uid, user.avatar_stored) return result def _set_new_password(self, cr, uid, id, name, value, args, context=None): @@ -269,11 +267,11 @@ class users(osv.osv): "otherwise leave empty. After a change of password, the user has to login again."), 'user_email': fields.char('Email', size=64), 'signature': fields.text('Signature', size=64), - 'avatar': fields.binary('User Avatar'), - 'avatar_mini': fields.function(_get_avatar_mini, fnct_inv=_set_avatar_mini, string='User Avatar Mini', type="binary", + 'avatar_stored': fields.binary('Stored avatar', help="This field holds the image used as avatar for the user. The avatar field is used as an interface to access this field. The image is base64 encoded, and PIL-supported."), + 'avatar': fields.function(_get_avatar, fnct_inv=_set_avatar, string='Avatar', type="binary", store = { - 'res.users': (lambda self, cr, uid, ids, c={}: ids, ['avatar'], 10), - }), + 'res.users': (lambda self, cr, uid, ids, c={}: ids, ['avatar_stored'], 10), + }, help="Image used as avatar for the user. It is automatically resized as a 180x150 px image."), 'active': fields.boolean('Active'), 'action_id': fields.many2one('ir.actions.actions', 'Home Action', help="If specified, this action will be opened at logon for this user, in addition to the standard menu."), 'menu_id': fields.many2one('ir.actions.actions', 'Menu Action', help="If specified, the action will replace the standard menu for this user."), @@ -386,15 +384,14 @@ class users(osv.osv): return result def _get_avatar(self, cr, uid, context=None): - # default avatar file name: avatar0 -> avatar6, choose randomly - random.seed() + # default avatar file name: avatar0 -> avatar6.jpg, choose randomly avatar_path = openerp.modules.get_module_resource('base', 'images', 'avatar%d.jpg' % random.randint(0, 6)) return self._avatar_resize(cr, uid, open(avatar_path, 'rb').read().encode('base64')) _defaults = { 'password' : '', 'context_lang': 'en_US', - 'avatar_mini': _get_avatar, + 'avatar': _get_avatar, 'active' : True, 'menu_id': _get_menu, 'company_id': _get_company, From d7be1e92d03f26241a1084c4faaccce66fc9aa89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 23 Mar 2012 10:15:08 +0100 Subject: [PATCH 057/102] [DOC] Updated doc to match last revision. bzr revid: tde@openerp.com-20120323091508-2m01y3hj9vw49ofk --- doc/api/user_img_specs.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/api/user_img_specs.rst b/doc/api/user_img_specs.rst index d2bce64f142..ea1d39c26a8 100644 --- a/doc/api/user_img_specs.rst +++ b/doc/api/user_img_specs.rst @@ -2,8 +2,8 @@ User avatar =========== This revision adds an avatar for users. This replaces the use of gravatar to emulate avatars, used in views like the tasks kanban view. Two fields have been added to the res.users model: - - avatar, a binary field holding the image - - avatar_mini, a binary field holding an automatically resized version of the avatar. Dimensions of the resized avatar are 180x150. -User avatar has to be used everywhere an image depicting users is likely to be used, by using the avatar_mini field. + - avatar_stored, a binary field holding the image. It is base-64 encoded, and PIL-supported. + - avatar, a function binary field holding an automatically resized version of the avatar. Dimensions of the resized avatar are 180x150. This field is used as an inteface to get and set the user avatar. When changing this field in a view, the new image is automatically resized, and stored in the avatar_stored field. Note that the value is stored on another field, because otherwise it would imply to write on the function field, which currently using OpenERP 6.1 can lead to issues. +User avatar has to be used everywhere an image depicting users is likely to be used, by using the avatar field. An avatar field has been added to the users form view, as well as in Preferences. When creating a new user, a default avatar is chosen among 6 possible default images. From 6e0643868e8f245fd923d5d010901a2cefe0553a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 23 Mar 2012 10:17:47 +0100 Subject: [PATCH 058/102] [FIX] Forgot to update a field name. bzr revid: tde@openerp.com-20120323091747-i2dhjhy5witysd7s --- openerp/addons/base/res/res_users.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index 55e251b9af0..1c3dda89878 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -222,7 +222,7 @@ class users(osv.osv): return self.write(cr, uid, [id], {'avatar_stored': value}, context=context) def _avatar_resize(self, cr, uid, avatar, context=None): - image_stream = io.BytesIO(avatar.decode('base64')) + image_stream = io.BytesIO(avatar_stored.decode('base64')) img = Image.open(image_stream) img.thumbnail((180, 150), Image.ANTIALIAS) img_stream = StringIO.StringIO() From 775a3bca89d7eea4cb6f5b8289b1943caa96be25 Mon Sep 17 00:00:00 2001 From: "olt@tinyerp.com" <> Date: Fri, 23 Mar 2012 10:55:11 +0100 Subject: [PATCH 059/102] [FIX] fixes AttributeError NoneType object has no attribute is_transient (lp:908875) lp bug: https://launchpad.net/bugs/908875 fixed bzr revid: olt@tinyerp.com-20120323095511-3uswje6nqnzciqtm --- openerp/addons/base/ir/ir_model.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py index fdce0d7c483..3d3ec12638a 100644 --- a/openerp/addons/base/ir/ir_model.py +++ b/openerp/addons/base/ir/ir_model.py @@ -67,7 +67,10 @@ class ir_model(osv.osv): models = self.browse(cr, uid, ids, context=context) res = dict.fromkeys(ids) for model in models: - res[model.id] = self.pool.get(model.model).is_transient() + if self.pool.get(model.model): + res[model.id] = self.pool.get(model.model).is_transient() + else: + _logger.error('Missing model %s' % (model.model, )) return res def _search_osv_memory(self, cr, uid, model, name, domain, context=None): @@ -508,7 +511,9 @@ class ir_model_access(osv.osv): model_name = model # TransientModel records have no access rights, only an implicit access rule - if self.pool.get(model_name).is_transient(): + if not (self.pool.get(model_name)): + _logger.error('Missing model %s' % (model_name, )) + elif self.pool.get(model_name).is_transient(): return True # We check if a specific rule exists From 0e95e0cf92bef425511eb26d7dbbc1d5488a2dd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 23 Mar 2012 11:05:13 +0100 Subject: [PATCH 060/102] [FIX] Fixed the last fix. Also cleaned a bit the code. bzr revid: tde@openerp.com-20120323100513-m2n5n3jtxz8zo1yl --- openerp/addons/base/res/res_users.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index 6f28881b412..3827e5ef8c5 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -219,13 +219,13 @@ class users(osv.osv): return dict(zip(ids, ['extended' if user in extended_users else 'simple' for user in ids])) def onchange_avatar(self, cr, uid, ids, value, context=None): - return {'value': {'avatar_stored': value, 'avatar': self._avatar_resize(cr, uid, value, context=context) } } + return {'value': {'avatar_stored': self._avatar_resize(cr, uid, value, context=context), 'avatar': self._avatar_resize(cr, uid, value, context=context) } } def _set_avatar(self, cr, uid, id, name, value, args, context=None): return self.write(cr, uid, [id], {'avatar_stored': value}, context=context) def _avatar_resize(self, cr, uid, avatar, context=None): - image_stream = io.BytesIO(avatar_stored.decode('base64')) + image_stream = io.BytesIO(avatar.decode('base64')) img = Image.open(image_stream) img.thumbnail((180, 150), Image.ANTIALIAS) img_stream = StringIO.StringIO() @@ -233,11 +233,9 @@ class users(osv.osv): return img_stream.getvalue().encode('base64') def _get_avatar(self, cr, uid, ids, name, args, context=None): - result = {} + result = dict.fromkeys(ids, False) for user in self.browse(cr, uid, ids, context=context): - if not user.avatar: - result[user.id] = False - else: + if user.avatar_stored: result[user.id] = self._avatar_resize(cr, uid, user.avatar_stored) return result From cab93f96739a782b2775923921b1bf85c3f877ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 23 Mar 2012 11:14:14 +0100 Subject: [PATCH 061/102] [IMP] Added height and width parameters to the resize method. Propagated context. bzr revid: tde@openerp.com-20120323101414-28xbjkfhk03f5whe --- openerp/addons/base/res/res_users.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index 3827e5ef8c5..e8e0e68b8d9 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -219,15 +219,15 @@ class users(osv.osv): return dict(zip(ids, ['extended' if user in extended_users else 'simple' for user in ids])) def onchange_avatar(self, cr, uid, ids, value, context=None): - return {'value': {'avatar_stored': self._avatar_resize(cr, uid, value, context=context), 'avatar': self._avatar_resize(cr, uid, value, context=context) } } + return {'value': {'avatar_stored': self._avatar_resize(cr, uid, value, 360, 300, context=context), 'avatar': self._avatar_resize(cr, uid, value, context=context) } } def _set_avatar(self, cr, uid, id, name, value, args, context=None): return self.write(cr, uid, [id], {'avatar_stored': value}, context=context) - def _avatar_resize(self, cr, uid, avatar, context=None): + def _avatar_resize(self, cr, uid, avatar, height=180, width=150, context=None): image_stream = io.BytesIO(avatar.decode('base64')) img = Image.open(image_stream) - img.thumbnail((180, 150), Image.ANTIALIAS) + img.thumbnail((height, width), Image.ANTIALIAS) img_stream = StringIO.StringIO() img.save(img_stream, "JPEG") return img_stream.getvalue().encode('base64') @@ -236,7 +236,7 @@ class users(osv.osv): result = dict.fromkeys(ids, False) for user in self.browse(cr, uid, ids, context=context): if user.avatar_stored: - result[user.id] = self._avatar_resize(cr, uid, user.avatar_stored) + result[user.id] = self._avatar_resize(cr, uid, user.avatar_stored, context=context) return result def _set_new_password(self, cr, uid, id, name, value, args, context=None): @@ -387,7 +387,7 @@ class users(osv.osv): def _get_avatar(self, cr, uid, context=None): # default avatar file name: avatar0 -> avatar6.jpg, choose randomly avatar_path = openerp.modules.get_module_resource('base', 'images', 'avatar%d.jpg' % random.randint(0, 6)) - return self._avatar_resize(cr, uid, open(avatar_path, 'rb').read().encode('base64')) + return self._avatar_resize(cr, uid, open(avatar_path, 'rb').read().encode('base64'), context=context) _defaults = { 'password' : '', From d67e232806183343d743266782894f4d865af17e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 23 Mar 2012 11:32:30 +0100 Subject: [PATCH 062/102] [IMP] Improved comments and doc. Note that now avatar_stored stores a bigger version of the avatar, in case a bigger image must be used. bzr revid: tde@openerp.com-20120323103230-lcpbl1e9qhidivz7 --- doc/api/user_img_specs.rst | 4 ++-- openerp/addons/base/res/res_users.py | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/api/user_img_specs.rst b/doc/api/user_img_specs.rst index ea1d39c26a8..5a5b84422e0 100644 --- a/doc/api/user_img_specs.rst +++ b/doc/api/user_img_specs.rst @@ -2,8 +2,8 @@ User avatar =========== This revision adds an avatar for users. This replaces the use of gravatar to emulate avatars, used in views like the tasks kanban view. Two fields have been added to the res.users model: - - avatar_stored, a binary field holding the image. It is base-64 encoded, and PIL-supported. - - avatar, a function binary field holding an automatically resized version of the avatar. Dimensions of the resized avatar are 180x150. This field is used as an inteface to get and set the user avatar. When changing this field in a view, the new image is automatically resized, and stored in the avatar_stored field. Note that the value is stored on another field, because otherwise it would imply to write on the function field, which currently using OpenERP 6.1 can lead to issues. + - avatar_stored, a binary field holding the image. It is base-64 encoded, and PIL-supported. Images stored are resized to 540x450 px, to limitate the binary field size. + - avatar, a function binary field holding an automatically resized version of the avatar_stored field. Dimensions of the resized avatar are 180x150. This field is used as an inteface to get and set the user avatar. When changing this field in a view, the new image is automatically resized, and stored in the avatar_stored field. Note that the value is stored on another field, because otherwise it would imply to write on the function field, which currently using OpenERP 6.1 can lead to issues. User avatar has to be used everywhere an image depicting users is likely to be used, by using the avatar field. An avatar field has been added to the users form view, as well as in Preferences. When creating a new user, a default avatar is chosen among 6 possible default images. diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index e8e0e68b8d9..d08aca91bb1 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -219,10 +219,10 @@ class users(osv.osv): return dict(zip(ids, ['extended' if user in extended_users else 'simple' for user in ids])) def onchange_avatar(self, cr, uid, ids, value, context=None): - return {'value': {'avatar_stored': self._avatar_resize(cr, uid, value, 360, 300, context=context), 'avatar': self._avatar_resize(cr, uid, value, context=context) } } + return {'value': {'avatar_stored': self._avatar_resize(cr, uid, value, 540, 450, context=context), 'avatar': self._avatar_resize(cr, uid, value, context=context) } } def _set_avatar(self, cr, uid, id, name, value, args, context=None): - return self.write(cr, uid, [id], {'avatar_stored': value}, context=context) + return self.write(cr, uid, [id], {'avatar_stored': self._avatar_resize(cr, uid, value, 540, 450, context=context)}, context=context) def _avatar_resize(self, cr, uid, avatar, height=180, width=150, context=None): image_stream = io.BytesIO(avatar.decode('base64')) @@ -268,11 +268,11 @@ class users(osv.osv): "otherwise leave empty. After a change of password, the user has to login again."), 'user_email': fields.char('Email', size=64), 'signature': fields.text('Signature', size=64), - 'avatar_stored': fields.binary('Stored avatar', help="This field holds the image used as avatar for the user. The avatar field is used as an interface to access this field. The image is base64 encoded, and PIL-supported."), + 'avatar_stored': fields.binary('Stored avatar', help="This field holds the image used as avatar for the user. The avatar field is used as an interface to access this field. The image is base64 encoded, and PIL-supported. It is stored as a 540x450 px image, incase a bigger image must be used."), 'avatar': fields.function(_get_avatar, fnct_inv=_set_avatar, string='Avatar', type="binary", store = { 'res.users': (lambda self, cr, uid, ids, c={}: ids, ['avatar_stored'], 10), - }, help="Image used as avatar for the user. It is automatically resized as a 180x150 px image."), + }, help="Image used as avatar for the user. It is automatically resized as a 180x150 px image. This field serves as an interface to the avatar_stored field."), 'active': fields.boolean('Active'), 'action_id': fields.many2one('ir.actions.actions', 'Home Action', help="If specified, this action will be opened at logon for this user, in addition to the standard menu."), 'menu_id': fields.many2one('ir.actions.actions', 'Menu Action', help="If specified, the action will replace the standard menu for this user."), From 10eba844ba69769ef5efafa13f00862c82e4d743 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 23 Mar 2012 12:05:21 +0100 Subject: [PATCH 063/102] [IMP] Reordered imports (alaphabetical order); avatar_stored->avatar_big, clearer field name bzr revid: tde@openerp.com-20120323110521-rna7hh5alr0as04c --- openerp/addons/base/res/res_users.py | 37 ++++++++++++++-------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index d08aca91bb1..5c52497219a 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -25,22 +25,21 @@ from functools import partial import pytz -import netsvc -import pooler -import tools -from osv import fields,osv -from osv.orm import browse_record -from service import security -from tools.translate import _ -import openerp -import openerp.exceptions +import io, StringIO from lxml import etree from lxml.builder import E - - -import io, StringIO +import netsvc +import openerp +import openerp.exceptions +from osv import fields,osv +from osv.orm import browse_record from PIL import Image +import pooler import random +from service import security +import tools +from tools.translate import _ + _logger = logging.getLogger(__name__) @@ -219,10 +218,10 @@ class users(osv.osv): return dict(zip(ids, ['extended' if user in extended_users else 'simple' for user in ids])) def onchange_avatar(self, cr, uid, ids, value, context=None): - return {'value': {'avatar_stored': self._avatar_resize(cr, uid, value, 540, 450, context=context), 'avatar': self._avatar_resize(cr, uid, value, context=context) } } + return {'value': {'avatar_big': self._avatar_resize(cr, uid, value, 540, 450, context=context), 'avatar': self._avatar_resize(cr, uid, value, context=context) } } def _set_avatar(self, cr, uid, id, name, value, args, context=None): - return self.write(cr, uid, [id], {'avatar_stored': self._avatar_resize(cr, uid, value, 540, 450, context=context)}, context=context) + return self.write(cr, uid, [id], {'avatar_big': self._avatar_resize(cr, uid, value, 540, 450, context=context)}, context=context) def _avatar_resize(self, cr, uid, avatar, height=180, width=150, context=None): image_stream = io.BytesIO(avatar.decode('base64')) @@ -235,8 +234,8 @@ class users(osv.osv): def _get_avatar(self, cr, uid, ids, name, args, context=None): result = dict.fromkeys(ids, False) for user in self.browse(cr, uid, ids, context=context): - if user.avatar_stored: - result[user.id] = self._avatar_resize(cr, uid, user.avatar_stored, context=context) + if user.avatar_big: + result[user.id] = self._avatar_resize(cr, uid, user.avatar_big, context=context) return result def _set_new_password(self, cr, uid, id, name, value, args, context=None): @@ -268,11 +267,11 @@ class users(osv.osv): "otherwise leave empty. After a change of password, the user has to login again."), 'user_email': fields.char('Email', size=64), 'signature': fields.text('Signature', size=64), - 'avatar_stored': fields.binary('Stored avatar', help="This field holds the image used as avatar for the user. The avatar field is used as an interface to access this field. The image is base64 encoded, and PIL-supported. It is stored as a 540x450 px image, incase a bigger image must be used."), + 'avatar_big': fields.binary('Big-sized avatar', help="This field holds the image used as avatar for the user. The avatar field is used as an interface to access this field. The image is base64 encoded, and PIL-supported. It is stored as a 540x450 px image, in case a bigger image must be used."), 'avatar': fields.function(_get_avatar, fnct_inv=_set_avatar, string='Avatar', type="binary", store = { - 'res.users': (lambda self, cr, uid, ids, c={}: ids, ['avatar_stored'], 10), - }, help="Image used as avatar for the user. It is automatically resized as a 180x150 px image. This field serves as an interface to the avatar_stored field."), + 'res.users': (lambda self, cr, uid, ids, c={}: ids, ['avatar_big'], 10), + }, help="Image used as avatar for the user. It is automatically resized as a 180x150 px image. This field serves as an interface to the avatar_big field."), 'active': fields.boolean('Active'), 'action_id': fields.many2one('ir.actions.actions', 'Home Action', help="If specified, this action will be opened at logon for this user, in addition to the standard menu."), 'menu_id': fields.many2one('ir.actions.actions', 'Menu Action', help="If specified, the action will replace the standard menu for this user."), From 4a2b5a72e5889fc0511414f2f9760facc3348d13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 23 Mar 2012 12:10:29 +0100 Subject: [PATCH 064/102] [DOC] Updated doc. bzr revid: tde@openerp.com-20120323111029-6h8je23ywv61123s --- doc/api/user_img_specs.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/api/user_img_specs.rst b/doc/api/user_img_specs.rst index 5a5b84422e0..4ee97999aca 100644 --- a/doc/api/user_img_specs.rst +++ b/doc/api/user_img_specs.rst @@ -2,8 +2,8 @@ User avatar =========== This revision adds an avatar for users. This replaces the use of gravatar to emulate avatars, used in views like the tasks kanban view. Two fields have been added to the res.users model: - - avatar_stored, a binary field holding the image. It is base-64 encoded, and PIL-supported. Images stored are resized to 540x450 px, to limitate the binary field size. - - avatar, a function binary field holding an automatically resized version of the avatar_stored field. Dimensions of the resized avatar are 180x150. This field is used as an inteface to get and set the user avatar. When changing this field in a view, the new image is automatically resized, and stored in the avatar_stored field. Note that the value is stored on another field, because otherwise it would imply to write on the function field, which currently using OpenERP 6.1 can lead to issues. -User avatar has to be used everywhere an image depicting users is likely to be used, by using the avatar field. + - avatar_big, a binary field holding the image. It is base-64 encoded, and PIL-supported. Images stored are resized to 540x450 px, to limitate the binary field size. + - avatar, a function binary field holding an automatically resized version of the avatar_big field. It is also base-64 encoded, and PIL-supported. Dimensions of the resized avatar are 180x150. This field is used as an inteface to get and set the user avatar. +When changing the avatar through the avatar function field, the new image is automatically resized to 540x450, and stored in the avatar_big field. This triggers the function field, that will compute a 180x150 resized version of the image. An avatar field has been added to the users form view, as well as in Preferences. When creating a new user, a default avatar is chosen among 6 possible default images. From 6c306856fb785b8ecf117394eabd87dd95be602c Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 23 Mar 2012 12:24:45 +0100 Subject: [PATCH 065/102] [IMP] signaling: call also digits_change() when caches are cleared. bzr revid: vmt@openerp.com-20120323112445-5jskbvjlh0x2muf8 --- openerp/modules/registry.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py index de34aefe149..9ec3e6f456a 100644 --- a/openerp/modules/registry.py +++ b/openerp/modules/registry.py @@ -284,6 +284,13 @@ class RegistryManager(object): registry.base_cache_signaling_sequence = c registry.clear_caches() registry.reset_any_cache_cleared() + # One possible reason caches have been invalidated is the + # use of decimal_precision.write(), in which case we need + # to refresh fields.float columns. + for model in registry.models.values(): + for column in model._columns.values(): + if hasattr(column, 'digits_change'): + column.digits_change(cr) finally: cr.close() From 4ed2002e6971db385b1389858bfa7136e2d682bc Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 23 Mar 2012 14:19:32 +0100 Subject: [PATCH 066/102] [REV] reverted local (and mistakenly commited) changes to gunicorn.conf.py. bzr revid: vmt@openerp.com-20120323131932-s0gu0abmmdsk5fv3 --- gunicorn.conf.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gunicorn.conf.py b/gunicorn.conf.py index 75ca0511c39..2400aa9fccd 100644 --- a/gunicorn.conf.py +++ b/gunicorn.conf.py @@ -21,7 +21,7 @@ pidfile = '.gunicorn.pid' # Gunicorn recommends 2-4 x number_of_cpu_cores, but # you'll want to vary this a bit to find the best for your # particular work load. -workers = 10 +workers = 4 # Some application-wide initialization is needed. on_starting = openerp.wsgi.core.on_starting @@ -32,7 +32,7 @@ post_request = openerp.wsgi.core.post_request # big reports for example timeout = 240 -#max_requests = 2000 +max_requests = 2000 # Equivalent of --load command-line option openerp.conf.server_wide_modules = ['web'] @@ -43,7 +43,6 @@ conf = openerp.tools.config # Path to the OpenERP Addons repository (comma-separated for # multiple locations) conf['addons_path'] = '/home/openerp/addons/trunk,/home/openerp/web/trunk/addons' -conf['addons_path'] = '/home/thu/repos/addons/trunk,/home/thu/repos/web/6.1-blocking-create-db/addons' # Optional database config if not using local socket #conf['db_name'] = 'mycompany' From 31e186687e443767fe2f2a11c3d31a412ad35ef1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 23 Mar 2012 14:32:46 +0100 Subject: [PATCH 067/102] [FIX] Fixed crash when clearing avatar in form view. However, clearing means a new default avatar will be chosen. bzr revid: tde@openerp.com-20120323133246-78z4fszbqcvir16h --- openerp/addons/base/res/res_users.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index 5c52497219a..65e514fcb31 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -218,9 +218,13 @@ class users(osv.osv): return dict(zip(ids, ['extended' if user in extended_users else 'simple' for user in ids])) def onchange_avatar(self, cr, uid, ids, value, context=None): - return {'value': {'avatar_big': self._avatar_resize(cr, uid, value, 540, 450, context=context), 'avatar': self._avatar_resize(cr, uid, value, context=context) } } + if not value: + return {'value': {'avatar_big': value, 'avatar': value} } + return {'value': {'avatar_big': self._avatar_resize(cr, uid, value, 540, 450, context=context), 'avatar': self._avatar_resize(cr, uid, value, context=context)} } def _set_avatar(self, cr, uid, id, name, value, args, context=None): + if not value: + return {'value': {'avatar_big': value, 'avatar': value} } return self.write(cr, uid, [id], {'avatar_big': self._avatar_resize(cr, uid, value, 540, 450, context=context)}, context=context) def _avatar_resize(self, cr, uid, avatar, height=180, width=150, context=None): From 14609fa2edc5da5f455c9deae31cc9b412614cb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 23 Mar 2012 15:02:51 +0100 Subject: [PATCH 068/102] [FIX] Fix of the last fix. Should avoid fixing on Friday. bzr revid: tde@openerp.com-20120323140251-wki6runit0juqlwg --- openerp/addons/base/res/res_users.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index 65e514fcb31..b8a4306b137 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -224,8 +224,10 @@ class users(osv.osv): def _set_avatar(self, cr, uid, id, name, value, args, context=None): if not value: - return {'value': {'avatar_big': value, 'avatar': value} } - return self.write(cr, uid, [id], {'avatar_big': self._avatar_resize(cr, uid, value, 540, 450, context=context)}, context=context) + vals = {'avatar_big': value} + else: + vals = {'avatar_big': self._avatar_resize(cr, uid, value, 540, 450, context=context)} + return self.write(cr, uid, [id], vals, context=context) def _avatar_resize(self, cr, uid, avatar, height=180, width=150, context=None): image_stream = io.BytesIO(avatar.decode('base64')) From 15296eb4586fd987937c58e989d758c83279f6a7 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Mon, 26 Mar 2012 16:01:01 +0530 Subject: [PATCH 069/102] [IMP]:improved code bzr revid: apa@tinyerp.com-20120326103101-bupq777xei3h8ilv --- addons/event/event.py | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/addons/event/event.py b/addons/event/event.py index baa14de9bbe..1bdbade2e46 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -154,9 +154,9 @@ class event_event(osv.osv): return res def _subscribe_fnc(self, cr, uid, ids, fields, args, context=None): - """Get Confirm or uncofirm register value. + """Get Subscribe or Unsubscribe registration value. @param ids: List of Event registration type's id - @param fields: List of function fields(register_current and register_prospect). + @param fields: List of function fields(subscribe). @param context: A standard dictionary for contextual values @return: Dictionary of function fields value. """ @@ -167,10 +167,8 @@ class event_event(osv.osv): if not curr_reg_id:res[event.id] = False if curr_reg_id: for reg in register_pool.browse(cr,uid,curr_reg_id,context=context): - if not reg.subscribe: - res[event.id]=False - else: - res[event.id]=True + res[event.id] = False + if reg.subscribe:res[event.id]= True return res _columns = { @@ -229,26 +227,18 @@ class event_event(osv.osv): else: - register_pool.write(cr, uid, curr_reg_id,{'state':'open','subscribe':True, - 'event_id':ids[0], - }) - if isinstance(curr_reg_id, (int, long)): - curr_reg_id = [curr_reg_id] + register_pool.write(cr, uid, curr_reg_id,{'subscribe':True}) + if isinstance(curr_reg_id, (int, long)):curr_reg_id = [curr_reg_id] register_pool.confirm_registration(cr,uid,curr_reg_id,context) - self.write(cr,uid,ids,{'subscribe':True}) return True def unsubscribe_to_event(self,cr,uid,ids,context=None): register_pool = self.pool.get('event.registration') curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) if curr_reg_id: - if isinstance(curr_reg_id, (int, long)): - curr_reg_id = [curr_reg_id] - register_pool.write(cr, uid, curr_reg_id,{'event_id':ids[0], - 'subscribe':False - }) + if isinstance(curr_reg_id, (int, long)):curr_reg_id = [curr_reg_id] + register_pool.write(cr, uid, curr_reg_id,{'subscribe':False}) register_pool.button_reg_cancel(cr,uid,curr_reg_id,context) - self.write(cr,uid,ids,{'subscribe':False}) return True def _check_closing_date(self, cr, uid, ids, context=None): From ef54b4df2e50e479e61cd69a47b569120260730d Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Mon, 26 Mar 2012 16:02:12 +0530 Subject: [PATCH 070/102] [IMP]:improved code bzr revid: apa@tinyerp.com-20120326103212-hdqu509fxbocjvil --- addons/event/event.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/addons/event/event.py b/addons/event/event.py index 1bdbade2e46..6cd42843194 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -222,10 +222,7 @@ class event_event(osv.osv): 'email':user.user_email, 'name':user.name, 'user_id':uid, - 'subscribe':True, - }) - - + 'subscribe':True}) else: register_pool.write(cr, uid, curr_reg_id,{'subscribe':True}) if isinstance(curr_reg_id, (int, long)):curr_reg_id = [curr_reg_id] From 035e9c9ee081afba130735aca356a02b131b8c8d Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Mon, 26 Mar 2012 16:15:31 +0530 Subject: [PATCH 071/102] [ADD]:added event share module bzr revid: apa@tinyerp.com-20120326104531-nzsg2lyy6up8ost7 --- addons/event_share/__init__.py | 24 ++++++++++++ addons/event_share/__openerp__.py | 35 +++++++++++++++++ addons/event_share/wizard/__init__.py | 24 ++++++++++++ addons/event_share/wizard/wizard_share.py | 47 +++++++++++++++++++++++ 4 files changed, 130 insertions(+) create mode 100644 addons/event_share/__init__.py create mode 100644 addons/event_share/__openerp__.py create mode 100644 addons/event_share/wizard/__init__.py create mode 100644 addons/event_share/wizard/wizard_share.py diff --git a/addons/event_share/__init__.py b/addons/event_share/__init__.py new file mode 100644 index 00000000000..8dbeda71145 --- /dev/null +++ b/addons/event_share/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# 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 . +# +############################################################################## + +import wizard +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/event_share/__openerp__.py b/addons/event_share/__openerp__.py new file mode 100644 index 00000000000..f6ad583364a --- /dev/null +++ b/addons/event_share/__openerp__.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# 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 . +# +############################################################################## + + +{ + 'name': 'Events Share', + 'version': '0.1', + 'category': 'Tools', + 'complexity': "easy", + 'description': """ """, + 'author': 'OpenERP SA', + 'depends': ['event','share'], + 'installable': True, + #'application': True, + 'auto_install': False, +} +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/event_share/wizard/__init__.py b/addons/event_share/wizard/__init__.py new file mode 100644 index 00000000000..d62c6170854 --- /dev/null +++ b/addons/event_share/wizard/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# 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 . +# +############################################################################## + +import wizard_share +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + diff --git a/addons/event_share/wizard/wizard_share.py b/addons/event_share/wizard/wizard_share.py new file mode 100644 index 00000000000..02b5ae26009 --- /dev/null +++ b/addons/event_share/wizard/wizard_share.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2011 OpenERP S.A (). +# +# 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 . +# +############################################################################## + +from osv import osv, fields +from tools.translate import _ + +UID_ROOT = 1 +EVENT_ACCESS = ('perm_read', 'perm_write', 'perm_create') + +class share_wizard_event(osv.osv_memory): + """Inherited share wizard to automatically create appropriate + menus in the selected portal upon sharing with a portal group.""" + _inherit = "share.wizard" + + def _add_access_rights_for_share_group(self, cr, uid, group_id, mode, fields_relations, context=None): + print "Calling _add_access_rights_for_share_group.....!!!" + """Adds access rights to group_id on object models referenced in ``fields_relations``, + intersecting with access rights of current user to avoid granting too much rights + """ + res = super(share_wizard_event, self)._add_access_rights_for_share_group(cr, uid, group_id, mode, fields_relations, context=context) + access_model = self.pool.get('ir.model.access') + access_ids = access_model.search(cr,uid,[('group_id','=',group_id)],context = context) + access_model.write(cr, uid, access_ids, {'perm_read': True, 'perm_write': True}) + return res + +share_wizard_event() + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file From afe3ea9e46c6ba85b9e03d1452b7e7dcaf64fea0 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Mon, 26 Mar 2012 16:52:21 +0530 Subject: [PATCH 072/102] [IMP] bzr revid: apa@tinyerp.com-20120326112221-jupd2mmjc504iu2x --- addons/event/event.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/addons/event/event.py b/addons/event/event.py index 6cd42843194..b9ca4d3276f 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -223,20 +223,14 @@ class event_event(osv.osv): 'name':user.name, 'user_id':uid, 'subscribe':True}) - else: - register_pool.write(cr, uid, curr_reg_id,{'subscribe':True}) if isinstance(curr_reg_id, (int, long)):curr_reg_id = [curr_reg_id] - register_pool.confirm_registration(cr,uid,curr_reg_id,context) - return True + return register_pool.confirm_registration(cr,uid,curr_reg_id,context) def unsubscribe_to_event(self,cr,uid,ids,context=None): register_pool = self.pool.get('event.registration') curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) - if curr_reg_id: - if isinstance(curr_reg_id, (int, long)):curr_reg_id = [curr_reg_id] - register_pool.write(cr, uid, curr_reg_id,{'subscribe':False}) - register_pool.button_reg_cancel(cr,uid,curr_reg_id,context) - return True + if isinstance(curr_reg_id, (int, long)):curr_reg_id = [curr_reg_id] + return register_pool.button_reg_cancel(cr,uid,curr_reg_id,context) def _check_closing_date(self, cr, uid, ids, context=None): for event in self.browse(cr, uid, ids, context=context): @@ -304,7 +298,7 @@ class event_registration(osv.osv): def confirm_registration(self, cr, uid, ids, context=None): self.message_append(cr, uid, ids,_('State set to open'),body_text= _('Open')) - return self.write(cr, uid, ids, {'state': 'open'}, context=context) + return self.write(cr, uid, ids, {'state': 'open','subscribe':True}, context=context) def registration_open(self, cr, uid, ids, context=None): @@ -331,7 +325,7 @@ class event_registration(osv.osv): def button_reg_cancel(self, cr, uid, ids, context=None, *args): self.message_append(cr, uid, ids,_('State set to Cancel'),body_text= _('Cancel')) - return self.write(cr, uid, ids, {'state': 'cancel'}) + return self.write(cr, uid, ids, {'state': 'cancel','subscribe':False}) def mail_user(self, cr, uid, ids, context=None): """ From ea7cedc96d857d6e842427d770f734e492de1e9d Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Mon, 26 Mar 2012 17:01:32 +0530 Subject: [PATCH 073/102] [IMP] bzr revid: apa@tinyerp.com-20120326113132-bnodi8lyzwohf5v3 --- addons/event/event.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/addons/event/event.py b/addons/event/event.py index b9ca4d3276f..a69e17aa269 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -215,14 +215,13 @@ class event_event(osv.osv): def subscribe_to_event(self,cr,uid,ids,context=None): register_pool = self.pool.get('event.registration') user_pool = self.pool.get('res.users') - curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) user = user_pool.browse(cr,uid,uid,context) + curr_reg_id = register_pool.search(cr,uid,[('user_id','=',user.id),('event_id','=',ids[0])]) if not curr_reg_id: - curr_reg_id = register_pool.create(cr, uid, {'event_id':ids[0], - 'email':user.user_email, - 'name':user.name, - 'user_id':uid, - 'subscribe':True}) + curr_reg_id = register_pool.create(cr, uid, {'event_id':ids[0],'email':user.user_email, + 'name':user.name,'user_id':user.id, + 'subscribe':True + }) if isinstance(curr_reg_id, (int, long)):curr_reg_id = [curr_reg_id] return register_pool.confirm_registration(cr,uid,curr_reg_id,context) From b79985289aaa717c2c7b886ffdf0f70150e01adf Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Mon, 26 Mar 2012 17:08:47 +0530 Subject: [PATCH 074/102] [IMP] bzr revid: apa@tinyerp.com-20120326113847-rcw09e4bp87sn6fh --- addons/event/event.py | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/event/event.py b/addons/event/event.py index a69e17aa269..8aca855cc0a 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -287,7 +287,6 @@ class event_registration(osv.osv): _defaults = { 'nb_register': 1, 'state': 'draft', - #'user_id': lambda self, cr, uid, ctx: uid, } _order = 'name, create_date desc' From 928171ffe79bc8db58e138db1e3ffabeb2cc82da Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Mon, 26 Mar 2012 17:15:56 +0530 Subject: [PATCH 075/102] [IMP]give rights to registration bzr revid: sgo@tinyerp.com-20120326114556-5hfi4wga6y7w455p --- addons/event_share/wizard/wizard_share.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/event_share/wizard/wizard_share.py b/addons/event_share/wizard/wizard_share.py index 02b5ae26009..8179781f432 100644 --- a/addons/event_share/wizard/wizard_share.py +++ b/addons/event_share/wizard/wizard_share.py @@ -37,9 +37,11 @@ class share_wizard_event(osv.osv_memory): """ res = super(share_wizard_event, self)._add_access_rights_for_share_group(cr, uid, group_id, mode, fields_relations, context=context) access_model = self.pool.get('ir.model.access') + access_ids = access_model.search(cr,uid,[('group_id','=',group_id)],context = context) - access_model.write(cr, uid, access_ids, {'perm_read': True, 'perm_write': True}) - return res + for record in access_model.browse(cr,uid,access_ids,context = context): + if record.model_id.model == 'event.registration': + access_model.write(cr, uid, record.id, {'perm_read': True, 'perm_write': True,'perm_create':True}) share_wizard_event() From 84f0786329b294f1c67cc1a8452b1a479119bed4 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 26 Mar 2012 14:30:03 +0200 Subject: [PATCH 076/102] [fix] problem with boolean search fields bzr revid: nicolas.vanhoren@openerp.com-20120326123003-pl9h05jlo47c4qrv --- addons/web/static/src/js/search.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index 8ffb0bdb7c4..9a2e071f344 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -972,7 +972,7 @@ openerp.web.search.BooleanField = openerp.web.search.SelectionField.extend(/** @ return this._super(defaults); }, get_value: function () { - switch (this.$element.val()) { + switch (this._super()) { case 'false': return false; case 'true': return true; default: return null; From 4f69e02d1c7c92e554af40c7e7d9f835399ebaba Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Mon, 26 Mar 2012 18:18:25 +0530 Subject: [PATCH 077/102] [IMP]add share access to registration and changes in security view bzr revid: sgo@tinyerp.com-20120326124825-xewmd0qc82k9hk11 --- addons/event/event_demo.xml | 2 +- addons/event/event_view.xml | 4 ++-- addons/event/security/event_security.xml | 16 ++++++++++++---- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/addons/event/event_demo.xml b/addons/event/event_demo.xml index 5b4654342c9..b76055cd0ff 100644 --- a/addons/event/event_demo.xml +++ b/addons/event/event_demo.xml @@ -45,7 +45,7 @@ 350 - Conference on ERP Buisness + Conference on ERP Business diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 4b4f2b1e44d..ff605297944 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -63,7 +63,7 @@ - + @@ -484,7 +484,7 @@ + action="action_registration" groups="event.group_event_manager,event.group_event_user"/> diff --git a/addons/event/security/event_security.xml b/addons/event/security/event_security.xml index e7a84337bac..c0eb37d7b84 100644 --- a/addons/event/security/event_security.xml +++ b/addons/event/security/event_security.xml @@ -2,12 +2,20 @@ - - Event Manager + + Event + Helps you manage your Events. + 3 + + + + User + - - Event User + + Manager + From 85be0cf0a40b98c8e00009a341e3beb0cbb96e48 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Tue, 27 Mar 2012 05:37:03 +0000 Subject: [PATCH 078/102] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20120324054024-zsxud06u08w1ozt6 bzr revid: launchpad_translations_on_behalf_of_openerp-20120325061238-j9gdt4nxan15iwhj bzr revid: launchpad_translations_on_behalf_of_openerp-20120327053703-etqni632km6p0ixs --- addons/account/i18n/es_EC.po | 599 +++++++++---- addons/account/i18n/sl.po | 379 ++++---- .../account_analytic_analysis/i18n/es_EC.po | 73 +- addons/account_analytic_default/i18n/es_EC.po | 11 +- addons/account_analytic_plans/i18n/es_EC.po | 35 +- addons/account_anglo_saxon/i18n/es_EC.po | 18 +- addons/account_asset/i18n/es_EC.po | 833 ++++++++++++++++++ addons/account_budget/i18n/es_EC.po | 14 +- addons/account_check_writing/i18n/nl.po | 10 +- addons/account_payment/i18n/es_EC.po | 27 +- addons/account_voucher/i18n/es_EC.po | 13 +- addons/analytic/i18n/es_EC.po | 29 +- addons/base_setup/i18n/es_EC.po | 103 ++- addons/base_setup/i18n/sl.po | 99 ++- addons/base_tools/i18n/es_EC.po | 32 + addons/base_vat/i18n/es_EC.po | 22 +- addons/crm_claim/i18n/it.po | 16 +- addons/crm_todo/i18n/fi.po | 96 ++ addons/crm_todo/i18n/it.po | 97 ++ addons/edi/i18n/fi.po | 115 +-- addons/google_base_account/i18n/it.po | 121 +++ addons/hr/i18n/es_EC.po | 12 +- addons/hr_contract/i18n/es_EC.po | 84 +- addons/hr_contract/i18n/it.po | 14 +- addons/hr_payroll/i18n/es_EC.po | 312 ++++--- addons/hr_payroll_account/i18n/es_EC.po | 50 +- addons/idea/i18n/fi.po | 40 +- addons/import_base/i18n/fi.po | 104 +++ addons/import_sugarcrm/i18n/nl.po | 406 +++++++++ addons/mail/i18n/fi.po | 138 +-- addons/mrp/i18n/fi.po | 102 ++- addons/mrp_subproduct/i18n/fi.po | 16 +- addons/point_of_sale/i18n/nl.po | 22 +- addons/product/i18n/es_EC.po | 22 +- addons/product/i18n/fi.po | 46 +- addons/product_visible_discount/i18n/fi.po | 16 +- addons/project_planning/i18n/fi.po | 26 +- addons/purchase/i18n/es_EC.po | 181 ++-- addons/purchase/i18n/fi.po | 131 +-- addons/stock/i18n/es_EC.po | 92 +- addons/stock/i18n/fi.po | 167 ++-- 41 files changed, 3457 insertions(+), 1266 deletions(-) create mode 100644 addons/account_asset/i18n/es_EC.po create mode 100644 addons/base_tools/i18n/es_EC.po create mode 100644 addons/crm_todo/i18n/fi.po create mode 100644 addons/crm_todo/i18n/it.po create mode 100644 addons/google_base_account/i18n/it.po create mode 100644 addons/import_base/i18n/fi.po create mode 100644 addons/import_sugarcrm/i18n/nl.po diff --git a/addons/account/i18n/es_EC.po b/addons/account/i18n/es_EC.po index 841b1714482..b47ae2aacc9 100644 --- a/addons/account/i18n/es_EC.po +++ b/addons/account/i18n/es_EC.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-03-22 04:32+0000\n" +"PO-Revision-Date: 2012-03-24 03:08+0000\n" "Last-Translator: Cristian Salamea (Gnuthink) \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-23 05:12+0000\n" -"X-Generator: Launchpad (build 14996)\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: account #: view:account.invoice.report:0 @@ -388,7 +388,7 @@ msgstr "" #. module: account #: constraint:account.move.line:0 msgid "You can not create journal items on an account of type view." -msgstr "" +msgstr "No puede crear asientos en una cuenta de tipo vista" #. module: account #: model:ir.model,name:account.model_account_tax_template @@ -1929,7 +1929,7 @@ msgstr "Error! No puede crear compañías recursivas." #. module: account #: model:ir.actions.report.xml,name:account.account_journal_sale_purchase msgid "Sale/Purchase Journal" -msgstr "" +msgstr "Diario de Ventas/Compras" #. module: account #: view:account.analytic.account:0 @@ -2019,7 +2019,7 @@ msgstr "" #: code:addons/account/account_invoice.py:73 #, python-format msgid "You must define an analytic journal of type '%s'!" -msgstr "" +msgstr "Usted debe definir un diario analítico de tipo '%s'!" #. module: account #: field:account.installer,config_logo:0 @@ -2034,6 +2034,9 @@ msgid "" "currency. You should remove the secondary currency on the account or select " "a multi-currency view on the journal." msgstr "" +"La cuenta selecionada de su diario obliga a tener una moneda secundaria. " +"Usted debería eliminar la moneda secundaria de la cuenta o asignar una vista " +"de multi-moneda al diario." #. module: account #: model:ir.actions.act_window,help:account.action_account_financial_report_tree @@ -2064,7 +2067,7 @@ msgstr "Asientos Analíticos relacionados a un diario de ventas" #. module: account #: selection:account.financial.report,style_overwrite:0 msgid "Italic Text (smaller)" -msgstr "" +msgstr "Texto en Italica (más pequeño)" #. module: account #: view:account.bank.statement:0 @@ -2082,7 +2085,7 @@ msgstr "Borrador" #. module: account #: report:account.journal.period.print.sale.purchase:0 msgid "VAT Declaration" -msgstr "" +msgstr "Declaración de IVA" #. module: account #: field:account.move.reconcile,line_partial_ids:0 @@ -2153,7 +2156,7 @@ msgstr "" #: code:addons/account/account_bank_statement.py:357 #, python-format msgid "You have to assign an analytic journal on the '%s' journal!" -msgstr "" +msgstr "¡Debes asignar un diario analítico en el último '%s' diario!" #. module: account #: selection:account.invoice,state:0 @@ -2202,6 +2205,9 @@ msgid "" "Put a sequence in the journal definition for automatic numbering or create a " "sequence manually for this piece." msgstr "" +"¡No se puede crear una secuencia automática para este objeto!\n" +"Ponga una secuencia en la definición del diario para una numeración " +"automática o cree un número manualmente para este objeto." #. module: account #: code:addons/account/account.py:787 @@ -2210,6 +2216,8 @@ msgid "" "You can not modify the company of this journal as its related record exist " "in journal items" msgstr "" +"No puede modificar la compañía de este diario, ya que contiene apuntes " +"contables" #. module: account #: report:account.invoice:0 @@ -2274,7 +2282,7 @@ msgstr "There is no Accounting Journal of type Sale/Purchase defined!" #. module: account #: constraint:res.partner.bank:0 msgid "The RIB and/or IBAN is not valid" -msgstr "" +msgstr "La CC y/o IBAN no es válido" #. module: account #: view:product.category:0 @@ -2381,6 +2389,9 @@ msgid "" "'Setup Your Bank Accounts' tool that will automatically create the accounts " "and journals for you." msgstr "" +"Configure sus diarios contables. Para cuentas de bancos, es mejor usar la " +"herramienta 'Configurar sus cuentas de banco' que creará automáticamente las " +"cuentas y los diarios por usted." #. module: account #: model:ir.model,name:account.model_account_move @@ -2390,7 +2401,7 @@ msgstr "Entrada de cuenta" #. module: account #: constraint:res.partner:0 msgid "Error ! You cannot create recursive associated members." -msgstr "" +msgstr "Error! Usted no puede crear miembros asociados recursivos" #. module: account #: field:account.sequence.fiscalyear,sequence_main_id:0 @@ -2404,6 +2415,8 @@ msgid "" "In order to delete a bank statement, you must first cancel it to delete " "related journal items." msgstr "" +"Para poder borrar un extracto bancario, primero debe cancelarlo para borrar " +"los apuntes contables relacionados." #. module: account #: field:account.invoice,payment_term:0 @@ -2489,7 +2502,7 @@ msgstr "" #: model:account.payment.term,name:account.account_payment_term_advance #: model:account.payment.term,note:account.account_payment_term_advance msgid "30% Advance End 30 Days" -msgstr "" +msgstr "30% adelando después de 30 días" #. module: account #: view:account.entries.report:0 @@ -2576,7 +2589,7 @@ msgstr "Impuestos proveedor" #. module: account #: view:account.entries.report:0 msgid "entries" -msgstr "" +msgstr "entradas" #. module: account #: help:account.invoice,date_due:0 @@ -2628,7 +2641,7 @@ msgstr "" #. module: account #: model:ir.model,name:account.model_account_move_line_reconcile_writeoff msgid "Account move line reconcile (writeoff)" -msgstr "" +msgstr "Reconcilia linea de asiento (desajuste)" #. module: account #: model:account.account.type,name:account.account_type_tax @@ -2724,7 +2737,7 @@ msgstr "The Account can either be a base tax code or a tax code account." #. module: account #: sql_constraint:account.model.line:0 msgid "Wrong credit or debit value in model, they must be positive!" -msgstr "" +msgstr "¡Valor debe o haber incorrecto, debe ser positivo!" #. module: account #: model:ir.ui.menu,name:account.menu_automatic_reconcile @@ -2759,7 +2772,7 @@ msgstr "Fechas" #. module: account #: field:account.chart.template,parent_id:0 msgid "Parent Chart Template" -msgstr "" +msgstr "Plantilla de plan padre" #. module: account #: field:account.tax,parent_id:0 @@ -2771,7 +2784,7 @@ msgstr "Cuenta impuestos padre" #: code:addons/account/wizard/account_change_currency.py:59 #, python-format msgid "New currency is not configured properly !" -msgstr "" +msgstr "¡La nueva moneda no está configurada correctamente!" #. module: account #: view:account.subscription.generate:0 @@ -2798,7 +2811,7 @@ msgstr "Asientos contables" #. module: account #: field:account.invoice,reference_type:0 msgid "Communication Type" -msgstr "" +msgstr "Tipo de comunicación" #. module: account #: field:account.invoice.line,discount:0 @@ -2829,7 +2842,7 @@ msgstr "Configuración Contable de Nueva Empresa" #. module: account #: view:account.installer:0 msgid "Configure Your Chart of Accounts" -msgstr "" +msgstr "Configure su plan de cuentas" #. module: account #: model:ir.actions.act_window,name:account.action_report_account_sales_tree_all @@ -2864,6 +2877,8 @@ msgid "" "You need an Opening journal with centralisation checked to set the initial " "balance!" msgstr "" +"¡Necesita un diario de apertura con la casilla 'Centralización' marcada para " +"establecer el balance inicial!" #. module: account #: view:account.invoice.tax:0 @@ -2875,7 +2890,7 @@ msgstr "Códigos de impuestos" #. module: account #: view:account.account:0 msgid "Unrealized Gains and losses" -msgstr "" +msgstr "Pérdidas y ganancias no realizadas" #. module: account #: model:ir.ui.menu,name:account.menu_account_customer @@ -2964,6 +2979,8 @@ msgid "" "You can not delete an invoice which is open or paid. We suggest you to " "refund it instead." msgstr "" +"No puede borrar una factura que está abierta o pagada. Le sugerimos que la " +"devuelva." #. module: account #: field:wizard.multi.charts.accounts,sale_tax:0 @@ -2974,7 +2991,7 @@ msgstr "Impuestos por Defecto en Venta" #: code:addons/account/account_invoice.py:1013 #, python-format msgid "Invoice '%s' is validated." -msgstr "" +msgstr "Factura '%s' es validada." #. module: account #: help:account.model.line,date_maturity:0 @@ -3017,7 +3034,7 @@ msgstr "Tipos de Contribuyentes" msgid "" "Tax base different!\n" "Click on compute to update the tax base." -msgstr "" +msgstr "¡Distintas bases de impuestos!" #. module: account #: field:account.partner.ledger,page_split:0 @@ -3066,7 +3083,7 @@ msgstr "Moneda" #: field:accounting.report,account_report_id:0 #: model:ir.ui.menu,name:account.menu_account_financial_reports_tree msgid "Account Reports" -msgstr "" +msgstr "Informes de cuentas" #. module: account #: field:account.payment.term,line_ids:0 @@ -3091,7 +3108,7 @@ msgstr "Lista plantilla impuestos" #. module: account #: model:ir.ui.menu,name:account.menu_account_print_sale_purchase_journal msgid "Sale/Purchase Journals" -msgstr "" +msgstr "Diarios de Venta/Compra" #. module: account #: help:account.account,currency_mode:0 @@ -3134,7 +3151,7 @@ msgstr "Siempre" #: view:account.invoice.report:0 #: view:analytic.entries.report:0 msgid "Month-1" -msgstr "" +msgstr "Mes-1" #. module: account #: view:account.analytic.line:0 @@ -3181,7 +3198,7 @@ msgstr "Líneas analíticas" #. module: account #: view:account.invoice:0 msgid "Proforma Invoices" -msgstr "" +msgstr "Facturas proforma" #. module: account #: model:process.node,name:account.process_node_electronicfile0 @@ -3196,7 +3213,7 @@ msgstr "Haber del cliente" #. module: account #: view:account.payment.term.line:0 msgid " Day of the Month: 0" -msgstr "" +msgstr " Día del mes: 0" #. module: account #: view:account.subscription:0 @@ -3243,7 +3260,7 @@ msgstr "Generar plan contable a partir de una plantilla de plan contable" #. module: account #: view:report.account.sales:0 msgid "This months' Sales by type" -msgstr "" +msgstr "Ventas de este mes por tipo" #. module: account #: model:ir.model,name:account.model_account_unreconcile_reconcile @@ -3253,7 +3270,7 @@ msgstr "Cuenta Conciliación / Romper Conciliación" #. module: account #: sql_constraint:account.tax:0 msgid "The description must be unique per company!" -msgstr "" +msgstr "La descripción debe ser única por compañia!" #. module: account #: help:account.account.type,close_method:0 @@ -3355,7 +3372,7 @@ msgstr "Configuración Contable" #. module: account #: view:account.payment.term.line:0 msgid " Value amount: 0.02" -msgstr "" +msgstr " Importe: 0.02" #. module: account #: model:ir.actions.act_window,name:account.open_board_account @@ -3385,7 +3402,7 @@ msgstr "Cerrar un período" #. module: account #: field:account.financial.report,display_detail:0 msgid "Display details" -msgstr "" +msgstr "Muestra detalles" #. module: account #: report:account.overdue:0 @@ -3395,7 +3412,7 @@ msgstr "Impuesto" #. module: account #: constraint:account.invoice:0 msgid "Invalid BBA Structured Communication !" -msgstr "" +msgstr "¡Estructura de comunicación BBA no válida!" #. module: account #: help:account.analytic.line,amount_currency:0 @@ -3429,7 +3446,7 @@ msgstr "Plan de Impuestos" #: code:addons/account/account_cash_statement.py:314 #, python-format msgid "The closing balance should be the same than the computed balance!" -msgstr "" +msgstr "¡El balance cerrado debería ser el mismo que el balance calculado!" #. module: account #: view:account.journal:0 @@ -3507,17 +3524,17 @@ msgstr "" #. module: account #: view:account.invoice.line:0 msgid "Quantity :" -msgstr "" +msgstr "Cantidad:" #. module: account #: field:account.aged.trial.balance,period_length:0 msgid "Period Length (days)" -msgstr "" +msgstr "Longitud del período (días)" #. module: account #: model:ir.actions.act_window,name:account.action_account_print_sale_purchase_journal msgid "Print Sale/Purchase Journal" -msgstr "" +msgstr "Imprimir diario Venta/compra" #. module: account #: field:account.invoice.report,state:0 @@ -3544,12 +3561,12 @@ msgstr "Reporte de ventas por tipo de cuentas" #. module: account #: view:account.move.line:0 msgid "Unreconciled Journal Items" -msgstr "" +msgstr "Apuntes contables no conciliados" #. module: account #: sql_constraint:res.currency:0 msgid "The currency code must be unique per company!" -msgstr "" +msgstr "¡El código de moneda debe ser único por compañía!" #. module: account #: selection:account.account.type,close_method:0 @@ -3564,7 +3581,7 @@ msgid "" "The related payment term is probably misconfigured as it gives a computed " "amount greater than the total invoiced amount. The latest line of your " "payment term must be of type 'balance' to avoid rounding issues." -msgstr "" +msgstr "¡No puede crear la factura!" #. module: account #: report:account.invoice:0 @@ -3599,6 +3616,7 @@ msgstr "Homólogo centralizado" #, python-format msgid "You can not create journal items on a \"view\" account %s %s" msgstr "" +"Usted no puede crear asientos contra una cuenta %s %s de tipo \"vista\"" #. module: account #: model:ir.model,name:account.model_account_partner_reconcile_process @@ -3658,7 +3676,7 @@ msgstr "Fecha" #. module: account #: view:account.move:0 msgid "Post" -msgstr "" +msgstr "Contabilizar" #. module: account #: view:account.unreconcile:0 @@ -3731,7 +3749,7 @@ msgstr "Sin Filtros" #. module: account #: view:account.invoice.report:0 msgid "Pro-forma Invoices" -msgstr "" +msgstr "Facturas pro-forma" #. module: account #: view:res.partner:0 @@ -3822,7 +3840,7 @@ msgstr "#Asientos" #. module: account #: selection:account.invoice.refund,filter_refund:0 msgid "Create a draft Refund" -msgstr "" +msgstr "Crear una devolución en borrador" #. module: account #: view:account.state.open:0 @@ -3847,6 +3865,9 @@ msgid "" "centralised counterpart box in the related journal from the configuration " "menu." msgstr "" +"No puede crear una factura en un diario centralizado. Desclicke la casilla " +"\"Homólogo centralizado\" en el diario relacionado, desde el menú de " +"configuración" #. module: account #: field:account.account,name:0 @@ -3870,7 +3891,7 @@ msgstr "Account Aged Trial balance Report" #: code:addons/account/account_move_line.py:591 #, python-format msgid "You can not create journal items on a closed account %s %s" -msgstr "" +msgstr "No puede crear asientos en una cuenta %s %s cerrada" #. module: account #: field:account.move.line,date:0 @@ -3881,7 +3902,7 @@ msgstr "Fecha vigencia" #: model:ir.actions.act_window,name:account.action_bank_tree #: model:ir.ui.menu,name:account.menu_action_bank_tree msgid "Setup your Bank Accounts" -msgstr "" +msgstr "Configurar sus cuentas bancarias" #. module: account #: code:addons/account/wizard/account_move_bank_reconcile.py:53 @@ -3913,6 +3934,8 @@ msgid "" "The fiscalyear, periods or chart of account chosen have to belong to the " "same company." msgstr "" +"El año fiscal, periodos y árbol de cuentas escogido deben pertenecer a la " +"misma compañía." #. module: account #: model:ir.actions.todo.category,name:account.category_accounting_configuration @@ -3948,6 +3971,8 @@ msgid "" "Value of Loss or Gain due to changes in exchange rate when doing multi-" "currency transactions." msgstr "" +"Valor de pérdida o ganancia debido a cambios de divisa al realizar " +"transacciones multi-moneda" #. module: account #: view:account.analytic.line:0 @@ -4028,7 +4053,7 @@ msgstr "Tasa promedio" #: field:account.common.account.report,display_account:0 #: field:account.report.general.ledger,display_account:0 msgid "Display Accounts" -msgstr "" +msgstr "Mostrar cuentas" #. module: account #: view:account.state.open:0 @@ -4070,7 +4095,7 @@ msgstr "" #. module: account #: view:account.move.line:0 msgid "Posted Journal Items" -msgstr "" +msgstr "Asientos validados/asentados" #. module: account #: view:account.tax.template:0 @@ -4085,12 +4110,12 @@ msgstr "Asientos en Borrador" #. module: account #: view:account.payment.term.line:0 msgid " Day of the Month= -1" -msgstr "" +msgstr " Dia del mes = -1" #. module: account #: view:account.payment.term.line:0 msgid " Number of Days: 30" -msgstr "" +msgstr " Número de días: 30" #. module: account #: field:account.account,shortcut:0 @@ -4102,6 +4127,8 @@ msgstr "Abreviación" #: constraint:account.fiscalyear:0 msgid "Error! The start date of the fiscal year must be before his end date." msgstr "" +"Error! La fecha de inicio del año fiscal debe ser anterior a la fecha final " +"de este." #. module: account #: view:account.account:0 @@ -4122,7 +4149,7 @@ msgstr "Tipo de Cuenta" #. module: account #: view:res.partner:0 msgid "Bank Account Owner" -msgstr "" +msgstr "Propietario cuenta bancaria" #. module: account #: report:account.account.balance:0 @@ -4160,6 +4187,8 @@ msgid "" "You haven't supplied enough argument to compute the initial balance, please " "select a period and journal in the context." msgstr "" +"No ha ofrecido suficientes datos para calcular el balance inicial, por favor " +"selecciones un periodo y diario en el contexto" #. module: account #: model:process.transition,note:account.process_transition_supplieranalyticcost0 @@ -4205,11 +4234,13 @@ msgid "" "some non legal fields or you must unconfirm the journal entry first! \n" "%s" msgstr "" +"¡No puede realizaar esto en un asiento confirmado! ¡Solo puede cambiar " +"algunos campos no legales o debe primero pasar a borrador el asiento! %s" #. module: account #: field:res.company,paypal_account:0 msgid "Paypal Account" -msgstr "" +msgstr "Cuenta Paypal" #. module: account #: field:account.invoice.report,uom_name:0 @@ -4225,7 +4256,7 @@ msgstr "Nota" #. module: account #: selection:account.financial.report,sign:0 msgid "Reverse balance sign" -msgstr "" +msgstr "Invertir signo del balance" #. module: account #: view:account.analytic.account:0 @@ -4237,7 +4268,7 @@ msgstr "Overdue Account" #: code:addons/account/account.py:184 #, python-format msgid "Balance Sheet (Liability account)" -msgstr "" +msgstr "Balance (Cuenta de pasivo)" #. module: account #: help:account.invoice,date_invoice:0 @@ -4269,7 +4300,7 @@ msgstr "Propiedades de contabilidad del cliente" #. module: account #: help:res.company,paypal_account:0 msgid "Paypal username (usually email) for receiving online payments." -msgstr "" +msgstr "Usuario Paypal (habitualmente un email) para recibir pagos online" #. module: account #: selection:account.aged.trial.balance,target_move:0 @@ -4334,7 +4365,7 @@ msgstr "Procesamiento Periódico" #. module: account #: constraint:account.analytic.line:0 msgid "You can not create analytic line on view account." -msgstr "" +msgstr "No puede crear una línea analítica en una cuenta vista" #. module: account #: help:account.move.line,state:0 @@ -4363,7 +4394,7 @@ msgstr "Account chart" #. module: account #: selection:account.financial.report,style_overwrite:0 msgid "Main Title 1 (bold, underlined)" -msgstr "" +msgstr "Titulo 1 Principal (negrita, subrayado)" #. module: account #: report:account.analytic.account.balance:0 @@ -4384,7 +4415,7 @@ msgstr "Invoices Statistics" #. module: account #: field:account.account,exchange_rate:0 msgid "Exchange Rate" -msgstr "" +msgstr "Tasa de Cambio" #. module: account #: model:process.transition,note:account.process_transition_paymentorderreconcilation0 @@ -4417,7 +4448,7 @@ msgstr "No Implementado" #. module: account #: field:account.chart.template,visible:0 msgid "Can be Visible?" -msgstr "" +msgstr "¿Puede ser visible?" #. module: account #: model:ir.model,name:account.model_account_journal_select @@ -4432,7 +4463,7 @@ msgstr "Notas de Crédito" #. module: account #: sql_constraint:account.period:0 msgid "The name of the period must be unique per company!" -msgstr "" +msgstr "El nombre del periodo debe ser único por compañia!" #. module: account #: view:wizard.multi.charts.accounts:0 @@ -4452,6 +4483,10 @@ msgid "" "you want to generate accounts of this template only when loading its child " "template." msgstr "" +"Establezca esto a falso si no desea que esta plantilla sea utilizada de " +"forma activa en el asistente que genera el árbol de cuentas desde " +"plantillas. Esto es útil cuando desea generar cuentas de esta plantilla solo " +"al cargar su plantilla hija." #. module: account #: view:account.use.model:0 @@ -4470,6 +4505,8 @@ msgstr "Permitir conciliación" msgid "" "You can not modify company of this period as some journal items exists." msgstr "" +"No puede modificar la compañía de este periodo porque existen asientos " +"asociados" #. module: account #: view:account.analytic.account:0 @@ -4502,7 +4539,7 @@ msgstr "Recurring Models" #: code:addons/account/account_move_line.py:1251 #, python-format msgid "Encoding error" -msgstr "" +msgstr "Error de codificación" #. module: account #: selection:account.automatic.reconcile,power:0 @@ -4552,7 +4589,7 @@ msgstr "Cerrar balance basado en Cajas" #. module: account #: view:account.payment.term.line:0 msgid "Example" -msgstr "" +msgstr "Ejemplo" #. module: account #: code:addons/account/account_invoice.py:828 @@ -4574,7 +4611,7 @@ msgstr "Dejarlo vacío para usar la cuenta de ingresos" #: code:addons/account/account.py:3299 #, python-format msgid "Purchase Tax %.2f%%" -msgstr "" +msgstr "Impuesto de compra %2f%%" #. module: account #: view:account.subscription.generate:0 @@ -4629,7 +4666,7 @@ msgstr "" #. module: account #: selection:account.bank.statement,state:0 msgid "New" -msgstr "" +msgstr "Nuevo" #. module: account #: field:account.invoice.refund,date:0 @@ -4675,12 +4712,12 @@ msgstr "Cuentas de ingreso en platilla de productos" #: code:addons/account/account.py:3120 #, python-format msgid "MISC" -msgstr "" +msgstr "Varios" #. module: account #: model:email.template,subject:account.email_template_edi_invoice msgid "${object.company_id.name} Invoice (Ref ${object.number or 'n/a' })" -msgstr "" +msgstr "${object.company_id.name} Factura (Ref ${object.number or 'n/d' })" #. module: account #: help:res.partner,last_reconciliation_date:0 @@ -4709,7 +4746,7 @@ msgstr "Facturas" #. module: account #: view:account.invoice:0 msgid "My invoices" -msgstr "" +msgstr "Mis facturas" #. module: account #: selection:account.bank.accounts.wizard,account_type:0 @@ -4732,7 +4769,7 @@ msgstr "Facturado" #. module: account #: view:account.move:0 msgid "Posted Journal Entries" -msgstr "" +msgstr "Asientos validados" #. module: account #: view:account.use.model:0 @@ -4746,6 +4783,9 @@ msgid "" "account if this is a Customer Invoice or Supplier Refund, otherwise a " "Partner bank account number." msgstr "" +"Numero de cuenta bancaria contra el que será pagada la factura. Una cuenta " +"bancaria de la compañía si esta es una factura de cliente o devolución de " +"proveedor, en otro caso una cuenta bancaria del cliente/proveedor." #. module: account #: view:account.state.open:0 @@ -4790,17 +4830,20 @@ msgid "" "You can not define children to an account with internal type different of " "\"View\"! " msgstr "" +"Error de configuración!\n" +"¡No puede definir hijos para una cuenta con el tipo interno distinto de " +"\"vista\"! " #. module: account #: code:addons/account/account.py:923 #, python-format msgid "Opening Period" -msgstr "" +msgstr "Periodo de apertura" #. module: account #: view:account.move:0 msgid "Journal Entries to Review" -msgstr "" +msgstr "Asientos a revisar" #. module: account #: view:account.bank.statement:0 @@ -4898,7 +4941,7 @@ msgstr "" #. module: account #: sql_constraint:account.invoice:0 msgid "Invoice Number must be unique per Company!" -msgstr "" +msgstr "¡El número de factura debe ser único por compañía!" #. module: account #: model:ir.actions.act_window,name:account.action_account_receivable_graph @@ -4913,7 +4956,7 @@ msgstr "Generara Asiento de apertura de Ejercicio Fiscal" #. module: account #: model:res.groups,name:account.group_account_user msgid "Accountant" -msgstr "" +msgstr "Contador" #. module: account #: model:ir.actions.act_window,help:account.action_account_treasury_report_all @@ -4921,6 +4964,8 @@ msgid "" "From this view, have an analysis of your treasury. It sums the balance of " "every accounting entries made on liquidity accounts per period." msgstr "" +"From this view, have an analysis of your treasury. It sums the balance of " +"every accounting entries made on liquidity accounts per period." #. module: account #: field:account.journal,group_invoice_lines:0 @@ -4941,7 +4986,7 @@ msgstr "Asientos contables" #. module: account #: view:report.hr.timesheet.invoice.journal:0 msgid "Sale journal in this month" -msgstr "" +msgstr "Diario ventas en este mes" #. module: account #: model:ir.actions.act_window,name:account.action_account_vat_declaration @@ -4962,7 +5007,7 @@ msgstr "Para Cerrar" #. module: account #: field:account.treasury.report,date:0 msgid "Beginning of Period Date" -msgstr "" +msgstr "Inicio de fecha de período" #. module: account #: code:addons/account/account.py:1351 @@ -5046,7 +5091,7 @@ msgstr "Seleccionar Asientos" #: model:account.payment.term,name:account.account_payment_term_net #: model:account.payment.term,note:account.account_payment_term_net msgid "30 Net Days" -msgstr "" +msgstr "30 días netos" #. module: account #: field:account.subscription,period_type:0 @@ -5089,13 +5134,17 @@ msgid "" "encode the sale and purchase rates or choose from list of taxes. This last " "choice assumes that the set of tax defined on this template is complete" msgstr "" +"Este campo le ayuda a escoger si desea proponer al usuario codificar los " +"ratios de venta y compra o escoges de la lista de impuestos. Esta última " +"selección asume que el conjunto de impuestos definido en esta plantilla está " +"completo." #. module: account #: view:account.financial.report:0 #: field:account.financial.report,children_ids:0 #: model:ir.model,name:account.model_account_financial_report msgid "Account Report" -msgstr "" +msgstr "Informe financiero" #. module: account #: field:account.journal.column,name:0 @@ -5177,7 +5226,7 @@ msgstr "Diarios Generales" #. module: account #: field:account.journal,allow_date:0 msgid "Check Date in Period" -msgstr "" +msgstr "Validar fecha en período" #. module: account #: model:ir.ui.menu,name:account.final_accounting_reports @@ -5228,7 +5277,7 @@ msgstr "Venta" #. module: account #: view:account.financial.report:0 msgid "Report" -msgstr "" +msgstr "Informe" #. module: account #: view:account.analytic.line:0 @@ -5279,7 +5328,7 @@ msgstr "Coeficiente para Padre" #. module: account #: view:account.analytic.account:0 msgid "Analytic Accounts with a past deadline." -msgstr "" +msgstr "Cuentas analíticas con deadline vencido" #. module: account #: report:account.partner.balance:0 @@ -5316,7 +5365,7 @@ msgstr "Estadística de asientos analíticos" #. module: account #: field:wizard.multi.charts.accounts,bank_accounts_id:0 msgid "Cash and Banks" -msgstr "" +msgstr "Caja y Bancos" #. module: account #: model:ir.model,name:account.model_account_installer @@ -5382,7 +5431,7 @@ msgstr "Contabilidad de Costos" #: field:account.partner.ledger,initial_balance:0 #: field:account.report.general.ledger,initial_balance:0 msgid "Include Initial Balances" -msgstr "" +msgstr "Incluir balance Inicial" #. module: account #: selection:account.invoice,type:0 @@ -5396,6 +5445,7 @@ msgstr "Nota de Debito" msgid "" "You can not create more than one move per period on centralized journal" msgstr "" +"No puede crear más de un movimiento por periodo en un diario centralizado" #. module: account #: field:account.tax,ref_tax_sign:0 @@ -5413,7 +5463,7 @@ msgstr "Reporte de facturas creadas en los útimos 15 días" #. module: account #: view:account.payment.term.line:0 msgid " Number of Days: 14" -msgstr "" +msgstr " Numero de días: 14" #. module: account #: field:account.fiscalyear,end_journal_period_id:0 @@ -5436,7 +5486,7 @@ msgstr "Error de Configuracion" #. module: account #: field:account.payment.term.line,value_amount:0 msgid "Amount To Pay" -msgstr "" +msgstr "Monto a Pagar" #. module: account #: help:account.partner.reconcile.process,to_reconcile:0 @@ -5478,7 +5528,7 @@ msgstr "Cambiar Moneda" #. module: account #: view:account.invoice:0 msgid "This action will erase taxes" -msgstr "" +msgstr "Esta acción borrará impuestos" #. module: account #: model:process.node,note:account.process_node_accountingentries0 @@ -5501,7 +5551,7 @@ msgstr "Cuentas de Costos" #. module: account #: view:account.invoice.report:0 msgid "Customer Invoices And Refunds" -msgstr "" +msgstr "Facturas y Notas de Crédito" #. module: account #: field:account.analytic.line,amount_currency:0 @@ -5549,12 +5599,12 @@ msgstr "Núm (Mov.)" #. module: account #: view:analytic.entries.report:0 msgid "Analytic Entries during last 7 days" -msgstr "" +msgstr "Asientos analíticos en los últimos 7 días." #. module: account #: selection:account.financial.report,style_overwrite:0 msgid "Normal Text" -msgstr "" +msgstr "Texto normal" #. module: account #: view:account.invoice.refund:0 @@ -5624,7 +5674,7 @@ msgstr "Abrir Caja" #. module: account #: selection:account.financial.report,style_overwrite:0 msgid "Automatic formatting" -msgstr "" +msgstr "Formateo automático" #. module: account #: code:addons/account/account.py:963 @@ -5632,7 +5682,7 @@ msgstr "" msgid "" "No fiscal year defined for this date !\n" "Please create one from the configuration of the accounting menu." -msgstr "" +msgstr "¡No hay año fiscal definido para esta fecha!" #. module: account #: view:account.move.line.reconcile:0 @@ -5691,7 +5741,7 @@ msgstr "El método de cálculo del importe del impuesto." #. module: account #: view:account.payment.term.line:0 msgid "Due Date Computation" -msgstr "" +msgstr "Cálculo de fecha de vencimiento" #. module: account #: field:report.invoice.created,create_date:0 @@ -5714,7 +5764,7 @@ msgstr "Cuentas hijas" #: code:addons/account/account_move_line.py:1214 #, python-format msgid "Move name (id): %s (%s)" -msgstr "" +msgstr "Movimiento (id): %s (%s)" #. module: account #: view:account.move.line.reconcile:0 @@ -5894,12 +5944,12 @@ msgstr "Filter by" #: code:addons/account/account.py:2256 #, python-format msgid "You have a wrong expression \"%(...)s\" in your model !" -msgstr "" +msgstr "¡Tiene una expressión errónea \"%(...)s\" en su modelo!" #. module: account #: field:account.bank.statement.line,date:0 msgid "Entry Date" -msgstr "" +msgstr "Fecha de Entrada" #. module: account #: code:addons/account/account_move_line.py:1155 @@ -5918,13 +5968,14 @@ msgstr "Entries are not of the same account or already reconciled ! " #: help:account.bank.statement,balance_end:0 msgid "Balance as calculated based on Starting Balance and transaction lines" msgstr "" +"Balance calculado basado en el balance inicial y líneas de transacción" #. module: account #: code:addons/account/wizard/account_change_currency.py:64 #: code:addons/account/wizard/account_change_currency.py:70 #, python-format msgid "Current currency is not configured properly !" -msgstr "" +msgstr "¡La moneda actual no está configurada correctamente !" #. module: account #: field:account.tax,account_collected_id:0 @@ -5960,7 +6011,7 @@ msgstr "Período: %s" #. module: account #: model:ir.actions.act_window,name:account.action_review_financial_journals_installer msgid "Review your Financial Journals" -msgstr "" +msgstr "Revisión de sus diarios financieros" #. module: account #: help:account.tax,name:0 @@ -5994,7 +6045,7 @@ msgstr "Reembolso de Clientes" #. module: account #: field:account.account,foreign_balance:0 msgid "Foreign Balance" -msgstr "" +msgstr "Balance exterior" #. module: account #: field:account.journal.period,name:0 @@ -6030,7 +6081,7 @@ msgstr "" #. module: account #: view:account.subscription:0 msgid "Running Subscription" -msgstr "" +msgstr "Ejecutando suscripciones" #. module: account #: report:account.invoice:0 @@ -6055,7 +6106,7 @@ msgid "" "Configuration Error! \n" "You can not define children to an account with internal type different of " "\"View\"! " -msgstr "" +msgstr "¡Error de configuración! " #. module: account #: help:res.partner.bank,journal_id:0 @@ -6063,6 +6114,8 @@ msgid "" "This journal will be created automatically for this bank account when you " "save the record" msgstr "" +"Este diario será creado automáticamente para esta cuenta bancaria cuando " +"grabe el registro" #. module: account #: view:account.analytic.line:0 @@ -6141,7 +6194,7 @@ msgstr "Este es el modelo para asiento recurrentes" #. module: account #: field:wizard.multi.charts.accounts,sale_tax_rate:0 msgid "Sales Tax(%)" -msgstr "" +msgstr "Impuesto de venta(%)" #. module: account #: view:account.addtmpl.wizard:0 @@ -6174,6 +6227,10 @@ msgid "" "choice assumes that the set of tax defined for the chosen template is " "complete" msgstr "" +"Este campo booleano le ayuda a decidir si desa proponer al usuario a " +"codificar los ratios de ventas y compras o usar los campos m2o habituales. " +"Esta última opción asume que el conjunto de impuestos definidos para la " +"plantilla seleccionada está completo." #. module: account #: report:account.vat.declaration:0 @@ -6188,12 +6245,12 @@ msgstr "Compañías" #. module: account #: view:account.invoice.report:0 msgid "Open and Paid Invoices" -msgstr "" +msgstr "Facturas abiertas y pagadas" #. module: account #: selection:account.financial.report,display_detail:0 msgid "Display children flat" -msgstr "" +msgstr "Mostrar descendientes en plano" #. module: account #: code:addons/account/account.py:629 @@ -6202,6 +6259,8 @@ msgid "" "You can not remove/desactivate an account which is set on a customer or " "supplier." msgstr "" +"No puede borrar/desactivar una cuenta que está asociada a un cliente o un " +"proveedor" #. module: account #: help:account.fiscalyear.close.state,fy_id:0 @@ -6287,7 +6346,7 @@ msgstr "Por cobrar" #. module: account #: constraint:account.move.line:0 msgid "Company must be the same for its related account and period." -msgstr "" +msgstr "La compañía debe ser la misma para su cuenta y periodos relacionados" #. module: account #: view:account.invoice:0 @@ -6338,7 +6397,7 @@ msgstr "Power" #: code:addons/account/account.py:3368 #, python-format msgid "Cannot generate an unused journal code." -msgstr "" +msgstr "No puede generar un código de diario que no ha sido usado" #. module: account #: view:project.account.analytic.line:0 @@ -6451,6 +6510,8 @@ msgid "" "You cannot change the owner company of an account that already contains " "journal items." msgstr "" +"No puede cambiar al propietario de la compañía en una cuenta que ya contiene " +"asientos" #. module: account #: code:addons/account/wizard/account_report_aged_partner_balance.py:58 @@ -6512,7 +6573,7 @@ msgstr "Sólo lectura" #. module: account #: view:account.payment.term.line:0 msgid " Valuation: Balance" -msgstr "" +msgstr " Evaluación: Balance" #. module: account #: field:account.invoice.line,uos_id:0 @@ -6531,7 +6592,7 @@ msgstr "" #. module: account #: field:account.installer,has_default_company:0 msgid "Has Default Company" -msgstr "" +msgstr "Tiene compañía por defecto" #. module: account #: model:ir.model,name:account.model_account_sequence_fiscalyear @@ -6553,7 +6614,7 @@ msgstr "Analytic Journal" #: code:addons/account/account.py:622 #, python-format msgid "You can not desactivate an account that contains some journal items." -msgstr "" +msgstr "No puede desactivar una cuenta que contiene asientos" #. module: account #: view:account.entries.report:0 @@ -6609,7 +6670,7 @@ msgstr "Analytic Entries Statistics" #: code:addons/account/account.py:624 #, python-format msgid "You can not remove an account containing journal items." -msgstr "" +msgstr "No puede borrar una cuenta que contiene asientos" #. module: account #: code:addons/account/account_analytic_line.py:145 @@ -6626,7 +6687,7 @@ msgstr "Crear asientos recurrentes manuales en un diario seleccionado." #. module: account #: help:res.partner.bank,currency_id:0 msgid "Currency of the related account journal." -msgstr "" +msgstr "Moneda del diario relacionado" #. module: account #: code:addons/account/account.py:1563 @@ -6658,7 +6719,7 @@ msgstr "" #: code:addons/account/account.py:183 #, python-format msgid "Balance Sheet (Asset account)" -msgstr "" +msgstr "Balance General (Cuenta activos)" #. module: account #: model:ir.actions.act_window,help:account.action_account_bank_reconcile_tree @@ -6726,7 +6787,7 @@ msgstr "Código Python" #. module: account #: view:account.entries.report:0 msgid "Journal Entries with period in current period" -msgstr "" +msgstr "Asientos con periodo en el periodo actual" #. module: account #: help:account.journal,update_posted:0 @@ -6752,7 +6813,7 @@ msgstr "Crear asiento" #: code:addons/account/account.py:182 #, python-format msgid "Profit & Loss (Expense account)" -msgstr "" +msgstr "Pérdidas y ganancias (cuenta de gastos)" #. module: account #: code:addons/account/account.py:622 @@ -6788,12 +6849,12 @@ msgstr "Error !" #. module: account #: field:account.financial.report,style_overwrite:0 msgid "Financial Report Style" -msgstr "" +msgstr "Estilo de informe financiero" #. module: account #: selection:account.financial.report,sign:0 msgid "Preserve balance sign" -msgstr "" +msgstr "Preservar signo del balance" #. module: account #: view:account.vat.declaration:0 @@ -6812,7 +6873,7 @@ msgstr "Impreso" #: code:addons/account/account_move_line.py:591 #, python-format msgid "Error :" -msgstr "" +msgstr "Error:" #. module: account #: view:account.analytic.line:0 @@ -6853,6 +6914,9 @@ msgid "" "row to display the amount of debit/credit/balance that precedes the filter " "you've set." msgstr "" +"Si selecciona el filtro por fecha o periodo, este campo le permite añadir " +"una fila para mostrar el importe debe/haber/saldo que precede al filtro que " +"ha incluido" #. module: account #: view:account.bank.statement:0 @@ -6876,6 +6940,8 @@ msgid "" "some non legal fields or you must unreconcile first!\n" "%s" msgstr "" +"¡No puede realizar esta modificación en un asiento conciliado! ¡Solo puede " +"cambiar algunos campos no legales o debe romper la conciliación primero! %s" #. module: account #: report:account.general.ledger:0 @@ -6997,7 +7063,7 @@ msgstr "" #: field:account.chart.template,complete_tax_set:0 #: field:wizard.multi.charts.accounts,complete_tax_set:0 msgid "Complete Set of Taxes" -msgstr "" +msgstr "Conjunto de impuestos" #. module: account #: view:account.chart.template:0 @@ -7016,6 +7082,9 @@ msgid "" "Please define BIC/Swift code on bank for bank type IBAN Account to make " "valid payments" msgstr "" +"\n" +"Por favor defina el código BIC/Swift en el banco de cuentas IBAN para " +"realizar pagos válidos" #. module: account #: report:account.analytic.account.cost_ledger:0 @@ -7070,7 +7139,7 @@ msgstr "Códigos hijos" #. module: account #: view:account.tax.template:0 msgid "Taxes used in Sales" -msgstr "" +msgstr "Impuestos usados en ventas" #. module: account #: code:addons/account/account_invoice.py:495 @@ -7117,6 +7186,10 @@ msgid "" "accounting application of OpenERP, journals and accounts will be created " "automatically based on these data." msgstr "" +"Configure el número de cuenta de su compañía y seleccione aquel que debe " +"aparecer en el pie del informe. Puede reorganizar los bancos en la vista de " +"lista. Si utiliza la aplicación de contabilidad de OpeneRP, los diarios y " +"periodos serán creados automáticamente basados en estos datos." #. module: account #: model:process.transition,note:account.process_transition_invoicemanually0 @@ -7150,7 +7223,7 @@ msgstr "Doc. Fuente" #: code:addons/account/account.py:1432 #, python-format msgid "You can not delete a posted journal entry \"%s\"!" -msgstr "" +msgstr "¡No puede borrar un asiento asentado \"%s\"¡" #. module: account #: selection:account.partner.ledger,filter:0 @@ -7168,7 +7241,7 @@ msgstr "Extractos de Conciliación" #. module: account #: model:ir.model,name:account.model_accounting_report msgid "Accounting Report" -msgstr "" +msgstr "Informe Financiero" #. module: account #: report:account.invoice:0 @@ -7197,7 +7270,7 @@ msgstr "" #. module: account #: model:ir.actions.act_window,name:account.action_account_report_tree_hierarchy msgid "Financial Reports Hierarchy" -msgstr "" +msgstr "Jerarquía de informes financieros" #. module: account #: field:account.entries.report,product_uom_id:0 @@ -7269,11 +7342,13 @@ msgid "" "Can not find a chart of account, you should create one from the " "configuration of the accounting menu." msgstr "" +"No puede encontrar un árbol de cuentas, debería crear uno desde la " +"configuración del menú de contabilidad" #. module: account #: field:account.chart.template,property_account_expense_opening:0 msgid "Opening Entries Expense Account" -msgstr "" +msgstr "Apuntes de cuenta de gastos" #. module: account #: code:addons/account/account_move_line.py:999 @@ -7289,7 +7364,7 @@ msgstr "Plantilla de cuenta padre" #. module: account #: model:ir.actions.act_window,name:account.action_account_configuration_installer msgid "Install your Chart of Accounts" -msgstr "" +msgstr "Instalar su Plan de Cuentas" #. module: account #: view:account.bank.statement:0 @@ -7317,12 +7392,12 @@ msgstr "" #. module: account #: view:account.entries.report:0 msgid "Posted entries" -msgstr "" +msgstr "Asientos contabilizados" #. module: account #: help:account.payment.term.line,value_amount:0 msgid "For percent enter a ratio between 0-1." -msgstr "" +msgstr "Para porcentaje introduzca un ratio entre 0-1" #. module: account #: report:account.invoice:0 @@ -7335,7 +7410,7 @@ msgstr "Fecha de Factura" #. module: account #: view:account.invoice.report:0 msgid "Group by year of Invoice Date" -msgstr "" +msgstr "Agrupar por año de fecha de factura" #. module: account #: help:res.partner,credit:0 @@ -7397,7 +7472,7 @@ msgstr "Impuesto de compra por defecto" #. module: account #: field:account.chart.template,property_account_income_opening:0 msgid "Opening Entries Income Account" -msgstr "" +msgstr "Entradas de cuentas de Ingresos" #. module: account #: view:account.bank.statement:0 @@ -7424,7 +7499,7 @@ msgstr "You should have chosen periods that belongs to the same company" #. module: account #: model:ir.actions.act_window,name:account.action_review_payment_terms_installer msgid "Review your Payment Terms" -msgstr "" +msgstr "Revisar sus plazos de pago" #. module: account #: field:account.fiscalyear.close,report_name:0 @@ -7439,7 +7514,7 @@ msgstr "Crear Entradas" #. module: account #: view:res.partner:0 msgid "Information About the Bank" -msgstr "" +msgstr "Información del Banco" #. module: account #: model:ir.ui.menu,name:account.menu_finance_reporting @@ -7461,7 +7536,7 @@ msgstr "Aviso" #. module: account #: model:ir.actions.act_window,name:account.action_analytic_open msgid "Contracts/Analytic Accounts" -msgstr "" +msgstr "Contratos/cuentas analíticas" #. module: account #: field:account.bank.statement,ending_details_ids:0 @@ -7511,7 +7586,7 @@ msgstr "Usar modelo" #: code:addons/account/account.py:429 #, python-format msgid "Unable to adapt the initial balance (negative value)!" -msgstr "" +msgstr "!Imposible adaptar el balance inicial (valor negativo)¡" #. module: account #: model:ir.actions.act_window,help:account.action_account_moves_purchase @@ -7536,7 +7611,7 @@ msgstr "Detalle de Factura" #. module: account #: view:account.invoice.report:0 msgid "Customer And Supplier Refunds" -msgstr "" +msgstr "Devoluciones de clientes y proveedores" #. module: account #: field:account.financial.report,sign:0 @@ -7547,18 +7622,18 @@ msgstr "Signo en Reporte" #: code:addons/account/wizard/account_fiscalyear_close.py:73 #, python-format msgid "The periods to generate opening entries were not found" -msgstr "" +msgstr "El período para generar entradas abiertas no ha sido encontrado" #. module: account #: model:account.account.type,name:account.data_account_type_view msgid "Root/View" -msgstr "" +msgstr "Raíz/Vista" #. module: account #: code:addons/account/account.py:3121 #, python-format msgid "OPEJ" -msgstr "" +msgstr "OPEJ" #. module: account #: report:account.invoice:0 @@ -7582,7 +7657,7 @@ msgstr "Normal" #: model:ir.actions.act_window,name:account.action_email_templates #: model:ir.ui.menu,name:account.menu_email_templates msgid "Email Templates" -msgstr "" +msgstr "Plantillas de email" #. module: account #: view:account.move.line:0 @@ -7617,12 +7692,12 @@ msgstr "" #. module: account #: model:ir.ui.menu,name:account.menu_multi_currency msgid "Multi-Currencies" -msgstr "" +msgstr "Multi-moneda" #. module: account #: field:account.model.line,date_maturity:0 msgid "Maturity Date" -msgstr "" +msgstr "Fecha vencimiento" #. module: account #: code:addons/account/account_move_line.py:1302 @@ -7657,7 +7732,7 @@ msgstr "No piece number !" #: view:account.financial.report:0 #: model:ir.ui.menu,name:account.menu_account_report_tree_hierarchy msgid "Account Reports Hierarchy" -msgstr "" +msgstr "Jerarquía de informes contables" #. module: account #: help:account.account.template,chart_template_id:0 @@ -7668,11 +7743,16 @@ msgid "" "few new accounts (You don't need to define the whole structure that is " "common to both several times)." msgstr "" +"Este campo opcional le permite asociar una plantilla de cuentas a una " +"plantilla específica de arbol de cuentas que puede diferir de la que " +"pertenece su padre. Esto le permite definir plantillas de cuentas que " +"extienden otras y las completan con algunas cuentas nuevas (No necesita " +"definir la estructura completa que es comun a 2 varias veces)" #. module: account #: view:account.move:0 msgid "Unposted Journal Entries" -msgstr "" +msgstr "No Contabilizados" #. module: account #: view:product.product:0 @@ -7701,7 +7781,7 @@ msgstr "Para" #: code:addons/account/account.py:1518 #, python-format msgid "Currency Adjustment" -msgstr "" +msgstr "Ajustes de moneda" #. module: account #: field:account.fiscalyear.close,fy_id:0 @@ -7720,6 +7800,8 @@ msgstr "Cancelar Facturas seleccionadas" msgid "" "This field is used to generate legal reports: profit and loss, balance sheet." msgstr "" +"Este campo se usa para generar informes legales: pérdidas y ganancias, " +"balance." #. module: account #: model:ir.actions.act_window,help:account.action_review_payment_terms_installer @@ -7729,6 +7811,10 @@ msgid "" "terms for each letter. Each customer or supplier can be assigned to one of " "these payment terms." msgstr "" +"Los tipos de pago definen las condiciones para pagar una factura de cliente " +"o proveedor en uno o varios pagos. Las alarmas periódicas de cliente " +"utilizarán las formas de pago para cada carta. Cada cliente o proveedor " +"puede ser asignado a uno de estos tipos de pago." #. module: account #: selection:account.entries.report,month:0 @@ -7756,6 +7842,7 @@ msgstr "Cuentas por pagar" #, python-format msgid "Global taxes defined, but they are not in invoice lines !" msgstr "" +"¡Impuestos globales definidos, pero no están en las líneas de factura!" #. module: account #: model:ir.model,name:account.model_account_chart_template @@ -7768,6 +7855,8 @@ msgid "" "The sequence field is used to order the resources from lower sequences to " "higher ones." msgstr "" +"El campo secuencia se usa para ordenar los recursos desde la secuencia más " +"baja a la más alta" #. module: account #: field:account.tax.code,code:0 @@ -7788,7 +7877,7 @@ msgstr "Impuestos en venta" #. module: account #: field:account.financial.report,name:0 msgid "Report Name" -msgstr "" +msgstr "Nombre del informe" #. module: account #: model:account.account.type,name:account.data_account_type_cash @@ -7847,17 +7936,17 @@ msgstr "Sequence" #. module: account #: constraint:product.category:0 msgid "Error ! You cannot create recursive categories." -msgstr "" +msgstr "¡Error! No puede crear categorías recursivas" #. module: account #: help:account.model.line,quantity:0 msgid "The optional quantity on entries." -msgstr "" +msgstr "Cantidad opcional en las entradas" #. module: account #: view:account.financial.report:0 msgid "Parent Report" -msgstr "" +msgstr "Informe padre" #. module: account #: view:account.state.open:0 @@ -7907,7 +7996,7 @@ msgstr " 7 Días " #. module: account #: field:account.bank.statement,balance_end:0 msgid "Computed Balance" -msgstr "" +msgstr "Balance calculado" #. module: account #: field:account.account,parent_id:0 @@ -8036,6 +8125,8 @@ msgstr "Seleccione una moneda para aplicar a la factura" msgid "" "The bank account defined on the selected chart of accounts hasn't a code." msgstr "" +"La cuenta bancaria definida en el árbol de cuentas seleccionado no tiene " +"código" #. module: account #: code:addons/account/wizard/account_invoice_refund.py:108 @@ -8052,7 +8143,7 @@ msgstr "No hay detalle de Factura !" #. module: account #: view:account.financial.report:0 msgid "Report Type" -msgstr "" +msgstr "Tipo de Informe" #. module: account #: view:account.analytic.account:0 @@ -8096,6 +8187,8 @@ msgid "" "The statement balance is incorrect !\n" "The expected balance (%.2f) is different than the computed one. (%.2f)" msgstr "" +"El balance del asiento es incorrecto\n" +"El balance esperado (%.2f) es diferente al calculado. (%.2f)" #. module: account #: code:addons/account/account_bank_statement.py:353 @@ -8113,6 +8206,13 @@ msgid "" "Most of the OpenERP operations (invoices, timesheets, expenses, etc) " "generate analytic entries on the related account." msgstr "" +"La estructura normal de cuentas tiene una estructura definida por los " +"requerimientos legales del país. La estructura de árbol de cuentas " +"analíticas reflejan sus propias necesidades de negocio en términos de " +"informes coste/beneficio. Son usualmente estructurados en función de " +"contratos, proyectos, productos o departamentos. La mayoría de las " +"operaciones de OpenERP (facturas, imputaciones de horas, gastos, etc) " +"generan entradas analíticas en la cuenta relacionada." #. module: account #: field:account.account.type,close_method:0 @@ -8149,6 +8249,7 @@ msgstr "" msgid "" "Check this box if this account allows reconciliation of journal items." msgstr "" +"Haz click en esta casilla si la cuenta permite conciliación de asientos" #. module: account #: help:account.period,state:0 @@ -8178,7 +8279,7 @@ msgstr "Asientos analíticos" #. module: account #: view:report.account_type.sales:0 msgid "This Months Sales by type" -msgstr "" +msgstr "Ventas del mes por tipo" #. module: account #: view:account.analytic.account:0 @@ -8210,6 +8311,16 @@ msgid "" "related journal entries may or may not be reconciled. \n" "* The 'Cancelled' state is used when user cancel invoice." msgstr "" +" * El estado borrador se usa cuando un usuario está codificando una factura " +"nueva y no confirmada \n" +"* El estado 'pro-forma' cuando la factura está en el estado pro-forma, aún " +"no tiene número de factura\n" +"* El estado 'abierto\" se usa cuando el usuario crea una factura y se genera " +"un número de factura. Se queda en estado abierto hasta que el usuario pague " +"la factura.\n" +"* El estado 'pagada' se asigna automáticamente cuando se paga la factura. Su " +"asiento relacionado puede ser o no ser conciliado.\n" +"* El estado 'cancelado' se usa cuando el usuario cancela la factura." #. module: account #: view:account.invoice.report:0 @@ -8240,6 +8351,7 @@ msgstr "" msgid "" "Can not find a chart of accounts for this company, you should create one." msgstr "" +"No pued encontrar un plan de cuentas para esta compañía, debería crear una." #. module: account #: view:account.invoice:0 @@ -8270,12 +8382,12 @@ msgstr "For Tax Type percent enter % ratio between 0-1." #. module: account #: view:account.analytic.account:0 msgid "Current Accounts" -msgstr "" +msgstr "Cuentas actuales" #. module: account #: view:account.invoice.report:0 msgid "Group by Invoice Date" -msgstr "" +msgstr "Agrupar por fecha de factura" #. module: account #: view:account.invoice.refund:0 @@ -8317,6 +8429,8 @@ msgid "" "Total amount (in Company currency) for transactions held in secondary " "currency for this account." msgstr "" +"Importe total (en la moneda de la compañía) para transacciones realizadas en " +"una moneda secundaria para esta cuenta" #. module: account #: report:account.invoice:0 @@ -8354,6 +8468,8 @@ msgid "" "You can not cancel an invoice which is partially paid! You need to " "unreconcile related payment entries first!" msgstr "" +"¡No puede cancelar una factura que está parcialmente pagada! !Primero " +"necesita romper la conciliación de los asientos relacionados¡" #. module: account #: field:account.chart.template,property_account_income_categ:0 @@ -8363,7 +8479,7 @@ msgstr "Cuenta de la categoría de ingresos" #. module: account #: field:account.account,adjusted_balance:0 msgid "Adjusted Balance" -msgstr "" +msgstr "Balance ajustado" #. module: account #: model:ir.actions.act_window,name:account.action_account_fiscal_position_template_form @@ -8384,7 +8500,7 @@ msgstr "Importe impuestos/base" #. module: account #: view:account.payment.term.line:0 msgid " Valuation: Percent" -msgstr "" +msgstr " Valoración: Porcentaje" #. module: account #: model:ir.actions.act_window,help:account.action_invoice_tree3 @@ -8485,7 +8601,7 @@ msgstr "Cuentas comunes" #: view:account.invoice.report:0 #: view:analytic.entries.report:0 msgid "current month" -msgstr "" +msgstr "Mes actual" #. module: account #: code:addons/account/account.py:1052 @@ -8494,6 +8610,8 @@ msgid "" "No period defined for this date: %s !\n" "Please create one." msgstr "" +"¡No hay periodo definido para esta fecha: %s!\n" +"Por favor crear uno." #. module: account #: model:process.transition,name:account.process_transition_filestatement0 @@ -8521,7 +8639,7 @@ msgstr "Tipos de cuentas" #. module: account #: view:account.payment.term.line:0 msgid " Value amount: n.a" -msgstr "" +msgstr " Valor del importe: n.d." #. module: account #: view:account.automatic.reconcile:0 @@ -8553,6 +8671,13 @@ msgid "" "You should press this button to re-open it and let it continue its normal " "process after having resolved the eventual exceptions it may have created." msgstr "" +"Este botón solo aparece cuando el estado de la factura es 'pagado' " +"(mostrando que ha sido totalmente conciliado) y el campo booleano " +"autocalculado 'pagado/conciliado' es falso (representa que ya no es el " +"caso). En otras palabra, la conciliación de la factura ha sido rota y ya no " +"está en estado 'pagado'. Debería presionar este botón para volver a abrir la " +"factura y le permitirá continuar su proceso normal después de haber resuelto " +"la excepción eventual que lo puede haber producido." #. module: account #: model:ir.model,name:account.model_account_fiscalyear_close_state @@ -8593,6 +8718,7 @@ msgstr "" msgid "" "In order to close a period, you must first post related journal entries." msgstr "" +"Si desea cerrar un período, primero debe confirmar todos los asientos." #. module: account #: view:account.entries.report:0 @@ -8610,12 +8736,12 @@ msgstr "La cuenta de la empresa utilizada para esta factura." #: code:addons/account/account.py:3296 #, python-format msgid "Tax %.2f%%" -msgstr "" +msgstr "Impuestox %.2f%%" #. module: account #: view:account.analytic.account:0 msgid "Contacts" -msgstr "" +msgstr "Contactos" #. module: account #: field:account.tax.code,parent_id:0 @@ -8720,7 +8846,7 @@ msgstr "Facturas sin Pagar" #: code:addons/account/account_invoice.py:495 #, python-format msgid "The payment term of supplier does not have a payment term line!" -msgstr "" +msgstr "¡La forma de pago de proveedor no tiene detalle de forma de pago!" #. module: account #: field:account.move.line.reconcile,debit:0 @@ -8785,17 +8911,17 @@ msgstr "Nombre de Diario" #. module: account #: view:account.move.line:0 msgid "Next Partner Entries to reconcile" -msgstr "" +msgstr "Próximos asientos de cliente para conciliar" #. module: account #: selection:account.financial.report,style_overwrite:0 msgid "Smallest Text" -msgstr "" +msgstr "El texto más pequeño" #. module: account #: model:res.groups,name:account.group_account_invoice msgid "Invoicing & Payments" -msgstr "" +msgstr "Facturación y Pagos" #. module: account #: help:account.invoice,internal_number:0 @@ -8847,7 +8973,7 @@ msgid "" "You can not validate a non-balanced entry !\n" "Make sure you have configured payment terms properly !\n" "The latest payment term line should be of the type \"Balance\" !" -msgstr "" +msgstr "¡No puede validar un asiento sin cuadrar !" #. module: account #: view:account.account:0 @@ -8925,7 +9051,7 @@ msgstr "Dirección contacto" #: code:addons/account/account.py:2256 #, python-format msgid "Wrong model !" -msgstr "" +msgstr "¡Modelo erróneo!" #. module: account #: field:account.invoice.refund,period:0 @@ -8946,6 +9072,11 @@ msgid "" "accounts that are typically more credited than debited and that you would " "like to print as positive amounts in your reports; e.g.: Income account." msgstr "" +"Para cuentas que tipicamente tienen más débito que crédito y que desea " +"imprimir con importes negativos en sus informes, debería revertir el signo " +"en el balance;p.e: cuenta de gasto. La misma aplica para cuentas que " +"tipicamente tienen más crédito que débito y que desea imprimir con importes " +"positivos en sus informes. p.e: cuenta de ingresos." #. module: account #: field:res.partner,contract_ids:0 @@ -8987,7 +9118,7 @@ msgstr "" #: code:addons/account/account_invoice.py:808 #, python-format msgid "Please define sequence on the journal related to this invoice." -msgstr "" +msgstr "Por favor defina la secuencia de diario relacionado ." #. module: account #: view:account.move:0 @@ -8995,12 +9126,12 @@ msgstr "" #: view:account.move.line:0 #: field:account.move.line,narration:0 msgid "Internal Note" -msgstr "" +msgstr "Nota interna" #. module: account #: view:report.account.sales:0 msgid "This year's Sales by type" -msgstr "" +msgstr "Ventas de este año por tipo" #. module: account #: view:account.analytic.cost.ledger.journal.report:0 @@ -9054,7 +9185,7 @@ msgstr "Líneas de asiento" #. module: account #: model:ir.actions.act_window,name:account.action_view_financial_accounts_installer msgid "Review your Financial Accounts" -msgstr "" +msgstr "Revisión de sus cuentas financieras" #. module: account #: model:ir.actions.act_window,name:account.action_open_journal_button @@ -9135,7 +9266,7 @@ msgstr "Estimado Sr./ Sra." #. module: account #: field:account.vat.declaration,display_detail:0 msgid "Display Detail" -msgstr "" +msgstr "Mostrar detalles" #. module: account #: code:addons/account/account.py:3118 @@ -9180,7 +9311,7 @@ msgstr "Final de período" #: model:ir.actions.act_window,name:account.action_account_report_pl #: model:ir.ui.menu,name:account.menu_account_reports msgid "Financial Reports" -msgstr "" +msgstr "Informes financieros" #. module: account #: report:account.account.balance:0 @@ -9363,7 +9494,7 @@ msgstr "Leyenda" #. module: account #: view:account.analytic.account:0 msgid "Contract Data" -msgstr "" +msgstr "Datos de Contrato" #. module: account #: model:ir.actions.act_window,help:account.action_account_moves_sale @@ -9439,7 +9570,7 @@ msgstr "You can not change the tax, you should remove and recreate lines !" #. module: account #: view:analytic.entries.report:0 msgid "Analytic Entries of last 365 days" -msgstr "" +msgstr "Apuntes analíticos de los últimos 365 días" #. module: account #: report:account.central.journal:0 @@ -9502,7 +9633,7 @@ msgstr "" #. module: account #: view:account.invoice.report:0 msgid "Customer And Supplier Invoices" -msgstr "" +msgstr "Facturas de cliente y proveedor" #. module: account #: model:process.node,note:account.process_node_paymententries0 @@ -9542,6 +9673,8 @@ msgid "" "No opening/closing period defined, please create one to set the initial " "balance!" msgstr "" +"¡No existe periodo de apertura/cierre, por favor, cree uno para establecer " +"el balance inicial!" #. module: account #: report:account.account.balance:0 @@ -9590,6 +9723,12 @@ msgid "" "journals. Select 'Opening/Closing Situation' for entries generated for new " "fiscal years." msgstr "" +"Seleccione 'Ventas' para diarios de facturas de cliente. Seleccione " +"'Compras' para diarios de facturas de proveedor. Seleccione 'Caja' o 'Banco' " +"para diarios que se usan para pagos de clientes y proveedores. Seleccione " +"'General' para diarios que contienen operaciones varias. Seleccione 'Balance " +"apertura/cierre' para diarios que contendrán asientos creados en el nuevo " +"año fiscal." #. module: account #: model:ir.model,name:account.model_account_subscription @@ -9642,6 +9781,8 @@ msgid "" "It indicates that the invoice has been paid and the journal entry of the " "invoice has been reconciled with one or several journal entries of payment." msgstr "" +"Indica que la factura ha sido pagada y que el asiento de la factura ha sido " +"conciliado con uno o varios asientos de pago." #. module: account #: view:account.invoice:0 @@ -9721,7 +9862,7 @@ msgstr "Activo" #. module: account #: view:accounting.report:0 msgid "Comparison" -msgstr "" +msgstr "Comparación" #. module: account #: code:addons/account/account_invoice.py:372 @@ -9795,7 +9936,7 @@ msgstr "" #: code:addons/account/account.py:181 #, python-format msgid "Profit & Loss (Income account)" -msgstr "" +msgstr "Pérdidas y ganancias (Cuenta de ingresos)" #. module: account #: constraint:account.account:0 @@ -9803,7 +9944,7 @@ msgid "" "Configuration Error! \n" "You can not select an account type with a deferral method different of " "\"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! " -msgstr "" +msgstr "¡Error de configuración! " #. module: account #: view:account.model:0 @@ -9840,7 +9981,7 @@ msgstr "General" #. module: account #: view:analytic.entries.report:0 msgid "Analytic Entries of last 30 days" -msgstr "" +msgstr "Apuntes analíticos de los últimos 30 días" #. module: account #: selection:account.aged.trial.balance,filter:0 @@ -9897,7 +10038,7 @@ msgstr "Abril" #. module: account #: model:account.financial.report,name:account.account_financial_report_profitloss_toreport0 msgid "Profit (Loss) to report" -msgstr "" +msgstr "Ganacias (Pérdida) para informe" #. module: account #: view:account.move.line.reconcile.select:0 @@ -9921,7 +10062,7 @@ msgstr "" #. module: account #: selection:account.financial.report,style_overwrite:0 msgid "Title 2 (bold)" -msgstr "" +msgstr "Título 2 (negrita)" #. module: account #: model:ir.actions.act_window,name:account.action_invoice_tree2 @@ -9962,6 +10103,9 @@ msgid "" "When new statement is created the state will be 'Draft'.\n" "And after getting confirmation from the bank it will be in 'Confirmed' state." msgstr "" +"Cuando se crea un nuevo recibo su estado será 'Borrador'\n" +"Y después de obtener la confirmación del banco quedará en estado " +"'Confirmado'." #. module: account #: model:ir.model,name:account.model_account_period @@ -10082,7 +10226,7 @@ msgstr "Secuencias de ejercicio fiscal" #. module: account #: selection:account.financial.report,display_detail:0 msgid "No detail" -msgstr "" +msgstr "Sin detalles" #. module: account #: code:addons/account/account_analytic_line.py:102 @@ -10094,14 +10238,14 @@ msgstr "" #. module: account #: constraint:account.move.line:0 msgid "You can not create journal items on closed account." -msgstr "" +msgstr "No puede crear asientos en cuentas cerradas" #. module: account #: field:account.account,unrealized_gain_loss:0 #: model:ir.actions.act_window,name:account.action_account_gain_loss #: model:ir.ui.menu,name:account.menu_unrealized_gains_losses msgid "Unrealized Gain or Loss" -msgstr "" +msgstr "Pérdidas y ganancias no realizadas" #. module: account #: view:account.fiscalyear:0 @@ -10114,12 +10258,12 @@ msgstr "Estados" #. module: account #: model:ir.actions.server,name:account.ir_actions_server_edi_invoice msgid "Auto-email confirmed invoices" -msgstr "" +msgstr "Auto-email facturas confirmadas" #. module: account #: field:account.invoice,check_total:0 msgid "Verification Total" -msgstr "" +msgstr "Validación total" #. module: account #: report:account.analytic.account.balance:0 @@ -10247,6 +10391,7 @@ msgstr "Cuentas Vacías? " #: constraint:account.bank.statement:0 msgid "The journal and period chosen have to belong to the same company." msgstr "" +"El diario y periodo seleccionados tienen que pertenecer a la misma compañía" #. module: account #: view:account.invoice:0 @@ -10276,7 +10421,7 @@ msgstr "" #. module: account #: view:wizard.multi.charts.accounts:0 msgid "Generate Your Chart of Accounts from a Chart Template" -msgstr "" +msgstr "Generar su plan de cuentas desde una plantilla de cuentas" #. module: account #: model:ir.actions.act_window,help:account.action_account_invoice_report_all @@ -10348,7 +10493,7 @@ msgstr "Débito" #. module: account #: selection:account.financial.report,style_overwrite:0 msgid "Title 3 (bold, smaller)" -msgstr "" +msgstr "Título 3 (negrita, más pequeña)" #. module: account #: field:account.invoice,invoice_line:0 @@ -10363,7 +10508,7 @@ msgstr "Error ! No puede crear cuentas recursivas" #. module: account #: selection:account.print.journal,sort_selection:0 msgid "Journal Entry Number" -msgstr "" +msgstr "Número de asiento" #. module: account #: view:account.subscription:0 @@ -10377,6 +10522,8 @@ msgid "" "You cannot change the type of account from 'Closed' to any other type which " "contains journal items!" msgstr "" +"¡No puede cambiar el tipo de cuenta desde 'cerrado' a cualquier otro tipo " +"que contenga asientos!" #. module: account #: code:addons/account/account_move_line.py:832 @@ -10402,7 +10549,7 @@ msgstr "Rango" #. module: account #: view:account.analytic.line:0 msgid "Analytic Journal Items related to a purchase journal." -msgstr "" +msgstr "Apuntes analíticos relacionados con un diario de compra" #. module: account #: help:account.account,type:0 @@ -10413,6 +10560,11 @@ msgid "" "payable/receivable are for partners accounts (for debit/credit " "computations), closed for depreciated accounts." msgstr "" +"El 'tipo interno' se usa para funcionalidad disponible en distintos tipos de " +"cuentas: las vistas no pueden contener asientos, consolicaciones son cuentas " +"que pueden tener cuentas hijas para consolidaciones multi-compañía, a " +"cobrar/a pagar son para cuentas de clientes (para cálculos de " +"débito/crédito), cerradas para cuentas depreciadas." #. module: account #: selection:account.balance.report,display_account:0 @@ -10454,7 +10606,7 @@ msgstr "Imprimir diarios analíticos" #. module: account #: view:account.invoice.report:0 msgid "Group by month of Invoice Date" -msgstr "" +msgstr "Agrupar por mes" #. module: account #: view:account.analytic.line:0 @@ -10521,7 +10673,7 @@ msgstr "" #. module: account #: view:account.payment.term:0 msgid "Description On Invoices" -msgstr "" +msgstr "Descripción en facturas" #. module: account #: model:ir.model,name:account.model_account_analytic_chart @@ -10548,7 +10700,7 @@ msgstr "Error en Cuenta !" #. module: account #: field:account.print.journal,sort_selection:0 msgid "Entries Sorted by" -msgstr "" +msgstr "Entradas ordenadas por" #. module: account #: help:account.move,state:0 @@ -10559,6 +10711,11 @@ msgid "" "created by the system on document validation (invoices, bank statements...) " "and will be created in 'Posted' state." msgstr "" +"Todos los asientos creados manualmente usualmente están en estado 'no " +"asentado', pero puede marcar la opción para saltar este estado en el diario " +"relacionado. En este caso, serán tratados como asientos creados " +"automáticamente por el sistema en la validación de documentos ( facturas, " +"recibos bancarios...) y serán creados en estado 'Asentado'" #. module: account #: view:account.fiscal.position.template:0 @@ -10584,6 +10741,7 @@ msgstr "Noviembre" #: selection:account.invoice.refund,filter_refund:0 msgid "Modify: refund invoice, reconcile and create a new draft invoice" msgstr "" +"Modificar: Factura devolución, reconcilia y crea una nueva factura borrador." #. module: account #: help:account.invoice.line,account_id:0 @@ -10688,6 +10846,75 @@ msgid "" "% endif\n" " " msgstr "" +"\n" +"Hello${object.address_invoice_id.name and ' ' or " +"''}${object.address_invoice_id.name or ''},\n" +"\n" +"A new invoice is available for ${object.partner_id.name}:\n" +" | Invoice number: *${object.number}*\n" +" | Invoice total: *${object.amount_total} ${object.currency_id.name}*\n" +" | Invoice date: ${object.date_invoice}\n" +" % if object.origin:\n" +" | Order reference: ${object.origin}\n" +" % endif\n" +" | Your contact: ${object.user_id.name} ${object.user_id.user_email " +"and '<%s>'%(object.user_id.user_email) or ''}\n" +"\n" +"You can view the invoice document, download it and pay online using the " +"following link:\n" +" ${ctx.get('edi_web_url_view') or 'n/a'}\n" +"\n" +"% if object.company_id.paypal_account and object.type in ('out_invoice', " +"'in_refund'):\n" +"<% \n" +"comp_name = quote(object.company_id.name)\n" +"inv_number = quote(object.number)\n" +"paypal_account = quote(object.company_id.paypal_account)\n" +"inv_amount = quote(str(object.amount_total))\n" +"cur_name = quote(object.currency_id.name)\n" +"paypal_url = \"https://www.paypal.com/cgi-" +"bin/webscr?cmd=_xclick&business=%s&item_name=%s%%20Invoice%%20%s\"\\\n" +" " +"\"&invoice=%s&amount=%s¤cy_code=%s&button_subtype=services&no_note=1&bn" +"=OpenERP_Invoice_PayNow_%s\" % \\\n" +" " +"(paypal_account,comp_name,inv_number,inv_number,inv_amount,cur_name,cur_name)" +"\n" +"%>\n" +"It is also possible to directly pay with Paypal:\n" +" ${paypal_url}\n" +"% endif\n" +"\n" +"If you have any question, do not hesitate to contact us.\n" +"\n" +"\n" +"Thank you for choosing ${object.company_id.name}!\n" +"\n" +"\n" +"--\n" +"${object.user_id.name} ${object.user_id.user_email and " +"'<%s>'%(object.user_id.user_email) or ''}\n" +"${object.company_id.name}\n" +"% if object.company_id.street:\n" +"${object.company_id.street or ''}\n" +"% endif\n" +"% if object.company_id.street2:\n" +"${object.company_id.street2}\n" +"% endif\n" +"% if object.company_id.city or object.company_id.zip:\n" +"${object.company_id.zip or ''} ${object.company_id.city or ''}\n" +"% endif\n" +"% if object.company_id.country_id:\n" +"${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) " +"or ''} ${object.company_id.country_id.name or ''}\n" +"% endif\n" +"% if object.company_id.phone:\n" +"Phone: ${object.company_id.phone}\n" +"% endif\n" +"% if object.company_id.website:\n" +"${object.company_id.website or ''}\n" +"% endif\n" +" " #. module: account #: model:ir.model,name:account.model_res_partner_bank @@ -10872,6 +11099,8 @@ msgid "" "This label will be displayed on report to show the balance computed for the " "given comparison filter." msgstr "" +"Esta etiqueta será mostrada en el informe para mostrar el balance calculado " +"para el filtro de comparación introducido." #. module: account #: code:addons/account/wizard/account_report_aged_partner_balance.py:56 diff --git a/addons/account/i18n/sl.po b/addons/account/i18n/sl.po index ac03f0ea172..df6abdab038 100644 --- a/addons/account/i18n/sl.po +++ b/addons/account/i18n/sl.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-03-22 13:59+0000\n" -"Last-Translator: Matjaz Kalic \n" +"PO-Revision-Date: 2012-03-26 19:25+0000\n" +"Last-Translator: Gregor Ljubič (radioglas.com) \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-23 05:12+0000\n" -"X-Generator: Launchpad (build 14996)\n" +"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" +"X-Generator: Launchpad (build 15011)\n" #. module: account #: view:account.invoice.report:0 @@ -25,7 +25,7 @@ msgstr "prejšnji mesec" #. module: account #: model:process.transition,name:account.process_transition_supplierreconcilepaid0 msgid "System payment" -msgstr "Sistemsko plačilo" +msgstr "Plačilni sistem" #. module: account #: view:account.journal:0 @@ -38,6 +38,8 @@ msgid "" "Determine the display order in the report 'Accounting \\ Reporting \\ " "Generic Reporting \\ Taxes \\ Taxes Report'" msgstr "" +"Določite vrstni red prikaza v poročilu 'Računi \\ Poročanje \\ Generično " +"poročanje \\ Davki \\ Poročila davkov" #. module: account #: view:account.move.reconcile:0 @@ -50,12 +52,12 @@ msgstr "Uskladi dnevniški zapis" #: view:account.move:0 #: view:account.move.line:0 msgid "Account Statistics" -msgstr "Statistike konta" +msgstr "Statisktika Uporabniškega Računa" #. module: account #: view:account.invoice:0 msgid "Proforma/Open/Paid Invoices" -msgstr "" +msgstr "Proforma/Odpri/Plačani računi" #. module: account #: field:report.invoice.created,residual:0 @@ -81,12 +83,12 @@ msgstr "Definicija otroka" #: code:addons/account/account_bank_statement.py:302 #, python-format msgid "Journal item \"%s\" is not valid." -msgstr "" +msgstr "Element lista \"%s\" ni veljaven." #. module: account #: model:ir.model,name:account.model_report_aged_receivable msgid "Aged Receivable Till Today" -msgstr "Zastarane terjatve do danes" +msgstr "Zastarele Terjave Do Danes" #. module: account #: model:process.transition,name:account.process_transition_invoiceimport0 @@ -118,6 +120,8 @@ msgid "" "Configuration error! The currency chosen should be shared by the default " "accounts too." msgstr "" +"Konfiguracijska napaka! Izbrano valuto je potrebno deliti z privzetimi " +"računi." #. module: account #: report:account.invoice:0 @@ -168,18 +172,18 @@ msgstr "Opozorilo!" #: code:addons/account/account.py:3112 #, python-format msgid "Miscellaneous Journal" -msgstr "" +msgstr "Razni listi" #. module: account #: field:account.fiscal.position.account,account_src_id:0 #: field:account.fiscal.position.account.template,account_src_id:0 msgid "Account Source" -msgstr "Vir konta" +msgstr "Vir Uporabniškega Računa" #. module: account #: model:ir.actions.act_window,name:account.act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal msgid "All Analytic Entries" -msgstr "Vsa stroškovna mesta" +msgstr "Vsa Strokovna Mesta" #. module: account #: model:ir.actions.act_window,name:account.action_view_created_invoice_dashboard @@ -189,7 +193,7 @@ msgstr "Računi narejeni v zadnjih 15-ih dneh" #. module: account #: field:accounting.report,label_filter:0 msgid "Column Label" -msgstr "" +msgstr "Oznaka stolpca" #. module: account #: code:addons/account/wizard/account_move_journal.py:95 @@ -216,12 +220,12 @@ msgstr "Predloge davka" #. module: account #: model:ir.model,name:account.model_account_tax msgid "account.tax" -msgstr "account.tax" +msgstr "Davek Računa" #. module: account #: model:ir.model,name:account.model_account_move_line_reconcile_select msgid "Move line reconcile select" -msgstr "" +msgstr "Izberite usklajeno premaknjeno linijo" #. module: account #: help:account.tax.code,notprintable:0 @@ -262,6 +266,9 @@ msgid "" "legal reports, and set the rules to close a fiscal year and generate opening " "entries." msgstr "" +"Vrsta računa se uporablja za namene informacij, generiranje legalna državna " +"poročila in nastavitve pravila za zaključek poslovnega leta in ustvarjanje " +"odprtih vnosov." #. module: account #: report:account.overdue:0 @@ -325,8 +332,8 @@ msgid "" "Configuration/Financial Accounting/Accounts/Journals." msgstr "" "Ni mogoče najti računa revije tipa % s za to podjetje.\n" -"Lahko ga odprete v meniju:\n" -"Konfiguracija / finančno računovodstvo / računovodski izkazi / revije." +"Lahko ga ustvarite v meniju:\n" +"Konfiguracija / Finančno Računovodstvo / Uporabniški Računi / Dnevniki." #. module: account #: model:ir.model,name:account.model_account_unreconcile @@ -346,6 +353,9 @@ msgid "" "leave the automatic formatting, it will be computed based on the financial " "reports hierarchy (auto-computed field 'level')." msgstr "" +"Tukaj lahko nastavite željeni format zapisa, ki bo prikazan. Če pustite " +"samodejno oblikovanje, bo izračunana na podlagi finančnega poročila " +"hierarhije (avtomatsko-izračunana polja 'nivo')." #. module: account #: view:account.installer:0 @@ -368,21 +378,24 @@ msgid "" "OpenERP. Journal items are created by OpenERP if you use Bank Statements, " "Cash Registers, or Customer/Supplier payments." msgstr "" +"Pogled je uporabljen za računovodje, z namenom shranjevanja množičnih vnosov " +"v OpenERP. Postavke so ustvarjeni z OpenERP, če uporabljate bančne izkaze, " +"blagajne, plačila strank ali dobaviteljev." #. module: account #: constraint:account.move.line:0 msgid "You can not create journal items on an account of type view." -msgstr "" +msgstr "Ne morete ustvariti dnevniške postavke kot tip pogleda na račun." #. module: account #: model:ir.model,name:account.model_account_tax_template msgid "account.tax.template" -msgstr "account.tax.template" +msgstr "Uporabniški Račun.Davek.Predloga" #. module: account #: model:ir.model,name:account.model_account_bank_accounts_wizard msgid "account.bank.accounts.wizard" -msgstr "account.bank.accounts.wizard" +msgstr "Uporabniški Račun.Banka.Uporabniški Računi.Čarovnik" #. module: account #: field:account.move.line,date_created:0 @@ -393,7 +406,7 @@ msgstr "Datum nastanka" #. module: account #: selection:account.journal,type:0 msgid "Purchase Refund" -msgstr "Nakup vračilo" +msgstr "Vračilo Nakupa" #. module: account #: selection:account.journal,type:0 @@ -403,12 +416,12 @@ msgstr "Odpiranje / zapiranje stanja" #. module: account #: help:account.journal,currency:0 msgid "The currency used to enter statement" -msgstr "Valuta za vnos izkaza" +msgstr "Valuta Uporabljena za vnos stanja" #. module: account #: field:account.open.closed.fiscalyear,fyear_id:0 msgid "Fiscal Year to Open" -msgstr "Poslovno leto za odpret" +msgstr "Poslovno Leto Odprtja" #. module: account #: help:account.journal,sequence_id:0 @@ -552,7 +565,7 @@ msgstr "Račun za vračilo" #. module: account #: report:account.overdue:0 msgid "Li." -msgstr "" +msgstr "Li" #. module: account #: field:account.automatic.reconcile,unreconciled:0 @@ -563,7 +576,7 @@ msgstr "Neusklajene transakcije" #: report:account.general.ledger:0 #: report:account.general.ledger_landscape:0 msgid "Counterpart" -msgstr "" +msgstr "Protipostavka" #. module: account #: view:account.fiscal.position:0 @@ -625,7 +638,7 @@ msgstr "Zaporedja" #: field:account.financial.report,account_report_id:0 #: selection:account.financial.report,type:0 msgid "Report Value" -msgstr "" +msgstr "Vrednost poročila" #. module: account #: view:account.fiscal.position.template:0 @@ -647,6 +660,7 @@ msgstr "Glavno Zaporedje mora biti različno od trenutnega!" #, python-format msgid "No period found or more than one period found for the given date." msgstr "" +"Najdenega ni nobenega obdobja oziroma več kot le eno obdobje za podan čas." #. module: account #: field:account.invoice.tax,tax_amount:0 @@ -657,7 +671,7 @@ msgstr "Znesek davčne stopnje" #: code:addons/account/account.py:3116 #, python-format msgid "SAJ" -msgstr "" +msgstr "SAJ" #. module: account #: view:account.period:0 @@ -668,7 +682,7 @@ msgstr "Zapri obdobje" #. module: account #: model:ir.model,name:account.model_account_common_partner_report msgid "Account Common Partner Report" -msgstr "" +msgstr "Skupno poročilo uporabniškega partnerja" #. module: account #: field:account.fiscalyear.close,period_id:0 @@ -685,7 +699,7 @@ msgstr "Obdobje Dnevnika" #: code:addons/account/account_move_line.py:803 #, python-format msgid "To reconcile the entries company should be the same for all entries" -msgstr "" +msgstr "Usklajeni vnosi podjetja bi morali biti enaki za vse vpise" #. module: account #: view:account.account:0 @@ -705,11 +719,13 @@ msgid "" "The date of your Journal Entry is not in the defined period! You should " "change the date or remove this constraint from the journal." msgstr "" +"Datum vašega vnosa v dnevnik ni v določenem obdobju! Moral bi spremeniti " +"datum ali odstraniti omejitve." #. module: account #: model:ir.model,name:account.model_account_report_general_ledger msgid "General Ledger Report" -msgstr "" +msgstr "Osnovno ledger poročilo" #. module: account #: view:account.invoice:0 @@ -724,22 +740,22 @@ msgstr "prosim potrdite knjiženje" #. module: account #: view:account.invoice:0 msgid "Print Invoice" -msgstr "" +msgstr "Tiskanje publikacije" #. module: account #: field:account.partner.reconcile.process,today_reconciled:0 msgid "Partners Reconciled Today" -msgstr "" +msgstr "Partnerji danes usklajeni" #. module: account #: view:report.hr.timesheet.invoice.journal:0 msgid "Sale journal in this year" -msgstr "" +msgstr "Prodaja v letošnjem letu" #. module: account #: selection:account.financial.report,display_detail:0 msgid "Display children with hierarchy" -msgstr "" +msgstr "Hierarhično prikazovanje otrok" #. module: account #: selection:account.payment.term.line,value:0 @@ -757,23 +773,23 @@ msgstr "Načrti" #: model:ir.model,name:account.model_project_account_analytic_line #, python-format msgid "Analytic Entries by line" -msgstr "" +msgstr "Analitična vstavljanja v vrstah" #. module: account #: field:account.invoice.refund,filter_refund:0 msgid "Refund Method" -msgstr "" +msgstr "Vrsta vračila" #. module: account #: code:addons/account/wizard/account_change_currency.py:38 #, python-format msgid "You can only change currency for Draft Invoice !" -msgstr "" +msgstr "Spremenite lahko samo valuto računa za leto!" #. module: account #: model:ir.ui.menu,name:account.menu_account_report msgid "Financial Report" -msgstr "" +msgstr "Računovodsko poročilo" #. module: account #: view:account.analytic.journal:0 @@ -796,12 +812,12 @@ msgstr "Vrsta" msgid "" "Taxes are missing!\n" "Click on compute button." -msgstr "" +msgstr "Davki manjkajo" #. module: account #: model:ir.model,name:account.model_account_subscription_line msgid "Account Subscription Line" -msgstr "" +msgstr "Vrsta naročnine računa" #. module: account #: help:account.invoice,reference:0 @@ -811,7 +827,7 @@ msgstr "Sklicna številka partnerja na tem računu." #. module: account #: view:account.invoice.report:0 msgid "Supplier Invoices And Refunds" -msgstr "" +msgstr "Dobaviteljevi računi in nadomestila" #. module: account #: view:account.move.line.unreconcile.select:0 @@ -825,21 +841,22 @@ msgstr "Preklic uskladitve" #: view:account.payment.term.line:0 msgid "At 14 net days 2 percent, remaining amount at 30 days end of month." msgstr "" +"Na 14 dni neto 2 odstotka, preostali znesek v 30 dneh do konca meseca." #. module: account #: model:ir.model,name:account.model_account_analytic_journal_report msgid "Account Analytic Journal" -msgstr "" +msgstr "Analitični račun" #. module: account #: model:ir.model,name:account.model_account_automatic_reconcile msgid "Automatic Reconcile" -msgstr "" +msgstr "Samodejno usklajevanje" #. module: account #: report:account.analytic.account.quantity_cost_ledger:0 msgid "J.C./Move name" -msgstr "" +msgstr "J.C./Premakni ime" #. module: account #: model:ir.actions.act_window,help:account.action_account_gain_loss @@ -849,6 +866,10 @@ msgid "" "or Loss you'd realized if those transactions were ended today. Only for " "accounts having a secondary currency set." msgstr "" +"Pri tem več valutne transakcije, boste izgubili ali pridobili nekaj višine " +"zaradi spremembe tečaja. Ta meni vam napoved dobička ali izgube, ki ste jo " +"uresničila, če so te transakcije končala danes. Samo za račune, ki imajo " +"srednjo valute set." #. module: account #: selection:account.entries.report,month:0 @@ -868,7 +889,7 @@ msgstr "dni" #: help:account.account.template,nocreate:0 msgid "" "If checked, the new chart of accounts will not contain this by default." -msgstr "" +msgstr "Če je označeno, nov konto ne bo vseboval privzetih vrednosti." #. module: account #: code:addons/account/wizard/account_invoice_refund.py:110 @@ -877,11 +898,13 @@ msgid "" "Can not %s invoice which is already reconciled, invoice should be " "unreconciled first. You can only Refund this invoice" msgstr "" +"Ne morem % s računa, ki je že potrjen, račun je potrebno razveljaviti. Račun " +"lahko samo preknjižite." #. module: account #: model:ir.actions.act_window,name:account.action_subscription_form_new msgid "New Subscription" -msgstr "" +msgstr "Nova naročnina" #. module: account #: view:account.payment.term:0 @@ -891,7 +914,7 @@ msgstr "Izračun" #. module: account #: selection:account.invoice.refund,filter_refund:0 msgid "Cancel: refund invoice and reconcile" -msgstr "" +msgstr "Prekliči: vračilo računa in usklajevanje" #. module: account #: field:account.cashbox.line,pieces:0 @@ -928,6 +951,8 @@ msgid "" "You cannot validate this journal entry because account \"%s\" does not " "belong to chart of accounts \"%s\"!" msgstr "" +"Ne moreš potrditi ta vnos v dnevnik, ker uporabniški račun \"% s\" ne " +"pripada kontnem načrtu \"% s\"!" #. module: account #: code:addons/account/account_move_line.py:835 @@ -936,6 +961,8 @@ msgid "" "This account does not allow reconciliation! You should update the account " "definition to change this." msgstr "" +"Ta račun ne omogoča spravo! Posodobiti morate uporabniške pravice v kolikor " +"želite spremeniti ." #. module: account #: view:account.invoice:0 @@ -974,12 +1001,12 @@ msgstr "Razširjeni filtri..." #. module: account #: model:ir.ui.menu,name:account.menu_account_central_journal msgid "Centralizing Journal" -msgstr "" +msgstr "Osrednji dnevnik" #. module: account #: selection:account.journal,type:0 msgid "Sale Refund" -msgstr "" +msgstr "Prodana vrednost" #. module: account #: model:process.node,note:account.process_node_accountingstatemententries0 @@ -998,12 +1025,15 @@ msgid "" "amount.If the tax account is base tax code, this field will contain the " "basic amount(without tax)." msgstr "" +"Če je davčni obračun označba davka računa, bo to polje vsebovalo obdavčeno " +"vrednost. Če je davčni račun osnovna davčna številka, bo polje vsebovalo " +"osnovni znesek (brez davka)." #. module: account #: code:addons/account/account.py:2596 #, python-format msgid "I can not locate a parent code for the template account!" -msgstr "" +msgstr "Ne morem najti nadrejeno kodo za predlogo računa!" #. module: account #: view:account.analytic.line:0 @@ -1013,7 +1043,7 @@ msgstr "Nabave" #. module: account #: field:account.model,lines_id:0 msgid "Model Entries" -msgstr "" +msgstr "Vnosi modela" #. module: account #: field:account.account,code:0 @@ -1049,18 +1079,18 @@ msgstr "Ni analitičnega dnevnika!" #: model:ir.actions.report.xml,name:account.account_3rdparty_account_balance #: model:ir.ui.menu,name:account.menu_account_partner_balance_report msgid "Partner Balance" -msgstr "" +msgstr "Bilanca partnerja" #. module: account #: field:account.bank.accounts.wizard,acc_name:0 msgid "Account Name." -msgstr "" +msgstr "Uporabniško ime" #. module: account #: field:account.chart.template,property_reserve_and_surplus_account:0 #: field:res.company,property_reserve_and_surplus_account:0 msgid "Reserve and Profit/Loss Account" -msgstr "" +msgstr "Rezerva in dobiček/izguba računa" #. module: account #: field:report.account.receivable,name:0 @@ -1079,11 +1109,13 @@ msgid "" "You cannot change the type of account from '%s' to '%s' type as it contains " "journal items!" msgstr "" +"Ne morete spremeniti vrsto računa iz '% s' v '% s' tipa, saj vsebuje " +"elemente dnevnika!" #. module: account #: field:account.report.general.ledger,sortby:0 msgid "Sort by" -msgstr "" +msgstr "Razvrsti po" #. module: account #: help:account.fiscalyear.close,fy_id:0 @@ -1096,18 +1128,20 @@ msgid "" "These types are defined according to your country. The type contains more " "information about the account and its specificities." msgstr "" +"Te vrste so opredeljene glede na vašo državo. Vrsta vsebuje več informacij o " +"računu in njegovih posebnosti." #. module: account #: code:addons/account/account_move_line.py:842 #, python-format msgid "" "You have to provide an account for the write off/exchange difference entry !" -msgstr "" +msgstr "Zagotoviti morate račun za odpis / razliko menjalne vrednosti!" #. module: account #: view:account.tax:0 msgid "Applicability Options" -msgstr "" +msgstr "Možnosti uporabe" #. module: account #: report:account.partner.balance:0 @@ -1136,7 +1170,7 @@ msgstr "Direktor" #. module: account #: view:account.subscription.generate:0 msgid "Generate Entries before:" -msgstr "" +msgstr "Ustvari vnose pred:" #. module: account #: view:account.move.line:0 @@ -1167,22 +1201,24 @@ msgid "" "Total amount (in Secondary currency) for transactions held in secondary " "currency for this account." msgstr "" +"Skupni znesek (v drugi valuti) transakcij, zdražane v drugi valuti za ta " +"uporabniški račun." #. module: account #: field:account.fiscal.position.tax,tax_dest_id:0 #: field:account.fiscal.position.tax.template,tax_dest_id:0 msgid "Replacement Tax" -msgstr "" +msgstr "Zamenjalni davek" #. module: account #: selection:account.move.line,centralisation:0 msgid "Credit Centralisation" -msgstr "" +msgstr "Centralizacija dobička" #. module: account #: view:report.account_type.sales:0 msgid "All Months Sales by type" -msgstr "" +msgstr "Mesečna prodaja po vrsti" #. module: account #: model:ir.actions.act_window,help:account.action_invoice_tree2 @@ -1207,12 +1243,12 @@ msgstr "Prekliči račun" #. module: account #: help:account.journal,code:0 msgid "The code will be displayed on reports." -msgstr "" +msgstr "Številka bo prikazana na poročilu." #. module: account #: view:account.tax.template:0 msgid "Taxes used in Purchases" -msgstr "" +msgstr "Davki uporabljeni v nakupu." #. module: account #: field:account.invoice.tax,tax_code_id:0 @@ -1225,7 +1261,7 @@ msgstr "Davčna stopnja" #. module: account #: field:account.account,currency_mode:0 msgid "Outgoing Currencies Rate" -msgstr "" +msgstr "Odhodna ocena valute" #. module: account #: selection:account.analytic.journal,type:0 @@ -1244,6 +1280,8 @@ msgid "" "You can not use this general account in this journal, check the tab 'Entry " "Controls' on the related journal !" msgstr "" +"Ne morete uporabiti splošni račun v tem dnevniku, preverite jeziček 'vhodne " +"kontrole' na podani dnevnik!" #. module: account #: field:account.move.line.reconcile,trans_nbr:0 @@ -1256,19 +1294,19 @@ msgstr "Številka transakcije" #: report:account.third_party_ledger:0 #: report:account.third_party_ledger_other:0 msgid "Entry Label" -msgstr "" +msgstr "Vstopno polje" #. module: account #: code:addons/account/account.py:1129 #, python-format msgid "You can not modify/delete a journal with entries for this period !" -msgstr "" +msgstr "Ne morete spreminjati/brisati dnevnik z vpisi za to obdobje!" #. module: account #: help:account.invoice,origin:0 #: help:account.invoice.line,origin:0 msgid "Reference of the document that produced this invoice." -msgstr "" +msgstr "Sklic na dokument, ki izdaja ta račun." #. module: account #: view:account.analytic.line:0 @@ -1279,7 +1317,7 @@ msgstr "Drugi" #. module: account #: view:account.subscription:0 msgid "Draft Subscription" -msgstr "" +msgstr "Osnutek naročnine" #. module: account #: view:account.account:0 @@ -1313,14 +1351,14 @@ msgstr "Konto" #. module: account #: field:account.tax,include_base_amount:0 msgid "Included in base amount" -msgstr "" +msgstr "Vključeno v osnovni višini" #. module: account #: view:account.entries.report:0 #: model:ir.actions.act_window,name:account.action_account_entries_report_all #: model:ir.ui.menu,name:account.menu_action_account_entries_report_all msgid "Entries Analysis" -msgstr "" +msgstr "Analiza vpisov" #. module: account #: field:account.account,level:0 @@ -1348,12 +1386,12 @@ msgstr "Davki" #: code:addons/account/wizard/account_report_common.py:144 #, python-format msgid "Select a starting and an ending period" -msgstr "" +msgstr "Izberi zagon in končni rok" #. module: account #: model:account.financial.report,name:account.account_financial_report_profitandloss0 msgid "Profit and Loss" -msgstr "" +msgstr "Dobiček in izguba" #. module: account #: model:ir.model,name:account.model_account_account_template @@ -1363,7 +1401,7 @@ msgstr "Predloge za konte" #. module: account #: view:account.tax.code.template:0 msgid "Search tax template" -msgstr "" +msgstr "Iskanje davčne predloge" #. module: account #: view:account.move.reconcile:0 @@ -1382,17 +1420,17 @@ msgstr "Zamujena plačila" #: report:account.third_party_ledger:0 #: report:account.third_party_ledger_other:0 msgid "Initial Balance" -msgstr "" +msgstr "Začetna bilanca" #. module: account #: view:account.invoice:0 msgid "Reset to Draft" -msgstr "" +msgstr "Ponastavi glede na osnutek" #. module: account #: view:wizard.multi.charts.accounts:0 msgid "Bank Information" -msgstr "" +msgstr "Informacije o banki" #. module: account #: view:account.aged.trial.balance:0 @@ -1403,7 +1441,7 @@ msgstr "Možnosti poročila" #. module: account #: model:ir.model,name:account.model_account_entries_report msgid "Journal Items Analysis" -msgstr "" +msgstr "Točke analize dnevnika" #. module: account #: model:ir.ui.menu,name:account.next_id_22 @@ -1440,7 +1478,7 @@ msgstr "S stanjem različnim od 0" #. module: account #: view:account.tax:0 msgid "Search Taxes" -msgstr "" +msgstr "Išči davke" #. module: account #: model:ir.model,name:account.model_account_analytic_cost_ledger @@ -1455,7 +1493,7 @@ msgstr "Ustvari vknjižbe" #. module: account #: field:account.entries.report,nbr:0 msgid "# of Items" -msgstr "" +msgstr "# postavk" #. module: account #: field:account.automatic.reconcile,max_amount:0 @@ -1476,13 +1514,13 @@ msgstr "# mest (števila)" #. module: account #: field:account.journal,entry_posted:0 msgid "Skip 'Draft' State for Manual Entries" -msgstr "" +msgstr "Preskoči 'osnutkovo' stanje za ročno vnašanje" #. module: account #: view:account.invoice.report:0 #: field:account.invoice.report,price_total:0 msgid "Total Without Tax" -msgstr "" +msgstr "Skupno brez davka" #. module: account #: model:ir.actions.act_window,help:account.action_move_journal_line @@ -1496,7 +1534,7 @@ msgstr "" #. module: account #: view:account.entries.report:0 msgid "# of Entries " -msgstr "" +msgstr "# vnosov " #. module: account #: help:account.fiscal.position,active:0 @@ -1504,11 +1542,13 @@ msgid "" "By unchecking the active field, you may hide a fiscal position without " "deleting it." msgstr "" +"Če odznačite aktivno polje, lahko skrijete fiskalni položaj, ne da bi ga " +"izbrisali." #. module: account #: model:ir.model,name:account.model_temp_range msgid "A Temporary table used for Dashboard view" -msgstr "" +msgstr "Začasna tabela, ki se uporablja za pripeti pogled" #. module: account #: model:ir.actions.act_window,name:account.action_invoice_tree4 @@ -1530,12 +1570,12 @@ msgstr "Zaprt" #. module: account #: model:ir.ui.menu,name:account.menu_finance_recurrent_entries msgid "Recurring Entries" -msgstr "" +msgstr "Podvojeni vnosi" #. module: account #: model:ir.model,name:account.model_account_fiscal_position_template msgid "Template for Fiscal Position" -msgstr "" +msgstr "Predloga za fiskalne položaje" #. module: account #: field:account.automatic.reconcile,reconciled:0 @@ -1571,17 +1611,17 @@ msgstr "Neobdavčeno" #. module: account #: view:account.partner.reconcile.process:0 msgid "Go to next partner" -msgstr "" +msgstr "Pojdi na naslednjega partnerja" #. module: account #: view:account.bank.statement:0 msgid "Search Bank Statements" -msgstr "" +msgstr "Iskanje bančnih računov" #. module: account #: view:account.move.line:0 msgid "Unposted Journal Items" -msgstr "" +msgstr "Neposlane točke dnevnika" #. module: account #: view:account.chart.template:0 @@ -1593,7 +1633,7 @@ msgstr "Konto obveznosti" #: field:account.tax,account_paid_id:0 #: field:account.tax.template,account_paid_id:0 msgid "Refund Tax Account" -msgstr "" +msgstr "Vračilo davka na račun" #. module: account #: view:account.bank.statement:0 @@ -1615,7 +1655,7 @@ msgstr "" #. module: account #: report:account.analytic.account.cost_ledger:0 msgid "Date/Code" -msgstr "" +msgstr "Datum/koda" #. module: account #: field:account.analytic.line,general_account_id:0 @@ -1643,17 +1683,17 @@ msgstr "Račun" #: model:process.node,note:account.process_node_analytic0 #: model:process.node,note:account.process_node_analyticcost0 msgid "Analytic costs to invoice" -msgstr "" +msgstr "Analitični stroški na račun" #. module: account #: view:ir.sequence:0 msgid "Fiscal Year Sequence" -msgstr "" +msgstr "Fiskalna letna frekvenca" #. module: account #: field:wizard.multi.charts.accounts,seq_journal:0 msgid "Separated Journal Sequences" -msgstr "" +msgstr "Ločeni dnevniški zapisi" #. module: account #: view:account.invoice:0 @@ -1663,7 +1703,7 @@ msgstr "Odgovoren" #. module: account #: model:ir.actions.act_window,name:account.action_report_account_type_sales_tree_all msgid "Sales by Account Type" -msgstr "" +msgstr "Prodaja glede na vrsto računa" #. module: account #: view:account.invoice.refund:0 @@ -1681,7 +1721,7 @@ msgstr "Izdajanje računov" #: code:addons/account/report/account_partner_balance.py:115 #, python-format msgid "Unknown Partner" -msgstr "" +msgstr "Neznan partner" #. module: account #: field:account.tax.code,sum:0 @@ -1693,12 +1733,12 @@ msgstr "Letni seštevek" #, python-format msgid "" "You selected an Unit of Measure which is not compatible with the product." -msgstr "" +msgstr "Izbrali ste mersko enoto, ki ni združljiva z izdelkom." #. module: account #: view:account.change.currency:0 msgid "This wizard will change the currency of the invoice" -msgstr "" +msgstr "Čarovnik bo spremenil valuto računa" #. module: account #: model:ir.actions.act_window,help:account.action_account_chart @@ -1711,7 +1751,7 @@ msgstr "" #. module: account #: view:account.analytic.account:0 msgid "Pending Accounts" -msgstr "" +msgstr "Čakajoči uporabniški računi" #. module: account #: view:account.tax.template:0 @@ -1724,11 +1764,13 @@ msgid "" "If the active field is set to False, it will allow you to hide the journal " "period without removing it." msgstr "" +"Če je izbrano polje ni nastavljeno, vam bo omogočilo skrivanje dnevnika brez " +"da ga onemogočite." #. module: account #: view:res.partner:0 msgid "Supplier Debit" -msgstr "" +msgstr "Dobavitelj debetne strani" #. module: account #: model:ir.actions.act_window,name:account.act_account_partner_account_move_all @@ -1738,23 +1780,23 @@ msgstr "Terjatve in obveznosti" #. module: account #: model:ir.model,name:account.model_account_common_journal_report msgid "Account Common Journal Report" -msgstr "" +msgstr "Skupni račun za dnevnik" #. module: account #: selection:account.partner.balance,display_partner:0 msgid "All Partners" -msgstr "" +msgstr "Vsi partnerji" #. module: account #: view:account.analytic.chart:0 msgid "Analytic Account Charts" -msgstr "" +msgstr "Analitični grafični račun" #. module: account #: view:account.analytic.line:0 #: view:analytic.entries.report:0 msgid "My Entries" -msgstr "" +msgstr "Moji vnosi" #. module: account #: report:account.overdue:0 @@ -1765,22 +1807,22 @@ msgstr "Sklic kupca" #: code:addons/account/account_cash_statement.py:292 #, python-format msgid "User %s does not have rights to access %s journal !" -msgstr "" +msgstr "Uporabnik %s nima pravic za dostopanje do %s dnevnika." #. module: account #: help:account.period,special:0 msgid "These periods can overlap." -msgstr "" +msgstr "Ta obdobja se lahko prekrivajo." #. module: account #: model:process.node,name:account.process_node_draftstatement0 msgid "Draft statement" -msgstr "" +msgstr "Osnutek izjave" #. module: account #: view:account.tax:0 msgid "Tax Declaration: Credit Notes" -msgstr "" +msgstr "Davčna izjava: Dobropis" #. module: account #: field:account.move.line.reconcile,credit:0 @@ -1793,55 +1835,56 @@ msgstr "Znesek v dobro" #: code:addons/account/account.py:429 #, python-format msgid "Error!" -msgstr "" +msgstr "Napaka!" #. module: account #: sql_constraint:account.move.line:0 msgid "Wrong credit or debit value in accounting entry !" msgstr "" +"Napačna kreditna ali debetna vrednost na začetku obračunskega obdobja!" #. module: account #: view:account.invoice.report:0 #: model:ir.actions.act_window,name:account.action_account_invoice_report_all #: model:ir.ui.menu,name:account.menu_action_account_invoice_report_all msgid "Invoices Analysis" -msgstr "" +msgstr "Analiza računov" #. module: account #: model:ir.model,name:account.model_account_period_close msgid "period close" -msgstr "" +msgstr "Zaprto obdobje" #. module: account #: view:account.installer:0 msgid "Configure Fiscal Year" -msgstr "" +msgstr "Nastavi fiskalno leto" #. module: account #: model:ir.actions.act_window,name:account.action_project_account_analytic_line_form msgid "Entries By Line" -msgstr "" +msgstr "Vnosi glede na vrsto" #. module: account #: field:account.vat.declaration,based_on:0 msgid "Based on" -msgstr "" +msgstr "Zaosnovano na" #. module: account #: field:account.invoice,move_id:0 #: field:account.invoice,move_name:0 msgid "Journal Entry" -msgstr "" +msgstr "Vnos v dnevnik" #. module: account #: view:account.tax:0 msgid "Tax Declaration: Invoices" -msgstr "" +msgstr "Davčna izjava: Računi" #. module: account #: field:account.cashbox.line,subtotal:0 msgid "Sub Total" -msgstr "" +msgstr "Vmesna vsota" #. module: account #: view:account.account:0 @@ -1850,7 +1893,7 @@ msgstr "" #: model:ir.model,name:account.model_account_treasury_report #: model:ir.ui.menu,name:account.menu_action_account_treasury_report_all msgid "Treasury Analysis" -msgstr "" +msgstr "Bogata analiza" #. module: account #: constraint:res.company:0 @@ -1860,7 +1903,7 @@ msgstr "Napaka! Ne morete ustvariti rekurzivnih podjetij." #. module: account #: model:ir.actions.report.xml,name:account.account_journal_sale_purchase msgid "Sale/Purchase Journal" -msgstr "" +msgstr "Prodajni/nakupni dnevnik" #. module: account #: view:account.analytic.account:0 @@ -1871,7 +1914,7 @@ msgstr "Analitični konto" #: code:addons/account/account_bank_statement.py:339 #, python-format msgid "Please verify that an account is defined in the journal." -msgstr "" +msgstr "Prosimo, potrdite da je račun zapisan v dnevniku." #. module: account #: selection:account.entries.report,move_line_state:0 @@ -1883,7 +1926,7 @@ msgstr "Veljavno" #: model:ir.actions.act_window,name:account.action_account_print_journal #: model:ir.model,name:account.model_account_print_journal msgid "Account Print Journal" -msgstr "" +msgstr "Natiskaj uporabniški dnevnik" #. module: account #: model:ir.model,name:account.model_product_category @@ -1902,12 +1945,15 @@ msgid "" "will be added, Loss : Amount will be deducted.), as calculated in Profit & " "Loss Report" msgstr "" +"Konto se uporablja za prenos profita/izgube(Če je profit: količina bo bila " +"dodana, Izguba: količina bo bila zmanjšana.), kot je izračunana v Poročilu o " +"dobičku in izgubi." #. module: account #: model:process.node,note:account.process_node_reconciliation0 #: model:process.node,note:account.process_node_supplierreconciliation0 msgid "Comparison between accounting and payment entries" -msgstr "" +msgstr "Primerjave računovodstva in plačilnih vnosov" #. module: account #: view:account.tax:0 @@ -1921,6 +1967,8 @@ msgid "" "Check this box if you want to use a different sequence for each created " "journal. Otherwise, all will use the same sequence." msgstr "" +"Označite to polje, če želite uporabiti drugačen vrstni red za vsak ustvarjen " +"dnevnik. V nasprotnem primeru bodo vsi uporabljali isto zaporedje." #. module: account #: help:account.partner.ledger,amount_currency:0 @@ -1941,7 +1989,7 @@ msgstr "" #: code:addons/account/account_invoice.py:73 #, python-format msgid "You must define an analytic journal of type '%s'!" -msgstr "" +msgstr "Določiti morate analitični dnevnik tipa '%s'!" #. module: account #: field:account.installer,config_logo:0 @@ -1960,7 +2008,7 @@ msgstr "" #. module: account #: model:ir.actions.act_window,help:account.action_account_financial_report_tree msgid "Makes a generic system to draw financial reports easily." -msgstr "" +msgstr "Naredi generični sistem za pripravo finančnih poročil." #. module: account #: view:account.invoice:0 @@ -1974,6 +2022,7 @@ msgid "" "If the active field is set to False, it will allow you to hide the tax " "without removing it." msgstr "" +"Če je polje neoznačeno, bo omogočilo, skrivanje davka ne da bi ga odstranili." #. module: account #: view:account.analytic.line:0 @@ -1983,7 +2032,7 @@ msgstr "" #. module: account #: selection:account.financial.report,style_overwrite:0 msgid "Italic Text (smaller)" -msgstr "" +msgstr "Poševni tekst (majhen)" #. module: account #: view:account.bank.statement:0 @@ -2001,7 +2050,7 @@ msgstr "Osnutek" #. module: account #: report:account.journal.period.print.sale.purchase:0 msgid "VAT Declaration" -msgstr "" +msgstr "Deklaracija DDV-ja" #. module: account #: field:account.move.reconcile,line_partial_ids:0 @@ -2028,12 +2077,12 @@ msgstr "" #. module: account #: model:process.transition,note:account.process_transition_filestatement0 msgid "Import of the statement in the system from an electronic file" -msgstr "" +msgstr "Uvoz izjave v sistemu z elektronsko datoteko" #. module: account #: model:process.node,name:account.process_node_importinvoice0 msgid "Import from invoice" -msgstr "" +msgstr "Uvoz iz računa" #. module: account #: selection:account.entries.report,month:0 @@ -2047,24 +2096,24 @@ msgstr "Januar" #. module: account #: view:account.journal:0 msgid "Validations" -msgstr "" +msgstr "Potrjevanja" #. module: account #: view:account.entries.report:0 msgid "This F.Year" -msgstr "" +msgstr "To leto" #. module: account #: view:account.tax.chart:0 msgid "Account tax charts" -msgstr "" +msgstr "Račun davčnih kart" #. module: account #: constraint:account.period:0 msgid "" "Invalid period ! Some periods overlap or the date period is not in the scope " "of the fiscal year. " -msgstr "" +msgstr "Napačno obdobje! Datumsko obdobje ni v območju fiskalnega leta! " #. module: account #: code:addons/account/account_bank_statement.py:357 @@ -2087,6 +2136,8 @@ msgid "" "There is no default default debit account defined \n" "on journal \"%s\"" msgstr "" +"Ni privzetih obremenitev, ki predstavljajo\n" +"dnevnik \"%s\"" #. module: account #: help:account.account.template,type:0 @@ -2102,7 +2153,7 @@ msgstr "" #. module: account #: view:account.chart.template:0 msgid "Search Chart of Account Templates" -msgstr "" +msgstr "Iskanje shema računa Predloge" #. module: account #: code:addons/account/account_move_line.py:1277 @@ -2124,7 +2175,7 @@ msgstr "" #. module: account #: report:account.invoice:0 msgid "Customer Code" -msgstr "" +msgstr "Šifra stranke" #. module: account #: view:account.installer:0 @@ -2157,7 +2208,7 @@ msgstr "Opis" #: code:addons/account/account.py:3119 #, python-format msgid "ECNJ" -msgstr "" +msgstr "ECNJ" #. module: account #: view:account.subscription:0 @@ -2176,12 +2227,12 @@ msgstr "Konto prijhodkov" #: code:addons/account/account_invoice.py:370 #, python-format msgid "There is no Accounting Journal of type Sale/Purchase defined!" -msgstr "" +msgstr "Tukaj ni definiranega računovodskega dnevnika prodaje/nakupa." #. module: account #: constraint:res.partner.bank:0 msgid "The RIB and/or IBAN is not valid" -msgstr "" +msgstr "RIB in/ali IBAN ni veljaven" #. module: account #: view:product.category:0 @@ -2198,12 +2249,12 @@ msgstr "Vnosi urejeni po" #. module: account #: field:account.change.currency,currency_id:0 msgid "Change to" -msgstr "" +msgstr "Spremeni na" #. module: account #: view:account.entries.report:0 msgid "# of Products Qty " -msgstr "" +msgstr "# od količine izdelkov " #. module: account #: model:ir.model,name:account.model_product_template @@ -2264,12 +2315,12 @@ msgstr "Poslovno leto" #: help:accounting.report,fiscalyear_id:0 #: help:accounting.report,fiscalyear_id_cmp:0 msgid "Keep empty for all open fiscal year" -msgstr "" +msgstr "Obdrži prazno za vse odprte fiskalne račune" #. module: account #: field:account.invoice.report,account_line_id:0 msgid "Account Line" -msgstr "" +msgstr "Vrsta računa" #. module: account #: code:addons/account/account.py:1468 @@ -2295,7 +2346,7 @@ msgstr "Vknjižba" #. module: account #: constraint:res.partner:0 msgid "Error ! You cannot create recursive associated members." -msgstr "" +msgstr "Napaka! Ne morete ustvariti rekurzivne povezane člane." #. module: account #: field:account.sequence.fiscalyear,sequence_main_id:0 @@ -2309,6 +2360,8 @@ msgid "" "In order to delete a bank statement, you must first cancel it to delete " "related journal items." msgstr "" +"Za brisanje bančnega izpiska , ga morate najprej preklicati , da boste tako " +"izbrisali povezane postavke v dnevniku" #. module: account #: field:account.invoice,payment_term:0 @@ -2326,7 +2379,7 @@ msgstr "Plačilni pogoj" #: model:ir.actions.act_window,name:account.action_account_fiscal_position_form #: model:ir.ui.menu,name:account.menu_action_account_fiscal_position_form msgid "Fiscal Positions" -msgstr "" +msgstr "Fiskalne pozicije" #. module: account #: constraint:account.account:0 @@ -2363,12 +2416,12 @@ msgstr "Odpri" #: model:process.node,note:account.process_node_draftinvoices0 #: model:process.node,note:account.process_node_supplierdraftinvoices0 msgid "Draft state of an invoice" -msgstr "" +msgstr "Osnutek stanja na računu" #. module: account #: view:account.partner.reconcile.process:0 msgid "Partner Reconciliation" -msgstr "" +msgstr "Partnerjeva neporavnava" #. module: account #: field:account.tax,tax_code_id:0 @@ -2436,7 +2489,7 @@ msgstr "Skupna raba 'V breme'" #: view:account.invoice.confirm:0 #: model:ir.actions.act_window,name:account.action_account_invoice_confirm msgid "Confirm Draft Invoices" -msgstr "" +msgstr "Potrdi osnutek računa" #. module: account #: field:account.entries.report,day:0 @@ -2450,7 +2503,7 @@ msgstr "Dan" #. module: account #: model:ir.actions.act_window,name:account.act_account_renew_view msgid "Accounts to Renew" -msgstr "" +msgstr "Računi za obnovo" #. module: account #: model:ir.model,name:account.model_account_model_line @@ -2461,7 +2514,7 @@ msgstr "Postavke modela konta" #: code:addons/account/account.py:3117 #, python-format msgid "EXJ" -msgstr "" +msgstr "EXJ" #. module: account #: field:product.template,supplier_taxes_id:0 @@ -2471,7 +2524,7 @@ msgstr "Davki dobavitelja" #. module: account #: view:account.entries.report:0 msgid "entries" -msgstr "" +msgstr "vnosi" #. module: account #: help:account.invoice,date_due:0 @@ -2491,7 +2544,7 @@ msgstr "Izberi obdobje" #. module: account #: model:ir.ui.menu,name:account.menu_account_pp_statements msgid "Statements" -msgstr "" +msgstr "Izjave" #. module: account #: report:account.analytic.account.journal:0 @@ -2504,6 +2557,7 @@ msgid "" "The fiscal position will determine taxes and the accounts used for the " "partner." msgstr "" +"Davčno območje določa obračun davka in davčne konte za poslovnega partnerja" #. module: account #: view:account.print.journal:0 @@ -2552,12 +2606,12 @@ msgstr "Računi" #: code:addons/account/account_invoice.py:369 #, python-format msgid "Configuration Error!" -msgstr "" +msgstr "Konfiguracijska napaka" #. module: account #: field:account.invoice.report,price_average:0 msgid "Average Price" -msgstr "" +msgstr "Povprečna cena" #. module: account #: report:account.overdue:0 @@ -2574,7 +2628,7 @@ msgstr "Oznaka" #: view:account.tax:0 #: view:res.partner.bank:0 msgid "Accounting Information" -msgstr "" +msgstr "Informacije o računu" #. module: account #: view:account.tax:0 @@ -2606,16 +2660,17 @@ msgstr "Sklic" #: help:account.move.line,tax_code_id:0 msgid "The Account can either be a base tax code or a tax code account." msgstr "" +"Upoštevana je lahko osnovna davčna številka ali davčna številka računa." #. module: account #: sql_constraint:account.model.line:0 msgid "Wrong credit or debit value in model, they must be positive!" -msgstr "" +msgstr "Napačna kreditna ali debetna vrednost, morajo biti pozitivna." #. module: account #: model:ir.ui.menu,name:account.menu_automatic_reconcile msgid "Automatic Reconciliation" -msgstr "" +msgstr "Samodejno usklajevanje" #. module: account #: field:account.invoice,reconciled:0 @@ -2645,7 +2700,7 @@ msgstr "Datumi" #. module: account #: field:account.chart.template,parent_id:0 msgid "Parent Chart Template" -msgstr "" +msgstr "Matična predloga grafikona" #. module: account #: field:account.tax,parent_id:0 @@ -2657,7 +2712,7 @@ msgstr "Nadrejeni davčni konto" #: code:addons/account/wizard/account_change_currency.py:59 #, python-format msgid "New currency is not configured properly !" -msgstr "" +msgstr "Nova valuta ni pravilno nastavljena!" #. module: account #: view:account.subscription.generate:0 @@ -2677,12 +2732,12 @@ msgstr "" #: model:process.transition,name:account.process_transition_entriesreconcile0 #: model:process.transition,name:account.process_transition_supplierentriesreconcile0 msgid "Accounting entries" -msgstr "" +msgstr "Vknjižbe" #. module: account #: field:account.invoice,reference_type:0 msgid "Communication Type" -msgstr "" +msgstr "Tip komunikacije" #. module: account #: field:account.invoice.line,discount:0 @@ -2703,19 +2758,19 @@ msgstr "" #: model:ir.actions.server,name:account.ir_actions_server_action_wizard_multi_chart #: model:ir.ui.menu,name:account.menu_act_ir_actions_bleble msgid "New Company Financial Setting" -msgstr "" +msgstr "Finančne nastavitve novega podjetja" #. module: account #: view:account.installer:0 msgid "Configure Your Chart of Accounts" -msgstr "" +msgstr "Konfiguracija kontnega načrta" #. module: account #: model:ir.actions.act_window,name:account.action_report_account_sales_tree_all #: view:report.account.sales:0 #: view:report.account_type.sales:0 msgid "Sales by Account" -msgstr "" +msgstr "Prodaja po računu" #. module: account #: view:account.use.model:0 @@ -3305,7 +3360,7 @@ msgstr "leto" #. module: account #: view:product.product:0 msgid "Purchase Taxes" -msgstr "Davek od nabave" +msgstr "Davek Nakupov" #. module: account #: view:validate.account.move.lines:0 diff --git a/addons/account_analytic_analysis/i18n/es_EC.po b/addons/account_analytic_analysis/i18n/es_EC.po index 63e1c682dcd..6da482ae48a 100644 --- a/addons/account_analytic_analysis/i18n/es_EC.po +++ b/addons/account_analytic_analysis/i18n/es_EC.po @@ -8,19 +8,19 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-24 03:12+0000\n" +"Last-Translator: Cristian Salamea (Gnuthink) \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:12+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: account_analytic_analysis #: field:account.analytic.account,revenue_per_hour:0 msgid "Revenue per Time (real)" -msgstr "" +msgstr "Beneficio por tiempo(real)" #. module: account_analytic_analysis #: help:account.analytic.account,remaining_ca:0 @@ -39,11 +39,13 @@ msgid "" "The contracts to be renewed because the deadline is passed or the working " "hours are higher than the allocated hours" msgstr "" +"El contrato necesita ser renovado porque la fecha de finalización ha " +"terminado o las horas trabajadas son más que las asignadas" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Pending contracts to renew with your customer" -msgstr "" +msgstr "Contratos pendientes para renovar con el cliente" #. module: account_analytic_analysis #: help:account.analytic.account,hours_qtt_non_invoiced:0 @@ -51,26 +53,28 @@ msgid "" "Number of time (hours/days) (from journal of type 'general') that can be " "invoiced if you invoice based on analytic account." msgstr "" +"Número de tiempo(horas/días) (desde diario de tipo 'general') que pueden ser " +"facturados si su factura está basada en cuentas analíticas" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Analytic Accounts with a past deadline in one month." -msgstr "" +msgstr "Cuentas analíticas con una fecha de fin caducada en un mes" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Group By..." -msgstr "" +msgstr "Agrupar por..." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "End Date" -msgstr "" +msgstr "Fecha fin" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Create Invoice" -msgstr "" +msgstr "Crear Factura" #. module: account_analytic_analysis #: field:account.analytic.account,last_invoice_date:0 @@ -88,16 +92,18 @@ msgid "" "Number of time you spent on the analytic account (from timesheet). It " "computes quantities on all journal of type 'general'." msgstr "" +"Unidad de tiempo que pasó en la cuenta analítica (desde imputación de " +"horas). Calcula cantidades de todos los diarios de tipo 'general'." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contracts in progress" -msgstr "" +msgstr "Contratos en progreso" #. module: account_analytic_analysis #: field:account.analytic.account,is_overdue_quantity:0 msgid "Overdue Quantity" -msgstr "" +msgstr "Cantidad sobrepasada" #. module: account_analytic_analysis #: model:ir.actions.act_window,help:account_analytic_analysis.action_account_analytic_overdue @@ -109,6 +115,12 @@ msgid "" "pending accounts and reopen or close the according to the negotiation with " "the customer." msgstr "" +"Encontrará aquí los contratos para ser renovados porque la fecha de " +"finalización ha sido pasada o las horas de trabajo son más altas que las " +"horas estimadas. OpenERP automáticamente asocia estas cuentas analíticas al " +"estado pendiente, para permitir emitir un aviso durante la imputación de " +"tiempos. Los comerciales deberían revisar todas las cuentas pendientes para " +"abrirlas o cerrarlas de acuerdo con la negociación con el cliente." #. module: account_analytic_analysis #: field:account.analytic.account,ca_theorical:0 @@ -118,7 +130,7 @@ msgstr "Ingresos teóricos" #. module: account_analytic_analysis #: field:account.analytic.account,hours_qtt_non_invoiced:0 msgid "Uninvoiced Time" -msgstr "" +msgstr "Tiempo sin facturar" #. module: account_analytic_analysis #: help:account.analytic.account,last_worked_invoiced_date:0 @@ -132,7 +144,7 @@ msgstr "" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "To Renew" -msgstr "" +msgstr "Para renovar" #. module: account_analytic_analysis #: field:account.analytic.account,last_worked_date:0 @@ -142,24 +154,25 @@ msgstr "Fecha del último coste/trabajo" #. module: account_analytic_analysis #: field:account.analytic.account,hours_qtt_invoiced:0 msgid "Invoiced Time" -msgstr "" +msgstr "Tiempo facturado" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "" "A contract in OpenERP is an analytic account having a partner set on it." msgstr "" +"Un contrato en OpenERP es una cuenta analítica que tiene un cliente asignado." #. module: account_analytic_analysis #: field:account.analytic.account,remaining_hours:0 msgid "Remaining Time" -msgstr "" +msgstr "Tiempo restante" #. module: account_analytic_analysis #: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_overdue #: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_overdue msgid "Contracts to Renew" -msgstr "" +msgstr "Contratos a renovar" #. module: account_analytic_analysis #: field:account.analytic.account,theorical_margin:0 @@ -169,7 +182,7 @@ msgstr "Márgen teórico" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid " +1 Month" -msgstr "" +msgstr " +1 mes" #. module: account_analytic_analysis #: help:account.analytic.account,ca_theorical:0 @@ -185,7 +198,7 @@ msgstr "" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Pending" -msgstr "" +msgstr "Pendiente" #. module: account_analytic_analysis #: field:account.analytic.account,ca_to_invoice:0 @@ -200,7 +213,7 @@ msgstr "Calculado utilizando la fórmula: Importe facturado - Costes totales." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Parent" -msgstr "" +msgstr "Padre" #. module: account_analytic_analysis #: field:account.analytic.account,user_ids:0 @@ -231,7 +244,7 @@ msgstr "Fecha del último coste facturado" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contract" -msgstr "" +msgstr "Contrato" #. module: account_analytic_analysis #: field:account.analytic.account,real_margin_rate:0 @@ -266,7 +279,7 @@ msgstr "Ingreso restante" #. module: account_analytic_analysis #: help:account.analytic.account,remaining_hours:0 msgid "Computed using the formula: Maximum Time - Total Time" -msgstr "" +msgstr "Calculado usando la fórmula: Tiempo máximo - Tiempo total" #. module: account_analytic_analysis #: help:account.analytic.account,hours_qtt_invoiced:0 @@ -274,6 +287,8 @@ msgid "" "Number of time (hours/days) that can be invoiced plus those that already " "have been invoiced." msgstr "" +"Unidades de tiempo(horas/días) que pueden ser facturadas más las que ya han " +"sido facturadas." #. module: account_analytic_analysis #: help:account.analytic.account,ca_to_invoice:0 @@ -287,7 +302,7 @@ msgstr "" #. module: account_analytic_analysis #: help:account.analytic.account,revenue_per_hour:0 msgid "Computed using the formula: Invoiced Amount / Total Time" -msgstr "" +msgstr "Calculado utilizando la fórmula: Importe facturado / Tiempo total" #. module: account_analytic_analysis #: field:account.analytic.account,total_cost:0 @@ -312,12 +327,12 @@ msgstr "Cuenta analítica" #: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_overdue_all #: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_overdue_all msgid "Contracts" -msgstr "" +msgstr "Contratos" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Manager" -msgstr "" +msgstr "Gerente" #. module: account_analytic_analysis #: model:ir.actions.act_window,name:account_analytic_analysis.action_hr_tree_invoiced_all @@ -328,22 +343,22 @@ msgstr "Todas las entradas no facturadas" #. module: account_analytic_analysis #: help:account.analytic.account,last_invoice_date:0 msgid "If invoice from the costs, this is the date of the latest invoiced." -msgstr "" +msgstr "Si factura desde costes, esta es la fecha de lo último facturado" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Associated Partner" -msgstr "" +msgstr "Empresa Asociada" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Open" -msgstr "" +msgstr "Abrir" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contracts that are not assigned to an account manager." -msgstr "" +msgstr "Contratos que no han sido asignados a un gerente de cuenta" #. module: account_analytic_analysis #: field:account.analytic.account,hours_quantity:0 diff --git a/addons/account_analytic_default/i18n/es_EC.po b/addons/account_analytic_default/i18n/es_EC.po index a8fd31cbe75..d840a7760ce 100644 --- a/addons/account_analytic_default/i18n/es_EC.po +++ b/addons/account_analytic_default/i18n/es_EC.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-23 17:07+0000\n" +"Last-Translator: Cristian Salamea (Gnuthink) \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:12+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-24 05:40+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: account_analytic_default #: help:account.analytic.default,partner_id:0 @@ -134,12 +134,13 @@ msgstr "Análisis: Valores por defecto" #. module: account_analytic_default #: sql_constraint:stock.picking:0 msgid "Reference must be unique per Company!" -msgstr "" +msgstr "¡La referencia debe ser única por Compañia!" #. module: account_analytic_default #: view:account.analytic.default:0 msgid "Analytical defaults whose end date is greater than today or None" msgstr "" +"Valores analíticos por defecto cuya fecha de fin es mayor que hoy o ninguna" #. module: account_analytic_default #: help:account.analytic.default,product_id:0 diff --git a/addons/account_analytic_plans/i18n/es_EC.po b/addons/account_analytic_plans/i18n/es_EC.po index 13f75a765ab..abd8f57c326 100644 --- a/addons/account_analytic_plans/i18n/es_EC.po +++ b/addons/account_analytic_plans/i18n/es_EC.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-24 03:14+0000\n" +"Last-Translator: Cristian Salamea (Gnuthink) \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:13+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: account_analytic_plans #: view:analytic.plan.create.model:0 @@ -94,7 +94,7 @@ msgstr "Id cuenta2" #. module: account_analytic_plans #: sql_constraint:account.invoice:0 msgid "Invoice Number must be unique per Company!" -msgstr "" +msgstr "¡El número de factura debe ser único por compañía!" #. module: account_analytic_plans #: report:account.analytic.account.crossovered.analytic:0 @@ -107,6 +107,8 @@ msgid "" "Configuration error! The currency chosen should be shared by the default " "accounts too." msgstr "" +"Error de Configuración! La moneda seleccionada debe ser compartida por las " +"cuentas por defecto tambíen" #. module: account_analytic_plans #: sql_constraint:account.move.line:0 @@ -131,17 +133,18 @@ msgstr "Detalle de Extracto" #. module: account_analytic_plans #: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_plan_form_action_installer msgid "Define your Analytic Plans" -msgstr "" +msgstr "Defina sus planes analíticos" #. module: account_analytic_plans #: constraint:account.invoice:0 msgid "Invalid BBA Structured Communication !" -msgstr "" +msgstr "¡Estructura de comunicación BBA no válida!" #. module: account_analytic_plans #: constraint:account.bank.statement:0 msgid "The journal and period chosen have to belong to the same company." msgstr "" +"El diario y periodo seleccionados tienen que pertenecer a la misma compañía" #. module: account_analytic_plans #: constraint:account.move.line:0 @@ -149,6 +152,8 @@ msgid "" "The date of your Journal Entry is not in the defined period! You should " "change the date or remove this constraint from the journal." msgstr "" +"¡La fecha de su asiento no está en el periodo definido! Usted debería " +"cambiar la fecha o borrar esta restricción del diario." #. module: account_analytic_plans #: sql_constraint:account.journal:0 @@ -253,6 +258,9 @@ msgid "" "currency. You should remove the secondary currency on the account or select " "a multi-currency view on the journal." msgstr "" +"La cuenta selecionada de su diario obliga a tener una moneda secundaria. " +"Usted debería eliminar la moneda secundaria de la cuenta o asignar una vista " +"de multi-moneda al diario." #. module: account_analytic_plans #: report:account.analytic.account.crossovered.analytic:0 @@ -309,7 +317,7 @@ msgstr "Crear Plan de Costos" #. module: account_analytic_plans #: model:ir.model,name:account_analytic_plans.model_account_analytic_line msgid "Analytic Line" -msgstr "" +msgstr "Línea Analítica" #. module: account_analytic_plans #: report:account.analytic.account.crossovered.analytic:0 @@ -367,7 +375,7 @@ msgstr "Guardar esta distribución como un modelo" #. module: account_analytic_plans #: constraint:account.move.line:0 msgid "You can not create journal items on an account of type view." -msgstr "" +msgstr "No puede crear asientos en una cuenta de tipo vista" #. module: account_analytic_plans #: report:account.analytic.account.crossovered.analytic:0 @@ -410,7 +418,7 @@ msgstr "Id cuenta3" #. module: account_analytic_plans #: constraint:account.analytic.line:0 msgid "You can not create analytic line on view account." -msgstr "" +msgstr "No puede crear una línea analítica en una cuenta vista" #. module: account_analytic_plans #: model:ir.model,name:account_analytic_plans.model_account_invoice @@ -431,7 +439,7 @@ msgstr "Id cuenta4" #. module: account_analytic_plans #: constraint:account.move.line:0 msgid "Company must be the same for its related account and period." -msgstr "" +msgstr "La compañía debe ser la misma para su cuenta y periodos relacionados" #. module: account_analytic_plans #: view:account.analytic.plan.instance.line:0 @@ -517,11 +525,14 @@ msgid "" "analytic accounts for each plan set. Then, you must attach a plan set to " "your account journals." msgstr "" +"Para configurar un entorno de planes analíticos multiples, debe definir la " +"raiz de cuentas analíticas para cada plan. Entonces, debe adjuntar un plan " +"asignado a sus diarios analíticos" #. module: account_analytic_plans #: constraint:account.move.line:0 msgid "You can not create journal items on closed account." -msgstr "" +msgstr "No puede crear asientos en cuentas cerradas" #. module: account_analytic_plans #: report:account.analytic.account.crossovered.analytic:0 diff --git a/addons/account_anglo_saxon/i18n/es_EC.po b/addons/account_anglo_saxon/i18n/es_EC.po index c38419fd914..47153701a39 100644 --- a/addons/account_anglo_saxon/i18n/es_EC.po +++ b/addons/account_anglo_saxon/i18n/es_EC.po @@ -8,19 +8,19 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-24 03:15+0000\n" +"Last-Translator: Cristian Salamea (Gnuthink) \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:13+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: account_anglo_saxon #: sql_constraint:purchase.order:0 msgid "Order Reference must be unique per Company!" -msgstr "" +msgstr "¡La orden de referencia debe ser única por Compañía!" #. module: account_anglo_saxon #: view:product.category:0 @@ -35,17 +35,17 @@ msgstr "Categoría de producto" #. module: account_anglo_saxon #: sql_constraint:stock.picking:0 msgid "Reference must be unique per Company!" -msgstr "" +msgstr "¡La referencia debe ser única por Compañia!" #. module: account_anglo_saxon #: constraint:product.category:0 msgid "Error ! You cannot create recursive categories." -msgstr "" +msgstr "¡Error! No puede crear categorías recursivas" #. module: account_anglo_saxon #: constraint:account.invoice:0 msgid "Invalid BBA Structured Communication !" -msgstr "" +msgstr "¡Estructura de comunicación BBA no válida!" #. module: account_anglo_saxon #: constraint:product.template:0 @@ -89,7 +89,7 @@ msgstr "Paquete de productos" #. module: account_anglo_saxon #: sql_constraint:account.invoice:0 msgid "Invoice Number must be unique per Company!" -msgstr "" +msgstr "¡El número de factura debe ser único por compañía!" #. module: account_anglo_saxon #: help:product.category,property_account_creditor_price_difference_categ:0 diff --git a/addons/account_asset/i18n/es_EC.po b/addons/account_asset/i18n/es_EC.po new file mode 100644 index 00000000000..57480f26d3f --- /dev/null +++ b/addons/account_asset/i18n/es_EC.po @@ -0,0 +1,833 @@ +# Spanish (Ecuador) translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 01:37+0100\n" +"PO-Revision-Date: 2012-03-24 03:32+0000\n" +"Last-Translator: Cristian Salamea (Gnuthink) \n" +"Language-Team: Spanish (Ecuador) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" + +#. module: account_asset +#: view:account.asset.asset:0 +msgid "Assets in draft and open states" +msgstr "Activos en estado borrador y abierto" + +#. module: account_asset +#: field:account.asset.category,method_end:0 +#: field:account.asset.history,method_end:0 field:asset.modify,method_end:0 +msgid "Ending date" +msgstr "Fecha de finalización" + +#. module: account_asset +#: field:account.asset.asset,value_residual:0 +msgid "Residual Value" +msgstr "Valor residual" + +#. module: account_asset +#: field:account.asset.category,account_expense_depreciation_id:0 +msgid "Depr. Expense Account" +msgstr "Cuenta gastos amortización" + +#. module: account_asset +#: view:asset.depreciation.confirmation.wizard:0 +msgid "Compute Asset" +msgstr "Calcular activo" + +#. module: account_asset +#: view:asset.asset.report:0 +msgid "Group By..." +msgstr "Agrupar por..." + +#. module: account_asset +#: field:asset.asset.report,gross_value:0 +msgid "Gross Amount" +msgstr "Importe bruto" + +#. module: account_asset +#: view:account.asset.asset:0 field:account.asset.asset,name:0 +#: field:account.asset.depreciation.line,asset_id:0 +#: field:account.asset.history,asset_id:0 field:account.move.line,asset_id:0 +#: view:asset.asset.report:0 field:asset.asset.report,asset_id:0 +#: model:ir.model,name:account_asset.model_account_asset_asset +msgid "Asset" +msgstr "Activo Fijo" + +#. module: account_asset +#: help:account.asset.asset,prorata:0 help:account.asset.category,prorata:0 +msgid "" +"Indicates that the first depreciation entry for this asset have to be done " +"from the purchase date instead of the first January" +msgstr "" +"Indica que el primer asiento de depreciación para este activo tiene que ser " +"hecho desde la fecha de compra en vez de desde el 1 de enero" + +#. module: account_asset +#: field:account.asset.history,name:0 +msgid "History name" +msgstr "Nombre histórico" + +#. module: account_asset +#: field:account.asset.asset,company_id:0 +#: field:account.asset.category,company_id:0 view:asset.asset.report:0 +#: field:asset.asset.report,company_id:0 +msgid "Company" +msgstr "Compañia" + +#. module: account_asset +#: view:asset.modify:0 +msgid "Modify" +msgstr "Modificar" + +#. module: account_asset +#: selection:account.asset.asset,state:0 view:asset.asset.report:0 +#: selection:asset.asset.report,state:0 +msgid "Running" +msgstr "En proceso" + +#. module: account_asset +#: field:account.asset.depreciation.line,amount:0 +msgid "Depreciation Amount" +msgstr "Importe de depreciación" + +#. module: account_asset +#: view:asset.asset.report:0 +#: model:ir.actions.act_window,name:account_asset.action_asset_asset_report +#: model:ir.model,name:account_asset.model_asset_asset_report +#: model:ir.ui.menu,name:account_asset.menu_action_asset_asset_report +msgid "Assets Analysis" +msgstr "Análisis activos" + +#. module: account_asset +#: field:asset.modify,name:0 +msgid "Reason" +msgstr "Motivo" + +#. module: account_asset +#: field:account.asset.asset,method_progress_factor:0 +#: field:account.asset.category,method_progress_factor:0 +msgid "Degressive Factor" +msgstr "Factor degresivo" + +#. module: account_asset +#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_list_normal +#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_list_normal +msgid "Asset Categories" +msgstr "Categorías de Activo Fijo" + +#. module: account_asset +#: view:asset.depreciation.confirmation.wizard:0 +msgid "" +"This wizard will post the depreciation lines of running assets that belong " +"to the selected period." +msgstr "" +"Este asistente asentará las líneas de depreciación de los activos en " +"ejecución que pertenezcan al periodo seleccionado" + +#. module: account_asset +#: field:account.asset.asset,account_move_line_ids:0 +#: field:account.move.line,entry_ids:0 +#: model:ir.actions.act_window,name:account_asset.act_entries_open +msgid "Entries" +msgstr "Asientos" + +#. module: account_asset +#: view:account.asset.asset:0 +#: field:account.asset.asset,depreciation_line_ids:0 +msgid "Depreciation Lines" +msgstr "Detalle de Depreciación" + +#. module: account_asset +#: help:account.asset.asset,salvage_value:0 +msgid "It is the amount you plan to have that you cannot depreciate." +msgstr "Es el importe que prevee tener y que no puede depreciar" + +#. module: account_asset +#: field:account.asset.depreciation.line,depreciation_date:0 +#: view:asset.asset.report:0 field:asset.asset.report,depreciation_date:0 +msgid "Depreciation Date" +msgstr "Fecha de depreciación" + +#. module: account_asset +#: field:account.asset.category,account_asset_id:0 +msgid "Asset Account" +msgstr "Cuenta de Activo Fijo" + +#. module: account_asset +#: field:asset.asset.report,posted_value:0 +msgid "Posted Amount" +msgstr "Monto Contabilizado" + +#. module: account_asset +#: view:account.asset.asset:0 view:asset.asset.report:0 +#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_form +#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_form +#: model:ir.ui.menu,name:account_asset.menu_finance_assets +#: model:ir.ui.menu,name:account_asset.menu_finance_config_assets +msgid "Assets" +msgstr "Activos Fijos" + +#. module: account_asset +#: field:account.asset.category,account_depreciation_id:0 +msgid "Depreciation Account" +msgstr "Cuenta de Depreciación" + +#. module: account_asset +#: view:account.asset.asset:0 view:account.asset.category:0 +#: view:account.asset.history:0 view:asset.modify:0 field:asset.modify,note:0 +msgid "Notes" +msgstr "Notas" + +#. module: account_asset +#: field:account.asset.depreciation.line,move_id:0 +msgid "Depreciation Entry" +msgstr "Asiento de Depreciación" + +#. module: account_asset +#: sql_constraint:account.move.line:0 +msgid "Wrong credit or debit value in accounting entry !" +msgstr "¡Valor erróneo en el debe o en el haber del asiento contable!" + +#. module: account_asset +#: view:asset.asset.report:0 field:asset.asset.report,nbr:0 +msgid "# of Depreciation Lines" +msgstr "# de líneas de depreciación" + +#. module: account_asset +#: view:asset.asset.report:0 +msgid "Assets in draft state" +msgstr "Depreciaciones en estado borrador" + +#. module: account_asset +#: field:account.asset.asset,method_end:0 +#: selection:account.asset.asset,method_time:0 +#: selection:account.asset.category,method_time:0 +#: selection:account.asset.history,method_time:0 +msgid "Ending Date" +msgstr "Fecha de Cierre" + +#. module: account_asset +#: field:account.asset.asset,code:0 +msgid "Reference" +msgstr "Ref." + +#. module: account_asset +#: constraint:account.invoice:0 +msgid "Invalid BBA Structured Communication !" +msgstr "¡Estructura de comunicación BBA no válida!" + +#. module: account_asset +#: view:account.asset.asset:0 +msgid "Account Asset" +msgstr "Cuenta de activo" + +#. module: account_asset +#: model:ir.actions.act_window,name:account_asset.action_asset_depreciation_confirmation_wizard +#: model:ir.ui.menu,name:account_asset.menu_asset_depreciation_confirmation_wizard +msgid "Compute Assets" +msgstr "Calcular Depreciación de Activos Fijos" + +#. module: account_asset +#: field:account.asset.depreciation.line,sequence:0 +msgid "Sequence of the depreciation" +msgstr "Secuencia de Depreciación" + +#. module: account_asset +#: field:account.asset.asset,method_period:0 +#: field:account.asset.category,method_period:0 +#: field:account.asset.history,method_period:0 +#: field:asset.modify,method_period:0 +msgid "Period Length" +msgstr "Tiempo a Depreciar" + +#. module: account_asset +#: selection:account.asset.asset,state:0 view:asset.asset.report:0 +#: selection:asset.asset.report,state:0 +msgid "Draft" +msgstr "Borrador" + +#. module: account_asset +#: view:asset.asset.report:0 +msgid "Date of asset purchase" +msgstr "Fecha de compra del activo" + +#. module: account_asset +#: help:account.asset.asset,method_number:0 +msgid "Calculates Depreciation within specified interval" +msgstr "Calcula la depreciación en el período especificado" + +#. module: account_asset +#: view:account.asset.asset:0 +msgid "Change Duration" +msgstr "Cambiar duración" + +#. module: account_asset +#: field:account.asset.category,account_analytic_id:0 +msgid "Analytic account" +msgstr "Cuenta Analitica" + +#. module: account_asset +#: field:account.asset.asset,method:0 field:account.asset.category,method:0 +msgid "Computation Method" +msgstr "Método de cálculo" + +#. module: account_asset +#: help:account.asset.asset,method_period:0 +msgid "State here the time during 2 depreciations, in months" +msgstr "Ponga aquí el tiempo entre 2 amortizaciones, en meses" + +#. module: account_asset +#: constraint:account.asset.asset:0 +msgid "" +"Prorata temporis can be applied only for time method \"number of " +"depreciations\"." +msgstr "" +"Prorata temporis puede ser aplicado solo para método de tiempo \"numero de " +"depreciaciones\"" + +#. module: account_asset +#: help:account.asset.history,method_time:0 +msgid "" +"The method to use to compute the dates and number of depreciation lines.\n" +"Number of Depreciations: Fix the number of depreciation lines and the time " +"between 2 depreciations.\n" +"Ending Date: Choose the time between 2 depreciations and the date the " +"depreciations won't go beyond." +msgstr "" +"El método usado para calcular las fechas número de líneas de depreciación\n" +"Número de depreciaciones: Ajusta el número de líneas de depreciación y el " +"tiempo entre 2 depreciaciones\n" +"Fecha de fin: Escoja un tiempo entre 2 amortizaciones y la fecha de " +"depreciación no irá más allá." + +#. module: account_asset +#: field:account.asset.asset,purchase_value:0 +msgid "Gross value " +msgstr "Valor bruto " + +#. module: account_asset +#: constraint:account.asset.asset:0 +msgid "Error ! You can not create recursive assets." +msgstr "¡Error! No puede crear activos recursivos" + +#. module: account_asset +#: help:account.asset.history,method_period:0 +msgid "Time in month between two depreciations" +msgstr "Tiempo en meses entre 2 depreciaciones" + +#. module: account_asset +#: view:asset.asset.report:0 field:asset.asset.report,name:0 +msgid "Year" +msgstr "Año" + +#. module: account_asset +#: view:asset.modify:0 +#: model:ir.actions.act_window,name:account_asset.action_asset_modify +#: model:ir.model,name:account_asset.model_asset_modify +msgid "Modify Asset" +msgstr "Modificar Activo Fijo" + +#. module: account_asset +#: view:account.asset.asset:0 +msgid "Other Information" +msgstr "Otra Información" + +#. module: account_asset +#: field:account.asset.asset,salvage_value:0 +msgid "Salvage Value" +msgstr "Valor de salvaguarda" + +#. module: account_asset +#: field:account.invoice.line,asset_category_id:0 view:asset.asset.report:0 +msgid "Asset Category" +msgstr "Categoría de Activo" + +#. module: account_asset +#: view:account.asset.asset:0 +msgid "Set to Close" +msgstr "Marcar cerrado" + +#. module: account_asset +#: model:ir.actions.wizard,name:account_asset.wizard_asset_compute +msgid "Compute assets" +msgstr "Calcular Activos Fijos" + +#. module: account_asset +#: model:ir.actions.wizard,name:account_asset.wizard_asset_modify +msgid "Modify asset" +msgstr "Modificar activo" + +#. module: account_asset +#: view:account.asset.asset:0 +msgid "Assets in closed state" +msgstr "Activos en cerrados" + +#. module: account_asset +#: field:account.asset.asset,parent_id:0 +msgid "Parent Asset" +msgstr "Padre del activo" + +#. module: account_asset +#: view:account.asset.history:0 +#: model:ir.model,name:account_asset.model_account_asset_history +msgid "Asset history" +msgstr "Histórico del activo" + +#. module: account_asset +#: view:asset.asset.report:0 +msgid "Assets purchased in current year" +msgstr "Activos comprados en el año actual" + +#. module: account_asset +#: field:account.asset.asset,state:0 field:asset.asset.report,state:0 +msgid "State" +msgstr "Estado" + +#. module: account_asset +#: model:ir.model,name:account_asset.model_account_invoice_line +msgid "Invoice Line" +msgstr "Detalle de Factura" + +#. module: account_asset +#: constraint:account.move.line:0 +msgid "" +"The selected account of your Journal Entry forces to provide a secondary " +"currency. You should remove the secondary currency on the account or select " +"a multi-currency view on the journal." +msgstr "" +"La cuenta selecionada de su diario obliga a tener una moneda secundaria. " +"Usted debería eliminar la moneda secundaria de la cuenta o asignar una vista " +"de multi-moneda al diario." + +#. module: account_asset +#: view:asset.asset.report:0 +msgid "Month" +msgstr "Mes" + +#. module: account_asset +#: view:account.asset.asset:0 +msgid "Depreciation Board" +msgstr "Tabla de depreciación" + +#. module: account_asset +#: model:ir.model,name:account_asset.model_account_move_line +msgid "Journal Items" +msgstr "Asientos Contables" + +#. module: account_asset +#: field:asset.asset.report,unposted_value:0 +msgid "Unposted Amount" +msgstr "Importe no contabilizado" + +#. module: account_asset +#: field:account.asset.asset,method_time:0 +#: field:account.asset.category,method_time:0 +#: field:account.asset.history,method_time:0 +msgid "Time Method" +msgstr "Método de tiempo" + +#. module: account_asset +#: view:account.asset.category:0 +msgid "Analytic information" +msgstr "Información analítica" + +#. module: account_asset +#: view:asset.modify:0 +msgid "Asset durations to modify" +msgstr "Duraciones de activo para modificar" + +#. module: account_asset +#: constraint:account.move.line:0 +msgid "" +"The date of your Journal Entry is not in the defined period! You should " +"change the date or remove this constraint from the journal." +msgstr "" +"¡La fecha de su asiento no está en el periodo definido! Usted debería " +"cambiar la fecha o borrar esta restricción del diario." + +#. module: account_asset +#: field:account.asset.asset,note:0 field:account.asset.category,note:0 +#: field:account.asset.history,note:0 +msgid "Note" +msgstr "Nota" + +#. module: account_asset +#: help:account.asset.asset,method:0 help:account.asset.category,method:0 +msgid "" +"Choose the method to use to compute the amount of depreciation lines.\n" +" * Linear: Calculated on basis of: Gross Value / Number of Depreciations\n" +" * Degressive: Calculated on basis of: Remaining Value * Degressive Factor" +msgstr "" +"Escoja el método para usar en el cálculo del importe de las líneas de " +"depreciación\n" +" * Lineal: calculado en base a: valor bruto / número de depreciaciones\n" +" * Regresivo: calculado en base a: valor remanente/ factor de regresión" + +#. module: account_asset +#: help:account.asset.asset,method_time:0 +#: help:account.asset.category,method_time:0 +msgid "" +"Choose the method to use to compute the dates and number of depreciation " +"lines.\n" +" * Number of Depreciations: Fix the number of depreciation lines and the " +"time between 2 depreciations.\n" +" * Ending Date: Choose the time between 2 depreciations and the date the " +"depreciations won't go beyond." +msgstr "" +"Escoja el método utilizado para calcular las fechas y número de las líneas " +"de depreciación\n" +" * Número de depreciaciones: Establece el número de líneas de depreciación " +"y el tiempo entre dos depreciaciones.\n" +" * Fecha fin: Seleccione el tiempo entre 2 depreciaciones y la fecha de la " +"depreciación no irá más allá." + +#. module: account_asset +#: view:asset.asset.report:0 +msgid "Assets in running state" +msgstr "Activos en depreciación" + +#. module: account_asset +#: view:account.asset.asset:0 +msgid "Closed" +msgstr "Cerrado" + +#. module: account_asset +#: field:account.asset.asset,partner_id:0 +#: field:asset.asset.report,partner_id:0 +msgid "Partner" +msgstr "Empresa" + +#. module: account_asset +#: view:asset.asset.report:0 field:asset.asset.report,depreciation_value:0 +msgid "Amount of Depreciation Lines" +msgstr "Importe de las líneas de depreciación" + +#. module: account_asset +#: view:asset.asset.report:0 +msgid "Posted depreciation lines" +msgstr "Detalle de depreciación" + +#. module: account_asset +#: constraint:account.move.line:0 +msgid "Company must be the same for its related account and period." +msgstr "La compañía debe ser la misma para su cuenta y periodos relacionados" + +#. module: account_asset +#: field:account.asset.asset,child_ids:0 +msgid "Children Assets" +msgstr "Activos hijos" + +#. module: account_asset +#: view:asset.asset.report:0 +msgid "Date of depreciation" +msgstr "Fecha de depreciación" + +#. module: account_asset +#: field:account.asset.history,user_id:0 +msgid "User" +msgstr "Usuario" + +#. module: account_asset +#: field:account.asset.history,date:0 +msgid "Date" +msgstr "Fecha" + +#. module: account_asset +#: view:asset.asset.report:0 +msgid "Assets purchased in current month" +msgstr "Activos comprados en el mes actual" + +#. module: account_asset +#: constraint:account.move.line:0 +msgid "You can not create journal items on an account of type view." +msgstr "No puede crear asientos en una cuenta de tipo vista" + +#. module: account_asset +#: view:asset.asset.report:0 +msgid "Extended Filters..." +msgstr "Filtros extendidos..." + +#. module: account_asset +#: view:account.asset.asset:0 view:asset.depreciation.confirmation.wizard:0 +msgid "Compute" +msgstr "Calcular" + +#. module: account_asset +#: view:account.asset.category:0 +msgid "Search Asset Category" +msgstr "Buscar categoría de activo" + +#. module: account_asset +#: model:ir.model,name:account_asset.model_asset_depreciation_confirmation_wizard +msgid "asset.depreciation.confirmation.wizard" +msgstr "asset.depreciation.confirmation.wizard" + +#. module: account_asset +#: field:account.asset.asset,active:0 +msgid "Active" +msgstr "Activo" + +#. module: account_asset +#: model:ir.actions.wizard,name:account_asset.wizard_asset_close +msgid "Close asset" +msgstr "Cerrar Activo Fijo" + +#. module: account_asset +#: field:account.asset.depreciation.line,parent_state:0 +msgid "State of Asset" +msgstr "Estado del activo" + +#. module: account_asset +#: field:account.asset.depreciation.line,name:0 +msgid "Depreciation Name" +msgstr "Nombre depreciación" + +#. module: account_asset +#: view:account.asset.asset:0 field:account.asset.asset,history_ids:0 +msgid "History" +msgstr "Histórico" + +#. module: account_asset +#: sql_constraint:account.invoice:0 +msgid "Invoice Number must be unique per Company!" +msgstr "¡El número de factura debe ser único por compañía!" + +#. module: account_asset +#: field:asset.depreciation.confirmation.wizard,period_id:0 +msgid "Period" +msgstr "Período" + +#. module: account_asset +#: view:account.asset.asset:0 +msgid "General" +msgstr "General" + +#. module: account_asset +#: field:account.asset.asset,prorata:0 field:account.asset.category,prorata:0 +msgid "Prorata Temporis" +msgstr "Prorata Temporis" + +#. module: account_asset +#: view:account.asset.category:0 +msgid "Accounting information" +msgstr "Información contable" + +#. module: account_asset +#: model:ir.model,name:account_asset.model_account_invoice +msgid "Invoice" +msgstr "Factura" + +#. module: account_asset +#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_form_normal +msgid "Review Asset Categories" +msgstr "Revisar categorías de activos" + +#. module: account_asset +#: view:asset.depreciation.confirmation.wizard:0 view:asset.modify:0 +msgid "Cancel" +msgstr "Cancelar" + +#. module: account_asset +#: selection:account.asset.asset,state:0 selection:asset.asset.report,state:0 +msgid "Close" +msgstr "Cerrar" + +#. module: account_asset +#: view:account.asset.asset:0 view:account.asset.category:0 +msgid "Depreciation Method" +msgstr "Método de depreciación" + +#. module: account_asset +#: field:account.asset.asset,purchase_date:0 view:asset.asset.report:0 +#: field:asset.asset.report,purchase_date:0 +msgid "Purchase Date" +msgstr "Fecha de compra" + +#. module: account_asset +#: selection:account.asset.asset,method:0 +#: selection:account.asset.category,method:0 +msgid "Degressive" +msgstr "Disminución" + +#. module: account_asset +#: help:asset.depreciation.confirmation.wizard,period_id:0 +msgid "" +"Choose the period for which you want to automatically post the depreciation " +"lines of running assets" +msgstr "" +"Escoja el periodo para el que desea asentar automáticamente las líneas de " +"depreciación para los activos en ejecución" + +#. module: account_asset +#: view:account.asset.asset:0 +msgid "Current" +msgstr "Actual" + +#. module: account_asset +#: field:account.asset.depreciation.line,remaining_value:0 +msgid "Amount to Depreciate" +msgstr "Importe a depreciar" + +#. module: account_asset +#: field:account.asset.category,open_asset:0 +msgid "Skip Draft State" +msgstr "Omitir estado borrador" + +#. module: account_asset +#: view:account.asset.asset:0 view:account.asset.category:0 +#: view:account.asset.history:0 +msgid "Depreciation Dates" +msgstr "Fechas de depreciación" + +#. module: account_asset +#: field:account.asset.asset,currency_id:0 +msgid "Currency" +msgstr "Moneda" + +#. module: account_asset +#: field:account.asset.category,journal_id:0 +msgid "Journal" +msgstr "Diario" + +#. module: account_asset +#: field:account.asset.depreciation.line,depreciated_value:0 +msgid "Amount Already Depreciated" +msgstr "importe depreciado" + +#. module: account_asset +#: field:account.asset.depreciation.line,move_check:0 +#: view:asset.asset.report:0 field:asset.asset.report,move_check:0 +msgid "Posted" +msgstr "Contabilizado" + +#. module: account_asset +#: help:account.asset.asset,state:0 +msgid "" +"When an asset is created, the state is 'Draft'.\n" +"If the asset is confirmed, the state goes in 'Running' and the depreciation " +"lines can be posted in the accounting.\n" +"You can manually close an asset when the depreciation is over. If the last " +"line of depreciation is posted, the asset automatically goes in that state." +msgstr "" +"Cuando un activo es creado, su estado es 'Borrador'.\n" +"Si el activo es confirmado, el estado pasa a 'en ejecución' y las líneas de " +"amortización pueden ser asentados en la contabilidad.\n" +"Puede cerrar manualmente un activo cuando su amortización ha finalizado. Si " +"la última línea de depreciación se asienta, el activo automáticamente pasa a " +"este estado." + +#. module: account_asset +#: field:account.asset.category,name:0 +msgid "Name" +msgstr "Nombre" + +#. module: account_asset +#: help:account.asset.category,open_asset:0 +msgid "" +"Check this if you want to automatically confirm the assets of this category " +"when created by invoices." +msgstr "" +"Valide si desea confirmar automáticamente el activo de esta categoría cuando " +"es creado desde una factura." + +#. module: account_asset +#: view:account.asset.asset:0 +msgid "Set to Draft" +msgstr "Cambiar a borrador" + +#. module: account_asset +#: selection:account.asset.asset,method:0 +#: selection:account.asset.category,method:0 +msgid "Linear" +msgstr "Lineal" + +#. module: account_asset +#: view:asset.asset.report:0 +msgid "Month-1" +msgstr "Mes-1" + +#. module: account_asset +#: model:ir.model,name:account_asset.model_account_asset_depreciation_line +msgid "Asset depreciation line" +msgstr "Línea de depreciación del activo" + +#. module: account_asset +#: field:account.asset.asset,category_id:0 view:account.asset.category:0 +#: field:asset.asset.report,asset_category_id:0 +#: model:ir.model,name:account_asset.model_account_asset_category +msgid "Asset category" +msgstr "Categoría de activo" + +#. module: account_asset +#: view:asset.asset.report:0 +msgid "Assets purchased in last month" +msgstr "Activos comprados en el último mes" + +#. module: account_asset +#: code:addons/account_asset/wizard/wizard_asset_compute.py:49 +#, python-format +msgid "Created Asset Moves" +msgstr "Movimientos de activos creados" + +#. module: account_asset +#: constraint:account.move.line:0 +msgid "You can not create journal items on closed account." +msgstr "No puede crear asientos en cuentas cerradas" + +#. module: account_asset +#: model:ir.actions.act_window,help:account_asset.action_asset_asset_report +msgid "" +"From this report, you can have an overview on all depreciation. The tool " +"search can also be used to personalise your Assets reports and so, match " +"this analysis to your needs;" +msgstr "" +"Para este informe, puede tener una visión general de todas las " +"depreciaciones. La herramienta de búsqueda también puede ser utilizada para " +"personalizar sus informes de activos y por lo tanto adecuar este análisis a " +"sus necesidades;" + +#. module: account_asset +#: help:account.asset.category,method_period:0 +msgid "State here the time between 2 depreciations, in months" +msgstr "Establezca aquí el tiempo entre 2 depreciaciones, en meses" + +#. module: account_asset +#: field:account.asset.asset,method_number:0 +#: selection:account.asset.asset,method_time:0 +#: field:account.asset.category,method_number:0 +#: selection:account.asset.category,method_time:0 +#: field:account.asset.history,method_number:0 +#: selection:account.asset.history,method_time:0 +#: field:asset.modify,method_number:0 +msgid "Number of Depreciations" +msgstr "Número de depreciaciones" + +#. module: account_asset +#: view:account.asset.asset:0 +msgid "Create Move" +msgstr "Crear asiento" + +#. module: account_asset +#: view:asset.depreciation.confirmation.wizard:0 +msgid "Post Depreciation Lines" +msgstr "Asentar líneas de depreciación" + +#. module: account_asset +#: view:account.asset.asset:0 +msgid "Confirm Asset" +msgstr "Confirmar activo" + +#. module: account_asset +#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_tree +#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_tree +msgid "Asset Hierarchy" +msgstr "Jerarquía de activos" diff --git a/addons/account_budget/i18n/es_EC.po b/addons/account_budget/i18n/es_EC.po index 4ffaeabf9be..8f94b1efe45 100644 --- a/addons/account_budget/i18n/es_EC.po +++ b/addons/account_budget/i18n/es_EC.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-24 03:32+0000\n" +"Last-Translator: Cristian Salamea (Gnuthink) \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:14+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: account_budget #: field:crossovered.budget,creating_user_id:0 @@ -140,7 +140,7 @@ msgstr "" #: code:addons/account_budget/account_budget.py:119 #, python-format msgid "The Budget '%s' has no accounts!" -msgstr "" +msgstr "¡El presupuesto '%s' no tiene cuentas!" #. module: account_budget #: report:account.budget:0 @@ -261,7 +261,7 @@ msgstr "Presupuesto" #. module: account_budget #: view:crossovered.budget:0 msgid "To Approve Budgets" -msgstr "" +msgstr "Presupuestos por aprobar" #. module: account_budget #: code:addons/account_budget/account_budget.py:119 @@ -424,4 +424,4 @@ msgstr "Análisis desde" #. module: account_budget #: view:crossovered.budget:0 msgid "Draft Budgets" -msgstr "" +msgstr "Presupuestos en Borrador" diff --git a/addons/account_check_writing/i18n/nl.po b/addons/account_check_writing/i18n/nl.po index f32a44d8be5..fd7e574809e 100644 --- a/addons/account_check_writing/i18n/nl.po +++ b/addons/account_check_writing/i18n/nl.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-03-06 16:02+0000\n" +"PO-Revision-Date: 2012-03-24 17:24+0000\n" "Last-Translator: Erwin \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-07 06:03+0000\n" -"X-Generator: Launchpad (build 14907)\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: account_check_writing #: selection:res.company,check_layout:0 @@ -30,6 +30,10 @@ msgid "" "and an amount for the payment, OpenERP will propose to reconcile your " "payment with the open supplier invoices or bills.You can print the check" msgstr "" +"Met het formulier 'Cheque betaling' loopt u check-betalingen aan uw " +"leveranciers na. Wanneer u de leverancier en betaalwijze geselecteerd heeft " +"en het bedrag is ingevuld, stelt OpenERP voor de betaling af te letteren met " +"openstaande leverancier-facturen of declaraties. U kunt de cheque printen." #. module: account_check_writing #: view:account.voucher:0 diff --git a/addons/account_payment/i18n/es_EC.po b/addons/account_payment/i18n/es_EC.po index 42f0445848b..5e5ac06a588 100644 --- a/addons/account_payment/i18n/es_EC.po +++ b/addons/account_payment/i18n/es_EC.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-24 03:53+0000\n" +"Last-Translator: Cristian Salamea (Gnuthink) \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:18+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: account_payment #: field:payment.order,date_scheduled:0 @@ -90,7 +90,7 @@ msgstr "Fecha preferida" #. module: account_payment #: model:res.groups,name:account_payment.group_account_payment msgid "Accounting / Payments" -msgstr "" +msgstr "Contabilidad / Pagos" #. module: account_payment #: selection:payment.line,state:0 @@ -170,7 +170,7 @@ msgstr "¡El nombre de la línea de pago debe ser única!" #. module: account_payment #: constraint:account.invoice:0 msgid "Invalid BBA Structured Communication !" -msgstr "" +msgstr "¡Estructura de comunicación BBA no válida!" #. module: account_payment #: model:ir.actions.act_window,name:account_payment.action_payment_order_tree @@ -184,6 +184,8 @@ msgid "" "The date of your Journal Entry is not in the defined period! You should " "change the date or remove this constraint from the journal." msgstr "" +"¡La fecha de su asiento no está en el periodo definido! Usted debería " +"cambiar la fecha o borrar esta restricción del diario." #. module: account_payment #: selection:payment.order,date_prefered:0 @@ -362,6 +364,9 @@ msgid "" "currency. You should remove the secondary currency on the account or select " "a multi-currency view on the journal." msgstr "" +"La cuenta selecionada de su diario obliga a tener una moneda secundaria. " +"Usted debería eliminar la moneda secundaria de la cuenta o asignar una vista " +"de multi-moneda al diario." #. module: account_payment #: report:payment.order:0 @@ -468,7 +473,7 @@ msgstr "Lineas de Asientos Contables" #. module: account_payment #: constraint:account.move.line:0 msgid "You can not create journal items on an account of type view." -msgstr "" +msgstr "No puede crear asientos en una cuenta de tipo vista" #. module: account_payment #: help:payment.line,move_line_id:0 @@ -543,7 +548,7 @@ msgstr "Factura de Ref" #. module: account_payment #: sql_constraint:account.invoice:0 msgid "Invoice Number must be unique per Company!" -msgstr "" +msgstr "¡El número de factura debe ser único por compañía!" #. module: account_payment #: field:payment.line,name:0 @@ -588,7 +593,7 @@ msgstr "Cancelar" #. module: account_payment #: field:payment.line,bank_id:0 msgid "Destination Bank Account" -msgstr "" +msgstr "Cuenta bancaria destino" #. module: account_payment #: view:payment.line:0 @@ -599,7 +604,7 @@ msgstr "Información" #. module: account_payment #: constraint:account.move.line:0 msgid "Company must be the same for its related account and period." -msgstr "" +msgstr "La compañía debe ser la misma para su cuenta y periodos relacionados" #. module: account_payment #: model:ir.actions.act_window,help:account_payment.action_payment_order_tree @@ -716,7 +721,7 @@ msgstr "Orden" #. module: account_payment #: constraint:account.move.line:0 msgid "You can not create journal items on closed account." -msgstr "" +msgstr "No puede crear asientos en cuentas cerradas" #. module: account_payment #: field:payment.order,total:0 diff --git a/addons/account_voucher/i18n/es_EC.po b/addons/account_voucher/i18n/es_EC.po index 2a72303b7ef..e57533c498f 100644 --- a/addons/account_voucher/i18n/es_EC.po +++ b/addons/account_voucher/i18n/es_EC.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-03-22 04:29+0000\n" +"PO-Revision-Date: 2012-03-24 03:36+0000\n" "Last-Translator: Cristian Salamea (Gnuthink) \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-23 05:12+0000\n" -"X-Generator: Launchpad (build 14996)\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: account_voucher #: view:sale.receipt.report:0 @@ -945,6 +945,9 @@ msgid "" "either choose to keep open this difference on the partner's account, or " "reconcile it with the payment(s)" msgstr "" +"Este campo ayuda para direccionar la diferencia entre lo pagado y por pagar. " +"Puedes elegir una cuenta para mantener abierta la diferencia con la empresa " +"o conciliarla con el pago." #. module: account_voucher #: view:account.voucher:0 @@ -1028,6 +1031,8 @@ msgid "" "The specific rate that will be used, in this voucher, between the selected " "currency (in 'Payment Rate Currency' field) and the voucher currency." msgstr "" +"La tasa específica usada, en este comprobante entre la moneda seleccionada y " +"la moneda del comprobante." #. module: account_voucher #: field:account.bank.statement.line,voucher_id:0 view:account.invoice:0 @@ -1079,6 +1084,8 @@ msgid "" "Unable to create accounting entry for currency rate difference. You have to " "configure the field 'Expense Currency Rate' on the company! " msgstr "" +"No se puede crear un asiento contable por la diferencia de tasas. Debes " +"configurar el campo 'Tasa de Gasto' en la compañía. " #. module: account_voucher #: field:account.voucher,type:0 diff --git a/addons/analytic/i18n/es_EC.po b/addons/analytic/i18n/es_EC.po index f345f5edbe3..13481239d9b 100644 --- a/addons/analytic/i18n/es_EC.po +++ b/addons/analytic/i18n/es_EC.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-24 03:51+0000\n" +"Last-Translator: Cristian Salamea (Gnuthink) \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:19+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: analytic #: field:account.analytic.account,child_ids:0 @@ -81,7 +81,7 @@ msgstr "" #. module: analytic #: selection:account.analytic.account,state:0 msgid "New" -msgstr "" +msgstr "Nuevo" #. module: analytic #: field:account.analytic.account,type:0 @@ -126,6 +126,11 @@ msgid "" "consolidation purposes of several companies charts with different " "currencies, for example." msgstr "" +"Si configuras una compañía, la moneda seleccionada debe ser la misma.\n" +"You can remove the company belonging, and thus change the currency, only on " +"analytic account of type 'view'. This can be really usefull for " +"consolidation purposes of several companies charts with different " +"currencies, for example." #. module: analytic #: field:account.analytic.line,user_id:0 @@ -170,7 +175,7 @@ msgstr "Jerarquía de Cuentas" #. module: analytic #: help:account.analytic.account,quantity_max:0 msgid "Sets the higher limit of time to work on the contract." -msgstr "" +msgstr "Configurar el límite más alto de tiempo de trabajo en el contrato" #. module: analytic #: field:account.analytic.account,credit:0 @@ -190,7 +195,7 @@ msgstr "Contacto" #. module: analytic #: field:account.analytic.account,code:0 msgid "Code/Reference" -msgstr "" +msgstr "Código / Referencia" #. module: analytic #: selection:account.analytic.account,state:0 @@ -201,7 +206,7 @@ msgstr "Cancelado" #: code:addons/analytic/analytic.py:138 #, python-format msgid "Error !" -msgstr "" +msgstr "¡ Error !" #. module: analytic #: field:account.analytic.account,balance:0 @@ -230,12 +235,12 @@ msgstr "Fecha Final" #. module: analytic #: field:account.analytic.account,quantity_max:0 msgid "Maximum Time" -msgstr "" +msgstr "Tiempo Máximo" #. module: analytic #: model:res.groups,name:analytic.group_analytic_accounting msgid "Analytic Accounting" -msgstr "" +msgstr "Contabilidad Analítica" #. module: analytic #: field:account.analytic.account,complete_name:0 @@ -251,12 +256,12 @@ msgstr "Cuenta Analitica" #. module: analytic #: field:account.analytic.account,currency_id:0 msgid "Currency" -msgstr "" +msgstr "Moneda" #. module: analytic #: constraint:account.analytic.line:0 msgid "You can not create analytic line on view account." -msgstr "" +msgstr "No puede crear una línea analítica en una cuenta vista" #. module: analytic #: selection:account.analytic.account,type:0 diff --git a/addons/base_setup/i18n/es_EC.po b/addons/base_setup/i18n/es_EC.po index 976e35e1ca3..6d641ba8928 100644 --- a/addons/base_setup/i18n/es_EC.po +++ b/addons/base_setup/i18n/es_EC.po @@ -8,44 +8,44 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-24 03:46+0000\n" +"Last-Translator: Cristian Salamea (Gnuthink) \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:26+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: base_setup #: field:user.preferences.config,menu_tips:0 msgid "Display Tips" -msgstr "" +msgstr "Mostrar Sugerencias" #. module: base_setup #: selection:base.setup.terminology,partner:0 msgid "Guest" -msgstr "" +msgstr "Invitado" #. module: base_setup #: model:ir.model,name:base_setup.model_product_installer msgid "product.installer" -msgstr "" +msgstr "product.installer" #. module: base_setup #: selection:product.installer,customers:0 msgid "Create" -msgstr "" +msgstr "Crear" #. module: base_setup #: selection:base.setup.terminology,partner:0 msgid "Member" -msgstr "" +msgstr "Miembro" #. module: base_setup #: field:migrade.application.installer.modules,sync_google_contact:0 msgid "Sync Google Contact" -msgstr "" +msgstr "Sync con Contactos de Google" #. module: base_setup #: help:user.preferences.config,context_tz:0 @@ -53,21 +53,23 @@ msgid "" "Set default for new user's timezone, used to perform timezone conversions " "between the server and the client." msgstr "" +"Configurar zona horaria para usuario, usado para cambios de zonas horarias " +"entre el servidor y cliente." #. module: base_setup #: selection:product.installer,customers:0 msgid "Import" -msgstr "" +msgstr "Importar" #. module: base_setup #: selection:base.setup.terminology,partner:0 msgid "Donor" -msgstr "" +msgstr "Donante" #. module: base_setup #: model:ir.actions.act_window,name:base_setup.action_base_setup_company msgid "Set Company Header and Footer" -msgstr "" +msgstr "Configurar Encabezado y Pie" #. module: base_setup #: model:ir.actions.act_window,help:base_setup.action_base_setup_company @@ -76,21 +78,23 @@ msgid "" "printed on your reports. You can click on the button 'Preview Header' in " "order to check the header/footer of PDF documents." msgstr "" +"Llenar datos de la empresa, que se imprimirán en los reportes. Puedes dar " +"clic en el boton de vista previa para revisar el PDF." #. module: base_setup #: field:product.installer,customers:0 msgid "Customers" -msgstr "" +msgstr "Clientes" #. module: base_setup #: selection:user.preferences.config,view:0 msgid "Extended" -msgstr "" +msgstr "Extendido" #. module: base_setup #: selection:base.setup.terminology,partner:0 msgid "Patient" -msgstr "" +msgstr "Paciente" #. module: base_setup #: model:ir.actions.act_window,help:base_setup.action_import_create_installer @@ -99,26 +103,29 @@ msgid "" "you can import your existing partners by CSV spreadsheet from \"Import " "Data\" wizard" msgstr "" +"Crear o importar Clientes y sus contactos manualmente desde este formulario " +"o puede importar los existentes desde una hoja de cálculo con el asistente " +"de \"Importar Datos\"" #. module: base_setup #: view:user.preferences.config:0 msgid "Define Users's Preferences" -msgstr "" +msgstr "Definir Preferencias de Usuario" #. module: base_setup #: model:ir.actions.act_window,name:base_setup.action_user_preferences_config_form msgid "Define default users preferences" -msgstr "" +msgstr "Definir preferencias por defecto" #. module: base_setup #: help:migrade.application.installer.modules,import_saleforce:0 msgid "For Import Saleforce" -msgstr "" +msgstr "Para importar en Saleforce" #. module: base_setup #: help:migrade.application.installer.modules,quickbooks_ippids:0 msgid "For Quickbooks Ippids" -msgstr "" +msgstr "For Quickbooks Ippids" #. module: base_setup #: help:user.preferences.config,view:0 @@ -127,6 +134,9 @@ msgid "" "simplified interface, which has less features but is easier. You can always " "switch later from the user preferences." msgstr "" +"Si utiliza OpenERP por primera vez, le recomendamos que seleccione la " +"interfaz simplificada, que tiene menos funciones, pero es más fácil. Siempre " +"puede cambiarla más tarde en las preferencias del usuario." #. module: base_setup #: view:base.setup.terminology:0 @@ -137,12 +147,12 @@ msgstr "res_config_contents" #. module: base_setup #: field:user.preferences.config,view:0 msgid "Interface" -msgstr "" +msgstr "Interface" #. module: base_setup #: model:ir.model,name:base_setup.model_migrade_application_installer_modules msgid "migrade.application.installer.modules" -msgstr "" +msgstr "migrade.application.installer.modules" #. module: base_setup #: view:base.setup.terminology:0 @@ -150,21 +160,23 @@ msgid "" "You can use this wizard to change the terminologies for customers in the " "whole application." msgstr "" +"Puede usar este asistente para cambiar la terminología de clientes en la " +"aplicación" #. module: base_setup #: selection:base.setup.terminology,partner:0 msgid "Tenant" -msgstr "" +msgstr "Arrendatario" #. module: base_setup #: selection:base.setup.terminology,partner:0 msgid "Customer" -msgstr "" +msgstr "Cliente" #. module: base_setup #: field:user.preferences.config,context_lang:0 msgid "Language" -msgstr "" +msgstr "Lenguaje" #. module: base_setup #: help:user.preferences.config,context_lang:0 @@ -173,6 +185,9 @@ msgid "" "available. If you want to Add new Language, you can add it from 'Load an " "Official Translation' wizard from 'Administration' menu." msgstr "" +"Por defecto el lenguaje para la interfaz de usuario, cuando la traducción " +"está diponible. Si desea agregar un nuevo lenguaje, puedes agregarlo desde " +"'Cargar una traducción Oficial' desde el menú de administración." #. module: base_setup #: view:user.preferences.config:0 @@ -181,47 +196,51 @@ msgid "" "ones. Afterwards, users are free to change those values on their own user " "preference form." msgstr "" +"This will set the default preferences for new users and update all existing " +"ones. Afterwards, users are free to change those values on their own user " +"preference form." #. module: base_setup #: field:base.setup.terminology,partner:0 msgid "How do you call a Customer" -msgstr "" +msgstr "Como llamar a un cliente" #. module: base_setup #: field:migrade.application.installer.modules,quickbooks_ippids:0 msgid "Quickbooks Ippids" -msgstr "" +msgstr "Quickbooks Ippids" #. module: base_setup #: selection:base.setup.terminology,partner:0 msgid "Client" -msgstr "" +msgstr "Cliente" #. module: base_setup #: field:migrade.application.installer.modules,import_saleforce:0 msgid "Import Saleforce" -msgstr "" +msgstr "Importar Saleforce" #. module: base_setup #: field:user.preferences.config,context_tz:0 msgid "Timezone" -msgstr "" +msgstr "Zona horaria" #. module: base_setup #: model:ir.actions.act_window,name:base_setup.action_partner_terminology_config_form msgid "Use another word to say \"Customer\"" -msgstr "" +msgstr "Usar otra palabra para decir 'Cliente'" #. module: base_setup #: model:ir.model,name:base_setup.model_base_setup_terminology msgid "base.setup.terminology" -msgstr "" +msgstr "base.setup.terminology" #. module: base_setup #: help:user.preferences.config,menu_tips:0 msgid "" "Check out this box if you want to always display tips on each menu action" msgstr "" +"Seleccione esta opción si desea mostrar los consejos en cada acción del menú." #. module: base_setup #: field:base.setup.terminology,config_logo:0 @@ -234,49 +253,49 @@ msgstr "Imágen" #. module: base_setup #: model:ir.model,name:base_setup.model_user_preferences_config msgid "user.preferences.config" -msgstr "" +msgstr "user.preferences.config" #. module: base_setup #: model:ir.actions.act_window,name:base_setup.action_config_access_other_user msgid "Create Additional Users" -msgstr "" +msgstr "Crear usuario adicional" #. module: base_setup #: model:ir.actions.act_window,name:base_setup.action_import_create_installer msgid "Create or Import Customers" -msgstr "" +msgstr "Crear o importar Clientes" #. module: base_setup #: field:migrade.application.installer.modules,import_sugarcrm:0 msgid "Import Sugarcrm" -msgstr "" +msgstr "Importar SugarCRM" #. module: base_setup #: help:product.installer,customers:0 msgid "Import or create customers" -msgstr "" +msgstr "Importar o crear clientes" #. module: base_setup #: selection:user.preferences.config,view:0 msgid "Simplified" -msgstr "" +msgstr "Simplificado" #. module: base_setup #: help:migrade.application.installer.modules,import_sugarcrm:0 msgid "For Import Sugarcrm" -msgstr "" +msgstr "Para importar SugarCRM" #. module: base_setup #: selection:base.setup.terminology,partner:0 msgid "Partner" -msgstr "" +msgstr "Empresa" #. module: base_setup #: view:base.setup.terminology:0 msgid "Specify Your Terminology" -msgstr "" +msgstr "Especificar su terminología" #. module: base_setup #: help:migrade.application.installer.modules,sync_google_contact:0 msgid "For Sync Google Contact" -msgstr "" +msgstr "Para Sync contactos de Google" diff --git a/addons/base_setup/i18n/sl.po b/addons/base_setup/i18n/sl.po index 41f5337e376..8da2faf0b65 100644 --- a/addons/base_setup/i18n/sl.po +++ b/addons/base_setup/i18n/sl.po @@ -7,66 +7,66 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: Fabien (Open ERP) \n" +"PO-Revision-Date: 2012-03-26 19:19+0000\n" +"Last-Translator: Dusan Laznik \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:26+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" +"X-Generator: Launchpad (build 15011)\n" #. module: base_setup #: field:user.preferences.config,menu_tips:0 msgid "Display Tips" -msgstr "" +msgstr "Prikaz nasvetov" #. module: base_setup #: selection:base.setup.terminology,partner:0 msgid "Guest" -msgstr "" +msgstr "Gost" #. module: base_setup #: model:ir.model,name:base_setup.model_product_installer msgid "product.installer" -msgstr "" +msgstr "product.installer" #. module: base_setup #: selection:product.installer,customers:0 msgid "Create" -msgstr "" +msgstr "Ustvari" #. module: base_setup #: selection:base.setup.terminology,partner:0 msgid "Member" -msgstr "" +msgstr "Član" #. module: base_setup #: field:migrade.application.installer.modules,sync_google_contact:0 msgid "Sync Google Contact" -msgstr "" +msgstr "Sinhronizacija Google stikov" #. module: base_setup #: help:user.preferences.config,context_tz:0 msgid "" "Set default for new user's timezone, used to perform timezone conversions " "between the server and the client." -msgstr "" +msgstr "Privzeti časovni pas za nove uporabnike" #. module: base_setup #: selection:product.installer,customers:0 msgid "Import" -msgstr "" +msgstr "Uvoz" #. module: base_setup #: selection:base.setup.terminology,partner:0 msgid "Donor" -msgstr "" +msgstr "Donator" #. module: base_setup #: model:ir.actions.act_window,name:base_setup.action_base_setup_company msgid "Set Company Header and Footer" -msgstr "" +msgstr "Nastavitev \"glave\" in \"noge\" podjetja" #. module: base_setup #: model:ir.actions.act_window,help:base_setup.action_base_setup_company @@ -75,21 +75,23 @@ msgid "" "printed on your reports. You can click on the button 'Preview Header' in " "order to check the header/footer of PDF documents." msgstr "" +"Izpolnite podatke podjetja , ki se bodo uporabljali v poročilih. Predogled " +"je dostopen s klikom na gumb \"Predogled glave/noge\"." #. module: base_setup #: field:product.installer,customers:0 msgid "Customers" -msgstr "" +msgstr "Kupci" #. module: base_setup #: selection:user.preferences.config,view:0 msgid "Extended" -msgstr "" +msgstr "Razširjeno" #. module: base_setup #: selection:base.setup.terminology,partner:0 msgid "Patient" -msgstr "" +msgstr "Bolnik" #. module: base_setup #: model:ir.actions.act_window,help:base_setup.action_import_create_installer @@ -98,26 +100,28 @@ msgid "" "you can import your existing partners by CSV spreadsheet from \"Import " "Data\" wizard" msgstr "" +"Ustvarite ali uvozite Kupce in njihove podatke. Kupce lahko uvozite tudi s " +"pomočjo čarovnika \"Uvozi podatke\" ." #. module: base_setup #: view:user.preferences.config:0 msgid "Define Users's Preferences" -msgstr "" +msgstr "Nastavitve uporabnika" #. module: base_setup #: model:ir.actions.act_window,name:base_setup.action_user_preferences_config_form msgid "Define default users preferences" -msgstr "" +msgstr "Privzete nastavitve uporabnika" #. module: base_setup #: help:migrade.application.installer.modules,import_saleforce:0 msgid "For Import Saleforce" -msgstr "" +msgstr "Uvoz Saleforce" #. module: base_setup #: help:migrade.application.installer.modules,quickbooks_ippids:0 msgid "For Quickbooks Ippids" -msgstr "" +msgstr "Quickbooks Ippids" #. module: base_setup #: help:user.preferences.config,view:0 @@ -126,6 +130,9 @@ msgid "" "simplified interface, which has less features but is easier. You can always " "switch later from the user preferences." msgstr "" +"Če uporabljate OpenERP prvič,je priporočljivo izbrati poenostavljen vmesnik, " +"ki ima manj možnosti, ampak je lažji za uporabo. Vedno lahko spremenite " +"način prikaza v nastavitvah uporabnika." #. module: base_setup #: view:base.setup.terminology:0 @@ -136,34 +143,34 @@ msgstr "res_config_contents" #. module: base_setup #: field:user.preferences.config,view:0 msgid "Interface" -msgstr "" +msgstr "Vmesnik" #. module: base_setup #: model:ir.model,name:base_setup.model_migrade_application_installer_modules msgid "migrade.application.installer.modules" -msgstr "" +msgstr "migrade.application.installer.modules" #. module: base_setup #: view:base.setup.terminology:0 msgid "" "You can use this wizard to change the terminologies for customers in the " "whole application." -msgstr "" +msgstr "Ta čarovnik lahko spremeni izraz \"kupec\" v celotni aplikaciji" #. module: base_setup #: selection:base.setup.terminology,partner:0 msgid "Tenant" -msgstr "" +msgstr "Najemnik" #. module: base_setup #: selection:base.setup.terminology,partner:0 msgid "Customer" -msgstr "" +msgstr "Kupec" #. module: base_setup #: field:user.preferences.config,context_lang:0 msgid "Language" -msgstr "" +msgstr "Jezik" #. module: base_setup #: help:user.preferences.config,context_lang:0 @@ -172,6 +179,8 @@ msgid "" "available. If you want to Add new Language, you can add it from 'Load an " "Official Translation' wizard from 'Administration' menu." msgstr "" +"Nastavitev privzetega jezika za vse uporabniške vmesnike. Za dodajanje " +"novega jezika uporabite čarovnika \"Naloži uradni prevod\"." #. module: base_setup #: view:user.preferences.config:0 @@ -180,47 +189,53 @@ msgid "" "ones. Afterwards, users are free to change those values on their own user " "preference form." msgstr "" +"Določitev privzetih nastavitev za obstoječe in nove uporabnike. Uporabnik " +"lahko nastavitve kasneje spremeni." #. module: base_setup #: field:base.setup.terminology,partner:0 msgid "How do you call a Customer" msgstr "" +"Kateri izraz želite uporabljati za kupce (stranka,kupec,poslovni partner " +"...) ?" #. module: base_setup #: field:migrade.application.installer.modules,quickbooks_ippids:0 msgid "Quickbooks Ippids" -msgstr "" +msgstr "Quickbooks Ippids" #. module: base_setup #: selection:base.setup.terminology,partner:0 msgid "Client" -msgstr "" +msgstr "Odjemalec" #. module: base_setup #: field:migrade.application.installer.modules,import_saleforce:0 msgid "Import Saleforce" -msgstr "" +msgstr "Uvozi Saleforce" #. module: base_setup #: field:user.preferences.config,context_tz:0 msgid "Timezone" -msgstr "" +msgstr "Časovni pas" #. module: base_setup #: model:ir.actions.act_window,name:base_setup.action_partner_terminology_config_form msgid "Use another word to say \"Customer\"" msgstr "" +"Kateri izraz uporabljate za Kupca (stranka,kupec,poslovni partner ...) ?" #. module: base_setup #: model:ir.model,name:base_setup.model_base_setup_terminology msgid "base.setup.terminology" -msgstr "" +msgstr "base.setup.terminology" #. module: base_setup #: help:user.preferences.config,menu_tips:0 msgid "" "Check out this box if you want to always display tips on each menu action" msgstr "" +"Označite to polje, če želite da so namigi prikazani na vsakem dejanju menija" #. module: base_setup #: field:base.setup.terminology,config_logo:0 @@ -233,49 +248,49 @@ msgstr "Slika" #. module: base_setup #: model:ir.model,name:base_setup.model_user_preferences_config msgid "user.preferences.config" -msgstr "" +msgstr "user.preferences.config" #. module: base_setup #: model:ir.actions.act_window,name:base_setup.action_config_access_other_user msgid "Create Additional Users" -msgstr "" +msgstr "Ustvari nove uporabnike" #. module: base_setup #: model:ir.actions.act_window,name:base_setup.action_import_create_installer msgid "Create or Import Customers" -msgstr "" +msgstr "Ustvarite ali uvozite Kupce" #. module: base_setup #: field:migrade.application.installer.modules,import_sugarcrm:0 msgid "Import Sugarcrm" -msgstr "" +msgstr "Uvozite Sugarcrm" #. module: base_setup #: help:product.installer,customers:0 msgid "Import or create customers" -msgstr "" +msgstr "Uvoz ali dodajanje kupcev" #. module: base_setup #: selection:user.preferences.config,view:0 msgid "Simplified" -msgstr "" +msgstr "Poenostavljen" #. module: base_setup #: help:migrade.application.installer.modules,import_sugarcrm:0 msgid "For Import Sugarcrm" -msgstr "" +msgstr "Uvozi Sugarcrm" #. module: base_setup #: selection:base.setup.terminology,partner:0 msgid "Partner" -msgstr "" +msgstr "Poslovni partner" #. module: base_setup #: view:base.setup.terminology:0 msgid "Specify Your Terminology" -msgstr "" +msgstr "Določite svoje izraze" #. module: base_setup #: help:migrade.application.installer.modules,sync_google_contact:0 msgid "For Sync Google Contact" -msgstr "" +msgstr "Sinhronizacija Google stikov" diff --git a/addons/base_tools/i18n/es_EC.po b/addons/base_tools/i18n/es_EC.po new file mode 100644 index 00000000000..b124552dee6 --- /dev/null +++ b/addons/base_tools/i18n/es_EC.po @@ -0,0 +1,32 @@ +# Spanish (Ecuador) translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:14+0000\n" +"PO-Revision-Date: 2012-03-24 04:09+0000\n" +"Last-Translator: Cristian Salamea (Gnuthink) \n" +"Language-Team: Spanish (Ecuador) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" + +#. module: base_tools +#: model:ir.module.module,shortdesc:base_tools.module_meta_information +msgid "Common base for tools modules" +msgstr "Base común para módulos herramientas" + +#. module: base_tools +#: model:ir.module.module,description:base_tools.module_meta_information +msgid "" +"\n" +" " +msgstr "" +"\n" +" " diff --git a/addons/base_vat/i18n/es_EC.po b/addons/base_vat/i18n/es_EC.po index a3a9b254cf9..5811aa9446d 100644 --- a/addons/base_vat/i18n/es_EC.po +++ b/addons/base_vat/i18n/es_EC.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-24 04:08+0000\n" +"Last-Translator: Cristian Salamea (Gnuthink) \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:26+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: base_vat #: code:addons/base_vat/base_vat.py:141 @@ -23,32 +23,32 @@ msgstr "" msgid "" "This VAT number does not seem to be valid.\n" "Note: the expected format is %s" -msgstr "" +msgstr "El IVA no es válido. El formato esperado es %s" #. module: base_vat #: sql_constraint:res.company:0 msgid "The company name must be unique !" -msgstr "" +msgstr "¡El nombre de la compañía debe ser único!" #. module: base_vat #: constraint:res.partner:0 msgid "Error ! You cannot create recursive associated members." -msgstr "" +msgstr "Error! Usted no puede crear miembros asociados recursivos" #. module: base_vat #: field:res.company,vat_check_vies:0 msgid "VIES VAT Check" -msgstr "" +msgstr "Revisar IVA" #. module: base_vat #: model:ir.model,name:base_vat.model_res_company msgid "Companies" -msgstr "" +msgstr "Compañías" #. module: base_vat #: constraint:res.company:0 msgid "Error! You can not create recursive companies." -msgstr "" +msgstr "Error! No puede crear compañías recursivas." #. module: base_vat #: help:res.partner,vat_subjected:0 @@ -69,7 +69,7 @@ msgstr "Empresa" msgid "" "If checked, Partners VAT numbers will be fully validated against EU's VIES " "service rather than via a simple format validation (checksum)." -msgstr "" +msgstr "Si o activa, El IVA será validado contra el servicio de VIES" #. module: base_vat #: field:res.partner,vat_subjected:0 diff --git a/addons/crm_claim/i18n/it.po b/addons/crm_claim/i18n/it.po index 6a83acad43b..002409f7dbc 100644 --- a/addons/crm_claim/i18n/it.po +++ b/addons/crm_claim/i18n/it.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: Nicola Riolini - Micronaet \n" +"PO-Revision-Date: 2012-03-26 09:13+0000\n" +"Last-Translator: simone.sandri \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:30+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" +"X-Generator: Launchpad (build 15011)\n" #. module: crm_claim #: field:crm.claim.report,nbr:0 @@ -90,7 +90,7 @@ msgstr "" #. module: crm_claim #: view:crm.claim:0 msgid "Date Closed" -msgstr "" +msgstr "Data di chiusura" #. module: crm_claim #: view:crm.claim.report:0 @@ -159,7 +159,7 @@ msgstr "" #. module: crm_claim #: view:crm.claim.report:0 msgid "# Mails" -msgstr "" +msgstr "# E-Mail" #. module: crm_claim #: view:crm.claim:0 @@ -201,7 +201,7 @@ msgstr "Sezione" #. module: crm_claim #: view:crm.claim:0 msgid "Root Causes" -msgstr "" +msgstr "Cause principali" #. module: crm_claim #: field:crm.claim,user_fault:0 @@ -225,7 +225,7 @@ msgstr "Invia nuova E-mail" #: selection:crm.claim,state:0 #: view:crm.claim.report:0 msgid "New" -msgstr "" +msgstr "Nuovo" #. module: crm_claim #: view:crm.claim:0 diff --git a/addons/crm_todo/i18n/fi.po b/addons/crm_todo/i18n/fi.po new file mode 100644 index 00000000000..48e8203f4bd --- /dev/null +++ b/addons/crm_todo/i18n/fi.po @@ -0,0 +1,96 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-03-26 09:39+0000\n" +"Last-Translator: Juha Kotamäki \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" +"X-Generator: Launchpad (build 15011)\n" + +#. module: crm_todo +#: model:ir.model,name:crm_todo.model_project_task +msgid "Task" +msgstr "Tehtävä" + +#. module: crm_todo +#: view:crm.lead:0 +msgid "Timebox" +msgstr "Aikaikkuna" + +#. module: crm_todo +#: view:crm.lead:0 +msgid "For cancelling the task" +msgstr "Peruuttaaksesi tehtävän" + +#. module: crm_todo +#: constraint:project.task:0 +msgid "Error ! Task end-date must be greater then task start-date" +msgstr "" +"Virhe! Tehtävän lopetuspäivän tulee olla myöhäisempi kuin aloituspäivä" + +#. module: crm_todo +#: model:ir.model,name:crm_todo.model_crm_lead +msgid "crm.lead" +msgstr "" + +#. module: crm_todo +#: view:crm.lead:0 +msgid "Next" +msgstr "seuraava" + +#. module: crm_todo +#: model:ir.actions.act_window,name:crm_todo.crm_todo_action +#: model:ir.ui.menu,name:crm_todo.menu_crm_todo +msgid "My Tasks" +msgstr "Omat tehtävät" + +#. module: crm_todo +#: view:crm.lead:0 +#: field:crm.lead,task_ids:0 +msgid "Tasks" +msgstr "Tehtävät" + +#. module: crm_todo +#: view:crm.lead:0 +msgid "Done" +msgstr "Valmis" + +#. module: crm_todo +#: constraint:project.task:0 +msgid "Error ! You cannot create recursive tasks." +msgstr "Virhe ! Et voi luoda rekursiivisiä tehtäviä." + +#. module: crm_todo +#: view:crm.lead:0 +msgid "Cancel" +msgstr "Peruuta" + +#. module: crm_todo +#: view:crm.lead:0 +msgid "Extra Info" +msgstr "Lisätiedot" + +#. module: crm_todo +#: field:project.task,lead_id:0 +msgid "Lead / Opportunity" +msgstr "Liidi / mahdollisuus" + +#. module: crm_todo +#: view:crm.lead:0 +msgid "For changing to done state" +msgstr "Vaihtaaksesi valmis tilaan" + +#. module: crm_todo +#: view:crm.lead:0 +msgid "Previous" +msgstr "edellinen" diff --git a/addons/crm_todo/i18n/it.po b/addons/crm_todo/i18n/it.po new file mode 100644 index 00000000000..8ff329c5848 --- /dev/null +++ b/addons/crm_todo/i18n/it.po @@ -0,0 +1,97 @@ +# Italian translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-03-23 08:30+0000\n" +"Last-Translator: simone.sandri \n" +"Language-Team: Italian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-24 05:40+0000\n" +"X-Generator: Launchpad (build 14981)\n" + +#. module: crm_todo +#: model:ir.model,name:crm_todo.model_project_task +msgid "Task" +msgstr "Attività" + +#. module: crm_todo +#: view:crm.lead:0 +msgid "Timebox" +msgstr "Periodo Inderogabile" + +#. module: crm_todo +#: view:crm.lead:0 +msgid "For cancelling the task" +msgstr "" + +#. module: crm_todo +#: constraint:project.task:0 +msgid "Error ! Task end-date must be greater then task start-date" +msgstr "" +"Errore ! La data di termine del compito deve essere antecedente a quella di " +"inizio" + +#. module: crm_todo +#: model:ir.model,name:crm_todo.model_crm_lead +msgid "crm.lead" +msgstr "" + +#. module: crm_todo +#: view:crm.lead:0 +msgid "Next" +msgstr "Successivo" + +#. module: crm_todo +#: model:ir.actions.act_window,name:crm_todo.crm_todo_action +#: model:ir.ui.menu,name:crm_todo.menu_crm_todo +msgid "My Tasks" +msgstr "Le Mie Attività" + +#. module: crm_todo +#: view:crm.lead:0 +#: field:crm.lead,task_ids:0 +msgid "Tasks" +msgstr "Attività" + +#. module: crm_todo +#: view:crm.lead:0 +msgid "Done" +msgstr "Completato" + +#. module: crm_todo +#: constraint:project.task:0 +msgid "Error ! You cannot create recursive tasks." +msgstr "Errore ! Non è possibile creare attività ricorsive." + +#. module: crm_todo +#: view:crm.lead:0 +msgid "Cancel" +msgstr "Cancella" + +#. module: crm_todo +#: view:crm.lead:0 +msgid "Extra Info" +msgstr "Altre Informazioni" + +#. module: crm_todo +#: field:project.task,lead_id:0 +msgid "Lead / Opportunity" +msgstr "" + +#. module: crm_todo +#: view:crm.lead:0 +msgid "For changing to done state" +msgstr "" + +#. module: crm_todo +#: view:crm.lead:0 +msgid "Previous" +msgstr "Precedente" diff --git a/addons/edi/i18n/fi.po b/addons/edi/i18n/fi.po index 4470bd122ce..c0d323b5fbd 100644 --- a/addons/edi/i18n/fi.po +++ b/addons/edi/i18n/fi.po @@ -8,34 +8,34 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-26 10:27+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:34+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" +"X-Generator: Launchpad (build 15011)\n" #. module: edi #: sql_constraint:res.currency:0 msgid "The currency code must be unique per company!" -msgstr "" +msgstr "Valuuttakoodin pitää olla uniikki yrityskohtaisesti!" #. module: edi #: model:ir.model,name:edi.model_res_partner_address msgid "Partner Addresses" -msgstr "" +msgstr "Kumppanien osoitteet" #. module: edi #: sql_constraint:res.company:0 msgid "The company name must be unique !" -msgstr "" +msgstr "Yrityksen nimen pitää olla uniikki!" #. module: edi #: constraint:res.partner:0 msgid "Error ! You cannot create recursive associated members." -msgstr "" +msgstr "Virhe! Rekursiivisen kumppanin luonti ei ole sallittu." #. module: edi #: field:edi.document,name:0 @@ -45,27 +45,27 @@ msgstr "" #. module: edi #: help:edi.document,name:0 msgid "Unique identifier for retrieving an EDI document." -msgstr "" +msgstr "Uniikki tunniste EDI dokumentin noutamiseksi." #. module: edi #: constraint:res.company:0 msgid "Error! You can not create recursive companies." -msgstr "" +msgstr "Virhe! Et voi luoda sisäkkäisiä yrityksiä." #. module: edi #: model:ir.model,name:edi.model_res_company msgid "Companies" -msgstr "" +msgstr "Yritykset" #. module: edi #: sql_constraint:edi.document:0 msgid "EDI Tokens must be unique!" -msgstr "" +msgstr "EDI tunnisteiden tulee olla uniikkeja!" #. module: edi #: model:ir.model,name:edi.model_res_currency msgid "Currency" -msgstr "" +msgstr "Valuutta" #. module: edi #: code:addons/edi/models/edi.py:153 @@ -79,18 +79,18 @@ msgstr "" #. module: edi #: help:edi.document,document:0 msgid "EDI document content" -msgstr "" +msgstr "EDI dokumentin sisältö" #. module: edi #: model:ir.model,name:edi.model_edi_document msgid "EDI Document" -msgstr "" +msgstr "EDI dokumentti" #. module: edi #: code:addons/edi/models/edi.py:48 #, python-format msgid "'%s' is an invalid external ID" -msgstr "" +msgstr "'%s' on virheellinen ulkoinen ID" #. module: edi #: model:ir.model,name:edi.model_res_partner @@ -101,52 +101,52 @@ msgstr "Kumppani" #: code:addons/edi/models/edi.py:152 #, python-format msgid "Missing Application" -msgstr "" +msgstr "Puuttuva applikaatio" #. module: edi #: field:edi.document,document:0 msgid "Document" -msgstr "" +msgstr "Dokumentti" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:23 msgid "View/Print" -msgstr "" +msgstr "Katso/Tulosta" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:28 msgid "Import this document" -msgstr "" +msgstr "Tuo tämä dokumentti" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:33 msgid "Import it into an existing OpenERP instance" -msgstr "" +msgstr "Tuo olemassaolevaan OpenERP instassiin" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:36 msgid "OpenERP instance address:" -msgstr "" +msgstr "OpenERP instanssin osoite:" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:39 msgid "Import" -msgstr "" +msgstr "Tuo" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:44 msgid "Import it into a new OpenERP Online instance" -msgstr "" +msgstr "Tuo uuteen OpenERP Online instassiin" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:47 msgid "Create my new OpenERP instance" -msgstr "" +msgstr "Luo oma uusi OpenERP instanssi" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:52 msgid "Import into another application" -msgstr "" +msgstr "Tuo toiseen ohjelmistoon" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:54 @@ -177,27 +177,27 @@ msgstr "" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:60 msgid "OpenERP documentation" -msgstr "" +msgstr "OpenERP dokumentaatio" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:61 msgid "To get started immediately," -msgstr "" +msgstr "Aloittaaksesi heti" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:62 msgid "see is all it takes to use this EDI document in Python" -msgstr "" +msgstr "katso itä vaaditaan tämän dokumentin käsittelyyn Pythonissa" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:70 msgid "You can download the raw EDI document here:" -msgstr "" +msgstr "Voit ladata raakamuotoisen EDI dokumentin täältä:" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:73 msgid "Download" -msgstr "" +msgstr "Lataa" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:87 @@ -207,12 +207,12 @@ msgstr "" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi.xml:87 msgid "OpenERP" -msgstr "" +msgstr "OpenERP" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:34 msgid "Invoice" -msgstr "" +msgstr "Lasku" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:37 @@ -223,117 +223,118 @@ msgstr "Kuvaus" #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:38 #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:41 msgid "Date" -msgstr "" +msgstr "Päivämäärä" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:39 #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:40 msgid "Your Reference" -msgstr "" +msgstr "Viitteenne" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:50 #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:57 msgid "Product Description" -msgstr "" +msgstr "Tuotteen kuvaus" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:51 #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:58 msgid "Quantity" -msgstr "" +msgstr "Määrä" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:52 #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:59 msgid "Unit Price" -msgstr "" +msgstr "Yksikköhinta" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:53 msgid "Discount" -msgstr "" +msgstr "Alennus" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:54 #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:61 msgid "Price" -msgstr "" +msgstr "Hinta" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:72 #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:81 msgid "Net Total:" -msgstr "" +msgstr "Yhteensä netto:" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:83 #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:92 msgid "Taxes:" -msgstr "" +msgstr "Verot:" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:94 #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:103 msgid "Total:" -msgstr "" +msgstr "Yhteensä:" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:106 msgid "Tax" -msgstr "" +msgstr "Vero" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:107 msgid "Base Amount" -msgstr "" +msgstr "Alkuperäinen määrä" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:108 msgid "Amount" -msgstr "" +msgstr "Määrä" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:121 #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:113 msgid "Notes:" -msgstr "" +msgstr "Muistiinpanot:" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:129 #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:121 msgid "Pay Online" -msgstr "" +msgstr "Maksa verkossa" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:133 #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:125 msgid "Paypal" -msgstr "" +msgstr "PayPal" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:135 msgid "" "You may directly pay this invoice online via Paypal's secure payment gateway:" msgstr "" +"Voit maksaa tämän laskun suoraan PayPal'in turvallisessa verkkomaksussa:" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:145 #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:137 msgid "Bank Wire Transfer" -msgstr "" +msgstr "Pankkisiirto" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:147 #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:139 msgid "Please transfer" -msgstr "" +msgstr "Ole hyvä ja siirrä" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:148 #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:140 msgid "to" -msgstr "" +msgstr "vastaanottaja" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:149 @@ -348,27 +349,27 @@ msgstr "" #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_account.xml:151 #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:143 msgid "on the transfer:" -msgstr "" +msgstr "siirrossa:" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:36 msgid "Order" -msgstr "" +msgstr "Tilaus" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:42 msgid "Salesman" -msgstr "" +msgstr "Myyjä" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:43 msgid "Payment terms" -msgstr "" +msgstr "Maksuehdot" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:60 msgid "Discount(%)" -msgstr "" +msgstr "Alennus (%)" #. openerp-web #: /home/odo/repositories/addons/trunk/edi/static/src/xml/edi_sale_purchase.xml:127 diff --git a/addons/google_base_account/i18n/it.po b/addons/google_base_account/i18n/it.po new file mode 100644 index 00000000000..39b3be512b4 --- /dev/null +++ b/addons/google_base_account/i18n/it.po @@ -0,0 +1,121 @@ +# Italian translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-03-26 09:17+0000\n" +"Last-Translator: simone.sandri \n" +"Language-Team: Italian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" +"X-Generator: Launchpad (build 15011)\n" + +#. module: google_base_account +#: field:res.users,gmail_user:0 +msgid "Username" +msgstr "Nome utente" + +#. module: google_base_account +#: model:ir.actions.act_window,name:google_base_account.act_google_login_form +msgid "Google Login" +msgstr "Login Google" + +#. module: google_base_account +#: code:addons/google_base_account/wizard/google_login.py:29 +#, python-format +msgid "Google Contacts Import Error!" +msgstr "Errore nell'importazione dei contatti da Google!" + +#. module: google_base_account +#: view:res.users:0 +msgid " Synchronization " +msgstr " Sincronizzazione " + +#. module: google_base_account +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "Non è possibile avere due utenti con lo stesso login !" + +#. module: google_base_account +#: code:addons/google_base_account/wizard/google_login.py:75 +#, python-format +msgid "Error" +msgstr "Errore" + +#. module: google_base_account +#: view:google.login:0 +msgid "Google login" +msgstr "Login Google" + +#. module: google_base_account +#: model:ir.model,name:google_base_account.model_res_users +msgid "res.users" +msgstr "res.users" + +#. module: google_base_account +#: field:google.login,password:0 +msgid "Google Password" +msgstr "Password Google" + +#. module: google_base_account +#: view:google.login:0 +msgid "_Cancel" +msgstr "_Annulla" + +#. module: google_base_account +#: view:res.users:0 +msgid "Google Account" +msgstr "Account Google" + +#. module: google_base_account +#: field:google.login,user:0 +msgid "Google Username" +msgstr "Nome Utente Google" + +#. 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 "" +"Prego installare gdata-python-client da http://code.google.com/p/gdata-" +"python-client/downloads/list" + +#. module: google_base_account +#: model:ir.model,name:google_base_account.model_google_login +msgid "Google Contact" +msgstr "Contatto Google" + +#. module: google_base_account +#: view:google.login:0 +msgid "_Login" +msgstr "_Accedi" + +#. module: google_base_account +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "L'azienda scelta non è fra la aziende abilitate per questo utente" + +#. module: google_base_account +#: field:res.users,gmail_password:0 +msgid "Password" +msgstr "Password" + +#. module: google_base_account +#: code:addons/google_base_account/wizard/google_login.py:75 +#, python-format +msgid "Authentication fail check the user and password !" +msgstr "Autenticazione fallita, controlla il nome utente e la password !" + +#. module: google_base_account +#: view:google.login:0 +msgid "ex: user@gmail.com" +msgstr "es: user@gmail.com" diff --git a/addons/hr/i18n/es_EC.po b/addons/hr/i18n/es_EC.po index 9c963c7cb62..9ad0672a7f6 100644 --- a/addons/hr/i18n/es_EC.po +++ b/addons/hr/i18n/es_EC.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-24 04:01+0000\n" +"Last-Translator: Cristian Salamea (Gnuthink) \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:37+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: hr #: model:process.node,name:hr.process_node_openerpuser0 @@ -647,7 +647,7 @@ msgstr "Empleados" #. module: hr #: help:hr.employee,sinid:0 msgid "Social Insurance Number" -msgstr "" +msgstr "Número Social" #. module: hr #: field:hr.department,name:0 @@ -667,7 +667,7 @@ msgstr "Creación de un usuario OpenERP" #. module: hr #: field:hr.employee,login:0 msgid "Login" -msgstr "" +msgstr "Usuario" #. module: hr #: view:hr.employee:0 diff --git a/addons/hr_contract/i18n/es_EC.po b/addons/hr_contract/i18n/es_EC.po index ea7e5d002c5..e3dc45fea6f 100644 --- a/addons/hr_contract/i18n/es_EC.po +++ b/addons/hr_contract/i18n/es_EC.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-24 04:05+0000\n" +"Last-Translator: Cristian Salamea (Gnuthink) \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:37+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: hr_contract #: field:hr.contract,wage:0 @@ -25,52 +25,52 @@ msgstr "Salario" #. module: hr_contract #: view:hr.contract:0 msgid "Information" -msgstr "" +msgstr "Información" #. module: hr_contract #: view:hr.contract:0 msgid "Trial Period" -msgstr "" +msgstr "Periodo de pruebas" #. module: hr_contract #: field:hr.contract,trial_date_start:0 msgid "Trial Start Date" -msgstr "" +msgstr "Fecha de inicio" #. module: hr_contract #: view:hr.employee:0 msgid "Medical Examination" -msgstr "" +msgstr "Examen médico" #. module: hr_contract #: field:hr.employee,vehicle:0 msgid "Company Vehicle" -msgstr "" +msgstr "Vehículo de la compañía" #. module: hr_contract #: view:hr.employee:0 msgid "Miscellaneous" -msgstr "" +msgstr "Misc" #. module: hr_contract #: view:hr.contract:0 msgid "Current" -msgstr "" +msgstr "Actual" #. module: hr_contract #: view:hr.contract:0 msgid "Group By..." -msgstr "" +msgstr "Agrupar por..." #. module: hr_contract #: field:hr.contract,department_id:0 msgid "Department" -msgstr "" +msgstr "Departamento" #. module: hr_contract #: view:hr.contract:0 msgid "Overpassed" -msgstr "" +msgstr "Sobrepasado" #. module: hr_contract #: view:hr.contract:0 @@ -82,17 +82,17 @@ msgstr "Empleado" #. module: hr_contract #: view:hr.contract:0 msgid "Search Contract" -msgstr "" +msgstr "Buscar contrato" #. module: hr_contract #: view:hr.contract:0 msgid "Contracts in progress" -msgstr "" +msgstr "Contratos en progreso" #. module: hr_contract #: field:hr.employee,vehicle_distance:0 msgid "Home-Work Distance" -msgstr "" +msgstr "Distancia de casa al trabajo" #. module: hr_contract #: view:hr.contract:0 @@ -106,54 +106,54 @@ msgstr "Contratos" #. module: hr_contract #: view:hr.employee:0 msgid "Personal Info" -msgstr "" +msgstr "Información personal" #. module: hr_contract #: view:hr.contract:0 msgid "Contracts whose end date already passed" -msgstr "" +msgstr "Contratos con fecha vencida" #. module: hr_contract #: help:hr.employee,contract_id:0 msgid "Latest contract of the employee" -msgstr "" +msgstr "Último contrato del empleado." #. module: hr_contract #: view:hr.contract:0 msgid "Job" -msgstr "" +msgstr "Puesto de Trabajo" #. module: hr_contract #: view:hr.contract:0 #: field:hr.contract,advantages:0 msgid "Advantages" -msgstr "" +msgstr "Ventajas" #. module: hr_contract #: view:hr.contract:0 msgid "Valid for" -msgstr "" +msgstr "Válido para" #. module: hr_contract #: view:hr.contract:0 msgid "Work Permit" -msgstr "" +msgstr "Permiso de trabajo" #. module: hr_contract #: field:hr.employee,children:0 msgid "Number of Children" -msgstr "" +msgstr "Número de hijos" #. module: hr_contract #: model:ir.actions.act_window,name:hr_contract.action_hr_contract_type #: model:ir.ui.menu,name:hr_contract.hr_menu_contract_type msgid "Contract Types" -msgstr "" +msgstr "Tipos de contrato" #. module: hr_contract #: constraint:hr.employee:0 msgid "Error ! You cannot create recursive Hierarchy of Employees." -msgstr "" +msgstr "¡Error! No puede crear una jerarquía recursiva de empleados." #. module: hr_contract #: field:hr.contract,date_end:0 @@ -163,17 +163,17 @@ msgstr "Fecha final" #. module: hr_contract #: help:hr.contract,wage:0 msgid "Basic Salary of the employee" -msgstr "" +msgstr "Salario base del empleado" #. module: hr_contract #: field:hr.contract,name:0 msgid "Contract Reference" -msgstr "" +msgstr "Ref. de Contrato" #. module: hr_contract #: help:hr.employee,vehicle_distance:0 msgid "In kilometers" -msgstr "" +msgstr "En km" #. module: hr_contract #: view:hr.contract:0 @@ -184,7 +184,7 @@ msgstr "Notas" #. module: hr_contract #: field:hr.contract,permit_no:0 msgid "Work Permit No" -msgstr "" +msgstr "Nº Permiso" #. module: hr_contract #: view:hr.contract:0 @@ -207,27 +207,27 @@ msgstr "Tipo de contrato" #: view:hr.contract:0 #: field:hr.contract,working_hours:0 msgid "Working Schedule" -msgstr "" +msgstr "Planificación de trabajo" #. module: hr_contract #: view:hr.employee:0 msgid "Job Info" -msgstr "" +msgstr "Info. trabajo" #. module: hr_contract #: field:hr.contract,visa_expire:0 msgid "Visa Expire Date" -msgstr "" +msgstr "Fecha expiración visado" #. module: hr_contract #: field:hr.contract,job_id:0 msgid "Job Title" -msgstr "" +msgstr "Puesto de Trabajo" #. module: hr_contract #: field:hr.employee,manager:0 msgid "Is a Manager" -msgstr "" +msgstr "Es un director" #. module: hr_contract #: field:hr.contract,date_start:0 @@ -238,11 +238,13 @@ msgstr "Fecha inicial" #: constraint:hr.contract:0 msgid "Error! contract start-date must be lower then contract end-date." msgstr "" +"¡Error! La fecha de inicio de contrato debe ser anterior a la fecha de " +"finalización." #. module: hr_contract #: field:hr.contract,visa_no:0 msgid "Visa No" -msgstr "" +msgstr "Núm de Visa" #. module: hr_contract #: field:hr.employee,place_of_birth:0 @@ -252,19 +254,19 @@ msgstr "Lugar de nacimiento" #. module: hr_contract #: view:hr.contract:0 msgid "Duration" -msgstr "" +msgstr "Duración" #. module: hr_contract #: field:hr.employee,medic_exam:0 msgid "Medical Examination Date" -msgstr "" +msgstr "Fecha del examen médico" #. module: hr_contract #: field:hr.contract,trial_date_end:0 msgid "Trial End Date" -msgstr "" +msgstr "Fecha de finalización" #. module: hr_contract #: view:hr.contract.type:0 msgid "Search Contract Type" -msgstr "" +msgstr "Buscar tipo contrato" diff --git a/addons/hr_contract/i18n/it.po b/addons/hr_contract/i18n/it.po index 2d58e0862db..6a515b9f8ca 100644 --- a/addons/hr_contract/i18n/it.po +++ b/addons/hr_contract/i18n/it.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: Nicola Riolini - Micronaet \n" +"PO-Revision-Date: 2012-03-23 08:28+0000\n" +"Last-Translator: simone.sandri \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:37+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-24 05:40+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: hr_contract #: field:hr.contract,wage:0 @@ -24,7 +24,7 @@ msgstr "Retribuzione" #. module: hr_contract #: view:hr.contract:0 msgid "Information" -msgstr "" +msgstr "Informazione" #. module: hr_contract #: view:hr.contract:0 @@ -86,7 +86,7 @@ msgstr "Cerca contratto" #. module: hr_contract #: view:hr.contract:0 msgid "Contracts in progress" -msgstr "" +msgstr "Contratti attivi" #. module: hr_contract #: field:hr.employee,vehicle_distance:0 @@ -110,7 +110,7 @@ msgstr "Informazioni personali" #. module: hr_contract #: view:hr.contract:0 msgid "Contracts whose end date already passed" -msgstr "" +msgstr "Contratti scaduti" #. module: hr_contract #: help:hr.employee,contract_id:0 diff --git a/addons/hr_payroll/i18n/es_EC.po b/addons/hr_payroll/i18n/es_EC.po index 3c1ef86ec3f..a6a51724234 100644 --- a/addons/hr_payroll/i18n/es_EC.po +++ b/addons/hr_payroll/i18n/es_EC.po @@ -8,38 +8,38 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-26 23:36+0000\n" +"Last-Translator: mariofabian \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:40+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" +"X-Generator: Launchpad (build 15011)\n" #. module: hr_payroll #: field:hr.payslip.line,condition_select:0 #: field:hr.salary.rule,condition_select:0 msgid "Condition Based on" -msgstr "" +msgstr "Condición Basada en" #. module: hr_payroll #: selection:hr.contract,schedule_pay:0 msgid "Monthly" -msgstr "" +msgstr "Mensualmente" #. module: hr_payroll #: view:hr.payslip:0 field:hr.payslip,line_ids:0 #: model:ir.actions.act_window,name:hr_payroll.act_contribution_reg_payslip_lines msgid "Payslip Lines" -msgstr "" +msgstr "Lineas del rol" #. module: hr_payroll #: view:hr.payslip.line:0 #: model:ir.model,name:hr_payroll.model_hr_salary_rule_category #: report:paylip.details:0 msgid "Salary Rule Category" -msgstr "" +msgstr "Categoría de regla de salario" #. module: hr_payroll #: help:hr.salary.rule.category,parent_id:0 @@ -47,6 +47,7 @@ msgid "" "Linking a salary category to its parent is used only for the reporting " "purpose." msgstr "" +"Asociando una categoría salarial al padre es usada solo para reportes" #. module: hr_payroll #: view:hr.payslip:0 view:hr.payslip.line:0 view:hr.salary.rule:0 @@ -56,19 +57,19 @@ msgstr "Agroupar por ..." #. module: hr_payroll #: view:hr.payslip:0 msgid "States" -msgstr "" +msgstr "Provincias" #. module: hr_payroll #: field:hr.payslip.line,input_ids:0 view:hr.salary.rule:0 #: field:hr.salary.rule,input_ids:0 msgid "Inputs" -msgstr "" +msgstr "Entrada" #. module: hr_payroll #: field:hr.payslip.line,parent_rule_id:0 #: field:hr.salary.rule,parent_rule_id:0 msgid "Parent Salary Rule" -msgstr "" +msgstr "Regla Salarial Padre" #. module: hr_payroll #: field:hr.employee,slip_ids:0 view:hr.payslip:0 view:hr.payslip.run:0 @@ -81,7 +82,7 @@ msgstr "Nóminas" #: field:hr.payroll.structure,parent_id:0 #: field:hr.salary.rule.category,parent_id:0 msgid "Parent" -msgstr "" +msgstr "Padre" #. module: hr_payroll #: report:paylip.details:0 report:payslip:0 @@ -99,7 +100,7 @@ msgstr "Compañía" #. module: hr_payroll #: view:hr.payslip:0 msgid "Done Slip" -msgstr "" +msgstr "Rol Realizado" #. module: hr_payroll #: report:paylip.details:0 report:payslip:0 @@ -114,13 +115,13 @@ msgstr "Cambiar a borrador" #. module: hr_payroll #: model:ir.model,name:hr_payroll.model_hr_salary_rule msgid "hr.salary.rule" -msgstr "" +msgstr "Regla Salarial" #. module: hr_payroll #: field:hr.payslip,payslip_run_id:0 #: model:ir.model,name:hr_payroll.model_hr_payslip_run msgid "Payslip Batches" -msgstr "" +msgstr "Nómina por Lote" #. module: hr_payroll #: view:hr.payslip.employees:0 @@ -128,12 +129,14 @@ msgid "" "This wizard will generate payslips for all selected employee(s) based on the " "dates and credit note specified on Payslips Run." msgstr "" +"Este asistente genera los roles de los empleados seleccionados basado en los " +"datos especificados en el rol" #. module: hr_payroll #: report:contribution.register.lines:0 report:paylip.details:0 #: report:payslip:0 msgid "Quantity/Rate" -msgstr "" +msgstr "Cantidad/Porcentaje" #. module: hr_payroll #: field:hr.payslip.input,payslip_id:0 field:hr.payslip.line,slip_id:0 @@ -145,13 +148,13 @@ msgstr "Nómina" #. module: hr_payroll #: view:hr.payslip.employees:0 msgid "Generate" -msgstr "" +msgstr "Generar" #. module: hr_payroll #: help:hr.payslip.line,amount_percentage_base:0 #: help:hr.salary.rule,amount_percentage_base:0 msgid "result will be affected to a variable" -msgstr "" +msgstr "el resultado afectará a una variable" #. module: hr_payroll #: report:contribution.register.lines:0 @@ -161,7 +164,7 @@ msgstr "Total:" #. module: hr_payroll #: model:ir.actions.act_window,name:hr_payroll.act_children_salary_rules msgid "All Children Rules" -msgstr "" +msgstr "Todas las reglas hijas" #. module: hr_payroll #: view:hr.payslip:0 view:hr.salary.rule:0 @@ -171,12 +174,12 @@ msgstr "" #. module: hr_payroll #: constraint:hr.payslip:0 msgid "Payslip 'Date From' must be before 'Date To'." -msgstr "" +msgstr "'Fecha Desde' debe ser anterior a 'Fecha Hasta'" #. module: hr_payroll #: view:hr.payslip:0 view:hr.salary.rule.category:0 msgid "Notes" -msgstr "" +msgstr "Notas" #. module: hr_payroll #: view:hr.payslip:0 @@ -203,23 +206,23 @@ msgstr "Otra Información" #. module: hr_payroll #: help:hr.payslip.line,amount_select:0 help:hr.salary.rule,amount_select:0 msgid "The computation method for the rule amount." -msgstr "" +msgstr "El método de calculo para la regla" #. module: hr_payroll #: view:payslip.lines.contribution.register:0 msgid "Contribution Register's Payslip Lines" -msgstr "" +msgstr "Registro de contribuciones para las lineas del rol" #. module: hr_payroll #: code:addons/hr_payroll/wizard/hr_payroll_payslips_by_employees.py:52 #, python-format msgid "Warning !" -msgstr "" +msgstr "¡Advertencia!" #. module: hr_payroll #: report:paylip.details:0 msgid "Details by Salary Rule Category:" -msgstr "" +msgstr "Detalle regla salarial" #. module: hr_payroll #: report:paylip.details:0 report:payslip:0 @@ -230,24 +233,24 @@ msgstr "" #: field:hr.payroll.structure,code:0 field:hr.payslip,number:0 #: report:paylip.details:0 report:payslip:0 msgid "Reference" -msgstr "" +msgstr "Referencia" #. module: hr_payroll #: view:hr.payslip:0 msgid "Draft Slip" -msgstr "" +msgstr "Rol Borrador" #. module: hr_payroll #: code:addons/hr_payroll/hr_payroll.py:422 #, python-format msgid "Normal Working Days paid at 100%" -msgstr "" +msgstr "Dias trabajo normales pagados con el 100%" #. module: hr_payroll #: field:hr.payslip.line,condition_range_max:0 #: field:hr.salary.rule,condition_range_max:0 msgid "Maximum Range" -msgstr "" +msgstr "Porcentaje Máximo" #. module: hr_payroll #: report:paylip.details:0 report:payslip:0 @@ -257,12 +260,12 @@ msgstr "Nº identificación" #. module: hr_payroll #: field:hr.payslip,struct_id:0 msgid "Structure" -msgstr "" +msgstr "Estructura" #. module: hr_payroll #: help:hr.employee,total_wage:0 msgid "Sum of all current contract's wage of employee." -msgstr "" +msgstr "Suma de el sueldo de todos los contratos actuales del empleado" #. module: hr_payroll #: view:hr.payslip:0 @@ -275,21 +278,23 @@ msgid "" "The code of salary rules can be used as reference in computation of other " "rules. In that case, it is case sensitive." msgstr "" +"El código de la regla de salario puede ser usada como referencia en el " +"calculo de otras reglas, En este caso es case sensitive" #. module: hr_payroll #: selection:hr.contract,schedule_pay:0 msgid "Weekly" -msgstr "" +msgstr "Semanalmente" #. module: hr_payroll #: field:hr.payslip.line,rate:0 msgid "Rate (%)" -msgstr "" +msgstr "Tasa (%)" #. module: hr_payroll #: view:hr.payslip:0 msgid "Confirm" -msgstr "" +msgstr "Confirmar" #. module: hr_payroll #: model:ir.actions.report.xml,name:hr_payroll.payslip_report @@ -300,7 +305,7 @@ msgstr "Rol de Pagos de Empleado" #: help:hr.payslip.line,condition_range_max:0 #: help:hr.salary.rule,condition_range_max:0 msgid "The maximum amount, applied for this rule." -msgstr "" +msgstr "Monto máximo, aplicado a esta regla" #. module: hr_payroll #: help:hr.payslip.line,condition_python:0 @@ -309,16 +314,18 @@ msgid "" "Applied this rule for calculation if condition is true. You can specify " "condition like basic > 1000." msgstr "" +"Aplica al calculo de esta regla si la condición es verdadera. Puede " +"especificar condiciones como basico>1000." #. module: hr_payroll #: view:hr.payslip.employees:0 msgid "Payslips by Employees" -msgstr "" +msgstr "Roles por empleado" #. module: hr_payroll #: selection:hr.contract,schedule_pay:0 msgid "Quarterly" -msgstr "" +msgstr "Trimestralmente" #. module: hr_payroll #: field:hr.payslip,state:0 field:hr.payslip.run,state:0 @@ -332,11 +339,14 @@ msgid "" "for Meal Voucher having fixed amount of 1€ per worked day can have its " "quantity defined in expression like worked_days.WORK100.number_of_days." msgstr "" +"Es usado en el calculo por porcentaje y monto fijo. Por ejemplo, una regla " +"para \"Alimentación\" puede ser un monto fijo de 1 USD por día trabajado, en " +"este caso la definición sería así: worked_days.WORK100.number_of_days" #. module: hr_payroll #: view:hr.salary.rule:0 msgid "Search Salary Rule" -msgstr "" +msgstr "Buscar regla salarial" #. module: hr_payroll #: field:hr.payslip,employee_id:0 field:hr.payslip.line,employee_id:0 @@ -347,12 +357,12 @@ msgstr "Empleado(a)" #. module: hr_payroll #: selection:hr.contract,schedule_pay:0 msgid "Semi-annually" -msgstr "" +msgstr "Semi-anualmente" #. module: hr_payroll #: view:hr.salary.rule:0 msgid "Children definition" -msgstr "" +msgstr "Definición hija" #. module: hr_payroll #: report:paylip.details:0 report:payslip:0 @@ -395,16 +405,20 @@ msgid "" "* If the payslip is confirmed then state is set to 'Done'. \n" "* When user cancel payslip the state is 'Rejected'." msgstr "" +"* Cuando el rol es creado el estado es 'borrador'.\n" +"* Si el rol aun no esta verificado, es estado es 'esperando'.\n" +"* Si el rol es confirmado el estado pasa a 'realizado'.\n" +"* Cunado el usuario cancela el rol el estado es 'rechazado'." #. module: hr_payroll #: field:hr.payslip.worked_days,number_of_days:0 msgid "Number of Days" -msgstr "" +msgstr "Número de Días" #. module: hr_payroll #: selection:hr.payslip,state:0 msgid "Rejected" -msgstr "" +msgstr "Rechazado" #. module: hr_payroll #: view:hr.payroll.structure:0 field:hr.payroll.structure,rule_ids:0 @@ -412,29 +426,29 @@ msgstr "" #: model:ir.actions.act_window,name:hr_payroll.action_salary_rule_form #: model:ir.ui.menu,name:hr_payroll.menu_action_hr_salary_rule_form msgid "Salary Rules" -msgstr "" +msgstr "Reglas salariales" #. module: hr_payroll #: code:addons/hr_payroll/hr_payroll.py:337 #, python-format msgid "Refund: " -msgstr "" +msgstr "Reembolso " #. module: hr_payroll #: model:ir.model,name:hr_payroll.model_payslip_lines_contribution_register msgid "PaySlip Lines by Contribution Registers" -msgstr "" +msgstr "Lineas de rol por registros de contribución" #. module: hr_payroll #: view:hr.payslip:0 selection:hr.payslip,state:0 view:hr.payslip.run:0 msgid "Done" -msgstr "" +msgstr "Realizado" #. module: hr_payroll #: field:hr.payslip.line,appears_on_payslip:0 #: field:hr.salary.rule,appears_on_payslip:0 msgid "Appears on Payslip" -msgstr "" +msgstr "Aparece en el rol" #. module: hr_payroll #: field:hr.payslip.line,amount_fix:0 @@ -449,47 +463,49 @@ msgid "" "If the active field is set to false, it will allow you to hide the salary " "rule without removing it." msgstr "" +"Si el campo activo esta en falso, este le permitirá esconder la regla " +"salarial sin removerla." #. module: hr_payroll #: view:hr.payslip:0 msgid "Worked Days & Inputs" -msgstr "" +msgstr "Dias trabajados & Ingresos" #. module: hr_payroll #: field:hr.payslip,details_by_salary_rule_category:0 msgid "Details by Salary Rule Category" -msgstr "" +msgstr "Detalle de categoría de regla salarial" #. module: hr_payroll #: model:ir.actions.act_window,name:hr_payroll.action_payslip_lines_contribution_register msgid "PaySlip Lines" -msgstr "" +msgstr "Lineas del rol" #. module: hr_payroll #: help:hr.payslip.line,register_id:0 help:hr.salary.rule,register_id:0 msgid "Eventual third party involved in the salary payment of the employees." -msgstr "" +msgstr "Terceros involucrados en el pago de los salarios a empleados." #. module: hr_payroll #: field:hr.payslip.worked_days,number_of_hours:0 msgid "Number of Hours" -msgstr "" +msgstr "Número de horas" #. module: hr_payroll #: view:hr.payslip:0 msgid "PaySlip Batch" -msgstr "" +msgstr "Lote de roles" #. module: hr_payroll #: field:hr.payslip.line,condition_range_min:0 #: field:hr.salary.rule,condition_range_min:0 msgid "Minimum Range" -msgstr "" +msgstr "Rango mínimo" #. module: hr_payroll #: field:hr.payslip.line,child_ids:0 field:hr.salary.rule,child_ids:0 msgid "Child Salary Rule" -msgstr "" +msgstr "Regla de salario hija" #. module: hr_payroll #: report:contribution.register.lines:0 field:hr.payslip,date_to:0 @@ -502,18 +518,18 @@ msgstr "" #: selection:hr.payslip.line,condition_select:0 #: selection:hr.salary.rule,condition_select:0 msgid "Range" -msgstr "" +msgstr "Rango" #. module: hr_payroll #: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payroll_structure_tree #: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_structure_tree msgid "Salary Structures Hierarchy" -msgstr "" +msgstr "Estructura salarial jerarquica" #. module: hr_payroll #: view:hr.payslip:0 msgid "Payslip" -msgstr "Nómina" +msgstr "Rol" #. module: hr_payroll #: constraint:hr.contract:0 @@ -525,36 +541,36 @@ msgstr "" #. module: hr_payroll #: view:hr.contract:0 msgid "Payslip Info" -msgstr "" +msgstr "Información de rol" #. module: hr_payroll #: model:ir.actions.act_window,name:hr_payroll.act_payslip_lines msgid "Payslip Computation Details" -msgstr "" +msgstr "Detalle del rol" #. module: hr_payroll #: code:addons/hr_payroll/hr_payroll.py:872 #, python-format msgid "Wrong python code defined for salary rule %s (%s) " -msgstr "" +msgstr "Código de python erroneo definido para la regla salarial %s (%s) " #. module: hr_payroll #: model:ir.model,name:hr_payroll.model_hr_payslip_input msgid "Payslip Input" -msgstr "" +msgstr "Ingresos Rol" #. module: hr_payroll #: view:hr.salary.rule.category:0 #: model:ir.actions.act_window,name:hr_payroll.action_hr_salary_rule_category #: model:ir.ui.menu,name:hr_payroll.menu_hr_salary_rule_category msgid "Salary Rule Categories" -msgstr "" +msgstr "Categorías de reglas de salario" #. module: hr_payroll #: help:hr.payslip.input,contract_id:0 #: help:hr.payslip.worked_days,contract_id:0 msgid "The contract for which applied this input" -msgstr "" +msgstr "El contrato al cual aplica este ingreso" #. module: hr_payroll #: view:hr.salary.rule:0 @@ -568,6 +584,9 @@ msgid "" "basic salary for per product can defined in expression like result = " "inputs.SALEURO.amount * contract.wage*0.01." msgstr "" +"Usado en el cálculo. Por ejemplo. Una regla de ventas con el 1% de comisión " +"en el salario básico por producto puede ser definida así\r\n" +"result=inputs.SALEURO.amount * contract.wage * 0.01." #. module: hr_payroll #: view:hr.payslip.line:0 field:hr.payslip.line,amount_select:0 @@ -587,17 +606,18 @@ msgid "" "If its checked, indicates that all payslips generated from here are refund " "payslips." msgstr "" +"Si check, indica que todos los roles generados son roles reembolsados" #. module: hr_payroll #: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payroll_structure_list_form #: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_structure_view msgid "Salary Structures" -msgstr "" +msgstr "Estructura salarial" #. module: hr_payroll #: view:hr.payslip.run:0 msgid "Draft Payslip Batches" -msgstr "" +msgstr "Roles Borrador" #. module: hr_payroll #: view:hr.payslip:0 selection:hr.payslip,state:0 view:hr.payslip.run:0 @@ -610,22 +630,22 @@ msgstr "Borrador" #: field:hr.payslip.run,date_start:0 report:paylip.details:0 report:payslip:0 #: field:payslip.lines.contribution.register,date_from:0 msgid "Date From" -msgstr "" +msgstr "Fecha desde" #. module: hr_payroll #: view:hr.payslip.run:0 msgid "Done Payslip Batches" -msgstr "" +msgstr "Roles Realizados" #. module: hr_payroll #: report:paylip.details:0 msgid "Payslip Lines by Contribution Register:" -msgstr "" +msgstr "Lineas de rol por regsitro de contribuciones" #. module: hr_payroll #: view:hr.salary.rule:0 msgid "Conditions" -msgstr "" +msgstr "Condiciones" #. module: hr_payroll #: field:hr.payslip.line,amount_percentage:0 @@ -648,7 +668,7 @@ msgstr "Función del empleado" #. module: hr_payroll #: field:hr.payslip,credit_note:0 field:hr.payslip.run,credit_note:0 msgid "Credit Note" -msgstr "" +msgstr "Nota de crédito" #. module: hr_payroll #: view:hr.payslip:0 @@ -663,29 +683,29 @@ msgstr "Activo" #. module: hr_payroll #: view:hr.salary.rule:0 msgid "Child Rules" -msgstr "" +msgstr "Reglas hijas" #. module: hr_payroll #: constraint:hr.employee:0 msgid "Error ! You cannot create recursive Hierarchy of Employees." -msgstr "" +msgstr "¡Error! No puede crear una jerarquía recursiva de empleados." #. module: hr_payroll #: model:ir.actions.report.xml,name:hr_payroll.payslip_details_report msgid "PaySlip Details" -msgstr "" +msgstr "Detalle de rol" #. module: hr_payroll #: help:hr.payslip.line,condition_range_min:0 #: help:hr.salary.rule,condition_range_min:0 msgid "The minimum amount, applied for this rule." -msgstr "" +msgstr "El monto mínimo, que aplica esta regla" #. module: hr_payroll #: selection:hr.payslip.line,condition_select:0 #: selection:hr.salary.rule,condition_select:0 msgid "Python Expression" -msgstr "" +msgstr "Expresión de python" #. module: hr_payroll #: report:paylip.details:0 report:payslip:0 @@ -696,23 +716,23 @@ msgstr "" #: code:addons/hr_payroll/wizard/hr_payroll_payslips_by_employees.py:52 #, python-format msgid "You must select employee(s) to generate payslip(s)" -msgstr "" +msgstr "Debe seleccionar empleados para generar el rol" #. module: hr_payroll #: code:addons/hr_payroll/hr_payroll.py:861 #, python-format msgid "Wrong quantity defined for salary rule %s (%s)" -msgstr "" +msgstr "Cantidad errónea definida para esta regla de salario %s (%s)" #. module: hr_payroll #: view:hr.payslip:0 msgid "Companies" -msgstr "" +msgstr "Compañías" #. module: hr_payroll #: report:paylip.details:0 report:payslip:0 msgid "Authorized Signature" -msgstr "" +msgstr "Firma autorizada" #. module: hr_payroll #: field:hr.payslip,contract_id:0 field:hr.payslip.input,contract_id:0 @@ -720,17 +740,17 @@ msgstr "" #: field:hr.payslip.worked_days,contract_id:0 #: model:ir.model,name:hr_payroll.model_hr_contract msgid "Contract" -msgstr "" +msgstr "Contrato" #. module: hr_payroll #: report:paylip.details:0 report:payslip:0 msgid "Credit" -msgstr "" +msgstr "Crédito" #. module: hr_payroll #: field:hr.contract,schedule_pay:0 msgid "Scheduled Pay" -msgstr "" +msgstr "Pago planificado" #. module: hr_payroll #: code:addons/hr_payroll/hr_payroll.py:861 @@ -740,51 +760,52 @@ msgstr "" #: code:addons/hr_payroll/hr_payroll.py:895 #, python-format msgid "Error" -msgstr "" +msgstr "¡Error!" #. module: hr_payroll #: field:hr.payslip.line,condition_python:0 #: field:hr.salary.rule,condition_python:0 msgid "Python Condition" -msgstr "" +msgstr "Condición de python" #. module: hr_payroll #: view:hr.contribution.register:0 msgid "Contribution" -msgstr "" +msgstr "Contribución" #. module: hr_payroll #: code:addons/hr_payroll/hr_payroll.py:347 #, python-format msgid "Refund Payslip" -msgstr "" +msgstr "Rol reembolsado" #. module: hr_payroll #: field:hr.rule.input,input_id:0 #: model:ir.model,name:hr_payroll.model_hr_rule_input msgid "Salary Rule Input" -msgstr "" +msgstr "Ingresar regla salario" #. module: hr_payroll #: code:addons/hr_payroll/hr_payroll.py:895 #, python-format msgid "Wrong python condition defined for salary rule %s (%s)" msgstr "" +"Condición de python errónea definida para la regla de salario %s (%s)" #. module: hr_payroll #: field:hr.payslip.line,quantity:0 field:hr.salary.rule,quantity:0 msgid "Quantity" -msgstr "" +msgstr "Cantidad" #. module: hr_payroll #: view:hr.payslip:0 msgid "Refund" -msgstr "" +msgstr "Reembolso" #. module: hr_payroll #: view:hr.salary.rule:0 msgid "Company contribution" -msgstr "" +msgstr "Contribución compañía" #. module: hr_payroll #: report:contribution.register.lines:0 field:hr.payslip.input,code:0 @@ -793,7 +814,7 @@ msgstr "" #: field:hr.salary.rule.category,code:0 report:paylip.details:0 #: report:payslip:0 msgid "Code" -msgstr "" +msgstr "Código" #. module: hr_payroll #: field:hr.payslip.line,amount_python_compute:0 @@ -801,18 +822,18 @@ msgstr "" #: field:hr.salary.rule,amount_python_compute:0 #: selection:hr.salary.rule,amount_select:0 msgid "Python Code" -msgstr "" +msgstr "Código Python" #. module: hr_payroll #: field:hr.payslip.input,sequence:0 field:hr.payslip.line,sequence:0 #: field:hr.payslip.worked_days,sequence:0 field:hr.salary.rule,sequence:0 msgid "Sequence" -msgstr "" +msgstr "Secuencia" #. module: hr_payroll #: report:contribution.register.lines:0 report:paylip.details:0 msgid "Register Name" -msgstr "" +msgstr "Registrar Nombre" #. module: hr_payroll #: view:hr.salary.rule:0 @@ -823,35 +844,35 @@ msgstr "" #: code:addons/hr_payroll/hr_payroll.py:664 #, python-format msgid "Salary Slip of %s for %s" -msgstr "" +msgstr "Rol de pagos de %s por (%s)" #. module: hr_payroll #: model:ir.model,name:hr_payroll.model_hr_payslip_employees msgid "Generate payslips for all selected employees" -msgstr "" +msgstr "Generar nómina para los empleados seleccionados" #. module: hr_payroll #: field:hr.contract,struct_id:0 view:hr.payroll.structure:0 view:hr.payslip:0 #: view:hr.payslip.line:0 #: model:ir.model,name:hr_payroll.model_hr_payroll_structure msgid "Salary Structure" -msgstr "" +msgstr "Estructura salarial" #. module: hr_payroll #: field:hr.contribution.register,register_line_ids:0 msgid "Register Line" -msgstr "" +msgstr "Línea registro" #. module: hr_payroll #: view:hr.payslip:0 view:hr.payslip.employees:0 #: view:payslip.lines.contribution.register:0 msgid "Cancel" -msgstr "" +msgstr "Cancelar" #. module: hr_payroll #: view:hr.payslip.run:0 selection:hr.payslip.run,state:0 msgid "Close" -msgstr "" +msgstr "Cerrar" #. module: hr_payroll #: help:hr.payslip,struct_id:0 @@ -861,27 +882,31 @@ msgid "" "mandatory anymore and thus the rules applied will be all the rules set on " "the structure of all contracts of the employee valid for the chosen period" msgstr "" +"Define las reglas a ser aplicadas en el rol, de acuerdo con el contrato " +"seleccionado. Si esta vacio en el contrato, el campo no será madatorio y " +"aplicará las reglas definidas en todos los contratos validos para el periodo " +"seleccionado." #. module: hr_payroll #: field:hr.payroll.structure,children_ids:0 #: field:hr.salary.rule.category,children_ids:0 msgid "Children" -msgstr "" +msgstr "Hijas" #. module: hr_payroll #: help:hr.payslip,credit_note:0 msgid "Indicates this payslip has a refund of another" -msgstr "" +msgstr "Indica que este rol es un reembolso de otro" #. module: hr_payroll #: selection:hr.contract,schedule_pay:0 msgid "Bi-monthly" -msgstr "" +msgstr "Bimensual" #. module: hr_payroll #: report:paylip.details:0 msgid "Pay Slip Details" -msgstr "" +msgstr "Detalle del rol" #. module: hr_payroll #: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payslip_form @@ -894,12 +919,12 @@ msgstr "" #: field:hr.salary.rule,register_id:0 #: model:ir.model,name:hr_payroll.model_hr_contribution_register msgid "Contribution Register" -msgstr "" +msgstr "Registro de Contribución" #. module: hr_payroll #: view:payslip.lines.contribution.register:0 msgid "Print" -msgstr "" +msgstr "Imprimir" #. module: hr_payroll #: model:ir.actions.act_window,help:hr_payroll.action_contribution_register_form @@ -908,34 +933,37 @@ msgid "" "the employees. It can be the social security, the estate or anyone that " "collect or inject money on payslips." msgstr "" +"Un registro de contribución es cuando involucra una tercera persona en el " +"pago del rol. Este puede ser el seguro social, el estado o cualquiera que " +"aporte con dinero al rol." #. module: hr_payroll #: code:addons/hr_payroll/hr_payroll.py:889 #, python-format msgid "Wrong range condition defined for salary rule %s (%s)" -msgstr "" +msgstr "Condición de rango errónea definida para esta regla salarial %s (%s)" #. module: hr_payroll #: view:hr.payslip.line:0 msgid "Calculations" -msgstr "" +msgstr "Cálculos" #. module: hr_payroll #: view:hr.payslip:0 msgid "Worked Days" -msgstr "" +msgstr "Días Laborados" #. module: hr_payroll #: view:hr.payslip:0 msgid "Search Payslips" -msgstr "" +msgstr "Buscar roles" #. module: hr_payroll #: view:hr.payslip.run:0 #: model:ir.actions.act_window,name:hr_payroll.action_hr_payslip_run_tree #: model:ir.ui.menu,name:hr_payroll.menu_hr_payslip_run msgid "Payslips Batches" -msgstr "" +msgstr "Roles" #. module: hr_payroll #: view:hr.contribution.register:0 field:hr.contribution.register,note:0 @@ -946,31 +974,31 @@ msgstr "" #: view:hr.salary.rule:0 field:hr.salary.rule,note:0 #: field:hr.salary.rule.category,note:0 msgid "Description" -msgstr "" +msgstr "Descripción" #. module: hr_payroll #: report:paylip.details:0 report:payslip:0 msgid ")" -msgstr "" +msgstr ")" #. module: hr_payroll #: view:hr.contribution.register:0 #: model:ir.actions.act_window,name:hr_payroll.action_contribution_register_form #: model:ir.ui.menu,name:hr_payroll.menu_action_hr_contribution_register_form msgid "Contribution Registers" -msgstr "" +msgstr "Registros de contribución" #. module: hr_payroll #: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_reporting #: model:ir.ui.menu,name:hr_payroll.menu_hr_root_payroll #: model:ir.ui.menu,name:hr_payroll.payroll_configure msgid "Payroll" -msgstr "" +msgstr "Rol de pagos" #. module: hr_payroll #: model:ir.actions.report.xml,name:hr_payroll.contribution_register msgid "PaySlip Lines By Conribution Register" -msgstr "" +msgstr "Lineas de roles por registro de contribuciones" #. module: hr_payroll #: selection:hr.payslip,state:0 @@ -980,24 +1008,25 @@ msgstr "" #. module: hr_payroll #: report:paylip.details:0 report:payslip:0 msgid "Address" -msgstr "" +msgstr "Dirección" #. module: hr_payroll #: code:addons/hr_payroll/hr_payroll.py:866 #, python-format msgid "Wrong percentage base or quantity defined for salary rule %s (%s)" msgstr "" +"Porcentaje o cantidad errónea definida para la regla de salario %s (%s)" #. module: hr_payroll #: field:hr.payslip,worked_days_line_ids:0 #: model:ir.model,name:hr_payroll.model_hr_payslip_worked_days msgid "Payslip Worked Days" -msgstr "" +msgstr "Dias trabajados rol" #. module: hr_payroll #: view:hr.salary.rule.category:0 msgid "Salary Categories" -msgstr "" +msgstr "Categorías salariales" #. module: hr_payroll #: report:contribution.register.lines:0 field:hr.contribution.register,name:0 @@ -1006,28 +1035,28 @@ msgstr "" #: field:hr.salary.rule.category,name:0 report:paylip.details:0 #: report:payslip:0 msgid "Name" -msgstr "" +msgstr "Nombre" #. module: hr_payroll #: view:hr.payroll.structure:0 msgid "Payroll Structures" -msgstr "" +msgstr "Estructura rol" #. module: hr_payroll #: view:hr.payslip:0 view:hr.payslip.employees:0 #: field:hr.payslip.employees,employee_ids:0 view:hr.payslip.line:0 msgid "Employees" -msgstr "" +msgstr "Empleados" #. module: hr_payroll #: report:paylip.details:0 report:payslip:0 msgid "Bank Account" -msgstr "" +msgstr "Cuenta de banco" #. module: hr_payroll #: help:hr.payslip.line,sequence:0 help:hr.salary.rule,sequence:0 msgid "Use to arrange calculation sequence" -msgstr "" +msgstr "Se utiliza para organizar la secuencia de cálculo" #. module: hr_payroll #: help:hr.payslip.line,condition_range:0 @@ -1037,85 +1066,88 @@ msgid "" "but you can also use categories code fields in lowercase as a variable names " "(hra, ma, lta, etc.) and the variable basic." msgstr "" +"Usado para calcular los %s valores del campo, generalmente en el básico, " +"pero puede usar códigos de categorías en minúsculas como variables (hra, ma, " +"ita) y la variable basic." #. module: hr_payroll #: selection:hr.contract,schedule_pay:0 msgid "Annually" -msgstr "" +msgstr "Anualmente" #. module: hr_payroll #: field:hr.payslip,input_line_ids:0 msgid "Payslip Inputs" -msgstr "" +msgstr "Ingresos rol" #. module: hr_payroll #: field:hr.payslip.line,salary_rule_id:0 msgid "Rule" -msgstr "" +msgstr "Regla" #. module: hr_payroll #: model:ir.actions.act_window,name:hr_payroll.action_hr_salary_rule_category_tree_view #: model:ir.ui.menu,name:hr_payroll.menu_hr_salary_rule_category_tree_view msgid "Salary Rule Categories Hierarchy" -msgstr "" +msgstr "Categorías de reglas de categorías jerárquica" #. module: hr_payroll #: report:contribution.register.lines:0 field:hr.payslip.line,total:0 #: report:paylip.details:0 report:payslip:0 msgid "Total" -msgstr "" +msgstr "Total" #. module: hr_payroll #: help:hr.payslip.line,appears_on_payslip:0 #: help:hr.salary.rule,appears_on_payslip:0 msgid "Used for the display of rule on payslip" -msgstr "" +msgstr "Usado para visualizar la regla en el rol" #. module: hr_payroll #: view:hr.payslip.line:0 msgid "Search Payslip Lines" -msgstr "" +msgstr "Buscar lineas roles" #. module: hr_payroll #: view:hr.payslip:0 msgid "Details By Salary Rule Category" -msgstr "" +msgstr "Detalle por categoría de regla de salario" #. module: hr_payroll #: help:hr.payslip.input,code:0 help:hr.payslip.worked_days,code:0 #: help:hr.rule.input,code:0 msgid "The code that can be used in the salary rules" -msgstr "" +msgstr "El código que puede ser usado en las reglas de salario" #. module: hr_payroll #: view:hr.payslip.run:0 #: model:ir.actions.act_window,name:hr_payroll.action_hr_payslip_by_employees msgid "Generate Payslips" -msgstr "" +msgstr "Roles generados" #. module: hr_payroll #: selection:hr.contract,schedule_pay:0 msgid "Bi-weekly" -msgstr "" +msgstr "Bisemanal" #. module: hr_payroll #: field:hr.employee,total_wage:0 msgid "Total Basic Salary" -msgstr "" +msgstr "Total Salario Basico" #. module: hr_payroll #: selection:hr.payslip.line,condition_select:0 #: selection:hr.salary.rule,condition_select:0 msgid "Always True" -msgstr "" +msgstr "Siempre activo" #. module: hr_payroll #: report:contribution.register.lines:0 msgid "PaySlip Name" -msgstr "" +msgstr "Nombre rol" #. module: hr_payroll #: field:hr.payslip.line,condition_range:0 #: field:hr.salary.rule,condition_range:0 msgid "Range Based on" -msgstr "" +msgstr "Rango basado en" diff --git a/addons/hr_payroll_account/i18n/es_EC.po b/addons/hr_payroll_account/i18n/es_EC.po index c5da625c327..0a9f9e78f61 100644 --- a/addons/hr_payroll_account/i18n/es_EC.po +++ b/addons/hr_payroll_account/i18n/es_EC.po @@ -8,80 +8,81 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-24 04:13+0000\n" +"Last-Translator: Cristian Salamea (Gnuthink) \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:40+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: hr_payroll_account #: field:hr.payslip,move_id:0 msgid "Accounting Entry" -msgstr "" +msgstr "Asiento Contable" #. module: hr_payroll_account #: field:hr.salary.rule,account_tax_id:0 msgid "Tax Code" -msgstr "" +msgstr "Código impuesto" #. module: hr_payroll_account #: field:hr.payslip,journal_id:0 #: field:hr.payslip.run,journal_id:0 msgid "Expense Journal" -msgstr "" +msgstr "Diario de gastos" #. module: hr_payroll_account #: code:addons/hr_payroll_account/hr_payroll_account.py:157 #: code:addons/hr_payroll_account/hr_payroll_account.py:173 #, python-format msgid "Adjustment Entry" -msgstr "" +msgstr "Asiento de Ajuste" #. module: hr_payroll_account #: field:hr.contract,analytic_account_id:0 #: field:hr.salary.rule,analytic_account_id:0 msgid "Analytic Account" -msgstr "" +msgstr "Cuenta Analítica" #. module: hr_payroll_account #: model:ir.model,name:hr_payroll_account.model_hr_salary_rule msgid "hr.salary.rule" -msgstr "" +msgstr "Regla Salarial" #. module: hr_payroll_account #: model:ir.model,name:hr_payroll_account.model_hr_payslip_run msgid "Payslip Batches" -msgstr "" +msgstr "Nómina por Lote" #. module: hr_payroll_account #: field:hr.contract,journal_id:0 msgid "Salary Journal" -msgstr "" +msgstr "Diario de Nómina" #. module: hr_payroll_account #: model:ir.model,name:hr_payroll_account.model_hr_payslip msgid "Pay Slip" -msgstr "" +msgstr "Nómina" #. module: hr_payroll_account #: constraint:hr.payslip:0 msgid "Payslip 'Date From' must be before 'Date To'." -msgstr "" +msgstr "'Fecha Desde' debe ser anterior a 'Fecha Hasta'" #. module: hr_payroll_account #: help:hr.payslip,period_id:0 msgid "Keep empty to use the period of the validation(Payslip) date." msgstr "" +"Deje en blanco para usar el período de la fecha de validación de la nómina" #. module: hr_payroll_account #: code:addons/hr_payroll_account/hr_payroll_account.py:171 #, python-format msgid "" "The Expense Journal \"%s\" has not properly configured the Debit Account!" -msgstr "" +msgstr "El diario de Gasto \"%s\" no tiene configurado la cuenta de débito !" #. module: hr_payroll_account #: code:addons/hr_payroll_account/hr_payroll_account.py:155 @@ -89,52 +90,55 @@ msgstr "" msgid "" "The Expense Journal \"%s\" has not properly configured the Credit Account!" msgstr "" +"El diario de Gasto \"%s\" no tiene configurado la cuenta de crédito !" #. module: hr_payroll_account #: field:hr.salary.rule,account_debit:0 msgid "Debit Account" -msgstr "" +msgstr "Cuenta de Débito" #. module: hr_payroll_account #: code:addons/hr_payroll_account/hr_payroll_account.py:102 #, python-format msgid "Payslip of %s" -msgstr "" +msgstr "Nómina de %s" #. module: hr_payroll_account #: model:ir.model,name:hr_payroll_account.model_hr_contract msgid "Contract" -msgstr "" +msgstr "Contrato" #. module: hr_payroll_account #: constraint:hr.contract:0 msgid "Error! contract start-date must be lower then contract end-date." msgstr "" +"¡Error! La fecha de inicio de contrato debe ser anterior a la fecha de " +"finalización." #. module: hr_payroll_account #: field:hr.payslip,period_id:0 msgid "Force Period" -msgstr "" +msgstr "Forzar período" #. module: hr_payroll_account #: field:hr.salary.rule,account_credit:0 msgid "Credit Account" -msgstr "" +msgstr "Cuenta de Crédito" #. module: hr_payroll_account #: model:ir.model,name:hr_payroll_account.model_hr_payslip_employees msgid "Generate payslips for all selected employees" -msgstr "" +msgstr "Generar nómina para los empleados seleccionados" #. module: hr_payroll_account #: code:addons/hr_payroll_account/hr_payroll_account.py:155 #: code:addons/hr_payroll_account/hr_payroll_account.py:171 #, python-format msgid "Configuration Error!" -msgstr "" +msgstr "Error de Configuración !" #. module: hr_payroll_account #: view:hr.contract:0 #: view:hr.salary.rule:0 msgid "Accounting" -msgstr "" +msgstr "Administración Financiera" diff --git a/addons/idea/i18n/fi.po b/addons/idea/i18n/fi.po index bc9709a2fe9..58eb2ffffed 100644 --- a/addons/idea/i18n/fi.po +++ b/addons/idea/i18n/fi.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: Pekka Pylvänäinen \n" +"PO-Revision-Date: 2012-03-26 09:36+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:42+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" +"X-Generator: Launchpad (build 15011)\n" #. module: idea #: help:idea.category,visibility:0 @@ -25,7 +25,7 @@ msgstr "Jos idean todellinen keksijä näkyy muille" #. module: idea #: view:idea.idea:0 msgid "By States" -msgstr "" +msgstr "Tilojen mukaan" #. module: idea #: model:ir.actions.act_window,name:idea.action_idea_select @@ -72,7 +72,7 @@ msgstr "Maaliskuu" #. module: idea #: view:idea.idea:0 msgid "Accepted Ideas" -msgstr "" +msgstr "Hyväksytyt ideat" #. module: idea #: code:addons/idea/wizard/idea_post_vote.py:94 @@ -83,7 +83,7 @@ msgstr "Idean tulee olla 'avoin' tilassa ennenkuin siitä voidaan äänestää." #. module: idea #: view:report.vote:0 msgid "Open Date" -msgstr "" +msgstr "Avauspäivä" #. module: idea #: view:report.vote:0 @@ -238,7 +238,7 @@ msgstr "Tila" #: view:idea.idea:0 #: selection:idea.idea,state:0 msgid "New" -msgstr "" +msgstr "Uusi" #. module: idea #: selection:idea.idea,my_vote:0 @@ -272,12 +272,12 @@ msgstr "" #. module: idea #: view:idea.idea:0 msgid "New Ideas" -msgstr "" +msgstr "uudet ideat" #. module: idea #: view:report.vote:0 msgid "Idea Vote created last month" -msgstr "" +msgstr "Edellisen kuukauden ideaäänestykset" #. module: idea #: field:idea.category,visibility:0 @@ -288,7 +288,7 @@ msgstr "Avaa idea?" #. module: idea #: view:report.vote:0 msgid "Idea Vote created in current month" -msgstr "" +msgstr "Kuluvan kuukauden ideaäänestykset" #. module: idea #: selection:report.vote,month:0 @@ -405,7 +405,7 @@ msgstr "Idean äänet" #. module: idea #: view:idea.idea:0 msgid "By Idea Category" -msgstr "" +msgstr "Ideoiden kategorioiden mukaan" #. module: idea #: view:idea.idea:0 @@ -542,7 +542,7 @@ msgstr "Aseta arvoon 1 jos haluat vain yhden äänen käyttäjää kohti" #. module: idea #: view:idea.idea:0 msgid "By Creators" -msgstr "" +msgstr "Laatijoiden mukaan" #. module: idea #: view:idea.post.vote:0 @@ -563,7 +563,7 @@ msgstr "Avaa" #: view:idea.idea:0 #: view:report.vote:0 msgid "In Progress" -msgstr "" +msgstr "Käynnissä" #. module: idea #: view:report.vote:0 @@ -593,7 +593,7 @@ msgstr "Tulos" #. module: idea #: view:idea.idea:0 msgid "Votes Statistics" -msgstr "" +msgstr "Äänestystulokset" #. module: idea #: view:idea.vote:0 @@ -631,7 +631,7 @@ msgstr "Helmikuu" #. module: idea #: field:idea.category,complete_name:0 msgid "Name" -msgstr "" +msgstr "Nimi" #. module: idea #: field:idea.vote.stat,nbr:0 @@ -641,7 +641,7 @@ msgstr "Äänestysten lukumäärä" #. module: idea #: view:report.vote:0 msgid "Month-1" -msgstr "" +msgstr "Edellinen kuukausi" #. module: idea #: selection:report.vote,month:0 @@ -661,7 +661,7 @@ msgstr "Äänestyksen tila" #. module: idea #: view:report.vote:0 msgid "Idea Vote created in current year" -msgstr "" +msgstr "Ideaäänestykset luotu kuluvana vuonna" #. module: idea #: field:idea.idea,vote_avg:0 @@ -671,7 +671,7 @@ msgstr "Keskimääräinen tulos" #. module: idea #: constraint:idea.category:0 msgid "Error ! You cannot create recursive categories." -msgstr "" +msgstr "Virhe! Et voi luoda rekursiivisia kategoroita." #. module: idea #: field:idea.comment,idea_id:0 @@ -705,7 +705,7 @@ msgstr "Vuosi" #: code:addons/idea/idea.py:274 #, python-format msgid "You can not vote on a Draft/Accepted/Cancelled ideas." -msgstr "" +msgstr "Et voi äänestää luonnos/hyväksytty/peruutettu tilassa olevia ideoita" #. module: idea #: view:idea.select:0 diff --git a/addons/import_base/i18n/fi.po b/addons/import_base/i18n/fi.po new file mode 100644 index 00000000000..e2e8d0e6f77 --- /dev/null +++ b/addons/import_base/i18n/fi.po @@ -0,0 +1,104 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-03-26 06:59+0000\n" +"Last-Translator: Juha Kotamäki \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" +"X-Generator: Launchpad (build 15011)\n" + +#. module: import_base +#: code:addons/import_base/import_framework.py:434 +#, python-format +msgid "Import failed due to an unexpected error" +msgstr "Tuonti epäonnistui tuntemattoman virheen takia" + +#. module: import_base +#: code:addons/import_base/import_framework.py:461 +#, python-format +msgid "started at %s and finished at %s \n" +msgstr "aloitettu %s ja valmistui %s \n" + +#. module: import_base +#: code:addons/import_base/import_framework.py:448 +#, python-format +msgid "Import of your data finished at %s" +msgstr "Tietojen tuonti valmistui %s" + +#. module: import_base +#: code:addons/import_base/import_framework.py:463 +#, python-format +msgid "" +"but failed, in consequence no data were imported to keep database " +"consistency \n" +" error : \n" +msgstr "" +"mutta epäonnistui, tietojen yhtenäisyyden säilyttämiseksi tietoja ei tuotu \n" +" virhe: \n" + +#. module: import_base +#: code:addons/import_base/import_framework.py:477 +#, python-format +msgid "" +"The import of data \n" +" instance name : %s \n" +msgstr "" +"Tietojen tuonti \n" +" Instanssin nimi: %s \n" + +#. module: import_base +#: code:addons/import_base/import_framework.py:470 +#, python-format +msgid "%s has been successfully imported from %s %s, %s \n" +msgstr "%s on onnistuneesti tuotu %s %s, %s :stä \n" + +#. module: import_base +#: code:addons/import_base/import_framework.py:447 +#, python-format +msgid "Data Import failed at %s due to an unexpected error" +msgstr "Tietojen tuonti epäonnistui %s:ssä tuntemattoman virheen takia" + +#. module: import_base +#: code:addons/import_base/import_framework.py:436 +#, python-format +msgid "Import finished, notification email sended" +msgstr "Tuonti valmis, muistutussähköposti on lähetety" + +#. module: import_base +#: code:addons/import_base/import_framework.py:190 +#, python-format +msgid "%s is not a valid model name" +msgstr "%s ei ole sallittu mallin nimi" + +#. module: import_base +#: model:ir.ui.menu,name:import_base.menu_import_crm +msgid "Import" +msgstr "Tuo" + +#. module: import_base +#: code:addons/import_base/import_framework.py:467 +#, python-format +msgid "with no warning" +msgstr "ei varoituksia" + +#. module: import_base +#: code:addons/import_base/import_framework.py:469 +#, python-format +msgid "with warning : %s" +msgstr "varoituksella : %s" + +#. module: import_base +#: code:addons/import_base/import_framework.py:191 +#, python-format +msgid " fields imported : " +msgstr " Tuodut kentät : " diff --git a/addons/import_sugarcrm/i18n/nl.po b/addons/import_sugarcrm/i18n/nl.po new file mode 100644 index 00000000000..5feaa14b34b --- /dev/null +++ b/addons/import_sugarcrm/i18n/nl.po @@ -0,0 +1,406 @@ +# Dutch translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-03-24 17:31+0000\n" +"Last-Translator: Erwin \n" +"Language-Team: Dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 +#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 +#, python-format +msgid "Error !!" +msgstr "Fout!" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "" +"Use the SugarSoap API URL (read tooltip) and a full access SugarCRM login." +msgstr "" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "(Coming Soon)" +msgstr "(Komt snel)" + +#. module: import_sugarcrm +#: field:import.sugarcrm,document:0 +msgid "Documents" +msgstr "Documenten" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Import your data from SugarCRM :" +msgstr "Import uw gegevens van SugerCRM:" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "" +"Choose data you want to import. Click 'Import' to get data manually or " +"'Schedule Reccurent Imports' to get recurrently and automatically data." +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,contact:0 +msgid "Contacts" +msgstr "Contacten" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "HR" +msgstr "HR" + +#. module: import_sugarcrm +#: help:import.sugarcrm,bug:0 +msgid "Check this box to import sugarCRM Bugs into OpenERP project issues" +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,instance_name:0 +msgid "Instance's Name" +msgstr "Instantienaam" + +#. module: import_sugarcrm +#: field:import.sugarcrm,project_task:0 +msgid "Project Tasks" +msgstr "Project taken" + +#. module: import_sugarcrm +#: field:import.sugarcrm,email_from:0 +msgid "Notify End Of Import To:" +msgstr "Meld het einde van de import aan:" + +#. module: import_sugarcrm +#: help:import.sugarcrm,user:0 +msgid "" +"Check this box to import sugarCRM Users into OpenERP users, warning if a " +"user with the same login exist in OpenERP, user information will be erase by " +"sugarCRM user information" +msgstr "" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/sugarsoap_services.py:23 +#, python-format +msgid "Please install SOAP for python - ZSI-2.0-rc3.tar.gz - python-zci" +msgstr "" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "_Schedule Recurrent Imports" +msgstr "" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "" +"Do not forget the email address to be notified of the success of the import." +msgstr "" + +#. module: import_sugarcrm +#: help:import.sugarcrm,call:0 +msgid "Check this box to import sugarCRM Calls into OpenERP calls" +msgstr "" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "" +"If you make recurrent or ponctual import, data already in OpenERP will be " +"updated by SugarCRM data." +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,employee:0 +msgid "Employee" +msgstr "Werknemer" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Document" +msgstr "Document" + +#. module: import_sugarcrm +#: help:import.sugarcrm,document:0 +msgid "Check this box to import sugarCRM Documents into OpenERP documents" +msgstr "" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Import Data From SugarCRM" +msgstr "Import gegevens van SugarCRM" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "CRM" +msgstr "Relatiebeheer" + +#. module: import_sugarcrm +#: view:import.message:0 +msgid "" +"Data are importing, the process is running in the background, an email will " +"be sent to the given email address if it was defined." +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,call:0 +msgid "Calls" +msgstr "Gesprekken" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Multi Instance Management" +msgstr "" + +#. module: import_sugarcrm +#: view:import.message:0 +msgid "_Ok" +msgstr "_Ok" + +#. module: import_sugarcrm +#: help:import.sugarcrm,opportunity:0 +msgid "" +"Check this box to import sugarCRM Leads and Opportunities into OpenERP Leads " +"and Opportunities" +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,email_history:0 +msgid "Email and Note" +msgstr "E-mail en make notitie" + +#. module: import_sugarcrm +#: help:import.sugarcrm,url:0 +msgid "" +"Webservice's url where to get the data. example : " +"'http://example.com/sugarcrm/soap.php', or copy the address of your sugarcrm " +"application " +"http://trial.sugarcrm.com/qbquyj4802/index.php?module=Home&action=index" +msgstr "" + +#. module: import_sugarcrm +#: model:ir.actions.act_window,name:import_sugarcrm.action_import_sugarcrm +#: model:ir.ui.menu,name:import_sugarcrm.menu_sugarcrm_import +msgid "Import SugarCRM" +msgstr "Importeer SugarCRM" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "_Import" +msgstr "_Importeren" + +#. module: import_sugarcrm +#: field:import.sugarcrm,user:0 +msgid "User" +msgstr "Gebruiker" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 +#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 +#, python-format +msgid "%s data required %s Module to be installed, Please install %s module" +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,claim:0 +msgid "Cases" +msgstr "Dossiers" + +#. module: import_sugarcrm +#: help:import.sugarcrm,meeting:0 +msgid "" +"Check this box to import sugarCRM Meetings and Tasks into OpenERP meetings" +msgstr "" + +#. module: import_sugarcrm +#: help:import.sugarcrm,email_history:0 +msgid "" +"Check this box to import sugarCRM Emails, Notes and Attachments into OpenERP " +"Messages and Attachments" +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,project:0 +msgid "Projects" +msgstr "Projecten" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 +#, python-format +msgid "" +"Please install SOAP for python - ZSI-2.0-rc3.tar.gz from " +"http://pypi.python.org/pypi/ZSI/" +msgstr "" + +#. module: import_sugarcrm +#: help:import.sugarcrm,project:0 +msgid "Check this box to import sugarCRM Projects into OpenERP projects" +msgstr "" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 +#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 +#, python-format +msgid "Select Module to Import." +msgstr "Select module om te importeren" + +#. module: import_sugarcrm +#: field:import.sugarcrm,meeting:0 +msgid "Meetings" +msgstr "Afspraken" + +#. module: import_sugarcrm +#: help:import.sugarcrm,employee:0 +msgid "Check this box to import sugarCRM Employees into OpenERP employees" +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,url:0 +msgid "SugarSoap Api url:" +msgstr "SugarSoap Api url:" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Address Book" +msgstr "Adresboek" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/sugar.py:60 +#, python-format +msgid "" +"Authentication error !\n" +"Bad Username or Password bad SugarSoap Api url !" +msgstr "" +"Authenticatie fout !\n" +"Foutieve gebruikersnaam of wachtwoord of SugarSoap Api url !" + +#. module: import_sugarcrm +#: field:import.sugarcrm,bug:0 +msgid "Bugs" +msgstr "Fouten/bugs" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Project" +msgstr "Project" + +#. module: import_sugarcrm +#: help:import.sugarcrm,project_task:0 +msgid "Check this box to import sugarCRM Project Tasks into OpenERP tasks" +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,opportunity:0 +msgid "Leads & Opp" +msgstr "Leads & Pros." + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/import_sugarcrm.py:79 +#, python-format +msgid "" +"Authentication error !\n" +"Bad Username or Password or bad SugarSoap Api url !" +msgstr "" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/import_sugarcrm.py:79 +#: code:addons/import_sugarcrm/sugar.py:60 +#, python-format +msgid "Error !" +msgstr "Fout !" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 +#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 +#, python-format +msgid "Warning !" +msgstr "Waarschuwing !" + +#. module: import_sugarcrm +#: help:import.sugarcrm,instance_name:0 +msgid "" +"Prefix of SugarCRM id to differentiate xml_id of SugarCRM models datas come " +"from different server." +msgstr "" + +#. module: import_sugarcrm +#: help:import.sugarcrm,contact:0 +msgid "Check this box to import sugarCRM Contacts into OpenERP addresses" +msgstr "" + +#. module: import_sugarcrm +#: field:import.sugarcrm,password:0 +msgid "Password" +msgstr "Wachtwoord" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Login Information" +msgstr "Aanmeldingsinformatie" + +#. module: import_sugarcrm +#: help:import.sugarcrm,claim:0 +msgid "Check this box to import sugarCRM Cases into OpenERP claims" +msgstr "" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Email Notification When Import is finished" +msgstr "E-mail melding als de import gereed is" + +#. module: import_sugarcrm +#: field:import.sugarcrm,username:0 +msgid "User Name" +msgstr "Gebruikersnaam" + +#. module: import_sugarcrm +#: view:import.message:0 +#: model:ir.model,name:import_sugarcrm.model_import_message +msgid "Import Message" +msgstr "Import bericht" + +#. module: import_sugarcrm +#: help:import.sugarcrm,account:0 +msgid "Check this box to import sugarCRM Accounts into OpenERP partners" +msgstr "" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Online documentation:" +msgstr "Online documentatie:" + +#. module: import_sugarcrm +#: field:import.sugarcrm,account:0 +msgid "Accounts" +msgstr "Accounts" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "_Cancel" +msgstr "_Annuleren" + +#. module: import_sugarcrm +#: code:addons/import_sugarcrm/sugarsoap_services.py:23 +#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 +#, python-format +msgid "ZSI Import Error!" +msgstr "ZSI Import fout!" + +#. module: import_sugarcrm +#: model:ir.model,name:import_sugarcrm.model_import_sugarcrm +msgid "Import SugarCRM DATA" +msgstr "Importeer SugarCRM DATA" + +#. module: import_sugarcrm +#: view:import.sugarcrm:0 +msgid "Email Address to Notify" +msgstr "E-mail adres voor melding" diff --git a/addons/mail/i18n/fi.po b/addons/mail/i18n/fi.po index 45ee09dd85b..a531d5052df 100644 --- a/addons/mail/i18n/fi.po +++ b/addons/mail/i18n/fi.po @@ -8,30 +8,30 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-09 00:36+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-26 07:13+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:46+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" +"X-Generator: Launchpad (build 15011)\n" #. module: mail #: field:mail.compose.message,subtype:0 field:mail.message,subtype:0 #: field:mail.message.common,subtype:0 msgid "Message type" -msgstr "" +msgstr "Viestin tyyppi" #. module: mail #: help:mail.compose.message,auto_delete:0 msgid "Permanently delete emails after sending" -msgstr "" +msgstr "Poista pysyvästi sähköpostit lähetyksen jälkeen" #. module: mail #: view:mail.message:0 msgid "Open Related Document" -msgstr "" +msgstr "Avaa liittyvä dokumentti" #. module: mail #: view:mail.message:0 @@ -46,7 +46,7 @@ msgstr "Viestin yksityiskohdat" #. module: mail #: view:mail.thread:0 msgid "Communication History" -msgstr "" +msgstr "Kommunikaatiohistoria" #. module: mail #: view:mail.message:0 @@ -57,35 +57,35 @@ msgstr "Ryhmittely.." #: model:ir.actions.act_window,name:mail.action_email_compose_message_wizard #: view:mail.compose.message:0 msgid "Compose Email" -msgstr "" +msgstr "Luo sähköposti" #. module: mail #: help:mail.compose.message,body_text:0 help:mail.message,body_text:0 #: help:mail.message.common,body_text:0 msgid "Plain-text version of the message" -msgstr "" +msgstr "viesti tekstimuodossa" #. module: mail #: view:mail.compose.message:0 msgid "Body" -msgstr "" +msgstr "Sisältö" #. module: mail #: help:mail.compose.message,email_to:0 help:mail.message,email_to:0 #: help:mail.message.common,email_to:0 msgid "Message recipients" -msgstr "" +msgstr "Viestin vastaanottajat" #. module: mail #: field:mail.compose.message,body_text:0 field:mail.message,body_text:0 #: field:mail.message.common,body_text:0 msgid "Text contents" -msgstr "" +msgstr "tekstisisältö" #. module: mail #: view:mail.message:0 selection:mail.message,state:0 msgid "Received" -msgstr "" +msgstr "Vastaanotettu" #. module: mail #: view:mail.message:0 @@ -95,35 +95,35 @@ msgstr "Keskustelu" #. module: mail #: field:mail.message,mail_server_id:0 msgid "Outgoing mail server" -msgstr "" +msgstr "Lähtevän postin palvelin" #. module: mail #: selection:mail.message,state:0 msgid "Cancelled" -msgstr "" +msgstr "Peruutettu" #. module: mail #: field:mail.compose.message,reply_to:0 field:mail.message,reply_to:0 #: field:mail.message.common,reply_to:0 msgid "Reply-To" -msgstr "" +msgstr "Vastausosoite" #. module: mail #: help:mail.compose.message,body_html:0 help:mail.message,body_html:0 #: help:mail.message.common,body_html:0 msgid "Rich-text/HTML version of the message" -msgstr "" +msgstr "HTML/Rich text versio viestistä" #. module: mail #: field:mail.compose.message,auto_delete:0 field:mail.message,auto_delete:0 msgid "Auto Delete" -msgstr "" +msgstr "Automaatinen poisto" #. module: mail #: help:mail.compose.message,email_bcc:0 help:mail.message,email_bcc:0 #: help:mail.message.common,email_bcc:0 msgid "Blind carbon copy message recipients" -msgstr "" +msgstr "BCC (sokea kopio) vastaanottajat" #. module: mail #: model:ir.model,name:mail.model_res_partner view:mail.message:0 @@ -140,7 +140,7 @@ msgstr "Aihe" #: code:addons/mail/wizard/mail_compose_message.py:152 #, python-format msgid "On %(date)s, " -msgstr "" +msgstr "%(date)s päivänä " #. module: mail #: field:mail.compose.message,email_from:0 field:mail.message,email_from:0 @@ -151,32 +151,32 @@ msgstr "Lähettäjä" #. module: mail #: view:mail.message:0 msgid "Email message" -msgstr "" +msgstr "Sähköpostiviesti" #. module: mail #: view:mail.compose.message:0 msgid "Send" -msgstr "" +msgstr "Lähetä" #. module: mail #: view:mail.message:0 msgid "Failed" -msgstr "" +msgstr "Epäonnistui" #. module: mail #: view:mail.message:0 field:mail.message,state:0 msgid "State" -msgstr "" +msgstr "Tila" #. module: mail #: view:mail.message:0 msgid "Reply" -msgstr "" +msgstr "Vastaa" #. module: mail #: view:mail.message:0 selection:mail.message,state:0 msgid "Sent" -msgstr "" +msgstr "Lähetetty" #. module: mail #: help:mail.compose.message,subtype:0 help:mail.message,subtype:0 @@ -185,39 +185,41 @@ msgid "" "Type of message, usually 'html' or 'plain', used to select plaintext or rich " "text contents accordingly" msgstr "" +"Viestin tyyppi, yleensä 'html' tai 'teksti', käytetään valittaessa " +"tekstimuotoinen tai rich text/html muotoinen viesti" #. module: mail #: view:mail.message:0 msgid "Recipients" -msgstr "" +msgstr "Vastaanottajat" #. module: mail #: model:ir.model,name:mail.model_mail_compose_message msgid "E-mail composition wizard" -msgstr "" +msgstr "Sähköpostin luonti velho" #. module: mail #: field:mail.compose.message,res_id:0 field:mail.message,res_id:0 #: field:mail.message.common,res_id:0 msgid "Related Document ID" -msgstr "" +msgstr "Liittyvä dokumentti ID" #. module: mail #: view:mail.message:0 msgid "Advanced" -msgstr "" +msgstr "Lisäasetukset" #. module: mail #: code:addons/mail/wizard/mail_compose_message.py:157 #, python-format msgid "Re:" -msgstr "" +msgstr "Viite:" #. module: mail #: field:mail.compose.message,model:0 field:mail.message,model:0 #: field:mail.message.common,model:0 msgid "Related Document model" -msgstr "" +msgstr "Liittyvä dokumenttimalli" #. module: mail #: view:mail.message:0 @@ -232,7 +234,7 @@ msgstr "Sähköpostin haku" #. module: mail #: help:mail.message,original:0 msgid "Original version of the message, as it was sent on the network" -msgstr "" +msgstr "Alkuperäinen viestin versio, kuten se lähetettiin verkkoon" #. module: mail #: view:mail.message:0 @@ -242,27 +244,27 @@ msgstr "Kumppanin Nimi" #. module: mail #: view:mail.message:0 msgid "Retry" -msgstr "" +msgstr "Yritä uudelleen" #. module: mail #: view:mail.message:0 selection:mail.message,state:0 msgid "Outgoing" -msgstr "" +msgstr "Lähtevä" #. module: mail #: view:mail.message:0 msgid "Send Now" -msgstr "" +msgstr "Lähetä nyt" #. module: mail #: field:mail.message,partner_id:0 msgid "Related partner" -msgstr "" +msgstr "Liittyvä kumppani" #. module: mail #: view:mail.message:0 msgid "User" -msgstr "" +msgstr "Käyttäjä" #. module: mail #: field:mail.compose.message,date:0 field:mail.message,date:0 @@ -273,24 +275,24 @@ msgstr "Päiväys" #. module: mail #: view:mail.message:0 msgid "Extended Filters..." -msgstr "" +msgstr "Laajennetut Suotimet..." #. module: mail #: code:addons/mail/wizard/mail_compose_message.py:153 #, python-format msgid "%(sender_name)s wrote:" -msgstr "" +msgstr "%(sender_name)s kirjoitti:" #. module: mail #: field:mail.compose.message,body_html:0 field:mail.message,body_html:0 #: field:mail.message.common,body_html:0 msgid "Rich-text contents" -msgstr "" +msgstr "Rich-text sisältö" #. module: mail #: field:mail.message,original:0 msgid "Original" -msgstr "" +msgstr "Alkuperäinen" #. module: mail #: code:addons/mail/mail_thread.py:247 view:res.partner:0 @@ -302,7 +304,7 @@ msgstr "Historia" #: field:mail.compose.message,message_id:0 field:mail.message,message_id:0 #: field:mail.message.common,message_id:0 msgid "Message-Id" -msgstr "" +msgstr "Viestin id" #. module: mail #: view:mail.compose.message:0 field:mail.compose.message,attachment_ids:0 @@ -326,6 +328,7 @@ msgstr "" #: help:mail.message,auto_delete:0 msgid "Permanently delete this email after sending it, to save space" msgstr "" +"Poista tämä viesti pysyvästi viestin lähettämisen jälkeen säästääksesi tilaa" #. module: mail #: field:mail.compose.message,references:0 field:mail.message,references:0 @@ -341,23 +344,23 @@ msgstr "Näytä teksti" #. module: mail #: view:mail.compose.message:0 view:mail.message:0 msgid "Cancel" -msgstr "" +msgstr "Peruuta" #. module: mail #: view:mail.message:0 msgid "Open" -msgstr "" +msgstr "Avaa" #. module: mail #: code:addons/mail/mail_thread.py:434 #, python-format msgid "[OpenERP-Forward-Failed] %s" -msgstr "" +msgstr "[OpenERP jälleenlähetys epäonnistui] %s" #. module: mail #: field:mail.message,user_id:0 msgid "Related user" -msgstr "" +msgstr "Liittyvä käyttäjä" #. module: mail #: help:mail.compose.message,headers:0 help:mail.message,headers:0 @@ -366,11 +369,13 @@ msgid "" "Full message headers, e.g. SMTP session headers (usually available on " "inbound messages only)" msgstr "" +"Täydet viestiotsikot, esim. SMTP tunnisteet (yleensä saatavilla vain " +"saapuville viesteille)" #. module: mail #: view:mail.message:0 msgid "Creation Month" -msgstr "" +msgstr "Luontikuukausi" #. module: mail #: field:mail.compose.message,email_to:0 field:mail.message,email_to:0 @@ -387,7 +392,7 @@ msgstr "Yksityiskohdat" #: model:ir.actions.act_window,name:mail.action_view_mailgate_thread #: view:mail.thread:0 msgid "Email Threads" -msgstr "" +msgstr "Sähköpostikeskustelut" #. module: mail #: help:mail.compose.message,email_from:0 help:mail.message,email_from:0 @@ -396,28 +401,30 @@ msgid "" "Message sender, taken from user preferences. If empty, this is not a mail " "but a message." msgstr "" +"Viestin lähettäjä, haettu käyttäjän asetuksista. Jos tyhjä, tämä ei ole " +"sähköposti vaan viesti" #. module: mail #: view:mail.message:0 msgid "Body (Plain)" -msgstr "" +msgstr "Runko (perusmuoto)" #. module: mail #: code:addons/mail/wizard/mail_compose_message.py:153 #, python-format msgid "You" -msgstr "" +msgstr "Sinä" #. module: mail #: help:mail.compose.message,message_id:0 help:mail.message,message_id:0 #: help:mail.message.common,message_id:0 msgid "Message unique identifier" -msgstr "" +msgstr "Viestin uniikki tunniste" #. module: mail #: view:mail.message:0 msgid "Body (Rich)" -msgstr "" +msgstr "Runko (Rich text)" #. module: mail #: code:addons/mail/mail_message.py:155 @@ -427,6 +434,9 @@ msgid "" " Subject: %s \n" "\t" msgstr "" +"%s kirjoitti %s: \n" +" Aihe : %s \n" +"\t" #. module: mail #: model:ir.actions.act_window,name:mail.act_res_partner_emails @@ -445,7 +455,7 @@ msgstr "Viestit" #: field:mail.compose.message,headers:0 field:mail.message,headers:0 #: field:mail.message.common,headers:0 msgid "Message headers" -msgstr "" +msgstr "Viestin tunnistetiedot" #. module: mail #: field:mail.compose.message,email_bcc:0 field:mail.message,email_bcc:0 @@ -462,47 +472,47 @@ msgstr "" #: help:mail.compose.message,references:0 help:mail.message,references:0 #: help:mail.message.common,references:0 msgid "Message references, such as identifiers of previous messages" -msgstr "" +msgstr "Viestin viitteet, kuten tunnisteet aikaisemmista viesteistä" #. module: mail #: constraint:res.partner:0 msgid "Error ! You cannot create recursive associated members." -msgstr "" +msgstr "Virhe! Rekursiivisen kumppanin luonti ei ole sallittu." #. module: mail #: help:mail.compose.message,email_cc:0 help:mail.message,email_cc:0 #: help:mail.message.common,email_cc:0 msgid "Carbon copy message recipients" -msgstr "" +msgstr "Viestin kopion vastaanottajat" #. module: mail #: selection:mail.message,state:0 msgid "Delivery Failed" -msgstr "" +msgstr "Lähetys epäonnistui" #. module: mail #: model:ir.model,name:mail.model_mail_message msgid "Email Message" -msgstr "" +msgstr "Sähköpostiviesti" #. module: mail #: model:ir.model,name:mail.model_mail_thread view:mail.thread:0 msgid "Email Thread" -msgstr "" +msgstr "Sähköpostikeskustelu" #. module: mail #: field:mail.compose.message,filter_id:0 msgid "Filters" -msgstr "" +msgstr "Suotimet" #. module: mail #: code:addons/mail/mail_thread.py:220 #, python-format msgid "Mail attachment" -msgstr "" +msgstr "Viestin liitetiedosto" #. module: mail #: help:mail.compose.message,reply_to:0 help:mail.message,reply_to:0 #: help:mail.message.common,reply_to:0 msgid "Preferred response address for the message" -msgstr "" +msgstr "Ehdotettu vastausosoite viestille" diff --git a/addons/mrp/i18n/fi.po b/addons/mrp/i18n/fi.po index ff0637fce4b..89bb23b8757 100644 --- a/addons/mrp/i18n/fi.po +++ b/addons/mrp/i18n/fi.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:49+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: Fabien (Open ERP) \n" +"PO-Revision-Date: 2012-03-26 07:26+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:48+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" +"X-Generator: Launchpad (build 15011)\n" #. module: mrp #: view:mrp.routing.workcenter:0 @@ -49,7 +49,7 @@ msgstr "Työpisteiden käyttöaste" #. module: mrp #: model:product.template,name:mrp.product_sugar_product_template msgid "Sugar" -msgstr "" +msgstr "Sokeri" #. module: mrp #: report:mrp.production.order:0 @@ -64,7 +64,7 @@ msgstr "Syklien lukumäärä" #. module: mrp #: model:product.uom.categ,name:mrp.product_uom_categ_fluid msgid "Fluid" -msgstr "" +msgstr "Neste" #. module: mrp #: model:process.transition,note:mrp.process_transition_minimumstockprocure0 @@ -148,7 +148,7 @@ msgstr "Valmiit tuotteet" #. module: mrp #: view:mrp.production:0 msgid "Manufacturing Orders which are currently in production." -msgstr "" +msgstr "Valmistustilaukset jotka ovat parhaillaan valmistuksessa" #. module: mrp #: model:process.transition,name:mrp.process_transition_servicerfq0 @@ -186,7 +186,7 @@ msgstr "Kustannukset tunnissa" #. module: mrp #: model:product.template,name:mrp.product_orange_product_template msgid "Orange" -msgstr "" +msgstr "Oranssi" #. module: mrp #: model:process.transition,note:mrp.process_transition_servicemts0 @@ -235,6 +235,8 @@ msgid "" "Create a product form for everything you buy or sell. Specify a supplier if " "the product can be purchased." msgstr "" +"Luo tuotelomake jokaiselle ostettavalle tai myytävälle tuotteelle. " +"Määrittele toimittaja jos tuote on ostettava" #. module: mrp #: model:ir.ui.menu,name:mrp.next_id_77 @@ -270,7 +272,7 @@ msgstr "Kapasiteetin tiedot" #. module: mrp #: field:mrp.production,move_created_ids2:0 msgid "Produced Products" -msgstr "" +msgstr "Valmistetut tuotteet" #. module: mrp #: report:mrp.production.order:0 @@ -325,7 +327,7 @@ msgstr "yritätä kiinnittää erää, joka ei ole samaa tuotetta" #. module: mrp #: model:product.template,name:mrp.product_cloth_product_template msgid "Cloth" -msgstr "" +msgstr "Vaate" #. module: mrp #: model:ir.model,name:mrp.model_mrp_product_produce @@ -335,12 +337,12 @@ msgstr "Valmista tuote" #. module: mrp #: constraint:mrp.bom:0 msgid "Error ! You cannot create recursive BoM." -msgstr "" +msgstr "Virhe! Et voi luoda rekursiivista BoM:ia." #. module: mrp #: model:ir.model,name:mrp.model_mrp_routing_workcenter msgid "Work Center Usage" -msgstr "" +msgstr "Työpisteen käyttöaste" #. module: mrp #: model:process.transition,name:mrp.process_transition_procurestockableproduct0 @@ -356,7 +358,7 @@ msgstr "Oletusyksikkö" #: sql_constraint:mrp.production:0 #: sql_constraint:stock.picking:0 msgid "Reference must be unique per Company!" -msgstr "" +msgstr "Viitteen tulee olla uniikki yrityskohtaisesti!" #. module: mrp #: code:addons/mrp/report/price.py:139 @@ -468,7 +470,7 @@ msgstr "Tuotteen tyyppi on palvelu" #. module: mrp #: sql_constraint:res.company:0 msgid "The company name must be unique !" -msgstr "" +msgstr "Yrityksen nimen pitää olla uniikki!" #. module: mrp #: model:ir.actions.act_window,help:mrp.mrp_property_group_action @@ -482,12 +484,12 @@ msgstr "" #. module: mrp #: help:mrp.workcenter,costs_cycle:0 msgid "Specify Cost of Work Center per cycle." -msgstr "" +msgstr "Määrittele työpisteen syklin kustannukset" #. module: mrp #: model:process.transition,name:mrp.process_transition_bom0 msgid "Manufacturing decomposition" -msgstr "" +msgstr "Valmistusrakenteen purkaminen" #. module: mrp #: model:process.node,note:mrp.process_node_serviceproduct1 @@ -535,7 +537,7 @@ msgstr "Virhe: Väärä EAN-koodi" #. module: mrp #: field:mrp.production,move_created_ids:0 msgid "Products to Produce" -msgstr "" +msgstr "Valmistettavat tuotteet" #. module: mrp #: view:mrp.routing:0 @@ -551,7 +553,7 @@ msgstr "Muuta määrä" #. module: mrp #: model:ir.actions.act_window,name:mrp.action_configure_workcenter msgid "Configure your work centers" -msgstr "" +msgstr "Määrittele työpisteesi" #. module: mrp #: view:mrp.production:0 @@ -593,7 +595,7 @@ msgstr "" #. module: mrp #: constraint:stock.move:0 msgid "You can not move products from or to a location of the type view." -msgstr "" +msgstr "Et voi siirtää tuotteita paikkaan tai paikasta tässä näkymässä." #. module: mrp #: field:mrp.bom,child_complete_ids:0 @@ -680,7 +682,7 @@ msgstr "Valmis" #. module: mrp #: model:product.template,name:mrp.product_buttons_product_template msgid "Shirt Buttons" -msgstr "" +msgstr "Paidan napit" #. module: mrp #: help:mrp.production,routing_id:0 @@ -699,7 +701,7 @@ msgstr "Yhden kierron kesto tunneissa." #. module: mrp #: constraint:mrp.bom:0 msgid "BoM line product should not be same as BoM product." -msgstr "" +msgstr "BoM rivin tuotteen ei tulisi olla sama kun BoM tuote." #. module: mrp #: view:mrp.production:0 @@ -770,7 +772,7 @@ msgstr "Tekijä 0.9 tarkoittaa 10%:n tuotantohävikkiä." #: code:addons/mrp/mrp.py:762 #, python-format msgid "Warning!" -msgstr "" +msgstr "Varoitus!" #. module: mrp #: report:mrp.production.order:0 @@ -814,7 +816,7 @@ msgstr "Kiireellinen" #. module: mrp #: view:mrp.production:0 msgid "Manufacturing Orders which are waiting for raw materials." -msgstr "" +msgstr "Valmistustilaukset jotka odottavat raaka-aineita." #. module: mrp #: model:ir.actions.act_window,help:mrp.mrp_workcenter_action @@ -912,7 +914,7 @@ msgstr "Minimivarasto" #: code:addons/mrp/mrp.py:503 #, python-format msgid "Cannot delete a manufacturing order in state '%s'" -msgstr "" +msgstr "Ei voi poistaa valmistustilausta joka on tilassa '%s'" #. module: mrp #: model:ir.ui.menu,name:mrp.menus_dash_mrp @@ -924,7 +926,7 @@ msgstr "Työtila" #: code:addons/mrp/report/price.py:211 #, python-format msgid "Total Cost of %s %s" -msgstr "" +msgstr "Kokonaiskustannus %s %s" #. module: mrp #: model:process.node,name:mrp.process_node_stockproduct0 @@ -1029,7 +1031,7 @@ msgstr "Tuotannon Työtila" #. module: mrp #: model:res.groups,name:mrp.group_mrp_manager msgid "Manager" -msgstr "" +msgstr "Päällikkö" #. module: mrp #: view:mrp.production:0 @@ -1084,12 +1086,12 @@ msgstr "" #. module: mrp #: model:ir.actions.todo.category,name:mrp.category_mrp_config msgid "MRP Management" -msgstr "" +msgstr "MRP hallinta" #. module: mrp #: help:mrp.workcenter,costs_hour:0 msgid "Specify Cost of Work Center per hour." -msgstr "" +msgstr "Määrittele työpisteen tuntikustannus" #. module: mrp #: help:mrp.workcenter,capacity_per_cycle:0 @@ -1097,6 +1099,8 @@ msgid "" "Number of operations this Work Center can do in parallel. If this Work " "Center represents a team of 5 workers, the capacity per cycle is 5." msgstr "" +"Työpisteen samanaikaisten rinnakkaisten työvaiheiden määrä. Jos työpisteellä " +"on 5 henkilöä, kapasiteetti on 5." #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_production_action3 @@ -1139,6 +1143,8 @@ msgid "" "Time in hours for this Work Center to achieve the operation of the specified " "routing." msgstr "" +"Tuntimäärä jonka ainaka tämä työpiste suorittaa reitityksessä määritellyn " +"toiminnon." #. module: mrp #: field:mrp.workcenter,costs_journal_id:0 @@ -1169,7 +1175,7 @@ msgstr "" #. module: mrp #: model:ir.actions.act_window,name:mrp.product_form_config_action msgid "Create or Import Products" -msgstr "" +msgstr "Luo tai tuo tuotteita" #. module: mrp #: field:report.workcenter.load,hour:0 @@ -1189,7 +1195,7 @@ msgstr "Huomautukset" #. module: mrp #: view:mrp.production:0 msgid "Manufacturing Orders which are ready to start production." -msgstr "" +msgstr "Valmistustilaukset jotka ovat valmiina tuotantoa vaten." #. module: mrp #: model:ir.model,name:mrp.model_mrp_bom @@ -1237,7 +1243,7 @@ msgstr "" #: code:addons/mrp/report/price.py:187 #, python-format msgid "Components Cost of %s %s" -msgstr "" +msgstr "Komponenttikustannus %s %s" #. module: mrp #: selection:mrp.workcenter.load,time_unit:0 @@ -1252,7 +1258,7 @@ msgstr "Revisiot" #. module: mrp #: model:product.template,name:mrp.product_shirt_product_template msgid "Shirt" -msgstr "" +msgstr "Paita" #. module: mrp #: field:mrp.production,priority:0 @@ -1290,7 +1296,7 @@ msgstr "Tuotannon aikataulutettu tuote" #: code:addons/mrp/report/price.py:204 #, python-format msgid "Work Cost of %s %s" -msgstr "" +msgstr "Työn kustannus %s %s" #. module: mrp #: help:res.company,manufacturing_lead:0 @@ -1300,7 +1306,7 @@ msgstr "Turvapäivät jokaiselle tuotannon toiminnolle." #. module: mrp #: model:product.template,name:mrp.product_water_product_template msgid "Water" -msgstr "" +msgstr "Vesi" #. module: mrp #: view:mrp.bom:0 @@ -1317,7 +1323,7 @@ msgstr "Valmista varastoon" #. module: mrp #: constraint:mrp.production:0 msgid "Order quantity cannot be negative or zero!" -msgstr "" +msgstr "Tilauksen määrä ei voi olla negatiivinen tai nolla!" #. module: mrp #: model:ir.actions.act_window,help:mrp.mrp_bom_form_action @@ -1404,7 +1410,7 @@ msgstr "Odottava" #: code:addons/mrp/mrp.py:603 #, python-format msgid "Couldn't find a bill of material for this product." -msgstr "" +msgstr "Osaluetteloa tälle tuotteelle ei löytynyt." #. module: mrp #: field:mrp.bom,active:0 @@ -1486,7 +1492,7 @@ msgstr "Ei kiireellinen" #. module: mrp #: field:mrp.production,user_id:0 msgid "Responsible" -msgstr "" +msgstr "Vastuuhenkilö" #. module: mrp #: model:ir.actions.act_window,name:mrp.mrp_production_action2 @@ -1570,7 +1576,7 @@ msgstr "Kopioi" msgid "" "Description of the Work Center. Explain here what's a cycle according to " "this Work Center." -msgstr "" +msgstr "Työpisteen kuvaus. Kerro tässä työvaiheet tälle työpisteelle." #. module: mrp #: view:mrp.production.lot.line:0 @@ -1836,7 +1842,7 @@ msgstr "Tuotteen pyöristys" #. module: mrp #: selection:mrp.production,state:0 msgid "New" -msgstr "" +msgstr "Uusi..." #. module: mrp #: selection:mrp.product.produce,mode:0 @@ -1884,7 +1890,7 @@ msgstr "Konfiguraatio" #. module: mrp #: view:mrp.bom:0 msgid "Starting Date" -msgstr "" +msgstr "Aloituspäivämäärä" #. module: mrp #: field:mrp.workcenter,time_stop:0 @@ -1939,7 +1945,7 @@ msgstr "Asetuksiin kuluva aika tunneissa." #. module: mrp #: model:product.template,name:mrp.product_orangejuice_product_template msgid "Orange Juice" -msgstr "" +msgstr "Appelssiinimehu" #. module: mrp #: field:mrp.bom.revision,bom_id:0 @@ -1989,7 +1995,7 @@ msgstr "Normaali" #. module: mrp #: view:mrp.production:0 msgid "Production started late" -msgstr "" +msgstr "Tuotanto aloitettu myöhässä" #. module: mrp #: model:process.node,note:mrp.process_node_routing0 @@ -2006,7 +2012,7 @@ msgstr "Kustannusrakenne" #. module: mrp #: model:res.groups,name:mrp.group_mrp_user msgid "User" -msgstr "" +msgstr "Käyttäjä" #. module: mrp #: selection:mrp.product.produce,mode:0 @@ -2037,7 +2043,7 @@ msgstr "" #. module: mrp #: model:product.uom,name:mrp.product_uom_litre msgid "Litre" -msgstr "" +msgstr "litra" #. module: mrp #: code:addons/mrp/mrp.py:762 @@ -2046,6 +2052,8 @@ msgid "" "You are going to produce total %s quantities of \"%s\".\n" "But you can only produce up to total %s quantities." msgstr "" +"Olet valmistamassa yhteensä %s määrän \"%s\".\n" +"Mutta voit valmistaan vain %s." #. module: mrp #: model:process.node,note:mrp.process_node_stockproduct0 @@ -2063,7 +2071,7 @@ msgstr "Virhe" #. module: mrp #: selection:mrp.production,state:0 msgid "Production Started" -msgstr "" +msgstr "Tuotanto käynnistetty" #. module: mrp #: field:mrp.product.produce,product_qty:0 @@ -2279,11 +2287,11 @@ msgstr "Resurssin lomat" #. module: mrp #: help:mrp.bom,sequence:0 msgid "Gives the sequence order when displaying a list of bills of material." -msgstr "" +msgstr "Antaa järjestyksen näytettäessä osaluetteloa" #. module: mrp #: view:mrp.production:0 #: field:mrp.production,move_lines:0 #: report:mrp.production.order:0 msgid "Products to Consume" -msgstr "" +msgstr "Käytettävät tuotteet" diff --git a/addons/mrp_subproduct/i18n/fi.po b/addons/mrp_subproduct/i18n/fi.po index bfe0b02dcd2..dcabbde52e4 100644 --- a/addons/mrp_subproduct/i18n/fi.po +++ b/addons/mrp_subproduct/i18n/fi.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: Mantavya Gajjar (Open ERP) \n" +"PO-Revision-Date: 2012-03-26 10:48+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:51+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" +"X-Generator: Launchpad (build 15011)\n" #. module: mrp_subproduct #: field:mrp.subproduct,product_id:0 @@ -50,7 +50,7 @@ msgstr "Valmistustilaus" #. module: mrp_subproduct #: constraint:mrp.bom:0 msgid "BoM line product should not be same as BoM product." -msgstr "" +msgstr "BoM rivin tuotteen ei tulisi olla sama kun BoM tuote." #. module: mrp_subproduct #: view:mrp.bom:0 @@ -85,7 +85,7 @@ msgstr "Osaluettelo" #. module: mrp_subproduct #: sql_constraint:mrp.production:0 msgid "Reference must be unique per Company!" -msgstr "" +msgstr "Viitteen tulee olla uniikki yrityskohtaisesti!" #. module: mrp_subproduct #: field:mrp.bom,sub_products:0 @@ -105,7 +105,7 @@ msgstr "Alatason tuote" #. module: mrp_subproduct #: constraint:mrp.production:0 msgid "Order quantity cannot be negative or zero!" -msgstr "" +msgstr "Tilauksen määrä ei voi olla negatiivinen tai nolla!" #. module: mrp_subproduct #: help:mrp.subproduct,subproduct_type:0 @@ -122,4 +122,4 @@ msgstr "" #. module: mrp_subproduct #: constraint:mrp.bom:0 msgid "Error ! You cannot create recursive BoM." -msgstr "" +msgstr "Virhe! Et voi luoda rekursiivista BoM:ia." diff --git a/addons/point_of_sale/i18n/nl.po b/addons/point_of_sale/i18n/nl.po index 2cb79a149da..cd9e0cb7e21 100644 --- a/addons/point_of_sale/i18n/nl.po +++ b/addons/point_of_sale/i18n/nl.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-02-29 16:42+0000\n" -"Last-Translator: Erwin \n" +"PO-Revision-Date: 2012-03-24 17:33+0000\n" +"Last-Translator: Anne Sedee (Therp) \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-01 05:19+0000\n" -"X-Generator: Launchpad (build 14874)\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: point_of_sale #: field:report.transaction.pos,product_nb:0 @@ -134,7 +134,7 @@ msgstr "Kassa categorien" #: model:ir.actions.act_window,name:point_of_sale.action_box_out #: model:ir.ui.menu,name:point_of_sale.menu_wizard_enter_jrnl2 msgid "Take Money Out" -msgstr "" +msgstr "Geld uitnemen" #. module: point_of_sale #: report:pos.lines:0 @@ -163,6 +163,8 @@ msgid "" "You do not have any open cash register. You must create a payment method or " "open a cash register." msgstr "" +"U heeft geen kassa geopend. U moet een kassa openen of een betaalwijze " +"creëren." #. module: point_of_sale #: report:account.statement:0 field:report.pos.order,partner_id:0 @@ -332,12 +334,12 @@ msgstr "Sprankelend water" #. module: point_of_sale #: view:pos.box.entries:0 msgid "Fill in this form if you put money in the cash register:" -msgstr "" +msgstr "Vul dit formulier in als u geld in de kassa stopt." #. module: point_of_sale #: view:account.bank.statement:0 msgid "Search Cash Statements" -msgstr "" +msgstr "Zoek kassa transacties" #. module: point_of_sale #: selection:report.cash.register,month:0 selection:report.pos.order,month:0 @@ -427,7 +429,7 @@ msgstr "Periode" #: code:addons/point_of_sale/wizard/pos_open_statement.py:49 #, python-format msgid "No Cash Register Defined !" -msgstr "" +msgstr "Geen kassa gedefinieerd" #. module: point_of_sale #: report:pos.invoice:0 @@ -564,7 +566,7 @@ msgstr "BTW Modus" #: code:addons/point_of_sale/wizard/pos_close_statement.py:50 #, python-format msgid "Cash registers are already closed." -msgstr "" +msgstr "Kassa's zijn reeds gesloten" #. module: point_of_sale #: constraint:product.product:0 @@ -2729,4 +2731,4 @@ msgstr "Gebruiker:" #. openerp-web #: /home/odo/repositories/addons/trunk/point_of_sale/static/src/xml/pos.xml:250 msgid "Shop:" -msgstr "" +msgstr "Winkel:" diff --git a/addons/product/i18n/es_EC.po b/addons/product/i18n/es_EC.po index 7a5e1537b29..f6d8ff8621e 100644 --- a/addons/product/i18n/es_EC.po +++ b/addons/product/i18n/es_EC.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:37+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-24 04:06+0000\n" +"Last-Translator: Cristian Salamea (Gnuthink) \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:56+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: product #: model:product.template,name:product.product_product_ram512_product_template @@ -171,11 +171,13 @@ msgid "" "Conversion from Product UoM %s to Default UoM %s is not possible as they " "both belong to different Category!." msgstr "" +"¡La conversión de la UdM %s del producto a UdM por defecto %s no es posible " +"debido a que no pertenecen a la misma categoría!" #. module: product #: model:product.uom,name:product.product_uom_dozen msgid "Dozen" -msgstr "" +msgstr "Docena" #. module: product #: selection:product.template,cost_method:0 @@ -259,6 +261,8 @@ msgid "" "Create a product form for everything you buy or sell. Specify a supplier if " "the product can be purchased." msgstr "" +"Cree un producto para todo lo que compre o venda. Especifique un proveedor " +"si el producto puede ser comprado." #. module: product #: view:product.uom:0 @@ -546,7 +550,7 @@ msgstr "Tacos de metal" #: code:addons/product/product.py:175 #, python-format msgid "Cannot change the category of existing UoM '%s'." -msgstr "" +msgstr "No puede cambiar la categoría de la UdM existente '%s'" #. module: product #: model:ir.model,name:product.model_product_uom_categ @@ -566,7 +570,7 @@ msgstr "Cálculo del precio" #. module: product #: model:res.groups,name:product.group_uos msgid "Product UoS View" -msgstr "" +msgstr "Vista UdV producto" #. module: product #: field:product.template,purchase_ok:0 @@ -615,7 +619,7 @@ msgstr "Plantillas producto" #. module: product #: field:product.category,parent_left:0 msgid "Left Parent" -msgstr "" +msgstr "Padre izquierdo" #. module: product #: model:product.template,name:product.product_product_restaurantexpenses0_product_template @@ -665,7 +669,7 @@ msgstr "Precio base" #. module: product #: model:product.template,name:product.product_consultant_product_template msgid "Service on Timesheet" -msgstr "" +msgstr "Servicio en hoja de Trabajo" #. module: product #: model:product.template,name:product.product_product_fan2_product_template diff --git a/addons/product/i18n/fi.po b/addons/product/i18n/fi.po index f1346ae9487..81c5ab4ae09 100644 --- a/addons/product/i18n/fi.po +++ b/addons/product/i18n/fi.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:37+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: Pekka Pylvänäinen \n" +"PO-Revision-Date: 2012-03-26 10:55+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:54+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" +"X-Generator: Launchpad (build 15011)\n" #. module: product #: model:product.template,name:product.product_product_ram512_product_template @@ -171,11 +171,13 @@ msgid "" "Conversion from Product UoM %s to Default UoM %s is not possible as they " "both belong to different Category!." msgstr "" +"Konversio tuotteen mittayksikösä %s oletusmittayksikköön %s ei ole " +"mahdollista koska ne kuuluvat eri kategorioihin." #. module: product #: model:product.uom,name:product.product_uom_dozen msgid "Dozen" -msgstr "" +msgstr "Tusina" #. module: product #: selection:product.template,cost_method:0 @@ -259,6 +261,8 @@ msgid "" "Create a product form for everything you buy or sell. Specify a supplier if " "the product can be purchased." msgstr "" +"Luo tuotelomake jokaiselle ostettavalle tai myytävälle tuotteelle. " +"Määrittele toimittaja jos tuote on ostettava" #. module: product #: view:product.uom:0 @@ -535,7 +539,7 @@ msgstr "" #: code:addons/product/product.py:175 #, python-format msgid "Cannot change the category of existing UoM '%s'." -msgstr "" +msgstr "Ei voi vaihtaa olemassaolevaa mittayksikön kategoriaa '%s'." #. module: product #: model:ir.model,name:product.model_product_uom_categ @@ -555,7 +559,7 @@ msgstr "Hinnan laskenta" #. module: product #: model:res.groups,name:product.group_uos msgid "Product UoS View" -msgstr "" +msgstr "Tuotteen myyntierän näkymä" #. module: product #: field:product.template,purchase_ok:0 @@ -603,7 +607,7 @@ msgstr "Tuote mallipohjat" #. module: product #: field:product.category,parent_left:0 msgid "Left Parent" -msgstr "" +msgstr "Vasen ylempi" #. module: product #: model:product.template,name:product.product_product_restaurantexpenses0_product_template @@ -653,7 +657,7 @@ msgstr "Perushinta" #. module: product #: model:product.template,name:product.product_consultant_product_template msgid "Service on Timesheet" -msgstr "" +msgstr "Palvelu tuntilistalla" #. module: product #: model:product.template,name:product.product_product_fan2_product_template @@ -704,7 +708,7 @@ msgstr "Hinnan nimi" #. module: product #: model:product.template,name:product.product_product_arm_product_template msgid "Cabinet" -msgstr "" +msgstr "Kabinetti" #. module: product #: help:product.product,incoming_qty:0 @@ -885,7 +889,7 @@ msgstr "Kehityksessä" #: code:addons/product/product.py:363 #, python-format msgid "UoM categories Mismatch!" -msgstr "" +msgstr "Mittayksiköt eivät täsmää!" #. module: product #: model:product.template,name:product.product_product_shelfofcm1_product_template @@ -959,7 +963,7 @@ msgstr "Pakkauksen kokonaispaino" #. module: product #: field:product.template,seller_info_id:0 msgid "unknown" -msgstr "" +msgstr "tuntematon" #. module: product #: help:product.packaging,code:0 @@ -1097,7 +1101,7 @@ msgstr "Suurempi kuin viitemittayksikkö" #. module: product #: field:product.category,parent_right:0 msgid "Right Parent" -msgstr "" +msgstr "Oikea ylempi" #. module: product #: view:product.product:0 @@ -1278,7 +1282,7 @@ msgstr "Palvelut" #. module: product #: model:ir.actions.act_window,name:product.product_form_config_action msgid "Create or Import Products" -msgstr "" +msgstr "Luo tai tuo tuotteita" #. module: product #: field:product.pricelist.item,base_pricelist_id:0 @@ -1385,7 +1389,7 @@ msgstr "Hinnaston versio" #. module: product #: field:product.product,virtual_available:0 msgid "Quantity Available" -msgstr "" +msgstr "Saatavilla oleva määrä" #. module: product #: help:product.pricelist.item,sequence:0 @@ -1595,7 +1599,7 @@ msgstr "Pakkauksen EAN-koodi." #. module: product #: help:product.supplierinfo,product_uom:0 msgid "This comes from the product form." -msgstr "" +msgstr "Tämä tulee tuotelomakkeelta" #. module: product #: field:product.packaging,weight_ul:0 @@ -1764,7 +1768,7 @@ msgstr "Pyöristys" #. module: product #: model:product.category,name:product.product_category_assembly msgid "Assembly Service" -msgstr "" +msgstr "Kokoonpanopalvelu" #. module: product #: model:ir.actions.report.xml,name:product.report_product_label @@ -1872,7 +1876,7 @@ msgstr "Muut Tuotteet" #. module: product #: field:product.product,color:0 msgid "Color Index" -msgstr "" +msgstr "Väri-indeksi" #. module: product #: view:product.product:0 @@ -1898,7 +1902,7 @@ msgstr "Toimittajan hinnasto" #: code:addons/product/product.py:175 #, python-format msgid "Warning" -msgstr "" +msgstr "Varoitus" #. module: product #: field:product.pricelist.item,base:0 @@ -1986,7 +1990,7 @@ msgstr "" #: model:ir.actions.act_window,name:product.product_uom_categ_form_action #: model:ir.ui.menu,name:product.menu_product_uom_categ_form_action msgid "UoM Categories" -msgstr "" +msgstr "Mittayksikkökategoriat" #. module: product #: field:product.template,seller_delay:0 @@ -2069,7 +2073,7 @@ msgstr "Tuotteen toimittaja" #. module: product #: field:product.product,product_image:0 msgid "Image" -msgstr "" +msgstr "kuva" #. module: product #: field:product.uom,uom_type:0 diff --git a/addons/product_visible_discount/i18n/fi.po b/addons/product_visible_discount/i18n/fi.po index f3ffb06ada0..45f9cd391c1 100644 --- a/addons/product_visible_discount/i18n/fi.po +++ b/addons/product_visible_discount/i18n/fi.po @@ -8,20 +8,20 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:37+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-26 09:41+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:56+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" +"X-Generator: Launchpad (build 15011)\n" #. module: product_visible_discount #: code:addons/product_visible_discount/product_visible_discount.py:153 #, python-format msgid "No Sale Pricelist Found!" -msgstr "" +msgstr "Myynnin hinnastoa ei löytynyt!" #. module: product_visible_discount #: field:product.pricelist,visible_discount:0 @@ -32,7 +32,7 @@ msgstr "Näkyvä alennus" #: code:addons/product_visible_discount/product_visible_discount.py:145 #, python-format msgid "No Purchase Pricelist Found!" -msgstr "" +msgstr "Oston hinnastoa ei löytynyt!" #. module: product_visible_discount #: model:ir.model,name:product_visible_discount.model_account_invoice_line @@ -48,7 +48,7 @@ msgstr "Hinnasto" #: code:addons/product_visible_discount/product_visible_discount.py:145 #, python-format msgid "You must first define a pricelist on the supplier form!" -msgstr "" +msgstr "Sinun pitää ensin määritellä hinnasto toimittajalomakkeella!" #. module: product_visible_discount #: model:ir.model,name:product_visible_discount.model_sale_order_line @@ -59,4 +59,4 @@ msgstr "Myyntitilausrivi" #: code:addons/product_visible_discount/product_visible_discount.py:153 #, python-format msgid "You must first define a pricelist on the customer form!" -msgstr "" +msgstr "Sinun pitää ensin määritellä hinnasto asiakaslomakkeella!" diff --git a/addons/project_planning/i18n/fi.po b/addons/project_planning/i18n/fi.po index ab00141c13c..00d444cae33 100644 --- a/addons/project_planning/i18n/fi.po +++ b/addons/project_planning/i18n/fi.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:37+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-26 09:18+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:59+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" +"X-Generator: Launchpad (build 15011)\n" #. module: project_planning #: help:report_account_analytic.planning.account,tasks:0 @@ -75,6 +75,10 @@ msgid "" "material), OpenERP allows you to encode and then automatically compute tasks " "and phases scheduling, track resource allocation and availability." msgstr "" +"Globaalilla aikataulutusjärjestelmällä varustettu OpenERP järjestelmä " +"mahdollistaa yrityksen kaikkien resurssien (henkilöiden ja materiaalien) " +"aikatauluttamisen, syöttämisen, laskemisen ja ajoituksen sekä resurssien " +"käytön ja saatavuuden seurannan." #. module: project_planning #: report:report_account_analytic.planning.print:0 @@ -209,6 +213,8 @@ msgid "" "This value is given by the sum of time allocation with the checkbox " "'Assigned in Taks' set to FALSE, expressed in days." msgstr "" +"Tähä arvo on annettu aikavarausten summana kohdista joissa valittu " +"'Määritelty tehtäville' kentän arvo on epätosi. Ilmoitetaan päivinä." #. module: project_planning #: view:report_account_analytic.planning:0 @@ -266,6 +272,8 @@ msgid "" "This value is given by the sum of time allocation without task(s) linked, " "expressed in days." msgstr "" +"Tämä arvo on annettu aikavarausten summana ilman linkitettyjä tehtäviä, " +"ilmoitetaan päivinä." #. module: project_planning #: view:report_account_analytic.planning:0 @@ -289,7 +297,7 @@ msgstr "" #. module: project_planning #: report:report_account_analytic.planning.print:0 msgid "[" -msgstr "" +msgstr "[" #. module: project_planning #: report:report_account_analytic.planning.print:0 @@ -334,6 +342,8 @@ msgid "" "This value is given by the sum of time allocation with the checkbox " "'Assigned in Taks' set to TRUE expressed in days." msgstr "" +"Tähä arvo on annettu aikavarausten summana kohdista joissa valittu " +"'Määritelty tehtäville' kentän arvo on tosi. Ilmoitetaan päivinä." #. module: project_planning #: help:report_account_analytic.planning.user,free:0 @@ -341,6 +351,8 @@ msgid "" "Computed as Business Days - (Time Allocation of Tasks + Time Allocation " "without Tasks + Holiday Leaves)" msgstr "" +"Laskettu työpäivinä - (Aikavaraus tehtäville + aikavaraus ilman tehtäviä + " +"lomat)" #. module: project_planning #: field:report_account_analytic.planning.line,amount_unit:0 @@ -529,7 +541,7 @@ msgstr "Loppupvm" #. module: project_planning #: sql_constraint:res.company:0 msgid "The company name must be unique !" -msgstr "" +msgstr "Yrityksen nimen pitää olla uniikki!" #. module: project_planning #: report:report_account_analytic.planning.print:0 @@ -549,7 +561,7 @@ msgstr "Vastuuhenkilö :" #. module: project_planning #: report:report_account_analytic.planning.print:0 msgid "]" -msgstr "" +msgstr "]" #. module: project_planning #: field:res.company,planning_time_mode_id:0 diff --git a/addons/purchase/i18n/es_EC.po b/addons/purchase/i18n/es_EC.po index eefbe505338..e9af344c5dc 100644 --- a/addons/purchase/i18n/es_EC.po +++ b/addons/purchase/i18n/es_EC.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-27 00:31+0000\n" +"Last-Translator: Javier Chogllo \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 07:02+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" +"X-Generator: Launchpad (build 15011)\n" #. module: purchase #: model:process.transition,note:purchase.process_transition_confirmingpurchaseorder0 @@ -30,7 +30,7 @@ msgstr "" #. module: purchase #: model:process.node,note:purchase.process_node_productrecept0 msgid "Incoming products to control" -msgstr "" +msgstr "Productos de entrada a controlar" #. module: purchase #: field:purchase.order,invoiced:0 @@ -47,7 +47,7 @@ msgstr "Destino" #: code:addons/purchase/purchase.py:236 #, python-format msgid "In order to delete a purchase order, it must be cancelled first!" -msgstr "" +msgstr "¡Debe cancelar el pedido de compra antes de poder eliminarlo!" #. module: purchase #: help:purchase.report,date:0 @@ -58,13 +58,13 @@ msgstr "Fecha en el que fue creado este documento." #: view:purchase.order:0 view:purchase.order.line:0 view:purchase.report:0 #: view:stock.picking:0 msgid "Group By..." -msgstr "" +msgstr "Agrupar por..." #. module: purchase #: field:purchase.order,create_uid:0 view:purchase.report:0 #: field:purchase.report,user_id:0 msgid "Responsible" -msgstr "" +msgstr "Responsable" #. module: purchase #: model:ir.actions.act_window,help:purchase.purchase_rfq @@ -91,7 +91,7 @@ msgstr "" #. module: purchase #: view:purchase.order:0 msgid "Approved purchase order" -msgstr "" +msgstr "Aprobar pedido de compra" #. module: purchase #: view:purchase.order:0 field:purchase.order,partner_id:0 @@ -104,12 +104,12 @@ msgstr "Proveedor" #: model:ir.ui.menu,name:purchase.menu_product_pricelist_action2_purchase #: model:ir.ui.menu,name:purchase.menu_purchase_config_pricelist msgid "Pricelists" -msgstr "" +msgstr "Lista de precios" #. module: purchase #: view:stock.picking:0 msgid "To Invoice" -msgstr "" +msgstr "A facturar" #. module: purchase #: view:purchase.order.line_invoice:0 @@ -136,7 +136,7 @@ msgstr "Facturas de Proveedor" #. module: purchase #: view:purchase.report:0 msgid "Purchase Orders Statistics" -msgstr "" +msgstr "Estadísticas ordenes de compra" #. module: purchase #: model:process.transition,name:purchase.process_transition_packinginvoice0 @@ -148,22 +148,22 @@ msgstr "Desde inventario" #: code:addons/purchase/purchase.py:735 #, python-format msgid "No Pricelist !" -msgstr "¡No tarifa!" +msgstr "¡Sin tarifa!" #. module: purchase #: model:ir.model,name:purchase.model_purchase_config_wizard msgid "purchase.config.wizard" -msgstr "" +msgstr "purchase.config.wizard" #. module: purchase #: view:board.board:0 model:ir.actions.act_window,name:purchase.purchase_draft msgid "Request for Quotations" -msgstr "" +msgstr "Solicitud de presupuestos" #. module: purchase #: selection:purchase.config.wizard,default_method:0 msgid "Based on Receptions" -msgstr "" +msgstr "Basado en recepciones" #. module: purchase #: field:purchase.order,company_id:0 field:purchase.order.line,company_id:0 @@ -174,7 +174,7 @@ msgstr "Compañía" #. module: purchase #: help:res.company,po_lead:0 msgid "This is the leads/security time for each purchase order." -msgstr "" +msgstr "Éste es el plazo/seguridad de tiempo para cada orden de compra." #. module: purchase #: model:ir.actions.act_window,name:purchase.action_purchase_order_monthly_categ_graph @@ -220,27 +220,27 @@ msgstr "" #. module: purchase #: report:purchase.order:0 msgid "Fax :" -msgstr "Fax :" +msgstr "Fax :" #. module: purchase #: view:purchase.order:0 msgid "To Approve" -msgstr "" +msgstr "Para aprobar" #. module: purchase #: view:res.partner:0 msgid "Purchase Properties" -msgstr "" +msgstr "Propiedades de compra" #. module: purchase #: model:ir.model,name:purchase.model_stock_partial_picking msgid "Partial Picking Processing Wizard" -msgstr "" +msgstr "Asistente para el procesamiento de recogida parcial" #. module: purchase #: view:purchase.order.line:0 msgid "History" -msgstr "Historia" +msgstr "Historial" #. module: purchase #: view:purchase.order:0 @@ -250,22 +250,22 @@ msgstr "Aprobar Compra" #. module: purchase #: view:purchase.report:0 field:purchase.report,day:0 msgid "Day" -msgstr "" +msgstr "Día" #. module: purchase #: selection:purchase.order,invoice_method:0 msgid "Based on generated draft invoice" -msgstr "" +msgstr "Basado en el borrador de factura generado" #. module: purchase #: view:purchase.report:0 msgid "Order of Day" -msgstr "" +msgstr "Orden del día" #. module: purchase #: view:board.board:0 msgid "Monthly Purchases by Category" -msgstr "" +msgstr "Compras mensuales por categoría" #. module: purchase #: model:ir.actions.act_window,name:purchase.action_purchase_line_product_tree @@ -275,12 +275,12 @@ msgstr "Compras" #. module: purchase #: view:purchase.order:0 msgid "Purchase order which are in draft state" -msgstr "" +msgstr "Pedidos de compra en estado borrador" #. module: purchase #: view:purchase.order:0 msgid "Origin" -msgstr "Origen" +msgstr "Orígen" #. module: purchase #: view:purchase.order:0 field:purchase.order,notes:0 @@ -291,7 +291,7 @@ msgstr "Notas" #. module: purchase #: selection:purchase.report,month:0 msgid "September" -msgstr "" +msgstr "Septiembre" #. module: purchase #: report:purchase.order:0 field:purchase.order,amount_tax:0 @@ -307,7 +307,7 @@ msgstr "Impuestos" #: model:res.request.link,name:purchase.req_link_purchase_order #: field:stock.picking,purchase_id:0 msgid "Purchase Order" -msgstr "Pedido de compra" +msgstr "Orden de compra" #. module: purchase #: field:purchase.order,name:0 view:purchase.order.line:0 @@ -325,13 +325,13 @@ msgstr "Total neto :" #: model:ir.ui.menu,name:purchase.menu_procurement_partner_contact_form #: model:ir.ui.menu,name:purchase.menu_product_in_config_purchase msgid "Products" -msgstr "" +msgstr "Productos" #. module: purchase #: model:ir.actions.act_window,name:purchase.action_purchase_order_report_graph #: view:purchase.report:0 msgid "Total Qty and Amount by month" -msgstr "" +msgstr "Ctdad total e importe por mes" #. module: purchase #: model:process.transition,note:purchase.process_transition_packinginvoice0 @@ -339,6 +339,8 @@ msgid "" "A Pick list generates an invoice. Depending on the Invoicing control of the " "sale order, the invoice is based on delivered or on ordered quantities." msgstr "" +"Un albarán genera una factura. Según el control de facturación en el pedido " +"de venta, la factura se basa en las cantidades enviadas u ordenadas." #. module: purchase #: selection:purchase.order,state:0 selection:purchase.order.line,state:0 @@ -349,12 +351,12 @@ msgstr "Cancelado" #. module: purchase #: view:purchase.order:0 msgid "Convert to Purchase Order" -msgstr "" +msgstr "Convertir a orden de compra" #. module: purchase #: field:purchase.order,pricelist_id:0 field:purchase.report,pricelist_id:0 msgid "Pricelist" -msgstr "Tarifa" +msgstr "Lista de precios" #. module: purchase #: selection:purchase.order,state:0 selection:purchase.report,state:0 @@ -364,7 +366,7 @@ msgstr "Excepción de envío" #. module: purchase #: field:purchase.order.line,invoice_lines:0 msgid "Invoice Lines" -msgstr "" +msgstr "Detalle de factura" #. module: purchase #: model:process.node,name:purchase.process_node_packinglist0 @@ -375,7 +377,7 @@ msgstr "Productos entrantes" #. module: purchase #: model:process.node,name:purchase.process_node_packinginvoice0 msgid "Outgoing Products" -msgstr "" +msgstr "Productos salientes" #. module: purchase #: view:purchase.order:0 @@ -390,18 +392,20 @@ msgstr "Referencia" #. module: purchase #: model:ir.model,name:purchase.model_stock_move msgid "Stock Move" -msgstr "" +msgstr "Movimiento de stock" #. module: purchase #: code:addons/purchase/purchase.py:419 #, python-format msgid "You must first cancel all invoices related to this purchase order." msgstr "" +"Primero tiene que cancelar todas las facturas relacionadas con este pedido " +"de compra" #. module: purchase #: field:purchase.report,dest_address_id:0 msgid "Dest. Address Contact Name" -msgstr "" +msgstr "Nombre contacto dirección dest." #. module: purchase #: report:purchase.order:0 @@ -412,7 +416,7 @@ msgstr "CIF/NIF:" #: code:addons/purchase/purchase.py:326 #, python-format msgid "Purchase order '%s' has been set in draft state." -msgstr "" +msgstr "Pedido de compra '%s' se ha cambiado al estado borrador." #. module: purchase #: field:purchase.order.line,account_analytic_id:0 @@ -422,7 +426,7 @@ msgstr "Cuenta analítica" #. module: purchase #: view:purchase.report:0 field:purchase.report,nbr:0 msgid "# of Lines" -msgstr "" +msgstr "Nº de líneas" #. module: purchase #: code:addons/purchase/purchase.py:754 code:addons/purchase/purchase.py:769 @@ -430,7 +434,7 @@ msgstr "" #: code:addons/purchase/wizard/purchase_order_group.py:47 #, python-format msgid "Warning" -msgstr "" +msgstr "Advertencia" #. module: purchase #: field:purchase.order,validator:0 view:purchase.report:0 @@ -440,18 +444,20 @@ msgstr "Validada por" #. module: purchase #: view:purchase.report:0 msgid "Order in last month" -msgstr "" +msgstr "Pedido último mes" #. module: purchase #: code:addons/purchase/purchase.py:412 #, python-format msgid "You must first cancel all receptions related to this purchase order." msgstr "" +"Primero tiene que cancelar todas las recepciones relacionas con este pedido " +"de compra" #. module: purchase #: selection:purchase.order.line,state:0 msgid "Draft" -msgstr "" +msgstr "Borrador" #. module: purchase #: report:purchase.order:0 @@ -461,17 +467,17 @@ msgstr "Precio neto" #. module: purchase #: view:purchase.order.line:0 msgid "Order Line" -msgstr "Línea del pedido" +msgstr "Línea de pedido" #. module: purchase #: help:purchase.order,shipped:0 msgid "It indicates that a picking has been done" -msgstr "" +msgstr "Indica que un albarán ha sido realizado" #. module: purchase #: view:purchase.order:0 msgid "Purchase orders which are in exception state" -msgstr "" +msgstr "Pedidos de compra que están en estado de excepción" #. module: purchase #: report:purchase.order:0 field:purchase.report,validator:0 @@ -487,12 +493,12 @@ msgstr "Confirmado" #. module: purchase #: view:purchase.report:0 field:purchase.report,price_average:0 msgid "Average Price" -msgstr "" +msgstr "Precio promedio" #. module: purchase #: view:stock.picking:0 msgid "Incoming Shipments already processed" -msgstr "" +msgstr "Envíos entrantes ya procesados" #. module: purchase #: report:purchase.order:0 @@ -510,17 +516,17 @@ msgstr "Confirmar" #: model:ir.ui.menu,name:purchase.menu_action_picking_tree4_picking_to_invoice #: selection:purchase.order,invoice_method:0 msgid "Based on receptions" -msgstr "" +msgstr "Basado en recepciones" #. module: purchase #: constraint:res.company:0 msgid "Error! You can not create recursive companies." -msgstr "" +msgstr "Error! No puede crear compañías recursivas." #. module: purchase #: field:purchase.order,partner_ref:0 msgid "Supplier Reference" -msgstr "" +msgstr "Referencia proveedor" #. module: purchase #: model:process.transition,note:purchase.process_transition_productrecept0 @@ -529,6 +535,9 @@ msgid "" "of the purchase order, the invoice is based on received or on ordered " "quantities." msgstr "" +"Un albarán genera una factura de proveedor. Según el control de facturación " +"del pedido de compra, la factura se basa en las cantidades recibidas o " +"pedidas." #. module: purchase #: model:ir.actions.act_window,help:purchase.purchase_line_form_action2 @@ -539,11 +548,17 @@ msgid "" "supplier invoice, you can generate a draft supplier invoice based on the " "lines from this menu." msgstr "" +"Si se establece el Control de Facturación de una orden de compra como " +"\"Basado en las líneas de Ordenes de Compra\", usted puede buscar aquí todas " +"las órdenes de compra que aún no han recibido la factura del proveedor. Una " +"vez que esté listo para recibir una factura del proveedor, usted puede " +"generar una factura de proveedor en borrador basado en las líneas de este " +"menú." #. module: purchase #: view:purchase.order:0 msgid "Purchase order which are in the exception state" -msgstr "" +msgstr "Pedidos de compra que están en estado de excepción" #. module: purchase #: model:ir.actions.act_window,help:purchase.action_stock_move_report_po @@ -551,6 +566,8 @@ msgid "" "Reception Analysis allows you to easily check and analyse your company order " "receptions and the performance of your supplier's deliveries." msgstr "" +"El análisis de recepción permite comprobar y analizar fácilmente las " +"recepciones de su compañía y el rendimiento de las entregas de su proveedor." #. module: purchase #: report:purchase.quotation:0 @@ -566,23 +583,23 @@ msgstr "Albarán" #. module: purchase #: view:purchase.order:0 msgid "Print" -msgstr "" +msgstr "Imprimir" #. module: purchase #: model:ir.actions.act_window,name:purchase.action_view_purchase_order_group msgid "Merge Purchase orders" -msgstr "" +msgstr "Mezclar órdenes de compra" #. module: purchase #: field:purchase.order,order_line:0 msgid "Order Lines" -msgstr "Líneas del pedido" +msgstr "Líneas de pedido" #. module: purchase #: code:addons/purchase/purchase.py:737 #, python-format msgid "No Partner!" -msgstr "" +msgstr "¡Falta empresa!" #. module: purchase #: report:purchase.quotation:0 @@ -597,17 +614,17 @@ msgstr "Precio Total" #. module: purchase #: model:ir.actions.act_window,name:purchase.action_import_create_supplier_installer msgid "Create or Import Suppliers" -msgstr "" +msgstr "Crear o importar proveedores" #. module: purchase #: view:stock.picking:0 msgid "Available" -msgstr "" +msgstr "Disponible" #. module: purchase #: field:purchase.report,partner_address_id:0 msgid "Address Contact Name" -msgstr "" +msgstr "Nombre contacto dirección" #. module: purchase #: report:purchase.order:0 @@ -617,7 +634,7 @@ msgstr "Dirección de envío :" #. module: purchase #: help:purchase.order,invoice_ids:0 msgid "Invoices generated for a purchase order" -msgstr "" +msgstr "Facturas generadas para un pedido de compra" #. module: purchase #: code:addons/purchase/purchase.py:285 code:addons/purchase/purchase.py:348 @@ -625,12 +642,13 @@ msgstr "" #: code:addons/purchase/wizard/purchase_line_invoice.py:111 #, python-format msgid "Error !" -msgstr "" +msgstr "¡ Error !" #. module: purchase #: constraint:stock.move:0 msgid "You can not move products from or to a location of the type view." msgstr "" +"No se puede mover productos desde o hacia una ubicación de tipo vista." #. module: purchase #: code:addons/purchase/purchase.py:737 @@ -639,12 +657,14 @@ msgid "" "You have to select a partner in the purchase form !\n" "Please set one partner before choosing a product." msgstr "" +"¡Debe seleccionar una empresa en el formulario de compra!\n" +"Por favor seleccione una empresa antes de seleccionar un producto." #. module: purchase #: code:addons/purchase/purchase.py:349 #, python-format msgid "There is no purchase journal defined for this company: \"%s\" (id:%d)" -msgstr "" +msgstr "No se ha definido un diario para esta compañía: \"%s\" (id:%d)" #. module: purchase #: model:process.transition,note:purchase.process_transition_invoicefrompackinglist0 @@ -653,6 +673,9 @@ msgid "" "order is 'On picking'. The invoice can also be generated manually by the " "accountant (Invoice control = Manual)." msgstr "" +"La factura se crea de forma automática si el control de factura del pedido " +"de compra es 'Desde albarán'. La factura también puede ser generada " +"manualmente por el contable (control de factura = Manual)." #. module: purchase #: report:purchase.order:0 @@ -666,11 +689,15 @@ msgid "" "purchase history and performance. From this menu you can track your " "negotiation performance, the delivery performance of your suppliers, etc." msgstr "" +"Los análisis de compra le permite comprobar y analizar fácilmente el " +"historial de compras de su compañía y su rendimiento. Desde este menú puede " +"controlar el rendimiento de su negociación, el funcionamiento de las " +"entregas de sus proveedores, etc." #. module: purchase #: model:ir.ui.menu,name:purchase.menu_configuration_misc msgid "Miscellaneous" -msgstr "" +msgstr "Misc" #. module: purchase #: code:addons/purchase/purchase.py:769 @@ -698,18 +725,18 @@ msgstr "Crear factura" #: model:ir.ui.menu,name:purchase.menu_purchase_unit_measure_purchase #: model:ir.ui.menu,name:purchase.menu_purchase_uom_form_action msgid "Units of Measure" -msgstr "" +msgstr "Unidades de medida" #. module: purchase #: field:purchase.order.line,move_dest_id:0 msgid "Reservation Destination" -msgstr "Destinación de la reserva" +msgstr "Destino de la reserva" #. module: purchase #: code:addons/purchase/purchase.py:236 #, python-format msgid "Invalid action !" -msgstr "" +msgstr "¡Acción inválida!" #. module: purchase #: field:purchase.order,fiscal_position:0 @@ -719,29 +746,29 @@ msgstr "Posición fiscal" #. module: purchase #: selection:purchase.report,month:0 msgid "July" -msgstr "" +msgstr "Julio" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_purchase_config_purchase #: view:res.company:0 msgid "Configuration" -msgstr "" +msgstr "Configuración" #. module: purchase #: view:purchase.order:0 msgid "Total amount" -msgstr "Importe total" +msgstr "Monto Total" #. module: purchase #: model:ir.actions.act_window,name:purchase.act_purchase_order_2_stock_picking msgid "Receptions" -msgstr "" +msgstr "Recepciones" #. module: purchase #: code:addons/purchase/purchase.py:285 #, python-format msgid "You cannot confirm a purchase order without any lines." -msgstr "" +msgstr "No puede confirmar un pedido de compra sin líneas de pedido" #. module: purchase #: model:ir.actions.act_window,help:purchase.action_invoice_pending @@ -751,6 +778,10 @@ msgid "" "according to your settings. Once you receive a supplier invoice, you can " "match it with the draft invoice and validate it." msgstr "" +"Utilice este menú para controlar las facturas que se reciban de su " +"proveedor. OpenERP pregenera facturas en estado borrador las órdenes de " +"compra o de recepciones, de acuerdo a su configuración. Una vez que reciba " +"una factura de proveedor, puede verificarla y validarla" #. module: purchase #: model:process.node,name:purchase.process_node_draftpurchaseorder0 @@ -762,22 +793,22 @@ msgstr "Petición presupuesto" #: code:addons/purchase/edi/purchase_order.py:139 #, python-format msgid "EDI Pricelist (%s)" -msgstr "" +msgstr "Tarifa EDI (%s)" #. module: purchase #: selection:purchase.order,state:0 msgid "Waiting Approval" -msgstr "" +msgstr "Esperando aprobación" #. module: purchase #: selection:purchase.report,month:0 msgid "January" -msgstr "" +msgstr "Enero" #. module: purchase #: model:ir.actions.server,name:purchase.ir_actions_server_edi_purchase msgid "Auto-email confirmed purchase orders" -msgstr "" +msgstr "Eviar email automático pedidos de compra confirmados" #. module: purchase #: model:process.transition,name:purchase.process_transition_approvingpurchaseorder0 diff --git a/addons/purchase/i18n/fi.po b/addons/purchase/i18n/fi.po index 35214d2c27f..eb1a2b4cf7f 100644 --- a/addons/purchase/i18n/fi.po +++ b/addons/purchase/i18n/fi.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: Fabien (Open ERP) \n" +"PO-Revision-Date: 2012-03-26 09:32+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 07:01+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" +"X-Generator: Launchpad (build 15011)\n" #. module: purchase #: model:process.transition,note:purchase.process_transition_confirmingpurchaseorder0 @@ -46,7 +46,7 @@ msgstr "Kohde" #: code:addons/purchase/purchase.py:236 #, python-format msgid "In order to delete a purchase order, it must be cancelled first!" -msgstr "" +msgstr "Poistaaksesi ostotilauksen, se täytyy ensin peruuttaa!" #. module: purchase #: help:purchase.report,date:0 @@ -88,7 +88,7 @@ msgstr "" #. module: purchase #: view:purchase.order:0 msgid "Approved purchase order" -msgstr "" +msgstr "Hyväksytty ostotilaus" #. module: purchase #: view:purchase.order:0 field:purchase.order,partner_id:0 @@ -106,7 +106,7 @@ msgstr "Hinnastot" #. module: purchase #: view:stock.picking:0 msgid "To Invoice" -msgstr "" +msgstr "Laskutettavaa" #. module: purchase #: view:purchase.order.line_invoice:0 @@ -160,7 +160,7 @@ msgstr "Tarjouspyynnöt" #. module: purchase #: selection:purchase.config.wizard,default_method:0 msgid "Based on Receptions" -msgstr "" +msgstr "Perustuen vastaanottoihin" #. module: purchase #: field:purchase.order,company_id:0 field:purchase.order.line,company_id:0 @@ -231,7 +231,7 @@ msgstr "Ostojen ominaisuudet" #. module: purchase #: model:ir.model,name:purchase.model_stock_partial_picking msgid "Partial Picking Processing Wizard" -msgstr "" +msgstr "Osittaiskeräilyn hallinan avustaja" #. module: purchase #: view:purchase.order.line:0 @@ -251,17 +251,17 @@ msgstr "Päivä" #. module: purchase #: selection:purchase.order,invoice_method:0 msgid "Based on generated draft invoice" -msgstr "" +msgstr "Perustuu luotuun luonnoslaskuun" #. module: purchase #: view:purchase.report:0 msgid "Order of Day" -msgstr "" +msgstr "Päivän tilaus" #. module: purchase #: view:board.board:0 msgid "Monthly Purchases by Category" -msgstr "" +msgstr "Kuukausittaiset ostot kategorioittain" #. module: purchase #: model:ir.actions.act_window,name:purchase.action_purchase_line_product_tree @@ -271,7 +271,7 @@ msgstr "Ostot" #. module: purchase #: view:purchase.order:0 msgid "Purchase order which are in draft state" -msgstr "" +msgstr "Ostotilaukset jotka ovat luonnostilassa" #. module: purchase #: view:purchase.order:0 @@ -395,6 +395,8 @@ msgstr "Varastosiirto" #, python-format msgid "You must first cancel all invoices related to this purchase order." msgstr "" +"Sinun pitää ensin peruuttaa kaikki laskut jotka liittyvät tähän " +"ostotilaukseen" #. module: purchase #: field:purchase.report,dest_address_id:0 @@ -438,13 +440,15 @@ msgstr "Vahvistaja" #. module: purchase #: view:purchase.report:0 msgid "Order in last month" -msgstr "" +msgstr "Tilaukset viimekuussa" #. module: purchase #: code:addons/purchase/purchase.py:412 #, python-format msgid "You must first cancel all receptions related to this purchase order." msgstr "" +"Sinun pitää ensin peruuttaa kaikki vastaanotot jotka liittyvät tähän " +"ostotilaukseen" #. module: purchase #: selection:purchase.order.line,state:0 @@ -469,7 +473,7 @@ msgstr "Merkitsee että keräilylista on tehty" #. module: purchase #: view:purchase.order:0 msgid "Purchase orders which are in exception state" -msgstr "" +msgstr "Ostotilaukset jotka ovat poikkeustilassa" #. module: purchase #: report:purchase.order:0 field:purchase.report,validator:0 @@ -490,7 +494,7 @@ msgstr "Keskimääräinen hinta" #. module: purchase #: view:stock.picking:0 msgid "Incoming Shipments already processed" -msgstr "" +msgstr "Jo käsitellyt saapuvat toimitukset" #. module: purchase #: report:purchase.order:0 @@ -508,7 +512,7 @@ msgstr "Vahvista" #: model:ir.ui.menu,name:purchase.menu_action_picking_tree4_picking_to_invoice #: selection:purchase.order,invoice_method:0 msgid "Based on receptions" -msgstr "" +msgstr "Perustuu vastaanottoihin" #. module: purchase #: constraint:res.company:0 @@ -543,7 +547,7 @@ msgstr "" #. module: purchase #: view:purchase.order:0 msgid "Purchase order which are in the exception state" -msgstr "" +msgstr "Ostotilaus joka on poikkeustilassa" #. module: purchase #: model:ir.actions.act_window,help:purchase.action_stock_move_report_po @@ -599,12 +603,12 @@ msgstr "Hinta Yhteensä" #. module: purchase #: model:ir.actions.act_window,name:purchase.action_import_create_supplier_installer msgid "Create or Import Suppliers" -msgstr "" +msgstr "Luo tai tuo toimittajia" #. module: purchase #: view:stock.picking:0 msgid "Available" -msgstr "" +msgstr "Saatavissa" #. module: purchase #: field:purchase.report,partner_address_id:0 @@ -632,7 +636,7 @@ msgstr "Virhe!" #. module: purchase #: constraint:stock.move:0 msgid "You can not move products from or to a location of the type view." -msgstr "" +msgstr "Et voi siirtää tuotteita paikkaan tai paikasta tässä näkymässä." #. module: purchase #: code:addons/purchase/purchase.py:737 @@ -681,7 +685,7 @@ msgstr "" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_configuration_misc msgid "Miscellaneous" -msgstr "" +msgstr "Sekalaiset" #. module: purchase #: code:addons/purchase/purchase.py:769 @@ -752,7 +756,7 @@ msgstr "Vastaanotot" #: code:addons/purchase/purchase.py:285 #, python-format msgid "You cannot confirm a purchase order without any lines." -msgstr "" +msgstr "Et voi vahvistaa ostotilausta jolla ei ole rivejä." #. module: purchase #: model:ir.actions.act_window,help:purchase.action_invoice_pending @@ -777,7 +781,7 @@ msgstr "Tarjouspyyntö" #: code:addons/purchase/edi/purchase_order.py:139 #, python-format msgid "EDI Pricelist (%s)" -msgstr "" +msgstr "EDI hinnasto (%s)" #. module: purchase #: selection:purchase.order,state:0 @@ -792,7 +796,7 @@ msgstr "Tammikuu" #. module: purchase #: model:ir.actions.server,name:purchase.ir_actions_server_edi_purchase msgid "Auto-email confirmed purchase orders" -msgstr "" +msgstr "Automaattinen sähköpostivahvistus ostotilauksista" #. module: purchase #: model:process.transition,name:purchase.process_transition_approvingpurchaseorder0 @@ -831,7 +835,7 @@ msgstr "Määrä" #. module: purchase #: view:purchase.report:0 msgid "Month-1" -msgstr "" +msgstr "Edellinen kuukausi" #. module: purchase #: help:purchase.order,minimum_planned_date:0 @@ -850,7 +854,7 @@ msgstr "Ostotilausten Yhdistäminen" #. module: purchase #: view:purchase.report:0 msgid "Order in current month" -msgstr "" +msgstr "Tämän kuukauden tilaukset" #. module: purchase #: view:purchase.report:0 field:purchase.report,delay_pass:0 @@ -891,7 +895,7 @@ msgstr "Ostotilaus rivejä käyttäjittäin ja kuukausittain yhteensä" #. module: purchase #: view:purchase.order:0 msgid "Approved purchase orders" -msgstr "" +msgstr "Hyväksytyt ostotilaukset" #. module: purchase #: view:purchase.report:0 field:purchase.report,month:0 @@ -921,7 +925,7 @@ msgstr "Veroton Summa" #. module: purchase #: model:res.groups,name:purchase.group_purchase_user msgid "User" -msgstr "" +msgstr "Käyttäjä" #. module: purchase #: field:purchase.order,shipped:0 field:purchase.order,shipped_rate:0 @@ -942,7 +946,7 @@ msgstr "Tässä on pakkauslistat jotka on luotu tälle ostotilaukselle" #. module: purchase #: view:stock.picking:0 msgid "Is a Back Order" -msgstr "" +msgstr "on tilattava" #. module: purchase #: model:process.node,note:purchase.process_node_invoiceafterpacking0 @@ -989,12 +993,12 @@ msgstr "Tilauksen tila" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_product_category_config_purchase msgid "Product Categories" -msgstr "" +msgstr "Tuotekategoriat" #. module: purchase #: selection:purchase.config.wizard,default_method:0 msgid "Pre-Generate Draft Invoices based on Purchase Orders" -msgstr "" +msgstr "Luo almiiksi luonnoslaskut ostotilausten perusteella" #. module: purchase #: model:ir.actions.act_window,name:purchase.action_view_purchase_line_invoice @@ -1004,7 +1008,7 @@ msgstr "Muodosta laskut" #. module: purchase #: sql_constraint:res.company:0 msgid "The company name must be unique !" -msgstr "" +msgstr "Yrityksen nimen pitää olla uniikki!" #. module: purchase #: model:ir.model,name:purchase.model_purchase_order_line @@ -1020,7 +1024,7 @@ msgstr "Kalenterinäkymä" #. module: purchase #: selection:purchase.config.wizard,default_method:0 msgid "Based on Purchase Order Lines" -msgstr "" +msgstr "Perustuu ostotilausriveihin" #. module: purchase #: help:purchase.order,amount_untaxed:0 @@ -1032,6 +1036,7 @@ msgstr "Veroton Summa" #, python-format msgid "Selected UOM does not belong to the same category as the product UOM" msgstr "" +"Valittu mittayksikkö ei kuulu samaan kategoriaan kuin tuotteen mittayksikkö" #. module: purchase #: code:addons/purchase/purchase.py:907 @@ -1105,7 +1110,7 @@ msgstr "" #: model:ir.actions.act_window,name:purchase.action_email_templates #: model:ir.ui.menu,name:purchase.menu_email_templates msgid "Email Templates" -msgstr "" +msgstr "Sähköpostin mallipohjat" #. module: purchase #: model:ir.model,name:purchase.model_purchase_report @@ -1126,7 +1131,7 @@ msgstr "Laskunhallinta" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_purchase_uom_categ_form_action msgid "UoM Categories" -msgstr "" +msgstr "Mittayksikkökategoriat" #. module: purchase #: selection:purchase.report,month:0 @@ -1141,7 +1146,7 @@ msgstr "Laajennetut Suotimet..." #. module: purchase #: view:purchase.config.wizard:0 msgid "Invoicing Control on Purchases" -msgstr "" +msgstr "Laskujen kontrolli ostoissa" #. module: purchase #: code:addons/purchase/wizard/purchase_order_group.py:48 @@ -1156,6 +1161,9 @@ msgid "" "can import your existing partners by CSV spreadsheet from \"Import Data\" " "wizard" msgstr "" +"Luo tai tuo toimittajia ja heiden kontaktitietojaan käsin tällä lomakkeella " +"tai voit tuoda olemassaolevat kumppanit CSV tiedostona taulukosta \"tuo " +"tiedot\" avustajan avulla." #. module: purchase #: model:process.transition,name:purchase.process_transition_createpackinglist0 @@ -1180,12 +1188,12 @@ msgstr "Laske" #. module: purchase #: view:stock.picking:0 msgid "Incoming Shipments Available" -msgstr "" +msgstr "Saapuvia toimituksia saatavilla" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_purchase_partner_cat msgid "Address Book" -msgstr "" +msgstr "Osoitekirja" #. module: purchase #: model:ir.model,name:purchase.model_res_company @@ -1201,7 +1209,7 @@ msgstr "Peru ostotilaus" #: code:addons/purchase/purchase.py:411 code:addons/purchase/purchase.py:418 #, python-format msgid "Unable to cancel this purchase order!" -msgstr "" +msgstr "Ei voi peruuttaa tätä ostotilausta!" #. module: purchase #: model:process.transition,note:purchase.process_transition_createpackinglist0 @@ -1225,7 +1233,7 @@ msgstr "Työpöytä" #. module: purchase #: sql_constraint:stock.picking:0 msgid "Reference must be unique per Company!" -msgstr "" +msgstr "Viitteen tulee olla uniikki yrityskohtaisesti!" #. module: purchase #: view:purchase.report:0 field:purchase.report,price_standard:0 @@ -1235,7 +1243,7 @@ msgstr "Tuotteiden arvo" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_partner_categories_in_form msgid "Partner Categories" -msgstr "" +msgstr "Kumppanien kategoriat" #. module: purchase #: help:purchase.order,amount_tax:0 @@ -1285,7 +1293,7 @@ msgstr "Viittaus dokumenttiin joka loi tämän ostotilauspyynnön." #. module: purchase #: view:purchase.order:0 msgid "Purchase orders which are not approved yet." -msgstr "" +msgstr "Ostotilaukset joita ei ole vielä hyväksytty." #. module: purchase #: help:purchase.order,state:0 @@ -1348,7 +1356,7 @@ msgstr "Yleiset tiedot" #. module: purchase #: view:purchase.order:0 msgid "Not invoiced" -msgstr "" +msgstr "Ei laskutettu" #. module: purchase #: report:purchase.order:0 field:purchase.order.line,price_unit:0 @@ -1409,7 +1417,7 @@ msgstr "Ostotilaukset" #. module: purchase #: sql_constraint:purchase.order:0 msgid "Order Reference must be unique per Company!" -msgstr "" +msgstr "Tilausviitteen tulee olla uniikki yrityskohtaisesti!" #. module: purchase #: field:purchase.order,origin:0 @@ -1450,7 +1458,7 @@ msgstr "Puh.:" #. module: purchase #: view:purchase.report:0 msgid "Order of Month" -msgstr "" +msgstr "Kuukauden tilaus" #. module: purchase #: report:purchase.order:0 @@ -1465,7 +1473,7 @@ msgstr "Etsi ostotilaus" #. module: purchase #: model:ir.actions.act_window,name:purchase.action_purchase_config msgid "Set the Default Invoicing Control Method" -msgstr "" +msgstr "Aseta laskutuksen oletuskontrolli metodi" #. module: purchase #: model:process.node,note:purchase.process_node_draftpurchaseorder0 @@ -1491,7 +1499,7 @@ msgstr "Odottaa toimittajan vahvistusta" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_procurement_management_pending_invoice msgid "Based on draft invoices" -msgstr "" +msgstr "Perustuu luonnoslaskuihin" #. module: purchase #: view:purchase.order:0 @@ -1505,6 +1513,7 @@ msgid "" "The selected supplier has a minimal quantity set to %s %s, you should not " "purchase less." msgstr "" +"Valitulla toimittajalla on minimimäärä %s %s, sinun ei tulisi tilata vähempää" #. module: purchase #: field:purchase.order.line,date_planned:0 @@ -1533,7 +1542,7 @@ msgstr "Kuvaus" #. module: purchase #: view:purchase.report:0 msgid "Order of Year" -msgstr "" +msgstr "Vuoden tilaukset" #. module: purchase #: report:purchase.quotation:0 @@ -1543,7 +1552,7 @@ msgstr "Odotettu toimitusosoite:" #. module: purchase #: view:stock.picking:0 msgid "Journal" -msgstr "" +msgstr "Päiväkirja" #. module: purchase #: model:ir.actions.act_window,name:purchase.action_stock_move_report_po @@ -1575,7 +1584,7 @@ msgstr "Toimitus" #. module: purchase #: view:purchase.order:0 msgid "Purchase orders which are in done state." -msgstr "" +msgstr "Ostotilaukset jotka ovat valmis tilassa" #. module: purchase #: field:purchase.order.line,product_uom:0 @@ -1610,7 +1619,7 @@ msgstr "Varaus" #. module: purchase #: view:purchase.order:0 msgid "Purchase orders that include lines not invoiced." -msgstr "" +msgstr "Ostotilaukset jotka sisältävät laskuttamattomia rivejä" #. module: purchase #: view:purchase.order:0 @@ -1620,7 +1629,7 @@ msgstr "Veroton summa" #. module: purchase #: view:stock.picking:0 msgid "Picking to Invoice" -msgstr "" +msgstr "Laskutettavat keräilyt" #. module: purchase #: view:purchase.config.wizard:0 @@ -1628,6 +1637,8 @@ msgid "" "This tool will help you to select the method you want to use to control " "supplier invoices." msgstr "" +"Tämä työkalu auttaa sinua valitsemaan metodin jota käytetään toimittajien " +"laskujen kontrollointiin." #. module: purchase #: model:process.transition,note:purchase.process_transition_confirmingpurchaseorder1 @@ -1713,7 +1724,7 @@ msgstr "Oston standardihinta" #. module: purchase #: field:purchase.config.wizard,default_method:0 msgid "Default Invoicing Control Method" -msgstr "" +msgstr "Oletusarvoinen laskujen kontrolli metodi" #. module: purchase #: model:product.pricelist.type,name:purchase.pricelist_type_purchase @@ -1729,7 +1740,7 @@ msgstr "Laskujen hallinta" #. module: purchase #: view:stock.picking:0 msgid "Back Orders" -msgstr "" +msgstr "Jälkitilaukset" #. module: purchase #: model:process.transition.action,name:purchase.process_transition_action_approvingpurchaseorder0 @@ -1777,7 +1788,7 @@ msgstr "Hinnaston versiot" #. module: purchase #: constraint:res.partner:0 msgid "Error ! You cannot create recursive associated members." -msgstr "" +msgstr "Virhe! Rekursiivisen kumppanin luonti ei ole sallittu." #. module: purchase #: code:addons/purchase/purchase.py:359 @@ -1866,7 +1877,7 @@ msgstr "" #. module: purchase #: view:purchase.order:0 msgid "Purchase orders which are in draft state" -msgstr "" +msgstr "Luonnostilassa olevat ostotilaukset" #. module: purchase #: selection:purchase.report,month:0 @@ -1876,7 +1887,7 @@ msgstr "Toukokuu" #. module: purchase #: model:res.groups,name:purchase.group_purchase_manager msgid "Manager" -msgstr "" +msgstr "Päällikkö" #. module: purchase #: view:purchase.config.wizard:0 @@ -1886,7 +1897,7 @@ msgstr "" #. module: purchase #: view:purchase.report:0 msgid "Order in current year" -msgstr "" +msgstr "Kuluvan vuoden tilaukset" #. module: purchase #: model:process.process,name:purchase.process_process_purchaseprocess0 @@ -1903,7 +1914,7 @@ msgstr "Vuosi" #: model:ir.ui.menu,name:purchase.menu_purchase_line_order_draft #: selection:purchase.order,invoice_method:0 msgid "Based on Purchase Order lines" -msgstr "" +msgstr "Perustuu ostotilausriveihin" #. module: purchase #: model:ir.actions.todo.category,name:purchase.category_purchase_config diff --git a/addons/stock/i18n/es_EC.po b/addons/stock/i18n/es_EC.po index ffbdc0a852e..a98b7b63ff9 100644 --- a/addons/stock/i18n/es_EC.po +++ b/addons/stock/i18n/es_EC.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-24 04:29+0000\n" +"Last-Translator: Cristian Salamea (Gnuthink) \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 07:09+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-25 06:12+0000\n" +"X-Generator: Launchpad (build 14981)\n" #. module: stock #: field:product.product,track_outgoing:0 @@ -25,7 +25,7 @@ msgstr "Lotes de seguimiento de salida" #. module: stock #: model:ir.model,name:stock.model_stock_move_split_lines msgid "Stock move Split lines" -msgstr "" +msgstr "Dividir movimiento de inventario" #. module: stock #: help:product.category,property_stock_account_input_categ:0 @@ -36,6 +36,11 @@ msgid "" "value for all products in this category. It can also directly be set on each " "product" msgstr "" +"Configurando valoración en tiempo real, diario de contraparte para todos los " +"movimientos de inventario serán cargados en esta cuenta, a menos que haya " +"una cuenta de valoración específica en la ubicación.\r\n" +"Este valor es por defecto para todos los productos en esta categoría. Y " +"también se puede configurar en cada producto." #. module: stock #: field:stock.location,chained_location_id:0 @@ -57,7 +62,7 @@ msgstr "Trazabilidad hacia arriba" #. module: stock #: model:ir.actions.todo.category,name:stock.category_stock_management_config msgid "Stock Management" -msgstr "" +msgstr "Gestión de Inventario" #. module: stock #: model:ir.actions.act_window,name:stock.action_stock_line_date @@ -78,7 +83,7 @@ msgstr "Número de revisión" #. module: stock #: view:stock.move:0 msgid "Orders processed Today or planned for Today" -msgstr "" +msgstr "Ordenes procesadas o planificadas para hoy" #. module: stock #: view:stock.partial.move.line:0 view:stock.partial.picking:0 @@ -90,7 +95,7 @@ msgstr "Movimientos de Productos" #. module: stock #: model:ir.ui.menu,name:stock.menu_stock_uom_categ_form_action msgid "UoM Categories" -msgstr "" +msgstr "Categorías UdM" #. module: stock #: model:ir.actions.act_window,name:stock.action_stock_move_report @@ -112,7 +117,7 @@ msgstr "" #: code:addons/stock/wizard/stock_fill_inventory.py:47 #, python-format msgid "You cannot perform this operation on more than one Stock Inventories." -msgstr "" +msgstr "No puedes realizar esta operación en más de un Inventario de Stock." #. module: stock #: model:ir.actions.act_window,help:stock.action_inventory_form @@ -130,7 +135,7 @@ msgstr "" #: code:addons/stock/wizard/stock_change_product_qty.py:87 #, python-format msgid "Quantity cannot be negative." -msgstr "" +msgstr "Cantidad no puede ser negativo" #. module: stock #: view:stock.picking:0 @@ -192,13 +197,13 @@ msgstr "Diario de inventario" #. module: stock #: view:report.stock.inventory:0 view:report.stock.move:0 msgid "Current month" -msgstr "" +msgstr "Mes actual" #. module: stock #: code:addons/stock/wizard/stock_move.py:222 #, python-format msgid "Unable to assign all lots to this move!" -msgstr "" +msgstr "No se puede asignar todos los lotes en este movimiento" #. module: stock #: code:addons/stock/stock.py:2516 @@ -221,18 +226,18 @@ msgstr "Usted no puede borrar ningun registro!" #. module: stock #: view:stock.picking:0 msgid "Delivery orders to invoice" -msgstr "" +msgstr "Envíos por facturar" #. module: stock #: view:stock.picking:0 msgid "Assigned Delivery Orders" -msgstr "" +msgstr "Ordenes de Entrega Asignadas" #. module: stock #: field:stock.partial.move.line,update_cost:0 #: field:stock.partial.picking.line,update_cost:0 msgid "Need cost update" -msgstr "" +msgstr "Necesita actualizar el costo" #. module: stock #: code:addons/stock/wizard/stock_splitinto.py:49 @@ -303,7 +308,7 @@ msgstr "" #. module: stock #: view:stock.partial.move:0 view:stock.partial.picking:0 msgid "_Validate" -msgstr "" +msgstr "_Validar" #. module: stock #: code:addons/stock/stock.py:1149 @@ -344,6 +349,8 @@ msgid "" "Can not create Journal Entry, Input Account defined on this product and " "Valuation account on category of this product are same." msgstr "" +"No puede crear un asiento de diario, la cuenta contable definida en el " +"producto y la valoración en la categoría de producto es la misma" #. module: stock #: selection:stock.return.picking,invoice_state:0 @@ -353,7 +360,7 @@ msgstr "No Facturado" #. module: stock #: view:stock.move:0 msgid "Stock moves that have been processed" -msgstr "" +msgstr "Los movimientos han sido procesados." #. module: stock #: model:ir.model,name:stock.model_stock_production_lot @@ -375,7 +382,7 @@ msgstr "Movimientos para este empaquetado" #. module: stock #: view:stock.picking:0 msgid "Incoming Shipments Available" -msgstr "" +msgstr "Envíos por Recibir" #. module: stock #: selection:report.stock.inventory,location_type:0 @@ -407,7 +414,7 @@ msgstr "Estado" #. module: stock #: view:stock.location:0 msgid "Accounting Information" -msgstr "" +msgstr "Información Contable" #. module: stock #: field:stock.location,stock_real_value:0 @@ -474,7 +481,7 @@ msgstr "Dividir en" #. module: stock #: view:stock.location:0 msgid "Internal Locations" -msgstr "" +msgstr "Ubicaciones Internas" #. module: stock #: field:stock.move,price_currency_id:0 @@ -560,7 +567,7 @@ msgstr "Ubicación destino" #. module: stock #: model:ir.model,name:stock.model_stock_partial_move_line msgid "stock.partial.move.line" -msgstr "" +msgstr "Detalle de movimiento parcial" #. module: stock #: code:addons/stock/stock.py:760 @@ -616,7 +623,7 @@ msgstr "Ubicación / Producto" #. module: stock #: field:stock.move,address_id:0 msgid "Destination Address " -msgstr "" +msgstr "Dirección Destino " #. module: stock #: code:addons/stock/stock.py:1333 @@ -788,7 +795,7 @@ msgstr "Procesar Albarán" #. module: stock #: sql_constraint:stock.picking:0 msgid "Reference must be unique per Company!" -msgstr "" +msgstr "¡La referencia debe ser única por Compañia!" #. module: stock #: code:addons/stock/product.py:417 @@ -816,6 +823,7 @@ msgstr "" #, python-format msgid "Valuation Account is not specified for Product Category: %s" msgstr "" +"Cuenta de valoración no especificada en la categoría del Producto: %s" #. module: stock #: field:stock.move,move_dest_id:0 @@ -884,12 +892,12 @@ msgstr "Movimiento automático" #: model:ir.model,name:stock.model_stock_change_product_qty #: view:stock.change.product.qty:0 msgid "Change Product Quantity" -msgstr "" +msgstr "Cambiar cantidad producto" #. module: stock #: field:report.stock.inventory,month:0 msgid "unknown" -msgstr "" +msgstr "Desconocido" #. module: stock #: model:ir.model,name:stock.model_stock_inventory_merge @@ -949,7 +957,7 @@ msgstr "Buscar Paquete" #. module: stock #: view:stock.picking:0 msgid "Pickings already processed" -msgstr "" +msgstr "Picking ya procesado" #. module: stock #: field:stock.partial.move.line,currency:0 @@ -966,7 +974,7 @@ msgstr "Diario" #: code:addons/stock/stock.py:1345 #, python-format msgid "is scheduled %s." -msgstr "" +msgstr "está programado %s." #. module: stock #: help:stock.picking,location_id:0 @@ -992,7 +1000,7 @@ msgstr "Plazo de ejecución (Días)" #. module: stock #: model:ir.model,name:stock.model_stock_partial_move msgid "Partial Move Processing Wizard" -msgstr "" +msgstr "Asistente para Movimientos Parciales" #. module: stock #: model:ir.actions.act_window,name:stock.act_stock_product_location_open @@ -1031,7 +1039,7 @@ msgstr "" #. module: stock #: view:stock.picking:0 msgid "Confirmed Pickings" -msgstr "" +msgstr "Pickings Confirmados" #. module: stock #: field:stock.location,stock_virtual:0 @@ -1047,7 +1055,7 @@ msgstr "Vista" #. module: stock #: view:report.stock.inventory:0 view:report.stock.move:0 msgid "Last month" -msgstr "" +msgstr "Último mes" #. module: stock #: field:stock.location,parent_left:0 @@ -1057,13 +1065,13 @@ msgstr "Padre izquierdo" #. module: stock #: field:product.category,property_stock_valuation_account_id:0 msgid "Stock Valuation Account" -msgstr "" +msgstr "Cuenta de Valoración" #. module: stock #: code:addons/stock/stock.py:1349 #, python-format msgid "is waiting." -msgstr "" +msgstr "en espera" #. module: stock #: constraint:product.product:0 @@ -1173,6 +1181,7 @@ msgid "" "In order to cancel this inventory, you must first unpost related journal " "entries." msgstr "" +"Para cancelar el inventario, debes primero cancelar el asiento relacionado." #. module: stock #: field:stock.picking,date_done:0 @@ -1190,7 +1199,7 @@ msgstr "" #. module: stock #: view:stock.move:0 msgid "Stock moves that are Available (Ready to process)" -msgstr "" +msgstr "Movimientos que están disponibles" #. module: stock #: report:stock.picking.list:0 @@ -1254,7 +1263,7 @@ msgstr "Ubicaciones de empresas" #. module: stock #: view:report.stock.inventory:0 view:report.stock.move:0 msgid "Current year" -msgstr "" +msgstr "Año actual" #. module: stock #: view:report.stock.inventory:0 view:report.stock.move:0 @@ -1310,7 +1319,7 @@ msgstr "Lista Albaranes:" #. module: stock #: selection:stock.move,state:0 msgid "Waiting Another Move" -msgstr "" +msgstr "Esperando Otro movimiento" #. module: stock #: help:product.template,property_stock_production:0 @@ -1326,7 +1335,7 @@ msgstr "" #. module: stock #: view:product.product:0 msgid "Expected Stock Variations" -msgstr "" +msgstr "Variaciones de inventario previstos" #. module: stock #: help:stock.move,price_unit:0 @@ -1349,6 +1358,9 @@ msgid "" "This is the list of all your packs. When you select a Pack, you can get the " "upstream or downstream traceability of the products contained in the pack." msgstr "" +"Esta es la lista de todos sus movimientos. Cuando selecciona un movimiento, " +"puede obtener la trazabilidad hacia arriba o hacia abajo de los productos " +"que forman este paquete." #. module: stock #: selection:stock.return.picking,invoice_state:0 @@ -1399,7 +1411,7 @@ msgstr "De" #. module: stock #: view:stock.picking:0 msgid "Incoming Shipments already processed" -msgstr "" +msgstr "Envíos entrantes ya procesados" #. module: stock #: code:addons/stock/wizard/stock_return_picking.py:99 @@ -1452,7 +1464,7 @@ msgstr "Tipo" #. module: stock #: view:stock.picking:0 msgid "Available Pickings" -msgstr "" +msgstr "Picking Disponibles" #. module: stock #: model:stock.location,name:stock.stock_location_5 @@ -1462,7 +1474,7 @@ msgstr "Proveedores TI genéricos" #. module: stock #: view:stock.move:0 msgid "Stock to be receive" -msgstr "" +msgstr "Inventario a Recibir" #. module: stock #: help:stock.location,valuation_out_account_id:0 @@ -1477,7 +1489,7 @@ msgstr "" #. module: stock #: report:stock.picking.list:0 msgid "Picking List:" -msgstr "" +msgstr "Lista de Pedidos:" #. module: stock #: field:stock.inventory,date:0 field:stock.move,create_date:0 diff --git a/addons/stock/i18n/fi.po b/addons/stock/i18n/fi.po index 2c261d7bc50..efd4e405437 100644 --- a/addons/stock/i18n/fi.po +++ b/addons/stock/i18n/fi.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2012-03-26 10:47+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 07:07+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-27 05:37+0000\n" +"X-Generator: Launchpad (build 15011)\n" #. module: stock #: field:product.product,track_outgoing:0 @@ -25,7 +25,7 @@ msgstr "Jäljitä lähtevät erät" #. module: stock #: model:ir.model,name:stock.model_stock_move_split_lines msgid "Stock move Split lines" -msgstr "" +msgstr "Varastosiirtojen jakorivit" #. module: stock #: help:product.category,property_stock_account_input_categ:0 @@ -78,7 +78,7 @@ msgstr "Reviisionumero" #. module: stock #: view:stock.move:0 msgid "Orders processed Today or planned for Today" -msgstr "" +msgstr "Tänään käsitellyt tai tälle päivälle suunnitellut tilaukset" #. module: stock #: view:stock.partial.move.line:0 view:stock.partial.picking:0 @@ -90,7 +90,7 @@ msgstr "Tuotesiirrot" #. module: stock #: model:ir.ui.menu,name:stock.menu_stock_uom_categ_form_action msgid "UoM Categories" -msgstr "" +msgstr "Mittayksikkökategoriat" #. module: stock #: model:ir.actions.act_window,name:stock.action_stock_move_report @@ -129,7 +129,7 @@ msgstr "" #: code:addons/stock/wizard/stock_change_product_qty.py:87 #, python-format msgid "Quantity cannot be negative." -msgstr "" +msgstr "Määrä ei voi olla negatiivinen" #. module: stock #: view:stock.picking:0 @@ -191,13 +191,13 @@ msgstr "Varastopäiväkirja" #. module: stock #: view:report.stock.inventory:0 view:report.stock.move:0 msgid "Current month" -msgstr "" +msgstr "Kuluva kuukausi" #. module: stock #: code:addons/stock/wizard/stock_move.py:222 #, python-format msgid "Unable to assign all lots to this move!" -msgstr "" +msgstr "Ei voi yhdistää kaikkia eriä tällä siirrolle!" #. module: stock #: code:addons/stock/stock.py:2516 @@ -220,18 +220,18 @@ msgstr "Et voi poistaa tietueita!" #. module: stock #: view:stock.picking:0 msgid "Delivery orders to invoice" -msgstr "" +msgstr "Laskutettavat toimitustilaukset" #. module: stock #: view:stock.picking:0 msgid "Assigned Delivery Orders" -msgstr "" +msgstr "Määritellyt toimitustilaukset" #. module: stock #: field:stock.partial.move.line,update_cost:0 #: field:stock.partial.picking.line,update_cost:0 msgid "Need cost update" -msgstr "" +msgstr "Tarvitaan kustannuspäivitystä" #. module: stock #: code:addons/stock/wizard/stock_splitinto.py:49 @@ -269,7 +269,7 @@ msgstr "Saapuvat tuotteet" #. module: stock #: view:report.stock.lines.date:0 msgid "Non Inv" -msgstr "" +msgstr "Ei laskutetut" #. module: stock #: code:addons/stock/wizard/stock_traceability.py:54 @@ -350,7 +350,7 @@ msgstr "Ei laskutusta" #. module: stock #: view:stock.move:0 msgid "Stock moves that have been processed" -msgstr "" +msgstr "Varastosiirrot jotka on käsitelty" #. module: stock #: model:ir.model,name:stock.model_stock_production_lot @@ -372,7 +372,7 @@ msgstr "Siirrot tähän pakkaukseen" #. module: stock #: view:stock.picking:0 msgid "Incoming Shipments Available" -msgstr "" +msgstr "Saapuvia toimituksia saatavilla" #. module: stock #: selection:report.stock.inventory,location_type:0 @@ -467,7 +467,7 @@ msgstr "Jaa osiin" #. module: stock #: view:stock.location:0 msgid "Internal Locations" -msgstr "" +msgstr "Sisäiset paikat" #. module: stock #: field:stock.move,price_currency_id:0 @@ -608,7 +608,7 @@ msgstr "Sijainti / Tuote" #. module: stock #: field:stock.move,address_id:0 msgid "Destination Address " -msgstr "" +msgstr "Kohdeosoite " #. module: stock #: code:addons/stock/stock.py:1333 @@ -673,7 +673,7 @@ msgstr "" #. module: stock #: field:stock.move.split.lines,wizard_exist_id:0 msgid "Parent Wizard (for existing lines)" -msgstr "" +msgstr "ylätason auvsta (olemassaoleville riveille)" #. module: stock #: view:stock.move:0 view:stock.picking:0 @@ -687,6 +687,7 @@ msgid "" "There is no inventory Valuation account defined on the product category: " "\"%s\" (id: %d)" msgstr "" +"Varastonarvostustiliä ei ole määritelty tuotekategorialle: \"%s (id: %d)" #. module: stock #: view:report.stock.move:0 @@ -744,7 +745,7 @@ msgstr "Vastaanottaja" #. module: stock #: model:stock.location,name:stock.location_refrigerator msgid "Refrigerator" -msgstr "" +msgstr "Jääkaappi" #. module: stock #: model:ir.actions.act_window,name:stock.action_location_tree @@ -779,7 +780,7 @@ msgstr "Prosessoi keräily." #. module: stock #: sql_constraint:stock.picking:0 msgid "Reference must be unique per Company!" -msgstr "" +msgstr "Viitteen tulee olla uniikki yrityskohtaisesti!" #. module: stock #: code:addons/stock/product.py:417 @@ -806,7 +807,7 @@ msgstr "" #: code:addons/stock/product.py:75 #, python-format msgid "Valuation Account is not specified for Product Category: %s" -msgstr "" +msgstr "Arvostustiliä ei ole määritelty tuotekategorialle: %s" #. module: stock #: field:stock.move,move_dest_id:0 @@ -879,7 +880,7 @@ msgstr "Muuta tuotteen määrää" #. module: stock #: field:report.stock.inventory,month:0 msgid "unknown" -msgstr "" +msgstr "tuntematon" #. module: stock #: model:ir.model,name:stock.model_stock_inventory_merge @@ -939,7 +940,7 @@ msgstr "Etsi pakkaus" #. module: stock #: view:stock.picking:0 msgid "Pickings already processed" -msgstr "" +msgstr "Keräilyt jo hoidettu" #. module: stock #: field:stock.partial.move.line,currency:0 @@ -956,7 +957,7 @@ msgstr "Loki" #: code:addons/stock/stock.py:1345 #, python-format msgid "is scheduled %s." -msgstr "" +msgstr "on aikataulutettu %s." #. module: stock #: help:stock.picking,location_id:0 @@ -982,7 +983,7 @@ msgstr "Toiminnan viive (päivää)" #. module: stock #: model:ir.model,name:stock.model_stock_partial_move msgid "Partial Move Processing Wizard" -msgstr "" +msgstr "Osittaisen siirron käsittelyn avustaja" #. module: stock #: model:ir.actions.act_window,name:stock.act_stock_product_location_open @@ -1021,7 +1022,7 @@ msgstr "" #. module: stock #: view:stock.picking:0 msgid "Confirmed Pickings" -msgstr "" +msgstr "Vahvistetut keräilyt" #. module: stock #: field:stock.location,stock_virtual:0 @@ -1037,7 +1038,7 @@ msgstr "Näkymä" #. module: stock #: view:report.stock.inventory:0 view:report.stock.move:0 msgid "Last month" -msgstr "" +msgstr "Edellinen kuukausi" #. module: stock #: field:stock.location,parent_left:0 @@ -1047,13 +1048,13 @@ msgstr "Vasen ylempi" #. module: stock #: field:product.category,property_stock_valuation_account_id:0 msgid "Stock Valuation Account" -msgstr "" +msgstr "Varaston arvostustili" #. module: stock #: code:addons/stock/stock.py:1349 #, python-format msgid "is waiting." -msgstr "" +msgstr "odottaa" #. module: stock #: constraint:product.product:0 @@ -1156,7 +1157,7 @@ msgstr "" #. module: stock #: view:stock.move:0 msgid "Stock moves that are Available (Ready to process)" -msgstr "" +msgstr "Varastosiirrot jotka ovat saatavilla (valmiina käsiteltäviksi)" #. module: stock #: report:stock.picking.list:0 @@ -1220,7 +1221,7 @@ msgstr "Kumppanien paikat" #. module: stock #: view:report.stock.inventory:0 view:report.stock.move:0 msgid "Current year" -msgstr "" +msgstr "Nykyinen vuosi" #. module: stock #: view:report.stock.inventory:0 view:report.stock.move:0 @@ -1271,7 +1272,7 @@ msgstr "Pakkauslista:" #. module: stock #: selection:stock.move,state:0 msgid "Waiting Another Move" -msgstr "" +msgstr "Odottaa toista siirtoa" #. module: stock #: help:product.template,property_stock_production:0 @@ -1286,7 +1287,7 @@ msgstr "" #. module: stock #: view:product.product:0 msgid "Expected Stock Variations" -msgstr "" +msgstr "Odotetut varastomuutokset" #. module: stock #: help:stock.move,price_unit:0 @@ -1361,7 +1362,7 @@ msgstr "Mistä" #. module: stock #: view:stock.picking:0 msgid "Incoming Shipments already processed" -msgstr "" +msgstr "Jo käsitellyt saapuvat toimitukset" #. module: stock #: code:addons/stock/wizard/stock_return_picking.py:99 @@ -1416,7 +1417,7 @@ msgstr "Tyyppi" #. module: stock #: view:stock.picking:0 msgid "Available Pickings" -msgstr "" +msgstr "Saatavilla olevat keräilyt" #. module: stock #: model:stock.location,name:stock.stock_location_5 @@ -1426,7 +1427,7 @@ msgstr "Yleiset IT-toimittajat" #. module: stock #: view:stock.move:0 msgid "Stock to be receive" -msgstr "" +msgstr "Vastaanottava varasto" #. module: stock #: help:stock.location,valuation_out_account_id:0 @@ -1480,7 +1481,7 @@ msgstr "Voit poistaa ainoastaan luonnossiirtoja." #. module: stock #: model:ir.model,name:stock.model_stock_inventory_line_split_lines msgid "Inventory Split lines" -msgstr "" +msgstr "Varaston jakolinjat" #. module: stock #: model:ir.actions.report.xml,name:stock.report_location_overview @@ -1578,7 +1579,7 @@ msgstr "" #. module: stock #: model:ir.model,name:stock.model_stock_invoice_onshipping msgid "Stock Invoice Onshipping" -msgstr "" +msgstr "Varastolaskutus toimitettaessa" #. module: stock #: help:stock.move,state:0 @@ -1633,7 +1634,7 @@ msgstr "Varaston tilastot" #. module: stock #: view:report.stock.move:0 msgid "Month Planned" -msgstr "" +msgstr "Suunniteltu KK" #. module: stock #: field:product.product,track_production:0 @@ -1643,12 +1644,12 @@ msgstr "Seuraa valmistuseriä" #. module: stock #: view:stock.picking:0 msgid "Is a Back Order" -msgstr "" +msgstr "on tilattava" #. module: stock #: field:stock.location,valuation_out_account_id:0 msgid "Stock Valuation Account (Outgoing)" -msgstr "" +msgstr "Varaston arvostustili (lähtevä)" #. module: stock #: model:ir.actions.act_window,name:stock.act_product_stock_move_open @@ -1689,7 +1690,7 @@ msgstr "Luodut siirrot" #. module: stock #: field:stock.location,valuation_in_account_id:0 msgid "Stock Valuation Account (Incoming)" -msgstr "" +msgstr "Varaston arvostustili (saapuva)" #. module: stock #: model:stock.location,name:stock.stock_location_14 @@ -1745,7 +1746,7 @@ msgstr "" #. module: stock #: view:report.stock.move:0 msgid "Day Planned" -msgstr "" +msgstr "Suunniteltu päivä" #. module: stock #: view:report.stock.inventory:0 field:report.stock.inventory,date:0 @@ -1883,7 +1884,7 @@ msgstr "Varastonarvostus" #. module: stock #: view:stock.move:0 msgid "Orders planned for today" -msgstr "" +msgstr "Tälle päivälle suunnitellut tilaukset" #. module: stock #: view:stock.move:0 view:stock.picking:0 @@ -2029,12 +2030,12 @@ msgstr "Logistinen lähetysyksikkö: lava, laatikko, pakkaus ..." #. module: stock #: view:stock.location:0 msgid "Customer Locations" -msgstr "" +msgstr "Asiakkaiden sijainnit" #. module: stock #: view:stock.change.product.qty:0 view:stock.change.standard.price:0 msgid "_Apply" -msgstr "" +msgstr "_käytä" #. module: stock #: report:lot.stock.overview:0 report:lot.stock.overview_all:0 @@ -2088,7 +2089,7 @@ msgstr "Saapuvan varaston tili" #. module: stock #: view:report.stock.move:0 msgid "Shipping type specify, goods coming in or going out" -msgstr "" +msgstr "Määrittele toimitus, saapuva vai lähtevä" #. module: stock #: model:ir.ui.menu,name:stock.menu_stock_warehouse_mgmt @@ -2242,7 +2243,7 @@ msgstr "Lähetyksen tyyppi" #. module: stock #: view:stock.move:0 msgid "Stock moves that are Confirmed, Available or Waiting" -msgstr "" +msgstr "Varastosiirrot jotka on vahvisttu, saatavilla tai odottaa" #. module: stock #: model:ir.actions.act_window,name:stock.act_product_location_open @@ -2277,7 +2278,7 @@ msgstr "Paikka jonne järjestelmä varastoi valmiit tuotteet." #. module: stock #: view:stock.move:0 msgid "Stock to be delivered (Available or not)" -msgstr "" +msgstr "Toimitettava rasto (saatavilla tai ei)" #. module: stock #: view:board.board:0 @@ -2325,7 +2326,7 @@ msgstr "P&L Määrä" #. module: stock #: view:stock.picking:0 msgid "Internal Pickings to invoice" -msgstr "" +msgstr "Laskutettavat sisäiset keräilyt" #. module: stock #: view:stock.production.lot:0 field:stock.production.lot,revisions:0 @@ -2478,7 +2479,7 @@ msgstr "" #. module: stock #: model:stock.location,name:stock.location_opening msgid "opening" -msgstr "" +msgstr "Avaaminen" #. module: stock #: model:ir.actions.report.xml,name:stock.report_product_history @@ -2556,12 +2557,12 @@ msgstr "Uniikki tuotantoerä, näytetään muodossa: PREFIX/SERIAL [INT_REF]" #. module: stock #: model:stock.location,name:stock.stock_location_company msgid "Your Company" -msgstr "" +msgstr "Yrityksesi" #. module: stock #: constraint:stock.move:0 msgid "You can not move products from or to a location of the type view." -msgstr "" +msgstr "Et voi siirtää tuotteita paikkaan tai paikasta tässä näkymässä." #. module: stock #: help:stock.tracking,active:0 @@ -2637,7 +2638,7 @@ msgstr "" #. module: stock #: model:stock.location,name:stock.location_delivery_counter msgid "Delivery Counter" -msgstr "" +msgstr "Toimituslaskuri" #. module: stock #: view:report.stock.inventory:0 field:report.stock.inventory,prodlot_id:0 @@ -2654,7 +2655,7 @@ msgstr "Tuotantoerän numero" #: code:addons/stock/stock.py:2697 #, python-format msgid "Inventory '%s' is done." -msgstr "" +msgstr "Inventaario '%s' on tehty." #. module: stock #: field:stock.move,product_uos_qty:0 @@ -2667,6 +2668,7 @@ msgstr "Määrä (myyntiyksikköä)" msgid "" "You are moving %.2f %s products but only %.2f %s available in this lot." msgstr "" +"Siirrät %.2f %s tuotteita mutta vain %.2f %s on saatavilla tässä erässä." #. module: stock #: view:stock.move:0 @@ -2705,7 +2707,7 @@ msgstr "Virhe, ei kumppania!" #: field:stock.inventory.line.split.lines,wizard_id:0 #: field:stock.move.split.lines,wizard_id:0 msgid "Parent Wizard" -msgstr "" +msgstr "Ylätason avustaja" #. module: stock #: model:ir.actions.act_window,name:stock.action_incoterms_tree @@ -2901,7 +2903,7 @@ msgstr "Laskutus" #. module: stock #: view:stock.picking:0 msgid "Assigned Internal Moves" -msgstr "" +msgstr "Määritellyt sisäiset siirrot" #. module: stock #: code:addons/stock/stock.py:2379 code:addons/stock/stock.py:2440 @@ -2970,12 +2972,12 @@ msgstr "Tuotteet Kategorioittain" #. module: stock #: selection:stock.picking,state:0 msgid "Waiting Another Operation" -msgstr "" +msgstr "Odottaa toista toimintoa" #. module: stock #: view:stock.location:0 msgid "Supplier Locations" -msgstr "" +msgstr "Toimittajien sijainnit" #. module: stock #: field:stock.partial.move.line,wizard_id:0 @@ -2987,7 +2989,7 @@ msgstr "Velho" #. module: stock #: view:report.stock.move:0 msgid "Completed Stock-Moves" -msgstr "" +msgstr "Valmistuneet varastosiirrot" #. module: stock #: model:ir.actions.act_window,name:stock.action_view_stock_location_product @@ -3024,7 +3026,7 @@ msgstr "Tilaus" #. module: stock #: view:product.product:0 msgid "Cost Price :" -msgstr "" +msgstr "Kustannushinta :" #. module: stock #: field:stock.tracking,name:0 @@ -3041,7 +3043,7 @@ msgstr "Lähteen paikka" #. module: stock #: view:stock.move:0 msgid " Waiting" -msgstr "" +msgstr " Odottaa" #. module: stock #: view:product.template:0 @@ -3051,7 +3053,7 @@ msgstr "Kirjanpidon merkinnät" #. module: stock #: model:res.groups,name:stock.group_stock_manager msgid "Manager" -msgstr "" +msgstr "Päällikkö" #. module: stock #: report:stock.picking.list:0 @@ -3159,12 +3161,12 @@ msgstr "Syy" #. module: stock #: model:product.template,name:stock.product_icecream_product_template msgid "Ice Cream" -msgstr "" +msgstr "Jäätelö" #. module: stock #: model:ir.model,name:stock.model_stock_partial_picking msgid "Partial Picking Processing Wizard" -msgstr "" +msgstr "Osittaiskeräilyn hallinan avustaja" #. module: stock #: model:ir.actions.act_window,help:stock.action_production_lot_form @@ -3247,7 +3249,7 @@ msgstr "Peruttu" #. module: stock #: view:stock.picking:0 msgid "Confirmed Delivery Orders" -msgstr "" +msgstr "Vahvistetut toimitusmääräykset" #. module: stock #: view:stock.move:0 field:stock.partial.move,picking_id:0 @@ -3319,7 +3321,7 @@ msgstr "Toimitustilaukset" #. module: stock #: view:stock.picking:0 msgid "Delivery orders already processed" -msgstr "" +msgstr "Jo käsitellyt toimitusmääräykset" #. module: stock #: help:res.partner,property_stock_customer:0 @@ -3379,7 +3381,7 @@ msgstr "Liittyvä keräily" #. module: stock #: view:report.stock.move:0 msgid "Year Planned" -msgstr "" +msgstr "Suunniteltu vuosi" #. module: stock #: view:report.stock.move:0 @@ -3423,7 +3425,7 @@ msgstr "Määrä joka jätetään nykyiseen pakkaukseen" #. module: stock #: view:stock.move:0 msgid "Stock available to be delivered" -msgstr "" +msgstr "Saatavilla oleva varasto toimitettavaksi" #. module: stock #: model:ir.actions.act_window,name:stock.action_stock_invoice_onshipping @@ -3434,7 +3436,7 @@ msgstr "Luo lasku" #. module: stock #: view:stock.picking:0 msgid "Confirmed Internal Moves" -msgstr "" +msgstr "Vahvistetut sisäiset siirrot" #. module: stock #: model:ir.ui.menu,name:stock.menu_stock_configuration @@ -3486,7 +3488,7 @@ msgstr "Asiakkaat" #. module: stock #: selection:stock.move,state:0 selection:stock.picking,state:0 msgid "Waiting Availability" -msgstr "" +msgstr "Odottaa saatavuutta" #. module: stock #: code:addons/stock/stock.py:1347 @@ -3502,7 +3504,7 @@ msgstr "Varaston inventaarion rivit" #. module: stock #: view:stock.move:0 msgid "Waiting " -msgstr "" +msgstr "Odottaa " #. module: stock #: code:addons/stock/product.py:427 @@ -3548,7 +3550,7 @@ msgstr "Joulukuu" #. module: stock #: view:stock.production.lot:0 msgid "Available Product Lots" -msgstr "" +msgstr "Saatavilla olevat tuote-erät" #. module: stock #: model:ir.actions.act_window,help:stock.action_move_form2 @@ -3680,7 +3682,7 @@ msgstr "Aseta nollaksi" #. module: stock #: model:res.groups,name:stock.group_stock_user msgid "User" -msgstr "" +msgstr "Käyttäjä" #. module: stock #: code:addons/stock/wizard/stock_invoice_onshipping.py:98 @@ -3884,7 +3886,7 @@ msgstr "" #. module: stock #: view:report.stock.move:0 msgid "Future Stock-Moves" -msgstr "" +msgstr "Tulevat varastosiirrot" #. module: stock #: model:ir.model,name:stock.model_stock_move_split @@ -3895,7 +3897,7 @@ msgstr "Jaa valmistuseriin" #: code:addons/stock/wizard/stock_move.py:213 #, python-format msgid "Processing Error" -msgstr "" +msgstr "Prosessointivirhe" #. module: stock #: view:report.stock.inventory:0 @@ -3968,7 +3970,7 @@ msgstr "Tuotantoerän tunnus" #. module: stock #: model:stock.location,name:stock.location_refrigerator_small msgid "Small Refrigerator" -msgstr "" +msgstr "Pieni pakastin" #. module: stock #: model:stock.location,name:stock.location_convenience_shop @@ -4023,7 +4025,7 @@ msgstr "" #. module: stock #: constraint:res.partner:0 msgid "Error ! You cannot create recursive associated members." -msgstr "" +msgstr "Virhe! Rekursiivisen kumppanin luonti ei ole sallittu." #. module: stock #: code:addons/stock/wizard/stock_partial_picking.py:159 @@ -4040,11 +4042,12 @@ msgstr "" msgid "" "Production lot quantity %d of %s is larger than available quantity (%d) !" msgstr "" +"Tuote-erän määrä %d %s on suurempi kuin saatavilla oleva määrä (%d) !" #. module: stock #: constraint:product.category:0 msgid "Error ! You cannot create recursive categories." -msgstr "" +msgstr "Virhe! Et voi luoda rekursiivisia kategoroita." #. module: stock #: help:stock.move,move_dest_id:0 @@ -4065,10 +4068,10 @@ msgstr "Aineelliset paikat" #. module: stock #: view:stock.picking:0 selection:stock.picking,state:0 msgid "Ready to Process" -msgstr "" +msgstr "Valmiina käsiteltäväksi" #. module: stock #: help:stock.location,posx:0 help:stock.location,posy:0 #: help:stock.location,posz:0 msgid "Optional localization details, for information purpose only" -msgstr "" +msgstr "Mahdolliset lokalisoinnin yksityiskohdat, vain tiedoksi" From 69d6d9ba8fa700b588b22578c984065c4e46a146 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Tue, 27 Mar 2012 10:34:40 +0200 Subject: [PATCH 079/102] [FIX] stock: on inventory, product qty should be computed up to 'inventory date', not after bzr revid: xal@openerp.com-20120327083440-m4sr25bv7wtodmr1 --- addons/stock/stock.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/stock/stock.py b/addons/stock/stock.py index d26ca8f0da3..657e6c9b5a2 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -2670,7 +2670,7 @@ class stock_inventory(osv.osv): move_ids = [] for line in inv.inventory_line_id: pid = line.product_id.id - product_context.update(uom=line.product_uom.id, date=inv.date, prodlot_id=line.prod_lot_id.id) + product_context.update(uom=line.product_uom.id, to_date=inv.date, date=inv.date, prodlot_id=line.prod_lot_id.id) amount = location_obj._product_get(cr, uid, line.location_id.id, [pid], product_context)[pid] change = line.product_qty - amount From 3666c8515e0c1d15bdaf1012947603b4bdf16e04 Mon Sep 17 00:00:00 2001 From: "Amit Patel (OpenERP)" Date: Tue, 27 Mar 2012 16:40:58 +0530 Subject: [PATCH 080/102] [IMP]:improved help bzr revid: apa@tinyerp.com-20120327111058-b2gvgfe75ahsd813 --- addons/event/event_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index f4a30a45a47..89be60ea95b 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -267,7 +267,7 @@ + help="Upcoming events from today" /> From f268241d7ab5ce00d8f498759e7b8f6fc0401066 Mon Sep 17 00:00:00 2001 From: "Purnendu Singh (OpenERP)" Date: Tue, 27 Mar 2012 17:28:00 +0530 Subject: [PATCH 081/102] [IMP] mail: split out the send method and define a new method for post-processing of sent messages bzr revid: psi@tinyerp.com-20120327115800-mjcwrzz31sjytld0 --- addons/mail/mail_message.py | 27 +++++++++++-------- addons/mail/wizard/mail_compose_message.py | 2 -- .../mail/wizard/mail_compose_message_view.xml | 1 - 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py index f2565decb79..db67751b017 100644 --- a/addons/mail/mail_message.py +++ b/addons/mail/mail_message.py @@ -464,6 +464,20 @@ class mail_message(osv.osv): msg['sub_type'] = msg['subtype'] or 'plain' return msg + def _postprocess_sent_message(self, cr, uid, message, context=None): + """ + if message is set to auto_delete=True then delete that sent messages as well as attachments + + :param message: the message to parse + """ + if message.auto_delete: + self.pool.get('ir.attachment').unlink(cr, uid, + [x.id for x in message.attachment_ids \ + if x.res_model == self._name and \ + x.res_id == message.id], + context=context) + message.unlink() + return True def send(self, cr, uid, ids, auto_commit=False, context=None): """Sends the selected emails immediately, ignoring their current @@ -521,18 +535,9 @@ class mail_message(osv.osv): message.write({'state':'sent', 'message_id': res}) else: message.write({'state':'exception'}) - model_pool = self.pool.get(message.model) - if hasattr(model_pool, '_hook_message_sent'): - model_pool._hook_message_sent(cr, uid, message.res_id, context=context) - # if auto_delete=True then delete that sent messages as well as attachments message.refresh() - if message.state == 'sent' and message.auto_delete: - self.pool.get('ir.attachment').unlink(cr, uid, - [x.id for x in message.attachment_ids \ - if x.res_model == self._name and \ - x.res_id == message.id], - context=context) - message.unlink() + if message.state == 'sent': + self._postprocess_sent_message(cr, uid, message, context=context) except Exception: _logger.exception('failed sending mail.message %s', message.id) message.write({'state':'exception'}) diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index 4f1163c0d69..f82132a2842 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -100,7 +100,6 @@ class mail_compose_message(osv.osv_memory): if not result.get('email_from'): current_user = self.pool.get('res.users').browse(cr, uid, uid, context) result['email_from'] = current_user.user_email or False - result['subtype'] = 'html' return result _columns = { @@ -161,7 +160,6 @@ class mail_compose_message(osv.osv_memory): result.update({ 'subtype' : message_data.subtype or 'plain', # default to the text version due to quoting 'body_text' : body, - 'body_html' : message_data.body_html, 'subject' : subject, 'attachment_ids' : [], 'model' : message_data.model or False, diff --git a/addons/mail/wizard/mail_compose_message_view.xml b/addons/mail/wizard/mail_compose_message_view.xml index 3a44b040139..d559d679c8b 100644 --- a/addons/mail/wizard/mail_compose_message_view.xml +++ b/addons/mail/wizard/mail_compose_message_view.xml @@ -23,7 +23,6 @@ - From 7cd37e488f71b7203a6cba528d0e8eced0654e41 Mon Sep 17 00:00:00 2001 From: Xavier ALT Date: Tue, 27 Mar 2012 16:05:25 +0200 Subject: [PATCH 082/102] [FIX] crm: for crm.lead, force orm 'default_get' to avoid misbehaviour when 'base_contact' is installed bzr revid: xal@openerp.com-20120327140525-my45t6cc7kiy043a --- addons/crm/crm_lead.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index b17fa31ac91..9347955d809 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -68,6 +68,11 @@ class crm_lead(crm_case, osv.osv): return [(r['id'], tools.ustr(r[self._rec_name])) for r in self.read(cr, user, ids, [self._rec_name], context)] + # overridden because if 'base_contact' is installed - their default_get() will remove + # 'default_type' from context making it impossible to record an 'opportunity' + def default_get(self, cr, uid, fields_list, context=None): + return super(osv.osv, self).default_get(cr, uid, fields_list, context=context) + def _compute_day(self, cr, uid, ids, fields, args, context=None): """ @param cr: the current row, from the database cursor, From 91ff283aca2dcc68eee6c1b8a899c7f5b2694a18 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Wed, 28 Mar 2012 05:49:38 +0000 Subject: [PATCH 083/102] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20120327053630-oyxvuo01rki4o8cv bzr revid: launchpad_translations_on_behalf_of_openerp-20120328054938-o0fy44ik0v28f7tv --- openerp/addons/base/i18n/es_EC.po | 215 ++++++++++++++++++------------ openerp/addons/base/i18n/nb.po | 38 +++--- 2 files changed, 150 insertions(+), 103 deletions(-) diff --git a/openerp/addons/base/i18n/es_EC.po b/openerp/addons/base/i18n/es_EC.po index e136b8a8992..237f7a275a9 100644 --- a/openerp/addons/base/i18n/es_EC.po +++ b/openerp/addons/base/i18n/es_EC.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-server\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:44+0000\n" -"PO-Revision-Date: 2012-03-26 01:51+0000\n" -"Last-Translator: Cristian Salamea (Gnuthink) \n" +"PO-Revision-Date: 2012-03-27 00:33+0000\n" +"Last-Translator: mariofabian \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-26 05:34+0000\n" -"X-Generator: Launchpad (build 15008)\n" +"X-Launchpad-Export-Date: 2012-03-28 05:49+0000\n" +"X-Generator: Launchpad (build 15027)\n" #. module: base #: model:res.country,name:base.sh @@ -1425,6 +1425,10 @@ msgid "" "use the accounting application of OpenERP, journals and accounts will be " "created automatically based on these data." msgstr "" +"Configure las cuentas de banco de la compañía y seleccione, estas aparecerán " +"al pie en los reportes. Usted puede reordenar las cuantas desde la vista de " +"lista. Si usa el módulo contable de OpenERP, los diarios y cuentas serán " +"creados automáticamente basado en esta información." #. module: base #: view:ir.module.module:0 @@ -1904,7 +1908,7 @@ msgstr "Días" #. module: base #: model:ir.module.module,shortdesc:base.module_web_rpc msgid "OpenERP Web web" -msgstr "" +msgstr "OpenERP Web" #. module: base #: model:ir.module.module,shortdesc:base.module_html_view @@ -2404,7 +2408,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_base_setup msgid "Initial Setup Tools" -msgstr "" +msgstr "Herramientas de configuración inicial" #. module: base #: field:ir.actions.act_window,groups_id:0 @@ -2916,7 +2920,7 @@ msgstr "Eslovenia" #. module: base #: help:res.currency,name:0 msgid "Currency Code (ISO 4217)" -msgstr "" +msgstr "Código de moneda (ISO 4217)" #. module: base #: model:ir.actions.act_window,name:base.res_log_act_window @@ -2948,7 +2952,7 @@ msgstr "¡Error!" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_fr_rib msgid "French RIB Bank Details" -msgstr "" +msgstr "Detalle bancos RIB Francia" #. module: base #: view:res.lang:0 @@ -3059,6 +3063,10 @@ msgid "" "\n" "The decimal precision is configured per company.\n" msgstr "" +"\n" +"Configure la precisión decimal que necesita para los diferentes usos: " +"contabilidad, ventas, compras.\n" +"La precisión decimal es configurada por compañía.\n" #. module: base #: model:ir.module.module,description:base.module_l10n_pl @@ -3733,7 +3741,7 @@ msgstr "" #. module: base #: view:ir.rule:0 msgid "Interaction between rules" -msgstr "" +msgstr "Interacción entre reglas" #. module: base #: model:ir.module.module,description:base.module_account_invoice_layout @@ -3792,6 +3800,9 @@ msgid "" "or data in your OpenERP instance. To install some modules, click on the " "button \"Install\" from the form view and then click on \"Start Upgrade\"." msgstr "" +"Usted puede instalar nuevos módulos según como activa nuevas " +"características, menús, reportes. Para instalar algunos módulos, click en el " +"botón 'instalar'. y luego 'actualizar'" #. module: base #: model:ir.actions.act_window,name:base.ir_cron_act @@ -3901,6 +3912,8 @@ msgid "" "Invalid value for reference field \"%s.%s\" (last part must be a non-zero " "integer): \"%s\"" msgstr "" +"Valor inválido para el campo de referencia \"%s.%s\" (la última parte debe " +"ser un entero diferente a cero): \"%s\"." #. module: base #: model:ir.module.category,name:base.module_category_human_resources @@ -4505,6 +4518,8 @@ msgid "" "When no specific mail server is requested for a mail, the highest priority " "one is used. Default priority is 10 (smaller number = higher priority)" msgstr "" +"Cuando no se especifica un servidor de correo, la prioridad mas alta es " +"usada. La prioridad por defecto es 10(menor número=prioridad mas alta)" #. module: base #: model:ir.module.module,description:base.module_crm_partner_assign @@ -4572,7 +4587,7 @@ msgstr "Las transiciones de entrada" #. module: base #: field:ir.values,value_unpickle:0 msgid "Default value or action reference" -msgstr "" +msgstr "Valor por defecto para referencia de acción" #. module: base #: model:res.country,name:base.sr @@ -4844,6 +4859,9 @@ msgid "" "the same values as those available in the condition field, e.g. `Dear [[ " "object.partner_id.name ]]`" msgstr "" +"Contenido de correo, debe contener expresiones entre comillas simples, " +"basado en los valores disponibles en el campo condición, \r\n" +"ejm.`Dear [[ object.partner_id.name ]]`" #. module: base #: model:ir.actions.act_window,name:base.action_workflow_form @@ -6242,6 +6260,8 @@ msgid "" "If enabled, the full output of SMTP sessions will be written to the server " "log at DEBUG level(this is very verbose and may include confidential info!)" msgstr "" +"Si activa, la salido completa de la sesión SMTP será escrita en el log del " +"servidor." #. module: base #: model:ir.module.module,shortdesc:base.module_base_report_creator @@ -6347,6 +6367,8 @@ msgid "" "- Action: an action attached to one slot of the given model\n" "- Default: a default value for a model field" msgstr "" +"-Acción: Una acción asociada a un lugar.\n" +"-Default: Un valor por defecto para un campo" #. module: base #: model:ir.actions.act_window,name:base.action_partner_addess_tree @@ -6454,7 +6476,7 @@ msgstr "Año sin siglo actual: %(y)s" msgid "" "An arbitrary string, interpreted by the client according to its own needs " "and wishes. There is no central tag repository across clients." -msgstr "" +msgstr "Un string, interpretado por el cliente de acuerdo a la necesidad." #. module: base #: sql_constraint:ir.rule:0 @@ -6762,6 +6784,8 @@ msgid "" "Please check that all your lines have %d columns.Stopped around line %d " "having %d columns." msgstr "" +"Por favor chequee que todas sus lineas tengan %d columnas. Parado en la " +"linea %d teniendo %d columnas." #. module: base #: field:base.language.export,advice:0 @@ -6903,7 +6927,7 @@ msgstr "Auditoría" #. module: base #: help:ir.values,company_id:0 msgid "If set, action binding only applies for this company" -msgstr "" +msgstr "Si selecciona, la acción solo aplica a esta compañía." #. module: base #: model:res.country,name:base.lc @@ -6916,7 +6940,7 @@ msgid "" "Specify a value only when creating a user or if you're changing the user's " "password, otherwise leave empty. After a change of password, the user has to " "login again." -msgstr "" +msgstr "Especifica un valor solo cuando crea un usuario." #. module: base #: view:publisher_warranty.contract:0 @@ -7514,7 +7538,7 @@ msgstr "" #. module: base #: field:res.partner,title:0 msgid "Partner Firm" -msgstr "" +msgstr "Firma empresa" #. module: base #: model:ir.actions.act_window,name:base.action_model_fields @@ -7714,7 +7738,7 @@ msgid "" "OpenERP for the first time we strongly advise you to select the simplified " "interface, which has less features but is easier to use. You can switch to " "the other interface from the User/Preferences menu at any time." -msgstr "" +msgstr "OpenERP ofrece una interfaz de usuario simplificada y extendida." #. module: base #: model:res.country,name:base.cc @@ -8031,7 +8055,7 @@ msgid "" "Email subject, may contain expressions enclosed in double brackets based on " "the same values as those available in the condition field, e.g. `Hello [[ " "object.partner_id.name ]]`" -msgstr "" +msgstr "Cuerpo del mail debe contener explesiones entre comilla simple." #. module: base #: model:ir.module.module,description:base.module_account_sequence @@ -8062,7 +8086,7 @@ msgid "" "If set, this field will be stored in the sparse structure of the " "serialization field, instead of having its own database column. This cannot " "be changed after creation." -msgstr "" +msgstr "Si selecciona, el campo será almacenado en una estructura." #. module: base #: view:res.partner.bank:0 @@ -8094,6 +8118,8 @@ msgid "" "The field on the current object that links to the target object record (must " "be a many2one, or an integer field with the record ID)" msgstr "" +"El campo en el objeto actual que quiere hacer referencia(debe ser una m2o, o " +"un entero con el campo ID)" #. module: base #: code:addons/base/module/module.py:423 @@ -8116,6 +8142,7 @@ msgid "" "Determines where the currency symbol should be placed after or before the " "amount." msgstr "" +"Determina cuando el símbolo de la moneda debe ser colocado antes del valor." #. module: base #: model:ir.model,name:base.model_base_update_translations @@ -8229,6 +8256,7 @@ msgid "" "You cannot have multiple records with the same external ID in the same " "module!" msgstr "" +"No puede tener varios registros son el mismo ID externo en el mismo modulo" #. module: base #: selection:ir.property,type:0 @@ -8349,6 +8377,8 @@ msgid "" "The priority of the job, as an integer: 0 means higher priority, 10 means " "lower priority." msgstr "" +"La prioridad del trabajo, como un entero: 0 significa la prioridad mas alta, " +"10 significa prioridad mas baja." #. module: base #: model:ir.model,name:base.model_workflow_transition @@ -8451,7 +8481,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_account_anglo_saxon msgid "Anglo-Saxon Accounting" -msgstr "" +msgstr "Contabilidad anglo-sajona" #. module: base #: model:res.country,name:base.np @@ -8544,7 +8574,7 @@ msgstr "" #: code:addons/orm.py:2693 #, python-format msgid "The value \"%s\" for the field \"%s.%s\" is not in the selection" -msgstr "" +msgstr "El valor \"%s\" para el campo \"%s.%s\" no esta en la selección." #. module: base #: view:ir.actions.configuration.wizard:0 @@ -8871,7 +8901,7 @@ msgid "" "printed reports. It is important to set a value for this field. You should " "use the same timezone that is otherwise used to pick and render date and " "time values: your computer's timezone." -msgstr "" +msgstr "La zona horaria del usuario, usada para la salida de fecha." #. module: base #: help:res.country,name:0 @@ -9345,6 +9375,8 @@ msgid "" "instead.If SSL is needed, an upgrade to Python 2.6 on the server-side should " "do the trick." msgstr "" +"Su servidor OpenERP no soporta SMTP-over-SSL. Debería usar STARTTLS. Si " +"necesita SSL, actualize python a la versión 2.6." #. module: base #: model:res.country,name:base.ua @@ -9491,7 +9523,7 @@ msgstr "Fecha de creación" #. module: base #: help:ir.actions.server,trigger_name:0 msgid "The workflow signal to trigger" -msgstr "" +msgstr "La señal del flujo para el lanzador" #. module: base #: model:ir.module.module,description:base.module_mrp @@ -9653,7 +9685,7 @@ msgstr "%H - Hora (reloj 24-horas) [00,23]." msgid "" "Your server does not seem to support SSL, you may want to try STARTTLS " "instead" -msgstr "" +msgstr "Su servidor no soporta SSL, desea probar usando STARTTSL" #. module: base #: model:ir.model,name:base.model_res_widget @@ -9890,6 +9922,9 @@ msgid "" "same values as for the condition field.\n" "Example: object.invoice_address_id.email, or 'me@example.com'" msgstr "" +"Expresion que devuelve la dirección de mail a enviar. Debe basarse en los " +"mismo valores de campo.\n" +"Ejemplo. object.invoice_address_id.email, or 'me@example.com'" #. module: base #: model:ir.module.module,description:base.module_web_hello @@ -10196,6 +10231,7 @@ msgstr "Mónaco" #: view:base.module.import:0 msgid "Please be patient, this operation may take a few minutes..." msgstr "" +"Por favor sea paciente, esta operación puede tomar varios minutos...." #. module: base #: selection:ir.cron,interval_type:0 @@ -10205,7 +10241,7 @@ msgstr "Minutos" #. module: base #: view:res.currency:0 msgid "Display" -msgstr "" +msgstr "Desplegar" #. module: base #: selection:ir.translation,type:0 @@ -10228,7 +10264,7 @@ msgstr "" #. module: base #: model:ir.actions.report.xml,name:base.preview_report msgid "Preview Report" -msgstr "" +msgstr "Vista previa del reporte" #. module: base #: model:ir.module.module,shortdesc:base.module_purchase_analytic_plans @@ -10316,7 +10352,7 @@ msgstr "Semanas" #: code:addons/base/res/res_company.py:157 #, python-format msgid "VAT: " -msgstr "" +msgstr "IVA " #. module: base #: model:res.country,name:base.af @@ -10385,7 +10421,7 @@ msgstr "Fecha de creación" #. module: base #: view:ir.module.module:0 msgid "Keywords" -msgstr "" +msgstr "Palabras clave" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_cn @@ -10411,7 +10447,7 @@ msgstr "" #. module: base #: help:ir.model.data,res_id:0 msgid "ID of the target record in the database" -msgstr "" +msgstr "ID del registro en la base de datos" #. module: base #: model:ir.module.module,shortdesc:base.module_account_analytic_analysis @@ -10570,7 +10606,7 @@ msgstr "Día del año: %(doy)s" #: model:ir.module.category,name:base.module_category_portal #: model:ir.module.module,shortdesc:base.module_portal msgid "Portal" -msgstr "" +msgstr "Portal" #. module: base #: model:ir.module.module,description:base.module_claim_from_delivery @@ -10605,6 +10641,9 @@ msgid "" "Please define BIC/Swift code on bank for bank type IBAN Account to make " "valid payments" msgstr "" +"\n" +"Por favor defina el código BIC/Swift en el banco de cuentas IBAN para " +"realizar pagos válidos" #. module: base #: view:res.lang:0 @@ -10614,7 +10653,7 @@ msgstr "%A - Nombre completo del día de la semana." #. module: base #: help:ir.values,user_id:0 msgid "If set, action binding only applies for this user." -msgstr "" +msgstr "Si selecciona, estas acciones solo aparecerán para este usuario" #. module: base #: model:res.country,name:base.gw @@ -10658,7 +10697,7 @@ msgstr "" #. module: base #: help:res.company,bank_ids:0 msgid "Bank accounts related to this company" -msgstr "" +msgstr "Cuentas de banco relacionadas con la compañia" #. module: base #: model:ir.ui.menu,name:base.menu_base_partner @@ -10681,7 +10720,7 @@ msgstr "Realizado" #: help:ir.cron,doall:0 msgid "" "Specify if missed occurrences should be executed when the server restarts." -msgstr "" +msgstr "Especifica" #. module: base #: model:res.partner.title,name:base.res_partner_title_miss @@ -10942,7 +10981,7 @@ msgstr "Provincia" #. module: base #: model:ir.ui.menu,name:base.next_id_5 msgid "Sequences & Identifiers" -msgstr "" +msgstr "Secuencias & Identificadores" #. module: base #: model:ir.module.module,description:base.module_l10n_th @@ -11063,6 +11102,9 @@ msgid "" "Helps you manage your human resources by encoding your employees structure, " "generating work sheets, tracking attendance and more." msgstr "" +"Le ayuda a gestionar sus recursos humanos mediante la codificación de la " +"estructura de los empleados, la generación de hojas de trabajo, seguimiento " +"de la asistencia, ..." #. module: base #: help:ir.model.fields,model_id:0 @@ -11282,7 +11324,7 @@ msgstr "¿Quieres Ids claros? " #. module: base #: view:res.partner.bank:0 msgid "Information About the Bank" -msgstr "" +msgstr "Información del Banco" #. module: base #: help:ir.actions.server,condition:0 @@ -11335,7 +11377,7 @@ msgstr "Detener todo" #. module: base #: model:ir.module.module,shortdesc:base.module_analytic_user_function msgid "Jobs on Contracts" -msgstr "" +msgstr "Trabajos en Contratos" #. module: base #: model:ir.module.module,description:base.module_import_sugarcrm @@ -11398,7 +11440,7 @@ msgstr "Arabic / الْعَرَبيّة" #. module: base #: model:ir.module.module,shortdesc:base.module_web_hello msgid "Hello" -msgstr "" +msgstr "Hola" #. module: base #: view:ir.actions.configuration.wizard:0 @@ -11413,7 +11455,7 @@ msgstr "Comentario" #. module: base #: model:res.groups,name:base.group_hr_manager msgid "HR Manager" -msgstr "" +msgstr "Gerente de Recursos Humanos" #. module: base #: view:ir.filters:0 @@ -11427,7 +11469,7 @@ msgstr "Dominio" #. module: base #: model:ir.module.module,shortdesc:base.module_marketing_campaign msgid "Marketing Campaigns" -msgstr "" +msgstr "Campañas de marketing" #. module: base #: code:addons/base/publisher_warranty/publisher_warranty.py:144 @@ -11438,7 +11480,7 @@ msgstr "Error de validación de contrato" #. module: base #: field:ir.values,key2:0 msgid "Qualifier" -msgstr "" +msgstr "Calificador" #. module: base #: field:res.country.state,name:0 @@ -11448,7 +11490,7 @@ msgstr "Nombre provincia" #. module: base #: view:res.lang:0 msgid "Update Languague Terms" -msgstr "" +msgstr "Actualizar términos del lenguaje" #. module: base #: field:workflow.activity,join_mode:0 @@ -11696,7 +11738,7 @@ msgstr "Somalia" #. module: base #: model:ir.module.module,shortdesc:base.module_mrp_operations msgid "Manufacturing Operations" -msgstr "" +msgstr "Operaciones de fabricación" #. module: base #: selection:publisher_warranty.contract,state:0 @@ -11728,7 +11770,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_hr msgid "Employee Directory" -msgstr "" +msgstr "Directorio de empleado" #. module: base #: view:ir.cron:0 @@ -11795,7 +11837,7 @@ msgstr "EAN13 correcto" #. module: base #: selection:res.company,paper_format:0 msgid "A4" -msgstr "" +msgstr "A4" #. module: base #: field:publisher_warranty.contract,check_support:0 @@ -11860,7 +11902,7 @@ msgstr "Siguiente fecha de ejecución" #. module: base #: field:ir.sequence,padding:0 msgid "Number Padding" -msgstr "" +msgstr "Relleno del número" #. module: base #: help:multi_company.default,field_id:0 @@ -12049,7 +12091,7 @@ msgstr "Ref. tabla" #: code:addons/base/ir/ir_mail_server.py:443 #, python-format msgid "Mail delivery failed" -msgstr "" +msgstr "Envio de mail falló" #. module: base #: field:ir.actions.act_window,res_model:0 @@ -12089,7 +12131,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_account_analytic_plans msgid "Multiple Analytic Plans" -msgstr "" +msgstr "Plan de Costos Multiple" #. module: base #: model:ir.module.module,description:base.module_project_timesheet @@ -12119,7 +12161,7 @@ msgstr "Programador" #. module: base #: model:ir.module.module,shortdesc:base.module_base_tools msgid "Base Tools" -msgstr "" +msgstr "Herramientas base" #. module: base #: help:res.country,address_format:0 @@ -12248,7 +12290,7 @@ msgstr "" #. module: base #: help:ir.cron,args:0 msgid "Arguments to be passed to the method, e.g. (uid,)." -msgstr "" +msgstr "Los argumentos deben ser pasados al método, ej (uid)" #. module: base #: model:res.partner.category,name:base.res_partner_category_5 @@ -12382,7 +12424,7 @@ msgstr "Criterios de búsqueda inválidos" #. module: base #: view:ir.mail_server:0 msgid "Connection Information" -msgstr "" +msgstr "Información de la conexión" #. module: base #: view:ir.attachment:0 @@ -12517,11 +12559,12 @@ msgstr "Ref. vista" #: model:ir.module.category,description:base.module_category_sales_management msgid "Helps you handle your quotations, sale orders and invoicing." msgstr "" +"Le ayuda a gestionar sus presupuestos, pedidos de venta y facturación." #. module: base #: field:res.groups,implied_ids:0 msgid "Inherits" -msgstr "" +msgstr "Hereda" #. module: base #: selection:ir.translation,type:0 @@ -12623,7 +12666,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_users_ldap msgid "Authentication via LDAP" -msgstr "" +msgstr "Autenticación LDAP" #. module: base #: view:workflow.activity:0 @@ -12710,7 +12753,7 @@ msgstr "" #. module: base #: view:ir.rule:0 msgid "Rule definition (domain filter)" -msgstr "" +msgstr "Definición de regla(filtro del dominio)" #. module: base #: model:ir.model,name:base.model_workflow_instance @@ -12824,7 +12867,7 @@ msgstr "ir.valores" #. module: base #: model:res.groups,name:base.group_no_one msgid "Technical Features" -msgstr "" +msgstr "Características técnicas" #. module: base #: selection:base.language.install,lang:0 @@ -12844,7 +12887,7 @@ msgstr "" #: view:ir.model.data:0 #: model:ir.ui.menu,name:base.ir_model_data_menu msgid "External Identifiers" -msgstr "" +msgstr "Identificadores externos" #. module: base #: model:res.groups,name:base.group_sale_salesman @@ -12894,7 +12937,7 @@ msgstr "Número de ejecuciones" #: code:addons/base/res/res_bank.py:189 #, python-format msgid "BANK" -msgstr "" +msgstr "BANCO" #. module: base #: view:base.module.upgrade:0 @@ -12933,7 +12976,7 @@ msgstr "" #. module: base #: view:res.config:0 msgid "Apply" -msgstr "" +msgstr "Aplicar" #. module: base #: field:res.request,trigger_date:0 @@ -12961,7 +13004,7 @@ msgstr "" #. module: base #: model:ir.ui.menu,name:base.menu_project_management_time_tracking msgid "Time Tracking" -msgstr "" +msgstr "Seguimiento de tiempo" #. module: base #: view:res.partner.category:0 @@ -13137,12 +13180,12 @@ msgstr "" msgid "" "Please define at least one SMTP server, or provide the SMTP parameters " "explicitly." -msgstr "" +msgstr "Por favor defina por lo menos un servidor SMTP." #. module: base #: view:ir.attachment:0 msgid "Filter on my documents" -msgstr "" +msgstr "Filtros en mis documentos" #. module: base #: help:ir.actions.server,code:0 @@ -13181,7 +13224,7 @@ msgstr "Gabón" #. module: base #: model:res.groups,name:base.group_multi_company msgid "Multi Companies" -msgstr "" +msgstr "Multi compañias" #. module: base #: view:ir.model:0 @@ -13265,7 +13308,7 @@ msgstr "Asunto" #. module: base #: selection:res.currency,position:0 msgid "Before Amount" -msgstr "" +msgstr "Después del monto" #. module: base #: field:res.request,act_from:0 @@ -13286,7 +13329,7 @@ msgstr "Consumidores" #. module: base #: view:res.company:0 msgid "Set Bank Accounts" -msgstr "" +msgstr "Definir cuentas de banco" #. module: base #: field:ir.actions.client,tag:0 @@ -13337,7 +13380,7 @@ msgstr "" #. module: base #: view:ir.filters:0 msgid "Current User" -msgstr "" +msgstr "Usuario Actual" #. module: base #: field:res.company,company_registry:0 @@ -13374,6 +13417,8 @@ msgid "" "Allows you to create your invoices and track the payments. It is an easier " "version of the accounting module for managers who are not accountants." msgstr "" +"Le permite crear sus facturas y controlar los pagos. Es una versión más " +"fácil del módulo de contabilidad para gestores que no sean contables." #. module: base #: model:res.country,name:base.eh @@ -13383,7 +13428,7 @@ msgstr "Sáhara occidental" #. module: base #: model:ir.module.category,name:base.module_category_account_voucher msgid "Invoicing & Payments" -msgstr "" +msgstr "Facturación y Pagos" #. module: base #: model:ir.actions.act_window,help:base.action_res_company_form @@ -13590,7 +13635,7 @@ msgstr "" #. module: base #: field:res.partner.bank,bank_name:0 msgid "Bank Name" -msgstr "" +msgstr "Nombre del Banco" #. module: base #: model:res.country,name:base.ki @@ -13635,7 +13680,7 @@ msgid "" "The default language used in the graphical user interface, when translations " "are available. To add a new language, you can use the 'Load an Official " "Translation' wizard available from the 'Administration' menu." -msgstr "" +msgstr "El lenguaje por defecto usado en la interfaz gráfica." #. module: base #: model:ir.module.module,description:base.module_l10n_es @@ -13669,7 +13714,7 @@ msgstr "Archivo CSV" #: code:addons/base/res/res_company.py:154 #, python-format msgid "Phone: " -msgstr "" +msgstr "Teléfono: " #. module: base #: field:res.company,account_no:0 @@ -13708,7 +13753,7 @@ msgstr "" #. module: base #: field:res.company,vat:0 msgid "Tax ID" -msgstr "" +msgstr "ID de impuesto" #. module: base #: field:ir.model.fields,field_description:0 @@ -13832,7 +13877,7 @@ msgstr "Actividades" #. module: base #: model:ir.module.module,shortdesc:base.module_product msgid "Products & Pricelists" -msgstr "" +msgstr "Productos y Listas de precios" #. module: base #: field:ir.actions.act_window,auto_refresh:0 @@ -13879,7 +13924,7 @@ msgstr "Grecia" #. module: base #: model:ir.module.module,shortdesc:base.module_web_calendar msgid "web calendar" -msgstr "" +msgstr "calendario web" #. module: base #: field:ir.model.data,name:0 @@ -13915,7 +13960,7 @@ msgstr "Acciones" #. module: base #: model:ir.module.module,shortdesc:base.module_delivery msgid "Delivery Costs" -msgstr "" +msgstr "Costes de envío" #. module: base #: code:addons/base/ir/ir_cron.py:293 @@ -14016,7 +14061,7 @@ msgstr "Error" #. module: base #: model:ir.module.module,shortdesc:base.module_base_crypt msgid "DB Password Encryption" -msgstr "" +msgstr "Encriptación de la contraseña de la DB" #. module: base #: help:workflow.transition,act_to:0 @@ -14058,7 +14103,7 @@ msgstr "Guía técnica" #. module: base #: view:res.company:0 msgid "Address Information" -msgstr "" +msgstr "Información de dirección" #. module: base #: model:res.country,name:base.tz @@ -14083,7 +14128,7 @@ msgstr "Isla Natividad" #. module: base #: model:ir.module.module,shortdesc:base.module_web_livechat msgid "Live Chat Support" -msgstr "" +msgstr "Chat de asistencia" #. module: base #: view:ir.actions.server:0 @@ -14286,7 +14331,7 @@ msgstr "" #. module: base #: help:ir.actions.act_window,usage:0 msgid "Used to filter menu and home actions from the user form." -msgstr "" +msgstr "Usado para filtros de menú y acciones del usuario" #. module: base #: model:res.country,name:base.sa @@ -14296,7 +14341,7 @@ msgstr "Arabia Saudí" #. module: base #: help:res.company,rml_header1:0 msgid "Appears by default on the top right corner of your printed documents." -msgstr "" +msgstr "Aparece por defecto en la esquina superior derecha de los impresos." #. module: base #: model:ir.module.module,shortdesc:base.module_fetchmail_crm_claim @@ -14448,7 +14493,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_report_designer msgid "Report Designer" -msgstr "" +msgstr "Diseñador de informes" #. module: base #: model:ir.ui.menu,name:base.menu_address_book @@ -14587,7 +14632,7 @@ msgstr "Campo hijo" #. module: base #: view:ir.rule:0 msgid "Detailed algorithm:" -msgstr "" +msgstr "Algoritmo detallado" #. module: base #: field:ir.actions.act_window,usage:0 @@ -14790,7 +14835,7 @@ msgstr "Aruba" #: code:addons/base/module/wizard/base_module_import.py:60 #, python-format msgid "File is not a zip file!" -msgstr "" +msgstr "El archivo no es un .zip" #. module: base #: model:res.country,name:base.ar @@ -14898,7 +14943,7 @@ msgstr "Company" #. module: base #: model:ir.module.category,name:base.module_category_report_designer msgid "Advanced Reporting" -msgstr "" +msgstr "Informes avanzados" #. module: base #: selection:ir.actions.act_window,target:0 @@ -14968,7 +15013,7 @@ msgstr "Jamaica" #: field:res.partner,color:0 #: field:res.partner.address,color:0 msgid "Color Index" -msgstr "" +msgstr "Color del Indice" #. module: base #: model:ir.actions.act_window,help:base.action_partner_category_form @@ -15119,7 +15164,7 @@ msgstr "" #. module: base #: help:ir.mail_server,smtp_port:0 msgid "SMTP Port. Usually 465 for SSL, and 25 or 587 for other cases." -msgstr "" +msgstr "puerto SMTP . Usualmente 465 para SSL, y 25 o 587 para otros casos." #. module: base #: view:ir.sequence:0 @@ -15433,7 +15478,7 @@ msgstr "" #. module: base #: model:ir.model,name:base.model_res_groups msgid "Access Groups" -msgstr "" +msgstr "Grupos de acceso" #. module: base #: selection:base.language.install,lang:0 @@ -15598,7 +15643,7 @@ msgstr "S.A." #. module: base #: model:ir.module.module,shortdesc:base.module_purchase_requisition msgid "Purchase Requisitions" -msgstr "" +msgstr "Solicitudes de compra" #. module: base #: selection:ir.cron,interval_type:0 @@ -15619,7 +15664,7 @@ msgstr "Empresas: " #. module: base #: field:res.partner.bank,name:0 msgid "Bank Account" -msgstr "" +msgstr "Cuenta de Banco" #. module: base #: model:res.country,name:base.kp @@ -15700,6 +15745,8 @@ msgid "" "This field is computed automatically based on bank accounts defined, having " "the display on footer checkbox set." msgstr "" +"Este campo es calculado automaticamente basado en las cuentas de banco " +"definidas." #. module: base #: model:ir.module.module,description:base.module_mrp_subproduct diff --git a/openerp/addons/base/i18n/nb.po b/openerp/addons/base/i18n/nb.po index e4f45513cef..f502d059733 100644 --- a/openerp/addons/base/i18n/nb.po +++ b/openerp/addons/base/i18n/nb.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-server\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:44+0000\n" -"PO-Revision-Date: 2012-02-17 09:21+0000\n" -"Last-Translator: Antony Lesuisse (OpenERP) \n" +"PO-Revision-Date: 2012-03-27 12:54+0000\n" +"Last-Translator: Rolv Råen (adEgo) \n" "Language-Team: Norwegian Bokmal \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 05:56+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-28 05:49+0000\n" +"X-Generator: Launchpad (build 15027)\n" #. module: base #: model:res.country,name:base.sh @@ -175,7 +175,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_web_process msgid "Process" -msgstr "" +msgstr "Prosess" #. module: base #: model:ir.module.module,shortdesc:base.module_analytic_journal_billing_rate @@ -371,7 +371,7 @@ msgstr "" #. module: base #: view:ir.module.module:0 msgid "Extra" -msgstr "" +msgstr "Ekstra" #. module: base #: code:addons/orm.py:2526 @@ -473,7 +473,7 @@ msgstr "" #. module: base #: help:res.partner,website:0 msgid "Website of Partner." -msgstr "" +msgstr "Partners webside." #. module: base #: help:ir.actions.act_window,views:0 @@ -502,7 +502,7 @@ msgstr "Datoformat" #. module: base #: model:ir.module.module,shortdesc:base.module_base_report_designer msgid "OpenOffice Report Designer" -msgstr "" +msgstr "OpenOffice Rapport Designer" #. module: base #: field:res.bank,email:0 @@ -696,7 +696,7 @@ msgstr "Eksport fullført" #. module: base #: model:ir.module.module,shortdesc:base.module_plugin_outlook msgid "Outlook Plug-In" -msgstr "" +msgstr "Outlook Plug-In" #. module: base #: view:ir.model:0 @@ -739,7 +739,7 @@ msgstr "Eritrea" #. module: base #: sql_constraint:res.company:0 msgid "The company name must be unique !" -msgstr "" +msgstr "Firmanavn må være unikt !" #. module: base #: view:res.config:0 @@ -880,7 +880,7 @@ msgstr "" #. module: base #: view:res.users:0 msgid "Email Preferences" -msgstr "" +msgstr "E-post innstillinger" #. module: base #: model:ir.module.module,description:base.module_audittrail @@ -1062,7 +1062,7 @@ msgstr "Type" #. module: base #: field:ir.mail_server,smtp_user:0 msgid "Username" -msgstr "" +msgstr "Brukernavn" #. module: base #: code:addons/orm.py:398 @@ -1154,7 +1154,7 @@ msgstr "" #. module: base #: selection:ir.property,type:0 msgid "Char" -msgstr "" +msgstr "Tegn" #. module: base #: selection:base.language.install,lang:0 @@ -1210,7 +1210,7 @@ msgstr "Spansk (AR) / Español (AR)" #. module: base #: field:ir.mail_server,smtp_port:0 msgid "SMTP Port" -msgstr "" +msgstr "SMTP Port" #. module: base #: model:ir.module.module,shortdesc:base.module_import_sugarcrm @@ -1237,7 +1237,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_web_tests msgid "Tests" -msgstr "" +msgstr "Tester" #. module: base #: field:ir.ui.view_sc,res_id:0 @@ -2007,7 +2007,7 @@ msgstr "" #. module: base #: model:ir.ui.menu,name:base.menu_administration msgid "Settings" -msgstr "" +msgstr "Innstillinger" #. module: base #: selection:ir.actions.act_window,view_type:0 @@ -2316,7 +2316,7 @@ msgstr "" #. module: base #: field:ir.mail_server,smtp_debug:0 msgid "Debugging" -msgstr "" +msgstr "Feilsøking" #. module: base #: model:ir.module.module,description:base.module_crm_helpdesk @@ -2426,7 +2426,7 @@ msgstr "Gjeldene rate" #. module: base #: model:ir.module.module,shortdesc:base.module_idea msgid "Ideas" -msgstr "" +msgstr "Idéer" #. module: base #: model:ir.module.module,shortdesc:base.module_sale_crm @@ -2468,7 +2468,7 @@ msgstr "" #. module: base #: model:ir.ui.menu,name:base.menu_invoiced msgid "Invoicing" -msgstr "" +msgstr "Fakturering" #. module: base #: field:ir.ui.view_sc,name:0 From 8f0ae2b9e2c73d3d60d4405e7afec5a65a87a37e Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Wed, 28 Mar 2012 05:50:03 +0000 Subject: [PATCH 084/102] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20120328055003-601sdyq5e9qlitpo --- addons/crm_helpdesk/i18n/nl.po | 16 +- addons/hr_timesheet/i18n/es_EC.po | 657 +++++++++++++++++++++++++ addons/portal/i18n/fi.po | 114 +++-- addons/procurement/i18n/fi.po | 34 +- addons/product/i18n/fi.po | 20 +- addons/project/i18n/fi.po | 161 +++--- addons/project_long_term/i18n/fi.po | 48 +- addons/purchase/i18n/es_EC.po | 358 +++++++++----- addons/purchase_requisition/i18n/fi.po | 34 +- addons/resource/i18n/fi.po | 19 +- addons/sale_crm/i18n/fi.po | 24 +- addons/warning/i18n/fi.po | 18 +- 12 files changed, 1150 insertions(+), 353 deletions(-) create mode 100644 addons/hr_timesheet/i18n/es_EC.po diff --git a/addons/crm_helpdesk/i18n/nl.po b/addons/crm_helpdesk/i18n/nl.po index 117fca7474d..7f72e44dddd 100644 --- a/addons/crm_helpdesk/i18n/nl.po +++ b/addons/crm_helpdesk/i18n/nl.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" +"PO-Revision-Date: 2012-03-27 10:36+0000\n" "Last-Translator: Erwin \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:31+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-28 05:49+0000\n" +"X-Generator: Launchpad (build 15027)\n" #. module: crm_helpdesk #: field:crm.helpdesk.report,delay_close:0 @@ -744,11 +744,11 @@ msgid "" "history of the conversation with the customer." msgstr "" "Helpdesk en support laat u incidenten volgen. Selecteer een klant, voeg " -"notities toe en categoriseer incidenten met relaties indien nodig. U kunt " -"ook een prioriteit niveau toekennen. Gebruik het OpenERP problemen systeem " -"om uw support activiteiten en beheren. Problemen kunnen worden gekoppeld aan " -"de email gateway: neiuwe emails kunnen problemen maken, elk daarvan krijgt " -"automatisch de conversatie geschiedenis met de klant." +"notities toe en categoriseer incidenten met relaties. U kunt ook een " +"prioriteit niveau toekennen. Gebruik het OpenERP helpdesk systeem om uw " +"support activiteiten te beheren. Issues kunnen worden gekoppeld aan de email " +"gateway: nieuwe emails kunnen issues maken, elk daarvan krijgt automatisch " +"de conversatie geschiedenis met de klant." #. module: crm_helpdesk #: view:crm.helpdesk.report:0 diff --git a/addons/hr_timesheet/i18n/es_EC.po b/addons/hr_timesheet/i18n/es_EC.po new file mode 100644 index 00000000000..3f17f3ce539 --- /dev/null +++ b/addons/hr_timesheet/i18n/es_EC.po @@ -0,0 +1,657 @@ +# Spanish (Ecuador) translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-03-27 14:58+0000\n" +"Last-Translator: Jacky Bermeo \n" +"Language-Team: Spanish (Ecuador) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-28 05:49+0000\n" +"X-Generator: Launchpad (build 15027)\n" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:43 +#: code:addons/hr_timesheet/report/users_timesheet.py:77 +#, python-format +msgid "Wed" +msgstr "Miércoles" + +#. module: hr_timesheet +#: view:hr.sign.out.project:0 +msgid "(Keep empty for current_time)" +msgstr "(Vacío para fecha actual)" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:132 +#, python-format +msgid "No employee defined for your user !" +msgstr "¡No se ha definido un empleado para su usuario!" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +msgid "Group By..." +msgstr "Agrupar por..." + +#. module: hr_timesheet +#: model:ir.actions.act_window,help:hr_timesheet.action_hr_timesheet_sign_in +msgid "" +"Employees can encode their time spent on the different projects. A project " +"is an analytic account and the time spent on a project generate costs on the " +"analytic account. This feature allows to record at the same time the " +"attendance and the timesheet." +msgstr "" +"Los empleados pueden imputar el tiempo que han invertido en los diferentes " +"proyectos. Un proyecto es una cuenta analítica y el tiempo de empleado en " +"un proyecto genera costes en esa cuenta analítica. Esta característica " +"permite registrar al mismo tiempo la asistencia y la hoja de tiempos." + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +msgid "Today" +msgstr "Hoy" + +#. module: hr_timesheet +#: field:hr.employee,journal_id:0 +msgid "Analytic Journal" +msgstr "Diario analítico" + +#. module: hr_timesheet +#: view:hr.sign.out.project:0 +msgid "Stop Working" +msgstr "Parar de trabajar" + +#. module: hr_timesheet +#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_employee +#: model:ir.ui.menu,name:hr_timesheet.menu_hr_timesheet_employee +msgid "Employee Timesheet" +msgstr "Horario del empleado" + +#. module: hr_timesheet +#: view:account.analytic.account:0 +msgid "Work done stats" +msgstr "Estadísticas trabajo realizado" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +#: model:ir.ui.menu,name:hr_timesheet.menu_hr_reporting_timesheet +msgid "Timesheet" +msgstr "Hoja de asistencia" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:43 +#: code:addons/hr_timesheet/report/users_timesheet.py:77 +#, python-format +msgid "Mon" +msgstr "Lunes" + +#. module: hr_timesheet +#: view:hr.sign.in.project:0 +msgid "Sign in" +msgstr "Acceder" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:43 +#: code:addons/hr_timesheet/report/users_timesheet.py:77 +#, python-format +msgid "Fri" +msgstr "Viernes" + +#. module: hr_timesheet +#: field:hr.employee,uom_id:0 +msgid "UoM" +msgstr "UoM" + +#. module: hr_timesheet +#: view:hr.sign.in.project:0 +msgid "" +"Employees can encode their time spent on the different projects they are " +"assigned on. A project is an analytic account and the time spent on a " +"project generates costs on the analytic account. This feature allows to " +"record at the same time the attendance and the timesheet." +msgstr "" +"Los empleados pueden imputar el tiempo que han invertido en los diferentes " +"proyectos. Un proyecto es una cuenta analítica y el tiempo de empleado en " +"un proyecto genera costes en esa cuenta analítica. Esta característica " +"permite registrar al mismo tiempo la asistencia y la hoja de tiempos." + +#. module: hr_timesheet +#: field:hr.sign.out.project,analytic_amount:0 +msgid "Minimum Analytic Amount" +msgstr "Importe analítico mínimo" + +#. module: hr_timesheet +#: view:hr.analytical.timesheet.employee:0 +msgid "Monthly Employee Timesheet" +msgstr "Hoja de asistencia mensual del Empleado" + +#. module: hr_timesheet +#: view:hr.sign.out.project:0 +msgid "Work done in the last period" +msgstr "Trabajo realizado en el último período" + +#. module: hr_timesheet +#: field:hr.sign.in.project,state:0 +#: field:hr.sign.out.project,state:0 +msgid "Current state" +msgstr "Estado actual" + +#. module: hr_timesheet +#: field:hr.sign.in.project,name:0 +#: field:hr.sign.out.project,name:0 +msgid "Employees name" +msgstr "Nombre de empleados" + +#. module: hr_timesheet +#: field:hr.sign.out.project,account_id:0 +msgid "Project / Analytic Account" +msgstr "Proyecto / Cuenta Analítica" + +#. module: hr_timesheet +#: model:ir.model,name:hr_timesheet.model_hr_analytical_timesheet_users +msgid "Print Employees Timesheet" +msgstr "Imprimir hoja de asistencia de los Empleados" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/hr_timesheet.py:175 +#: code:addons/hr_timesheet/hr_timesheet.py:177 +#, python-format +msgid "Warning !" +msgstr "Advertencia !" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:77 +#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:132 +#, python-format +msgid "UserError" +msgstr "Error de usuario" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:77 +#, python-format +msgid "No cost unit defined for this employee !" +msgstr "¡No se ha definido un coste unitario para este empleado!" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:43 +#: code:addons/hr_timesheet/report/users_timesheet.py:77 +#, python-format +msgid "Tue" +msgstr "Martes" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/wizard/hr_timesheet_print_employee.py:42 +#, python-format +msgid "Warning" +msgstr "Advertencia" + +#. module: hr_timesheet +#: field:hr.analytic.timesheet,partner_id:0 +msgid "Partner" +msgstr "Cliente" + +#. module: hr_timesheet +#: view:hr.sign.in.project:0 +#: view:hr.sign.out.project:0 +msgid "Sign In/Out By Project" +msgstr "Acceder/salir del proyecto" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:43 +#: code:addons/hr_timesheet/report/users_timesheet.py:77 +#, python-format +msgid "Sat" +msgstr "Sábado" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:43 +#: code:addons/hr_timesheet/report/users_timesheet.py:77 +#, python-format +msgid "Sun" +msgstr "Domingo" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +msgid "Analytic account" +msgstr "Cuenta Analítica" + +#. module: hr_timesheet +#: view:hr.analytical.timesheet.employee:0 +#: view:hr.analytical.timesheet.users:0 +msgid "Print" +msgstr "Imprimir" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +#: model:ir.actions.act_window,name:hr_timesheet.act_hr_timesheet_line_evry1_all_form +#: model:ir.ui.menu,name:hr_timesheet.menu_hr_working_hours +msgid "Timesheet Lines" +msgstr "Líneas de la hoja de asistencia" + +#. module: hr_timesheet +#: view:hr.analytical.timesheet.users:0 +msgid "Monthly Employees Timesheet" +msgstr "Hoja de asistencia mensual de empleados" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "July" +msgstr "Julio" + +#. module: hr_timesheet +#: field:hr.sign.in.project,date:0 +#: field:hr.sign.out.project,date_start:0 +msgid "Starting Date" +msgstr "Fecha de inicio" + +#. module: hr_timesheet +#: view:hr.employee:0 +msgid "Categories" +msgstr "Categorías" + +#. module: hr_timesheet +#: constraint:hr.analytic.timesheet:0 +msgid "You cannot modify an entry in a Confirmed/Done timesheet !." +msgstr "" +"No se puede modificar una entrada Confirmado / Hoja de asistencia ya hecha!." + +#. module: hr_timesheet +#: help:hr.employee,product_id:0 +msgid "Specifies employee's designation as a product with type 'service'." +msgstr "" +"Especifica la designación del empleado como un producto de tipo 'servicio'." + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +msgid "Total cost" +msgstr "Coste total" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "September" +msgstr "Septiembre" + +#. module: hr_timesheet +#: model:ir.model,name:hr_timesheet.model_hr_analytic_timesheet +msgid "Timesheet Line" +msgstr "Línea hoja de servicios" + +#. module: hr_timesheet +#: field:hr.analytical.timesheet.users,employee_ids:0 +msgid "employees" +msgstr "Empleados" + +#. module: hr_timesheet +#: view:account.analytic.account:0 +msgid "Stats by month" +msgstr "Estadísticas por mes" + +#. module: hr_timesheet +#: view:account.analytic.account:0 +#: field:hr.analytical.timesheet.employee,month:0 +#: field:hr.analytical.timesheet.users,month:0 +msgid "Month" +msgstr "Mes" + +#. module: hr_timesheet +#: field:hr.sign.out.project,info:0 +msgid "Work Description" +msgstr "Descripción del trabajo" + +#. module: hr_timesheet +#: view:account.analytic.account:0 +msgid "Invoice Analysis" +msgstr "Análisis de facturas" + +#. module: hr_timesheet +#: model:ir.actions.report.xml,name:hr_timesheet.report_user_timesheet +msgid "Employee timesheet" +msgstr "Hoja de asistencia del empleado" + +#. module: hr_timesheet +#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_sign_in +#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_sign_out +msgid "Sign in / Sign out by project" +msgstr "Entrada/salida por proyecto" + +#. module: hr_timesheet +#: model:ir.actions.act_window,name:hr_timesheet.action_define_analytic_structure +msgid "Define your Analytic Structure" +msgstr "Defina su estructura analítica" + +#. module: hr_timesheet +#: view:hr.sign.in.project:0 +msgid "Sign in / Sign out" +msgstr "Registrar entrada/salida" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/hr_timesheet.py:175 +#, python-format +msgid "" +"Analytic journal is not defined for employee %s \n" +"Define an employee for the selected user and assign an analytic journal!" +msgstr "" +"El diario analítico no está definido para el empleado %s\n" +"¡Defina un empleado para el usuario seleccionado y asígnele un diario " +"analítico!" + +#. module: hr_timesheet +#: view:hr.sign.in.project:0 +msgid "(Keep empty for current time)" +msgstr "(Dejarlo vacío para hora actual)" + +#. module: hr_timesheet +#: view:hr.employee:0 +msgid "Timesheets" +msgstr "Hojas de trabajo" + +#. module: hr_timesheet +#: model:ir.actions.act_window,help:hr_timesheet.action_define_analytic_structure +msgid "" +"You should create an analytic account structure depending on your needs to " +"analyse costs and revenues. In OpenERP, analytic accounts are also used to " +"track customer contracts." +msgstr "" +"Debe crear una estructura de la cuenta analítica dependiendo de sus " +"necesidades para analizar los costos e ingresos. En OpenERP, cuentas " +"analíticas también se utilizan para seguimiento de contratos de clientes." + +#. module: hr_timesheet +#: field:hr.analytic.timesheet,line_id:0 +msgid "Analytic Line" +msgstr "Línea Analítica" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "August" +msgstr "Agosto" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "June" +msgstr "Junio" + +#. module: hr_timesheet +#: view:hr.analytical.timesheet.employee:0 +msgid "Print My Timesheet" +msgstr "Imprimir mi horario" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +msgid "Date" +msgstr "Fecha" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "November" +msgstr "Noviembre" + +#. module: hr_timesheet +#: constraint:hr.employee:0 +msgid "Error ! You cannot create recursive Hierarchy of Employees." +msgstr "¡Error! No se puede crear una jerarquía recursiva de empleados." + +#. module: hr_timesheet +#: field:hr.sign.out.project,date:0 +msgid "Closing Date" +msgstr "Fecha de cierre" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "October" +msgstr "Octubre" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "January" +msgstr "Enero" + +#. module: hr_timesheet +#: view:account.analytic.account:0 +msgid "Key dates" +msgstr "Fechas clave" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:43 +#: code:addons/hr_timesheet/report/users_timesheet.py:77 +#, python-format +msgid "Thu" +msgstr "Jueves" + +#. module: hr_timesheet +#: view:account.analytic.account:0 +msgid "Analysis stats" +msgstr "Estadísticas de análisis" + +#. module: hr_timesheet +#: model:ir.model,name:hr_timesheet.model_hr_analytical_timesheet_employee +msgid "Print Employee Timesheet & Print My Timesheet" +msgstr "Imprime el 'Parte de Horas del Empleado' y 'Mi Parte de Horas'" + +#. module: hr_timesheet +#: field:hr.sign.in.project,emp_id:0 +#: field:hr.sign.out.project,emp_id:0 +msgid "Employee ID" +msgstr "ID empleado" + +#. module: hr_timesheet +#: view:hr.sign.out.project:0 +msgid "General Information" +msgstr "Información general" + +#. module: hr_timesheet +#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_my +msgid "My Timesheet" +msgstr "My horario" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "December" +msgstr "Diciembre" + +#. module: hr_timesheet +#: view:hr.analytical.timesheet.employee:0 +#: view:hr.analytical.timesheet.users:0 +#: view:hr.sign.in.project:0 +#: view:hr.sign.out.project:0 +msgid "Cancel" +msgstr "Cancelar" + +#. module: hr_timesheet +#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_users +#: model:ir.actions.report.xml,name:hr_timesheet.report_users_timesheet +#: model:ir.actions.wizard,name:hr_timesheet.wizard_hr_timesheet_users +#: model:ir.ui.menu,name:hr_timesheet.menu_hr_timesheet_users +msgid "Employees Timesheet" +msgstr "Horario de empleados" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +msgid "Information" +msgstr "Información" + +#. module: hr_timesheet +#: field:hr.analytical.timesheet.employee,employee_id:0 +#: model:ir.model,name:hr_timesheet.model_hr_employee +msgid "Employee" +msgstr "Empleado(a)" + +#. module: hr_timesheet +#: model:ir.actions.act_window,help:hr_timesheet.act_hr_timesheet_line_evry1_all_form +msgid "" +"Through this menu you can register and follow your workings hours by project " +"every day." +msgstr "" +"A través de este menú se puede registrar y seguir las horas diarias " +"trabajadas por proyecto." + +#. module: hr_timesheet +#: field:hr.sign.in.project,server_date:0 +#: field:hr.sign.out.project,server_date:0 +msgid "Current Date" +msgstr "Fecha Actual" + +#. module: hr_timesheet +#: view:hr.analytical.timesheet.employee:0 +msgid "This wizard will print monthly timesheet" +msgstr "Este asistente imprimirá el parte de horas mensual" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +#: field:hr.employee,product_id:0 +msgid "Product" +msgstr "Producto" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +msgid "Invoicing" +msgstr "Facturación" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "May" +msgstr "Mayo" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +msgid "Total time" +msgstr "Tiempo total" + +#. module: hr_timesheet +#: view:hr.sign.in.project:0 +msgid "(local time on the server side)" +msgstr "(hora local en el servidor)" + +#. module: hr_timesheet +#: model:ir.model,name:hr_timesheet.model_hr_sign_in_project +msgid "Sign In By Project" +msgstr "Registrarse en un proyecto" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "February" +msgstr "Febrero" + +#. module: hr_timesheet +#: model:ir.model,name:hr_timesheet.model_hr_sign_out_project +msgid "Sign Out By Project" +msgstr "Salir de un proyecto" + +#. module: hr_timesheet +#: view:hr.analytical.timesheet.users:0 +msgid "Employees" +msgstr "Empleados" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "March" +msgstr "Marzo" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "April" +msgstr "Abril" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/hr_timesheet.py:177 +#, python-format +msgid "" +"No analytic account defined on the project.\n" +"Please set one or we can not automatically fill the timesheet." +msgstr "" +"No se ha definido una cuenta analítica para el proyecto.\n" +"Por favor seleccione una o no se puede llenar automáticamente la hoja de " +"asistencia." + +#. module: hr_timesheet +#: view:account.analytic.account:0 +#: view:hr.analytic.timesheet:0 +msgid "Users" +msgstr "Usuarios" + +#. module: hr_timesheet +#: view:hr.sign.in.project:0 +msgid "Start Working" +msgstr "Empezar a trabajar" + +#. module: hr_timesheet +#: view:account.analytic.account:0 +msgid "Stats by user" +msgstr "Estadísticas por usuario" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/wizard/hr_timesheet_print_employee.py:42 +#, python-format +msgid "No employee defined for this user" +msgstr "No se ha definido un empleado para este usuario" + +#. module: hr_timesheet +#: field:hr.analytical.timesheet.employee,year:0 +#: field:hr.analytical.timesheet.users,year:0 +msgid "Year" +msgstr "Año" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +msgid "Accounting" +msgstr "Administración Financiera" + +#. module: hr_timesheet +#: view:hr.sign.out.project:0 +msgid "Change Work" +msgstr "Cambiar trabajo" diff --git a/addons/portal/i18n/fi.po b/addons/portal/i18n/fi.po index 34d567341a3..8b45cf68c24 100644 --- a/addons/portal/i18n/fi.po +++ b/addons/portal/i18n/fi.po @@ -8,47 +8,47 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-27 10:34+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:53+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-28 05:49+0000\n" +"X-Generator: Launchpad (build 15027)\n" #. module: portal #: code:addons/portal/wizard/share_wizard.py:51 #, python-format msgid "Please select at least one user to share with" -msgstr "" +msgstr "Ole hyvä ja valitse ainakin yksi käyttäjä jonka kanssa jaetaan" #. module: portal #: code:addons/portal/wizard/share_wizard.py:55 #, python-format msgid "Please select at least one group to share with" -msgstr "" +msgstr "Ole hyvä ja valitse ainakin yksi ryhmä jonka kanssa jaetaan" #. module: portal #: field:res.portal,group_id:0 msgid "Group" -msgstr "" +msgstr "Ryhmä" #. module: portal #: view:share.wizard:0 #: field:share.wizard,group_ids:0 msgid "Existing groups" -msgstr "" +msgstr "Olemassaolevat ryhmät" #. module: portal #: model:ir.model,name:portal.model_res_portal_wizard_user msgid "Portal User Config" -msgstr "" +msgstr "Porttaalikäyttäjien konfiguraatio" #. module: portal #: view:res.portal.wizard.user:0 msgid "Portal User" -msgstr "" +msgstr "Porttaalikäyttäjä" #. module: portal #: model:res.groups,comment:portal.group_portal_manager @@ -61,57 +61,62 @@ msgstr "" #: help:res.portal,override_menu:0 msgid "Enable this option to override the Menu Action of portal users" msgstr "" +"Aseta tämä vaihtoehto ohittaaksesi porttaalikäyttäjien valikkotoiminnon" #. module: portal #: field:res.portal.wizard.user,user_email:0 msgid "E-mail" -msgstr "" +msgstr "Sähköposti" #. module: portal #: constraint:res.users:0 msgid "The chosen company is not in the allowed companies for this user" -msgstr "" +msgstr "Valittu yritys ei ole sallittu tälle käyttäjälle" #. module: portal #: view:res.portal:0 #: field:res.portal,widget_ids:0 msgid "Widgets" -msgstr "" +msgstr "Sovelmat" #. module: portal #: view:res.portal.wizard:0 msgid "Send Invitations" -msgstr "" +msgstr "Lähetä kutsut" #. module: portal #: view:res.portal:0 msgid "Widgets assigned to Users" -msgstr "" +msgstr "Käyttäjälle määritellyt sovelmat" #. module: portal #: help:res.portal,url:0 msgid "The url where portal users can connect to the server" -msgstr "" +msgstr "Url osoite jossa porttalikäyttäjät voivat ottaa yhteyttä palvelimeen" #. module: portal #: model:res.groups,comment:portal.group_portal_officer msgid "Portal officers can create new portal users with the portal wizard." msgstr "" +"Porttaalipäälliköt voivat luoda uusia porttaalikäyttäjiä käyttäen apuna " +"porttaali avustajaa." #. module: portal #: help:res.portal.wizard,message:0 msgid "This text is included in the welcome email sent to the users" msgstr "" +"Tämä teksti sisältää tervetuloviestin joka lähetetään sähköpostilla " +"käyttäjille" #. module: portal #: help:res.portal,menu_action_id:0 msgid "If set, replaces the standard menu for the portal's users" -msgstr "" +msgstr "Jos asetettu, korvaa vakiovalikon porttaalikäyttäjille" #. module: portal #: field:res.portal.wizard.user,lang:0 msgid "Language" -msgstr "" +msgstr "Kieli" #. module: portal #: view:res.portal:0 @@ -121,32 +126,32 @@ msgstr "Porttaalin nimi" #. module: portal #: view:res.portal.wizard.user:0 msgid "Portal Users" -msgstr "" +msgstr "Porttaalikäyttäjät" #. module: portal #: field:res.portal,override_menu:0 msgid "Override Menu Action of Users" -msgstr "" +msgstr "Ohita käyttäjien valikkotoiminnot" #. module: portal #: field:res.portal,menu_action_id:0 msgid "Menu Action" -msgstr "" +msgstr "Valikkotoiminto" #. module: portal #: field:res.portal.wizard.user,name:0 msgid "User Name" -msgstr "" +msgstr "Käyttäjänimi" #. module: portal #: help:res.portal,group_id:0 msgid "The group corresponding to this portal" -msgstr "" +msgstr "Tätä porttaalia vastaava ryhmä" #. module: portal #: model:ir.model,name:portal.model_res_portal_widget msgid "Portal Widgets" -msgstr "" +msgstr "Porttaalin sovelmat" #. module: portal #: model:ir.model,name:portal.model_res_portal @@ -161,46 +166,46 @@ msgstr "Porttaali" #: code:addons/portal/wizard/portal_wizard.py:35 #, python-format msgid "Your OpenERP account at %(company)s" -msgstr "" +msgstr "OpenERP tunnuksesi kohteessa %(company)s" #. module: portal #: code:addons/portal/portal.py:107 #: code:addons/portal/portal.py:184 #, python-format msgid "%s Menu" -msgstr "" +msgstr "%s - valikko" #. module: portal #: help:res.portal.wizard,portal_id:0 msgid "The portal in which new users must be added" -msgstr "" +msgstr "Porttaali johon uudet käyttäjät pitää lisätä" #. module: portal #: model:ir.model,name:portal.model_res_portal_wizard msgid "Portal Wizard" -msgstr "" +msgstr "Porttaali avustaja" #. module: portal #: help:res.portal,widget_ids:0 msgid "Widgets assigned to portal users" -msgstr "" +msgstr "Porttaalikäyttäjille määritellyt sovelmat" #. module: portal #: code:addons/portal/wizard/portal_wizard.py:163 #, python-format msgid "(missing url)" -msgstr "" +msgstr "(puuttuva url)" #. module: portal #: view:share.wizard:0 #: field:share.wizard,user_ids:0 msgid "Existing users" -msgstr "" +msgstr "Olemassaolevat käyttäjät" #. module: portal #: field:res.portal.wizard.user,wizard_id:0 msgid "Wizard" -msgstr "" +msgstr "Avustaja" #. module: portal #: help:res.portal.wizard.user,user_email:0 @@ -208,6 +213,8 @@ msgid "" "Will be used as user login. Also necessary to send the account information " "to new users" msgstr "" +"Käytettään käyttäjätunnuksena. Myös tarpeellinen käyttäjätietojen " +"lähettämiseksi uusille käyttäjille" #. module: portal #: field:res.portal,parent_menu_id:0 @@ -217,17 +224,17 @@ msgstr "Ylätason valikko" #. module: portal #: field:res.portal,url:0 msgid "URL" -msgstr "" +msgstr "URL" #. module: portal #: field:res.portal.widget,widget_id:0 msgid "Widget" -msgstr "" +msgstr "Sovelma" #. module: portal #: help:res.portal.wizard.user,lang:0 msgid "The language for the user's user interface" -msgstr "" +msgstr "Käyttöliittymän kieli" #. module: portal #: view:res.portal.wizard:0 @@ -237,24 +244,25 @@ msgstr "Peruuta" #. module: portal #: view:res.portal:0 msgid "Website" -msgstr "" +msgstr "Verkkosivusto" #. module: portal #: view:res.portal:0 msgid "Create Parent Menu" -msgstr "" +msgstr "Luo ylätason valikko" #. module: portal #: view:res.portal.wizard:0 msgid "" "The following text will be included in the welcome email sent to users." msgstr "" +"Seuraava teksti sisällytetään käyttäjille lähetettävään tervetuloviestiin" #. module: portal #: code:addons/portal/wizard/portal_wizard.py:135 #, python-format msgid "Email required" -msgstr "" +msgstr "Sähköposti vaaditaan" #. module: portal #: model:ir.model,name:portal.model_res_users @@ -264,7 +272,7 @@ msgstr "" #. module: portal #: constraint:res.portal.wizard.user:0 msgid "Invalid email address" -msgstr "" +msgstr "Virheellinen sähköpostiosoite" #. module: portal #: code:addons/portal/wizard/portal_wizard.py:136 @@ -272,6 +280,8 @@ msgstr "" msgid "" "You must have an email address in your User Preferences to send emails." msgstr "" +"Sinulla pitää olla sähköpostiosoite määriteltynä käyttäjäasetuksissa, jotta " +"voit lähettää sähköpostia" #. module: portal #: model:ir.model,name:portal.model_ir_ui_menu @@ -283,7 +293,7 @@ msgstr "" #: view:res.portal.wizard:0 #: field:res.portal.wizard,user_ids:0 msgid "Users" -msgstr "" +msgstr "Käyttäjät" #. module: portal #: model:ir.actions.act_window,name:portal.portal_list_action @@ -296,33 +306,33 @@ msgstr "Porttaalit" #. module: portal #: help:res.portal,parent_menu_id:0 msgid "The menu action opens the submenus of this menu item" -msgstr "" +msgstr "Valikkotoiminto avaa alavaihtoehdot tälle valikkokohdalle" #. module: portal #: field:res.portal.widget,sequence:0 msgid "Sequence" -msgstr "" +msgstr "Sekvenssi" #. module: portal #: field:res.users,partner_id:0 msgid "Related Partner" -msgstr "" +msgstr "Liittyvä kumppani" #. module: portal #: view:res.portal:0 msgid "Portal Menu" -msgstr "" +msgstr "Porttaalivalikko" #. module: portal #: sql_constraint:res.users:0 msgid "You can not have two users with the same login !" -msgstr "" +msgstr "Kahdella eri käyttäjällä ei voi olla samaa käyttäjätunnusta!" #. module: portal #: view:res.portal.wizard:0 #: field:res.portal.wizard,message:0 msgid "Invitation message" -msgstr "" +msgstr "Kutsuviesti" #. module: portal #: code:addons/portal/wizard/portal_wizard.py:36 @@ -347,24 +357,24 @@ msgstr "" #. module: portal #: model:res.groups,name:portal.group_portal_manager msgid "Manager" -msgstr "" +msgstr "Päällikkö" #. module: portal #: help:res.portal.wizard.user,name:0 msgid "The user's real name" -msgstr "" +msgstr "Käyttäjän oikea nimi" #. module: portal #: model:ir.actions.act_window,name:portal.address_wizard_action #: model:ir.actions.act_window,name:portal.partner_wizard_action #: view:res.portal.wizard:0 msgid "Add Portal Access" -msgstr "" +msgstr "Lisää pääsy porttaaliin" #. module: portal #: field:res.portal.wizard.user,partner_id:0 msgid "Partner" -msgstr "" +msgstr "Yhteistyökumppani" #. module: portal #: model:ir.actions.act_window,help:portal.portal_list_action @@ -380,9 +390,9 @@ msgstr "" #. module: portal #: model:ir.model,name:portal.model_share_wizard msgid "Share Wizard" -msgstr "" +msgstr "Jakovelho" #. module: portal #: model:res.groups,name:portal.group_portal_officer msgid "Officer" -msgstr "" +msgstr "Päällikkö" diff --git a/addons/procurement/i18n/fi.po b/addons/procurement/i18n/fi.po index ccb6453148a..dff8a9552f8 100644 --- a/addons/procurement/i18n/fi.po +++ b/addons/procurement/i18n/fi.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:37+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-27 10:23+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:54+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-28 05:49+0000\n" +"X-Generator: Launchpad (build 15027)\n" #. module: procurement #: view:make.procurement:0 @@ -83,7 +83,7 @@ msgstr "Laske vain varaston minimirajat" #. module: procurement #: view:procurement.order:0 msgid "Temporary Procurement Exceptions" -msgstr "" +msgstr "Väliaikaiset hankinnan poikkeukset" #. module: procurement #: field:procurement.order,company_id:0 @@ -153,7 +153,7 @@ msgstr "" #. module: procurement #: view:procurement.order:0 msgid "Permanent Procurement Exceptions" -msgstr "" +msgstr "Pysyvät hankinnan poikkeukset" #. module: procurement #: view:stock.warehouse.orderpoint:0 @@ -367,7 +367,7 @@ msgstr "Viitteet" #: view:product.product:0 #: field:product.product,orderpoint_ids:0 msgid "Minimum Stock Rule" -msgstr "" +msgstr "Varaston minimirajasääntö" #. module: procurement #: view:res.company:0 @@ -381,6 +381,8 @@ msgid "" "Please check the quantity in procurement order(s), it should not be 0 or " "less!" msgstr "" +"Ole hyvä ja tarkista määrä hankintatilauksilla, sen ei tulisi olla 0 tai " +"vähemmän!" #. module: procurement #: help:procurement.order,procure_method:0 @@ -388,6 +390,8 @@ msgid "" "If you encode manually a Procurement, you probably want to use a make to " "order method." msgstr "" +"Jos haluat syöttäää hankinnan käsin, haluat todennäköisesti käyttää hanki " +"tilaukseen metodia." #. module: procurement #: model:ir.ui.menu,name:procurement.menu_stock_procurement @@ -484,7 +488,7 @@ msgstr "plus" #. module: procurement #: constraint:stock.move:0 msgid "You can not move products from or to a location of the type view." -msgstr "" +msgstr "Et voi siirtää tuotteita paikkaan tai paikasta tässä näkymässä." #. module: procurement #: help:stock.warehouse.orderpoint,active:0 @@ -598,7 +602,7 @@ msgstr "Minimivarastosääntö" #. module: procurement #: help:stock.warehouse.orderpoint,qty_multiple:0 msgid "The procurement quantity will be rounded up to this multiple." -msgstr "" +msgstr "Hankittava määrä joka pyöristetään ylöspäin tähän monikertaan." #. module: procurement #: model:ir.model,name:procurement.model_res_company @@ -638,7 +642,7 @@ msgstr "Tilaa maksimiin" #. module: procurement #: sql_constraint:stock.picking:0 msgid "Reference must be unique per Company!" -msgstr "" +msgstr "Viitteen tulee olla uniikki yrityskohtaisesti!" #. module: procurement #: field:procurement.order,date_close:0 @@ -856,6 +860,8 @@ msgid "" "This wizard will plan the procurement for this product. This procurement may " "generate task, production orders or purchase orders." msgstr "" +"Tämä avustaja auttaa suunnittelemaan hankinnan tälle tuotteelle. Hankinta " +"voi luoda tehtävän, tuotantotilauksia tai ostotilauksia." #. module: procurement #: view:res.company:0 @@ -866,12 +872,12 @@ msgstr "MRP ja logistiikka ajastin" #: code:addons/procurement/procurement.py:138 #, python-format msgid "Cannot delete Procurement Order(s) which are in %s state!" -msgstr "" +msgstr "Ei voida poistaa hankintatilausta joka on %s tilassa!" #. module: procurement #: sql_constraint:res.company:0 msgid "The company name must be unique !" -msgstr "" +msgstr "Yrityksen nimen pitää olla uniikki!" #. module: procurement #: field:mrp.property,name:0 @@ -956,12 +962,12 @@ msgstr "Hankinnan yksityiskohdat" #. module: procurement #: view:procurement.order:0 msgid "Procurement started late" -msgstr "" +msgstr "Hankinta aloitettu myöhässä" #. module: procurement #: constraint:product.product:0 msgid "Error: Invalid ean code" -msgstr "" +msgstr "Virhe: Väärä EAN-koodi" #. module: procurement #: code:addons/procurement/schedulers.py:152 diff --git a/addons/product/i18n/fi.po b/addons/product/i18n/fi.po index 81c5ab4ae09..149e8a05a80 100644 --- a/addons/product/i18n/fi.po +++ b/addons/product/i18n/fi.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:37+0000\n" -"PO-Revision-Date: 2012-03-26 10:55+0000\n" +"PO-Revision-Date: 2012-03-27 09:46+0000\n" "Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" -"X-Generator: Launchpad (build 15011)\n" +"X-Launchpad-Export-Date: 2012-03-28 05:49+0000\n" +"X-Generator: Launchpad (build 15027)\n" #. module: product #: model:product.template,name:product.product_product_ram512_product_template @@ -693,7 +693,7 @@ msgstr "Toimittaja" #. module: product #: field:product.product,qty_available:0 msgid "Quantity On Hand" -msgstr "" +msgstr "Käytettävissä oleva määrä" #. module: product #: model:product.template,name:product.product_product_26_product_template @@ -1481,6 +1481,8 @@ msgid "" "Will change the way procurements are processed. Consumable are product where " "you don't manage stock." msgstr "" +"Muuttaa hankintojen prosessointitavan. Kulutustarvikkeiden varastoja ei " +"hallita." #. module: product #: field:product.pricelist.version,date_start:0 @@ -2156,6 +2158,8 @@ msgid "" "At least one pricelist has no active version !\n" "Please create or activate one." msgstr "" +"Vähintään yhdellä hinnastolla ei ole aktiivista versiota !\n" +"Ole hyvä ja luo tai aktivoi jokin." #. module: product #: field:product.pricelist.item,price_max_margin:0 @@ -2223,7 +2227,7 @@ msgstr "Sarja" #. module: product #: model:product.template,name:product.product_assembly_product_template msgid "Assembly Service Cost" -msgstr "" +msgstr "Kokoonpanopalvelun hinta" #. module: product #: view:product.price_list:0 @@ -2254,7 +2258,7 @@ msgstr "Viiveet" #. module: product #: view:product.product:0 msgid "Both stockable and consumable products" -msgstr "" +msgstr "Sekä varastoitavat että käytettävät tuotteet" #. module: product #: model:process.node,note:product.process_node_product0 @@ -2383,7 +2387,7 @@ msgstr "Myyntihinta" #. module: product #: constraint:product.category:0 msgid "Error ! You cannot create recursive categories." -msgstr "" +msgstr "Virhe! Et voi luoda rekursiivisia kategoroita." #. module: product #: field:product.category,type:0 @@ -2408,7 +2412,7 @@ msgstr "" #. module: product #: constraint:res.partner:0 msgid "Error ! You cannot create recursive associated members." -msgstr "" +msgstr "Virhe! Rekursiivisen kumppanin luonti ei ole sallittu." #. module: product #: field:product.pricelist.item,price_discount:0 diff --git a/addons/project/i18n/fi.po b/addons/project/i18n/fi.po index f67e9f19691..2b4080f327d 100644 --- a/addons/project/i18n/fi.po +++ b/addons/project/i18n/fi.po @@ -8,19 +8,19 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: Raphael Collet (OpenERP) \n" +"PO-Revision-Date: 2012-03-27 10:19+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:57+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-28 05:49+0000\n" +"X-Generator: Launchpad (build 15027)\n" #. module: project #: view:report.project.task.user:0 msgid "New tasks" -msgstr "" +msgstr "Uudet tehtävät" #. module: project #: help:project.task.delegate,new_task_description:0 @@ -41,12 +41,12 @@ msgstr "Valittu yritys ei ole sallittu tälle käyttäjälle" #. module: project #: view:report.project.task.user:0 msgid "Previous Month" -msgstr "" +msgstr "Edellinen kuukausi" #. module: project #: view:report.project.task.user:0 msgid "My tasks" -msgstr "" +msgstr "Omat tehtävät" #. module: project #: field:project.project,warn_customer:0 @@ -81,7 +81,7 @@ msgstr "TARKISTA: " #. module: project #: field:project.task,user_email:0 msgid "User Email" -msgstr "" +msgstr "Käyttäjän sähköposti" #. module: project #: field:project.task,work_ids:0 @@ -93,7 +93,7 @@ msgstr "Työ tehty" #: code:addons/project/project.py:1148 #, python-format msgid "Warning !" -msgstr "" +msgstr "Varoitus !" #. module: project #: model:ir.model,name:project.model_project_task_delegate @@ -108,7 +108,7 @@ msgstr "Tarkistettavat tunnit" #. module: project #: view:project.project:0 msgid "Pending Projects" -msgstr "" +msgstr "Odottavat projektit" #. module: project #: help:project.task,remaining_hours:0 @@ -122,7 +122,7 @@ msgstr "" #. module: project #: view:project.project:0 msgid "Re-open project" -msgstr "" +msgstr "Avaa projekti uudelleen" #. module: project #: help:project.project,priority:0 @@ -191,7 +191,7 @@ msgstr "Yritys" #. module: project #: view:report.project.task.user:0 msgid "Pending tasks" -msgstr "" +msgstr "Odottavat tehtävät" #. module: project #: field:project.task.delegate,prefix:0 @@ -211,7 +211,7 @@ msgstr "Aseta odottamaan" #. module: project #: selection:project.task,priority:0 msgid "Important" -msgstr "" +msgstr "Tarkeä" #. module: project #: model:process.node,note:project.process_node_drafttask0 @@ -258,7 +258,7 @@ msgstr "Päivä" #. module: project #: model:ir.ui.menu,name:project.menu_project_config_project msgid "Projects and Stages" -msgstr "" +msgstr "Projektit ja vaiheet" #. module: project #: view:project.project:0 @@ -295,11 +295,12 @@ msgstr "Omat avoimet tehtävät" msgid "" "Please specify the Project Manager or email address of Project Manager." msgstr "" +"Ole hyvä ja määrittele projektipäällikkö tai hänen sähköpostiosoitteensa." #. module: project #: view:project.task:0 msgid "For cancelling the task" -msgstr "" +msgstr "Peruuttaaksesi tehtävän" #. module: project #: model:ir.model,name:project.model_project_task_work @@ -320,7 +321,7 @@ msgstr "Projekti vs. jäljelläolevat tunnit" #: view:report.project.task.user:0 #: field:report.project.task.user,hours_delay:0 msgid "Avg. Plan.-Eff." -msgstr "" +msgstr "Keskimääräinen suunniteltu tehokkuus" #. module: project #: help:project.task,active:0 @@ -361,7 +362,7 @@ msgstr "" #. module: project #: view:project.task:0 msgid "Show only tasks having a deadline" -msgstr "" +msgstr "Näytä vain tehtävät joilla on takaraja" #. module: project #: selection:project.task,state:0 selection:project.task.history,state:0 @@ -384,7 +385,7 @@ msgstr "Sähköpostin ylätunniste" #. module: project #: view:project.task:0 msgid "Change to Next Stage" -msgstr "" +msgstr "Vaihda seuraavaan vaiheeseen" #. module: project #: model:process.node,name:project.process_node_donetask0 @@ -394,7 +395,7 @@ msgstr "Tehty tehtävä" #. module: project #: field:project.task,color:0 msgid "Color Index" -msgstr "" +msgstr "Väri-indeksi" #. module: project #: model:ir.ui.menu,name:project.menu_definitions view:res.company:0 @@ -404,7 +405,7 @@ msgstr "Konfiguraatio" #. module: project #: view:report.project.task.user:0 msgid "Current Month" -msgstr "" +msgstr "Kuluva kuukausi" #. module: project #: model:process.transition,note:project.process_transition_delegate0 @@ -466,17 +467,17 @@ msgstr "Määräaika" #. module: project #: view:project.task.delegate:0 view:project.task.reevaluate:0 msgid "_Cancel" -msgstr "" +msgstr "_Peruuta" #. module: project #: view:project.task.history.cumulative:0 msgid "Ready" -msgstr "" +msgstr "Valmis" #. module: project #: view:project.task:0 msgid "Change Color" -msgstr "" +msgstr "Vaihda väriä" #. module: project #: constraint:account.analytic.account:0 @@ -492,7 +493,7 @@ msgstr " (kopio)" #. module: project #: view:project.task:0 msgid "New Tasks" -msgstr "" +msgstr "Uudet tehtävät" #. module: project #: view:report.project.task.user:0 field:report.project.task.user,nbr:0 @@ -557,18 +558,18 @@ msgstr "Päivien määrä" #. module: project #: view:project.project:0 msgid "Open Projects" -msgstr "" +msgstr "Avoimet projektit" #. module: project #: code:addons/project/project.py:358 #, python-format msgid "You must assign members on the project '%s' !" -msgstr "" +msgstr "Sinun pitää määritellä projektin jäsenet '%s' !" #. module: project #: view:report.project.task.user:0 msgid "In progress tasks" -msgstr "" +msgstr "Meneillään olevat tehtävät" #. module: project #: help:project.project,progress_rate:0 @@ -592,7 +593,7 @@ msgstr "Projekti tehtävä" #: selection:project.task.history.cumulative,state:0 #: view:report.project.task.user:0 msgid "New" -msgstr "" +msgstr "Uusi" #. module: project #: help:project.task,total_hours:0 @@ -603,7 +604,7 @@ msgstr "Laskettu: käytetty aika + jäljelläoleva aika" #: model:ir.actions.act_window,name:project.action_view_task_history_cumulative #: model:ir.ui.menu,name:project.menu_action_view_task_history_cumulative msgid "Cumulative Flow" -msgstr "" +msgstr "Kumulatiivinen virtaus" #. module: project #: view:report.project.task.user:0 @@ -625,12 +626,12 @@ msgstr "Uudelleenarvioi" #: code:addons/project/project.py:597 #, python-format msgid "%s (copy)" -msgstr "" +msgstr "%s (kopio)" #. module: project #: view:report.project.task.user:0 msgid "OverPass delay" -msgstr "" +msgstr "Ohituksen viive" #. module: project #: selection:project.task,priority:0 @@ -641,7 +642,7 @@ msgstr "Keskitaso" #. module: project #: view:project.task:0 view:project.task.history.cumulative:0 msgid "Pending Tasks" -msgstr "" +msgstr "Odottavat tehtävät" #. module: project #: view:project.task:0 field:project.task,remaining_hours:0 @@ -654,18 +655,18 @@ msgstr "Jäljellä olevat tunnit" #. module: project #: model:ir.model,name:project.model_mail_compose_message msgid "E-mail composition wizard" -msgstr "" +msgstr "Sähköpostin luonti velho" #. module: project #: view:report.project.task.user:0 msgid "Creation Date" -msgstr "" +msgstr "Luontipäivämäärä" #. module: project #: view:project.task:0 field:project.task.history,remaining_hours:0 #: field:project.task.history.cumulative,remaining_hours:0 msgid "Remaining Time" -msgstr "" +msgstr "Jäljellä oleva aika" #. module: project #: field:project.project,planned_hours:0 @@ -788,6 +789,8 @@ msgid "" "You cannot delete a project containing tasks. I suggest you to desactivate " "it." msgstr "" +"Et voi poistaa projekteja jotka sisältävät tehtäviä. Suosittelen että se " +"muutetaan epäaktiiviseen tilaan." #. module: project #: view:project.vs.hours:0 @@ -812,7 +815,7 @@ msgstr "Viivästyneet tunnit" #. module: project #: selection:project.task,priority:0 msgid "Very important" -msgstr "" +msgstr "Erittäin tärkeä" #. module: project #: model:ir.actions.act_window,name:project.action_project_task_user_tree @@ -833,6 +836,8 @@ msgid "" "If you check this field, the project manager will receive an email each time " "a task is completed by his team." msgstr "" +"Jos valitset tämän kentän, projektipäällikkö saa aina sähköpostia kun jokin " +"tehtävä valmistuu" #. module: project #: model:ir.model,name:project.model_project_project @@ -866,7 +871,7 @@ msgstr "Vaiheet" #. module: project #: view:project.task:0 msgid "Change to Previous Stage" -msgstr "" +msgstr "Vaihda edelliseen vaiheeseen" #. module: project #: model:ir.actions.todo.category,name:project.category_project_config @@ -882,7 +887,7 @@ msgstr "Projektin aikayksikkö" #. module: project #: view:report.project.task.user:0 msgid "In progress" -msgstr "" +msgstr "Käynnissä" #. module: project #: model:ir.actions.act_window,name:project.action_project_task_delegate @@ -909,7 +914,7 @@ msgstr "vanhempi" #. module: project #: view:project.task:0 msgid "Mark as Blocked" -msgstr "" +msgstr "Merkitse estetyksi" #. module: project #: model:ir.actions.act_window,help:project.action_view_task @@ -974,7 +979,7 @@ msgstr "Tehtävän vaihe" #. module: project #: model:project.task.type,name:project.project_tt_specification msgid "Design" -msgstr "" +msgstr "Suunnittele" #. module: project #: field:project.task,planned_hours:0 @@ -987,7 +992,7 @@ msgstr "Suunnitellut tunnit" #. module: project #: model:ir.actions.act_window,name:project.action_review_task_stage msgid "Review Task Stages" -msgstr "" +msgstr "Tarkista tehtävän vaiheet" #. module: project #: view:project.project:0 @@ -997,7 +1002,7 @@ msgstr "Tila: (state)s" #. module: project #: help:project.task,sequence:0 msgid "Gives the sequence order when displaying a list of tasks." -msgstr "" +msgstr "Antaa järjestyksen näytettäessä tehtäväluetteloa." #. module: project #: view:project.project:0 view:project.task:0 @@ -1022,7 +1027,7 @@ msgstr "Ylätason tehtävät" #: view:project.task.history.cumulative:0 #: selection:project.task.history.cumulative,kanban_state:0 msgid "Blocked" -msgstr "" +msgstr "Estetty" #. module: project #: help:project.task,progress:0 @@ -1030,11 +1035,13 @@ msgid "" "If the task has a progress of 99.99% you should close the task if it's " "finished or reevaluate the time" msgstr "" +"Jos tehtävän valmistumisaste on 99.99%, sinun tulisi sulkea tehtävä jos se " +"on valmis tai uudelleenarvioida aika." #. module: project #: view:project.project:0 msgid "Contact Address" -msgstr "" +msgstr "kontaktin osoite" #. module: project #: help:project.task,kanban_state:0 @@ -1058,7 +1065,7 @@ msgstr "Laskutus" #. module: project #: view:project.task:0 msgid "For changing to delegate state" -msgstr "" +msgstr "Vaihtaaksesi deletointitilaan" #. module: project #: field:project.task,priority:0 field:report.project.task.user,priority:0 @@ -1085,7 +1092,7 @@ msgstr "" #: code:addons/project/wizard/project_task_delegate.py:81 #, python-format msgid "CHECK: %s" -msgstr "" +msgstr "Tarkista: %s" #. module: project #: view:project.project:0 @@ -1120,7 +1127,7 @@ msgstr "Matala" #: field:project.task,kanban_state:0 field:project.task.history,kanban_state:0 #: field:project.task.history.cumulative,kanban_state:0 msgid "Kanban State" -msgstr "" +msgstr "Kanban tila" #. module: project #: view:project.project:0 @@ -1138,7 +1145,7 @@ msgstr "" #. module: project #: view:project.task:0 msgid "Change Type" -msgstr "" +msgstr "Vaihda tyyppi" #. module: project #: help:project.project,members:0 @@ -1157,7 +1164,7 @@ msgstr "Projektipäällikkö" #. module: project #: view:project.task:0 view:res.partner:0 msgid "For changing to done state" -msgstr "" +msgstr "Vaihtaaksesi valmis tilaan" #. module: project #: model:ir.model,name:project.model_report_project_task_user @@ -1174,7 +1181,7 @@ msgstr "Elokuu" #: selection:project.task.history,kanban_state:0 #: selection:project.task.history.cumulative,kanban_state:0 msgid "Normal" -msgstr "" +msgstr "Normaali" #. module: project #: view:project.project:0 field:project.project,complete_name:0 @@ -1185,7 +1192,7 @@ msgstr "Projektin nimi" #: model:ir.model,name:project.model_project_task_history #: model:ir.model,name:project.model_project_task_history_cumulative msgid "History of Tasks" -msgstr "" +msgstr "Tehtävähistoria" #. module: project #: help:project.task.delegate,state:0 @@ -1200,7 +1207,7 @@ msgstr "" #: code:addons/project/wizard/mail_compose_message.py:45 #, python-format msgid "Please specify the Customer or email address of Customer." -msgstr "" +msgstr "Ole hyvä ja määrittele asiakas tai asiakkaan sähköpostiosoite." #. module: project #: selection:report.project.task.user,month:0 @@ -1232,7 +1239,7 @@ msgstr "Uudelleen aktivoi" #. module: project #: model:res.groups,name:project.group_project_user msgid "User" -msgstr "" +msgstr "Käyttäjä" #. module: project #: field:project.project,active:0 @@ -1253,7 +1260,7 @@ msgstr "Marraskuu" #. module: project #: model:ir.actions.act_window,name:project.action_create_initial_projects_installer msgid "Create your Firsts Projects" -msgstr "" +msgstr "Luo ensimmäiset projektisi" #. module: project #: code:addons/project/project.py:229 @@ -1264,7 +1271,7 @@ msgstr "Projekti '%s' on suljettu" #. module: project #: view:project.task.history.cumulative:0 msgid "Tasks's Cumulative Flow" -msgstr "" +msgstr "Tehtävien kumulatiivinen virtaus" #. module: project #: view:project.task:0 @@ -1279,7 +1286,7 @@ msgstr "Lokakuu" #. module: project #: view:project.task:0 msgid "Validate planned time and open task" -msgstr "" +msgstr "Tarkista suunniteltu aika ja avaa tehtävä" #. module: project #: help:project.task,delay_hours:0 @@ -1293,7 +1300,7 @@ msgstr "" #. module: project #: view:project.task:0 msgid "Delegations History" -msgstr "" +msgstr "Delegointien historia" #. module: project #: model:ir.model,name:project.model_res_users @@ -1322,7 +1329,7 @@ msgstr "Yritykset" #. module: project #: view:project.project:0 msgid "Projects in which I am a member." -msgstr "" +msgstr "Projektit joissa olen jäsenenä" #. module: project #: view:project.project:0 @@ -1414,7 +1421,7 @@ msgstr "Laajennetut Suotimet..." #: code:addons/project/project.py:1148 #, python-format msgid "Please delete the project linked with this account first." -msgstr "" +msgstr "Ole hyvä ja poista tähän tunnukseen linkitetty projekti ensin." #. module: project #: field:project.task,total_hours:0 field:project.vs.hours,total_hours:0 @@ -1436,7 +1443,7 @@ msgstr "Tila" #: code:addons/project/project.py:925 #, python-format msgid "Delegated User should be specified" -msgstr "" +msgstr "Delegoitu käyttäjä tulisi olla määriteltynä" #. module: project #: code:addons/project/project.py:862 @@ -1512,7 +1519,7 @@ msgstr "Käynnissä" #. module: project #: view:project.task.history.cumulative:0 msgid "Task's Analysis" -msgstr "" +msgstr "Tehtävien analyysi" #. module: project #: code:addons/project/project.py:789 @@ -1521,11 +1528,13 @@ msgid "" "Child task still open.\n" "Please cancel or complete child task first." msgstr "" +"Alatason tehtävä yhä avoin.\n" +"Ole hyvä ja peruuta tai merkitse valmiiksi se ensin." #. module: project #: view:project.task.type:0 msgid "Stages common to all projects" -msgstr "" +msgstr "Kaikille projekteille yhteiset vaiheet" #. module: project #: constraint:project.task:0 @@ -1547,7 +1556,7 @@ msgstr "Työaika" #. module: project #: view:project.project:0 msgid "Projects in which I am a manager" -msgstr "" +msgstr "Projektit joissa olen päällikkönä" #. module: project #: code:addons/project/project.py:959 @@ -1583,7 +1592,7 @@ msgstr "Erittäin vähäinen" #. module: project #: help:project.project,resource_calendar_id:0 msgid "Timetable working hours to adjust the gantt diagram report" -msgstr "" +msgstr "Aikatauluta työtunnit säätääkseksi gantt diagrammin raporttia" #. module: project #: field:project.project,warn_manager:0 @@ -1684,7 +1693,7 @@ msgstr "Omat laskutettavat tilit" #. module: project #: model:project.task.type,name:project.project_tt_merge msgid "Deployment" -msgstr "" +msgstr "Käyttöönotto" #. module: project #: field:project.project,tasks:0 @@ -1708,7 +1717,7 @@ msgstr "" #. module: project #: field:project.task.type,project_default:0 msgid "Common to All Projects" -msgstr "" +msgstr "Yhteinen kaikille projekteille" #. module: project #: model:process.transition,note:project.process_transition_opendonetask0 @@ -1741,7 +1750,7 @@ msgstr "Tehtävä päivien mukaan" #. module: project #: sql_constraint:res.company:0 msgid "The company name must be unique !" -msgstr "" +msgstr "Yrityksen nimi on jo käytössä!" #. module: project #: view:project.task:0 @@ -1761,7 +1770,7 @@ msgstr "Työn yhteenveto" #. module: project #: view:project.task.history.cumulative:0 msgid "Month-2" -msgstr "" +msgstr "Toissakuukausi" #. module: project #: help:report.project.task.user,closing_days:0 @@ -1771,7 +1780,7 @@ msgstr "Päivien määrä tehtävän valmistumiseksi" #. module: project #: view:project.task.history.cumulative:0 view:report.project.task.user:0 msgid "Month-1" -msgstr "" +msgstr "Edellinen kuukausi" #. module: project #: selection:report.project.task.user,month:0 @@ -1796,7 +1805,7 @@ msgstr "Avaa valmiiksimerkitty tehtävä" #. module: project #: view:project.task.type:0 msgid "Common" -msgstr "" +msgstr "Yhteinen" #. module: project #: view:project.task:0 @@ -1824,7 +1833,7 @@ msgstr "Tehtävä '%s' on suljettu" #. module: project #: field:project.task,id:0 msgid "ID" -msgstr "" +msgstr "TUNNISTE (ID)" #. module: project #: model:ir.actions.act_window,name:project.action_view_task_history_burndown @@ -1835,7 +1844,7 @@ msgstr "" #. module: project #: model:ir.actions.act_window,name:project.act_res_users_2_project_task_opened msgid "Assigned Tasks" -msgstr "" +msgstr "Määritellyt tehtävät" #. module: project #: model:ir.actions.act_window,name:project.action_view_task_overpassed_draft @@ -1845,12 +1854,12 @@ msgstr "Ohitetut tehtävät" #. module: project #: view:report.project.task.user:0 msgid "Current Year" -msgstr "" +msgstr "Kuluva vuosi" #. module: project #: constraint:res.partner:0 msgid "Error ! You cannot create recursive associated members." -msgstr "" +msgstr "Virhe! Rekursiivisen kumppanin luonti ei ole sallittu." #. module: project #: field:project.project,priority:0 field:project.project,sequence:0 @@ -1930,7 +1939,7 @@ msgstr "Tehtävä '%s' on peruttu" #. module: project #: view:project.task:0 view:res.partner:0 msgid "For changing to open state" -msgstr "" +msgstr "Vaihtaaksesi avoimeen tilaan" #. module: project #: model:ir.model,name:project.model_res_partner view:project.project:0 @@ -1964,4 +1973,4 @@ msgstr "Sähköpostiviestin alatunnite" #. module: project #: view:project.task:0 view:project.task.history.cumulative:0 msgid "In Progress Tasks" -msgstr "" +msgstr "Meneilläänolevat tehtävät" diff --git a/addons/project_long_term/i18n/fi.po b/addons/project_long_term/i18n/fi.po index 38490b8a466..b6437fa561a 100644 --- a/addons/project_long_term/i18n/fi.po +++ b/addons/project_long_term/i18n/fi.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:37+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: Pekka Pylvänäinen \n" +"PO-Revision-Date: 2012-03-27 10:01+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:59+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-28 05:49+0000\n" +"X-Generator: Launchpad (build 15027)\n" #. module: project_long_term #: model:ir.actions.act_window,name:project_long_term.act_project_phases @@ -42,12 +42,12 @@ msgstr "Ryhmittely.." #. module: project_long_term #: field:project.phase,user_ids:0 msgid "Assigned Users" -msgstr "" +msgstr "Määritellyt käyttäjät" #. module: project_long_term #: field:project.phase,progress:0 msgid "Progress" -msgstr "" +msgstr "Edistyminen" #. module: project_long_term #: constraint:project.project:0 @@ -57,7 +57,7 @@ msgstr "Virhe: projektin alkupäivä tulee olla aikaisempi kuin loppupäivä." #. module: project_long_term #: view:project.phase:0 msgid "In Progress Phases" -msgstr "" +msgstr "Meneillään olevat vaiheet" #. module: project_long_term #: view:project.phase:0 @@ -88,7 +88,7 @@ msgstr "Päivä" #. module: project_long_term #: model:ir.model,name:project_long_term.model_project_user_allocation msgid "Phase User Allocation" -msgstr "" +msgstr "Vaiheen käyttäjien allokointi" #. module: project_long_term #: model:ir.model,name:project_long_term.model_project_task @@ -128,7 +128,7 @@ msgstr "Mittayksikkö (UoM) on keston mittayksikkö" #: view:project.phase:0 #: view:project.user.allocation:0 msgid "Planning of Users" -msgstr "" +msgstr "Käyttäjien suunnittelu" #. module: project_long_term #: help:project.phase,date_end:0 @@ -172,7 +172,7 @@ msgstr "Määräaika" #. module: project_long_term #: selection:project.compute.phases,target_project:0 msgid "Compute All My Projects" -msgstr "" +msgstr "Laske kaikki omat projektit" #. module: project_long_term #: view:project.compute.phases:0 @@ -189,7 +189,7 @@ msgstr " (kopio)" #. module: project_long_term #: view:project.user.allocation:0 msgid "Project User Allocation" -msgstr "" +msgstr "Projektin käyttäjien allokaatio" #. module: project_long_term #: view:project.phase:0 @@ -201,18 +201,18 @@ msgstr "Tila" #: view:project.compute.phases:0 #: view:project.compute.tasks:0 msgid "C_ompute" -msgstr "" +msgstr "Laske" #. module: project_long_term #: view:project.phase:0 #: selection:project.phase,state:0 msgid "New" -msgstr "" +msgstr "Uusi" #. module: project_long_term #: help:project.phase,progress:0 msgid "Computed based on related tasks" -msgstr "" +msgstr "Laskettu liittyvien tehtävien pohjalta" #. module: project_long_term #: field:project.phase,product_uom:0 @@ -233,7 +233,7 @@ msgstr "Resurssit" #. module: project_long_term #: view:project.phase:0 msgid "My Projects" -msgstr "" +msgstr "Omat projektit" #. module: project_long_term #: help:project.user.allocation,date_start:0 @@ -248,13 +248,13 @@ msgstr "Liittyvät tehtävät" #. module: project_long_term #: view:project.phase:0 msgid "New Phases" -msgstr "" +msgstr "Uudet vaiheet" #. module: project_long_term #: code:addons/project_long_term/wizard/project_compute_phases.py:48 #, python-format msgid "Please specify a project to schedule." -msgstr "" +msgstr "Ole hyvä ja määrittele ajoitettava projekti." #. module: project_long_term #: help:project.phase,constraint_date_start:0 @@ -288,7 +288,7 @@ msgstr "Vaiheen alkupäivän tulee olla aikaisempi kuin loppupäivä." #. module: project_long_term #: view:project.phase:0 msgid "Start Month" -msgstr "" +msgstr "Aloituskuukausi" #. module: project_long_term #: field:project.phase,date_start:0 @@ -305,7 +305,7 @@ msgstr "pakota vaihe valmistumaan ennen tätä päivää" #: help:project.phase,user_ids:0 msgid "" "The ressources on the project can be computed automatically by the scheduler" -msgstr "" +msgstr "Projektin resurssit voidaan laskea automaattisesti ajastimen avulla." #. module: project_long_term #: view:project.phase:0 @@ -315,7 +315,7 @@ msgstr "Luonnos" #. module: project_long_term #: view:project.phase:0 msgid "Pending Phases" -msgstr "" +msgstr "Odottavat vaiheet" #. module: project_long_term #: view:project.phase:0 @@ -392,7 +392,7 @@ msgstr "Työaika" #: model:ir.ui.menu,name:project_long_term.menu_compute_phase #: view:project.compute.phases:0 msgid "Schedule Phases" -msgstr "" +msgstr "Ajoita vaiheet" #. module: project_long_term #: view:project.phase:0 @@ -407,7 +407,7 @@ msgstr "Tunnit yhteensä" #. module: project_long_term #: view:project.user.allocation:0 msgid "Users" -msgstr "" +msgstr "Käyttäjät" #. module: project_long_term #: view:project.user.allocation:0 @@ -448,7 +448,7 @@ msgstr "Kesto" #. module: project_long_term #: view:project.phase:0 msgid "Project Users" -msgstr "" +msgstr "Projektin käyttäjät" #. module: project_long_term #: model:ir.model,name:project_long_term.model_project_phase @@ -503,7 +503,7 @@ msgstr "Oletuksena päivissä" #: view:project.phase:0 #: field:project.phase,user_force_ids:0 msgid "Force Assigned Users" -msgstr "" +msgstr "Pakota määritellyt käyttäjät" #. module: project_long_term #: model:ir.ui.menu,name:project_long_term.menu_phase_schedule diff --git a/addons/purchase/i18n/es_EC.po b/addons/purchase/i18n/es_EC.po index e9af344c5dc..b1a10a40da4 100644 --- a/addons/purchase/i18n/es_EC.po +++ b/addons/purchase/i18n/es_EC.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-03-27 00:31+0000\n" +"PO-Revision-Date: 2012-03-27 17:28+0000\n" "Last-Translator: Javier Chogllo \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-27 05:36+0000\n" -"X-Generator: Launchpad (build 15011)\n" +"X-Launchpad-Export-Date: 2012-03-28 05:49+0000\n" +"X-Generator: Launchpad (build 15027)\n" #. module: purchase #: model:process.transition,note:purchase.process_transition_confirmingpurchaseorder0 @@ -35,7 +35,7 @@ msgstr "Productos de entrada a controlar" #. module: purchase #: field:purchase.order,invoiced:0 msgid "Invoiced & Paid" -msgstr "Facturada & Pagada (conciliada)" +msgstr "Facturado & Pagado" #. module: purchase #: field:purchase.order,location_id:0 view:purchase.report:0 @@ -52,7 +52,7 @@ msgstr "¡Debe cancelar el pedido de compra antes de poder eliminarlo!" #. module: purchase #: help:purchase.report,date:0 msgid "Date on which this document has been created" -msgstr "Fecha en el que fue creado este documento." +msgstr "Fecha en la que fue creado este documento." #. module: purchase #: view:purchase.order:0 view:purchase.order.line:0 view:purchase.report:0 @@ -78,12 +78,12 @@ msgid "" "supplier invoices: based on the order, based on the receptions or manual " "encoding." msgstr "" -"Puede crear una solicitud de cotización cuando se desea comprar productos a " +"Puede crear una solicitud de presupuesto cuando se desea comprar productos a " "un proveedor, pero la compra no está confirmada todavía. Utilice también " -"este menú para ver las solicitudes de cotización creadas automáticamente " +"este menú para ver las solicitudes de presupuesto creadas automáticamente " "basado en sus reglas de logística (stock mínimo, objetivo a medio plazo, " -"etc.) Puede convertir la solicitud de pedido en una orden de compra una vez " -"que la orden se confirma. Si utiliza la interfaz extendida (de las " +"etc.) Puede convertir la solicitud de presupuesto en una orden de compra una " +"vez que la orden se confirma. Si utiliza la interfaz extendida (de las " "preferencias del usuario), puede seleccionar la forma de controlar sus " "facturas de proveedores: basado en el orden, basado en las recepciones o " "manualmente." @@ -708,7 +708,7 @@ msgstr "El proveedor seleccionado sólo vende este producto por %s" #. module: purchase #: view:purchase.report:0 msgid "Reference UOM" -msgstr "Referencia UOM" +msgstr "Referencia UdM" #. module: purchase #: field:purchase.order.line,product_qty:0 view:purchase.report:0 @@ -813,25 +813,25 @@ msgstr "Eviar email automático pedidos de compra confirmados" #. module: purchase #: model:process.transition,name:purchase.process_transition_approvingpurchaseorder0 msgid "Approbation" -msgstr "" +msgstr "Aprobación" #. module: purchase #: report:purchase.order:0 view:purchase.order:0 #: field:purchase.order,date_order:0 field:purchase.order.line,date_order:0 #: field:purchase.report,date:0 view:stock.picking:0 msgid "Order Date" -msgstr "" +msgstr "Fecha del Pedido" #. module: purchase #: constraint:stock.move:0 msgid "You must assign a production lot for this product" -msgstr "" +msgstr "Debe asignar un lote de producción para este producto" #. module: purchase #: model:ir.model,name:purchase.model_res_partner #: field:purchase.order.line,partner_id:0 view:stock.picking:0 msgid "Partner" -msgstr "" +msgstr "Partner" #. module: purchase #: model:process.node,name:purchase.process_node_invoiceafterpacking0 @@ -847,7 +847,7 @@ msgstr "Ctdad" #. module: purchase #: view:purchase.report:0 msgid "Month-1" -msgstr "" +msgstr "Mes-1" #. module: purchase #: help:purchase.order,minimum_planned_date:0 @@ -861,63 +861,63 @@ msgstr "" #. module: purchase #: model:ir.model,name:purchase.model_purchase_order_group msgid "Purchase Order Merge" -msgstr "" +msgstr "Mezclar Orden de Compra" #. module: purchase #: view:purchase.report:0 msgid "Order in current month" -msgstr "" +msgstr "Pedido en mes actual" #. module: purchase #: view:purchase.report:0 field:purchase.report,delay_pass:0 msgid "Days to Deliver" -msgstr "" +msgstr "Días para entregar" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_action_picking_tree_in_move #: model:ir.ui.menu,name:purchase.menu_procurement_management_inventory msgid "Receive Products" -msgstr "" +msgstr "Recibir Productos" #. module: purchase #: model:ir.model,name:purchase.model_procurement_order msgid "Procurement" -msgstr "" +msgstr "Abastecimiento" #. module: purchase #: view:purchase.order:0 field:purchase.order,invoice_ids:0 msgid "Invoices" -msgstr "" +msgstr "Facturas" #. module: purchase #: selection:purchase.report,month:0 msgid "December" -msgstr "" +msgstr "Diciembre" #. module: purchase #: field:purchase.config.wizard,config_logo:0 msgid "Image" -msgstr "" +msgstr "Imágen" #. module: purchase #: view:purchase.report:0 msgid "Total Orders Lines by User per month" -msgstr "" +msgstr "Total líneas de pedido por usuario al mes" #. module: purchase #: view:purchase.order:0 msgid "Approved purchase orders" -msgstr "" +msgstr "Pedidos de compra aprobados" #. module: purchase #: view:purchase.report:0 field:purchase.report,month:0 msgid "Month" -msgstr "" +msgstr "Mes" #. module: purchase #: model:email.template,subject:purchase.email_template_edi_purchase msgid "${object.company_id.name} Order (Ref ${object.name or 'n/a' })" -msgstr "" +msgstr "${object.company_id.name} Pedido (Ref ${object.name or 'n/a' })" #. module: purchase #: report:purchase.quotation:0 @@ -932,12 +932,12 @@ msgstr "Pedido de compra esperando aprobación" #. module: purchase #: view:purchase.order:0 msgid "Total Untaxed amount" -msgstr "" +msgstr "Total importe base" #. module: purchase #: model:res.groups,name:purchase.group_purchase_user msgid "User" -msgstr "" +msgstr "Usuario" #. module: purchase #: field:purchase.order,shipped:0 field:purchase.order,shipped_rate:0 @@ -947,7 +947,7 @@ msgstr "Recibido" #. module: purchase #: model:process.node,note:purchase.process_node_packinglist0 msgid "List of ordered products." -msgstr "" +msgstr "Lista de productos solicitados." #. module: purchase #: help:purchase.order,picking_ids:0 @@ -958,18 +958,18 @@ msgstr "Ésta es la lista de albaranes generados por esta compra" #. module: purchase #: view:stock.picking:0 msgid "Is a Back Order" -msgstr "" +msgstr "Es un pedido pendiente" #. module: purchase #: model:process.node,note:purchase.process_node_invoiceafterpacking0 #: model:process.node,note:purchase.process_node_invoicecontrol0 msgid "To be reviewed by the accountant." -msgstr "" +msgstr "Para ser revisado por contabilidad." #. module: purchase #: help:purchase.order,amount_total:0 msgid "The total amount" -msgstr "" +msgstr "El importe total." #. module: purchase #: report:purchase.order:0 @@ -984,13 +984,13 @@ msgstr "Facturado" #. module: purchase #: view:purchase.report:0 field:purchase.report,category_id:0 msgid "Category" -msgstr "" +msgstr "Categoría" #. module: purchase #: model:process.node,note:purchase.process_node_approvepurchaseorder0 #: model:process.node,note:purchase.process_node_confirmpurchaseorder0 msgid "State of the Purchase Order." -msgstr "" +msgstr "Estado del pedido de compra." #. module: purchase #: field:purchase.order,dest_address_id:0 @@ -1000,27 +1000,27 @@ msgstr "Dirección destinatario" #. module: purchase #: field:purchase.report,state:0 msgid "Order State" -msgstr "" +msgstr "Estado del pedido" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_product_category_config_purchase msgid "Product Categories" -msgstr "" +msgstr "Categorías de productos" #. module: purchase #: selection:purchase.config.wizard,default_method:0 msgid "Pre-Generate Draft Invoices based on Purchase Orders" -msgstr "" +msgstr "Pre-Generar Facturas en borrador en base a pedidos de compra" #. module: purchase #: model:ir.actions.act_window,name:purchase.action_view_purchase_line_invoice msgid "Create invoices" -msgstr "" +msgstr "Crear facturas" #. module: purchase #: sql_constraint:res.company:0 msgid "The company name must be unique !" -msgstr "" +msgstr "¡El nombre de la compañía debe ser único!" #. module: purchase #: model:ir.model,name:purchase.model_purchase_order_line @@ -1036,24 +1036,25 @@ msgstr "Vista calendario" #. module: purchase #: selection:purchase.config.wizard,default_method:0 msgid "Based on Purchase Order Lines" -msgstr "" +msgstr "Basado en las líneas de pedidos de compra" #. module: purchase #: help:purchase.order,amount_untaxed:0 msgid "The amount without tax" -msgstr "" +msgstr "El importe sin impuestos" #. module: purchase #: code:addons/purchase/purchase.py:754 #, python-format msgid "Selected UOM does not belong to the same category as the product UOM" msgstr "" +"UdM seleccionada no pertenece a la misma categoría que la UdM del producto" #. module: purchase #: code:addons/purchase/purchase.py:907 #, python-format msgid "PO: %s" -msgstr "" +msgstr "PO: %s" #. module: purchase #: model:process.transition,note:purchase.process_transition_purchaseinvoice0 @@ -1062,6 +1063,9 @@ msgid "" "the buyer. Depending on the Invoicing control of the purchase order, the " "invoice is based on received or on ordered quantities." msgstr "" +"Un pedido de compra genera una factura de proveedor, tan pronto como la " +"confirme el comprador. En función del control de facturación del pedido de " +"compra, la factura se basa en las cantidades recibidas u ordenadas." #. module: purchase #: field:purchase.order,amount_untaxed:0 @@ -1071,22 +1075,22 @@ msgstr "Base imponible" #. module: purchase #: help:purchase.order,invoiced:0 msgid "It indicates that an invoice has been paid" -msgstr "" +msgstr "Indica que una factura ha sido pagada." #. module: purchase #: model:process.node,note:purchase.process_node_packinginvoice0 msgid "Outgoing products to invoice" -msgstr "" +msgstr "Productos salientes a facturar" #. module: purchase #: selection:purchase.report,month:0 msgid "August" -msgstr "" +msgstr "Agosto" #. module: purchase #: constraint:stock.move:0 msgid "You try to assign a lot which is not from the same product" -msgstr "" +msgstr "Está intentando asignar un lote que no es del mismo producto" #. module: purchase #: help:purchase.order,date_order:0 @@ -1096,12 +1100,12 @@ msgstr "Fecha de la creación de este documento." #. module: purchase #: view:res.partner:0 msgid "Sales & Purchases" -msgstr "" +msgstr "Ventas & Compras" #. module: purchase #: selection:purchase.report,month:0 msgid "June" -msgstr "" +msgstr "Junio" #. module: purchase #: model:process.transition,note:purchase.process_transition_invoicefrompurchase0 @@ -1110,22 +1114,25 @@ msgid "" "order is 'On order'. The invoice can also be generated manually by the " "accountant (Invoice control = Manual)." msgstr "" +"Se crea automáticamente la factura si el control de facturación del pedido " +"de compra es 'Desde pedido'. La factura también puede ser generada " +"manualmente por el contable (control facturación = Manual)." #. module: purchase #: model:ir.actions.act_window,name:purchase.action_email_templates #: model:ir.ui.menu,name:purchase.menu_email_templates msgid "Email Templates" -msgstr "" +msgstr "Plantillas de email" #. module: purchase #: model:ir.model,name:purchase.model_purchase_report msgid "Purchases Orders" -msgstr "" +msgstr "Pedidos de compra" #. module: purchase #: view:purchase.order.line:0 msgid "Manual Invoices" -msgstr "" +msgstr "Facturas manuales" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_procurement_management_invoice @@ -1136,28 +1143,28 @@ msgstr "Control factura" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_purchase_uom_categ_form_action msgid "UoM Categories" -msgstr "" +msgstr "Categorías UdM" #. module: purchase #: selection:purchase.report,month:0 msgid "November" -msgstr "" +msgstr "Noviembre" #. module: purchase #: view:purchase.report:0 msgid "Extended Filters..." -msgstr "" +msgstr "Filtros extendidos..." #. module: purchase #: view:purchase.config.wizard:0 msgid "Invoicing Control on Purchases" -msgstr "" +msgstr "Control de facturación en compras" #. module: purchase #: code:addons/purchase/wizard/purchase_order_group.py:48 #, python-format msgid "Please select multiple order to merge in the list view." -msgstr "" +msgstr "Seleccione múltiples pedidos a mezclar en la vista de lista." #. module: purchase #: model:ir.actions.act_window,help:purchase.action_import_create_supplier_installer @@ -1166,21 +1173,24 @@ msgid "" "can import your existing partners by CSV spreadsheet from \"Import Data\" " "wizard" msgstr "" +"Puede crear o importar los contactos de sus proveedores de forma manual " +"desde este formulario o puede importar sus actuales socios de una hoja de " +"cálculo CSV mediante el asistente \"Importar datos\"" #. module: purchase #: model:process.transition,name:purchase.process_transition_createpackinglist0 msgid "Pick list generated" -msgstr "" +msgstr "Albarán generado" #. module: purchase #: view:purchase.order:0 msgid "Exception" -msgstr "" +msgstr "Excepción" #. module: purchase #: selection:purchase.report,month:0 msgid "October" -msgstr "" +msgstr "Octubre" #. module: purchase #: view:purchase.order:0 @@ -1190,17 +1200,17 @@ msgstr "Calcular" #. module: purchase #: view:stock.picking:0 msgid "Incoming Shipments Available" -msgstr "" +msgstr "Envíos por Recibir" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_purchase_partner_cat msgid "Address Book" -msgstr "" +msgstr "Libreta de direcciones" #. module: purchase #: model:ir.model,name:purchase.model_res_company msgid "Companies" -msgstr "" +msgstr "Compañías" #. module: purchase #: view:purchase.order:0 @@ -1211,12 +1221,12 @@ msgstr "Cancelar pedido de compra" #: code:addons/purchase/purchase.py:411 code:addons/purchase/purchase.py:418 #, python-format msgid "Unable to cancel this purchase order!" -msgstr "" +msgstr "¡No se puede cancelar este pedido de compra!" #. module: purchase #: model:process.transition,note:purchase.process_transition_createpackinglist0 msgid "A pick list is generated to track the incoming products." -msgstr "" +msgstr "Se genera un albarán para el seguimiento de los productos entrantes." #. module: purchase #: help:purchase.order,pricelist_id:0 @@ -1230,32 +1240,32 @@ msgstr "" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_purchase_deshboard msgid "Dashboard" -msgstr "" +msgstr "Panel de Control" #. module: purchase #: sql_constraint:stock.picking:0 msgid "Reference must be unique per Company!" -msgstr "" +msgstr "¡La referencia debe ser única por Compañia!" #. module: purchase #: view:purchase.report:0 field:purchase.report,price_standard:0 msgid "Products Value" -msgstr "" +msgstr "Valor productos" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_partner_categories_in_form msgid "Partner Categories" -msgstr "" +msgstr "Categorías de empresas" #. module: purchase #: help:purchase.order,amount_tax:0 msgid "The tax amount" -msgstr "" +msgstr "El importe impuestos" #. module: purchase #: view:purchase.order:0 view:purchase.report:0 msgid "Quotations" -msgstr "" +msgstr "Peticiones" #. module: purchase #: help:purchase.order,invoice_method:0 @@ -1265,27 +1275,34 @@ msgid "" "Based on generated invoice: create a draft invoice you can validate later.\n" "Based on receptions: let you create an invoice when receptions are validated." msgstr "" +"Basada en las líneas del pedido de compra: líneas individuales en lugar de " +"'Control de facturas > Basada en las líneas del P.O.' desde donde se puede " +"crear de forma selectiva una factura.\n" +"Basada en factura generada por: crear una factura en borrador que puede ser " +"validada después.\n" +"Basada en recepciones: permite crear una factura cuando se validan las " +"recepciones." #. module: purchase #: model:ir.actions.act_window,name:purchase.action_supplier_address_form msgid "Addresses" -msgstr "" +msgstr "Direcciones" #. module: purchase #: model:ir.actions.act_window,name:purchase.purchase_rfq #: model:ir.ui.menu,name:purchase.menu_purchase_rfq msgid "Requests for Quotation" -msgstr "" +msgstr "Solicitudes de presupuesto" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_product_by_category_purchase_form msgid "Products by Category" -msgstr "" +msgstr "Productos por categoría" #. module: purchase #: view:purchase.report:0 field:purchase.report,delay:0 msgid "Days to Validate" -msgstr "" +msgstr "Días a validar" #. module: purchase #: help:purchase.order,origin:0 @@ -1296,7 +1313,7 @@ msgstr "" #. module: purchase #: view:purchase.order:0 msgid "Purchase orders which are not approved yet." -msgstr "" +msgstr "Pedidos de compra no aprobados aún" #. module: purchase #: help:purchase.order,state:0 @@ -1336,14 +1353,14 @@ msgstr "Pedido de compra '%s' está confirmado." #. module: purchase #: help:purchase.order,date_approve:0 msgid "Date on which purchase order has been approved" -msgstr "" +msgstr "Fecha en que el pedido de compra ha sido aprobado." #. module: purchase #: view:purchase.order:0 field:purchase.order,state:0 #: view:purchase.order.line:0 field:purchase.order.line,state:0 #: view:purchase.report:0 view:stock.picking:0 msgid "State" -msgstr "" +msgstr "Estado" #. module: purchase #: model:process.node,name:purchase.process_node_approvepurchaseorder0 @@ -1355,12 +1372,12 @@ msgstr "Aprobado" #. module: purchase #: view:purchase.order.line:0 msgid "General Information" -msgstr "" +msgstr "Información general" #. module: purchase #: view:purchase.order:0 msgid "Not invoiced" -msgstr "" +msgstr "No facturado" #. module: purchase #: report:purchase.order:0 field:purchase.order.line,price_unit:0 @@ -1388,7 +1405,7 @@ msgstr "Factura" #. module: purchase #: model:process.node,note:purchase.process_node_purchaseorder0 msgid "Confirmed purchase order to invoice" -msgstr "" +msgstr "Pedido de compra confirmado para facturar" #. module: purchase #: model:process.transition.action,name:purchase.process_transition_action_approvingcancelpurchaseorder0 @@ -1401,12 +1418,12 @@ msgstr "Cancelar" #. module: purchase #: view:purchase.order:0 view:purchase.order.line:0 msgid "Purchase Order Lines" -msgstr "" +msgstr "Líneas pedido de compra" #. module: purchase #: model:process.transition,note:purchase.process_transition_approvingpurchaseorder0 msgid "The supplier approves the Purchase Order." -msgstr "" +msgstr "El proveedor aprueba el pedido de compra." #. module: purchase #: code:addons/purchase/wizard/purchase_order_group.py:80 @@ -1421,12 +1438,12 @@ msgstr "Pedidos de compra" #. module: purchase #: sql_constraint:purchase.order:0 msgid "Order Reference must be unique per Company!" -msgstr "" +msgstr "¡La orden de referencia debe ser única por Compañía!" #. module: purchase #: field:purchase.order,origin:0 msgid "Source Document" -msgstr "" +msgstr "Documento origen" #. module: purchase #: view:purchase.order.group:0 @@ -1436,17 +1453,17 @@ msgstr "Fusionar pedidos" #. module: purchase #: model:ir.model,name:purchase.model_purchase_order_line_invoice msgid "Purchase Order Line Make Invoice" -msgstr "" +msgstr "Línea de pedido de compra realizar factura" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_action_picking_tree4 msgid "Incoming Shipments" -msgstr "" +msgstr "Envios Entrantes" #. module: purchase #: model:ir.actions.act_window,name:purchase.action_purchase_order_by_user_all msgid "Total Orders by User per month" -msgstr "" +msgstr "Total pedidos por usuario mensual" #. module: purchase #: model:ir.actions.report.xml,name:purchase.report_purchase_quotation @@ -1462,7 +1479,7 @@ msgstr "Tel. :" #. module: purchase #: view:purchase.report:0 msgid "Order of Month" -msgstr "" +msgstr "Pedido mensual" #. module: purchase #: report:purchase.order:0 @@ -1472,18 +1489,18 @@ msgstr "Nuestra referencia" #. module: purchase #: view:purchase.order:0 view:purchase.order.line:0 msgid "Search Purchase Order" -msgstr "" +msgstr "Buscar pedido de compra" #. module: purchase #: model:ir.actions.act_window,name:purchase.action_purchase_config msgid "Set the Default Invoicing Control Method" -msgstr "" +msgstr "Establecer Método Control de Facturación por Defecto" #. module: purchase #: model:process.node,note:purchase.process_node_draftpurchaseorder0 #: model:process.node,note:purchase.process_node_draftpurchaseorder1 msgid "Request for Quotations." -msgstr "" +msgstr "Solicitud de presupuesto." #. module: purchase #: report:purchase.order:0 @@ -1498,17 +1515,17 @@ msgstr "Fecha aprobación" #. module: purchase #: selection:purchase.report,state:0 msgid "Waiting Supplier Ack" -msgstr "" +msgstr "Esperando aceptación del proveedor" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_procurement_management_pending_invoice msgid "Based on draft invoices" -msgstr "" +msgstr "Basado en facturas en borrador" #. module: purchase #: view:purchase.order:0 msgid "Delivery & Invoicing" -msgstr "" +msgstr "Envío & Facturación" #. module: purchase #: code:addons/purchase/purchase.py:772 @@ -1517,11 +1534,13 @@ msgid "" "The selected supplier has a minimal quantity set to %s %s, you should not " "purchase less." msgstr "" +"El proveedor seleccionado tiene una cantidad mínima establecida de% s% s, " +"usted no puede comprar menos." #. module: purchase #: field:purchase.order.line,date_planned:0 msgid "Scheduled Date" -msgstr "" +msgstr "Fecha programada" #. module: purchase #: field:purchase.order,product_id:0 view:purchase.order.line:0 @@ -1534,7 +1553,7 @@ msgstr "Producto" #: model:process.transition,name:purchase.process_transition_confirmingpurchaseorder0 #: model:process.transition,name:purchase.process_transition_confirmingpurchaseorder1 msgid "Confirmation" -msgstr "" +msgstr "Confirmación" #. module: purchase #: report:purchase.order:0 field:purchase.order.line,name:0 @@ -1545,7 +1564,7 @@ msgstr "Descripción" #. module: purchase #: view:purchase.report:0 msgid "Order of Year" -msgstr "" +msgstr "Pedido anual" #. module: purchase #: report:purchase.quotation:0 @@ -1555,18 +1574,18 @@ msgstr "Dirección de entrega prevista:" #. module: purchase #: view:stock.picking:0 msgid "Journal" -msgstr "" +msgstr "Diario" #. module: purchase #: model:ir.actions.act_window,name:purchase.action_stock_move_report_po #: model:ir.ui.menu,name:purchase.menu_action_stock_move_report_po msgid "Receptions Analysis" -msgstr "" +msgstr "Análisis de recepciones" #. module: purchase #: field:res.company,po_lead:0 msgid "Purchase Lead Time" -msgstr "" +msgstr "Plazo de tiempo de compra" #. module: purchase #: model:ir.actions.act_window,help:purchase.action_supplier_address_form @@ -1575,6 +1594,9 @@ msgid "" "suppliers. You can track all your interactions with them through the History " "tab: emails, orders, meetings, etc." msgstr "" +"Acceda a sus registros de proveedores y mantenga una buena relación con " +"ellos. Usted puede seguir todas sus interacciones con ellos a través de la " +"ficha Historial: mensajes de correo electrónico, pedidos, reuniones, etc" #. module: purchase #: view:purchase.order:0 @@ -1584,7 +1606,7 @@ msgstr "Entrega" #. module: purchase #: view:purchase.order:0 msgid "Purchase orders which are in done state." -msgstr "" +msgstr "Pedidos de compra que se encuentran en estado de realizado." #. module: purchase #: field:purchase.order.line,product_uom:0 @@ -1604,7 +1626,7 @@ msgstr "En espera" #. module: purchase #: field:purchase.order,partner_address_id:0 msgid "Address" -msgstr "" +msgstr "Dirección" #. module: purchase #: field:purchase.report,product_uom:0 @@ -1619,7 +1641,7 @@ msgstr "Reserva" #. module: purchase #: view:purchase.order:0 msgid "Purchase orders that include lines not invoiced." -msgstr "" +msgstr "Pedidos de compra que incluyen líneas no facturadas." #. module: purchase #: view:purchase.order:0 @@ -1629,7 +1651,7 @@ msgstr "Base imponible" #. module: purchase #: view:stock.picking:0 msgid "Picking to Invoice" -msgstr "" +msgstr "Albaranes a facturar" #. module: purchase #: view:purchase.config.wizard:0 @@ -1637,6 +1659,8 @@ msgid "" "This tool will help you to select the method you want to use to control " "supplier invoices." msgstr "" +"Esta herramienta le ayudará a seleccionar el método que desea utilizar para " +"controlar las facturas de proveedor." #. module: purchase #: model:process.transition,note:purchase.process_transition_confirmingpurchaseorder1 @@ -1644,17 +1668,20 @@ msgid "" "In case there is no supplier for this product, the buyer can fill the form " "manually and confirm it. The RFQ becomes a confirmed Purchase Order." msgstr "" +"En caso de que no exista ningún proveedor de este producto, el comprador " +"puede rellenar el formulario manualmente y confirmarlo. La solicitud de " +"presupuesto se convierte en un pedido de compra confirmado." #. module: purchase #: selection:purchase.report,month:0 msgid "February" -msgstr "" +msgstr "Febrero" #. module: purchase #: model:ir.actions.act_window,name:purchase.action_purchase_order_report_all #: model:ir.ui.menu,name:purchase.menu_action_purchase_order_report_all msgid "Purchase Analysis" -msgstr "" +msgstr "Análisis de compras" #. module: purchase #: report:purchase.order:0 @@ -1680,6 +1707,9 @@ msgid "" "receptions\", you can track here all the product receptions and create " "invoices for those receptions." msgstr "" +"Si se establece el control de la facturación de un pedido de compra como " +"\"Basado en recepciones\", usted puede seguir aquí todas las recepciones de " +"los productos y crear facturas para las recepciones." #. module: purchase #: view:purchase.order:0 @@ -1689,12 +1719,12 @@ msgstr "Control de compra" #. module: purchase #: selection:purchase.report,month:0 msgid "March" -msgstr "" +msgstr "Marzo" #. module: purchase #: selection:purchase.report,month:0 msgid "April" -msgstr "" +msgstr "Abril" #. module: purchase #: view:purchase.order.group:0 @@ -1711,16 +1741,28 @@ msgid "" "\n" " " msgstr "" +" Tenga en cuenta que: \n" +" \n" +" Los pedidos sólo se fusionarán si: \n" +" * Los pedidos de compra están en borrador. \n" +" * Los pedidos pertenecen al mismo proveedor. \n" +" * Los pedidos tienen la misma ubicación de stock y la misma lista de " +"precios. \n" +" \n" +" Las líneas sólo se fusionarán si: \n" +" * Las líneas de pedido son exactamente iguales excepto por el producto, " +"cantidad y unidades. \n" +" " #. module: purchase #: field:purchase.report,negociation:0 msgid "Purchase-Standard Price" -msgstr "" +msgstr "Precio compra-estándar" #. module: purchase #: field:purchase.config.wizard,default_method:0 msgid "Default Invoicing Control Method" -msgstr "" +msgstr "Método Control de Facturación por Defecto" #. module: purchase #: model:product.pricelist.type,name:purchase.pricelist_type_purchase @@ -1736,7 +1778,7 @@ msgstr "Método facturación" #. module: purchase #: view:stock.picking:0 msgid "Back Orders" -msgstr "" +msgstr "Pedidos pendientes" #. module: purchase #: model:process.transition.action,name:purchase.process_transition_action_approvingpurchaseorder0 @@ -1751,7 +1793,7 @@ msgstr "Versión tarifa de compra por defecto" #. module: purchase #: view:purchase.order.line:0 msgid "Invoicing" -msgstr "" +msgstr "Facturación" #. module: purchase #: help:purchase.order.line,state:0 @@ -1764,12 +1806,20 @@ msgid "" " \n" "* The 'Cancelled' state is set automatically when user cancel purchase order." msgstr "" +" * El estado 'Borrador' se establece automáticamente cuando crea un pedido " +"(presupuesto) de compra. \n" +"* El estado 'Confirmado' se establece automáticamente al confirmar el pedido " +"de compra. \n" +"* El estado 'Hecho' se establece automáticamente cuando el pedido de compra " +"se realiza. \n" +"* El estado 'Cancelado' se establece automáticamente cuando el usuario " +"cancela un pedido de compra." #. module: purchase #: code:addons/purchase/purchase.py:426 #, python-format msgid "Purchase order '%s' is cancelled." -msgstr "" +msgstr "El pedido de compra '%s' está cancelado." #. module: purchase #: field:purchase.order,amount_total:0 @@ -1779,12 +1829,12 @@ msgstr "Total" #. module: purchase #: model:ir.ui.menu,name:purchase.menu_product_pricelist_action_purhase msgid "Pricelist Versions" -msgstr "" +msgstr "Versiones de lista de precios" #. module: purchase #: constraint:res.partner:0 msgid "Error ! You cannot create recursive associated members." -msgstr "" +msgstr "Error! Usted no puede crear miembros asociados recursivos" #. module: purchase #: code:addons/purchase/purchase.py:359 @@ -1792,6 +1842,7 @@ msgstr "" #, python-format msgid "There is no expense account defined for this product: \"%s\" (id:%d)" msgstr "" +"No se ha definido una cuenta de gastos para este producto: \"%s\" (id:%d)" #. module: purchase #: view:purchase.order.group:0 @@ -1801,7 +1852,7 @@ msgstr "¿Está seguro que quiere fusionar estos pedidos?" #. module: purchase #: model:process.transition,name:purchase.process_transition_purchaseinvoice0 msgid "From a purchase order" -msgstr "" +msgstr "Desde un pedido de compra" #. module: purchase #: code:addons/purchase/purchase.py:735 @@ -1869,48 +1920,99 @@ msgid "" "% endif\n" " " msgstr "" +"\n" +"Hola${object.partner_address_id.name and ' ' or " +"''}${object.partner_address_id.name or ''},\n" +"\n" +"Esta es la confirmación de pedido de compra de ${object.company_id.name}:\n" +" | Order number: *${object.name}*\n" +" | Order total: *${object.amount_total} " +"${object.pricelist_id.currency_id.name}*\n" +" | Order date: ${object.date_order}\n" +" % if object.origin:\n" +" | Order reference: ${object.origin}\n" +" % endif\n" +" % if object.partner_ref:\n" +" | Su referencia: ${object.partner_ref}
\n" +" % endif\n" +" | Su contacto: ${object.validator.name} ${object.validator.user_email " +"and '<%s>'%(object.validator.user_email) or ''}\n" +"\n" +"Usted puede ver la confirmación del pedido y descargarlo usando el siguiente " +"enlace:\n" +" ${ctx.get('edi_web_url_view') or 'n/a'}\n" +"\n" +"Si usted tiene alguna pregunta, no dude en contactarse con nosotros.\n" +"\n" +"Gracias!\n" +"\n" +"\n" +"--\n" +"${object.validator.name} ${object.validator.user_email and " +"'<%s>'%(object.validator.user_email) or ''}\n" +"${object.company_id.name}\n" +"% if object.company_id.street:\n" +"${object.company_id.street or ''}\n" +"% endif\n" +"% if object.company_id.street2:\n" +"${object.company_id.street2}\n" +"% endif\n" +"% if object.company_id.city or object.company_id.zip:\n" +"${object.company_id.zip or ''} ${object.company_id.city or ''}\n" +"% endif\n" +"% if object.company_id.country_id:\n" +"${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) " +"or ''} ${object.company_id.country_id.name or ''}\n" +"% endif\n" +"% if object.company_id.phone:\n" +"Phone: ${object.company_id.phone}\n" +"% endif\n" +"% if object.company_id.website:\n" +"${object.company_id.website or ''}\n" +"% endif\n" +" " #. module: purchase #: view:purchase.order:0 msgid "Purchase orders which are in draft state" -msgstr "" +msgstr "Pedidos de compra en estado borrador" #. module: purchase #: selection:purchase.report,month:0 msgid "May" -msgstr "" +msgstr "Mayo" #. module: purchase #: model:res.groups,name:purchase.group_purchase_manager msgid "Manager" -msgstr "" +msgstr "Gerente" #. module: purchase #: view:purchase.config.wizard:0 msgid "res_config_contents" -msgstr "" +msgstr "Configurar Contenidos" #. module: purchase #: view:purchase.report:0 msgid "Order in current year" -msgstr "" +msgstr "Pedidos del año actual" #. module: purchase #: model:process.process,name:purchase.process_process_purchaseprocess0 msgid "Purchase" -msgstr "" +msgstr "Compra" #. module: purchase #: view:purchase.report:0 field:purchase.report,name:0 msgid "Year" -msgstr "" +msgstr "Año" #. module: purchase #: model:ir.actions.act_window,name:purchase.purchase_line_form_action2 #: model:ir.ui.menu,name:purchase.menu_purchase_line_order_draft #: selection:purchase.order,invoice_method:0 msgid "Based on Purchase Order lines" -msgstr "" +msgstr "Basado en las líneas de pedidos de compra" #. module: purchase #: model:ir.actions.todo.category,name:purchase.category_purchase_config @@ -1931,7 +2033,7 @@ msgstr "Seleccione una orden de venta abierta" #. module: purchase #: view:purchase.report:0 msgid "Orders" -msgstr "" +msgstr "Pedidos" #. module: purchase #: help:purchase.order,name:0 @@ -1939,10 +2041,12 @@ msgid "" "unique number of the purchase order,computed automatically when the purchase " "order is created" msgstr "" +"Número único del pedido de compra, calculado de forma automática cuando el " +"pedido de compra es creado" #. module: purchase #: view:board.board:0 #: model:ir.actions.act_window,name:purchase.open_board_purchase #: model:ir.ui.menu,name:purchase.menu_board_purchase msgid "Purchase Dashboard" -msgstr "" +msgstr "Tablero de compras" diff --git a/addons/purchase_requisition/i18n/fi.po b/addons/purchase_requisition/i18n/fi.po index 7bc027029d4..f540e527ecc 100644 --- a/addons/purchase_requisition/i18n/fi.po +++ b/addons/purchase_requisition/i18n/fi.po @@ -8,19 +8,19 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:37+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-27 09:51+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 07:03+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-28 05:50+0000\n" +"X-Generator: Launchpad (build 15027)\n" #. module: purchase_requisition #: sql_constraint:purchase.order:0 msgid "Order Reference must be unique per Company!" -msgstr "" +msgstr "Tilausviitteen tulee olla uniikki yrityskohtaisesti!" #. module: purchase_requisition #: view:purchase.requisition:0 @@ -64,7 +64,7 @@ msgstr "Tila" #. module: purchase_requisition #: view:purchase.requisition:0 msgid "Purchase Requisition in negociation" -msgstr "" +msgstr "Ostotilauspyyntö neuvottelussa" #. module: purchase_requisition #: report:purchase.requisition:0 @@ -75,7 +75,7 @@ msgstr "Toimittaja" #: view:purchase.requisition:0 #: selection:purchase.requisition,state:0 msgid "New" -msgstr "" +msgstr "Uusi" #. module: purchase_requisition #: report:purchase.requisition:0 @@ -109,7 +109,7 @@ msgstr "Ostotilauspyynnön rivi" #. module: purchase_requisition #: view:purchase.order:0 msgid "Purchase Orders with requisition" -msgstr "" +msgstr "Ostotilaukset joilla pyyntöjä" #. module: purchase_requisition #: model:ir.model,name:purchase_requisition.model_product_product @@ -134,12 +134,14 @@ msgid "" "Check this box so that requisitions generates purchase requisitions instead " "of directly requests for quotations." msgstr "" +"Valitse tämä kohta jos haluat että pyynnöt luovat ostotilausehdotuksia eikä " +"tarjouspyyntöjä." #. module: purchase_requisition #: code:addons/purchase_requisition/purchase_requisition.py:136 #, python-format msgid "Warning" -msgstr "" +msgstr "Varoitus" #. module: purchase_requisition #: report:purchase.requisition:0 @@ -181,12 +183,12 @@ msgstr "Palauta luonnokseksi" #. module: purchase_requisition #: view:purchase.requisition:0 msgid "Current Purchase Requisition" -msgstr "" +msgstr "Nykyinen ostotilauspyyntö" #. module: purchase_requisition #: model:res.groups,name:purchase_requisition.group_purchase_requisition_user msgid "User" -msgstr "" +msgstr "Käyttäjä" #. module: purchase_requisition #: field:purchase.requisition.partner,partner_address_id:0 @@ -216,7 +218,7 @@ msgstr "Määrä" #. module: purchase_requisition #: view:purchase.requisition:0 msgid "Unassigned Requisition" -msgstr "" +msgstr "Kohdistamaton pyyntö" #. module: purchase_requisition #: model:ir.actions.act_window,name:purchase_requisition.action_purchase_requisition @@ -303,7 +305,7 @@ msgstr "Pyynnön tyyppi" #. module: purchase_requisition #: view:purchase.requisition:0 msgid "New Purchase Requisition" -msgstr "" +msgstr "Uusi ostotilauspyyntö" #. module: purchase_requisition #: view:purchase.requisition:0 @@ -338,7 +340,7 @@ msgstr "Ostotilauspyynnön kumppani" #. module: purchase_requisition #: view:purchase.requisition:0 msgid "Start" -msgstr "" +msgstr "Käynnistä" #. module: purchase_requisition #: report:purchase.requisition:0 @@ -395,7 +397,7 @@ msgstr "Ostotilauspyyntö (poissulkeva)" #. module: purchase_requisition #: model:res.groups,name:purchase_requisition.group_purchase_requisition_manager msgid "Manager" -msgstr "" +msgstr "Päällikkö" #. module: purchase_requisition #: constraint:product.product:0 @@ -411,7 +413,7 @@ msgstr "Valmis" #. module: purchase_requisition #: view:purchase.requisition.partner:0 msgid "_Cancel" -msgstr "" +msgstr "_Peruuta" #. module: purchase_requisition #: view:purchase.requisition:0 diff --git a/addons/resource/i18n/fi.po b/addons/resource/i18n/fi.po index 49ecb9d96f2..cd83f276a72 100644 --- a/addons/resource/i18n/fi.po +++ b/addons/resource/i18n/fi.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:37+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-27 09:57+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 07:04+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-28 05:50+0000\n" +"X-Generator: Launchpad (build 15027)\n" #. module: resource #: help:resource.calendar.leaves,resource_id:0 @@ -92,7 +92,7 @@ msgstr "Resurssit" #: code:addons/resource/resource.py:392 #, python-format msgid "Make sure the Working time has been configured with proper week days!" -msgstr "" +msgstr "Varmista että työaika on määritelty oikeille työpäiville!" #. module: resource #: field:resource.calendar,manager:0 @@ -247,6 +247,8 @@ msgid "" "Define working hours and time table that could be scheduled to your project " "members" msgstr "" +"Määrittele työtunnit ja aikataulukko joka voidaan ajoittaa projektisi " +"jäsenille." #. module: resource #: help:resource.resource,user_id:0 @@ -261,7 +263,7 @@ msgstr "Määrittele resurssin aikataulutus" #. module: resource #: view:resource.calendar.leaves:0 msgid "Starting Date of Leave" -msgstr "" +msgstr "Loman alkupäivä" #. module: resource #: field:resource.resource,code:0 @@ -310,6 +312,9 @@ msgid "" "in a specific project phase. You can also set their efficiency level and " "workload based on their weekly working hours." msgstr "" +"Resurssit mahdollistavat projektin eri vaiheissa tarvittavien resurssien " +"luomisen ja hallitsemisen. Voit myös asettaa niiden tehokkuustason ja " +"kuormituksen huomoiden viikottaiset työajat." #. module: resource #: view:resource.resource:0 @@ -326,7 +331,7 @@ msgstr "(loma)" #: code:addons/resource/resource.py:392 #, python-format msgid "Configuration Error!" -msgstr "" +msgstr "Konfiguraatio virhe!" #. module: resource #: selection:resource.resource,resource_type:0 diff --git a/addons/sale_crm/i18n/fi.po b/addons/sale_crm/i18n/fi.po index 063ff051d57..ce47f195de2 100644 --- a/addons/sale_crm/i18n/fi.po +++ b/addons/sale_crm/i18n/fi.po @@ -8,30 +8,30 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:37+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-27 09:55+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 07:06+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-28 05:50+0000\n" +"X-Generator: Launchpad (build 15027)\n" #. module: sale_crm #: field:sale.order,categ_id:0 msgid "Category" -msgstr "" +msgstr "Kategoria" #. module: sale_crm #: sql_constraint:sale.order:0 msgid "Order Reference must be unique per Company!" -msgstr "" +msgstr "Tilausviitteen tulee olla uniikki yrityskohtaisesti!" #. module: sale_crm #: code:addons/sale_crm/wizard/crm_make_sale.py:112 #, python-format msgid "Converted to Sales Quotation(%s)." -msgstr "" +msgstr "Konvertoitu tarjoukseksi (%s)." #. module: sale_crm #: view:crm.make.sale:0 @@ -58,12 +58,12 @@ msgstr "Suorita myynti" #. module: sale_crm #: view:crm.make.sale:0 msgid "_Create" -msgstr "" +msgstr "Luo" #. module: sale_crm #: view:sale.order:0 msgid "My Sales Team(s)" -msgstr "" +msgstr "Oma myyntitiimi" #. module: sale_crm #: help:crm.make.sale,close:0 @@ -76,7 +76,7 @@ msgstr "" #. module: sale_crm #: view:board.board:0 msgid "My Opportunities" -msgstr "" +msgstr "Omat mahdollisuudet" #. module: sale_crm #: view:crm.lead:0 @@ -107,13 +107,13 @@ msgstr "Sulje mahdollisuus" #. module: sale_crm #: view:board.board:0 msgid "My Planned Revenues by Stage" -msgstr "" +msgstr "Omat suunnitellut liikevaihdot vaiheittain" #. module: sale_crm #: code:addons/sale_crm/wizard/crm_make_sale.py:110 #, python-format msgid "Opportunity '%s' is converted to Quotation." -msgstr "" +msgstr "Mahdollisuus '%s' on konvertoitu tarjoukseksi." #. module: sale_crm #: view:sale.order:0 diff --git a/addons/warning/i18n/fi.po b/addons/warning/i18n/fi.po index 1e1afe7dd69..1ae18cf4e3a 100644 --- a/addons/warning/i18n/fi.po +++ b/addons/warning/i18n/fi.po @@ -8,20 +8,20 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:37+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-27 09:53+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 07:12+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-28 05:50+0000\n" +"X-Generator: Launchpad (build 15027)\n" #. module: warning #: sql_constraint:purchase.order:0 #: sql_constraint:sale.order:0 msgid "Order Reference must be unique per Company!" -msgstr "" +msgstr "Tilausviitteen tulee olla uniikki yrityskohtaisesti!" #. module: warning #: model:ir.model,name:warning.model_purchase_order_line @@ -135,7 +135,7 @@ msgstr "Ostotilaus" #. module: warning #: sql_constraint:stock.picking:0 msgid "Reference must be unique per Company!" -msgstr "" +msgstr "Viitteen tulee olla uniikki yrityskohtaisesti!" #. module: warning #: field:res.partner,sale_warn_msg:0 @@ -176,17 +176,17 @@ msgstr "Varoita %s !" #. module: warning #: sql_constraint:account.invoice:0 msgid "Invoice Number must be unique per Company!" -msgstr "" +msgstr "laskun numeron tulee olla uniikki yrityskohtaisesti!" #. module: warning #: constraint:res.partner:0 msgid "Error ! You cannot create recursive associated members." -msgstr "" +msgstr "Virhe! Rekursiivisen kumppanin luonti ei ole sallittu." #. module: warning #: constraint:account.invoice:0 msgid "Invalid BBA Structured Communication !" -msgstr "" +msgstr "Virheellinen BBA rakenteen kommunikointi !" #. module: warning #: view:res.partner:0 From 3322d6b3f9419b976e48afce0d8bf663157a53c1 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Wed, 28 Mar 2012 05:50:08 +0000 Subject: [PATCH 085/102] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20120327053735-txns63pi246ucraz bzr revid: launchpad_translations_on_behalf_of_openerp-20120328055008-isx3ydbsvrubz4uu --- addons/web/i18n/cs.po | 10 +- addons/web/i18n/nb.po | 264 +++++++++++++++++----------------- addons/web_diagram/i18n/cs.po | 17 ++- addons/web_diagram/i18n/ja.po | 79 ++++++++++ addons/web_gantt/i18n/ja.po | 28 ++++ addons/web_process/i18n/ja.po | 118 +++++++++++++++ 6 files changed, 374 insertions(+), 142 deletions(-) create mode 100644 addons/web_diagram/i18n/ja.po create mode 100644 addons/web_gantt/i18n/ja.po create mode 100644 addons/web_process/i18n/ja.po diff --git a/addons/web/i18n/cs.po b/addons/web/i18n/cs.po index eed48990d1e..a971c8c5056 100644 --- a/addons/web/i18n/cs.po +++ b/addons/web/i18n/cs.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-05 19:34+0100\n" -"PO-Revision-Date: 2012-03-22 07:15+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-26 15:07+0000\n" +"Last-Translator: Konki \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-23 05:13+0000\n" -"X-Generator: Launchpad (build 14996)\n" +"X-Launchpad-Export-Date: 2012-03-27 05:37+0000\n" +"X-Generator: Launchpad (build 15011)\n" #. openerp-web #: addons/web/static/src/js/chrome.js:172 @@ -1556,4 +1556,4 @@ msgstr "OpenERP.com" #. openerp-web #: addons/web/static/src/js/view_list.js:366 msgid "Group" -msgstr "" +msgstr "Skupina" diff --git a/addons/web/i18n/nb.po b/addons/web/i18n/nb.po index 1b525888eec..d2b757202b8 100644 --- a/addons/web/i18n/nb.po +++ b/addons/web/i18n/nb.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-05 19:34+0100\n" -"PO-Revision-Date: 2012-03-21 11:58+0000\n" +"PO-Revision-Date: 2012-03-27 13:27+0000\n" "Last-Translator: Rolv Råen (adEgo) \n" "Language-Team: Norwegian Bokmal \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-22 06:23+0000\n" -"X-Generator: Launchpad (build 14981)\n" +"X-Launchpad-Export-Date: 2012-03-28 05:50+0000\n" +"X-Generator: Launchpad (build 15027)\n" #. openerp-web #: addons/web/static/src/js/chrome.js:172 @@ -43,12 +43,12 @@ msgstr "Ikke send" #: addons/web/static/src/js/chrome.js:256 #, python-format msgid "Loading (%d)" -msgstr "" +msgstr "Laster (%d)" #. openerp-web #: addons/web/static/src/js/chrome.js:288 msgid "Invalid database name" -msgstr "" +msgstr "Ugyldig databasenavn" #. openerp-web #: addons/web/static/src/js/chrome.js:483 @@ -63,7 +63,7 @@ msgstr "" #. openerp-web #: addons/web/static/src/js/chrome.js:527 msgid "Restored" -msgstr "" +msgstr "Gjenopprettet" #. openerp-web #: addons/web/static/src/js/chrome.js:527 @@ -80,7 +80,7 @@ msgstr "Om" #: addons/web/static/src/js/chrome.js:787 #: addons/web/static/src/xml/base.xml:356 msgid "Preferences" -msgstr "" +msgstr "Innstillinger" #. openerp-web #: addons/web/static/src/js/chrome.js:790 @@ -97,12 +97,12 @@ msgstr "" #: addons/web/static/src/js/search.js:293 #: addons/web/static/src/js/view_form.js:1234 msgid "Cancel" -msgstr "" +msgstr "Avbryt" #. openerp-web #: addons/web/static/src/js/chrome.js:791 msgid "Change password" -msgstr "" +msgstr "Endre passord" #. openerp-web #: addons/web/static/src/js/chrome.js:792 @@ -112,31 +112,31 @@ msgstr "" #: addons/web/static/src/xml/base.xml:1500 #: addons/web/static/src/xml/base.xml:1514 msgid "Save" -msgstr "" +msgstr "Lagre" #. openerp-web #: addons/web/static/src/js/chrome.js:811 #: addons/web/static/src/xml/base.xml:226 #: addons/web/static/src/xml/base.xml:1729 msgid "Change Password" -msgstr "" +msgstr "Endre passord" #. openerp-web #: addons/web/static/src/js/chrome.js:1096 #: addons/web/static/src/js/chrome.js:1100 msgid "OpenERP - Unsupported/Community Version" -msgstr "" +msgstr "OpenERP - Usupportert/Community Version" #. openerp-web #: addons/web/static/src/js/chrome.js:1131 #: addons/web/static/src/js/chrome.js:1135 msgid "Client Error" -msgstr "" +msgstr "Klientfeil" #. openerp-web #: addons/web/static/src/js/data_export.js:6 msgid "Export Data" -msgstr "" +msgstr "Eksporter data" #. openerp-web #: addons/web/static/src/js/data_export.js:19 @@ -149,12 +149,12 @@ msgstr "" #: addons/web/static/src/js/view_form.js:698 #: addons/web/static/src/js/view_form.js:3067 msgid "Close" -msgstr "" +msgstr "Lukk" #. openerp-web #: addons/web/static/src/js/data_export.js:20 msgid "Export To File" -msgstr "" +msgstr "Eksport til fil" #. openerp-web #: addons/web/static/src/js/data_export.js:125 @@ -169,17 +169,17 @@ msgstr "" #. openerp-web #: addons/web/static/src/js/data_export.js:373 msgid "Please select fields to export..." -msgstr "" +msgstr "Velg felter å eksportere" #. openerp-web #: addons/web/static/src/js/data_import.js:34 msgid "Import Data" -msgstr "" +msgstr "Importer data" #. openerp-web #: addons/web/static/src/js/data_import.js:70 msgid "Import File" -msgstr "" +msgstr "Importer fil" #. openerp-web #: addons/web/static/src/js/data_import.js:105 @@ -192,7 +192,7 @@ msgstr "" #: addons/web/static/src/js/formats.js:322 #: addons/web/static/src/js/view_page.js:251 msgid "Download" -msgstr "" +msgstr "Last ned" #. openerp-web #: addons/web/static/src/js/formats.js:305 @@ -216,7 +216,7 @@ msgstr "" #: addons/web/static/src/js/search.js:291 #: addons/web/static/src/js/search.js:296 msgid "OK" -msgstr "" +msgstr "OK" #. openerp-web #: addons/web/static/src/js/search.js:286 @@ -229,7 +229,7 @@ msgstr "" #: addons/web/static/src/js/search.js:415 #: addons/web/static/src/js/search.js:420 msgid "Invalid Search" -msgstr "" +msgstr "Ugyldig søk" #. openerp-web #: addons/web/static/src/js/search.js:415 @@ -261,25 +261,25 @@ msgstr "" #: addons/web/static/src/xml/base.xml:968 #: addons/web/static/src/js/search.js:936 msgid "Yes" -msgstr "" +msgstr "Ja" #. openerp-web #: addons/web/static/src/js/search.js:932 #: addons/web/static/src/js/search.js:937 msgid "No" -msgstr "" +msgstr "Nei" #. openerp-web #: addons/web/static/src/js/search.js:1290 #: addons/web/static/src/js/search.js:1295 msgid "contains" -msgstr "" +msgstr "inneholder" #. openerp-web #: addons/web/static/src/js/search.js:1291 #: addons/web/static/src/js/search.js:1296 msgid "doesn't contain" -msgstr "" +msgstr "inneholder ikke" #. openerp-web #: addons/web/static/src/js/search.js:1292 @@ -293,7 +293,7 @@ msgstr "" #: addons/web/static/src/js/search.js:1349 #: addons/web/static/src/js/search.js:1370 msgid "is equal to" -msgstr "" +msgstr "er lik som" #. openerp-web #: addons/web/static/src/js/search.js:1293 @@ -307,7 +307,7 @@ msgstr "" #: addons/web/static/src/js/search.js:1350 #: addons/web/static/src/js/search.js:1371 msgid "is not equal to" -msgstr "" +msgstr "er ulilk" #. openerp-web #: addons/web/static/src/js/search.js:1294 @@ -321,7 +321,7 @@ msgstr "" #: addons/web/static/src/js/search.js:1351 #: addons/web/static/src/js/search.js:1372 msgid "greater than" -msgstr "" +msgstr "større enn" #. openerp-web #: addons/web/static/src/js/search.js:1295 @@ -335,7 +335,7 @@ msgstr "" #: addons/web/static/src/js/search.js:1352 #: addons/web/static/src/js/search.js:1373 msgid "less than" -msgstr "" +msgstr "mindre enn" #. openerp-web #: addons/web/static/src/js/search.js:1296 @@ -349,7 +349,7 @@ msgstr "" #: addons/web/static/src/js/search.js:1353 #: addons/web/static/src/js/search.js:1374 msgid "greater or equal than" -msgstr "" +msgstr "større eller lik enn" #. openerp-web #: addons/web/static/src/js/search.js:1297 @@ -363,7 +363,7 @@ msgstr "" #: addons/web/static/src/js/search.js:1354 #: addons/web/static/src/js/search.js:1375 msgid "less or equal than" -msgstr "" +msgstr "mindre eller lik enn" #. openerp-web #: addons/web/static/src/js/search.js:1360 @@ -371,13 +371,13 @@ msgstr "" #: addons/web/static/src/js/search.js:1365 #: addons/web/static/src/js/search.js:1388 msgid "is" -msgstr "" +msgstr "er" #. openerp-web #: addons/web/static/src/js/search.js:1384 #: addons/web/static/src/js/search.js:1389 msgid "is not" -msgstr "" +msgstr "er ikke" #. openerp-web #: addons/web/static/src/js/search.js:1396 @@ -404,20 +404,20 @@ msgstr "" #: addons/web/static/src/xml/base.xml:327 #: addons/web/static/src/xml/base.xml:756 msgid "Create" -msgstr "" +msgstr "Opprett" #. openerp-web #: addons/web/static/src/js/view_editor.js:47 #: addons/web/static/src/xml/base.xml:483 #: addons/web/static/src/xml/base.xml:755 msgid "Edit" -msgstr "" +msgstr "Rediger" #. openerp-web #: addons/web/static/src/js/view_editor.js:48 #: addons/web/static/src/xml/base.xml:1647 msgid "Remove" -msgstr "" +msgstr "Fjern" #. openerp-web #: addons/web/static/src/js/view_editor.js:71 @@ -449,42 +449,42 @@ msgstr "" #. openerp-web #: addons/web/static/src/js/view_editor.js:381 msgid "Preview" -msgstr "" +msgstr "Forhåndsvis" #. openerp-web #: addons/web/static/src/js/view_editor.js:501 msgid "Do you really want to remove this node?" -msgstr "" +msgstr "Vil du virkelig fjerne denne noden?" #. openerp-web #: addons/web/static/src/js/view_editor.js:815 #: addons/web/static/src/js/view_editor.js:939 msgid "Properties" -msgstr "" +msgstr "Egenskaper" #. openerp-web #: addons/web/static/src/js/view_editor.js:818 #: addons/web/static/src/js/view_editor.js:942 msgid "Update" -msgstr "" +msgstr "Oppdater" #. openerp-web #: addons/web/static/src/js/view_form.js:16 msgid "Form" -msgstr "" +msgstr "Skjema" #. openerp-web #: addons/web/static/src/js/view_form.js:121 #: addons/web/static/src/js/views.js:803 msgid "Customize" -msgstr "" +msgstr "Tilpass" #. openerp-web #: addons/web/static/src/js/view_form.js:123 #: addons/web/static/src/js/view_form.js:686 #: addons/web/static/src/js/view_form.js:692 msgid "Set Default" -msgstr "" +msgstr "Sett som standard" #. openerp-web #: addons/web/static/src/js/view_form.js:469 @@ -503,14 +503,14 @@ msgstr "" #: addons/web/static/src/js/view_form.js:754 #: addons/web/static/src/js/view_form.js:760 msgid "Attachments" -msgstr "" +msgstr "Vedlegg" #. openerp-web #: addons/web/static/src/js/view_form.js:792 #: addons/web/static/src/js/view_form.js:798 #, python-format msgid "Do you really want to delete the attachment %s?" -msgstr "" +msgstr "Vil du virkelig slette vedlegget %s?" #. openerp-web #: addons/web/static/src/js/view_form.js:822 @@ -537,7 +537,7 @@ msgstr "" #: addons/web/static/src/js/view_form.js:1225 #: addons/web/static/src/js/view_form.js:1231 msgid "Confirm" -msgstr "" +msgstr "Bekreft" #. openerp-web #: addons/web/static/src/js/view_form.js:1921 @@ -547,7 +547,7 @@ msgstr "" #: addons/web/static/src/js/view_form.js:2590 #: addons/web/static/src/js/view_form.js:2760 msgid "Open: " -msgstr "" +msgstr "Åpne: " #. openerp-web #: addons/web/static/src/js/view_form.js:2049 @@ -573,7 +573,7 @@ msgstr "" #: addons/web/static/src/js/views.js:675 #: addons/web/static/src/js/view_form.js:2113 msgid "Search: " -msgstr "" +msgstr "Søk: " #. openerp-web #: addons/web/static/src/js/view_form.js:2101 @@ -581,7 +581,7 @@ msgstr "" #: addons/web/static/src/js/view_form.js:2113 #: addons/web/static/src/js/view_form.js:2562 msgid "Create: " -msgstr "" +msgstr "Opprett: " #. openerp-web #: addons/web/static/src/js/view_form.js:2661 @@ -590,23 +590,23 @@ msgstr "" #: addons/web/static/src/xml/base.xml:1646 #: addons/web/static/src/js/view_form.js:2680 msgid "Add" -msgstr "" +msgstr "Legg til" #. openerp-web #: addons/web/static/src/js/view_form.js:2721 #: addons/web/static/src/js/view_form.js:2740 msgid "Add: " -msgstr "" +msgstr "Legg til: " #. openerp-web #: addons/web/static/src/js/view_list.js:8 msgid "List" -msgstr "" +msgstr "Liste" #. openerp-web #: addons/web/static/src/js/view_list.js:269 msgid "Unlimited" -msgstr "" +msgstr "Ubegrenset" #. openerp-web #: addons/web/static/src/js/view_list.js:305 @@ -625,7 +625,7 @@ msgstr "" #: addons/web/static/src/js/view_list.js:1230 #: addons/web/static/src/js/view_list.js:1232 msgid "Undefined" -msgstr "" +msgstr "Ikke definert" #. openerp-web #: addons/web/static/src/js/view_list.js:1327 @@ -637,17 +637,17 @@ msgstr "" #. openerp-web #: addons/web/static/src/js/view_page.js:8 msgid "Page" -msgstr "" +msgstr "Side" #. openerp-web #: addons/web/static/src/js/view_page.js:52 msgid "Do you really want to delete this record?" -msgstr "" +msgstr "Vil du virkelig slette denne posten ?" #. openerp-web #: addons/web/static/src/js/view_tree.js:11 msgid "Tree" -msgstr "" +msgstr "Tre" #. openerp-web #: addons/web/static/src/js/views.js:565 @@ -681,44 +681,44 @@ msgstr "" #. openerp-web #: addons/web/static/src/js/views.js:805 msgid "Translate" -msgstr "" +msgstr "Oversett" #. openerp-web #: addons/web/static/src/js/views.js:807 msgid "Technical translation" -msgstr "" +msgstr "Teknisk oversettelse" #. openerp-web #: addons/web/static/src/js/views.js:811 msgid "Other Options" -msgstr "" +msgstr "Andre valg" #. openerp-web #: addons/web/static/src/js/views.js:814 #: addons/web/static/src/xml/base.xml:1736 msgid "Import" -msgstr "" +msgstr "Importer" #. openerp-web #: addons/web/static/src/js/views.js:817 #: addons/web/static/src/xml/base.xml:1606 msgid "Export" -msgstr "" +msgstr "Eksporter" #. openerp-web #: addons/web/static/src/js/views.js:825 msgid "Reports" -msgstr "" +msgstr "Rapporter" #. openerp-web #: addons/web/static/src/js/views.js:825 msgid "Actions" -msgstr "" +msgstr "Handlinger" #. openerp-web #: addons/web/static/src/js/views.js:825 msgid "Links" -msgstr "" +msgstr "Lenker" #. openerp-web #: addons/web/static/src/js/views.js:919 @@ -728,12 +728,12 @@ msgstr "" #. openerp-web #: addons/web/static/src/js/views.js:920 msgid "Warning" -msgstr "" +msgstr "Advarsel" #. openerp-web #: addons/web/static/src/js/views.js:957 msgid "Translations" -msgstr "" +msgstr "Oversettelser" #. openerp-web #: addons/web/static/src/xml/base.xml:44 @@ -746,17 +746,17 @@ msgstr "" #: addons/web/static/src/xml/base.xml:315 #: addons/web/static/src/xml/base.xml:1813 msgid "OpenERP" -msgstr "" +msgstr "OpenERP" #. openerp-web #: addons/web/static/src/xml/base.xml:52 msgid "Loading..." -msgstr "" +msgstr "Laster …" #. openerp-web #: addons/web/static/src/xml/base.xml:61 msgid "CREATE DATABASE" -msgstr "" +msgstr "OPPRETT DATABASE" #. openerp-web #: addons/web/static/src/xml/base.xml:68 @@ -768,39 +768,39 @@ msgstr "" #: addons/web/static/src/xml/base.xml:72 #: addons/web/static/src/xml/base.xml:191 msgid "New database name:" -msgstr "" +msgstr "Navn på ny database:" #. openerp-web #: addons/web/static/src/xml/base.xml:77 msgid "Load Demonstration data:" -msgstr "" +msgstr "Last demonstrasjonsdata:" #. openerp-web #: addons/web/static/src/xml/base.xml:81 msgid "Default language:" -msgstr "" +msgstr "Standardspråk:" #. openerp-web #: addons/web/static/src/xml/base.xml:91 msgid "Admin password:" -msgstr "" +msgstr "Administrator passord" #. openerp-web #: addons/web/static/src/xml/base.xml:95 msgid "Confirm password:" -msgstr "" +msgstr "Bekreft passord:" #. openerp-web #: addons/web/static/src/xml/base.xml:109 msgid "DROP DATABASE" -msgstr "" +msgstr "DROP DATABASE" #. openerp-web #: addons/web/static/src/xml/base.xml:116 #: addons/web/static/src/xml/base.xml:150 #: addons/web/static/src/xml/base.xml:301 msgid "Database:" -msgstr "" +msgstr "Database:" #. openerp-web #: addons/web/static/src/xml/base.xml:128 @@ -818,29 +818,29 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:143 msgid "BACKUP DATABASE" -msgstr "" +msgstr "BACKUP DATABASE" #. openerp-web #: addons/web/static/src/xml/base.xml:166 #: addons/web/static/src/xml/base.xml:329 msgid "Backup" -msgstr "" +msgstr "Sikkerhetskopi" #. openerp-web #: addons/web/static/src/xml/base.xml:175 msgid "RESTORE DATABASE" -msgstr "" +msgstr "RESTORE DATABASE" #. openerp-web #: addons/web/static/src/xml/base.xml:182 msgid "File:" -msgstr "" +msgstr "Fil:" #. openerp-web #: addons/web/static/src/xml/base.xml:195 #: addons/web/static/src/xml/base.xml:330 msgid "Restore" -msgstr "" +msgstr "Gjenopprett" #. openerp-web #: addons/web/static/src/xml/base.xml:204 @@ -867,12 +867,12 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:251 msgid "OpenERP Entreprise" -msgstr "" +msgstr "OpenERP Entreprise" #. openerp-web #: addons/web/static/src/xml/base.xml:256 msgid "OpenERP Enterprise Contract." -msgstr "" +msgstr "OpenERP Enterprise Contract." #. openerp-web #: addons/web/static/src/xml/base.xml:257 @@ -882,12 +882,12 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:259 msgid "Summary:" -msgstr "" +msgstr "Sammendrag:" #. openerp-web #: addons/web/static/src/xml/base.xml:263 msgid "Description:" -msgstr "" +msgstr "Beskrivelse:" #. openerp-web #: addons/web/static/src/xml/base.xml:267 @@ -897,23 +897,23 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:297 msgid "Invalid username or password" -msgstr "" +msgstr "Ugyldig brukernavn eller passord" #. openerp-web #: addons/web/static/src/xml/base.xml:306 msgid "Username" -msgstr "" +msgstr "Brukernavn" #. openerp-web #: addons/web/static/src/xml/base.xml:308 #: addons/web/static/src/xml/base.xml:331 msgid "Password" -msgstr "" +msgstr "Passord" #. openerp-web #: addons/web/static/src/xml/base.xml:310 msgid "Log in" -msgstr "" +msgstr "Logg inn" #. openerp-web #: addons/web/static/src/xml/base.xml:314 @@ -928,12 +928,12 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:353 msgid "Home" -msgstr "" +msgstr "Hjem" #. openerp-web #: addons/web/static/src/xml/base.xml:363 msgid "LOGOUT" -msgstr "" +msgstr "LOGG UT" #. openerp-web #: addons/web/static/src/xml/base.xml:388 @@ -958,12 +958,12 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:463 msgid "Add / Remove Shortcut..." -msgstr "" +msgstr "Legg til /fjern snarvei..." #. openerp-web #: addons/web/static/src/xml/base.xml:471 msgid "More…" -msgstr "" +msgstr "Mer..." #. openerp-web #: addons/web/static/src/xml/base.xml:477 @@ -1033,29 +1033,29 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:542 msgid "Field" -msgstr "" +msgstr "Felt" #. openerp-web #: addons/web/static/src/xml/base.xml:632 #: addons/web/static/src/xml/base.xml:758 #: addons/web/static/src/xml/base.xml:1708 msgid "Delete" -msgstr "" +msgstr "Slett" #. openerp-web #: addons/web/static/src/xml/base.xml:757 msgid "Duplicate" -msgstr "" +msgstr "Dupliker" #. openerp-web #: addons/web/static/src/xml/base.xml:775 msgid "Add attachment" -msgstr "" +msgstr "Legg til vedlegg" #. openerp-web #: addons/web/static/src/xml/base.xml:801 msgid "Default:" -msgstr "" +msgstr "Standard:" #. openerp-web #: addons/web/static/src/xml/base.xml:818 @@ -1070,7 +1070,7 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:844 msgid "All users" -msgstr "" +msgstr "Alle brukere" #. openerp-web #: addons/web/static/src/xml/base.xml:851 @@ -1096,17 +1096,17 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:936 msgid "Field:" -msgstr "" +msgstr "Felt:" #. openerp-web #: addons/web/static/src/xml/base.xml:940 msgid "Object:" -msgstr "" +msgstr "Objekt:" #. openerp-web #: addons/web/static/src/xml/base.xml:944 msgid "Type:" -msgstr "" +msgstr "Type:" #. openerp-web #: addons/web/static/src/xml/base.xml:948 @@ -1116,7 +1116,7 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:952 msgid "Size:" -msgstr "" +msgstr "Størrelse:" #. openerp-web #: addons/web/static/src/xml/base.xml:956 @@ -1126,7 +1126,7 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:960 msgid "Domain:" -msgstr "" +msgstr "Domene:" #. openerp-web #: addons/web/static/src/xml/base.xml:968 @@ -1161,33 +1161,33 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:1056 msgid "Select date" -msgstr "" +msgstr "Velg date" #. openerp-web #: addons/web/static/src/xml/base.xml:1090 msgid "Open..." -msgstr "" +msgstr "Åpne …" #. openerp-web #: addons/web/static/src/xml/base.xml:1091 msgid "Create..." -msgstr "" +msgstr "Opprett..." #. openerp-web #: addons/web/static/src/xml/base.xml:1092 msgid "Search..." -msgstr "" +msgstr "Søk..." #. openerp-web #: addons/web/static/src/xml/base.xml:1095 msgid "..." -msgstr "" +msgstr "..." #. openerp-web #: addons/web/static/src/xml/base.xml:1155 #: addons/web/static/src/xml/base.xml:1198 msgid "Set Image" -msgstr "" +msgstr "Bruk bilde" #. openerp-web #: addons/web/static/src/xml/base.xml:1163 @@ -1195,7 +1195,7 @@ msgstr "" #: addons/web/static/src/xml/base.xml:1215 #: addons/web/static/src/xml/base.xml:1272 msgid "Clear" -msgstr "" +msgstr "Tøm" #. openerp-web #: addons/web/static/src/xml/base.xml:1172 @@ -1207,18 +1207,18 @@ msgstr "" #: addons/web/static/src/xml/base.xml:1200 #: addons/web/static/src/xml/base.xml:1495 msgid "Select" -msgstr "" +msgstr "Velg" #. openerp-web #: addons/web/static/src/xml/base.xml:1207 #: addons/web/static/src/xml/base.xml:1209 msgid "Save As" -msgstr "" +msgstr "Lagre som" #. openerp-web #: addons/web/static/src/xml/base.xml:1238 msgid "Button" -msgstr "" +msgstr "Knapp" #. openerp-web #: addons/web/static/src/xml/base.xml:1241 @@ -1248,12 +1248,12 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:1271 msgid "Search" -msgstr "" +msgstr "Søk" #. openerp-web #: addons/web/static/src/xml/base.xml:1279 msgid "Filters" -msgstr "" +msgstr "Filtre" #. openerp-web #: addons/web/static/src/xml/base.xml:1280 @@ -1273,7 +1273,7 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:1291 msgid "Save Filter" -msgstr "" +msgstr "Lagre filter" #. openerp-web #: addons/web/static/src/xml/base.xml:1293 @@ -1283,7 +1283,7 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:1298 msgid "Filter Name:" -msgstr "" +msgstr "Filternavn:" #. openerp-web #: addons/web/static/src/xml/base.xml:1300 @@ -1328,17 +1328,17 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:1436 msgid "and" -msgstr "" +msgstr "og" #. openerp-web #: addons/web/static/src/xml/base.xml:1503 msgid "Save & New" -msgstr "" +msgstr "Lagre & Ny" #. openerp-web #: addons/web/static/src/xml/base.xml:1504 msgid "Save & Close" -msgstr "" +msgstr "Lagre & Lukk" #. openerp-web #: addons/web/static/src/xml/base.xml:1611 @@ -1352,7 +1352,7 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:1618 msgid "Export Type:" -msgstr "" +msgstr "Eksporttype:" #. openerp-web #: addons/web/static/src/xml/base.xml:1620 @@ -1362,7 +1362,7 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:1621 msgid "Export all Data" -msgstr "" +msgstr "Eksporter all data" #. openerp-web #: addons/web/static/src/xml/base.xml:1624 @@ -1372,7 +1372,7 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:1630 msgid "Available fields" -msgstr "" +msgstr "Tilgjengelige felt" #. openerp-web #: addons/web/static/src/xml/base.xml:1632 @@ -1392,12 +1392,12 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:1660 msgid "Name" -msgstr "" +msgstr "Navn" #. openerp-web #: addons/web/static/src/xml/base.xml:1693 msgid "Save as:" -msgstr "" +msgstr "Lagre som:" #. openerp-web #: addons/web/static/src/xml/base.xml:1700 @@ -1511,7 +1511,7 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:1815 msgid "Copyright © 2004-TODAY OpenERP SA. All Rights Reserved." -msgstr "" +msgstr "Copyright © 2004-TODAY OpenERP SA. All Rights Reserved." #. openerp-web #: addons/web/static/src/xml/base.xml:1816 @@ -1521,7 +1521,7 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:1817 msgid "OpenERP SA Company" -msgstr "" +msgstr "OpenERP SA Company" #. openerp-web #: addons/web/static/src/xml/base.xml:1819 @@ -1541,9 +1541,9 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:1823 msgid "OpenERP.com" -msgstr "" +msgstr "OpenERP.com" #. openerp-web #: addons/web/static/src/js/view_list.js:366 msgid "Group" -msgstr "" +msgstr "Gruppe" diff --git a/addons/web_diagram/i18n/cs.po b/addons/web_diagram/i18n/cs.po index a4a039d5156..ff58dcf8a65 100644 --- a/addons/web_diagram/i18n/cs.po +++ b/addons/web_diagram/i18n/cs.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-05 19:34+0100\n" -"PO-Revision-Date: 2012-03-22 07:16+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-03-26 15:12+0000\n" +"Last-Translator: Konki \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-23 05:13+0000\n" -"X-Generator: Launchpad (build 14996)\n" +"X-Launchpad-Export-Date: 2012-03-27 05:37+0000\n" +"X-Generator: Launchpad (build 15011)\n" #. openerp-web #: addons/web_diagram/static/src/js/diagram.js:11 @@ -59,7 +59,7 @@ msgstr "Nový uzel" #. openerp-web #: addons/web_diagram/static/src/js/diagram.js:165 msgid "Are you sure?" -msgstr "" +msgstr "Jste si jisti?" #. openerp-web #: addons/web_diagram/static/src/js/diagram.js:195 @@ -69,6 +69,10 @@ msgid "" "\n" "Are you sure ?" msgstr "" +"Odstranění tohoto uzlu nelze vrátit zpět.\n" +"Také to odstraní všechny související přechody.\n" +"\n" +"Jste si jistý ?" #. openerp-web #: addons/web_diagram/static/src/js/diagram.js:213 @@ -77,3 +81,6 @@ msgid "" "\n" "Are you sure ?" msgstr "" +"Odstranění tohoto přechodu nelze vrátit zpět.\n" +"\n" +"Jste si jistý ?" diff --git a/addons/web_diagram/i18n/ja.po b/addons/web_diagram/i18n/ja.po new file mode 100644 index 00000000000..cc9425fe773 --- /dev/null +++ b/addons/web_diagram/i18n/ja.po @@ -0,0 +1,79 @@ +# Japanese translation for openerp-web +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-03-05 19:34+0100\n" +"PO-Revision-Date: 2012-03-26 22:02+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-27 05:37+0000\n" +"X-Generator: Launchpad (build 15011)\n" + +#. openerp-web +#: addons/web_diagram/static/src/js/diagram.js:11 +msgid "Diagram" +msgstr "ダイアグラム" + +#. openerp-web +#: addons/web_diagram/static/src/js/diagram.js:208 +#: addons/web_diagram/static/src/js/diagram.js:224 +#: addons/web_diagram/static/src/js/diagram.js:257 +msgid "Activity" +msgstr "アクティビティ" + +#. openerp-web +#: addons/web_diagram/static/src/js/diagram.js:208 +#: addons/web_diagram/static/src/js/diagram.js:289 +#: addons/web_diagram/static/src/js/diagram.js:308 +msgid "Transition" +msgstr "変遷" + +#. openerp-web +#: addons/web_diagram/static/src/js/diagram.js:214 +#: addons/web_diagram/static/src/js/diagram.js:262 +#: addons/web_diagram/static/src/js/diagram.js:314 +msgid "Create:" +msgstr "作成:" + +#. openerp-web +#: addons/web_diagram/static/src/js/diagram.js:231 +#: addons/web_diagram/static/src/js/diagram.js:232 +#: addons/web_diagram/static/src/js/diagram.js:296 +msgid "Open: " +msgstr "開く: " + +#. openerp-web +#: addons/web_diagram/static/src/xml/base_diagram.xml:5 +#: addons/web_diagram/static/src/xml/base_diagram.xml:6 +msgid "New Node" +msgstr "新しいノード" + +#. openerp-web +#: addons/web_diagram/static/src/js/diagram.js:165 +msgid "Are you sure?" +msgstr "" + +#. openerp-web +#: addons/web_diagram/static/src/js/diagram.js:195 +msgid "" +"Deleting this node cannot be undone.\n" +"It will also delete all connected transitions.\n" +"\n" +"Are you sure ?" +msgstr "" + +#. openerp-web +#: addons/web_diagram/static/src/js/diagram.js:213 +msgid "" +"Deleting this transition cannot be undone.\n" +"\n" +"Are you sure ?" +msgstr "" diff --git a/addons/web_gantt/i18n/ja.po b/addons/web_gantt/i18n/ja.po new file mode 100644 index 00000000000..f090cbf3064 --- /dev/null +++ b/addons/web_gantt/i18n/ja.po @@ -0,0 +1,28 @@ +# Japanese translation for openerp-web +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-03-05 19:34+0100\n" +"PO-Revision-Date: 2012-03-26 21:57+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-27 05:37+0000\n" +"X-Generator: Launchpad (build 15011)\n" + +#. openerp-web +#: addons/web_gantt/static/src/js/gantt.js:11 +msgid "Gantt" +msgstr "ガント" + +#. openerp-web +#: addons/web_gantt/static/src/xml/web_gantt.xml:10 +msgid "Create" +msgstr "作成する" diff --git a/addons/web_process/i18n/ja.po b/addons/web_process/i18n/ja.po new file mode 100644 index 00000000000..73c89d3e534 --- /dev/null +++ b/addons/web_process/i18n/ja.po @@ -0,0 +1,118 @@ +# Japanese translation for openerp-web +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-03-05 19:34+0100\n" +"PO-Revision-Date: 2012-03-26 21:46+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-27 05:37+0000\n" +"X-Generator: Launchpad (build 15011)\n" + +#. openerp-web +#: addons/web_process/static/src/js/process.js:261 +msgid "Cancel" +msgstr "キャンセル" + +#. openerp-web +#: addons/web_process/static/src/js/process.js:262 +msgid "Save" +msgstr "保存" + +#. openerp-web +#: addons/web_process/static/src/xml/web_process.xml:6 +msgid "Process View" +msgstr "プロセス一覧" + +#. openerp-web +#: addons/web_process/static/src/xml/web_process.xml:19 +msgid "Documentation" +msgstr "ドキュメンテーション" + +#. openerp-web +#: addons/web_process/static/src/xml/web_process.xml:19 +msgid "Read Documentation Online" +msgstr "オンラインのドキュメンテーションを読んでください。" + +#. openerp-web +#: addons/web_process/static/src/xml/web_process.xml:25 +msgid "Forum" +msgstr "フォーラム" + +#. openerp-web +#: addons/web_process/static/src/xml/web_process.xml:25 +msgid "Community Discussion" +msgstr "コミュニティの議論" + +#. openerp-web +#: addons/web_process/static/src/xml/web_process.xml:31 +msgid "Books" +msgstr "帳簿" + +#. openerp-web +#: addons/web_process/static/src/xml/web_process.xml:31 +msgid "Get the books" +msgstr "帳簿を取る" + +#. openerp-web +#: addons/web_process/static/src/xml/web_process.xml:37 +msgid "OpenERP Enterprise" +msgstr "OpenERPエンタープライズ" + +#. openerp-web +#: addons/web_process/static/src/xml/web_process.xml:37 +msgid "Purchase OpenERP Enterprise" +msgstr "OpenERPエンタープライズを購入" + +#. openerp-web +#: addons/web_process/static/src/xml/web_process.xml:52 +msgid "Process" +msgstr "プロセス" + +#. openerp-web +#: addons/web_process/static/src/xml/web_process.xml:56 +msgid "Notes:" +msgstr "注記" + +#. openerp-web +#: addons/web_process/static/src/xml/web_process.xml:59 +msgid "Last modified by:" +msgstr "最後に変更:" + +#. openerp-web +#: addons/web_process/static/src/xml/web_process.xml:59 +msgid "N/A" +msgstr "該当なし" + +#. openerp-web +#: addons/web_process/static/src/xml/web_process.xml:62 +msgid "Subflows:" +msgstr "サブフロー:" + +#. openerp-web +#: addons/web_process/static/src/xml/web_process.xml:75 +msgid "Related:" +msgstr "関係:" + +#. openerp-web +#: addons/web_process/static/src/xml/web_process.xml:88 +msgid "Select Process" +msgstr "プロセスを選んでください" + +#. openerp-web +#: addons/web_process/static/src/xml/web_process.xml:98 +msgid "Select" +msgstr "選択する" + +#. openerp-web +#: addons/web_process/static/src/xml/web_process.xml:109 +msgid "Edit Process" +msgstr "プロセスを編集" From 8c06f8ee1f9f11cf562f0595c4832263cf45cfe3 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Wed, 28 Mar 2012 14:12:24 +0200 Subject: [PATCH 086/102] [FIX] base: removed main menu reporting from extended view bzr revid: qdp-launchpad@openerp.com-20120328121224-owstjwqkc6e3oe7a --- openerp/addons/base/base_menu.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/addons/base/base_menu.xml b/openerp/addons/base/base_menu.xml index 050b1e5adf1..83460dee9af 100644 --- a/openerp/addons/base/base_menu.xml +++ b/openerp/addons/base/base_menu.xml @@ -27,7 +27,7 @@ parent="base.menu_custom" name="Reporting" sequence="30" /> - + From e5346f76cecbe9eed6c1b044ae19b0d4fd757f66 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Wed, 28 Mar 2012 16:38:53 +0200 Subject: [PATCH 087/102] [IMP] event: improvements related to kanban view * removed foolish 'subscribe boolean field on event.registration * if the register max field on the event is left to 0, it means the number of available ticket is unlimited * few usabiltiy improvements and refactoring bzr revid: qdp-launchpad@openerp.com-20120328143853-0m8uum4so8q4q3hv --- addons/event/event.py | 58 ++++++++++------------ addons/event/event_view.xml | 98 ++++++++++++++++++------------------- 2 files changed, 75 insertions(+), 81 deletions(-) diff --git a/addons/event/event.py b/addons/event/event.py index 8aca855cc0a..bd16194bcef 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -149,26 +149,25 @@ class event_event(osv.osv): elif field == 'register_prospect': number = reg_draft elif field == 'register_avail': - number = event.register_max-reg_open + #the number of ticket is unlimited if the event.register_max field is not set. + #In that cas we arbitrary set it to 9999, it is used in the kanban view to special case the display of the 'subscribe' button + number = event.register_max - reg_open if event.register_max != 0 else 9999 res[event.id][field] = number return res - + def _subscribe_fnc(self, cr, uid, ids, fields, args, context=None): - """Get Subscribe or Unsubscribe registration value. - @param ids: List of Event registration type's id - @param fields: List of function fields(subscribe). - @param context: A standard dictionary for contextual values - @return: Dictionary of function fields value. + """This functional fields compute if the current user (uid) is already subscribed or not to the event passed in parameter (ids) """ register_pool = self.pool.get('event.registration') res = {} for event in self.browse(cr, uid, ids, context=context): - curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',event.id)]) - if not curr_reg_id:res[event.id] = False + res[event.id] = False + curr_reg_id = register_pool.search(cr, uid, [('user_id', '=', uid), ('event_id', '=' ,event.id)]) if curr_reg_id: - for reg in register_pool.browse(cr,uid,curr_reg_id,context=context): - res[event.id] = False - if reg.subscribe:res[event.id]= True + for reg in register_pool.browse(cr, uid, curr_reg_id, context=context): + if reg.state in ('open','done'): + res[event.id]= True + continue return res _columns = { @@ -185,7 +184,7 @@ class event_event(osv.osv): 'date_begin': fields.datetime('Start Date', required=True, readonly=True, states={'draft': [('readonly', False)]}), 'date_end': fields.datetime('End Date', required=True, readonly=True, states={'draft': [('readonly', False)]}), 'state': fields.selection([ - ('draft', 'Draft'), + ('draft', 'Unconfirmed'), ('confirm', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled')], @@ -203,7 +202,7 @@ class event_event(osv.osv): type='many2one', relation='res.country', string='Country', readonly=False, states={'done': [('readonly', True)]}), 'note': fields.text('Description', readonly=False, states={'done': [('readonly', True)]}), 'company_id': fields.many2one('res.company', 'Company', required=False, change_default=True, readonly=False, states={'done': [('readonly', True)]}), - 'subscribe' : fields.function(_subscribe_fnc, type="boolean", string='Subscribe'), + 'is_subscribed' : fields.function(_subscribe_fnc, type="boolean", string='Subscribed'), } _defaults = { @@ -211,25 +210,21 @@ class event_event(osv.osv): 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'event.event', context=c), 'user_id': lambda obj, cr, uid, context: uid, } - - def subscribe_to_event(self,cr,uid,ids,context=None): + + def subscribe_to_event(self, cr, uid, ids, context=None): register_pool = self.pool.get('event.registration') user_pool = self.pool.get('res.users') - user = user_pool.browse(cr,uid,uid,context) - curr_reg_id = register_pool.search(cr,uid,[('user_id','=',user.id),('event_id','=',ids[0])]) - if not curr_reg_id: - curr_reg_id = register_pool.create(cr, uid, {'event_id':ids[0],'email':user.user_email, - 'name':user.name,'user_id':user.id, - 'subscribe':True - }) - if isinstance(curr_reg_id, (int, long)):curr_reg_id = [curr_reg_id] - return register_pool.confirm_registration(cr,uid,curr_reg_id,context) - + user = user_pool.browse(cr, uid, uid, context=context) + curr_reg_ids = register_pool.search(cr, uid, [('user_id', '=', user.id), ('event_id', '=' , ids[0])]) + if not curr_reg_ids: + curr_reg_ids = [register_pool.create(cr, uid, {'event_id': ids[0] ,'email': user.user_email, + 'name':user.name, 'user_id': user.id,})] + return register_pool.confirm_registration(cr, uid, curr_reg_ids, context=context) + def unsubscribe_to_event(self,cr,uid,ids,context=None): register_pool = self.pool.get('event.registration') - curr_reg_id = register_pool.search(cr,uid,[('user_id','=',uid),('event_id','=',ids[0])]) - if isinstance(curr_reg_id, (int, long)):curr_reg_id = [curr_reg_id] - return register_pool.button_reg_cancel(cr,uid,curr_reg_id,context) + curr_reg_ids = register_pool.search(cr, uid, [('user_id', '=', uid), ('event_id', '=', ids[0])]) + return register_pool.button_reg_cancel(cr, uid, curr_reg_ids, context=context) def _check_closing_date(self, cr, uid, ids, context=None): for event in self.browse(cr, uid, ids, context=context): @@ -281,7 +276,6 @@ class event_registration(osv.osv): ('cancel', 'Cancelled'), ('done', 'Attended')], 'State', size=16, readonly=True), - 'subscribe': fields.boolean('Subscribe'), } _defaults = { @@ -296,7 +290,7 @@ class event_registration(osv.osv): def confirm_registration(self, cr, uid, ids, context=None): self.message_append(cr, uid, ids,_('State set to open'),body_text= _('Open')) - return self.write(cr, uid, ids, {'state': 'open','subscribe':True}, context=context) + return self.write(cr, uid, ids, {'state': 'open'}, context=context) def registration_open(self, cr, uid, ids, context=None): @@ -323,7 +317,7 @@ class event_registration(osv.osv): def button_reg_cancel(self, cr, uid, ids, context=None, *args): self.message_append(cr, uid, ids,_('State set to Cancel'),body_text= _('Cancel')) - return self.write(cr, uid, ids, {'state': 'cancel','subscribe':False}) + return self.write(cr, uid, ids, {'state': 'cancel'}) def mail_user(self, cr, uid, ids, context=None): """ diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 89be60ea95b..0d72e16e7da 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -169,55 +169,55 @@ - + - - - - - -
- -
-
- - -
-
-
-
-

-

- @
- Organized by
- Only - No ticket available. - - - - tickets - ticket available. - - - -

- - - - - - - - -
-
-
-
+ + + + + +
+ +
+
+ + +
+
+
+
+

+

+ @
+ Organized by
+ Only + No ticket available. + + + + tickets + ticket + available. + + +

+ + + + + + + + +
+
+
+
@@ -299,7 +299,7 @@ event.event form kanban,calendar,tree,form,graph - {"search_default_upcoming":1} + {"search_default_upcoming":1} Event is the low level object used by meeting and others documents that should be synchronized with mobile devices or calendar applications through caldav. Most of the users should work in the Calendar menu, and not in the list of events.
From 179fb5ce69bfebc7e5cbb2f20b5a53101eebea41 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 28 Mar 2012 17:00:31 +0200 Subject: [PATCH 088/102] [FIX] KeyError: 'drop_db'. When trying to drop db without db name lp bug: https://launchpad.net/bugs/966108 fixed bzr revid: fme@openerp.com-20120328150031-6hdb9rwjoh3stfif --- addons/web/static/src/js/chrome.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 8217d0184d1..6636d5ab73e 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -410,7 +410,7 @@ openerp.web.Database = openerp.web.OldWidget.extend(/** @lends openerp.web.Datab $db_list = $form.find('[name=drop_db]'), db = $db_list.val(); - if (!confirm("Do you really want to delete the database: " + db + " ?")) { + if (!db || !confirm("Do you really want to delete the database: " + db + " ?")) { return; } self.rpc("/web/database/drop", {'fields': fields}, function(result) { From 24cdefd834a1ffc38b79ecbdb0689becefc728bd Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 28 Mar 2012 17:38:25 +0200 Subject: [PATCH 089/102] [FIX] Autocompletion popup gets partially hidden by calendar header Also removed forgotten debugger lp bug: https://launchpad.net/bugs/952855 fixed bzr revid: fme@openerp.com-20120328153825-zbop4op55hsib2sc --- addons/web_calendar/static/src/css/web_calendar.css | 2 +- addons/web_calendar/static/src/js/calendar.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/web_calendar/static/src/css/web_calendar.css b/addons/web_calendar/static/src/css/web_calendar.css index 2fefbfafbdc..313db123bb5 100644 --- a/addons/web_calendar/static/src/css/web_calendar.css +++ b/addons/web_calendar/static/src/css/web_calendar.css @@ -25,7 +25,7 @@ .openerp .dhx_cal_navline{ height:20px; position:absolute; - z-index:3; + z-index:1; width:750px; color:#2F3A48; background-color:#eee; diff --git a/addons/web_calendar/static/src/js/calendar.js b/addons/web_calendar/static/src/js/calendar.js index 6042ee2fd57..912fa4d6e4d 100644 --- a/addons/web_calendar/static/src/js/calendar.js +++ b/addons/web_calendar/static/src/js/calendar.js @@ -342,7 +342,6 @@ openerp.web_calendar.CalendarView = openerp.web.View.extend({ do_edit_event: function(event_id, evt) { var self = this; var index = this.dataset.get_id_index(event_id); - debugger if (index !== null) { this.dataset.index = index; this.do_switch_view('page'); From 57ee2606ee17e309184f5fe9f116a44b4fd89f3a Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 28 Mar 2012 17:58:07 +0200 Subject: [PATCH 090/102] [FIX] No visual feedback for required text fields lp bug: https://launchpad.net/bugs/949987 fixed bzr revid: fme@openerp.com-20120328155807-drwdvrp99zufkb0w --- addons/web/static/src/css/base.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index e8916db5a3b..168ba74bb46 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -1571,7 +1571,7 @@ label.error { .openerp .oe_form_frame_cell.oe_form_separator_vertical { border-left: 1px solid #666; } -.openerp td.required input, .openerp td.required select { +.openerp td.required input, .openerp td.required select, .openerp td.required textarea { background-color: #D2D2FF !important; } .openerp td.invalid input, .openerp td.invalid select, .openerp td.invalid textarea { From b7f2284d7f4056501efbde6b92954c1b16a59bf5 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Thu, 29 Mar 2012 04:35:42 +0000 Subject: [PATCH 091/102] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20120328044619-mysiqxktsyz9yvhk bzr revid: launchpad_translations_on_behalf_of_openerp-20120329043542-rsvb6ox4tf09j7d5 --- addons/account/i18n/zh_CN.po | 4 +- addons/base_crypt/i18n/pl.po | 45 ++ addons/crm_caldav/i18n/pl.po | 33 ++ addons/hr_timesheet/i18n/es_EC.po | 657 ++++++++++++++++++++++++++++++ 4 files changed, 737 insertions(+), 2 deletions(-) create mode 100644 addons/base_crypt/i18n/pl.po create mode 100644 addons/crm_caldav/i18n/pl.po create mode 100644 addons/hr_timesheet/i18n/es_EC.po diff --git a/addons/account/i18n/zh_CN.po b/addons/account/i18n/zh_CN.po index c5a78346b02..6b88c60792c 100644 --- a/addons/account/i18n/zh_CN.po +++ b/addons/account/i18n/zh_CN.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-27 04:51+0000\n" -"X-Generator: Launchpad (build 15011)\n" +"X-Launchpad-Export-Date: 2012-03-28 04:45+0000\n" +"X-Generator: Launchpad (build 15027)\n" #. module: account #: view:account.invoice.report:0 diff --git a/addons/base_crypt/i18n/pl.po b/addons/base_crypt/i18n/pl.po new file mode 100644 index 00000000000..4e4ff39a279 --- /dev/null +++ b/addons/base_crypt/i18n/pl.po @@ -0,0 +1,45 @@ +# Polish translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-03-28 14:21+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Polish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-29 04:35+0000\n" +"X-Generator: Launchpad (build 15032)\n" + +#. module: base_crypt +#: model:ir.model,name:base_crypt.model_res_users +msgid "res.users" +msgstr "" + +#. module: base_crypt +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "Nie może być dwóch użytkowników o tym samym loginie !" + +#. module: base_crypt +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "Wybrana firma jest niedozwolona dla tego użytkownika" + +#. module: base_crypt +#: code:addons/base_crypt/crypt.py:140 +#, python-format +msgid "Please specify the password !" +msgstr "Proszę podać hasło!" + +#. module: base_crypt +#: code:addons/base_crypt/crypt.py:140 +#, python-format +msgid "Error" +msgstr "Błąd" diff --git a/addons/crm_caldav/i18n/pl.po b/addons/crm_caldav/i18n/pl.po new file mode 100644 index 00000000000..748beb9313f --- /dev/null +++ b/addons/crm_caldav/i18n/pl.po @@ -0,0 +1,33 @@ +# Polish translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-03-28 14:18+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Polish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-29 04:35+0000\n" +"X-Generator: Launchpad (build 15032)\n" + +#. module: crm_caldav +#: model:ir.actions.act_window,name:crm_caldav.action_caldav_browse +msgid "Caldav Browse" +msgstr "" + +#. module: crm_caldav +#: model:ir.ui.menu,name:crm_caldav.menu_caldav_browse +msgid "Synchronize This Calendar" +msgstr "Synchronizuj ten kalendarz" + +#. module: crm_caldav +#: model:ir.model,name:crm_caldav.model_crm_meeting +msgid "Meeting" +msgstr "Zebranie" diff --git a/addons/hr_timesheet/i18n/es_EC.po b/addons/hr_timesheet/i18n/es_EC.po new file mode 100644 index 00000000000..b5d3252d359 --- /dev/null +++ b/addons/hr_timesheet/i18n/es_EC.po @@ -0,0 +1,657 @@ +# Spanish (Ecuador) translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-03-27 14:00+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Spanish (Ecuador) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-28 04:46+0000\n" +"X-Generator: Launchpad (build 15027)\n" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:43 +#: code:addons/hr_timesheet/report/users_timesheet.py:77 +#, python-format +msgid "Wed" +msgstr "Miércoles" + +#. module: hr_timesheet +#: view:hr.sign.out.project:0 +msgid "(Keep empty for current_time)" +msgstr "(Vacío para fecha actual)" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:132 +#, python-format +msgid "No employee defined for your user !" +msgstr "¡No se ha definido un empleado para su usuario!" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +msgid "Group By..." +msgstr "Agrupar por..." + +#. module: hr_timesheet +#: model:ir.actions.act_window,help:hr_timesheet.action_hr_timesheet_sign_in +msgid "" +"Employees can encode their time spent on the different projects. A project " +"is an analytic account and the time spent on a project generate costs on the " +"analytic account. This feature allows to record at the same time the " +"attendance and the timesheet." +msgstr "" +"Los empleados pueden imputar el tiempo que han invertido en los diferentes " +"proyectos. Un proyecto es una cuenta analítica y el tiempo de empleado en " +"un proyecto genera costes en esa cuenta analítica. Esta característica " +"permite registrar al mismo tiempo la asistencia y la hoja de tiempos." + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +msgid "Today" +msgstr "Hoy" + +#. module: hr_timesheet +#: field:hr.employee,journal_id:0 +msgid "Analytic Journal" +msgstr "Diario analítico" + +#. module: hr_timesheet +#: view:hr.sign.out.project:0 +msgid "Stop Working" +msgstr "Parar de trabajar" + +#. module: hr_timesheet +#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_employee +#: model:ir.ui.menu,name:hr_timesheet.menu_hr_timesheet_employee +msgid "Employee Timesheet" +msgstr "Horario del empleado" + +#. module: hr_timesheet +#: view:account.analytic.account:0 +msgid "Work done stats" +msgstr "Estadísticas trabajo realizado" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +#: model:ir.ui.menu,name:hr_timesheet.menu_hr_reporting_timesheet +msgid "Timesheet" +msgstr "Hoja de asistencia" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:43 +#: code:addons/hr_timesheet/report/users_timesheet.py:77 +#, python-format +msgid "Mon" +msgstr "Lunes" + +#. module: hr_timesheet +#: view:hr.sign.in.project:0 +msgid "Sign in" +msgstr "Acceder" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:43 +#: code:addons/hr_timesheet/report/users_timesheet.py:77 +#, python-format +msgid "Fri" +msgstr "Viernes" + +#. module: hr_timesheet +#: field:hr.employee,uom_id:0 +msgid "UoM" +msgstr "UoM" + +#. module: hr_timesheet +#: view:hr.sign.in.project:0 +msgid "" +"Employees can encode their time spent on the different projects they are " +"assigned on. A project is an analytic account and the time spent on a " +"project generates costs on the analytic account. This feature allows to " +"record at the same time the attendance and the timesheet." +msgstr "" +"Los empleados pueden imputar el tiempo que han invertido en los diferentes " +"proyectos. Un proyecto es una cuenta analítica y el tiempo de empleado en " +"un proyecto genera costes en esa cuenta analítica. Esta característica " +"permite registrar al mismo tiempo la asistencia y la hoja de tiempos." + +#. module: hr_timesheet +#: field:hr.sign.out.project,analytic_amount:0 +msgid "Minimum Analytic Amount" +msgstr "Importe analítico mínimo" + +#. module: hr_timesheet +#: view:hr.analytical.timesheet.employee:0 +msgid "Monthly Employee Timesheet" +msgstr "Hoja de asistencia mensual del Empleado" + +#. module: hr_timesheet +#: view:hr.sign.out.project:0 +msgid "Work done in the last period" +msgstr "Trabajo realizado en el último período" + +#. module: hr_timesheet +#: field:hr.sign.in.project,state:0 +#: field:hr.sign.out.project,state:0 +msgid "Current state" +msgstr "Estado actual" + +#. module: hr_timesheet +#: field:hr.sign.in.project,name:0 +#: field:hr.sign.out.project,name:0 +msgid "Employees name" +msgstr "Nombre de empleados" + +#. module: hr_timesheet +#: field:hr.sign.out.project,account_id:0 +msgid "Project / Analytic Account" +msgstr "Proyecto / Cuenta Analítica" + +#. module: hr_timesheet +#: model:ir.model,name:hr_timesheet.model_hr_analytical_timesheet_users +msgid "Print Employees Timesheet" +msgstr "Imprimir hoja de asistencia de los Empleados" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/hr_timesheet.py:175 +#: code:addons/hr_timesheet/hr_timesheet.py:177 +#, python-format +msgid "Warning !" +msgstr "Advertencia !" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:77 +#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:132 +#, python-format +msgid "UserError" +msgstr "Error de usuario" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py:77 +#, python-format +msgid "No cost unit defined for this employee !" +msgstr "¡No se ha definido un coste unitario para este empleado!" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:43 +#: code:addons/hr_timesheet/report/users_timesheet.py:77 +#, python-format +msgid "Tue" +msgstr "Martes" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/wizard/hr_timesheet_print_employee.py:42 +#, python-format +msgid "Warning" +msgstr "Advertencia" + +#. module: hr_timesheet +#: field:hr.analytic.timesheet,partner_id:0 +msgid "Partner" +msgstr "Cliente" + +#. module: hr_timesheet +#: view:hr.sign.in.project:0 +#: view:hr.sign.out.project:0 +msgid "Sign In/Out By Project" +msgstr "Acceder/salir del proyecto" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:43 +#: code:addons/hr_timesheet/report/users_timesheet.py:77 +#, python-format +msgid "Sat" +msgstr "Sábado" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:43 +#: code:addons/hr_timesheet/report/users_timesheet.py:77 +#, python-format +msgid "Sun" +msgstr "Domingo" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +msgid "Analytic account" +msgstr "Cuenta Analítica" + +#. module: hr_timesheet +#: view:hr.analytical.timesheet.employee:0 +#: view:hr.analytical.timesheet.users:0 +msgid "Print" +msgstr "Imprimir" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +#: model:ir.actions.act_window,name:hr_timesheet.act_hr_timesheet_line_evry1_all_form +#: model:ir.ui.menu,name:hr_timesheet.menu_hr_working_hours +msgid "Timesheet Lines" +msgstr "Líneas de la hoja de asistencia" + +#. module: hr_timesheet +#: view:hr.analytical.timesheet.users:0 +msgid "Monthly Employees Timesheet" +msgstr "Hoja de asistencia mensual de empleados" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "July" +msgstr "Julio" + +#. module: hr_timesheet +#: field:hr.sign.in.project,date:0 +#: field:hr.sign.out.project,date_start:0 +msgid "Starting Date" +msgstr "Fecha de inicio" + +#. module: hr_timesheet +#: view:hr.employee:0 +msgid "Categories" +msgstr "Categorías" + +#. module: hr_timesheet +#: constraint:hr.analytic.timesheet:0 +msgid "You cannot modify an entry in a Confirmed/Done timesheet !." +msgstr "" +"No se puede modificar una entrada Confirmado / Hoja de asistencia ya hecha!." + +#. module: hr_timesheet +#: help:hr.employee,product_id:0 +msgid "Specifies employee's designation as a product with type 'service'." +msgstr "" +"Especifica la designación del empleado como un producto de tipo 'servicio'." + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +msgid "Total cost" +msgstr "Coste total" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "September" +msgstr "Septiembre" + +#. module: hr_timesheet +#: model:ir.model,name:hr_timesheet.model_hr_analytic_timesheet +msgid "Timesheet Line" +msgstr "Línea hoja de servicios" + +#. module: hr_timesheet +#: field:hr.analytical.timesheet.users,employee_ids:0 +msgid "employees" +msgstr "Empleados" + +#. module: hr_timesheet +#: view:account.analytic.account:0 +msgid "Stats by month" +msgstr "Estadísticas por mes" + +#. module: hr_timesheet +#: view:account.analytic.account:0 +#: field:hr.analytical.timesheet.employee,month:0 +#: field:hr.analytical.timesheet.users,month:0 +msgid "Month" +msgstr "Mes" + +#. module: hr_timesheet +#: field:hr.sign.out.project,info:0 +msgid "Work Description" +msgstr "Descripción del trabajo" + +#. module: hr_timesheet +#: view:account.analytic.account:0 +msgid "Invoice Analysis" +msgstr "Análisis de facturas" + +#. module: hr_timesheet +#: model:ir.actions.report.xml,name:hr_timesheet.report_user_timesheet +msgid "Employee timesheet" +msgstr "Hoja de asistencia del empleado" + +#. module: hr_timesheet +#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_sign_in +#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_sign_out +msgid "Sign in / Sign out by project" +msgstr "Entrada/salida por proyecto" + +#. module: hr_timesheet +#: model:ir.actions.act_window,name:hr_timesheet.action_define_analytic_structure +msgid "Define your Analytic Structure" +msgstr "Defina su estructura analítica" + +#. module: hr_timesheet +#: view:hr.sign.in.project:0 +msgid "Sign in / Sign out" +msgstr "Registrar entrada/salida" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/hr_timesheet.py:175 +#, python-format +msgid "" +"Analytic journal is not defined for employee %s \n" +"Define an employee for the selected user and assign an analytic journal!" +msgstr "" +"El diario analítico no está definido para el empleado %s\n" +"¡Defina un empleado para el usuario seleccionado y asígnele un diario " +"analítico!" + +#. module: hr_timesheet +#: view:hr.sign.in.project:0 +msgid "(Keep empty for current time)" +msgstr "(Dejarlo vacío para hora actual)" + +#. module: hr_timesheet +#: view:hr.employee:0 +msgid "Timesheets" +msgstr "Hojas de trabajo" + +#. module: hr_timesheet +#: model:ir.actions.act_window,help:hr_timesheet.action_define_analytic_structure +msgid "" +"You should create an analytic account structure depending on your needs to " +"analyse costs and revenues. In OpenERP, analytic accounts are also used to " +"track customer contracts." +msgstr "" +"Debe crear una estructura de la cuenta analítica dependiendo de sus " +"necesidades para analizar los costos e ingresos. En OpenERP, cuentas " +"analíticas también se utilizan para seguimiento de contratos de clientes." + +#. module: hr_timesheet +#: field:hr.analytic.timesheet,line_id:0 +msgid "Analytic Line" +msgstr "Línea Analítica" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "August" +msgstr "Agosto" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "June" +msgstr "Junio" + +#. module: hr_timesheet +#: view:hr.analytical.timesheet.employee:0 +msgid "Print My Timesheet" +msgstr "Imprimir mi horario" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +msgid "Date" +msgstr "Fecha" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "November" +msgstr "Noviembre" + +#. module: hr_timesheet +#: constraint:hr.employee:0 +msgid "Error ! You cannot create recursive Hierarchy of Employees." +msgstr "¡Error! No se puede crear una jerarquía recursiva de empleados." + +#. module: hr_timesheet +#: field:hr.sign.out.project,date:0 +msgid "Closing Date" +msgstr "Fecha de cierre" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "October" +msgstr "Octubre" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "January" +msgstr "Enero" + +#. module: hr_timesheet +#: view:account.analytic.account:0 +msgid "Key dates" +msgstr "Fechas clave" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:43 +#: code:addons/hr_timesheet/report/users_timesheet.py:77 +#, python-format +msgid "Thu" +msgstr "Jueves" + +#. module: hr_timesheet +#: view:account.analytic.account:0 +msgid "Analysis stats" +msgstr "Estadísticas de análisis" + +#. module: hr_timesheet +#: model:ir.model,name:hr_timesheet.model_hr_analytical_timesheet_employee +msgid "Print Employee Timesheet & Print My Timesheet" +msgstr "Imprime el 'Parte de Horas del Empleado' y 'Mi Parte de Horas'" + +#. module: hr_timesheet +#: field:hr.sign.in.project,emp_id:0 +#: field:hr.sign.out.project,emp_id:0 +msgid "Employee ID" +msgstr "ID empleado" + +#. module: hr_timesheet +#: view:hr.sign.out.project:0 +msgid "General Information" +msgstr "Información general" + +#. module: hr_timesheet +#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_my +msgid "My Timesheet" +msgstr "My horario" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "December" +msgstr "Diciembre" + +#. module: hr_timesheet +#: view:hr.analytical.timesheet.employee:0 +#: view:hr.analytical.timesheet.users:0 +#: view:hr.sign.in.project:0 +#: view:hr.sign.out.project:0 +msgid "Cancel" +msgstr "Cancelar" + +#. module: hr_timesheet +#: model:ir.actions.act_window,name:hr_timesheet.action_hr_timesheet_users +#: model:ir.actions.report.xml,name:hr_timesheet.report_users_timesheet +#: model:ir.actions.wizard,name:hr_timesheet.wizard_hr_timesheet_users +#: model:ir.ui.menu,name:hr_timesheet.menu_hr_timesheet_users +msgid "Employees Timesheet" +msgstr "Horario de empleados" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +msgid "Information" +msgstr "Información" + +#. module: hr_timesheet +#: field:hr.analytical.timesheet.employee,employee_id:0 +#: model:ir.model,name:hr_timesheet.model_hr_employee +msgid "Employee" +msgstr "Empleado(a)" + +#. module: hr_timesheet +#: model:ir.actions.act_window,help:hr_timesheet.act_hr_timesheet_line_evry1_all_form +msgid "" +"Through this menu you can register and follow your workings hours by project " +"every day." +msgstr "" +"A través de este menú se puede registrar y seguir las horas diarias " +"trabajadas por proyecto." + +#. module: hr_timesheet +#: field:hr.sign.in.project,server_date:0 +#: field:hr.sign.out.project,server_date:0 +msgid "Current Date" +msgstr "Fecha Actual" + +#. module: hr_timesheet +#: view:hr.analytical.timesheet.employee:0 +msgid "This wizard will print monthly timesheet" +msgstr "Este asistente imprimirá el parte de horas mensual" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +#: field:hr.employee,product_id:0 +msgid "Product" +msgstr "Producto" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +msgid "Invoicing" +msgstr "Facturación" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "May" +msgstr "Mayo" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +msgid "Total time" +msgstr "Tiempo total" + +#. module: hr_timesheet +#: view:hr.sign.in.project:0 +msgid "(local time on the server side)" +msgstr "(hora local en el servidor)" + +#. module: hr_timesheet +#: model:ir.model,name:hr_timesheet.model_hr_sign_in_project +msgid "Sign In By Project" +msgstr "Registrarse en un proyecto" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "February" +msgstr "Febrero" + +#. module: hr_timesheet +#: model:ir.model,name:hr_timesheet.model_hr_sign_out_project +msgid "Sign Out By Project" +msgstr "Salir de un proyecto" + +#. module: hr_timesheet +#: view:hr.analytical.timesheet.users:0 +msgid "Employees" +msgstr "Empleados" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "March" +msgstr "Marzo" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/report/user_timesheet.py:40 +#: code:addons/hr_timesheet/report/users_timesheet.py:73 +#: selection:hr.analytical.timesheet.employee,month:0 +#: selection:hr.analytical.timesheet.users,month:0 +#, python-format +msgid "April" +msgstr "Abril" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/hr_timesheet.py:177 +#, python-format +msgid "" +"No analytic account defined on the project.\n" +"Please set one or we can not automatically fill the timesheet." +msgstr "" +"No se ha definido una cuenta analítica para el proyecto.\n" +"Por favor seleccione una o no se puede llenar automáticamente la hoja de " +"asistencia." + +#. module: hr_timesheet +#: view:account.analytic.account:0 +#: view:hr.analytic.timesheet:0 +msgid "Users" +msgstr "Usuarios" + +#. module: hr_timesheet +#: view:hr.sign.in.project:0 +msgid "Start Working" +msgstr "Empezar a trabajar" + +#. module: hr_timesheet +#: view:account.analytic.account:0 +msgid "Stats by user" +msgstr "Estadísticas por usuario" + +#. module: hr_timesheet +#: code:addons/hr_timesheet/wizard/hr_timesheet_print_employee.py:42 +#, python-format +msgid "No employee defined for this user" +msgstr "No se ha definido un empleado para este usuario" + +#. module: hr_timesheet +#: field:hr.analytical.timesheet.employee,year:0 +#: field:hr.analytical.timesheet.users,year:0 +msgid "Year" +msgstr "Año" + +#. module: hr_timesheet +#: view:hr.analytic.timesheet:0 +msgid "Accounting" +msgstr "Administración Financiera" + +#. module: hr_timesheet +#: view:hr.sign.out.project:0 +msgid "Change Work" +msgstr "Cambiar trabajo" From fb7b21d0024ca52d5ae5b1167b72d40cfcbedaa6 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Thu, 29 Mar 2012 04:46:39 +0000 Subject: [PATCH 092/102] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20120329044639-uvugg6ws79fao36u --- addons/web/i18n/nl.po | 114 ++++++++++++++++++++++++++++---- addons/web_calendar/i18n/nb.po | 41 ++++++++++++ addons/web_dashboard/i18n/nb.po | 111 +++++++++++++++++++++++++++++++ addons/web_graph/i18n/ro.po | 23 +++++++ 4 files changed, 276 insertions(+), 13 deletions(-) create mode 100644 addons/web_calendar/i18n/nb.po create mode 100644 addons/web_dashboard/i18n/nb.po create mode 100644 addons/web_graph/i18n/ro.po diff --git a/addons/web/i18n/nl.po b/addons/web/i18n/nl.po index 2c60216ae37..a303a2fb091 100644 --- a/addons/web/i18n/nl.po +++ b/addons/web/i18n/nl.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-14 15:27+0100\n" -"PO-Revision-Date: 2012-02-16 10:56+0000\n" +"PO-Revision-Date: 2012-03-28 12:49+0000\n" "Last-Translator: Erwin \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-17 05:13+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-29 04:46+0000\n" +"X-Generator: Launchpad (build 15032)\n" #. openerp-web #: addons/web/static/src/js/chrome.js:172 @@ -24,6 +24,8 @@ msgstr "" #: addons/web/static/src/js/view_form.js:419 #: addons/web/static/src/js/view_form.js:1233 #: addons/web/static/src/xml/base.xml:1695 +#: addons/web/static/src/js/view_form.js:424 +#: addons/web/static/src/js/view_form.js:1239 msgid "Ok" msgstr "Ok" @@ -92,6 +94,8 @@ msgstr "Voorkeuren" #: addons/web/static/src/xml/base.xml:1496 #: addons/web/static/src/xml/base.xml:1506 #: addons/web/static/src/xml/base.xml:1515 +#: addons/web/static/src/js/search.js:293 +#: addons/web/static/src/js/view_form.js:1234 msgid "Cancel" msgstr "Annuleren" @@ -103,7 +107,8 @@ msgstr "Wachtwoord wijzigen" #. openerp-web #: addons/web/static/src/js/chrome.js:792 #: addons/web/static/src/js/view_editor.js:73 -#: addons/web/static/src/js/views.js:962 addons/web/static/src/xml/base.xml:737 +#: addons/web/static/src/js/views.js:962 +#: addons/web/static/src/xml/base.xml:737 #: addons/web/static/src/xml/base.xml:1500 #: addons/web/static/src/xml/base.xml:1514 msgid "Save" @@ -118,11 +123,13 @@ msgstr "Wachtwoord wijzigen" #. openerp-web #: addons/web/static/src/js/chrome.js:1096 +#: addons/web/static/src/js/chrome.js:1100 msgid "OpenERP - Unsupported/Community Version" msgstr "OpenERP - Unsupported/Community Version" #. openerp-web #: addons/web/static/src/js/chrome.js:1131 +#: addons/web/static/src/js/chrome.js:1135 msgid "Client Error" msgstr "Cliënt fout" @@ -139,6 +146,8 @@ msgstr "Gegevens exporteren" #: addons/web/static/src/js/view_form.js:692 #: addons/web/static/src/js/view_form.js:3044 #: addons/web/static/src/js/views.js:963 +#: addons/web/static/src/js/view_form.js:698 +#: addons/web/static/src/js/view_form.js:3067 msgid "Close" msgstr "Sluiten" @@ -180,11 +189,14 @@ msgstr "Externe ID" #. openerp-web #: addons/web/static/src/js/formats.js:300 #: addons/web/static/src/js/view_page.js:245 +#: addons/web/static/src/js/formats.js:322 +#: addons/web/static/src/js/view_page.js:251 msgid "Download" msgstr "Downloaden" #. openerp-web #: addons/web/static/src/js/formats.js:305 +#: addons/web/static/src/js/formats.js:327 #, python-format msgid "Download \"%s\"" msgstr "Download \"%s\"" @@ -202,59 +214,70 @@ msgstr "Filter regel" #. openerp-web #: addons/web/static/src/js/search.js:242 #: addons/web/static/src/js/search.js:291 +#: addons/web/static/src/js/search.js:296 msgid "OK" msgstr "OK" #. openerp-web #: addons/web/static/src/js/search.js:286 #: addons/web/static/src/xml/base.xml:1292 +#: addons/web/static/src/js/search.js:291 msgid "Add to Dashboard" msgstr "Aan dashboard toevoegen" #. openerp-web #: addons/web/static/src/js/search.js:415 +#: addons/web/static/src/js/search.js:420 msgid "Invalid Search" msgstr "Ongeldige zoekopdracht" #. openerp-web #: addons/web/static/src/js/search.js:415 +#: addons/web/static/src/js/search.js:420 msgid "triggered from search view" msgstr "geactiveerd door zoek weergave" #. openerp-web #: addons/web/static/src/js/search.js:503 +#: addons/web/static/src/js/search.js:508 #, python-format msgid "Incorrect value for field %(fieldname)s: [%(value)s] is %(message)s" msgstr "Onjuiste waarde bij veld %(fieldname)s: [%(value)s] is %(message)s" #. openerp-web #: addons/web/static/src/js/search.js:839 +#: addons/web/static/src/js/search.js:844 msgid "not a valid integer" msgstr "geen geldig geheel getal" #. openerp-web #: addons/web/static/src/js/search.js:853 +#: addons/web/static/src/js/search.js:858 msgid "not a valid number" msgstr "geen geldig getal" #. openerp-web #: addons/web/static/src/js/search.js:931 #: addons/web/static/src/xml/base.xml:968 +#: addons/web/static/src/js/search.js:936 msgid "Yes" msgstr "Ja" #. openerp-web #: addons/web/static/src/js/search.js:932 +#: addons/web/static/src/js/search.js:937 msgid "No" -msgstr "Nr." +msgstr "Nee" #. openerp-web #: addons/web/static/src/js/search.js:1290 +#: addons/web/static/src/js/search.js:1295 msgid "contains" msgstr "bevat" #. openerp-web #: addons/web/static/src/js/search.js:1291 +#: addons/web/static/src/js/search.js:1296 msgid "doesn't contain" msgstr "bevat niet" @@ -264,6 +287,11 @@ msgstr "bevat niet" #: addons/web/static/src/js/search.js:1325 #: addons/web/static/src/js/search.js:1344 #: addons/web/static/src/js/search.js:1365 +#: addons/web/static/src/js/search.js:1297 +#: addons/web/static/src/js/search.js:1311 +#: addons/web/static/src/js/search.js:1330 +#: addons/web/static/src/js/search.js:1349 +#: addons/web/static/src/js/search.js:1370 msgid "is equal to" msgstr "is gelijk aan" @@ -273,6 +301,11 @@ msgstr "is gelijk aan" #: addons/web/static/src/js/search.js:1326 #: addons/web/static/src/js/search.js:1345 #: addons/web/static/src/js/search.js:1366 +#: addons/web/static/src/js/search.js:1298 +#: addons/web/static/src/js/search.js:1312 +#: addons/web/static/src/js/search.js:1331 +#: addons/web/static/src/js/search.js:1350 +#: addons/web/static/src/js/search.js:1371 msgid "is not equal to" msgstr "is niet gelijk aan" @@ -282,6 +315,11 @@ msgstr "is niet gelijk aan" #: addons/web/static/src/js/search.js:1327 #: addons/web/static/src/js/search.js:1346 #: addons/web/static/src/js/search.js:1367 +#: addons/web/static/src/js/search.js:1299 +#: addons/web/static/src/js/search.js:1313 +#: addons/web/static/src/js/search.js:1332 +#: addons/web/static/src/js/search.js:1351 +#: addons/web/static/src/js/search.js:1372 msgid "greater than" msgstr "is groter dan" @@ -291,6 +329,11 @@ msgstr "is groter dan" #: addons/web/static/src/js/search.js:1328 #: addons/web/static/src/js/search.js:1347 #: addons/web/static/src/js/search.js:1368 +#: addons/web/static/src/js/search.js:1300 +#: addons/web/static/src/js/search.js:1314 +#: addons/web/static/src/js/search.js:1333 +#: addons/web/static/src/js/search.js:1352 +#: addons/web/static/src/js/search.js:1373 msgid "less than" msgstr "kleiner dan" @@ -300,6 +343,11 @@ msgstr "kleiner dan" #: addons/web/static/src/js/search.js:1329 #: addons/web/static/src/js/search.js:1348 #: addons/web/static/src/js/search.js:1369 +#: addons/web/static/src/js/search.js:1301 +#: addons/web/static/src/js/search.js:1315 +#: addons/web/static/src/js/search.js:1334 +#: addons/web/static/src/js/search.js:1353 +#: addons/web/static/src/js/search.js:1374 msgid "greater or equal than" msgstr "is groter of gelijk aan" @@ -309,27 +357,37 @@ msgstr "is groter of gelijk aan" #: addons/web/static/src/js/search.js:1330 #: addons/web/static/src/js/search.js:1349 #: addons/web/static/src/js/search.js:1370 +#: addons/web/static/src/js/search.js:1302 +#: addons/web/static/src/js/search.js:1316 +#: addons/web/static/src/js/search.js:1335 +#: addons/web/static/src/js/search.js:1354 +#: addons/web/static/src/js/search.js:1375 msgid "less or equal than" msgstr "is kleiner of gelijk aan" #. openerp-web #: addons/web/static/src/js/search.js:1360 #: addons/web/static/src/js/search.js:1383 +#: addons/web/static/src/js/search.js:1365 +#: addons/web/static/src/js/search.js:1388 msgid "is" msgstr "is" #. openerp-web #: addons/web/static/src/js/search.js:1384 +#: addons/web/static/src/js/search.js:1389 msgid "is not" msgstr "is niet" #. openerp-web #: addons/web/static/src/js/search.js:1396 +#: addons/web/static/src/js/search.js:1401 msgid "is true" msgstr "is waar" #. openerp-web #: addons/web/static/src/js/search.js:1397 +#: addons/web/static/src/js/search.js:1402 msgid "is false" msgstr "is onwaar" @@ -424,51 +482,60 @@ msgstr "Aanpassen" #. openerp-web #: addons/web/static/src/js/view_form.js:123 #: addons/web/static/src/js/view_form.js:686 +#: addons/web/static/src/js/view_form.js:692 msgid "Set Default" msgstr "Gebruik als standaard" #. openerp-web #: addons/web/static/src/js/view_form.js:469 +#: addons/web/static/src/js/view_form.js:475 msgid "" "Warning, the record has been modified, your changes will be discarded." msgstr "Letop: het record is gewijzigd; uw wijzigingen gaan verloren." #. openerp-web #: addons/web/static/src/js/view_form.js:693 +#: addons/web/static/src/js/view_form.js:699 msgid "Save default" msgstr "Opslaan als standaard" #. openerp-web #: addons/web/static/src/js/view_form.js:754 +#: addons/web/static/src/js/view_form.js:760 msgid "Attachments" msgstr "Bijlages" #. openerp-web #: addons/web/static/src/js/view_form.js:792 +#: addons/web/static/src/js/view_form.js:798 #, python-format msgid "Do you really want to delete the attachment %s?" msgstr "Weet u zeker dat u deze bijlage %s wilt verwijderen?" #. openerp-web #: addons/web/static/src/js/view_form.js:822 +#: addons/web/static/src/js/view_form.js:828 #, python-format msgid "Unknown operator %s in domain %s" msgstr "Onbekend operator% s in domein% s" #. openerp-web #: addons/web/static/src/js/view_form.js:830 +#: addons/web/static/src/js/view_form.js:836 #, python-format msgid "Unknown field %s in domain %s" -msgstr "Onbekend vel %s in domein %s" +msgstr "Onbekend veld %s in domein %s" #. openerp-web #: addons/web/static/src/js/view_form.js:868 +#: addons/web/static/src/js/view_form.js:874 #, python-format msgid "Unsupported operator %s in domain %s" msgstr "Niet ondersteunde operator %s in domein %s" #. openerp-web #: addons/web/static/src/js/view_form.js:1225 +#: addons/web/static/src/js/view_form.js:1231 msgid "Confirm" msgstr "Bevestig" @@ -476,34 +543,43 @@ msgstr "Bevestig" #: addons/web/static/src/js/view_form.js:1921 #: addons/web/static/src/js/view_form.js:2578 #: addons/web/static/src/js/view_form.js:2741 +#: addons/web/static/src/js/view_form.js:1933 +#: addons/web/static/src/js/view_form.js:2590 +#: addons/web/static/src/js/view_form.js:2760 msgid "Open: " msgstr "Open: " #. openerp-web #: addons/web/static/src/js/view_form.js:2049 +#: addons/web/static/src/js/view_form.js:2061 msgid "   Search More..." msgstr "   Zoek verder..." #. openerp-web #: addons/web/static/src/js/view_form.js:2062 +#: addons/web/static/src/js/view_form.js:2074 #, python-format msgid "   Create \"%s\"" msgstr "   Maak \"%s\"" #. openerp-web #: addons/web/static/src/js/view_form.js:2068 +#: addons/web/static/src/js/view_form.js:2080 msgid "   Create and Edit..." msgstr "   Maak en wijzig..." #. openerp-web #: addons/web/static/src/js/view_form.js:2101 #: addons/web/static/src/js/views.js:675 +#: addons/web/static/src/js/view_form.js:2113 msgid "Search: " msgstr "Zoeken: " #. openerp-web #: addons/web/static/src/js/view_form.js:2101 #: addons/web/static/src/js/view_form.js:2550 +#: addons/web/static/src/js/view_form.js:2113 +#: addons/web/static/src/js/view_form.js:2562 msgid "Create: " msgstr "Maken: " @@ -512,11 +588,13 @@ msgstr "Maken: " #: addons/web/static/src/xml/base.xml:750 #: addons/web/static/src/xml/base.xml:772 #: addons/web/static/src/xml/base.xml:1646 +#: addons/web/static/src/js/view_form.js:2680 msgid "Add" msgstr "Toevoegen" #. openerp-web #: addons/web/static/src/js/view_form.js:2721 +#: addons/web/static/src/js/view_form.js:2740 msgid "Add: " msgstr "Toevoegen: " @@ -532,22 +610,26 @@ msgstr "Onbeperkt" #. openerp-web #: addons/web/static/src/js/view_list.js:305 +#: addons/web/static/src/js/view_list.js:309 #, python-format msgid "[%(first_record)d to %(last_record)d] of %(records_count)d" msgstr "[%(first_record)d t/m %(last_record)d] van %(records_count)d" #. openerp-web #: addons/web/static/src/js/view_list.js:524 +#: addons/web/static/src/js/view_list.js:528 msgid "Do you really want to remove these records?" msgstr "Wilt u deze records werkelijk verwijderen?" #. openerp-web #: addons/web/static/src/js/view_list.js:1230 +#: addons/web/static/src/js/view_list.js:1232 msgid "Undefined" msgstr "Onbepaald" #. openerp-web #: addons/web/static/src/js/view_list.js:1327 +#: addons/web/static/src/js/view_list.js:1331 #, python-format msgid "%(page)d/%(page_count)d" msgstr "%(page)d/%(page_count)d" @@ -568,9 +650,10 @@ msgid "Tree" msgstr "Boomstructuur" #. openerp-web -#: addons/web/static/src/js/views.js:565 addons/web/static/src/xml/base.xml:480 +#: addons/web/static/src/js/views.js:565 +#: addons/web/static/src/xml/base.xml:480 msgid "Fields View Get" -msgstr "" +msgstr "Veldweergave 'Get'" #. openerp-web #: addons/web/static/src/js/views.js:573 @@ -585,7 +668,8 @@ msgid "Model %s fields" msgstr "Model %s velden" #. openerp-web -#: addons/web/static/src/js/views.js:610 addons/web/static/src/xml/base.xml:482 +#: addons/web/static/src/js/views.js:610 +#: addons/web/static/src/xml/base.xml:482 msgid "Manage Views" msgstr "Weergaven beheren" @@ -652,12 +736,14 @@ msgid "Translations" msgstr "Vertalingen" #. openerp-web -#: addons/web/static/src/xml/base.xml:44 addons/web/static/src/xml/base.xml:315 +#: addons/web/static/src/xml/base.xml:44 +#: addons/web/static/src/xml/base.xml:315 msgid "Powered by" msgstr "Powered by" #. openerp-web -#: addons/web/static/src/xml/base.xml:44 addons/web/static/src/xml/base.xml:315 +#: addons/web/static/src/xml/base.xml:44 +#: addons/web/static/src/xml/base.xml:315 #: addons/web/static/src/xml/base.xml:1813 msgid "OpenERP" msgstr "OpenERP" @@ -673,12 +759,14 @@ msgid "CREATE DATABASE" msgstr "DATABASE MAKEN" #. openerp-web -#: addons/web/static/src/xml/base.xml:68 addons/web/static/src/xml/base.xml:211 +#: addons/web/static/src/xml/base.xml:68 +#: addons/web/static/src/xml/base.xml:211 msgid "Master password:" msgstr "Master wachtwoord:" #. openerp-web -#: addons/web/static/src/xml/base.xml:72 addons/web/static/src/xml/base.xml:191 +#: addons/web/static/src/xml/base.xml:72 +#: addons/web/static/src/xml/base.xml:191 msgid "New database name:" msgstr "Naam nieuwe database:" diff --git a/addons/web_calendar/i18n/nb.po b/addons/web_calendar/i18n/nb.po new file mode 100644 index 00000000000..182519a66c4 --- /dev/null +++ b/addons/web_calendar/i18n/nb.po @@ -0,0 +1,41 @@ +# Norwegian Bokmal translation for openerp-web +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-06 17:33+0100\n" +"PO-Revision-Date: 2012-03-28 13:05+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Norwegian Bokmal \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-29 04:46+0000\n" +"X-Generator: Launchpad (build 15032)\n" + +#. openerp-web +#: addons/web_calendar/static/src/js/calendar.js:11 +msgid "Calendar" +msgstr "Kalender" + +#. openerp-web +#: addons/web_calendar/static/src/js/calendar.js:466 +#: addons/web_calendar/static/src/js/calendar.js:467 +msgid "Responsible" +msgstr "Ansvarlig" + +#. openerp-web +#: addons/web_calendar/static/src/js/calendar.js:504 +#: addons/web_calendar/static/src/js/calendar.js:505 +msgid "Navigator" +msgstr "Navigator" + +#. openerp-web +#: addons/web_calendar/static/src/xml/web_calendar.xml:5 +#: addons/web_calendar/static/src/xml/web_calendar.xml:6 +msgid " " +msgstr " " diff --git a/addons/web_dashboard/i18n/nb.po b/addons/web_dashboard/i18n/nb.po new file mode 100644 index 00000000000..e47ff0aae68 --- /dev/null +++ b/addons/web_dashboard/i18n/nb.po @@ -0,0 +1,111 @@ +# Norwegian Bokmal translation for openerp-web +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-14 15:27+0100\n" +"PO-Revision-Date: 2012-03-28 13:07+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Norwegian Bokmal \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-29 04:46+0000\n" +"X-Generator: Launchpad (build 15032)\n" + +#. openerp-web +#: addons/web_dashboard/static/src/js/dashboard.js:63 +msgid "Edit Layout" +msgstr "Rediger layout" + +#. openerp-web +#: addons/web_dashboard/static/src/js/dashboard.js:109 +msgid "Are you sure you want to remove this item ?" +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/js/dashboard.js:316 +msgid "Uncategorized" +msgstr "Ikke kategorisert" + +#. openerp-web +#: addons/web_dashboard/static/src/js/dashboard.js:324 +#, python-format +msgid "Execute task \"%s\"" +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/js/dashboard.js:325 +msgid "Mark this task as done" +msgstr "Merk denne oppgaven som ferdig" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:4 +msgid "Reset Layout.." +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:6 +msgid "Reset" +msgstr "Tilbakestill" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:8 +msgid "Change Layout.." +msgstr "Endre layout.." + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:10 +msgid "Change Layout" +msgstr "Endre layout" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:27 +msgid " " +msgstr " " + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:28 +msgid "Create" +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:39 +msgid "Choose dashboard layout" +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:62 +msgid "progress:" +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:67 +msgid "" +"Click on the functionalites listed below to launch them and configure your " +"system" +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:110 +msgid "Welcome to OpenERP" +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:118 +msgid "Remember to bookmark" +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:119 +msgid "This url" +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:121 +msgid "Your login:" +msgstr "" diff --git a/addons/web_graph/i18n/ro.po b/addons/web_graph/i18n/ro.po new file mode 100644 index 00000000000..c5debf64d00 --- /dev/null +++ b/addons/web_graph/i18n/ro.po @@ -0,0 +1,23 @@ +# Romanian translation for openerp-web +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-06 17:33+0100\n" +"PO-Revision-Date: 2012-03-28 19:17+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Romanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-29 04:46+0000\n" +"X-Generator: Launchpad (build 15032)\n" + +#. openerp-web +#: addons/web_graph/static/src/js/graph.js:19 +msgid "Graph" +msgstr "Grafic" From 1ff357967a73a49b03cdac9894fae3f6f364728b Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Thu, 29 Mar 2012 05:23:06 +0000 Subject: [PATCH 093/102] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20120329052306-8en790fahss1urm3 --- addons/account/i18n/es.po | 11 +-- addons/account/i18n/et.po | 12 ++-- addons/account/i18n/fr.po | 10 +-- addons/account_analytic_plans/i18n/pl.po | 12 ++-- addons/account_cancel/i18n/pl.po | 10 +-- addons/base_contact/i18n/es.po | 16 ++--- addons/base_crypt/i18n/pl.po | 45 ++++++++++++ addons/crm_caldav/i18n/pl.po | 33 +++++++++ addons/fetchmail/i18n/es.po | 10 +-- addons/mrp_operations/i18n/fi.po | 54 +++++++------- addons/plugin_outlook/i18n/et.po | 14 ++-- addons/project_gtd/i18n/fi.po | 26 +++---- addons/share/i18n/fi.po | 92 +++++++++++++----------- addons/stock_invoice_directly/i18n/fi.po | 10 +-- addons/users_ldap/i18n/it.po | 14 ++-- addons/warning/i18n/it.po | 8 +-- 16 files changed, 238 insertions(+), 139 deletions(-) create mode 100644 addons/base_crypt/i18n/pl.po create mode 100644 addons/crm_caldav/i18n/pl.po diff --git a/addons/account/i18n/es.po b/addons/account/i18n/es.po index a62459da1d6..e0ad7817b8a 100644 --- a/addons/account/i18n/es.po +++ b/addons/account/i18n/es.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-03-12 08:16+0000\n" -"Last-Translator: mikel \n" +"PO-Revision-Date: 2012-03-28 20:27+0000\n" +"Last-Translator: Carlos @ smile-iberia \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-13 05:34+0000\n" -"X-Generator: Launchpad (build 14933)\n" +"X-Launchpad-Export-Date: 2012-03-29 05:22+0000\n" +"X-Generator: Launchpad (build 15032)\n" #. module: account #: view:account.invoice.report:0 @@ -4982,6 +4982,9 @@ msgid "" "From this view, have an analysis of your treasury. It sums the balance of " "every accounting entries made on liquidity accounts per period." msgstr "" +"En esta vista, visualice un análisis de su tesorería. El total es el balance " +"de todos los apuntes contables realizados en cuentas de liquidez, por " +"periodo." #. module: account #: field:account.journal,group_invoice_lines:0 diff --git a/addons/account/i18n/et.po b/addons/account/i18n/et.po index 09f5b659d8c..9d8eb2b528f 100644 --- a/addons/account/i18n/et.po +++ b/addons/account/i18n/et.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: Raiko Pajur \n" +"PO-Revision-Date: 2012-03-28 13:12+0000\n" +"Last-Translator: Ott Lepik \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:03+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-29 05:22+0000\n" +"X-Generator: Launchpad (build 15032)\n" #. module: account #: view:account.invoice.report:0 @@ -2740,7 +2740,7 @@ msgstr "" #: model:ir.ui.menu,name:account.menu_account_customer #: model:ir.ui.menu,name:account.menu_finance_receivables msgid "Customers" -msgstr "" +msgstr "Kliendid" #. module: account #: report:account.analytic.account.cost_ledger:0 @@ -2888,7 +2888,7 @@ msgstr "Alam" #: model:process.process,name:account.process_process_invoiceprocess0 #: selection:report.invoice.created,type:0 msgid "Customer Invoice" -msgstr "Kliendi arve" +msgstr "Müügiarve" #. module: account #: help:account.tax.template,include_base_amount:0 diff --git a/addons/account/i18n/fr.po b/addons/account/i18n/fr.po index b0232e457ac..236568cc08b 100644 --- a/addons/account/i18n/fr.po +++ b/addons/account/i18n/fr.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-03-21 17:57+0000\n" -"Last-Translator: GaCriv \n" +"PO-Revision-Date: 2012-03-28 14:42+0000\n" +"Last-Translator: Numérigraphe \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-22 06:22+0000\n" -"X-Generator: Launchpad (build 14981)\n" +"X-Launchpad-Export-Date: 2012-03-29 05:22+0000\n" +"X-Generator: Launchpad (build 15032)\n" #. module: account #: view:account.invoice.report:0 @@ -352,7 +352,7 @@ msgstr "Annuler le lettrage" #: view:product.product:0 #: view:product.template:0 msgid "Purchase Properties" -msgstr "Propriétés de l'Achat" +msgstr "Propriétés d'achat" #. module: account #: help:account.financial.report,style_overwrite:0 diff --git a/addons/account_analytic_plans/i18n/pl.po b/addons/account_analytic_plans/i18n/pl.po index d69a3acf37e..f85b2eefb78 100644 --- a/addons/account_analytic_plans/i18n/pl.po +++ b/addons/account_analytic_plans/i18n/pl.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-02-25 12:52+0000\n" -"Last-Translator: Grzegorz Grzelak (OpenGLOBE.pl) \n" +"PO-Revision-Date: 2012-03-28 14:39+0000\n" +"Last-Translator: Antoni Kudelski \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-26 05:21+0000\n" -"X-Generator: Launchpad (build 14860)\n" +"X-Launchpad-Export-Date: 2012-03-29 05:22+0000\n" +"X-Generator: Launchpad (build 15032)\n" #. module: account_analytic_plans #: view:analytic.plan.create.model:0 @@ -77,7 +77,7 @@ msgstr "Instancja planu analitycznego" #. module: account_analytic_plans #: view:analytic.plan.create.model:0 msgid "Ok" -msgstr "" +msgstr "Ok" #. module: account_analytic_plans #: field:account.analytic.plan.instance,plan_id:0 @@ -469,7 +469,7 @@ msgstr "Kod podziału" #. module: account_analytic_plans #: report:account.analytic.account.crossovered.analytic:0 msgid "%" -msgstr "" +msgstr "%" #. module: account_analytic_plans #: report:account.analytic.account.crossovered.analytic:0 diff --git a/addons/account_cancel/i18n/pl.po b/addons/account_cancel/i18n/pl.po index b2805029d4b..f21651e00a8 100644 --- a/addons/account_cancel/i18n/pl.po +++ b/addons/account_cancel/i18n/pl.po @@ -8,16 +8,16 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2012-03-28 14:12+0000\n" +"Last-Translator: Antoni Kudelski \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:14+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-29 05:22+0000\n" +"X-Generator: Launchpad (build 15032)\n" #. module: account_cancel #: view:account.invoice:0 msgid "Cancel" -msgstr "" +msgstr "Anuluj" diff --git a/addons/base_contact/i18n/es.po b/addons/base_contact/i18n/es.po index db00a7f2b44..965ea996889 100644 --- a/addons/base_contact/i18n/es.po +++ b/addons/base_contact/i18n/es.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: Carlos @ smile-iberia \n" +"PO-Revision-Date: 2012-03-28 20:30+0000\n" +"Last-Translator: RpJ \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:23+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-29 05:22+0000\n" +"X-Generator: Launchpad (build 15032)\n" #. module: base_contact #: field:res.partner.location,city:0 @@ -48,7 +48,7 @@ msgstr "Nombre" #. module: base_contact #: field:res.partner.address,location_id:0 msgid "Location" -msgstr "" +msgstr "Ubicación" #. module: base_contact #: model:process.transition,name:base_contact.process_transition_partnertoaddress0 @@ -92,7 +92,7 @@ msgstr "Título" #. module: base_contact #: field:res.partner.location,partner_id:0 msgid "Main Partner" -msgstr "" +msgstr "Empresa principal" #. module: base_contact #: model:process.process,name:base_contact.process_process_basecontactprocess0 @@ -181,7 +181,7 @@ msgstr "Contacto" #. module: base_contact #: model:ir.model,name:base_contact.model_res_partner_location msgid "res.partner.location" -msgstr "" +msgstr "res.partner.location" #. module: base_contact #: model:process.node,note:base_contact.process_node_partners0 @@ -222,7 +222,7 @@ msgstr "Foto" #. module: base_contact #: view:res.partner.location:0 msgid "Locations" -msgstr "" +msgstr "Ubicaciones" #. module: base_contact #: view:res.partner.contact:0 diff --git a/addons/base_crypt/i18n/pl.po b/addons/base_crypt/i18n/pl.po new file mode 100644 index 00000000000..ee28b743e2b --- /dev/null +++ b/addons/base_crypt/i18n/pl.po @@ -0,0 +1,45 @@ +# Polish translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-03-28 14:21+0000\n" +"Last-Translator: Antoni Kudelski \n" +"Language-Team: Polish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-29 05:22+0000\n" +"X-Generator: Launchpad (build 15032)\n" + +#. module: base_crypt +#: model:ir.model,name:base_crypt.model_res_users +msgid "res.users" +msgstr "" + +#. module: base_crypt +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "Nie może być dwóch użytkowników o tym samym loginie !" + +#. module: base_crypt +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "Wybrana firma jest niedozwolona dla tego użytkownika" + +#. module: base_crypt +#: code:addons/base_crypt/crypt.py:140 +#, python-format +msgid "Please specify the password !" +msgstr "Proszę podać hasło!" + +#. module: base_crypt +#: code:addons/base_crypt/crypt.py:140 +#, python-format +msgid "Error" +msgstr "Błąd" diff --git a/addons/crm_caldav/i18n/pl.po b/addons/crm_caldav/i18n/pl.po new file mode 100644 index 00000000000..d3aab01becf --- /dev/null +++ b/addons/crm_caldav/i18n/pl.po @@ -0,0 +1,33 @@ +# Polish translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:36+0000\n" +"PO-Revision-Date: 2012-03-28 14:18+0000\n" +"Last-Translator: Antoni Kudelski \n" +"Language-Team: Polish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-29 05:22+0000\n" +"X-Generator: Launchpad (build 15032)\n" + +#. module: crm_caldav +#: model:ir.actions.act_window,name:crm_caldav.action_caldav_browse +msgid "Caldav Browse" +msgstr "" + +#. module: crm_caldav +#: model:ir.ui.menu,name:crm_caldav.menu_caldav_browse +msgid "Synchronize This Calendar" +msgstr "Synchronizuj ten kalendarz" + +#. module: crm_caldav +#: model:ir.model,name:crm_caldav.model_crm_meeting +msgid "Meeting" +msgstr "Zebranie" diff --git a/addons/fetchmail/i18n/es.po b/addons/fetchmail/i18n/es.po index 96b1b9267ff..721ec76f40f 100644 --- a/addons/fetchmail/i18n/es.po +++ b/addons/fetchmail/i18n/es.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-02-28 20:40+0000\n" +"PO-Revision-Date: 2012-03-28 20:34+0000\n" "Last-Translator: Carlos @ smile-iberia \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-29 05:27+0000\n" -"X-Generator: Launchpad (build 14874)\n" +"X-Launchpad-Export-Date: 2012-03-29 05:22+0000\n" +"X-Generator: Launchpad (build 15032)\n" #. module: fetchmail #: selection:fetchmail.server,state:0 @@ -121,7 +121,7 @@ msgstr "SSL" #. module: fetchmail #: model:ir.model,name:fetchmail.model_mail_message msgid "Email Message" -msgstr "" +msgstr "Mensaje de correo" #. module: fetchmail #: field:fetchmail.server,date:0 @@ -173,7 +173,7 @@ msgstr "¡Ha fallado el test de conexión!" #. module: fetchmail #: help:fetchmail.server,server:0 msgid "Hostname or IP of the mail server" -msgstr "" +msgstr "Nombre del host o IP del servidor de correo" #. module: fetchmail #: view:fetchmail.server:0 diff --git a/addons/mrp_operations/i18n/fi.po b/addons/mrp_operations/i18n/fi.po index bcd98d138ec..cd9b35d50ca 100644 --- a/addons/mrp_operations/i18n/fi.po +++ b/addons/mrp_operations/i18n/fi.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: Pekka Pylvänäinen \n" +"PO-Revision-Date: 2012-03-28 07:41+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:50+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-29 05:23+0000\n" +"X-Generator: Launchpad (build 15032)\n" #. module: mrp_operations #: model:ir.actions.act_window,name:mrp_operations.mrp_production_wc_action_form @@ -30,7 +30,7 @@ msgstr "Työtilaukset" #: code:addons/mrp_operations/mrp_operations.py:489 #, python-format msgid "Operation is already finished!" -msgstr "" +msgstr "Operaatio on jo valmis!" #. module: mrp_operations #: model:process.node,note:mrp_operations.process_node_canceloperation0 @@ -89,7 +89,7 @@ msgstr "Tuotantotoiminto" #. module: mrp_operations #: view:mrp.production:0 msgid "Set to Draft" -msgstr "" +msgstr "Aseta luonnokseksi" #. module: mrp_operations #: field:mrp.production,allow_reorder:0 @@ -115,7 +115,7 @@ msgstr "Päivä" #. module: mrp_operations #: view:mrp.production:0 msgid "Cancel Order" -msgstr "" +msgstr "Peruuta tilaus" #. module: mrp_operations #: model:process.node,name:mrp_operations.process_node_productionorder0 @@ -170,13 +170,13 @@ msgstr "Peruttu" #: code:addons/mrp_operations/mrp_operations.py:486 #, python-format msgid "There is no Operation to be cancelled!" -msgstr "" +msgstr "Peruutettavaa operaatiota ei löydy!" #. module: mrp_operations #: code:addons/mrp_operations/mrp_operations.py:482 #, python-format msgid "Operation is Already Cancelled!" -msgstr "" +msgstr "Operaatio on jo peruutettu!" #. module: mrp_operations #: model:ir.actions.act_window,name:mrp_operations.mrp_production_operation_action @@ -195,6 +195,7 @@ msgstr "Varastosiirto" msgid "" "In order to Finish the operation, it must be in the Start or Resume state!" msgstr "" +"Jotta operaatio voisi valmistua, sen täytyy olla käynnistä tai jatka tilassa!" #. module: mrp_operations #: field:mrp.workorder,nbr:0 @@ -205,7 +206,7 @@ msgstr "Rivien lukumäärä" #: view:mrp.production:0 #: view:mrp.production.workcenter.line:0 msgid "Finish Order" -msgstr "" +msgstr "Merkitse tilaus valmiiksi" #. module: mrp_operations #: field:mrp.production.workcenter.line,date_finished:0 @@ -263,7 +264,7 @@ msgstr "Mittayksikkö" #. module: mrp_operations #: constraint:stock.move:0 msgid "You can not move products from or to a location of the type view." -msgstr "" +msgstr "Et voi siirtää tuotteita paikkaan tai paikasta tässä näkymässä." #. module: mrp_operations #: view:mrp.production.workcenter.line:0 @@ -280,7 +281,7 @@ msgstr "Tuotteen määrä" #: code:addons/mrp_operations/mrp_operations.py:134 #, python-format msgid "Manufacturing order cannot start in state \"%s\"!" -msgstr "" +msgstr "Valmistustilausta ei voida käynnistää tilassa \"%s\"!" #. module: mrp_operations #: selection:mrp.workorder,month:0 @@ -315,7 +316,7 @@ msgstr "" #. module: mrp_operations #: view:mrp.workorder:0 msgid "Planned Year" -msgstr "" +msgstr "Suunniteltu vuosi" #. module: mrp_operations #: field:mrp_operations.operation,order_date:0 @@ -330,12 +331,14 @@ msgstr "Tulevat työmääräykset" #. module: mrp_operations #: view:mrp.workorder:0 msgid "Work orders during last month" -msgstr "" +msgstr "Edellisen kuukauden työtilaukset" #. module: mrp_operations #: help:mrp.production.workcenter.line,delay:0 msgid "The elapsed time between operation start and stop in this Work Center" msgstr "" +"Kulunut aika operaation käynnistyksen ja lopetuksen välissä tällä " +"työpisteellä" #. module: mrp_operations #: model:process.node,name:mrp_operations.process_node_canceloperation0 @@ -346,7 +349,7 @@ msgstr "Vaihe on peruttu" #: view:mrp.production:0 #: view:mrp.production.workcenter.line:0 msgid "Pause Work Order" -msgstr "" +msgstr "Pysäytä työtilaus" #. module: mrp_operations #: selection:mrp.workorder,month:0 @@ -382,7 +385,7 @@ msgstr "Työtilaus raportti" #. module: mrp_operations #: constraint:mrp.production:0 msgid "Order quantity cannot be negative or zero!" -msgstr "" +msgstr "Tilauksen määrä ei voi olla negatiivinen tai nolla!" #. module: mrp_operations #: field:mrp.production.workcenter.line,date_start:0 @@ -399,7 +402,7 @@ msgstr "Odottaa tuotteita" #. module: mrp_operations #: view:mrp.workorder:0 msgid "Work orders made during current year" -msgstr "" +msgstr "Työtilaukset tehty kuluvana vuonna" #. module: mrp_operations #: selection:mrp.workorder,state:0 @@ -420,12 +423,13 @@ msgstr "Käynnissä" msgid "" "In order to Pause the operation, it must be in the Start or Resume state!" msgstr "" +"Pysäyttääksesi operaation, sen täytyy olla käynnissä tai jatka tilassa!" #. module: mrp_operations #: code:addons/mrp_operations/mrp_operations.py:474 #, python-format msgid "In order to Resume the operation, it must be in the Pause state!" -msgstr "" +msgstr "Jatkaaksei operaatiota, sen täytyy olla pysäytä tilassa!" #. module: mrp_operations #: view:mrp.production:0 @@ -485,12 +489,12 @@ msgstr "Aloitettu" #. module: mrp_operations #: view:mrp.production.workcenter.line:0 msgid "Production started late" -msgstr "" +msgstr "Tuotanto aloitettu myöhässä" #. module: mrp_operations #: view:mrp.workorder:0 msgid "Planned Day" -msgstr "" +msgstr "Suunniteltu päivä" #. module: mrp_operations #: selection:mrp.workorder,month:0 @@ -548,7 +552,7 @@ msgstr "Tammikuu" #: view:mrp.production:0 #: view:mrp.production.workcenter.line:0 msgid "Resume Work Order" -msgstr "" +msgstr "Jatka työtilausta" #. module: mrp_operations #: model:process.node,note:mrp_operations.process_node_doneoperation0 @@ -569,7 +573,7 @@ msgstr "Tiedot tuotantotilaukselta" #. module: mrp_operations #: sql_constraint:mrp.production:0 msgid "Reference must be unique per Company!" -msgstr "" +msgstr "Viitteen tulee olla uniikki yrityskohtaisesti!" #. module: mrp_operations #: code:addons/mrp_operations/mrp_operations.py:459 @@ -759,7 +763,7 @@ msgstr "Työtunnit" #. module: mrp_operations #: view:mrp.workorder:0 msgid "Planned Month" -msgstr "" +msgstr "Suunniteltu kuukausi" #. module: mrp_operations #: selection:mrp.workorder,month:0 @@ -769,7 +773,7 @@ msgstr "Helmikuu" #. module: mrp_operations #: view:mrp.workorder:0 msgid "Work orders made during current month" -msgstr "" +msgstr "Työtilaukset jotka on tehty kuluvan kuukauden aikana" #. module: mrp_operations #: model:process.transition,name:mrp_operations.process_transition_startcanceloperation0 @@ -800,7 +804,7 @@ msgstr "Tilausrivien määrä" #: view:mrp.production:0 #: view:mrp.production.workcenter.line:0 msgid "Start Working" -msgstr "" +msgstr "Aloita työnteko" #. module: mrp_operations #: model:process.transition,note:mrp_operations.process_transition_startdoneoperation0 diff --git a/addons/plugin_outlook/i18n/et.po b/addons/plugin_outlook/i18n/et.po index 39812167915..682fd485dff 100644 --- a/addons/plugin_outlook/i18n/et.po +++ b/addons/plugin_outlook/i18n/et.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-09 00:36+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2012-03-28 18:38+0000\n" +"Last-Translator: Tiina \n" "Language-Team: Estonian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:51+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-29 05:23+0000\n" +"X-Generator: Launchpad (build 15032)\n" #. module: plugin_outlook #: view:outlook.installer:0 @@ -27,7 +27,7 @@ msgstr "" #. module: plugin_outlook #: field:outlook.installer,name:0 msgid "Outlook Plug-in" -msgstr "" +msgstr "Outlook Plug-in" #. module: plugin_outlook #: model:ir.actions.act_window,name:plugin_outlook.action_outlook_installer @@ -35,7 +35,7 @@ msgstr "" #: model:ir.ui.menu,name:plugin_outlook.menu_base_config_plugins_outlook #: view:outlook.installer:0 msgid "Install Outlook Plug-In" -msgstr "" +msgstr "Paigalda Outlook Plug-In" #. module: plugin_outlook #: field:outlook.installer,config_logo:0 @@ -50,7 +50,7 @@ msgstr "pealkiri" #. module: plugin_outlook #: model:ir.model,name:plugin_outlook.model_outlook_installer msgid "outlook.installer" -msgstr "" +msgstr "outlook.installer" #. module: plugin_outlook #: view:outlook.installer:0 diff --git a/addons/project_gtd/i18n/fi.po b/addons/project_gtd/i18n/fi.po index 4758bbfc857..e1f4f99902a 100644 --- a/addons/project_gtd/i18n/fi.po +++ b/addons/project_gtd/i18n/fi.po @@ -8,24 +8,24 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: Fabien (Open ERP) \n" +"PO-Revision-Date: 2012-03-28 08:01+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 06:58+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-29 05:23+0000\n" +"X-Generator: Launchpad (build 15032)\n" #. module: project_gtd #: view:project.task:0 msgid "In Progress" -msgstr "" +msgstr "Käynnissä" #. module: project_gtd #: view:project.task:0 msgid "Show only tasks having a deadline" -msgstr "" +msgstr "Näytä vain tehtävät joilla on takaraja" #. module: project_gtd #: view:project.task:0 @@ -55,7 +55,7 @@ msgstr "" #. module: project_gtd #: view:project.task:0 msgid "Pending Tasks" -msgstr "" +msgstr "Odottavat tehtävät" #. module: project_gtd #: view:project.task:0 @@ -88,7 +88,7 @@ msgstr "Projektin aikaikkuna tyhjä" #. module: project_gtd #: view:project.task:0 msgid "Pending" -msgstr "" +msgstr "Odottava" #. module: project_gtd #: view:project.gtd.timebox:0 field:project.gtd.timebox,name:0 @@ -112,7 +112,7 @@ msgstr "Virhe !" #: model:ir.ui.menu,name:project_gtd.menu_open_gtd_timebox_tree #: view:project.task:0 msgid "My Tasks" -msgstr "" +msgstr "Omat tehtäväni" #. module: project_gtd #: constraint:project.task:0 @@ -208,7 +208,7 @@ msgstr "Aikaikkunat" #. module: project_gtd #: view:project.task:0 msgid "In Progress and draft tasks" -msgstr "" +msgstr "Käynnissä olevat ja luonnostehtävät" #. module: project_gtd #: model:ir.model,name:project_gtd.model_project_gtd_context @@ -231,7 +231,7 @@ msgstr "" #. module: project_gtd #: model:project.gtd.context,name:project_gtd.context_office msgid "Office" -msgstr "" +msgstr "Toimisto" #. module: project_gtd #: field:project.gtd.context,sequence:0 field:project.gtd.timebox,sequence:0 @@ -251,7 +251,7 @@ msgstr "Antaa järjestyksen listattaessa kontekstejä." #. module: project_gtd #: view:project.task:0 msgid "Show Deadlines" -msgstr "" +msgstr "Näytä määräpäivät" #. module: project_gtd #: view:project.gtd.timebox:0 @@ -294,7 +294,7 @@ msgstr "" #. module: project_gtd #: view:project.task:0 msgid "For reopening the tasks" -msgstr "" +msgstr "Tehtävien uudelleenavaamista varten" #. module: project_gtd #: view:project.task:0 diff --git a/addons/share/i18n/fi.po b/addons/share/i18n/fi.po index 0e78b76dfa4..f6ac3262bc4 100644 --- a/addons/share/i18n/fi.po +++ b/addons/share/i18n/fi.po @@ -8,39 +8,39 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: Jussi Mikkola \n" +"PO-Revision-Date: 2012-03-28 07:57+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 07:07+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-29 05:23+0000\n" +"X-Generator: Launchpad (build 15032)\n" #. module: share #: field:share.wizard,embed_option_title:0 msgid "Display title" -msgstr "" +msgstr "Näytä otsikko" #. module: share #: view:share.wizard:0 msgid "Access granted!" -msgstr "" +msgstr "Pääsy sallittu!" #. module: share #: field:share.wizard,user_type:0 msgid "Sharing method" -msgstr "" +msgstr "Jakometodi" #. module: share #: view:share.wizard:0 msgid "Share with these people (one e-mail per line)" -msgstr "" +msgstr "Jaa näiden henkilöiden kanssa (yksi sähköposti riviä kohti)" #. module: share #: field:share.wizard,name:0 msgid "Share Title" -msgstr "" +msgstr "Jaon otsikko" #. module: share #: model:ir.module.category,name:share.module_category_share @@ -50,19 +50,20 @@ msgstr "Jakaminen" #. module: share #: field:share.wizard,share_root_url:0 msgid "Share Access URL" -msgstr "" +msgstr "Jaon URL" #. module: share #: code:addons/share/wizard/share_wizard.py:782 #, python-format msgid "You may use your current login (%s) and password to view them.\n" msgstr "" +"Voit käyttää nykyistä kirjautumista (%s) ja salasanaa nähdäksesi ne.\n" #. module: share #: code:addons/share/wizard/share_wizard.py:601 #, python-format msgid "(Modified)" -msgstr "" +msgstr "(muokattu)" #. module: share #: code:addons/share/wizard/share_wizard.py:769 @@ -71,6 +72,8 @@ msgid "" "The documents are not attached, you can view them online directly on my " "OpenERP server at:" msgstr "" +"Dokumentteja ei ole liitetty, voit katsoa ne suoraan verkossa OpenERP " +"palvelimelta:" #. module: share #: code:addons/share/wizard/share_wizard.py:579 @@ -87,13 +90,14 @@ msgstr "Jaon URL" #: code:addons/share/wizard/share_wizard.py:776 #, python-format msgid "These are your credentials to access this protected area:\n" -msgstr "" +msgstr "Tässä ovat tunnuksesi suojatulle alueelle:\n" #. module: share #: code:addons/share/wizard/share_wizard.py:643 #, python-format msgid "You must be a member of the Share/User group to use the share wizard" msgstr "" +"Sinun täytyy olla jäsen Jako/käyttäjät ryhmässä käyttääksesi jako avustajaa" #. module: share #: view:share.wizard:0 @@ -109,7 +113,7 @@ msgstr "Jaa" #: code:addons/share/wizard/share_wizard.py:551 #, python-format msgid "(Duplicated for modified sharing permissions)" -msgstr "" +msgstr "(kopioitu muutettuja jako-oikeuksia varten)" #. module: share #: help:share.wizard,domain:0 @@ -140,13 +144,13 @@ msgstr "Käyttäjätunnus" #. module: share #: view:share.wizard:0 msgid "Sharing Options" -msgstr "" +msgstr "Jakamisen vaihtoehdot" #. module: share #: code:addons/share/wizard/share_wizard.py:765 #, python-format msgid "Hello," -msgstr "" +msgstr "Hei," #. module: share #: view:share.wizard:0 @@ -157,7 +161,7 @@ msgstr "Sulje" #: code:addons/share/wizard/share_wizard.py:640 #, python-format msgid "Action and Access Mode are required to create a shared access" -msgstr "" +msgstr "Toiminto ja pääsytapa vaaditaan luodaksesi jaetun pääsyn" #. module: share #: view:share.wizard:0 @@ -175,6 +179,7 @@ msgid "" "The documents have been automatically added to your current OpenERP " "documents.\n" msgstr "" +"Dokumentit on automaattisesti lisätty nykyisiin OpenERP dokumentteihin.\n" #. module: share #: view:share.wizard:0 @@ -205,11 +210,12 @@ msgstr "" #: help:share.wizard,name:0 msgid "Title for the share (displayed to users as menu and shortcut name)" msgstr "" +"Otsikko jaolle (näytetään käyttäjille valikkona ja pikakuvakkeen nimenä)" #. module: share #: view:share.wizard:0 msgid "Options" -msgstr "" +msgstr "Valinnat" #. module: share #: view:res.groups:0 @@ -233,7 +239,7 @@ msgstr "Jaettava toiminto" #. module: share #: view:share.wizard:0 msgid "Optional: include a personal message" -msgstr "" +msgstr "Lisävaihtoehto: liitä mukaan henkilökohtainen viesti" #. module: share #: field:res.users,share:0 @@ -245,11 +251,13 @@ msgstr "Jaettu käyttäjä" #, python-format msgid "Please indicate the emails of the persons to share with, one per line" msgstr "" +"Ole hyvä ja syötä henkilöiden sähköpostiosoitteet joiden kanssa haluat jakaa " +"tietoa, yksi osoite riville" #. module: share #: field:share.wizard,embed_code:0 field:share.wizard.result.line,user_id:0 msgid "unknown" -msgstr "" +msgstr "tuntematon" #. module: share #: help:res.groups,share:0 @@ -290,12 +298,12 @@ msgstr "Epäsuora jakosuodin luotu käyttäjän %s (%s) toimesta ryhmälle %s" #: code:addons/share/wizard/share_wizard.py:767 #, python-format msgid "I've shared %s with you!" -msgstr "" +msgstr "Olen jakanut kanssasi %s!" #. module: share #: help:share.wizard,share_root_url:0 msgid "Main access page for users that are granted shared access" -msgstr "" +msgstr "Pääsivu käyttäjille joille on myönnetty jaettu pääsy" #. module: share #: sql_constraint:res.groups:0 @@ -305,7 +313,7 @@ msgstr "Ryhmän nimen tulee olla uniikki!" #. module: share #: model:res.groups,name:share.group_share_user msgid "User" -msgstr "" +msgstr "Käyttäjä" #. module: share #: view:res.groups:0 @@ -327,7 +335,7 @@ msgstr "" #. module: share #: view:share.wizard:0 msgid "Use this link" -msgstr "" +msgstr "Käytä tätä linkkiä" #. module: share #: code:addons/share/wizard/share_wizard.py:779 @@ -354,19 +362,19 @@ msgstr "Kopioitu pääsy jakamista varten" #. module: share #: model:ir.actions.act_window,name:share.action_share_wizard_step1 msgid "Share your documents" -msgstr "" +msgstr "Jaa dokumenttisi" #. module: share #: view:share.wizard:0 msgid "Or insert the following code where you want to embed your documents" -msgstr "" +msgstr "Tai liitä seuraaava koodi kun haluat upottaa dokumenttisi" #. module: share #: view:share.wizard:0 msgid "" "An e-mail notification with instructions has been sent to the following " "people:" -msgstr "" +msgstr "Sähköpostitiedote ohjeineen on lähetetty seuraaville henkilöille:" #. module: share #: model:ir.model,name:share.model_share_wizard_result_line @@ -381,23 +389,25 @@ msgstr "Valitse käyttäjien tyyppi joiden kanssa haluat jakaa tietoja." #. module: share #: field:share.wizard,view_type:0 msgid "Current View Type" -msgstr "" +msgstr "Nykyinen näkymätyyppi" #. module: share #: selection:share.wizard,access_mode:0 msgid "Can view" -msgstr "" +msgstr "Voi katsoa" #. module: share #: selection:share.wizard,access_mode:0 msgid "Can edit" -msgstr "" +msgstr "Voi muokata" #. module: share #: help:share.wizard,message:0 msgid "" "An optional personal message, to be included in the e-mail notification." msgstr "" +"Vaihtoehtoinen henkilökohtainen viesti, joka liitetään sähköposti-" +"ilmoitukseen." #. module: share #: model:ir.model,name:share.model_res_users @@ -409,7 +419,7 @@ msgstr "" #: code:addons/share/wizard/share_wizard.py:635 #, python-format msgid "Sharing access could not be created" -msgstr "" +msgstr "Jaettua pääsyä ei voida luoda" #. module: share #: help:res.users,share:0 @@ -431,7 +441,7 @@ msgstr "Jakovelho" #: code:addons/share/wizard/share_wizard.py:740 #, python-format msgid "Shared access created!" -msgstr "" +msgstr "Jaettu pääsy on luotu!" #. module: share #: model:res.groups,comment:share.group_share_user @@ -456,23 +466,23 @@ msgstr "Salasana" #. module: share #: field:share.wizard,new_users:0 msgid "Emails" -msgstr "" +msgstr "Sähköpostit" #. module: share #: field:share.wizard,embed_option_search:0 msgid "Display search view" -msgstr "" +msgstr "Näytä hakunäkymä" #. module: share #: code:addons/share/wizard/share_wizard.py:197 #, python-format msgid "No e-mail address configured" -msgstr "" +msgstr "Sähköpostiosoitetta ei ole konfiguroitu" #. module: share #: field:share.wizard,message:0 msgid "Personal Message" -msgstr "" +msgstr "Henkilökohtainen viesti" #. module: share #: code:addons/share/wizard/share_wizard.py:763 @@ -487,7 +497,7 @@ msgstr "" #. module: share #: field:share.wizard.result.line,login:0 msgid "Login" -msgstr "" +msgstr "Kirjaudu" #. module: share #: view:res.users:0 @@ -502,7 +512,7 @@ msgstr "Pääsyn tyyppi" #. module: share #: view:share.wizard:0 msgid "Sharing: preparation" -msgstr "" +msgstr "Jakaminen: valmistelu" #. module: share #: code:addons/share/wizard/share_wizard.py:198 @@ -511,18 +521,20 @@ msgid "" "You must configure your e-mail address in the user preferences before using " "the Share button." msgstr "" +"Sinun pitää määritellä sähköpostiosoitteesi käyttäjän asetuksiin ennenkuin " +"voit käyttää Jaa nappia." #. module: share #: help:share.wizard,access_mode:0 msgid "Access rights to be granted on the shared documents." -msgstr "" +msgstr "Pääsyoikeudet jotka annetaan jaetuille dokumenteille" #. openerp-web #: /home/odo/repositories/addons/trunk/share/static/src/xml/share.xml:8 msgid "Link or embed..." -msgstr "" +msgstr "Linkitä tai sisällytä..." #. openerp-web #: /home/odo/repositories/addons/trunk/share/static/src/xml/share.xml:9 msgid "Share with..." -msgstr "" +msgstr "Jaa henkilöiden kanssa..." diff --git a/addons/stock_invoice_directly/i18n/fi.po b/addons/stock_invoice_directly/i18n/fi.po index 16e283b17f8..0c699b998de 100644 --- a/addons/stock_invoice_directly/i18n/fi.po +++ b/addons/stock_invoice_directly/i18n/fi.po @@ -8,16 +8,16 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:37+0000\n" -"PO-Revision-Date: 2012-02-17 09:10+0000\n" -"Last-Translator: Pekka Pylvänäinen \n" +"PO-Revision-Date: 2012-03-28 07:45+0000\n" +"Last-Translator: Juha Kotamäki \n" "Language-Team: Finnish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-02-18 07:09+0000\n" -"X-Generator: Launchpad (build 14814)\n" +"X-Launchpad-Export-Date: 2012-03-29 05:23+0000\n" +"X-Generator: Launchpad (build 15032)\n" #. module: stock_invoice_directly #: model:ir.model,name:stock_invoice_directly.model_stock_partial_picking msgid "Partial Picking Processing Wizard" -msgstr "" +msgstr "Osittaiskeräilyn hallinan avustaja" diff --git a/addons/users_ldap/i18n/it.po b/addons/users_ldap/i18n/it.po index 828d07ce582..4b6b6842d23 100644 --- a/addons/users_ldap/i18n/it.po +++ b/addons/users_ldap/i18n/it.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:37+0000\n" -"PO-Revision-Date: 2012-03-22 21:57+0000\n" +"PO-Revision-Date: 2012-03-28 14:31+0000\n" "Last-Translator: simone.sandri \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-23 05:13+0000\n" -"X-Generator: Launchpad (build 14996)\n" +"X-Launchpad-Export-Date: 2012-03-29 05:23+0000\n" +"X-Generator: Launchpad (build 15032)\n" #. module: users_ldap #: constraint:res.company:0 @@ -101,7 +101,7 @@ msgstr "Aziende" #. module: users_ldap #: view:res.company.ldap:0 msgid "Process Parameter" -msgstr "" +msgstr "Parametro Processo" #. module: users_ldap #: model:ir.model,name:users_ldap.model_res_company_ldap @@ -111,7 +111,7 @@ msgstr "res.company.ldap" #. module: users_ldap #: field:res.company.ldap,ldap_tls:0 msgid "Use TLS" -msgstr "" +msgstr "Usa TLS" #. module: users_ldap #: field:res.company.ldap,sequence:0 @@ -131,7 +131,7 @@ msgstr "Informazioni sul server" #. module: users_ldap #: model:ir.actions.act_window,name:users_ldap.action_ldap_installer msgid "Setup your LDAP Server" -msgstr "" +msgstr "Crea il tuo server LDAP" #. module: users_ldap #: sql_constraint:res.users:0 @@ -149,6 +149,8 @@ msgid "" "The password of the user account on the LDAP server that is used to query " "the directory." msgstr "" +"La password dell'account utente sul server LDAP che viene utilizzata per " +"interrogare la directory." #. module: users_ldap #: field:res.company.ldap,ldap_password:0 diff --git a/addons/warning/i18n/it.po b/addons/warning/i18n/it.po index ae639b5531d..a6ea549ed73 100644 --- a/addons/warning/i18n/it.po +++ b/addons/warning/i18n/it.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:37+0000\n" -"PO-Revision-Date: 2012-03-22 21:56+0000\n" +"PO-Revision-Date: 2012-03-28 14:29+0000\n" "Last-Translator: simone.sandri \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-23 05:13+0000\n" -"X-Generator: Launchpad (build 14996)\n" +"X-Launchpad-Export-Date: 2012-03-29 05:23+0000\n" +"X-Generator: Launchpad (build 15032)\n" #. module: warning #: sql_constraint:purchase.order:0 @@ -178,7 +178,7 @@ msgstr "Allarme per %s !" #. module: warning #: sql_constraint:account.invoice:0 msgid "Invoice Number must be unique per Company!" -msgstr "" +msgstr "Il numero fattura deve essere unico per ogni azienda!" #. module: warning #: constraint:res.partner:0 From dc1ad09ede424ac767f35a7586b13080fb15f08f Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Thu, 29 Mar 2012 05:23:12 +0000 Subject: [PATCH 094/102] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20120329052312-gr5eq6grnn1bi22l --- addons/web/i18n/nb.po | 52 +++++++-------- addons/web/i18n/ro.po | 72 ++++++++++----------- addons/web_calendar/i18n/nb.po | 41 ++++++++++++ addons/web_dashboard/i18n/nb.po | 111 ++++++++++++++++++++++++++++++++ addons/web_dashboard/i18n/ro.po | 36 ++++++----- addons/web_graph/i18n/ro.po | 23 +++++++ 6 files changed, 256 insertions(+), 79 deletions(-) create mode 100644 addons/web_calendar/i18n/nb.po create mode 100644 addons/web_dashboard/i18n/nb.po create mode 100644 addons/web_graph/i18n/ro.po diff --git a/addons/web/i18n/nb.po b/addons/web/i18n/nb.po index d2b757202b8..e59397d97ce 100644 --- a/addons/web/i18n/nb.po +++ b/addons/web/i18n/nb.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-05 19:34+0100\n" -"PO-Revision-Date: 2012-03-27 13:27+0000\n" +"PO-Revision-Date: 2012-03-28 14:08+0000\n" "Last-Translator: Rolv Råen (adEgo) \n" "Language-Team: Norwegian Bokmal \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-28 05:50+0000\n" -"X-Generator: Launchpad (build 15027)\n" +"X-Launchpad-Export-Date: 2012-03-29 05:23+0000\n" +"X-Generator: Launchpad (build 15032)\n" #. openerp-web #: addons/web/static/src/js/chrome.js:172 @@ -1003,12 +1003,12 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:491 msgid "ID:" -msgstr "" +msgstr "ID:" #. openerp-web #: addons/web/static/src/xml/base.xml:494 msgid "XML ID:" -msgstr "" +msgstr "XML ID:" #. openerp-web #: addons/web/static/src/xml/base.xml:497 @@ -1023,7 +1023,7 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:503 msgid "Latest Modification by:" -msgstr "" +msgstr "Sist endret av:" #. openerp-web #: addons/web/static/src/xml/base.xml:506 @@ -1045,7 +1045,7 @@ msgstr "Slett" #. openerp-web #: addons/web/static/src/xml/base.xml:757 msgid "Duplicate" -msgstr "Dupliker" +msgstr "Dupliser" #. openerp-web #: addons/web/static/src/xml/base.xml:775 @@ -1065,7 +1065,7 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:837 msgid "Only you" -msgstr "" +msgstr "Bare deg" #. openerp-web #: addons/web/static/src/xml/base.xml:844 @@ -1111,7 +1111,7 @@ msgstr "Type:" #. openerp-web #: addons/web/static/src/xml/base.xml:948 msgid "Widget:" -msgstr "" +msgstr "Widget:" #. openerp-web #: addons/web/static/src/xml/base.xml:952 @@ -1141,7 +1141,7 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:976 msgid "Relation:" -msgstr "" +msgstr "Relasjon:" #. openerp-web #: addons/web/static/src/xml/base.xml:980 @@ -1156,7 +1156,7 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:1034 msgid "Open this resource" -msgstr "" +msgstr "Åpne denne resurssen" #. openerp-web #: addons/web/static/src/xml/base.xml:1056 @@ -1357,7 +1357,7 @@ msgstr "Eksporttype:" #. openerp-web #: addons/web/static/src/xml/base.xml:1620 msgid "Import Compatible Export" -msgstr "" +msgstr "Importkompatibel eksport" #. openerp-web #: addons/web/static/src/xml/base.xml:1621 @@ -1382,12 +1382,12 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:1634 msgid "Save fields list" -msgstr "" +msgstr "Lagre feltliste" #. openerp-web #: addons/web/static/src/xml/base.xml:1648 msgid "Remove All" -msgstr "" +msgstr "Fjern alt" #. openerp-web #: addons/web/static/src/xml/base.xml:1660 @@ -1407,22 +1407,22 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:1714 msgid "Old Password:" -msgstr "" +msgstr "Gammelt passord:" #. openerp-web #: addons/web/static/src/xml/base.xml:1719 msgid "New Password:" -msgstr "" +msgstr "Nytt passord:" #. openerp-web #: addons/web/static/src/xml/base.xml:1724 msgid "Confirm Password:" -msgstr "" +msgstr "Bekreft passord:" #. openerp-web #: addons/web/static/src/xml/base.xml:1742 msgid "1. Import a .CSV file" -msgstr "" +msgstr "Importer en .CSV fil" #. openerp-web #: addons/web/static/src/xml/base.xml:1743 @@ -1434,17 +1434,17 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:1747 msgid "CSV File:" -msgstr "" +msgstr "CSV fil:" #. openerp-web #: addons/web/static/src/xml/base.xml:1750 msgid "2. Check your file format" -msgstr "" +msgstr "Sjekk filformatet ditt" #. openerp-web #: addons/web/static/src/xml/base.xml:1753 msgid "Import Options" -msgstr "" +msgstr "Alternativer for import" #. openerp-web #: addons/web/static/src/xml/base.xml:1757 @@ -1469,12 +1469,12 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:1772 msgid "UTF-8" -msgstr "" +msgstr "UTF-8" #. openerp-web #: addons/web/static/src/xml/base.xml:1773 msgid "Latin 1" -msgstr "" +msgstr "Latin 1" #. openerp-web #: addons/web/static/src/xml/base.xml:1776 @@ -1496,17 +1496,17 @@ msgstr "" #. openerp-web #: addons/web/static/src/xml/base.xml:1805 msgid "Here is a preview of the file we could not import:" -msgstr "" +msgstr "Her er en forhåndsvisning av filen vi ikke kunne importere:" #. openerp-web #: addons/web/static/src/xml/base.xml:1812 msgid "Activate the developper mode" -msgstr "" +msgstr "Aktiver utviklermodus" #. openerp-web #: addons/web/static/src/xml/base.xml:1814 msgid "Version" -msgstr "" +msgstr "Versjon" #. openerp-web #: addons/web/static/src/xml/base.xml:1815 diff --git a/addons/web/i18n/ro.po b/addons/web/i18n/ro.po index d600f58f752..c3e1cbd610e 100644 --- a/addons/web/i18n/ro.po +++ b/addons/web/i18n/ro.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-05 19:34+0100\n" -"PO-Revision-Date: 2012-03-22 07:27+0000\n" -"Last-Translator: Dorin \n" +"PO-Revision-Date: 2012-03-28 19:16+0000\n" +"Last-Translator: teodor alexandru \n" "Language-Team: Romanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-23 05:13+0000\n" -"X-Generator: Launchpad (build 14996)\n" +"X-Launchpad-Export-Date: 2012-03-29 05:23+0000\n" +"X-Generator: Launchpad (build 15032)\n" #. openerp-web #: addons/web/static/src/js/chrome.js:172 @@ -32,7 +32,7 @@ msgstr "Ok" #. openerp-web #: addons/web/static/src/js/chrome.js:180 msgid "Send OpenERP Enterprise Report" -msgstr "" +msgstr "Trimite raportul OpenERP Enterprise" #. openerp-web #: addons/web/static/src/js/chrome.js:194 @@ -53,7 +53,7 @@ msgstr "Nume bază de date invalid" #. openerp-web #: addons/web/static/src/js/chrome.js:483 msgid "Backed" -msgstr "" +msgstr "Susținut" #. openerp-web #: addons/web/static/src/js/chrome.js:484 @@ -159,17 +159,17 @@ msgstr "Exportă în fișier" #. openerp-web #: addons/web/static/src/js/data_export.js:125 msgid "Please enter save field list name" -msgstr "" +msgstr "Introduceti numele campului de salvat" #. openerp-web #: addons/web/static/src/js/data_export.js:360 msgid "Please select fields to save export list..." -msgstr "" +msgstr "Selectat campurile pentru salvarea listei exportate..." #. openerp-web #: addons/web/static/src/js/data_export.js:373 msgid "Please select fields to export..." -msgstr "" +msgstr "selectati campruile de exportat" #. openerp-web #: addons/web/static/src/js/data_import.js:34 @@ -209,7 +209,7 @@ msgstr "Filtrele sunt dezactivate datorită unei sintaxe nule" #. openerp-web #: addons/web/static/src/js/search.js:237 msgid "Filter Entry" -msgstr "" +msgstr "Filtru de intrare" #. openerp-web #: addons/web/static/src/js/search.js:242 @@ -223,7 +223,7 @@ msgstr "OK" #: addons/web/static/src/xml/base.xml:1292 #: addons/web/static/src/js/search.js:291 msgid "Add to Dashboard" -msgstr "" +msgstr "Adaugati la Dashboard" #. openerp-web #: addons/web/static/src/js/search.js:415 @@ -235,7 +235,7 @@ msgstr "Căutare nulă" #: addons/web/static/src/js/search.js:415 #: addons/web/static/src/js/search.js:420 msgid "triggered from search view" -msgstr "" +msgstr "Declansata din cautare" #. openerp-web #: addons/web/static/src/js/search.js:503 @@ -435,7 +435,7 @@ msgstr "Doriți să eliminați această vedere?" #: addons/web/static/src/js/view_editor.js:364 #, python-format msgid "View Editor %d - %s" -msgstr "" +msgstr "Editor %d - %s" #. openerp-web #: addons/web/static/src/js/view_editor.js:367 @@ -655,7 +655,7 @@ msgstr "Arbore" #: addons/web/static/src/js/views.js:565 #: addons/web/static/src/xml/base.xml:480 msgid "Fields View Get" -msgstr "" +msgstr "Campuri vizualizare" #. openerp-web #: addons/web/static/src/js/views.js:573 @@ -678,7 +678,7 @@ msgstr "Gestionare view-uri" #. openerp-web #: addons/web/static/src/js/views.js:611 msgid "Could not find current view declaration" -msgstr "" +msgstr "Nu s-a gasit definirea vizualizarii curente" #. openerp-web #: addons/web/static/src/js/views.js:805 @@ -942,12 +942,12 @@ msgstr "IEȘIRE" #. openerp-web #: addons/web/static/src/xml/base.xml:388 msgid "Fold menu" -msgstr "" +msgstr "Pliază meniul" #. openerp-web #: addons/web/static/src/xml/base.xml:389 msgid "Unfold menu" -msgstr "" +msgstr "Depliază meniul" #. openerp-web #: addons/web/static/src/xml/base.xml:454 @@ -972,7 +972,7 @@ msgstr "Mai mult..." #. openerp-web #: addons/web/static/src/xml/base.xml:477 msgid "Debug View#" -msgstr "" +msgstr "Vizualizare Debug#" #. openerp-web #: addons/web/static/src/xml/base.xml:478 @@ -992,7 +992,7 @@ msgstr "Vizualizare" #. openerp-web #: addons/web/static/src/xml/base.xml:484 msgid "Edit SearchView" -msgstr "" +msgstr "Editeaza vizualizare cautare" #. openerp-web #: addons/web/static/src/xml/base.xml:485 @@ -1017,12 +1017,12 @@ msgstr "XML ID:" #. openerp-web #: addons/web/static/src/xml/base.xml:497 msgid "Creation User:" -msgstr "" +msgstr "Creare utilizator:" #. openerp-web #: addons/web/static/src/xml/base.xml:500 msgid "Creation Date:" -msgstr "" +msgstr "Creare Data:" #. openerp-web #: addons/web/static/src/xml/base.xml:503 @@ -1079,18 +1079,18 @@ msgstr "Toți utilizatorii" #. openerp-web #: addons/web/static/src/xml/base.xml:851 msgid "Unhandled widget" -msgstr "" +msgstr "Widget nesuportat" #. openerp-web #: addons/web/static/src/xml/base.xml:900 msgid "Notebook Page \"" -msgstr "" +msgstr "Pagină notes \"" #. openerp-web #: addons/web/static/src/xml/base.xml:905 #: addons/web/static/src/xml/base.xml:964 msgid "Modifiers:" -msgstr "" +msgstr "Parametrii de modificare" #. openerp-web #: addons/web/static/src/xml/base.xml:931 @@ -1115,7 +1115,7 @@ msgstr "Tip:" #. openerp-web #: addons/web/static/src/xml/base.xml:948 msgid "Widget:" -msgstr "" +msgstr "Widget:" #. openerp-web #: addons/web/static/src/xml/base.xml:952 @@ -1227,7 +1227,7 @@ msgstr "Buton" #. openerp-web #: addons/web/static/src/xml/base.xml:1241 msgid "(no string)" -msgstr "" +msgstr "(no string)" #. openerp-web #: addons/web/static/src/xml/base.xml:1248 @@ -1237,7 +1237,7 @@ msgstr "Special:" #. openerp-web #: addons/web/static/src/xml/base.xml:1253 msgid "Button Type:" -msgstr "" +msgstr "Tip buton" #. openerp-web #: addons/web/static/src/xml/base.xml:1257 @@ -1297,12 +1297,12 @@ msgstr "(Toate filtrele existente cu același nume vor fi înlocuite)" #. openerp-web #: addons/web/static/src/xml/base.xml:1305 msgid "Select Dashboard to add this filter to:" -msgstr "" +msgstr "Selectati Dashboard-ul pentru aplicat filtrul:" #. openerp-web #: addons/web/static/src/xml/base.xml:1309 msgid "Title of new Dashboard item:" -msgstr "" +msgstr "Titlul noului camp Dashboard:" #. openerp-web #: addons/web/static/src/xml/base.xml:1416 @@ -1365,7 +1365,7 @@ msgstr "Tipul exportului :" #. openerp-web #: addons/web/static/src/xml/base.xml:1620 msgid "Import Compatible Export" -msgstr "" +msgstr "Importa exporturi compatibile" #. openerp-web #: addons/web/static/src/xml/base.xml:1621 @@ -1531,32 +1531,32 @@ msgstr "Copyright © 2004-TODAY OpenERP SA. Toate drepturile rezervate." #. openerp-web #: addons/web/static/src/xml/base.xml:1816 msgid "OpenERP is a trademark of the" -msgstr "" +msgstr "OpenERP este marcă înregistrată a" #. openerp-web #: addons/web/static/src/xml/base.xml:1817 msgid "OpenERP SA Company" -msgstr "" +msgstr "Firmei OpenERP SA" #. openerp-web #: addons/web/static/src/xml/base.xml:1819 msgid "Licenced under the terms of" -msgstr "" +msgstr "Licențiat in termenii din" #. openerp-web #: addons/web/static/src/xml/base.xml:1820 msgid "GNU Affero General Public License" -msgstr "" +msgstr "Licenta publica generala GNU Affero" #. openerp-web #: addons/web/static/src/xml/base.xml:1822 msgid "For more information visit" -msgstr "" +msgstr "Pentru mai multe informații" #. openerp-web #: addons/web/static/src/xml/base.xml:1823 msgid "OpenERP.com" -msgstr "" +msgstr "OpenERP.com" #. openerp-web #: addons/web/static/src/js/view_list.js:366 diff --git a/addons/web_calendar/i18n/nb.po b/addons/web_calendar/i18n/nb.po new file mode 100644 index 00000000000..8867daca400 --- /dev/null +++ b/addons/web_calendar/i18n/nb.po @@ -0,0 +1,41 @@ +# Norwegian Bokmal translation for openerp-web +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-03-05 19:34+0100\n" +"PO-Revision-Date: 2012-03-28 13:05+0000\n" +"Last-Translator: Rolv Råen (adEgo) \n" +"Language-Team: Norwegian Bokmal \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-29 05:23+0000\n" +"X-Generator: Launchpad (build 15032)\n" + +#. openerp-web +#: addons/web_calendar/static/src/js/calendar.js:11 +msgid "Calendar" +msgstr "Kalender" + +#. openerp-web +#: addons/web_calendar/static/src/js/calendar.js:466 +#: addons/web_calendar/static/src/js/calendar.js:467 +msgid "Responsible" +msgstr "Ansvarlig" + +#. openerp-web +#: addons/web_calendar/static/src/js/calendar.js:504 +#: addons/web_calendar/static/src/js/calendar.js:505 +msgid "Navigator" +msgstr "Navigator" + +#. openerp-web +#: addons/web_calendar/static/src/xml/web_calendar.xml:5 +#: addons/web_calendar/static/src/xml/web_calendar.xml:6 +msgid " " +msgstr " " diff --git a/addons/web_dashboard/i18n/nb.po b/addons/web_dashboard/i18n/nb.po new file mode 100644 index 00000000000..4ba4cb5931c --- /dev/null +++ b/addons/web_dashboard/i18n/nb.po @@ -0,0 +1,111 @@ +# Norwegian Bokmal translation for openerp-web +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-03-05 19:34+0100\n" +"PO-Revision-Date: 2012-03-28 13:07+0000\n" +"Last-Translator: Rolv Råen (adEgo) \n" +"Language-Team: Norwegian Bokmal \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-29 05:23+0000\n" +"X-Generator: Launchpad (build 15032)\n" + +#. openerp-web +#: addons/web_dashboard/static/src/js/dashboard.js:63 +msgid "Edit Layout" +msgstr "Rediger layout" + +#. openerp-web +#: addons/web_dashboard/static/src/js/dashboard.js:109 +msgid "Are you sure you want to remove this item ?" +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/js/dashboard.js:316 +msgid "Uncategorized" +msgstr "Ikke kategorisert" + +#. openerp-web +#: addons/web_dashboard/static/src/js/dashboard.js:324 +#, python-format +msgid "Execute task \"%s\"" +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/js/dashboard.js:325 +msgid "Mark this task as done" +msgstr "Merk denne oppgaven som ferdig" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:4 +msgid "Reset Layout.." +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:6 +msgid "Reset" +msgstr "Tilbakestill" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:8 +msgid "Change Layout.." +msgstr "Endre layout.." + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:10 +msgid "Change Layout" +msgstr "Endre layout" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:27 +msgid " " +msgstr " " + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:28 +msgid "Create" +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:39 +msgid "Choose dashboard layout" +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:62 +msgid "progress:" +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:67 +msgid "" +"Click on the functionalites listed below to launch them and configure your " +"system" +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:110 +msgid "Welcome to OpenERP" +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:118 +msgid "Remember to bookmark" +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:119 +msgid "This url" +msgstr "" + +#. openerp-web +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:121 +msgid "Your login:" +msgstr "" diff --git a/addons/web_dashboard/i18n/ro.po b/addons/web_dashboard/i18n/ro.po index 27a7ce5a229..8b01e9b3cf4 100644 --- a/addons/web_dashboard/i18n/ro.po +++ b/addons/web_dashboard/i18n/ro.po @@ -8,60 +8,60 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-03-05 19:34+0100\n" -"PO-Revision-Date: 2012-03-10 13:19+0000\n" -"Last-Translator: Dorin \n" +"PO-Revision-Date: 2012-03-28 19:28+0000\n" +"Last-Translator: teodor alexandru \n" "Language-Team: Romanian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-11 05:07+0000\n" -"X-Generator: Launchpad (build 14914)\n" +"X-Launchpad-Export-Date: 2012-03-29 05:23+0000\n" +"X-Generator: Launchpad (build 15032)\n" #. openerp-web #: addons/web_dashboard/static/src/js/dashboard.js:63 msgid "Edit Layout" -msgstr "Editare aspect" +msgstr "Editare Layout" #. openerp-web #: addons/web_dashboard/static/src/js/dashboard.js:109 msgid "Are you sure you want to remove this item ?" -msgstr "" +msgstr "Sunteti sigur ca vreti sa stergeti acest element?" #. openerp-web #: addons/web_dashboard/static/src/js/dashboard.js:316 msgid "Uncategorized" -msgstr "Fără categorie" +msgstr "Necategorisit" #. openerp-web #: addons/web_dashboard/static/src/js/dashboard.js:324 #, python-format msgid "Execute task \"%s\"" -msgstr "" +msgstr "Executati sarcina (task-ul) \"%s\"" #. openerp-web #: addons/web_dashboard/static/src/js/dashboard.js:325 msgid "Mark this task as done" -msgstr "Marchează acestă sarcină ca realizată" +msgstr "Bifati aceasta sarcina (task) efectauta" #. openerp-web #: addons/web_dashboard/static/src/xml/web_dashboard.xml:4 msgid "Reset Layout.." -msgstr "Restează aspect ..." +msgstr "Reseteaza Layout-ul" #. openerp-web #: addons/web_dashboard/static/src/xml/web_dashboard.xml:6 msgid "Reset" -msgstr "Resetare" +msgstr "Reset" #. openerp-web #: addons/web_dashboard/static/src/xml/web_dashboard.xml:8 msgid "Change Layout.." -msgstr "Schimbare aspect..." +msgstr "Schimbare Layout.." #. openerp-web #: addons/web_dashboard/static/src/xml/web_dashboard.xml:10 msgid "Change Layout" -msgstr "Modificare aspect" +msgstr "Modificare Layout" #. openerp-web #: addons/web_dashboard/static/src/xml/web_dashboard.xml:27 @@ -76,7 +76,7 @@ msgstr "Crează" #. openerp-web #: addons/web_dashboard/static/src/xml/web_dashboard.xml:39 msgid "Choose dashboard layout" -msgstr "" +msgstr "Alege layout-ul dashboard-ului" #. openerp-web #: addons/web_dashboard/static/src/xml/web_dashboard.xml:62 @@ -89,6 +89,8 @@ msgid "" "Click on the functionalites listed below to launch them and configure your " "system" msgstr "" +"Click pe functionalitatile de mai jos pentru a le porni si a va configura " +"sistemul" #. openerp-web #: addons/web_dashboard/static/src/xml/web_dashboard.xml:110 @@ -98,14 +100,14 @@ msgstr "Bun venit in OpenERP" #. openerp-web #: addons/web_dashboard/static/src/xml/web_dashboard.xml:118 msgid "Remember to bookmark" -msgstr "" +msgstr "Adaugati-o ca bookmark" #. openerp-web #: addons/web_dashboard/static/src/xml/web_dashboard.xml:119 msgid "This url" -msgstr "" +msgstr "Acest url" #. openerp-web #: addons/web_dashboard/static/src/xml/web_dashboard.xml:121 msgid "Your login:" -msgstr "" +msgstr "Login:" diff --git a/addons/web_graph/i18n/ro.po b/addons/web_graph/i18n/ro.po new file mode 100644 index 00000000000..74ea26fff52 --- /dev/null +++ b/addons/web_graph/i18n/ro.po @@ -0,0 +1,23 @@ +# Romanian translation for openerp-web +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-03-05 19:34+0100\n" +"PO-Revision-Date: 2012-03-28 19:18+0000\n" +"Last-Translator: teodor alexandru \n" +"Language-Team: Romanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-29 05:23+0000\n" +"X-Generator: Launchpad (build 15032)\n" + +#. openerp-web +#: addons/web_graph/static/src/js/graph.js:19 +msgid "Graph" +msgstr "Grafic" From 236ed739b997c565d452f9ca977e8c79ce643a99 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Thu, 29 Mar 2012 10:57:03 +0200 Subject: [PATCH 095/102] [FIX] event: fixed the access rights in order to have that being in the manager group implies being in the user group too bzr revid: qdp-launchpad@openerp.com-20120329085703-419271p8s81cl6zo --- addons/event/security/event_security.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/event/security/event_security.xml b/addons/event/security/event_security.xml index c0eb37d7b84..fb29fffcca9 100644 --- a/addons/event/security/event_security.xml +++ b/addons/event/security/event_security.xml @@ -16,6 +16,7 @@ Manager + From 9d429e4446f059a95079ba6619d2a015f2c2c775 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Thu, 29 Mar 2012 12:22:37 +0200 Subject: [PATCH 096/102] [REF] event, event_share: removed the event_share module and replaced by the use of uid=1 in the functions used by the kanban view to subscribe/unsubscribe bzr revid: qdp-launchpad@openerp.com-20120329102237-4q7qjepjutlyet2f --- addons/event/event.py | 13 +++--- addons/event_share/__init__.py | 24 ------------ addons/event_share/__openerp__.py | 35 ----------------- addons/event_share/wizard/__init__.py | 24 ------------ addons/event_share/wizard/wizard_share.py | 48 ----------------------- 5 files changed, 7 insertions(+), 137 deletions(-) delete mode 100644 addons/event_share/__init__.py delete mode 100644 addons/event_share/__openerp__.py delete mode 100644 addons/event_share/wizard/__init__.py delete mode 100644 addons/event_share/wizard/wizard_share.py diff --git a/addons/event/event.py b/addons/event/event.py index bd16194bcef..ce72dadb2cc 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -216,15 +216,16 @@ class event_event(osv.osv): user_pool = self.pool.get('res.users') user = user_pool.browse(cr, uid, uid, context=context) curr_reg_ids = register_pool.search(cr, uid, [('user_id', '=', user.id), ('event_id', '=' , ids[0])]) + #the subscription is done with UID = 1 because in case we share the kanban view, we want anyone to be able to subscribe if not curr_reg_ids: - curr_reg_ids = [register_pool.create(cr, uid, {'event_id': ids[0] ,'email': user.user_email, - 'name':user.name, 'user_id': user.id,})] - return register_pool.confirm_registration(cr, uid, curr_reg_ids, context=context) + curr_reg_ids = [register_pool.create(cr, 1, {'event_id': ids[0] ,'email': user.user_email, 'name':user.name, 'user_id': user.id,})] + return register_pool.confirm_registration(cr, 1, curr_reg_ids, context=context) - def unsubscribe_to_event(self,cr,uid,ids,context=None): + def unsubscribe_to_event(self, cr, uid, ids, context=None): register_pool = self.pool.get('event.registration') - curr_reg_ids = register_pool.search(cr, uid, [('user_id', '=', uid), ('event_id', '=', ids[0])]) - return register_pool.button_reg_cancel(cr, uid, curr_reg_ids, context=context) + #the unsubscription is done with UID = 1 because in case we share the kanban view, we want anyone to be able to unsubscribe + curr_reg_ids = register_pool.search(cr, 1, [('user_id', '=', uid), ('event_id', '=', ids[0])]) + return register_pool.button_reg_cancel(cr, 1, curr_reg_ids, context=context) def _check_closing_date(self, cr, uid, ids, context=None): for event in self.browse(cr, uid, ids, context=context): diff --git a/addons/event_share/__init__.py b/addons/event_share/__init__.py deleted file mode 100644 index 8dbeda71145..00000000000 --- a/addons/event_share/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# 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 . -# -############################################################################## - -import wizard -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - diff --git a/addons/event_share/__openerp__.py b/addons/event_share/__openerp__.py deleted file mode 100644 index f6ad583364a..00000000000 --- a/addons/event_share/__openerp__.py +++ /dev/null @@ -1,35 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# 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 . -# -############################################################################## - - -{ - 'name': 'Events Share', - 'version': '0.1', - 'category': 'Tools', - 'complexity': "easy", - 'description': """ """, - 'author': 'OpenERP SA', - 'depends': ['event','share'], - 'installable': True, - #'application': True, - 'auto_install': False, -} -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/event_share/wizard/__init__.py b/addons/event_share/wizard/__init__.py deleted file mode 100644 index d62c6170854..00000000000 --- a/addons/event_share/wizard/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# 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 . -# -############################################################################## - -import wizard_share -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - diff --git a/addons/event_share/wizard/wizard_share.py b/addons/event_share/wizard/wizard_share.py deleted file mode 100644 index 5ed940ff05d..00000000000 --- a/addons/event_share/wizard/wizard_share.py +++ /dev/null @@ -1,48 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2011 OpenERP S.A (). -# -# 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 . -# -############################################################################## - -from osv import osv, fields -from tools.translate import _ - -UID_ROOT = 1 -EVENT_ACCESS = ('perm_read', 'perm_write', 'perm_create') - -class share_wizard_event(osv.osv_memory): - """Inherited share wizard to automatically create appropriate - menus in the selected portal upon sharing with a portal group.""" - _inherit = "share.wizard" - - def _add_access_rights_for_share_group(self, cr, uid, group_id, mode, fields_relations, context=None): - """Adds access rights to group_id on object models referenced in ``fields_relations``, - intersecting with access rights of current user to avoid granting too much rights - """ - res = super(share_wizard_event, self)._add_access_rights_for_share_group(cr, uid, group_id, mode, fields_relations, context=context) - access_model = self.pool.get('ir.model.access') - - access_ids = access_model.search(cr,uid,[('group_id','=',group_id)],context = context) - for record in access_model.browse(cr,uid,access_ids,context = context): - if record.model_id.model == 'event.registration': - access_model.write(cr, uid, record.id, {'perm_read': True, 'perm_write': True,'perm_create':True}) - -share_wizard_event() - - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file From 0500d3167aa3fe2680f3e9dfc65c3abd762d98a5 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Thu, 29 Mar 2012 12:31:53 +0200 Subject: [PATCH 097/102] [FIX] base: restriced access on some menuitems ('Reporting\Audit' and 'Reporting\Configuration') to the group 'base.group_system' bzr revid: qdp-launchpad@openerp.com-20120329103153-1787msoq8bkufx5z --- openerp/addons/base/base_menu.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openerp/addons/base/base_menu.xml b/openerp/addons/base/base_menu.xml index 83460dee9af..d8cde2700ba 100644 --- a/openerp/addons/base/base_menu.xml +++ b/openerp/addons/base/base_menu.xml @@ -29,8 +29,8 @@ - - + +
From be890ed69139aa7b7de8057fe1e9bca20b30378d Mon Sep 17 00:00:00 2001 From: Xavier ALT Date: Thu, 29 Mar 2012 13:08:39 +0200 Subject: [PATCH 098/102] [FIX] web_calendar: update non-minified version of 'dhtmlxscheduler_minical' to fix offsetHeight < 0px bzr revid: xal@openerp.com-20120329110839-3jvur9msnwwl7exu --- .../static/lib/dhtmlxScheduler/sources/ext/ext_minical.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/web_calendar/static/lib/dhtmlxScheduler/sources/ext/ext_minical.js b/addons/web_calendar/static/lib/dhtmlxScheduler/sources/ext/ext_minical.js index a6a02b96445..78422625765 100644 --- a/addons/web_calendar/static/lib/dhtmlxScheduler/sources/ext/ext_minical.js +++ b/addons/web_calendar/static/lib/dhtmlxScheduler/sources/ext/ext_minical.js @@ -207,7 +207,7 @@ scheduler._render_calendar=function(obj,sd,conf, previous){ if (!previous) obj.appendChild(d); - d.childNodes[1].style.height = (d.childNodes[1].childNodes[0].offsetHeight-1)+"px"; // dhx_year_week should have height property so that day dates would get correct position. dhx_year_week height = height of it's child (with the day name) + d.childNodes[1].style.height = g.childNodes[1].childNodes[0].offsetHeight <= 0 ? "0px" : (d.childNodes[1].childNodes[0].offsetHeight-1)+"px"; // dhx_year_week should have height property so that day dates would get correct position. dhx_year_week height = height of it's child (with the day name) /*restore*/ this._cols=temp; this._mode = temp2; this._colsS = temp3; this._min_date=temp4; this._max_date=temp5; scheduler._date = temp6; ts.month_day=temp7; return d; From 33b209251ee5acc620c366e8ab65e82f9cdd7da5 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Fri, 30 Mar 2012 04:34:17 +0000 Subject: [PATCH 099/102] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20120330043417-eq9swtywff8tm13v --- openerp/addons/base/i18n/ja.po | 403 ++++++++++++++++++++++----------- 1 file changed, 275 insertions(+), 128 deletions(-) diff --git a/openerp/addons/base/i18n/ja.po b/openerp/addons/base/i18n/ja.po index 87930f3ddb0..e2dbfc9e831 100644 --- a/openerp/addons/base/i18n/ja.po +++ b/openerp/addons/base/i18n/ja.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: openobject-server\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:44+0000\n" -"PO-Revision-Date: 2012-03-29 01:39+0000\n" +"PO-Revision-Date: 2012-03-30 02:15+0000\n" "Last-Translator: Akira Hiyama \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-03-29 04:35+0000\n" +"X-Launchpad-Export-Date: 2012-03-30 04:34+0000\n" "X-Generator: Launchpad (build 15032)\n" #. module: base @@ -4789,7 +4789,7 @@ msgstr "経費管理" #: view:workflow.activity:0 #: field:workflow.activity,in_transitions:0 msgid "Incoming Transitions" -msgstr "入力変化" +msgstr "入ってくるトランジション" #. module: base #: field:ir.values,value_unpickle:0 @@ -5463,7 +5463,7 @@ msgstr "次の番号" #. module: base #: help:workflow.transition,condition:0 msgid "Expression to be satisfied if we want the transition done." -msgstr "変化させることを望む場合、満足させるための表現" +msgstr "そのトランジションがなされることを、満足させるための式" #. module: base #: model:ir.model,name:base.model_publisher_warranty_contract_wizard @@ -6589,8 +6589,8 @@ msgid "" "form, signal tests the name of the pressed button. If signal is NULL, no " "button is necessary to validate this transition." msgstr "" -"顧客フォームの押されたボタンにより移行を実行した時に、その合図は押されたボタンの名前をテストします。合図がNULLの時、この移行を検査するためにはどのボタ" -"ンも必要ではありません。" +"トランジションの操作が顧客フォームの中のボタンが押されたことで発生するなら、シグナルは押された名前のボタンをテストします。シグナルがNULLであれば、この" +"トランジションを有効にするためにはどのボタンも必要ではありません。" #. module: base #: model:ir.module.module,shortdesc:base.module_web_diagram @@ -11989,12 +11989,12 @@ msgstr "エストニア語 / Eesti keel" #. module: base #: field:res.partner,email:0 msgid "E-mail" -msgstr "" +msgstr "Eメール" #. module: base #: selection:ir.module.module,license:0 msgid "GPL-3 or later version" -msgstr "" +msgstr "GPL-3 またはそれ以降のバージョン" #. module: base #: model:ir.module.module,description:base.module_google_map @@ -12005,11 +12005,16 @@ msgid "" "\n" "Using this you can directly open Google Map from the URL widget." msgstr "" +"\n" +"このモジュールはパートナのアドレスの中にGoogleマップ項目を追加します。\n" +"====================================================\n" +"\n" +"これを使うと、URLウィジットからGoogleマップを直接開くことができます。" #. module: base #: field:workflow.activity,action:0 msgid "Python Action" -msgstr "" +msgstr "Python のアクション" #. module: base #: model:ir.module.module,description:base.module_report_webkit_sample @@ -12026,11 +12031,21 @@ msgid "" " http://files.me.com/nbessi/06n92k.mov\n" " " msgstr "" +"\n" +"Webkitレポートエンジン(report_webkit モジュール)のサンプル\n" +"========================================================\n" +"\n" +"このモジュールにはサンプル請求書レポートと同様に、システムの中の任意のドキュメントにWebkitのレポートエントリを追加するウィザードが含まれています。" +"\n" +"\n" +"ウィザードを呼び出して印刷ボタンを作る必要があります。より詳しい情報は以下を参照して下さい:\n" +" http://files.me.com/nbessi/06n92k.mov\n" +" " #. module: base #: selection:base.language.install,lang:0 msgid "English (US)" -msgstr "" +msgstr "英語(アメリカ)" #. module: base #: model:ir.actions.act_window,help:base.action_partner_title_partner @@ -12038,11 +12053,13 @@ msgid "" "Manage the partner titles you want to have available in your system. The " "partner titles is the legal status of the company: Private Limited, SA, etc." msgstr "" +"あなたのシステムで使用可能にしたいパートナのタイトルを管理します。パートナのタイトルは会社の法的なステータスです:Private " +"Limited、SA、など" #. module: base #: view:base.language.export:0 msgid "To browse official translations, you can start with these links:" -msgstr "" +msgstr "公式の翻訳を参照するためには、このリンクで起動することができます。" #. module: base #: code:addons/base/ir/ir_model.py:531 @@ -12050,13 +12067,13 @@ msgstr "" msgid "" "You can not read this document (%s) ! Be sure your user belongs to one of " "these groups: %s." -msgstr "" +msgstr "あなたはこのドキュメントを読み取れません(%s)。あなたのユーザがこれらのグループの何れかに属していることを確認して下さい:%s。" #. module: base #: view:res.bank:0 #: view:res.partner.address:0 msgid "Address" -msgstr "" +msgstr "住所" #. module: base #: code:addons/base/module/module.py:308 @@ -12065,11 +12082,13 @@ msgid "" "You try to install module '%s' that depends on module '%s'.\n" "But the latter module is not available in your system." msgstr "" +"あなたはモジュール'%s'をインストールしようとしています。これはモジュール'%s'に依存しています。\n" +"しかし、後者のモジュールはあなたのシステムでは利用可能ではありません。" #. module: base #: field:ir.module.module,latest_version:0 msgid "Installed version" -msgstr "" +msgstr "インストール済みのバージョン" #. module: base #: selection:base.language.install,lang:0 @@ -12079,7 +12098,7 @@ msgstr "モンゴル語 / монгол" #. module: base #: model:res.country,name:base.mr msgid "Mauritania" -msgstr "" +msgstr "モーリタニア" #. module: base #: model:ir.model,name:base.model_ir_translation @@ -12100,33 +12119,43 @@ msgid "" " * Product Attributes\n" " " msgstr "" +"\n" +"このモジュールは製品フォームに製造業者や属性を追加します。\n" +"====================================================================\n" +"\n" +"製品のために以下の定義ができます:\n" +" ・ 製造業者\n" +" ・ 製造業者製品名\n" +" ・ 製造業者製品コード\n" +" ・ 製品属性\n" +" " #. module: base #: model:ir.model,name:base.model_ir_actions_todo_category msgid "Configuration Wizard Category" -msgstr "" +msgstr "コンフィギュレーションウィザードの分類" #. module: base #: view:base.module.update:0 msgid "Module update result" -msgstr "" +msgstr "モジュール更新結果" #. module: base #: view:workflow.activity:0 #: field:workflow.workitem,act_id:0 msgid "Activity" -msgstr "" +msgstr "アクティビティ" #. module: base #: view:res.partner:0 #: view:res.partner.address:0 msgid "Postal Address" -msgstr "" +msgstr "郵便住所" #. module: base #: field:res.company,parent_id:0 msgid "Parent Company" -msgstr "" +msgstr "親会社" #. module: base #: model:ir.module.module,description:base.module_base_iban @@ -12141,6 +12170,14 @@ msgid "" "accounts with a single statement.\n" " " msgstr "" +"\n" +"このモジュールはIBAN(International Bank Account " +"Number)のための銀行口座とその妥当性検査のための基本をインストールします。\n" +"=============================================================================" +"========================================\n" +"\n" +"一つの明細書におけるIBAN口座から正確に表現されるローカル口座を抜き取る能力\n" +" " #. module: base #: model:ir.model,name:base.model_ir_mail_server @@ -12160,16 +12197,18 @@ msgid "" "the bounds of global ones. The first group rules restrict further than " "global rules, but any additional group rule will add more permissions" msgstr "" +"世界的なルール(特定のグループによらない)は制約であり、回避することはできません。グループ固有のルールは追加の許可を与えますが、世界的なものの境界の中に制" +"限されます。最初のグループのルールは世界的なルールよりも制限されますが、他の追加のグループのルールはもっと多くの許可を追加します。" #. module: base #: field:res.currency.rate,rate:0 msgid "Rate" -msgstr "" +msgstr "レート" #. module: base #: model:res.country,name:base.cg msgid "Congo" -msgstr "" +msgstr "コンゴ" #. module: base #: view:res.lang:0 @@ -12185,12 +12224,12 @@ msgstr "デフォルト値" #. module: base #: model:ir.model,name:base.model_res_country_state msgid "Country state" -msgstr "" +msgstr "国の状態" #. module: base #: model:ir.ui.menu,name:base.next_id_5 msgid "Sequences & Identifiers" -msgstr "" +msgstr "順序と識別子" #. module: base #: model:ir.module.module,description:base.module_l10n_th @@ -12212,12 +12251,12 @@ msgstr "" #. module: base #: model:res.country,name:base.kn msgid "Saint Kitts & Nevis Anguilla" -msgstr "" +msgstr "セントキッツ・ネービスアンギラ" #. module: base #: model:ir.module.category,name:base.module_category_point_of_sale msgid "Point of Sales" -msgstr "" +msgstr "POS" #. module: base #: model:ir.module.module,description:base.module_hr_payroll_account @@ -12231,6 +12270,14 @@ msgid "" " * Company Contribution Management\n" " " msgstr "" +"\n" +"一般的な給与システムと会計との統合\n" +"===================================================\n" +"\n" +" ・ 費用のエンコーディング\n" +" ・ 支払いのエンコーディング\n" +" ・ 会社貢献の管理\n" +" " #. module: base #: code:addons/base/res/res_currency.py:190 @@ -12240,6 +12287,9 @@ msgid "" "for the currency: %s \n" "at the date: %s" msgstr "" +"以下のレートが見つかりません。\n" +"通貨:%s \n" +"日付:%s" #. module: base #: model:ir.module.module,description:base.module_point_of_sale @@ -12259,67 +12309,80 @@ msgid "" " * Allow to refund former sales.\n" " " msgstr "" +"\n" +"このモジュールは迅速で簡単な販売プロセスを提供します。\n" +"===================================================\n" +"\n" +"主な特徴:\n" +"---------------\n" +" ・ 販売の高速なエンコーディング\n" +" ・ 1回支払いモード(簡単な方法)、または幾つかの支払いモード間に支払いを分割する選択を許可\n" +" ・ 返金総額の計算\n" +" ・ 自動的に抽出リストの作成と確認\n" +" ・ ユーザが自動的に請求書を作成することを許可\n" +" ・ 前の売上の返金を許可\n" +" " #. module: base #: model:ir.actions.act_window,help:base.action_ui_view_custom msgid "" "Customized views are used when users reorganize the content of their " "dashboard views (via web client)" -msgstr "" +msgstr "ユーザ自身がダッシュボードビュー(Webクライアントを介して)の内容を再編成した、カスタマイズビューを使うことができます。" #. module: base #: help:publisher_warranty.contract,check_opw:0 msgid "" "Checked if this is an OpenERP Publisher's Warranty contract (versus older " "contract types" -msgstr "" +msgstr "OpenERPの発行人の保証契約(古い契約タイプに対して)かどうかがチェックされます。" #. module: base #: field:ir.model.fields,model:0 msgid "Object Name" -msgstr "" +msgstr "オブジェクト名" #. module: base #: help:ir.actions.server,srcmodel_id:0 msgid "" "Object in which you want to create / write the object. If it is empty then " "refer to the Object field." -msgstr "" +msgstr "あなたが作成 / 書き込みたいオブジェクト。もし、それが空であるならオブジェクト項目を参照して下さい。" #. module: base #: view:ir.module.module:0 #: selection:ir.module.module,state:0 #: selection:ir.module.module.dependency,state:0 msgid "Not Installed" -msgstr "" +msgstr "インストールされていません。" #. module: base #: view:workflow.activity:0 #: field:workflow.activity,out_transitions:0 msgid "Outgoing Transitions" -msgstr "" +msgstr "出て行くトランジション" #. module: base #: field:ir.ui.menu,icon:0 msgid "Icon" -msgstr "" +msgstr "アイコン" #. module: base #: model:ir.module.category,description:base.module_category_human_resources msgid "" "Helps you manage your human resources by encoding your employees structure, " "generating work sheets, tracking attendance and more." -msgstr "" +msgstr "従業員構造のエンコード、ワークシートの生成、出勤の追跡、他を行うことで、人的資源管理を手助けします。" #. module: base #: help:ir.model.fields,model_id:0 msgid "The model this field belongs to" -msgstr "" +msgstr "この項目が属するモデル" #. module: base #: model:res.country,name:base.mq msgid "Martinique (French)" -msgstr "" +msgstr "マルティニーク(フランス語)" #. module: base #: model:ir.module.module,description:base.module_wiki_sale_faq @@ -12332,11 +12395,17 @@ msgid "" "for Wiki Sale FAQ.\n" " " msgstr "" +"\n" +"このモジュールはWiki販売FAQテンプレートを提供します。\n" +"===============================================\n" +"\n" +"Wiki販売FAQのために、WikiグループとWikiページを作成し、デモデータを提供します。\n" +" " #. module: base #: view:ir.sequence.type:0 msgid "Sequences Type" -msgstr "" +msgstr "順序タイプ" #. module: base #: model:ir.module.module,description:base.module_base_action_rule @@ -12354,6 +12423,16 @@ msgid "" "trigger an automatic reminder email.\n" " " msgstr "" +"\n" +"このモジュールは任意のオブジェクトに対してアクションルールを実装することができます。\n" +"============================================================\n" +"\n" +"さまざまな画面のアクションを自動的にトリガーする自動アクションの使用ができます。\n" +"\n" +"例:特定のユーザにより作成されたリードは自動的に特定のセールスチームにセットされたり、\n" +"あるいは14日以上保留状態であるオポチュニティは自動的にリマインダー電子メールの\n" +"トリガーになります。\n" +" " #. module: base #: model:ir.actions.act_window,name:base.res_request-act @@ -12361,17 +12440,17 @@ msgstr "" #: model:ir.ui.menu,name:base.menu_resquest_ref #: view:res.request:0 msgid "Requests" -msgstr "" +msgstr "リクエスト" #. module: base #: model:res.country,name:base.ye msgid "Yemen" -msgstr "" +msgstr "イエメン" #. module: base #: selection:workflow.activity,split_mode:0 msgid "Or" -msgstr "" +msgstr "または" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_br @@ -12381,7 +12460,7 @@ msgstr "ブラジル-会計" #. module: base #: model:res.country,name:base.pk msgid "Pakistan" -msgstr "" +msgstr "パキスタン" #. module: base #: model:ir.module.module,description:base.module_product_margin @@ -12405,14 +12484,14 @@ msgstr "" #. module: base #: model:res.country,name:base.al msgid "Albania" -msgstr "" +msgstr "アルバニア" #. module: base #: help:ir.module.module,complexity:0 msgid "" "Level of difficulty of module. Easy: intuitive and easy to use for everyone. " "Normal: easy to use for business experts. Expert: requires technical skills." -msgstr "" +msgstr "モジュールの難しさのレベル。簡単:直感的で誰にとっても使い易い。普通:ビジネス専門家には使い易い。熟練者:技術的なスキルが必要。" #. module: base #: code:addons/base/res/res_lang.py:191 @@ -12421,38 +12500,40 @@ msgid "" "You cannot delete the language which is Active !\n" "Please de-activate the language first." msgstr "" +"アクティブな言語を削除することはできません。\n" +"最初にその言語を非アクティブにして下さい。" #. module: base #: view:base.language.install:0 msgid "" "Please be patient, this operation may take a few minutes (depending on the " "number of modules currently installed)..." -msgstr "" +msgstr "この操作には時間がかかります(現在インストールされているモジュール数に依存します)。しばらくお待ち下さい。" #. module: base #: field:ir.ui.menu,child_id:0 msgid "Child IDs" -msgstr "" +msgstr "子ID" #. module: base #: code:addons/base/ir/ir_actions.py:748 #: code:addons/base/ir/ir_actions.py:751 #, python-format msgid "Problem in configuration `Record Id` in Server Action!" -msgstr "" +msgstr "サーバアクションのレコードIDコンフィギュレーションの問題です。" #. module: base #: code:addons/orm.py:2682 #: code:addons/orm.py:2692 #, python-format msgid "ValidateError" -msgstr "" +msgstr "検証エラー" #. module: base #: view:base.module.import:0 #: view:base.module.update:0 msgid "Open Modules" -msgstr "" +msgstr "モジュールを開く" #. module: base #: model:ir.module.module,description:base.module_sale_margin @@ -12465,33 +12546,39 @@ msgid "" "Price and Cost Price.\n" " " msgstr "" +"\n" +"このモジュールは販売注文に\"マージン\"を追加します。\n" +"=============================================\n" +"\n" +"ユニット価格とコスト価格の差を計算し利益を求めます。\n" +" " #. module: base #: model:ir.actions.act_window,help:base.action_res_bank_form msgid "Manage bank records you want to be used in the system." -msgstr "" +msgstr "システムで使用したい銀行の記録を管理します。" #. module: base #: view:base.module.import:0 msgid "Import module" -msgstr "" +msgstr "モジュールのインポート" #. module: base #: field:ir.actions.server,loop_action:0 msgid "Loop Action" -msgstr "" +msgstr "ループアクション" #. module: base #: help:ir.actions.report.xml,report_file:0 msgid "" "The path to the main report file (depending on Report Type) or NULL if the " "content is in another field" -msgstr "" +msgstr "コンテンツが他の項目にある場合、主レポート(レポートタイプに依存)へのパス、またはNULL。" #. module: base #: model:res.country,name:base.la msgid "Laos" -msgstr "" +msgstr "ラオス" #. module: base #: selection:ir.actions.server,state:0 @@ -12499,17 +12586,17 @@ msgstr "" #: field:res.company,email:0 #: field:res.users,user_email:0 msgid "Email" -msgstr "" +msgstr "Eメール" #. module: base #: field:res.users,action_id:0 msgid "Home Action" -msgstr "" +msgstr "ホームアクション" #. module: base #: model:ir.module.module,shortdesc:base.module_event_project msgid "Retro-Planning on Events" -msgstr "" +msgstr "イベントにおけるレトロプランニング" #. module: base #: code:addons/custom.py:555 @@ -12518,16 +12605,18 @@ msgid "" "The sum of the data (2nd field) is null.\n" "We can't draw a pie chart !" msgstr "" +"データの合計(2番目の項目)がNULLです。\n" +"パイチャートの描画ができません。" #. module: base #: view:partner.clear.ids:0 msgid "Want to Clear Ids ? " -msgstr "" +msgstr "IDのクリアを望みますか? " #. module: base #: view:res.partner.bank:0 msgid "Information About the Bank" -msgstr "" +msgstr "銀行に関する情報" #. module: base #: help:ir.actions.server,condition:0 @@ -12545,12 +12634,22 @@ msgid "" " - uid: current user id\n" " - context: current context" msgstr "" +"条件はアクションが実行される前にテストされます。もし、それが確認されない場合は実行が阻止されます。\n" +"例:object.list_price > 5000\n" +"これは以下の値を使うPythonの式です:\n" +" ・ self:アクションがトリガーされているレコードのORMモデル\n" +" ・ object または obj:アクションがトリガーされているレコードのbrowse_record\n" +" ・ pool:ORMモデルプール(すなわち self.pool)\n" +" ・ time:Pythonのtimeモジュール\n" +" ・ cr:データベースカーソル\n" +" ・ uid:現在のユーザID\n" +" ・ context:現在のコンテキスト" #. module: base #: view:ir.rule:0 msgid "" "2. Group-specific rules are combined together with a logical OR operator" -msgstr "" +msgstr "2. グループ固有のルールは論理演算子ORによって組み立てられます。" #. module: base #: model:res.partner.category,name:base.res_partner_category_woodsuppliers0 @@ -12560,27 +12659,27 @@ msgstr "木材仕入先" #. module: base #: model:res.country,name:base.tg msgid "Togo" -msgstr "" +msgstr "トーゴ" #. module: base #: selection:ir.module.module,license:0 msgid "Other Proprietary" -msgstr "" +msgstr "他の所有" #. module: base #: model:res.country,name:base.ec msgid "Ecuador" -msgstr "" +msgstr "エクアドル" #. module: base #: selection:workflow.activity,kind:0 msgid "Stop All" -msgstr "" +msgstr "全ての停止" #. module: base #: model:ir.module.module,shortdesc:base.module_analytic_user_function msgid "Jobs on Contracts" -msgstr "" +msgstr "契約上の仕事" #. module: base #: model:ir.module.module,description:base.module_import_sugarcrm @@ -12590,13 +12689,16 @@ msgid "" " \"Contacts\", \"Employees\", Meetings, Phonecalls, Emails, and " "Project, Project Tasks Data into OpenERP Module." msgstr "" +"このモジュールはSugarCRMの以下のデータをOpenERPモジュールにインポートします:\n" +"  Leads、Opportunities、Users、Accounts、Contacts、Employees、Meetings、\n" +"  Phonecalls、Emails、Project、Project Tasks" #. module: base #: model:ir.actions.act_window,name:base.action_publisher_warranty_contract_add_wizard #: model:ir.ui.menu,name:base.menu_publisher_warranty_contract_add #: view:publisher_warranty.contract.wizard:0 msgid "Register a Contract" -msgstr "" +msgstr "契約の登録" #. module: base #: model:ir.module.module,description:base.module_l10n_ve @@ -12607,11 +12709,16 @@ msgid "" "\n" "Este módulo es para manejar un catálogo de cuentas ejemplo para Venezuela.\n" msgstr "" +"\n" +"このモジュールはOpenERPのベネズエラの会計表を管理するモジュールです。\n" +"===========================================================================\n" +"\n" +"Este módulo es para manejar un catálogo de cuentas ejemplo para Venezuela.\n" #. module: base #: view:ir.model.data:0 msgid "Updatable" -msgstr "" +msgstr "更新可能" #. module: base #: view:res.lang:0 @@ -12621,19 +12728,19 @@ msgstr "" #. module: base #: selection:ir.model.fields,on_delete:0 msgid "Cascade" -msgstr "" +msgstr "カスケード" #. module: base #: field:workflow.transition,group_id:0 msgid "Group Required" -msgstr "" +msgstr "グループは必須です。" #. module: base #: model:ir.module.category,description:base.module_category_knowledge_management msgid "" "Lets you install addons geared towards sharing knowledge with and between " "your employees." -msgstr "" +msgstr "従業員の間で知識を共有するためのアドオンをインストールすることができます。" #. module: base #: selection:base.language.install,lang:0 @@ -12648,17 +12755,17 @@ msgstr "" #. module: base #: view:ir.actions.configuration.wizard:0 msgid "Next Configuration Step" -msgstr "" +msgstr "次のコンフィギュレーションステップ" #. module: base #: field:res.groups,comment:0 msgid "Comment" -msgstr "" +msgstr "コメント" #. module: base #: model:res.groups,name:base.group_hr_manager msgid "HR Manager" -msgstr "" +msgstr "HR管理者" #. module: base #: view:ir.filters:0 @@ -12667,48 +12774,48 @@ msgstr "" #: field:ir.rule,domain_force:0 #: field:res.partner.title,domain:0 msgid "Domain" -msgstr "" +msgstr "ドメイン" #. module: base #: model:ir.module.module,shortdesc:base.module_marketing_campaign msgid "Marketing Campaigns" -msgstr "" +msgstr "マーケティングキャンペーン" #. module: base #: code:addons/base/publisher_warranty/publisher_warranty.py:144 #, python-format msgid "Contract validation error" -msgstr "" +msgstr "契約の検証エラー" #. module: base #: field:ir.values,key2:0 msgid "Qualifier" -msgstr "" +msgstr "修飾語句" #. module: base #: field:res.country.state,name:0 msgid "State Name" -msgstr "" +msgstr "状態の名前" #. module: base #: view:res.lang:0 msgid "Update Languague Terms" -msgstr "" +msgstr "言語規約の更新" #. module: base #: field:workflow.activity,join_mode:0 msgid "Join Mode" -msgstr "" +msgstr "結合モード" #. module: base #: field:res.users,context_tz:0 msgid "Timezone" -msgstr "" +msgstr "タイムゾーン" #. module: base #: model:ir.module.module,shortdesc:base.module_wiki_faq msgid "Wiki: Internal FAQ" -msgstr "" +msgstr "Wiki:内部FAQ" #. module: base #: model:ir.model,name:base.model_ir_actions_report_xml @@ -12729,13 +12836,20 @@ msgid "" "handle an issue.\n" " " msgstr "" +"\n" +"このモジュールはプロジェクトの問題 / バグ管理のためのタイムシートのサポートを追加します。\n" +"=============================================================================" +"====\n" +"\n" +"ワークログは問題のためにユーザが費やした時間数を表すために維持管理されます。\n" +" " #. module: base #: model:ir.actions.act_window,name:base.ir_sequence_form #: view:ir.sequence:0 #: model:ir.ui.menu,name:base.menu_ir_sequence_form msgid "Sequences" -msgstr "" +msgstr "順序" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_miss @@ -12750,29 +12864,29 @@ msgstr "" #. module: base #: help:res.lang,code:0 msgid "This field is used to set/get locales for user" -msgstr "" +msgstr "この項目はユーザのロケールを設定 / 取得するために使用されます。" #. module: base #: model:res.partner.category,name:base.res_partner_category_2 msgid "OpenERP Partners" -msgstr "" +msgstr "OpenERPパートナ" #. module: base #: code:addons/base/module/module.py:293 #, python-format msgid "" "Unable to install module \"%s\" because an external dependency is not met: %s" -msgstr "" +msgstr "モジュール\"%s\" をインストールすることができません。なぜなら、外部依存関係が満たされていないからです:%s" #. module: base #: view:ir.module.module:0 msgid "Search modules" -msgstr "" +msgstr "検索モジュール" #. module: base #: model:res.country,name:base.by msgid "Belarus" -msgstr "" +msgstr "ベラルーシ" #. module: base #: field:ir.actions.act_window,name:0 @@ -12782,7 +12896,7 @@ msgstr "" #: field:ir.actions.server,name:0 #: field:ir.actions.url,name:0 msgid "Action Name" -msgstr "" +msgstr "アクション名" #. module: base #: model:ir.actions.act_window,help:base.action_res_users @@ -12792,17 +12906,19 @@ msgid "" "not connect to the system. You can assign them groups in order to give them " "specific access to the applications they need to use in the system." msgstr "" +"システムに接続するユーザを作成し、そして管理して下さい。ユーザは非活性化され、彼らがシステムに接続すべきでない一定の期間が置かれます。あなたは彼らがシステ" +"ムで使うことを必要とするアプリケーションに特定のアクセスを与えるためにグループを割り当てることができます。" #. module: base #: selection:ir.module.module,complexity:0 #: selection:res.request,priority:0 msgid "Normal" -msgstr "" +msgstr "通常" #. module: base #: model:ir.module.module,shortdesc:base.module_purchase_double_validation msgid "Double Validation on Purchases" -msgstr "" +msgstr "購入時の二重検証" #. module: base #: field:res.bank,street2:0 @@ -12814,13 +12930,13 @@ msgstr "" #. module: base #: model:ir.actions.act_window,name:base.action_view_base_module_update msgid "Module Update" -msgstr "" +msgstr "モジュールの更新" #. module: base #: code:addons/base/module/wizard/base_module_upgrade.py:95 #, python-format msgid "Following modules are not installed or unknown: %s" -msgstr "" +msgstr "以下のモジュールがインストールされていないか不明です:%s" #. module: base #: view:ir.cron:0 @@ -12835,27 +12951,27 @@ msgstr "" #: view:res.users:0 #: field:res.widget.user,user_id:0 msgid "User" -msgstr "" +msgstr "ユーザ" #. module: base #: model:res.country,name:base.pr msgid "Puerto Rico" -msgstr "" +msgstr "プエルトリコ" #. module: base #: view:ir.actions.act_window:0 msgid "Open Window" -msgstr "" +msgstr "ウィンドウを開く" #. module: base #: field:ir.actions.act_window,auto_search:0 msgid "Auto Search" -msgstr "" +msgstr "自動検索" #. module: base #: field:ir.actions.act_window,filter:0 msgid "Filter" -msgstr "" +msgstr "フィルタ" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam @@ -12869,26 +12985,28 @@ msgid "" "importing a new module you can install it by clicking on the button " "\"Install\" from the form view." msgstr "" +"このウィザードはあなたのOpenERPシステムに新しいモジュールのインポートするのを手助けします。新しいモジュールをインポートした後に、フォームビューから" +"インストールボタンをクリックするとインストールできます。" #. module: base #: model:res.country,name:base.ch msgid "Switzerland" -msgstr "" +msgstr "スイス" #. module: base #: model:res.country,name:base.gd msgid "Grenada" -msgstr "" +msgstr "グレナダ" #. module: base #: view:ir.actions.server:0 msgid "Trigger Configuration" -msgstr "" +msgstr "トリガーコンフィギュレーション" #. module: base #: view:base.language.install:0 msgid "Load" -msgstr "" +msgstr "ロード" #. module: base #: model:ir.module.module,description:base.module_warning @@ -12915,7 +13033,7 @@ msgstr "" #: code:addons/osv.py:152 #, python-format msgid "Integrity Error" -msgstr "" +msgstr "完全性のエラー" #. module: base #: model:ir.model,name:base.model_ir_wizard_screen @@ -12925,38 +13043,38 @@ msgstr "" #. module: base #: model:ir.model,name:base.model_workflow msgid "workflow" -msgstr "" +msgstr "ワークフロー" #. module: base #: code:addons/base/ir/ir_model.py:255 #, python-format msgid "Size of the field can never be less than 1 !" -msgstr "" +msgstr "項目のサイズは1未満にすることはできません。" #. module: base #: model:res.country,name:base.so msgid "Somalia" -msgstr "" +msgstr "ソマリア" #. module: base #: model:ir.module.module,shortdesc:base.module_mrp_operations msgid "Manufacturing Operations" -msgstr "" +msgstr "製造オペレーション" #. module: base #: selection:publisher_warranty.contract,state:0 msgid "Terminated" -msgstr "" +msgstr "終了" #. module: base #: model:res.partner.category,name:base.res_partner_category_13 msgid "Important customers" -msgstr "" +msgstr "重要な顧客" #. module: base #: view:res.lang:0 msgid "Update Terms" -msgstr "" +msgstr "規約の更新" #. module: base #: model:ir.module.module,description:base.module_project_messages @@ -12969,33 +13087,39 @@ msgid "" "it to all the users.\n" " " msgstr "" +"\n" +"このモジュールはプロジェクトの中のメッセージを送信する機能を提供します。\n" +"=========================================================================\n" +"\n" +"ユーザは他のユーザに個別にメッセージの送信ができます。さらに全てのユーザにブロードキャストすることもできます。\n" +" " #. module: base #: model:ir.module.module,shortdesc:base.module_hr msgid "Employee Directory" -msgstr "" +msgstr "従業員名簿" #. module: base #: view:ir.cron:0 #: field:ir.cron,args:0 msgid "Arguments" -msgstr "" +msgstr "引数" #. module: base #: code:addons/orm.py:1260 #, python-format msgid "Database ID doesn't exist: %s : %s" -msgstr "" +msgstr "データベースIDが存在しません:%s :%s" #. module: base #: selection:ir.module.module,license:0 msgid "GPL Version 2" -msgstr "" +msgstr "GPL バージョン2" #. module: base #: selection:ir.module.module,license:0 msgid "GPL Version 3" -msgstr "" +msgstr "GPL バージョン3" #. module: base #: model:ir.module.module,description:base.module_report_intrastat @@ -13007,6 +13131,11 @@ msgid "" "This module gives the details of the goods traded between the countries of " "European Union " msgstr "" +"\n" +"このモジュールはイントラスタットレポートを追加します。\n" +"=====================================\n" +"\n" +"このモジュールは欧州連合国の間で貿易された商品の詳細を示します。 " #. module: base #: model:ir.module.module,description:base.module_stock_invoice_directly @@ -13019,23 +13148,29 @@ msgid "" "the invoicing wizard if the delivery is to be invoiced.\n" " " msgstr "" +"\n" +"配達のための請求書ウィザード\n" +"============================\n" +"\n" +"商品を送るか配達する場合に、それが請求書付きであるなら、このモジュールは自動的に請求書ウィザードを起動します。\n" +" " #. module: base #: code:addons/orm.py:1388 #, python-format msgid "key '%s' not found in selection field '%s'" -msgstr "" +msgstr "キー %s は選択した項目 %s の中に見つかりません。" #. module: base #: selection:ir.values,key:0 #: selection:res.partner.address,type:0 msgid "Default" -msgstr "" +msgstr "デフォルト" #. module: base #: view:partner.wizard.ean.check:0 msgid "Correct EAN13" -msgstr "" +msgstr "EAN13の修正" #. module: base #: selection:res.company,paper_format:0 @@ -13045,7 +13180,7 @@ msgstr "" #. module: base #: field:publisher_warranty.contract,check_support:0 msgid "Support Level 1" -msgstr "" +msgstr "サポートレベル1" #. module: base #: field:res.partner,customer:0 @@ -13053,7 +13188,7 @@ msgstr "" #: field:res.partner.address,is_customer_add:0 #: model:res.partner.category,name:base.res_partner_category_0 msgid "Customer" -msgstr "" +msgstr "顧客" #. module: base #: selection:base.language.install,lang:0 @@ -13081,46 +13216,58 @@ msgid "" "lines: Unit price=225, Discount=0,00, Net price=225\n" " " msgstr "" +"\n" +"このモジュールでは、パートナの価格リストを基に販売注文の行や請求書の行での割引計算ができます。\n" +"=============================================================================" +"==================================\n" +"\n" +"そのために、価格リストフォームに新しいチェックボックス\"見える割引\"が追加されます。\n" +"\n" +"例:\n" +" 製品PC1とパートナAsustek:リスト価格=450で、Asustekの価格リストを使って計算された価格=225の場合\n" +" チェックボックスがチェックありの時、販売注文の行:ユニット価格=450、割引=50.00、ネット価格=225\n" +" チェックボックスがチェックなしの時、販売注文と請求書の行:ユニット価格=225、割引=0.00、ネット価格=225\n" +" " #. module: base #: field:ir.module.module,shortdesc:0 msgid "Short Description" -msgstr "" +msgstr "簡単な説明" #. module: base #: field:res.country,code:0 msgid "Country Code" -msgstr "" +msgstr "国コード" #. module: base #: view:ir.sequence:0 msgid "Hour 00->24: %(h24)s" -msgstr "" +msgstr "時 00->24: %(h24)s" #. module: base #: field:ir.cron,nextcall:0 msgid "Next Execution Date" -msgstr "" +msgstr "次回実行日" #. module: base #: field:ir.sequence,padding:0 msgid "Number Padding" -msgstr "" +msgstr "番号の埋め文字" #. module: base #: help:multi_company.default,field_id:0 msgid "Select field property" -msgstr "" +msgstr "項目のプロパティを選択" #. module: base #: field:res.request.history,date_sent:0 msgid "Date sent" -msgstr "" +msgstr "送信日" #. module: base #: view:ir.sequence:0 msgid "Month: %(month)s" -msgstr "" +msgstr "月:%(month)s" #. module: base #: field:ir.actions.act_window.view,sequence:0 @@ -16151,7 +16298,7 @@ msgstr "" #: help:workflow.transition,group_id:0 msgid "" "The group that a user must have to be authorized to validate this transition." -msgstr "" +msgstr "ユーザがこのトランジションを有効にするために許可されなければならないグループ" #. module: base #: code:addons/orm.py:791 From fa4f3cde2fdfc53df0fdabae09d555a538d51840 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Fri, 30 Mar 2012 04:34:33 +0000 Subject: [PATCH 100/102] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20120330043433-fqgc4p517mcf553r --- addons/purchase_double_validation/i18n/pt.po | 70 ++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 addons/purchase_double_validation/i18n/pt.po diff --git a/addons/purchase_double_validation/i18n/pt.po b/addons/purchase_double_validation/i18n/pt.po new file mode 100644 index 00000000000..4dd263e1652 --- /dev/null +++ b/addons/purchase_double_validation/i18n/pt.po @@ -0,0 +1,70 @@ +# Portuguese translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:37+0000\n" +"PO-Revision-Date: 2012-03-29 11:26+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-03-30 04:34+0000\n" +"X-Generator: Launchpad (build 15032)\n" + +#. module: purchase_double_validation +#: view:purchase.double.validation.installer:0 +msgid "Purchase Application Configuration" +msgstr "" + +#. module: purchase_double_validation +#: view:purchase.double.validation.installer:0 +msgid "Define minimum amount after which puchase is needed to be validated." +msgstr "" + +#. module: purchase_double_validation +#: view:purchase.double.validation.installer:0 +msgid "title" +msgstr "" + +#. module: purchase_double_validation +#: field:purchase.double.validation.installer,config_logo:0 +msgid "Image" +msgstr "" + +#. module: purchase_double_validation +#: model:ir.actions.act_window,name:purchase_double_validation.action_config_purchase_limit_amount +#: view:purchase.double.validation.installer:0 +msgid "Configure Limit Amount for Purchase" +msgstr "" + +#. module: purchase_double_validation +#: view:board.board:0 +#: model:ir.actions.act_window,name:purchase_double_validation.purchase_waiting +msgid "Purchase Order Waiting Approval" +msgstr "" + +#. module: purchase_double_validation +#: view:purchase.double.validation.installer:0 +msgid "res_config_contents" +msgstr "" + +#. module: purchase_double_validation +#: help:purchase.double.validation.installer,limit_amount:0 +msgid "Maximum amount after which validation of purchase is required." +msgstr "" + +#. module: purchase_double_validation +#: model:ir.model,name:purchase_double_validation.model_purchase_double_validation_installer +msgid "purchase.double.validation.installer" +msgstr "" + +#. module: purchase_double_validation +#: field:purchase.double.validation.installer,limit_amount:0 +msgid "Maximum Purchase Amount" +msgstr "" From 0204b5f1a90b484573874a1390315b44cd801248 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 30 Mar 2012 10:10:16 +0200 Subject: [PATCH 101/102] [IMP]: added new default avatars in png, allowing to avoid compression defaults in resized avatars bzr revid: tde@openerp.com-20120330081016-d6j2yd7ii86nhqzk --- openerp/addons/base/images/avatar0.jpg | Bin 9916 -> 0 bytes openerp/addons/base/images/avatar1.jpg | Bin 12294 -> 0 bytes openerp/addons/base/images/avatar2.jpg | Bin 12549 -> 0 bytes openerp/addons/base/images/avatar3.jpg | Bin 12161 -> 0 bytes openerp/addons/base/images/avatar4.jpg | Bin 11921 -> 0 bytes openerp/addons/base/images/avatar5.jpg | Bin 11789 -> 0 bytes openerp/addons/base/images/avatar6.jpg | Bin 8128 -> 0 bytes openerp/addons/base/res/res_users.py | 4 ++-- openerp/addons/base/static/src/img/avatar0.png | Bin 0 -> 6910 bytes openerp/addons/base/static/src/img/avatar1.png | Bin 0 -> 5279 bytes openerp/addons/base/static/src/img/avatar2.png | Bin 0 -> 5340 bytes openerp/addons/base/static/src/img/avatar3.png | Bin 0 -> 5317 bytes openerp/addons/base/static/src/img/avatar4.png | Bin 0 -> 5323 bytes openerp/addons/base/static/src/img/avatar5.png | Bin 0 -> 5374 bytes openerp/addons/base/static/src/img/avatar6.png | Bin 0 -> 5452 bytes 15 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 openerp/addons/base/images/avatar0.jpg delete mode 100644 openerp/addons/base/images/avatar1.jpg delete mode 100644 openerp/addons/base/images/avatar2.jpg delete mode 100644 openerp/addons/base/images/avatar3.jpg delete mode 100644 openerp/addons/base/images/avatar4.jpg delete mode 100644 openerp/addons/base/images/avatar5.jpg delete mode 100644 openerp/addons/base/images/avatar6.jpg create mode 100644 openerp/addons/base/static/src/img/avatar0.png create mode 100644 openerp/addons/base/static/src/img/avatar1.png create mode 100644 openerp/addons/base/static/src/img/avatar2.png create mode 100644 openerp/addons/base/static/src/img/avatar3.png create mode 100644 openerp/addons/base/static/src/img/avatar4.png create mode 100644 openerp/addons/base/static/src/img/avatar5.png create mode 100644 openerp/addons/base/static/src/img/avatar6.png diff --git a/openerp/addons/base/images/avatar0.jpg b/openerp/addons/base/images/avatar0.jpg deleted file mode 100644 index 1078135d040e0b31959d17d02a77677030c09782..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9916 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 IICB4g0PvdiKL7v# diff --git a/openerp/addons/base/images/avatar1.jpg b/openerp/addons/base/images/avatar1.jpg deleted file mode 100644 index 4746731da71afa466e96ccfb0111936a59ee6f35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12294 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 R>f8B$bMF89EBI5Y{{g?``yBuP diff --git a/openerp/addons/base/images/avatar2.jpg b/openerp/addons/base/images/avatar2.jpg deleted file mode 100644 index 58a84c3d499a7d7b750c5e76a040b57127fec05c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12549 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 N;^+VQqs&6@{{S`JK=l9s diff --git a/openerp/addons/base/images/avatar5.jpg b/openerp/addons/base/images/avatar5.jpg deleted file mode 100644 index ee341becb756a5394828e021ea2da5a9d31f687f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11789 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 diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index b8a4306b137..fbd4848439a 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -234,7 +234,7 @@ class users(osv.osv): img = Image.open(image_stream) img.thumbnail((height, width), Image.ANTIALIAS) img_stream = StringIO.StringIO() - img.save(img_stream, "JPEG") + img.save(img_stream, "PNG") return img_stream.getvalue().encode('base64') def _get_avatar(self, cr, uid, ids, name, args, context=None): @@ -391,7 +391,7 @@ class users(osv.osv): def _get_avatar(self, cr, uid, context=None): # default avatar file name: avatar0 -> avatar6.jpg, choose randomly - avatar_path = openerp.modules.get_module_resource('base', 'images', 'avatar%d.jpg' % random.randint(0, 6)) + avatar_path = openerp.modules.get_module_resource('base', 'static/src/img', 'avatar%d.png' % random.randint(0, 6)) return self._avatar_resize(cr, uid, open(avatar_path, 'rb').read().encode('base64'), context=context) _defaults = { diff --git a/openerp/addons/base/static/src/img/avatar0.png b/openerp/addons/base/static/src/img/avatar0.png new file mode 100644 index 0000000000000000000000000000000000000000..2bcc7c8d2e477a359296fbb8461c6cdb091dfdaf GIT binary patch literal 6910 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 xwXyaIe;sqAYZA7q`7>>~yf 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 TT)_e7i6DI)W9l>Ge<|B25LPNPs9DdI%!D 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 literal 0 HcmV?d00001 diff --git a/openerp/addons/base/static/src/img/avatar4.png b/openerp/addons/base/static/src/img/avatar4.png new file mode 100644 index 0000000000000000000000000000000000000000..1b2a99f05c314245013d41b663059fc87e126684 GIT binary patch literal 5323 zcma)AcQ{;I*B>F7i86>Tql=aai4dc^dY1@75IqFp=p|}qn5&H-YLtlJ>NR?uQ6g@X z2qNl`7!oCV=R59w?)!f4^SsaZe1Dwh?6cQdYp=cbD!;X(?&@pMP_k1(AP^cYO;tk( zgv{yufn5M+cCfq8!55jAp@uS~d;qZweq07L&AcEGDu(li43d$_3Qj`3we-}WQ{=g(Yb6^CoEWCNvzM`SvNoFyx$T z5l=GW)K$iJJR5_oQ+u#!g$@7AAUe4JlLkOx>|t5KldpMJC4TnRz|Z}qE>c_C2Yc~h zCnMN!DJwk>g0;cfG{qsKpt#towKc?hCGxlZ=D5iu**#KX-&=mI0rf~w6!nLfHfAPe zCifYy?R?llAJmu4p4GVCxf-Yb>cB~#mm9G}xJRuw!l<^~$rJmoWJM;a|NE6FidQW7 z@HQIuWbJ%YbGC;z4Lc3N>qM4*z0Q4-ad14Ua3(St`df-aXWv77IL;`~6d7sN zaEDHDQ>wtL(V{<|7Ek6kTKV)@NQgq9(|sW1R}XrfhK42~wv&U}?0IK}dhT7AktBvL zfu-VAPL5yO=)M~t0m=eMFL{lbB7Ob0R#uQIy&Wgfn*r2|4Y|d|C)4p&>~NR$#vp}3Hf8}h@C(wsu=TW4G>hIQbzr<0d*n`<~T~GZ0|0| zq&QT;(P0zrl@z4Sq0w8rnU?i#S#!~b0&oe(b?0~5k|`|mwMB+Sur(VV1kfgTqyOtx z^Hyn3wEl5}bw#`D2x#KjSPdZ2e6gN~&G=4B%pUsn#Eqi1v)GtH7Nd6$ zTX)LLO|iyb=$p)pjXRf_@bn!X3nw*dV>Y90o6FU68Mu%+R*g^zg93?c^Fim*COK_&cL2gkKyu^YylqL(@i%d$M^KoGKxQ|{=Oqiv- z;mhod%grm~yPdW6K=!lZ$4YosVo)h-occt~O^=&y9T(N^vC6=(6^<=;HDL*;>WKWM z*Uv&!{IWL)6ndy2SvOSbja)PiH$8{oby(s?v~ftC9tlz*)p`@`@I=Q*8z3$~>g}V( znVZz0G4{Q33`JATqD70we?BK5Foe{jmsE;^h-t$jBNU$wDoAsDXV`A#e$zD%d#Yw8 zJdqF_?e&don&1_C89TcxT=&!^qsOq)96XR)ZfOO=?Y?{^!^ZBXmJ#)>^zgITtI9CT zakFT*$veSRL{J$#8E)o}QD?*gH{x`nj1D&g%+O!P6A$cRJh~%OC+0RLc~BhZEeb)C zrq-j!!O!XpZe_Pd`z*z6hZ~}F3(`?7@qBr$MkS-B6!_mzbMW!_D{#e|dR}gk>q-J} zeE2R3`vTb?_>GpgRDJMxw7;dltr>;-nkS}ol1@LCn`#&@rpnuu5k*)qXJXFnWv7XR zgL0HmFpbxyDcw~~GYegm#9wzN>!@mc#&UZzw`LJ|J_IKmT4)rweil-^Wevv@pKA2F zSxN9Kp$o43LrI{Yy zwl|mI)hX&|e;F%y(mz{cyiDpM!xOdKIqedT(0bs~mFW8EF5c~k>JEVf;8#90wc%3^ z04ev#S0q|bL0}p;0bV)`c}ZtYJL@3~3WNTu1pHGh{+-Xyi^X5$^|^sSI(P#!9BW2_ z*F()ce>$1iMTrK&DrCcej@~r|-wZWw1T_ahdVf_eBo6Q&Yh$>Nyf7+&07%)bEe55E zwpFY#N~o3}i&l%lwkPyasuZ*`f(TBgICV3OfTn?miyvGg;@z+h#9Ky~kK5I&b9*&h3*G9F-yQuQg zI~?(s4Bu|w@1sC-5`UeF=v=`{2MQ->R>Cj@T9nDS&XlPpYTr201;KU=kxfFpiRreL zldYF3=oL`TrPENqjIEc(F7ayxev_pE{jj`AMi>PO52_wY{D%0UQQuenCodiROj95U zsZ0y5*F%FRLO&7^NVR%UmER;`SOW<$@`ckwx1-TXak)q|uUXI6s>K+7ZCMYdzk<+S2&saMB_d3^t)FQ7`?nZ8@6w({;sN=-{DiCWgXr zFYlP!LmpwEG@w3FzYvV3G|pFZS@9S`y^4ke`}eo5Ql+ym=7T`**&6cbwWQ|ABE@>1 zduILSfn3ax*}^V=Vbf*opx^aG{wnk3(r0_(UGzA}ipkpX=1ra9-v&6U5Ods!@Gmd& z_+G9i4ft4{e=5wD!FZgTXKjRKcvJhUU>H83=47Ic@AWLi?3Y41oDvL67_md}T9$lW z^J}Pz11S36y^1u&NX}2)A;J)DDVBT=NA^f&yCh}Q1%5_KHD3CYa6hwXV=o*-l@<>o z+yzQ!9VhTCu=I&XW1eMkSZ-h!Ib}l*^Z;@73;lwDt_e z1v)midfBwLNL&# z%20y?U5UF{X`YW7yA&dT*OFWxe0{I$JUiS;^9n-;QxZF{nPQ)Ed9v4PBuF2H!LuUQ zSuydi8rlS-oEu^KgD-*KrvjPzma3n#(b8 zEs;(+b~1?{4ZLopRZncde69+%QU}g8{g{hBGC@qZrhrN+H52Eq81i(1*?xT}fe4^u$L$((%*BJRTUJeyeF^vQ;iD@i3c(tHBA?@&Em*36RvY3G^IvEe%v=8p z&Vs}L3k?4!d76*} zW>OvsG5XE~C~UV5bBq1%V5TqYpEcbfnH6vUx`28_f+|9J{yp}vR4+c=D zHa1>ADfRGPxy0-^T6?7LD4uRF&IZSVfBfx+&9B%KF(W90VA}N2z z<6{q!WChdc4dlTHC2Lo38A-RYQ}krl5D0`RSq+p)4t0Muqgp~+dxFE|j348(oNR2w z8EHJRoV}?$RXcxQhs#m#d1=em=b@n&UWX~8+z2k=2vcvh7j$n7ivVu&7!IziFT44f z$o?2B<4)=;Ljdx0E~^(PDn3N7CriHwzcwAbvYm70h0GbmD)VS1zSnpyh+DkvV~dsA z8oc!N-h_`pYJazFRTvl9<-4edqKBnMBHulwPefAfI^HFj3o0BGxr!uHu8g3Mxo{~4 zwZl$A(VGULB^$aNrNL*LXequ4SKo~h^aVpYMQq-8zRy0brbq#+Q;PPDC8STUk!UK| zb)gPmT_$QHwYF97Z~F`xAL;9I9QW(WWPw12mMb#v`*evxh>m<^g8gg1Sb0YWv)#Q( zQV?s{d_r|0IgwDR#SpPWD5lEs>6_wo9&}d=D z^;gWzR|T`$ACj*xdNu;6mH3~%EiAZ{qakn0afus&P7LiCtU=$i3OySw; z8E~Sz$}pnb;{6ecwd>&|Fe&ZHy-YlB6$8D`=EH&76>V?J2aMkv6^p&fDNb3Hz`l;O zD~9I8Ey~ESL|uI3dORVY9g6)x~!X+U@49g!zA}2GBB63;?GA<=`b@dFA)um$Y6YAdYsqX0o zW=Q6M$6P~iU2_m@Y)@vwWVzkLmkm%46NjB7s0nE~IgSr5Ap06GNG51fzh|4u1`SH` zew1rkX3`i$<#hk)p6s%>3}?KQmCZ!z^KDT?%CtxRBS;WDHgbfNuY_x@$? zzzxWJ31D&B(Wae`AMp;u4Xw%E=&!DcSpL2}+zr&Wc)qg`J?kdQ#M47%+-9SS3VZUZ zk+Oapd)!>pStw+`2y={LP?fe=7$>myypOc?(dA1sV}gF9-NtMM$T=R$=pG!S!m7lj z8?Wa&Bc7-$(EJ%UfU(=)xR!4yygBa^&`x$t#sh@s42q%vlKdCO zV-bW@zKOa);CJ#KMYXs2+z>ba8A9&$GGi9%;> zSy}W*T9v`a8eb)A$!v46@*ut5Prax`5-Gs_IvwEU<@MlevF43ej69ep8FCVgN-Mt} zTaKq@%D(NF5%_X`lamDJ$-}HsvdXuguaC>d z9~`_l$u}wCXjv67fp#Q2WsI@IcZDG-engT3$@kf0ol1%WTjafG&S^eml`TtrHGTG* z=qS4liVKhjhGiyM4A&Fs=8Jk^(6D6r6aVgNB#-L*o3S5~0!%2BWUtI-$9LN%z7ZkBlhr|nDHo*>c=rg=Qqxy0SGIos EKfVga!vFvP literal 0 HcmV?d00001 diff --git a/openerp/addons/base/static/src/img/avatar5.png b/openerp/addons/base/static/src/img/avatar5.png new file mode 100644 index 0000000000000000000000000000000000000000..0f6c416ecf017631a4f95d2fe8eda439a6e41cf2 GIT binary patch literal 5374 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 M54BZFm8@R<2b>c9f&c&j literal 0 HcmV?d00001 diff --git a/openerp/addons/base/static/src/img/avatar6.png b/openerp/addons/base/static/src/img/avatar6.png new file mode 100644 index 0000000000000000000000000000000000000000..d6a18c2779e4bf8b582183a483a22e612f5d87c1 GIT binary patch literal 5452 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 literal 0 HcmV?d00001 From 49d8f42586feb41f8c8205177cbd83320122b199 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 30 Mar 2012 10:34:20 +0200 Subject: [PATCH 102/102] [IMP] Typo in comment bzr revid: tde@openerp.com-20120330083420-5swr4h9ihayi7vpu --- openerp/addons/base/res/res_users.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index fbd4848439a..6d567e6d4b8 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -390,7 +390,7 @@ class users(osv.osv): return result def _get_avatar(self, cr, uid, context=None): - # default avatar file name: avatar0 -> avatar6.jpg, choose randomly + # default avatar file name: avatar0 -> avatar6.png, choose randomly avatar_path = openerp.modules.get_module_resource('base', 'static/src/img', 'avatar%d.png' % random.randint(0, 6)) return self._avatar_resize(cr, uid, open(avatar_path, 'rb').read().encode('base64'), context=context)