diff --git a/debian/control b/debian/control index a4c1b050c0a..74cd027427a 100644 --- a/debian/control +++ b/debian/control @@ -47,7 +47,13 @@ Depends: Conflicts: tinyerp-server, openerp-server, openerp-web Replaces: tinyerp-server, openerp-server, openerp-web Recommends: - graphviz, ghostscript, postgresql, python-matplotlib, poppler-utils + antiword, + graphviz, + ghostscript, + postgresql, + python-gevent, + python-matplotlib, + poppler-utils Description: OpenERP Enterprise Resource Management OpenERP, previously known as TinyERP, is a complete ERP and CRM. The main features are accounting (analytic and financial), stock management, sales and diff --git a/openerp/addons/base/i18n/ab.po b/openerp/addons/base/i18n/ab.po index 477c2118053..e421e451371 100644 --- a/openerp/addons/base/i18n/ab.po +++ b/openerp/addons/base/i18n/ab.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:37+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:29+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/af.po b/openerp/addons/base/i18n/af.po index 70c82f943bd..b318a74a735 100644 --- a/openerp/addons/base/i18n/af.po +++ b/openerp/addons/base/i18n/af.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:38+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:30+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/am.po b/openerp/addons/base/i18n/am.po index eb75e6b90f2..d6adbc8b744 100644 --- a/openerp/addons/base/i18n/am.po +++ b/openerp/addons/base/i18n/am.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:38+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:30+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ar.po b/openerp/addons/base/i18n/ar.po index 53ffccdb422..56bb0e1ff4f 100644 --- a/openerp/addons/base/i18n/ar.po +++ b/openerp/addons/base/i18n/ar.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: 2013-10-11 04:38+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:30+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/bg.po b/openerp/addons/base/i18n/bg.po index 01c1f3b2aad..c1558a5efb3 100644 --- a/openerp/addons/base/i18n/bg.po +++ b/openerp/addons/base/i18n/bg.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: 2013-10-11 04:39+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:31+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/bs.po b/openerp/addons/base/i18n/bs.po index 3f5a98859fd..5d6bbdbca4a 100644 --- a/openerp/addons/base/i18n/bs.po +++ b/openerp/addons/base/i18n/bs.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: 2013-10-11 04:39+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:31+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -1137,6 +1137,11 @@ msgid "" "If Value type is selected, the value will be used directly without " "evaluation." msgstr "" +"Izraz koji sadrži specifikaciju vrijednosti. \n" +"Kada je tip formule izabran, ovo polje može biti Python izraz koje može da " +"koristi iste vrijednosti kao kod uslovnih polja serverskih akcija.\n" +"Ako je tip vrijednosti izabran, vrijednost će biti korištena direktno bez " +"procjene." #. module: base #: model:res.country,name:base.ad @@ -1767,7 +1772,7 @@ msgid "" "quotations, supplier invoices, etc..." msgstr "" "Pomaže upravljati sa procesima vezanim za nabavu kao npr. zahtjevi za " -"ponudama, računima dobavljača i sl." +"predračunima, računima dobavljača i sl." #. module: base #: help:res.partner,website:0 @@ -1833,7 +1838,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_portal_project_issue msgid "Portal Issue" -msgstr "Prijave problema na portalu" +msgstr "Prijave pitanja na portalu" #. module: base #: model:ir.ui.menu,name:base.menu_tools @@ -1853,8 +1858,8 @@ msgid "" "Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" -"Ručno: pokrenuto ručno\n" -"Automatski: pokreće se kada je god sistem rekonfigurisan\n" +"Ručno: pokreće se ručno\n" +"Automatski: pokreće se uvijek kada je sistem ponovno konfigurisan\n" "Pokreni ručno jednom: nakon što se ručno pokrene, automatski je postavljeno " "na Gotovo" @@ -1955,6 +1960,9 @@ msgid "" "simplified payment mode encoding, automatic picking lists generation and " "more." msgstr "" +"Omogućava Vam da dobijete najviše od POS-a sa brzim šifriranjem, " +"pojednostavljenim modelom šifriranja plaćanja, automatsko generisanje liste " +"preuzimanja robe sa skladišta i mnogo više." #. module: base #: code:addons/base/ir/ir_fields.py:164 @@ -2671,7 +2679,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_auth_oauth_signup msgid "Signup with OAuth2 Authentication" -msgstr "" +msgstr "Prijavljivanje sa OAuth2 autentifikacijom" #. module: base #: selection:ir.model,state:0 @@ -3243,7 +3251,7 @@ msgstr "" #. module: base #: field:res.company,rml_header1:0 msgid "Company Tagline" -msgstr "" +msgstr "Slogan kompanije" #. module: base #: code:addons/base/res/res_users.py:674 @@ -3306,7 +3314,7 @@ msgstr "Nepoznat tip izvještaja: %s" #. module: base #: model:ir.module.module,summary:base.module_hr_expense msgid "Expenses Validation, Invoicing" -msgstr "" +msgstr "Validacija troškova, Fakturisanje" #. module: base #: model:ir.module.module,description:base.module_l10n_be_hr_payroll_account @@ -3325,7 +3333,7 @@ msgstr "Armenija" #. module: base #: model:ir.module.module,summary:base.module_hr_evaluation msgid "Periodical Evaluations, Appraisals, Surveys" -msgstr "" +msgstr "Periodične procjene, Ocjene, Ankete (istraživanja)" #. module: base #: model:ir.actions.act_window,name:base.ir_property_form @@ -4152,7 +4160,7 @@ msgstr "Crna Gora" #. module: base #: model:ir.module.module,shortdesc:base.module_fetchmail msgid "Email Gateway" -msgstr "" +msgstr "Email mrežni prolaz" #. module: base #: code:addons/base/ir/ir_mail_server.py:470 @@ -4261,7 +4269,7 @@ msgstr "Linhenštajn" #. module: base #: model:ir.module.module,shortdesc:base.module_project_issue_sheet msgid "Timesheet on Issues" -msgstr "Vremenski listovi na problemima" +msgstr "Vremenski listovi na pitanjima" #. module: base #: model:res.partner.title,name:base.res_partner_title_ltd @@ -4378,7 +4386,7 @@ msgstr "Organizacija događaja" #: model:ir.ui.menu,name:base.menu_partner_form #: view:res.partner:0 msgid "Customers" -msgstr "Kupac" +msgstr "Kupci" #. module: base #: model:res.country,name:base.au @@ -5110,7 +5118,7 @@ msgstr "Preskoči" #. module: base #: model:ir.module.module,shortdesc:base.module_event_sale msgid "Events Sales" -msgstr "" +msgstr "Prodaja na događajima" #. module: base #: model:res.country,name:base.ls @@ -5253,6 +5261,18 @@ msgid "" " \n" "%(country_code)s: the code of the country" msgstr "" +"Možete ovde da odredite najčešći format za adresu koja pripada ovoj državi.\n" +"\n" +"Možete da koristite python-style šablon niza karaktera (na primjer, " +"koristite '%(street)s' da prikažete polje 'street') plus\n" +" \n" +"%(state_name)s: the name of the state\n" +" \n" +"%(state_code)s: šifra republike\n" +" \n" +"%(country_name)s: naziv države\n" +" \n" +"%(country_code)s: šifra države" #. module: base #: model:res.country,name:base.mu @@ -5434,7 +5454,7 @@ msgstr "Datum" #. module: base #: model:ir.module.module,shortdesc:base.module_event_moodle msgid "Event Moodle" -msgstr "" +msgstr "Moodle Događaj" #. module: base #: model:ir.module.module,description:base.module_email_template @@ -5723,7 +5743,7 @@ msgstr "" #. module: base #: model:res.groups,name:base.group_sale_salesman_all_leads msgid "See all Leads" -msgstr "Vidi sve Lead-ove" +msgstr "Vidi sve potencijale" #. module: base #: model:res.country,name:base.ci @@ -6183,7 +6203,7 @@ msgid "" "a negative number indicates no limit." msgstr "" "Koliko pute je pozvana metoda,\n" -"negativan broj(-1) bez limita." +"negativan broj(-1) znači bez limita." #. module: base #: field:res.partner.bank.type.field,bank_type_id:0 @@ -7513,7 +7533,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_report_intrastat msgid "Intrastat Reporting" -msgstr "" +msgstr "Izvještaji uvoznih/izvoznih deklaracija" #. module: base #: code:addons/base/res/res_users.py:131 @@ -8108,6 +8128,14 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Kliknite da dodate kontakt u Adresar.\n" +"

\n" +" OpenERP Vam pomaže da pratite sve aktivnosti vezane\n" +" za kupca: diskusije, istorija poslovnih prilika, dokumenata " +"itd.\n" +"

\n" +" " #. module: base #: model:ir.actions.act_window,name:base.bank_account_update @@ -8691,7 +8719,7 @@ msgstr "Izvještaj introspekcije na objektima" #. module: base #: model:ir.module.module,shortdesc:base.module_web_analytics msgid "Google Analytics" -msgstr "" +msgstr "Google Analitika" #. module: base #: model:ir.module.module,description:base.module_note @@ -8719,17 +8747,17 @@ msgstr "" #. module: base #: field:ir.translation,name:0 msgid "Translated field" -msgstr "" +msgstr "Prevedeno polje" #. module: base #: model:ir.module.module,shortdesc:base.module_stock_location msgid "Advanced Routes" -msgstr "" +msgstr "Napredne Rute" #. module: base #: model:ir.module.module,shortdesc:base.module_pad msgid "Collaborative Pads" -msgstr "" +msgstr "Kolaborativne bilježnice" #. module: base #: model:res.country,name:base.np @@ -8739,7 +8767,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_document_page msgid "Document Page" -msgstr "" +msgstr "Stranica Dokumenta" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_ar @@ -8749,48 +8777,48 @@ msgstr "" #. module: base #: field:ir.module.module,description_html:0 msgid "Description HTML" -msgstr "" +msgstr "Opis HTML" #. module: base #: help:res.groups,implied_ids:0 msgid "Users of this group automatically inherit those groups" -msgstr "" +msgstr "Korisnici ovih grupa automatski nasljeđuju one grupe" #. module: base #: model:ir.module.module,summary:base.module_note msgid "Sticky notes, Collaborative, Memos" -msgstr "" +msgstr "Ljepljive zabilješke, Kolaboracije, Podsjetnici" #. module: base #: model:ir.module.module,shortdesc:base.module_hr_attendance #: model:res.groups,name:base.group_hr_attendance msgid "Attendances" -msgstr "" +msgstr "Prisutnosti" #. module: base #: model:ir.module.module,shortdesc:base.module_warning msgid "Warning Messages and Alerts" -msgstr "" +msgstr "Poruke upozorenja i alarmi" #. module: base #: model:ir.actions.act_window,name:base.action_ui_view_custom #: model:ir.ui.menu,name:base.menu_action_ui_view_custom #: view:ir.ui.view.custom:0 msgid "Customized Views" -msgstr "" +msgstr "Prilagođeni Pogledi" #. module: base #: view:base.module.import:0 #: model:ir.actions.act_window,name:base.action_view_base_module_import msgid "Module Import" -msgstr "" +msgstr "Uvoz modula" #. module: base #: model:ir.actions.act_window,name:base.act_values_form_action #: model:ir.ui.menu,name:base.menu_values_form_action #: view:ir.values:0 msgid "Action Bindings" -msgstr "" +msgstr "Povezivanje Akcija" #. module: base #: help:res.partner,lang:0 @@ -8798,6 +8826,8 @@ msgid "" "If the selected language is loaded in the system, all documents related to " "this contact will be printed in this language. If not, it will be English." msgstr "" +"Ako je odabrani jezik učitan u sistem, svi dokumenti povezani sa ovim " +"kontaktom će se štampati na ovom jeziku. Ako ne, biti će na Engleskom." #. module: base #: model:ir.module.module,description:base.module_hr_evaluation @@ -8835,7 +8865,7 @@ msgstr "" #. module: base #: model:ir.ui.menu,name:base.menu_view_base_module_update msgid "Update Modules List" -msgstr "" +msgstr "Nadogradi listu modula" #. module: base #: code:addons/base/module/module.py:359 @@ -8843,11 +8873,13 @@ msgstr "" msgid "" "Unable to upgrade module \"%s\" because an external dependency is not met: %s" msgstr "" +"Nije se mogao nadograditi modul \"%s\" jer vanjska ovisnost nije ispunjena: " +"%s" #. module: base #: model:ir.module.module,shortdesc:base.module_account msgid "eInvoicing" -msgstr "" +msgstr "eFakturisanje" #. module: base #: code:addons/base/res/res_users.py:171 @@ -8858,12 +8890,16 @@ msgid "" "sure to save and close all forms before switching to a different company. " "(You can click on Cancel in the User Preferences now)" msgstr "" +"Molimo Vas da imate na umu da trenutno prikazani dokumenti možda nisu " +"relevantni nakon prelaska na drugu kompaniju. Ako imate ne sačuvane izmjene, " +"molimo da sačuvate i zatvorite sve fome prije prelaska u drugu kompaniju. " +"(Možete kliknuti na Otkaži u korisničkim postavkama)" #. module: base #: code:addons/orm.py:2818 #, python-format msgid "The value \"%s\" for the field \"%s.%s\" is not in the selection" -msgstr "" +msgstr "Vrijednost \"%s\" za polje\"%s.%s\" nije u odabiru" #. module: base #: view:ir.actions.configuration.wizard:0 @@ -8889,7 +8925,7 @@ msgstr "" #. module: base #: view:res.lang:0 msgid "%j - Day of the year [001,366]." -msgstr "" +msgstr "%j - Dan u godini [001,366]." #. module: base #: selection:base.language.install,lang:0 @@ -8899,7 +8935,7 @@ msgstr "" #. module: base #: field:res.currency,position:0 msgid "Symbol Position" -msgstr "" +msgstr "Pozicija Simbola" #. module: base #: model:ir.module.module,description:base.module_l10n_de @@ -8917,7 +8953,7 @@ msgstr "" #. module: base #: field:ir.actions.report.xml,attachment_use:0 msgid "Reload from Attachment" -msgstr "" +msgstr "Ponovno učitaj iz Zakačke" #. module: base #: model:res.country,name:base.mx @@ -8933,11 +8969,15 @@ msgid "" "\n" "(Document type: %s)" msgstr "" +"Za ovu vrstu dokumenta, možete pristupiti samo zapisima koje ste Vi " +"kreirali.\n" +"\n" +"(Document type: %s)" #. module: base #: view:base.language.export:0 msgid "documentation" -msgstr "" +msgstr "dokumentacija" #. module: base #: help:ir.model,osv_memory:0 @@ -8945,17 +8985,19 @@ msgid "" "This field specifies whether the model is transient or not (i.e. if records " "are automatically deleted from the database or not)" msgstr "" +"Ovo polje označava dali je model prolazni ili nije (npr.: dali su zapisi " +"automatski obrisani iz baze ili nisu)" #. module: base #: code:addons/base/ir/ir_mail_server.py:445 #, python-format msgid "Missing SMTP Server" -msgstr "" +msgstr "Nedostaje SMTP Server" #. module: base #: sql_constraint:ir.translation:0 msgid "Language code of translation item must be among known languages" -msgstr "" +msgstr "Šifra jezika stavke koja se prevodi mora biti među poznatim jezicima" #. module: base #: field:base.language.export,data:0 @@ -8966,7 +9008,7 @@ msgstr "Datoteka" #. module: base #: model:ir.actions.act_window,name:base.action_view_base_module_upgrade_install msgid "Module Upgrade Install" -msgstr "" +msgstr "Instalacija Nadogradnje Modula" #. module: base #: model:ir.model,name:base.model_ir_actions_configuration_wizard @@ -8982,12 +9024,12 @@ msgstr "%b - Skraćen naziv mjeseca." #: code:addons/base/ir/ir_model.py:729 #, python-format msgid "Sorry, you are not allowed to delete this document." -msgstr "" +msgstr "Žao nam je, nije Vam dozvoljeno brisanje ovog dokumenta." #. module: base #: constraint:ir.rule:0 msgid "Rules can not be applied on the Record Rules model." -msgstr "" +msgstr "Pravila ne mogu biti primjenjena na modelu Pravila Zapisa." #. module: base #: field:res.partner,supplier:0 @@ -8999,12 +9041,12 @@ msgstr "Dobavljač" #: view:ir.actions.server:0 #: selection:ir.actions.server,state:0 msgid "Multi Actions" -msgstr "" +msgstr "Višeakcijske Akcije" #. module: base #: model:ir.module.module,summary:base.module_mail msgid "Discussions, Mailing Lists, News" -msgstr "" +msgstr "Diskusije, Mailing Liste, Novosti" #. module: base #: model:ir.module.module,description:base.module_fleet @@ -9030,7 +9072,7 @@ msgstr "" #. module: base #: field:multi_company.default,company_dest_id:0 msgid "Default Company" -msgstr "" +msgstr "Zadana Kompanija" #. module: base #: selection:base.language.install,lang:0 @@ -9040,12 +9082,12 @@ msgstr "" #. module: base #: help:ir.ui.view,xml_id:0 msgid "ID of the view defined in xml file" -msgstr "" +msgstr "ID pogleda definisan u xml fajlu" #. module: base #: model:ir.model,name:base.model_base_module_import msgid "Import Module" -msgstr "" +msgstr "Uvezi Modul" #. module: base #: model:res.country,name:base.as @@ -9055,28 +9097,28 @@ msgstr "" #. module: base #: view:ir.attachment:0 msgid "My Document(s)" -msgstr "" +msgstr "Moj(i) Dokument(i)" #. module: base #: help:ir.actions.act_window,res_model:0 msgid "Model name of the object to open in the view window" -msgstr "" +msgstr "Ime Modela objekta za otvaranje u prozoru pogleda" #. module: base #: field:ir.model.fields,selectable:0 msgid "Selectable" -msgstr "" +msgstr "Može se izabrati" #. module: base #: code:addons/base/ir/ir_mail_server.py:222 #, python-format msgid "Everything seems properly set up!" -msgstr "" +msgstr "Čini se da je sve pravilno postavljeno!" #. module: base #: view:res.request.link:0 msgid "Request Link" -msgstr "" +msgstr "Veza Zahtjeva" #. module: base #: view:ir.attachment:0 @@ -9088,24 +9130,24 @@ msgstr "URL" #. module: base #: help:res.country,name:0 msgid "The full name of the country." -msgstr "" +msgstr "Puno ime države" #. module: base #: selection:ir.actions.server,state:0 msgid "Iteration" -msgstr "" +msgstr "Ponavljanje" #. module: base #: code:addons/orm.py:4246 #: code:addons/orm.py:4347 #, python-format msgid "UserError" -msgstr "" +msgstr "Korisnička Greška" #. module: base #: model:ir.module.module,summary:base.module_project_issue msgid "Support, Bug Tracker, Helpdesk" -msgstr "" +msgstr "Podrška, Praćenje grešaka, Helpdesk" #. module: base #: model:res.country,name:base.ae @@ -9119,28 +9161,31 @@ msgid "" "related to a model that uses the need_action mechanism, this field is set to " "true. Otherwise, it is false." msgstr "" +"Ako je akcija ulaska menija act_window akcija, i ako je ova akcija povezana " +"sa modelom koji koristi need_action mehanizam, ovo polje je postavljeno na " +"tačno. U suprotom je ne tačno." #. module: base #: code:addons/orm.py:3961 #, python-format msgid "" "Unable to delete this document because it is used as a default property" -msgstr "" +msgstr "Ne može se obrisati ovaj dokument jer se koristi kao zadana osobina" #. module: base #: model:res.partner.category,name:base.res_partner_category_5 msgid "Silver" -msgstr "" +msgstr "Srebrna" #. module: base #: field:res.partner.title,shortcut:0 msgid "Abbreviation" -msgstr "" +msgstr "Skraćenica" #. module: base #: model:ir.ui.menu,name:base.menu_crm_case_job_req_main msgid "Recruitment" -msgstr "" +msgstr "Regrutovanje" #. module: base #: model:ir.module.module,description:base.module_l10n_gr @@ -9156,7 +9201,7 @@ msgstr "" #. module: base #: view:ir.values:0 msgid "Action Reference" -msgstr "" +msgstr "Referenca Akcije" #. module: base #: model:ir.module.module,description:base.module_auth_ldap @@ -9273,23 +9318,25 @@ msgstr "" msgid "" "New column name must still start with x_ , because it is a custom field!" msgstr "" +"Novo ime kolone još uvijek mora da počinje sa x_, jer je korisnički " +"definisano polje!" #. module: base #: model:ir.module.module,shortdesc:base.module_mrp_repair msgid "Repairs Management" -msgstr "" +msgstr "Upravljanje Popravkama" #. module: base #: model:ir.module.module,shortdesc:base.module_account_asset msgid "Assets Management" -msgstr "" +msgstr "Upravljanje Sredstvima" #. module: base #: view:ir.model.access:0 #: view:ir.rule:0 #: field:ir.rule,global:0 msgid "Global" -msgstr "" +msgstr "Opšte" #. module: base #: model:res.country,name:base.cz @@ -9299,7 +9346,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_claim_from_delivery msgid "Claim on Deliveries" -msgstr "" +msgstr "Zahtjev na Isporukama" #. module: base #: model:res.country,name:base.sb @@ -9311,7 +9358,7 @@ msgstr "" #: code:addons/orm.py:4685 #, python-format msgid "AccessError" -msgstr "" +msgstr "Pristupna Greška" #. module: base #: model:ir.module.module,description:base.module_web_gantt @@ -9325,19 +9372,19 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_base_status msgid "State/Stage Management" -msgstr "" +msgstr "Upravljanje Stanjima/Fazama" #. module: base #: model:ir.module.category,name:base.module_category_warehouse_management msgid "Warehouse" -msgstr "" +msgstr "Skladište" #. module: base #: field:ir.exports,resource:0 #: model:ir.module.module,shortdesc:base.module_resource #: field:ir.property,res_id:0 msgid "Resource" -msgstr "" +msgstr "Resurs" #. module: base #: model:ir.module.module,description:base.module_process @@ -9358,28 +9405,28 @@ msgstr "" #. module: base #: view:res.lang:0 msgid "8. %I:%M:%S %p ==> 06:25:20 PM" -msgstr "" +msgstr "8. %I:%M:%S %p ==> 06:25:20 PM" #. module: base #: view:ir.filters:0 msgid "Filters shared with all users" -msgstr "" +msgstr "Filteri djeljeni sa svim korisnicima" #. module: base #: view:ir.translation:0 #: model:ir.ui.menu,name:base.menu_translation msgid "Translations" -msgstr "" +msgstr "Prevodi" #. module: base #: view:ir.actions.report.xml:0 msgid "Report" -msgstr "" +msgstr "Izvještaj" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_prof msgid "Prof." -msgstr "" +msgstr "Prof." #. module: base #: code:addons/base/ir/ir_mail_server.py:241 @@ -9389,11 +9436,14 @@ msgid "" "instead.If SSL is needed, an upgrade to Python 2.6 on the server-side should " "do the trick." msgstr "" +"Vaš OpenERP Server ne podržava SMTP-over-SSL. Možete koristiti STARTTLS " +"umjesto toga. Ako je SSL potreban, nadogradnja na Python 2.6 na strani " +"servera bi trebala biti dovoljna." #. module: base #: model:res.country,name:base.ua msgid "Ukraine" -msgstr "" +msgstr "Ukrajna" #. module: base #: code:addons/base/res/res_company.py:164 @@ -9402,17 +9452,17 @@ msgstr "" #: field:res.partner,website:0 #, python-format msgid "Website" -msgstr "" +msgstr "Web stranica" #. module: base #: selection:ir.mail_server,smtp_encryption:0 msgid "None" -msgstr "" +msgstr "Ništa" #. module: base #: model:ir.module.module,shortdesc:base.module_hr_holidays msgid "Leave Management" -msgstr "" +msgstr "Upravljanje odsutnostima" #. module: base #: model:res.company,overdue_msg:base.main_company @@ -9428,21 +9478,32 @@ msgid "" "Thank you in advance for your cooperation.\n" "Best Regards," msgstr "" +"Poštovani,\n" +"\n" +"uvidom u našu evidenciju utvrđeno je da imate otvorene dospjele stavke. " +"Detalji su u nastavku.\n" +"Ukoliko ste iznos podmirili, molimo Vas da zanemarite ovu obavijest. U " +"suprotnom Vas molimo da podmirite svoje dugovanje.\n" +"Ukoliko imate bilo kakvih pitanja ili nejasnoća, budite slobodni " +"kontaktirati nas.\n" +"\n" +"Unaprijed zahvaljujem na Vašoj suradnji.\n" +"Srdačan pozdrav," #. module: base #: view:ir.module.category:0 msgid "Module Category" -msgstr "" +msgstr "Kategorija modula" #. module: base #: model:res.country,name:base.us msgid "United States" -msgstr "" +msgstr "Sjedinjene Države" #. module: base #: view:ir.ui.view:0 msgid "Architecture" -msgstr "" +msgstr "Arhitektura" #. module: base #: model:res.country,name:base.ml @@ -9452,7 +9513,7 @@ msgstr "" #. module: base #: model:ir.ui.menu,name:base.menu_project_config_project msgid "Stages" -msgstr "" +msgstr "Faze" #. module: base #: selection:base.language.install,lang:0 @@ -9467,12 +9528,12 @@ msgstr "" #. module: base #: field:ir.cron,interval_number:0 msgid "Interval Number" -msgstr "" +msgstr "Broj intervala" #. module: base #: model:res.country,name:base.dz msgid "Algeria" -msgstr "" +msgstr "Alžir" #. module: base #: model:ir.module.module,description:base.module_portal_hr_employees @@ -9506,39 +9567,39 @@ msgstr "Korisnički interfejs" #. module: base #: model:ir.module.module,shortdesc:base.module_mrp_byproduct msgid "MRP Byproducts" -msgstr "" +msgstr "Nusproizvodi proizvodnje" #. module: base #: field:res.request,ref_partner_id:0 msgid "Partner Ref." -msgstr "" +msgstr "Referenca Partnera" #. module: base #: model:ir.module.module,shortdesc:base.module_hr_expense msgid "Expense Management" -msgstr "" +msgstr "Upravljanje troškovima" #. module: base #: field:ir.attachment,create_date:0 msgid "Date Created" -msgstr "" +msgstr "Datum Kreiranja" #. module: base #: help:ir.actions.server,trigger_name:0 msgid "The workflow signal to trigger" -msgstr "" +msgstr "Signal radnog toka za okidanje" #. module: base #: selection:base.language.install,state:0 #: selection:base.module.import,state:0 #: selection:base.module.update,state:0 msgid "done" -msgstr "" +msgstr "gotovo" #. module: base #: view:ir.actions.act_window:0 msgid "General Settings" -msgstr "" +msgstr "Opšte postavke" #. module: base #: model:ir.module.module,description:base.module_l10n_in @@ -9559,7 +9620,7 @@ msgstr "" #. module: base #: model:ir.ui.menu,name:base.menu_administration_shortcut msgid "Custom Shortcuts" -msgstr "" +msgstr "Prilagođene prečice" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_si @@ -9582,31 +9643,31 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_plugin msgid "CRM Plugins" -msgstr "" +msgstr "CRM Dodaci" #. module: base #: model:ir.actions.act_window,name:base.action_model_model #: model:ir.model,name:base.model_ir_model #: model:ir.ui.menu,name:base.ir_model_model_menu msgid "Models" -msgstr "" +msgstr "Modeli" #. module: base #: code:addons/base/module/module.py:499 #, python-format msgid "The `base` module cannot be uninstalled" -msgstr "" +msgstr "Modul 'base' nije moguće deinstalirati" #. module: base #: code:addons/base/ir/ir_cron.py:262 #, python-format msgid "Record cannot be modified right now" -msgstr "" +msgstr "Zapis se trenutno ne može mjenjati" #. module: base #: selection:ir.actions.todo,type:0 msgid "Launch Manually" -msgstr "" +msgstr "Pokreni ručno" #. module: base #: model:res.country,name:base.be @@ -9623,6 +9684,7 @@ msgstr "" #, python-format msgid "Sorry, you are not allowed to create this kind of document." msgstr "" +"Izvinjavamo se, ali nije Vam dozvoljeno da kreirate ovu vrstu dokumenta." #. module: base #: field:base.language.export,lang:0 @@ -9632,7 +9694,7 @@ msgstr "" #: view:res.lang:0 #: field:res.partner,lang:0 msgid "Language" -msgstr "" +msgstr "Jezik" #. module: base #: model:res.country,name:base.gm @@ -9649,40 +9711,40 @@ msgstr "" #: view:res.partner:0 #: field:res.users,company_ids:0 msgid "Companies" -msgstr "" +msgstr "Kompanije" #. module: base #: help:res.currency,symbol:0 msgid "Currency sign, to be used when printing amounts." -msgstr "" +msgstr "Kursne oznake, koje će se koristiti prilikom štampanja iznosa." #. module: base #: view:res.lang:0 msgid "%H - Hour (24-hour clock) [00,23]." -msgstr "" +msgstr "%H - Sat (24-satni) [00,23]." #. module: base #: field:ir.model.fields,on_delete:0 msgid "On Delete" -msgstr "" +msgstr "Pri brisanju" #. module: base #: code:addons/base/ir/ir_model.py:347 #, python-format msgid "Model %s does not exist!" -msgstr "" +msgstr "Ne postoji Model %s!" #. module: base #: model:ir.module.module,shortdesc:base.module_mrp_jit msgid "Just In Time Scheduling" -msgstr "" +msgstr "Baš na vrijeme Planiranje" #. module: base #: view:ir.actions.server:0 #: field:ir.actions.server,code:0 #: selection:ir.actions.server,state:0 msgid "Python Code" -msgstr "" +msgstr "Python Kod" #. module: base #: help:ir.actions.server,state:0 @@ -9719,13 +9781,13 @@ msgstr "" #: view:res.users:0 #: view:wizard.ir.model.menu.create:0 msgid "Cancel" -msgstr "" +msgstr "Otkaži" #. module: base #: code:addons/orm.py:1507 #, python-format msgid "Unknown database identifier '%s'" -msgstr "" +msgstr "Ne poznat identifikator baze '%s'" #. module: base #: selection:base.language.export,format:0 @@ -9781,7 +9843,7 @@ msgstr "" #. module: base #: model:res.country,name:base.nt msgid "Neutral Zone" -msgstr "" +msgstr "Neutralna Zona" #. module: base #: model:ir.module.module,description:base.module_portal_sale @@ -9816,27 +9878,27 @@ msgstr "" #: code:addons/base/ir/ir_fields.py:316 #, python-format msgid "external id" -msgstr "" +msgstr "vanjski id" #. module: base #: view:ir.model:0 msgid "Custom" -msgstr "" +msgstr "Prilagođeno" #. module: base #: model:ir.module.module,shortdesc:base.module_sale_margin msgid "Margins in Sales Orders" -msgstr "" +msgstr "Marža u prodajnim narudžbama" #. module: base #: model:ir.module.module,shortdesc:base.module_purchase msgid "Purchase Management" -msgstr "" +msgstr "Upravljanje nabavkom" #. module: base #: field:ir.module.module,published_version:0 msgid "Published Version" -msgstr "" +msgstr "Objavljena verzija" #. module: base #: model:res.country,name:base.is @@ -9847,7 +9909,7 @@ msgstr "" #: model:ir.actions.act_window,name:base.ir_action_window #: model:ir.ui.menu,name:base.menu_ir_action_window msgid "Window Actions" -msgstr "" +msgstr "Akcije prozora" #. module: base #: model:ir.module.module,description:base.module_portal_project_issue @@ -9863,7 +9925,7 @@ msgstr "" #. module: base #: view:res.lang:0 msgid "%I - Hour (12-hour clock) [01,12]." -msgstr "" +msgstr "%I - Sat (12-satni) [01,12]." #. module: base #: view:res.config:0 @@ -9878,7 +9940,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_auth_oauth msgid "OAuth2 Authentication" -msgstr "" +msgstr "OAuth2 Autentifikacija" #. module: base #: view:workflow:0 @@ -9889,11 +9951,17 @@ msgid "" "default value. If you don't do that, your customization will be overwrited " "at the next update or upgrade to a future version of OpenERP." msgstr "" +"Kada se prilagođava radni tok, molimo pazite da ne izmjenite postojeći čvor " +"ili strelicu, nego umjesto toga dodajte nove čvorove ili strelice. Ako baš " +"morate da izmjenite čvor ili strelicu, možete samo da mjenjate polja koja su " +"prazna ili postavljena na zadane vrijednosti. Ako se ne budete pridržavali " +"navedenog, vaše izmjene će biti prepisane prilikom sljedeće nadogradnje na " +"novu ili buduću verziju OpenERP-a." #. module: base #: report:ir.module.reference:0 msgid "Reports :" -msgstr "" +msgstr "Izvještaji :" #. module: base #: model:ir.module.module,description:base.module_multi_company @@ -9909,13 +9977,13 @@ msgstr "" #. module: base #: sql_constraint:res.currency:0 msgid "The currency code must be unique per company!" -msgstr "" +msgstr "Šifra valute mora biti jedinstvena na nivou kompanije!" #. module: base #: code:addons/base/module/wizard/base_export_language.py:39 #, python-format msgid "New Language (Empty translation template)" -msgstr "" +msgstr "Novi jezik (Prazan šablon prevoda)" #. module: base #: help:ir.actions.server,email:0 @@ -9924,6 +9992,9 @@ msgid "" "same values as for the condition field.\n" "Example: object.invoice_address_id.email, or 'me@example.com'" msgstr "" +"Izraz koji vraća e-mail adresu na koju se šalje. Može biti bazirano na istim " +"vrijednostima kao na uslovnim poljima.\n" +"Primjer: object.invoice_address_id.email, ili 'me@example.com'" #. module: base #: model:ir.module.module,description:base.module_project_issue_sheet @@ -9947,13 +10018,13 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_product_expiry msgid "Products Expiry Date" -msgstr "" +msgstr "Datum isteka proizvoda" #. module: base #: code:addons/base/res/res_config.py:419 #, python-format msgid "Click 'Continue' to configure the next addon..." -msgstr "" +msgstr "Odaberite 'Nastavi' za postavke sljedećeg dodatka..." #. module: base #: field:ir.actions.server,record_id:0 @@ -9973,23 +10044,24 @@ msgstr "" #. module: base #: view:ir.attachment:0 msgid "Creation" -msgstr "" +msgstr "Kreiranje" #. module: base #: help:ir.actions.server,model_id:0 msgid "" "Select the object on which the action will work (read, write, create)." msgstr "" +"Odaberite objekat na kojem će akcija raditi (čitanje, pisanje, kreiranje)" #. module: base #: field:base.language.import,name:0 msgid "Language Name" -msgstr "" +msgstr "Naziv jezika" #. module: base #: selection:ir.property,type:0 msgid "Boolean" -msgstr "" +msgstr "Logički" #. module: base #: help:ir.mail_server,smtp_encryption:0 @@ -10001,6 +10073,12 @@ msgid "" "- SSL/TLS: SMTP sessions are encrypted with SSL/TLS through a dedicated port " "(default: 465)" msgstr "" +"Odaberite šemu enkripcije konekcije:\n" +"- Nema: SMTP sesije su urađene u čistom tekstu.\n" +"- TLS (STARTTLS): TLS enkripcija je zahtjevana pri začetku SMTP sesije " +"(Preporučeno)\n" +"- SSL/TLS: SMTP sesije su enkriptovane sa SSL/TLS kroz posvećeni port " +"(zadano: 465)" #. module: base #: view:ir.model:0 @@ -10010,7 +10088,7 @@ msgstr "Opis polja" #. module: base #: model:ir.module.module,shortdesc:base.module_analytic_contract_hr_expense msgid "Contracts Management: hr_expense link" -msgstr "" +msgstr "Upravljanje ugovorima: veza hr_expense" #. module: base #: view:ir.attachment:0 @@ -10025,12 +10103,12 @@ msgstr "" #: view:res.partner:0 #: view:workflow.activity:0 msgid "Group By..." -msgstr "" +msgstr "Grupiši po..." #. module: base #: view:base.module.update:0 msgid "Module Update Result" -msgstr "" +msgstr "Rezultati nadogradnje modula" #. module: base #: model:ir.module.module,description:base.module_analytic_contract_hr_expense @@ -10045,17 +10123,17 @@ msgstr "" #. module: base #: field:ir.attachment,store_fname:0 msgid "Stored Filename" -msgstr "" +msgstr "Pohranjeni naziv datoteke" #. module: base #: field:res.partner,use_parent_address:0 msgid "Use Company Address" -msgstr "" +msgstr "Koristi adresu kompanije" #. module: base #: model:ir.module.module,summary:base.module_hr_holidays msgid "Holidays, Allocation and Leave Requests" -msgstr "" +msgstr "Godišnji odmori, raspodjela i zahtjevi za odsustvom" #. module: base #: model:ir.module.module,description:base.module_web_hello @@ -10070,20 +10148,20 @@ msgstr "" #: selection:ir.module.module,state:0 #: selection:ir.module.module.dependency,state:0 msgid "To be installed" -msgstr "" +msgstr "Označen za instalaciju" #. module: base #: view:ir.model:0 #: model:ir.module.module,shortdesc:base.module_base #: field:res.currency,base:0 msgid "Base" -msgstr "" +msgstr "Osnova" #. module: base #: field:ir.model.data,model:0 #: field:ir.values,model:0 msgid "Model Name" -msgstr "" +msgstr "Naziv modela" #. module: base #: selection:base.language.install,lang:0 @@ -10102,6 +10180,14 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Kliknite za kreiranje novog kontakta u adresaru.\n" +"

\n" +" Pomoću OpenERP-a moguće je jednostavno pratiti sve \n" +" aktivnosti povezane sa dobavljačima: diskusije, istoriju \n" +" nabavke, dokumente i sl.\n" +"

\n" +" " #. module: base #: model:res.country,name:base.lr @@ -10137,7 +10223,7 @@ msgstr "Bilješke" #: field:ir.server.object.lines,value:0 #: field:ir.values,value:0 msgid "Value" -msgstr "" +msgstr "Vrijednost" #. module: base #: view:base.language.import:0 @@ -10146,7 +10232,7 @@ msgstr "" #: selection:ir.translation,type:0 #: field:res.partner.bank.type,code:0 msgid "Code" -msgstr "" +msgstr "Šifra" #. module: base #: model:ir.model,name:base.model_res_config_installer @@ -10161,39 +10247,40 @@ msgstr "" #. module: base #: selection:ir.cron,interval_type:0 msgid "Minutes" -msgstr "" +msgstr "Minute" #. module: base #: view:res.currency:0 msgid "Display" -msgstr "" +msgstr "Prikaz" #. module: base #: model:res.groups,name:base.group_multi_company msgid "Multi Companies" -msgstr "" +msgstr "Višekompnijske kompanije" #. module: base #: help:res.users,menu_id:0 msgid "" "If specified, the action will replace the standard menu for this user." msgstr "" +"Ako je specifirana, akcija će zamjeniti standarni meni za ovog korisnika." #. module: base #: model:ir.actions.report.xml,name:base.preview_report msgid "Preview Report" -msgstr "" +msgstr "Pregledaj izvještaj" #. module: base #: model:ir.module.module,shortdesc:base.module_purchase_analytic_plans msgid "Purchase Analytic Plans" -msgstr "" +msgstr "Analitički planovi nabavke" #. module: base #: model:ir.actions.act_window,name:base.ir_sequence_type #: model:ir.ui.menu,name:base.menu_ir_sequence_type msgid "Sequence Codes" -msgstr "" +msgstr "Tipovi sekvenci" #. module: base #: selection:base.language.install,lang:0 @@ -10206,16 +10293,18 @@ msgid "" "All pending configuration wizards have been executed. You may restart " "individual wizards via the list of configuration wizards." msgstr "" +"Svi čarobnjaci koji su u procesu su izvršeni. Možete da ponovno pokrenete " +"pojedine čarobnjake putem liste konfiguracijskih čarobnjaka." #. module: base #: view:ir.sequence:0 msgid "Current Year with Century: %(year)s" -msgstr "" +msgstr "Trenutna godina sa 4 znaka: %(year)s" #. module: base #: field:ir.exports,export_fields:0 msgid "Export ID" -msgstr "" +msgstr "ID izvoza" #. module: base #: model:res.country,name:base.fr @@ -10226,12 +10315,12 @@ msgstr "" #: view:workflow.activity:0 #: field:workflow.activity,flow_stop:0 msgid "Flow Stop" -msgstr "" +msgstr "Zaustavi tok" #. module: base #: selection:ir.cron,interval_type:0 msgid "Weeks" -msgstr "" +msgstr "Sedmice" #. module: base #: model:res.country,name:base.af @@ -10248,7 +10337,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_marketing_campaign_crm_demo msgid "Marketing Campaign - Demo" -msgstr "" +msgstr "Markentiške Kampanje" #. module: base #: code:addons/base/ir/ir_fields.py:360 @@ -10256,44 +10345,45 @@ msgstr "" msgid "" "Can not create Many-To-One records indirectly, import the field separately" msgstr "" +"Ne mogu se kreirati Many-To-One zapisi indirektno, uvezite polje odvojeno" #. module: base #: field:ir.cron,interval_type:0 msgid "Interval Unit" -msgstr "" +msgstr "Jedinica intervala" #. module: base #: model:ir.module.module,shortdesc:base.module_portal_stock msgid "Portal Stock" -msgstr "" +msgstr "Portal Zalihe" #. module: base #: field:workflow.activity,kind:0 msgid "Kind" -msgstr "" +msgstr "Vrsta" #. module: base #: code:addons/orm.py:4647 #, python-format msgid "This method does not exist anymore" -msgstr "" +msgstr "Ova metoda više ne postoji" #. module: base #: view:base.update.translations:0 #: model:ir.actions.act_window,name:base.action_wizard_update_translations #: model:ir.ui.menu,name:base.menu_wizard_update_translations msgid "Synchronize Terms" -msgstr "" +msgstr "Sinhronizacija termina" #. module: base #: field:res.lang,thousands_sep:0 msgid "Thousands Separator" -msgstr "" +msgstr "Separator hiljade" #. module: base #: field:res.request,create_date:0 msgid "Created Date" -msgstr "" +msgstr "Datum kreiranja" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_cn @@ -10303,7 +10393,7 @@ msgstr "" #. module: base #: sql_constraint:ir.model.constraint:0 msgid "Constraints with the same name are unique per module." -msgstr "" +msgstr "Ograničenja sa istim imenom su jedinstvena na nivou jednog modula." #. module: base #: model:ir.module.module,description:base.module_report_intrastat @@ -10322,16 +10412,18 @@ msgid "" "Select the action that will be executed. Loop action will not be avaliable " "inside loop." msgstr "" +"Odaberite akciju koja će biti izvšena. Akcija petlje neće biti dostupna " +"unutar petlje." #. module: base #: help:ir.model.data,res_id:0 msgid "ID of the target record in the database" -msgstr "" +msgstr "ID ciljanog zapisa u bazi" #. module: base #: model:ir.module.module,shortdesc:base.module_account_analytic_analysis msgid "Contracts Management" -msgstr "" +msgstr "Upravljanje Ugovorima" #. module: base #: selection:base.language.install,lang:0 @@ -10346,34 +10438,34 @@ msgstr "" #. module: base #: field:res.partner,image_medium:0 msgid "Medium-sized image" -msgstr "" +msgstr "Slika srednje veličine" #. module: base #: view:ir.model:0 msgid "In Memory" -msgstr "" +msgstr "Unutar Memorije" #. module: base #: view:ir.actions.todo:0 msgid "Todo" -msgstr "" +msgstr "Za Uraditi" #. module: base #: model:ir.module.module,shortdesc:base.module_product_visible_discount msgid "Prices Visible Discounts" -msgstr "" +msgstr "Vidljivi popusti na cijenama" #. module: base #: field:ir.attachment,datas:0 msgid "File Content" -msgstr "" +msgstr "Sadržaj datoteke" #. module: base #: model:ir.actions.act_window,name:base.action_model_relation #: view:ir.model.relation:0 #: model:ir.ui.menu,name:base.ir_model_relation_menu msgid "ManyToMany Relations" -msgstr "" +msgstr "ManyToMany Relacije" #. module: base #: model:res.country,name:base.pa @@ -10385,11 +10477,12 @@ msgstr "" msgid "" "The group that a user must have to be authorized to validate this transition." msgstr "" +"Grupa kojoj korisnik mora pripadati kako bi mogao odobriti ovaj prelaz." #. module: base #: constraint:res.users:0 msgid "The chosen company is not in the allowed companies for this user" -msgstr "" +msgstr "Odabrana kompanija nije u listi dozvoljenih za ovog korisnika" #. module: base #: model:res.country,name:base.gi @@ -10399,7 +10492,7 @@ msgstr "" #. module: base #: field:ir.actions.report.xml,report_name:0 msgid "Service Name" -msgstr "" +msgstr "Naziv usluge" #. module: base #: model:res.country,name:base.pn @@ -10409,42 +10502,44 @@ msgstr "" #. module: base #: field:res.partner,category_id:0 msgid "Tags" -msgstr "" +msgstr "Oznake" #. module: base #: view:base.module.upgrade:0 msgid "" "We suggest to reload the menu tab to see the new menus (Ctrl+T then Ctrl+R)." msgstr "" +"Savjetujemo Vam da osvježite tab menija kako bi ste vidjeli nove menije " +"(Ctrl+T then Ctrl+R)." #. module: base #: model:ir.actions.act_window,name:base.action_rule #: view:ir.rule:0 #: model:ir.ui.menu,name:base.menu_action_rule msgid "Record Rules" -msgstr "" +msgstr "Pravila zapisa" #. module: base #: view:multi_company.default:0 msgid "Multi Company" -msgstr "" +msgstr "Višekompanijska" #. module: base #: model:ir.module.category,name:base.module_category_portal #: model:ir.module.module,shortdesc:base.module_portal msgid "Portal" -msgstr "" +msgstr "Portal" #. module: base #: selection:ir.translation,state:0 msgid "To Translate" -msgstr "" +msgstr "Za prevesti" #. module: base #: code:addons/base/ir/ir_fields.py:294 #, python-format msgid "See all possible values" -msgstr "" +msgstr "Vidi sve moguće vrijednosti" #. module: base #: model:ir.module.module,description:base.module_claim_from_delivery @@ -10468,26 +10563,29 @@ msgid "" "OpenERP will automatically adds some '0' on the left of the 'Next Number' to " "get the required padding size." msgstr "" +"OpenERP će automatski dodati nekoliko '0' sa lijeve strane 'Sljedećeg Broja' " +"da bi se dobio odgovarajuća dužina broja" #. module: base #: help:ir.model.constraint,name:0 msgid "PostgreSQL constraint or foreign key name." -msgstr "" +msgstr "PostgreSQL ograničenje ili naziv stranog ključa" #. module: base #: view:res.company:0 msgid "Click to set your company logo." -msgstr "" +msgstr "Kliknite za postavljanje logotipa kompanije" #. module: base #: view:res.lang:0 msgid "%A - Full weekday name." -msgstr "" +msgstr "%A - Puno ime dana u sedmici." #. module: base #: help:ir.values,user_id:0 msgid "If set, action binding only applies for this user." msgstr "" +"Ako je postavljeno, povezivanje sa akcijom se odnosi samo za ovog korisnika." #. module: base #: model:res.country,name:base.gw @@ -10497,22 +10595,22 @@ msgstr "" #. module: base #: field:ir.actions.report.xml,header:0 msgid "Add RML Header" -msgstr "" +msgstr "Dodaj RML zaglavlje" #. module: base #: help:res.company,rml_footer:0 msgid "Footer text displayed at the bottom of all reports." -msgstr "" +msgstr "Tekst podnožja prikazan na dnu svih izvještaja" #. module: base #: field:ir.module.module,icon:0 msgid "Icon URL" -msgstr "" +msgstr "URL ikone" #. module: base #: model:ir.module.module,shortdesc:base.module_note_pad msgid "Memos pad" -msgstr "" +msgstr "Bilježnica" #. module: base #: model:ir.module.module,description:base.module_pad @@ -10530,7 +10628,7 @@ msgstr "" #. module: base #: sql_constraint:res.lang:0 msgid "The code of the language must be unique !" -msgstr "" +msgstr "Šifra jezika mora biti jedinstvena!" #. module: base #: model:ir.actions.act_window,name:base.action_attachment @@ -10538,12 +10636,12 @@ msgstr "" #: view:ir.attachment:0 #: model:ir.ui.menu,name:base.menu_action_attachment msgid "Attachments" -msgstr "" +msgstr "Prilozi" #. module: base #: help:res.company,bank_ids:0 msgid "Bank accounts related to this company" -msgstr "" +msgstr "Bankovni računi povezani sa ovom kompanijom" #. module: base #: model:ir.module.category,name:base.module_category_sales_management @@ -10553,7 +10651,7 @@ msgstr "" #: model:ir.ui.menu,name:base.menu_sales #: model:ir.ui.menu,name:base.next_id_64 msgid "Sales" -msgstr "" +msgstr "Prodaja" #. module: base #: field:ir.actions.server,child_ids:0 @@ -10568,30 +10666,32 @@ msgstr "" #. module: base #: selection:ir.actions.todo,state:0 msgid "Done" -msgstr "" +msgstr "Gotovo" #. module: base #: help:ir.cron,doall:0 msgid "" "Specify if missed occurrences should be executed when the server restarts." msgstr "" +"Specifirajte ako se propušteni događaji trebaju izvršiti nakon ponovnog " +"pokretanja servera." #. module: base #: model:res.partner.title,name:base.res_partner_title_miss #: model:res.partner.title,shortcut:base.res_partner_title_miss msgid "Miss" -msgstr "" +msgstr "Gospođica" #. module: base #: view:ir.model.access:0 #: field:ir.model.access,perm_write:0 msgid "Write Access" -msgstr "" +msgstr "Pisanje" #. module: base #: view:res.lang:0 msgid "%m - Month number [01,12]." -msgstr "" +msgstr "%m - Mjesec [01,12]." #. module: base #: view:res.bank:0 @@ -10604,7 +10704,7 @@ msgstr "" #: field:res.partner.bank,city:0 #: view:res.users:0 msgid "City" -msgstr "" +msgstr "Grad" #. module: base #: model:res.country,name:base.qa @@ -10619,18 +10719,18 @@ msgstr "" #. module: base #: model:res.groups,name:base.group_sale_salesman msgid "See Own Leads" -msgstr "" +msgstr "Vidi vlastite potencijale" #. module: base #: view:ir.actions.todo:0 #: selection:ir.actions.todo,state:0 msgid "To Do" -msgstr "" +msgstr "Za Uraditi" #. module: base #: model:ir.module.module,shortdesc:base.module_portal_hr_employees msgid "Portal HR employees" -msgstr "" +msgstr "Portal Zaposlenih" #. module: base #: selection:base.language.install,lang:0 @@ -10643,11 +10743,13 @@ msgid "" "Provide the field name that the record id refers to for the write operation. " "If it is empty it will refer to the active id of the object." msgstr "" +"Unesite naziv polja na koji se odnosi ID zapisa za operacije pisanja. Ako je " +"prazno odnosiće se na aktivni ID objekta." #. module: base #: selection:ir.module.module,license:0 msgid "GPL-3 or later version" -msgstr "" +msgstr "GPL-3 ili novija verzija" #. module: base #: code:addons/orm.py:2033 @@ -10656,11 +10758,13 @@ msgid "" "Insufficient fields to generate a Calendar View for %s, missing a date_stop " "or a date_delay" msgstr "" +"Nedovoljno polja za izradu kalendarskog pogleda za %s, nedostaje datum kraja " +"ili datum odgode" #. module: base #: field:workflow.activity,action:0 msgid "Python Action" -msgstr "" +msgstr "Python akcija" #. module: base #: selection:base.language.install,lang:0 @@ -10673,6 +10777,8 @@ 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 "" +"Upravljajte statusima partnera koje želite imati dostupne u svom sistemu. " +"Staus partnera je pravni status kompanije, npr.: d.o.o., s.t.r. itd." #. module: base #: view:res.bank:0 @@ -10681,7 +10787,7 @@ msgstr "" #: view:res.partner.bank:0 #: view:res.users:0 msgid "Address" -msgstr "" +msgstr "Adresa" #. module: base #: selection:base.language.install,lang:0 @@ -10744,6 +10850,8 @@ msgstr "" msgid "" "Please contact your system administrator if you think this is an error." msgstr "" +"Molimo da kontaktirate svog administratora sistema ako smatrate da je ovo " +"greška." #. module: base #: code:addons/base/module/module.py:545 @@ -10751,13 +10859,13 @@ msgstr "" #: model:ir.actions.act_window,name:base.action_view_base_module_upgrade #, python-format msgid "Apply Schedule Upgrade" -msgstr "" +msgstr "Izvrši zakazane nadogradnje" #. module: base #: view:workflow.activity:0 #: field:workflow.workitem,act_id:0 msgid "Activity" -msgstr "" +msgstr "Aktivnost" #. module: base #: view:change.password.user:0 @@ -10772,17 +10880,17 @@ msgstr "" #: field:res.partner,user_ids:0 #: view:res.users:0 msgid "Users" -msgstr "" +msgstr "Korisnici" #. module: base #: field:res.company,parent_id:0 msgid "Parent Company" -msgstr "" +msgstr "Nadređena kompanija" #. module: base #: model:ir.module.module,shortdesc:base.module_auth_openid msgid "OpenID Authentification" -msgstr "" +msgstr "OpenID Autentifikacija" #. module: base #: code:addons/orm.py:3872 @@ -10791,6 +10899,8 @@ msgid "" "One of the documents you are trying to access has been deleted, please try " "again after refreshing." msgstr "" +"Jedan od dokumenata kojem pokušavate pristupiti je obrisan, molimo Vas da " +"pokušate nakon osvježavanja." #. module: base #: model:ir.model,name:base.model_ir_mail_server @@ -10810,11 +10920,15 @@ 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 "" +"Opšta pravila (ne povezana sa grupama) su zabrane, i ne mogu da budu " +"zaobiđena. Pravila lokalnih grupa dozvoljavaju dodatne dozvole, ali su " +"ograničena sa granicama globalnih. Prva grupa pravila ograničavaju dalje od " +"globalnih pravila, ali svaka dodatna grupa pravila će dozvoliti veći pristup." #. module: base #: field:res.currency.rate,rate:0 msgid "Rate" -msgstr "" +msgstr "Stopa" #. module: base #: model:res.country,name:base.cg @@ -10829,17 +10943,17 @@ msgstr "Primjeri" #. module: base #: field:ir.default,value:0 msgid "Default Value" -msgstr "" +msgstr "Zadana vrijednost" #. module: base #: model:ir.model,name:base.model_res_country_state msgid "Country state" -msgstr "" +msgstr "Fed. država/Kanton" #. module: base #: model:ir.ui.menu,name:base.next_id_5 msgid "Sequences & Identifiers" -msgstr "" +msgstr "Sekvence i Identifikatori" #. module: base #: model:ir.module.module,description:base.module_l10n_th @@ -10865,6 +10979,9 @@ msgid "" "for the currency: %s \n" "at the date: %s" msgstr "" +"Nije pronađena stopa \n" +"za valutu: %s \n" +"na dan: %s" #. module: base #: model:ir.actions.act_window,help:base.action_ui_view_custom @@ -10872,11 +10989,13 @@ msgid "" "Customized views are used when users reorganize the content of their " "dashboard views (via web client)" msgstr "" +"Prilagođeni pogledi se koriste kada korisnik reorganizira sadržaj kontrolnih " +"ploča (putem web klijent)" #. module: base #: model:ir.module.module,shortdesc:base.module_sale_stock msgid "Sales and Warehouse Management" -msgstr "" +msgstr "Upravljanje Prodajom i Skladištima" #. module: base #: model:ir.module.module,description:base.module_hr_recruitment @@ -10901,7 +11020,7 @@ msgstr "" #. module: base #: field:ir.model.fields,model:0 msgid "Object Name" -msgstr "" +msgstr "Naziv objekta" #. module: base #: help:ir.actions.server,srcmodel_id:0 @@ -10909,25 +11028,27 @@ msgid "" "Object in which you want to create / write the object. If it is empty then " "refer to the Object field." msgstr "" +"Objekt unutar kojega želite kreirati / zapisati objekt. Ako je prazno onda " +"se odnosi na polje objekta." #. 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 "Nije instaliran" #. module: base #: view:workflow.activity:0 #: field:workflow.activity,out_transitions:0 msgid "Outgoing Transitions" -msgstr "" +msgstr "Izlazni prelazi" #. module: base #: field:ir.module.module,icon_image:0 #: field:ir.ui.menu,icon:0 msgid "Icon" -msgstr "" +msgstr "Ikona" #. module: base #: model:ir.module.category,description:base.module_category_human_resources @@ -10935,16 +11056,18 @@ msgid "" "Helps you manage your human resources by encoding your employees structure, " "generating work sheets, tracking attendance and more." msgstr "" +"Pomaže Vam u upravljanju ljudskim resursima šifriranjem strukture " +"zaposlenih, generišući radne listove, praćenjem prisutnosti, itd..." #. module: base #: help:res.partner,ean13:0 msgid "BarCode" -msgstr "" +msgstr "BarKod" #. module: base #: help:ir.model.fields,model_id:0 msgid "The model this field belongs to" -msgstr "" +msgstr "Model kojem ovo polje pripada" #. module: base #: field:ir.actions.server,sms:0 @@ -10960,23 +11083,23 @@ msgstr "" #. module: base #: help:res.partner,is_company:0 msgid "Check if the contact is a company, otherwise it is a person" -msgstr "" +msgstr "Označite ako je kontakt Kompanija, u suprotnom smatra se osobom" #. module: base #: view:ir.sequence.type:0 msgid "Sequences Type" -msgstr "" +msgstr "Tip sekvence" #. module: base #: view:res.partner:0 msgid "Mobile:" -msgstr "" +msgstr "Mobilni:" #. module: base #: code:addons/base/res/res_bank.py:195 #, python-format msgid "Formating Error" -msgstr "" +msgstr "Greška u formatiranju" #. module: base #: model:res.country,name:base.ye @@ -10986,7 +11109,7 @@ msgstr "" #. module: base #: selection:workflow.activity,split_mode:0 msgid "Or" -msgstr "" +msgstr "ili" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_br @@ -11035,32 +11158,32 @@ msgstr "" #: code:addons/base/ir/ir_model.py:1031 #, python-format msgid "Permission Denied" -msgstr "" +msgstr "Pristup nije dozvoljen" #. module: base #: field:ir.ui.menu,child_id:0 msgid "Child IDs" -msgstr "" +msgstr "ID-ovi podređenih" #. module: base #: code:addons/base/ir/ir_actions.py:702 #: code:addons/base/ir/ir_actions.py:705 #, python-format msgid "Problem in configuration `Record Id` in Server Action!" -msgstr "" +msgstr "Problem u konfiguraciji 'ID-a Zapisa' u Serverskoj Akciji!" #. module: base #: code:addons/orm.py:2807 #: code:addons/orm.py:2817 #, python-format msgid "ValidateError" -msgstr "" +msgstr "Greška u Validaciji" #. module: base #: view:base.module.import:0 #: view:base.module.update:0 msgid "Open Modules" -msgstr "" +msgstr "Otvori module" #. module: base #: model:ir.actions.act_window,help:base.action_res_bank_form @@ -11070,12 +11193,12 @@ msgstr "" #. module: base #: view:base.module.import:0 msgid "Import module" -msgstr "" +msgstr "Uvezi modul" #. module: base #: field:ir.actions.server,loop_action:0 msgid "Loop Action" -msgstr "" +msgstr "Akcija petlje" #. module: base #: help:ir.actions.report.xml,report_file:0 @@ -11083,6 +11206,8 @@ msgid "" "The path to the main report file (depending on Report Type) or NULL if the " "content is in another field" msgstr "" +"Putanja to glavne datoteke izvještaja (zavisno od tipa izvještaja) ili NULL " +"ako se sadržaj nalazi unutar drugog polja" #. module: base #: model:res.country,name:base.la @@ -11098,17 +11223,17 @@ msgstr "" #: field:res.partner,email:0 #, python-format msgid "Email" -msgstr "" +msgstr "E-Mail" #. module: base #: model:res.partner.category,name:base.res_partner_category_12 msgid "Office Supplies" -msgstr "" +msgstr "Kancelarijski materijal" #. module: base #: field:ir.attachment,res_model:0 msgid "Resource Model" -msgstr "" +msgstr "Model resursa" #. module: base #: code:addons/custom.py:555 @@ -11117,11 +11242,13 @@ msgid "" "The sum of the data (2nd field) is null.\n" "We can't draw a pie chart !" msgstr "" +"Zbir podataka (drugog polja) je null.\n" +"Ne može se iscrtati grafika pite!" #. module: base #: view:res.partner.bank:0 msgid "Information About the Bank" -msgstr "" +msgstr "Informacije o Banci" #. module: base #: help:ir.actions.server,condition:0 @@ -11139,12 +11266,24 @@ msgid "" " - uid: current user id\n" " - context: current context" msgstr "" +"Uslov koji je testiran prije izvršavanja akcije, i onemogućuje izvršavanje " +"ako nije verifikovan.\n" +"Primjer: object.list_price > 5000\n" +"je Python izraz koji može da koristi sljedeće vrijednosti:\n" +" - self: ORM model zapisa na kojem je akcija aktivirana\n" +" - object or obj: browse_record zapisa na kojem je akcija aktivirana\n" +" - pool: ORM model pool (npr.: self.pool)\n" +" - time: Python modul za vrijeme\n" +" - cr: kursor baze podataka\n" +" - uid: trenutni ID korisnika\n" +" - context: trenutni kontekst" #. module: base #: view:ir.rule:0 msgid "" "2. Group-specific rules are combined together with a logical OR operator" msgstr "" +"2. Grupna pravila se kombinuju zajedno sa logičkim ili (OR) operatorom" #. module: base #: model:res.country,name:base.bl @@ -11154,7 +11293,7 @@ msgstr "" #. module: base #: selection:ir.module.module,license:0 msgid "Other Proprietary" -msgstr "" +msgstr "Ostale Vlasničke" #. module: base #: model:res.country,name:base.ec @@ -11164,17 +11303,17 @@ msgstr "" #. module: base #: model:ir.model,name:base.model_workflow msgid "workflow" -msgstr "" +msgstr "radni tok" #. module: base #: view:ir.rule:0 msgid "Read Access Right" -msgstr "" +msgstr "Čitanje" #. module: base #: model:ir.module.module,shortdesc:base.module_analytic_user_function msgid "Jobs on Contracts" -msgstr "" +msgstr "Poslovi pod ugovorom" #. module: base #: code:addons/base/res/res_lang.py:187 @@ -11185,22 +11324,22 @@ msgstr "" #. module: base #: view:ir.model.data:0 msgid "Updatable" -msgstr "" +msgstr "Nadogradivi" #. module: base #: view:res.lang:0 msgid "3. %x ,%X ==> 12/05/08, 18:25:20" -msgstr "" +msgstr "3. %x ,%X ==> 12/05/08, 18:25:20" #. module: base #: selection:ir.model.fields,on_delete:0 msgid "Cascade" -msgstr "" +msgstr "Kaskadno" #. module: base #: model:ir.module.module,summary:base.module_crm msgid "Leads, Opportunities, Phone Calls" -msgstr "" +msgstr "Potencijali, Prilike, Tel. pozivi" #. module: base #: model:ir.module.category,description:base.module_category_knowledge_management @@ -11208,6 +11347,8 @@ msgid "" "Lets you install addons geared towards sharing knowledge with and between " "your employees." msgstr "" +"Dozvoljava Vam instalaciju dodataka koji teže djeljenju znanja sa i između " +"zaposlenih." #. module: base #: selection:base.language.install,lang:0 @@ -11217,13 +11358,13 @@ msgstr "" #. module: base #: selection:ir.translation,state:0 msgid "Translated" -msgstr "" +msgstr "Prevedeno" #. module: base #: model:ir.actions.act_window,name:base.action_inventory_form #: model:ir.ui.menu,name:base.menu_action_inventory_form msgid "Default Company per Object" -msgstr "" +msgstr "Zadana kompanija po Objektu" #. module: base #: model:ir.module.module,shortdesc:base.module_web_hello @@ -11233,12 +11374,12 @@ msgstr "" #. module: base #: view:ir.actions.configuration.wizard:0 msgid "Next Configuration Step" -msgstr "" +msgstr "Sljedeći konfiguracijski korak" #. module: base #: field:res.groups,comment:0 msgid "Comment" -msgstr "" +msgstr "Komentar" #. module: base #: field:ir.filters,domain:0 @@ -11247,49 +11388,49 @@ msgstr "" #: field:ir.rule,domain_force:0 #: field:res.partner.title,domain:0 msgid "Domain" -msgstr "" +msgstr "Domen" #. module: base #: code:addons/base/ir/ir_fields.py:166 #, python-format msgid "Use '1' for yes and '0' for no" -msgstr "" +msgstr "Koristite '1' za DA i '0' za NE" #. module: base #: model:ir.module.module,shortdesc:base.module_marketing_campaign msgid "Marketing Campaigns" -msgstr "" +msgstr "Markentinške kampanje" #. module: base #: field:res.country.state,name:0 msgid "State Name" -msgstr "" +msgstr "Naziv Fed. države/Kantona" #. module: base #: help:ir.attachment,type:0 msgid "Binary File or URL" -msgstr "" +msgstr "Binarni fajl ili URL" #. module: base #: code:addons/base/ir/ir_fields.py:313 #, python-format msgid "Invalid database id '%s' for the field '%%(field)s'" -msgstr "" +msgstr "Ne pravilan ID baze podataka '%s' za polje '%%(field)s'" #. module: base #: view:res.lang:0 msgid "Update Languague Terms" -msgstr "" +msgstr "Nadogradi jezične termine" #. module: base #: field:workflow.activity,join_mode:0 msgid "Join Mode" -msgstr "" +msgstr "Način spajanja (Join Mode)" #. module: base #: field:res.partner,tz:0 msgid "Timezone" -msgstr "" +msgstr "Vremenska zona" #. module: base #: model:ir.model,name:base.model_ir_actions_report_xml @@ -11308,11 +11449,12 @@ msgstr "Sekvence" #: help:res.lang,code:0 msgid "This field is used to set/get locales for user" msgstr "" +"Ovo polje se koristi za postavljanje/dobavljanje lokalizacije korisnika" #. module: base #: view:ir.filters:0 msgid "Shared" -msgstr "" +msgstr "Dijeljeno" #. module: base #: code:addons/base/module/module.py:357 @@ -11320,11 +11462,13 @@ msgstr "" msgid "" "Unable to install module \"%s\" because an external dependency is not met: %s" msgstr "" +"Nije moguće instalirati modul \"%s\", jer vanjska ovisnost nije " +"zadovoljena:%s" #. module: base #: view:ir.module.module:0 msgid "Search modules" -msgstr "" +msgstr "Pretraži module" #. module: base #: model:res.country,name:base.by @@ -11337,7 +11481,7 @@ msgstr "" #: field:ir.actions.client,name:0 #: field:ir.actions.server,name:0 msgid "Action Name" -msgstr "" +msgstr "Naziv akcije" #. module: base #: model:ir.actions.act_window,help:base.action_res_users @@ -11347,6 +11491,11 @@ 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 "" +"Kreirajte i upravljajte korisnicima koji će se spajati na sistem. Korisnici " +"mogu biti deaktivirani ako postoji potreba da u određenom vremenu trebaju " +"ili ne trebaju biti prijavljeni na sistem. Možete im dodjeliti grupe da bi " +"ste im dali specifična prava pristupa aplikacijama koje trebaju da koriste u " +"sistemu." #. module: base #: selection:res.request,priority:0 @@ -11356,25 +11505,25 @@ msgstr "Normalan" #. module: base #: model:ir.module.module,shortdesc:base.module_purchase_double_validation msgid "Double Validation on Purchases" -msgstr "" +msgstr "Dupla validacija na nabavkama" #. module: base #: field:res.bank,street2:0 #: field:res.company,street2:0 #: field:res.partner,street2:0 msgid "Street2" -msgstr "" +msgstr "Ulica2" #. module: base #: model:ir.actions.act_window,name:base.action_view_base_module_update msgid "Module Update" -msgstr "" +msgstr "Nadogradnja modula" #. module: base #: code:addons/base/module/wizard/base_module_upgrade.py:85 #, python-format msgid "Following modules are not installed or unknown: %s" -msgstr "" +msgstr "Sljedeći moduli nisu instalirani ili su ne poznati: %s" #. module: base #: model:ir.module.module,description:base.module_auth_oauth_signup @@ -11396,7 +11545,7 @@ msgstr "" #: model:res.groups,name:base.group_tool_user #: view:res.users:0 msgid "User" -msgstr "" +msgstr "Korisnik" #. module: base #: model:res.country,name:base.pr @@ -11406,12 +11555,12 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_web_tests_demo msgid "Demonstration of web/javascript tests" -msgstr "" +msgstr "Demonstracija web/javascript testova" #. module: base #: field:workflow.transition,signal:0 msgid "Signal (Button Name)" -msgstr "" +msgstr "Signal (naziv dugmeta)" #. module: base #: view:ir.actions.act_window:0 @@ -11421,12 +11570,12 @@ msgstr "Otvori prozor" #. module: base #: field:ir.actions.act_window,auto_search:0 msgid "Auto Search" -msgstr "" +msgstr "Automatska pretraga" #. module: base #: field:ir.actions.act_window,filter:0 msgid "Filter" -msgstr "" +msgstr "Filter" #. module: base #: model:res.country,name:base.ch @@ -11441,17 +11590,17 @@ msgstr "Grenada" #. module: base #: help:res.partner,customer:0 msgid "Check this box if this contact is a customer." -msgstr "" +msgstr "Označite ovo polje ako je ovaj kontakt kupac." #. module: base #: view:ir.actions.server:0 msgid "Trigger Configuration" -msgstr "" +msgstr "Postavke okidača" #. module: base #: view:base.language.install:0 msgid "Load" -msgstr "" +msgstr "Učitaj" #. module: base #: model:ir.module.module,description:base.module_warning @@ -11469,14 +11618,14 @@ msgstr "" #. module: base #: field:res.users,partner_id:0 msgid "Related Partner" -msgstr "" +msgstr "Povezani partner" #. module: base #: code:addons/osv.py:172 #: code:addons/osv.py:174 #, python-format msgid "Integrity Error" -msgstr "" +msgstr "Greška integriteta" #. module: base #: model:ir.module.module,description:base.module_l10n_pa @@ -11501,49 +11650,49 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_mrp_operations msgid "Manufacturing Operations" -msgstr "" +msgstr "Operacije u proizvodnji" #. module: base #: view:base.language.export:0 msgid "Here is the exported translation file:" -msgstr "" +msgstr "Ovde je izvezena datoteka prevoda:" #. module: base #: field:ir.actions.report.xml,report_rml_content:0 #: field:ir.actions.report.xml,report_rml_content_data:0 msgid "RML Content" -msgstr "" +msgstr "RML Sadržaj" #. module: base #: view:res.lang:0 msgid "Update Terms" -msgstr "" +msgstr "Ažuriraj izraze" #. module: base #: field:res.request,act_to:0 #: field:res.request.history,act_to:0 msgid "To" -msgstr "" +msgstr "Za" #. module: base #: model:ir.module.module,shortdesc:base.module_hr msgid "Employee Directory" -msgstr "" +msgstr "Popis zaposlenih" #. module: base #: field:ir.cron,args:0 msgid "Arguments" -msgstr "" +msgstr "Argumenti" #. module: base #: selection:ir.module.module,license:0 msgid "GPL Version 2" -msgstr "" +msgstr "GPL Verzija 2" #. module: base #: selection:ir.module.module,license:0 msgid "GPL Version 3" -msgstr "" +msgstr "GPL Verzija 3" #. module: base #: model:ir.module.module,description:base.module_stock_location @@ -11658,17 +11807,17 @@ msgstr "" #. module: base #: selection:res.company,paper_format:0 msgid "A4" -msgstr "" +msgstr "A4" #. module: base #: view:res.config.installer:0 msgid "Configuration Installer" -msgstr "" +msgstr "Konfiguracijski instaler" #. module: base #: field:res.partner,customer:0 msgid "Customer" -msgstr "" +msgstr "Kupac" #. module: base #: selection:base.language.install,lang:0 @@ -11688,37 +11837,37 @@ msgstr "" #: field:ir.actions.act_window,context:0 #: field:ir.actions.client,context:0 msgid "Context Value" -msgstr "" +msgstr "Vrijednost konteksta" #. module: base #: view:ir.sequence:0 msgid "Hour 00->24: %(h24)s" -msgstr "" +msgstr "Sat 00->24: %(h24)s" #. module: base #: field:ir.cron,nextcall:0 msgid "Next Execution Date" -msgstr "" +msgstr "Datum slijedećeg izvršavanja" #. module: base #: field:ir.sequence,padding:0 msgid "Number Padding" -msgstr "" +msgstr "Dužina broja" #. module: base #: help:multi_company.default,field_id:0 msgid "Select field property" -msgstr "" +msgstr "Odaberite svojstvo polja" #. module: base #: field:res.request.history,date_sent:0 msgid "Date sent" -msgstr "" +msgstr "Datum slanja" #. module: base #: view:ir.sequence:0 msgid "Month: %(month)s" -msgstr "" +msgstr "Mjesec: %(month)s" #. module: base #: field:ir.actions.act_window.view,sequence:0 @@ -11735,7 +11884,7 @@ msgstr "" #: field:multi_company.default,sequence:0 #: field:res.partner.bank,sequence:0 msgid "Sequence" -msgstr "" +msgstr "Sekvenca" #. module: base #: model:res.country,name:base.tn @@ -11749,6 +11898,8 @@ msgid "" "(if you delete a native ACL, it will be re-created when you reload the " "module." msgstr "" +"Ako odznačite polje aktivno, onemogućiti će ACL bez da ga obriše (ako " +"obrišete nativni ACL, biti će ponovno kreiran kada ponovno učitate modul)." #. module: base #: model:ir.model,name:base.model_ir_fields_converter @@ -11766,7 +11917,7 @@ msgstr "" #: model:ir.ui.menu,name:base.menu_mrp_config #: model:ir.ui.menu,name:base.menu_mrp_root msgid "Manufacturing" -msgstr "" +msgstr "Proizvodnja" #. module: base #: model:res.country,name:base.km @@ -11776,7 +11927,7 @@ msgstr "" #. module: base #: view:ir.module.module:0 msgid "Cancel Install" -msgstr "" +msgstr "Otkaži instalaciju" #. module: base #: model:ir.model,name:base.model_ir_model_relation @@ -11786,7 +11937,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_account_check_writing msgid "Check Writing" -msgstr "" +msgstr "Ispisivanje čekova" #. module: base #: model:ir.module.module,description:base.module_plugin_outlook @@ -11833,18 +11984,18 @@ msgstr "Zapisi za formate datuma i vremena" #. module: base #: selection:ir.actions.server,state:0 msgid "Copy Object" -msgstr "" +msgstr "Kopiraj objekt" #. module: base #: field:ir.actions.server,trigger_name:0 msgid "Trigger Signal" -msgstr "" +msgstr "Naziv signala okidača" #. module: base #: model:ir.actions.act_window,name:base.action_country_state #: model:ir.ui.menu,name:base.menu_country_state_partner msgid "Fed. States" -msgstr "" +msgstr "Fed. države" #. module: base #: view:ir.model:0 @@ -11855,7 +12006,7 @@ msgstr "Pravila pristupa" #. module: base #: field:res.groups,trans_implied_ids:0 msgid "Transitively inherits" -msgstr "" +msgstr "Prelazno nasljeđuje" #. module: base #: field:ir.default,ref_table:0 @@ -11901,7 +12052,7 @@ msgstr "" #: code:addons/base/ir/ir_mail_server.py:474 #, python-format msgid "Mail delivery failed" -msgstr "" +msgstr "Isporuka email-a ne uspješna" #. module: base #: view:ir.actions.act_window:0 @@ -11932,11 +12083,14 @@ msgid "" "\n" "[object with reference: %s - %s]" msgstr "" +"\n" +"\n" +"[objekt sa referencom: %s - %s]" #. module: base #: model:ir.module.module,shortdesc:base.module_account_analytic_plans msgid "Multiple Analytic Plans" -msgstr "" +msgstr "Višestruki analitički planovi" #. module: base #: model:ir.model,name:base.model_ir_default @@ -11951,7 +12105,7 @@ msgstr "Minute: %(min)s" #. module: base #: model:ir.ui.menu,name:base.menu_ir_cron msgid "Scheduler" -msgstr "" +msgstr "Planer" #. module: base #: model:ir.module.module,description:base.module_event_moodle @@ -12008,7 +12162,7 @@ msgstr "" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_madam msgid "Mrs." -msgstr "" +msgstr "Gđa." #. module: base #: code:addons/base/ir/ir_model.py:432 @@ -12017,6 +12171,8 @@ msgid "" "Changing the type of a column is not yet supported. Please drop it and " "create it again!" msgstr "" +"Izmjena tipa kolone još nije podržana. Molimo da je odbacite i ponovno " +"kreirate!" #. module: base #: field:ir.ui.view_sc,user_id:0 @@ -12027,7 +12183,7 @@ msgstr "Korisnik ref." #: code:addons/base/ir/ir_fields.py:226 #, python-format msgid "'%s' does not seem to be a valid datetime for field '%%(field)s'" -msgstr "" +msgstr "'%s' nije pravilno datum-vrijeme za polje '%%(field)s'" #. module: base #: model:res.partner.bank.type.field,name:base.bank_normal_field_bic @@ -12042,14 +12198,14 @@ msgstr "Izraz petlje" #. module: base #: model:res.partner.category,name:base.res_partner_category_16 msgid "Retailer" -msgstr "" +msgstr "Trgovac" #. module: base #: view:ir.model.fields:0 #: field:ir.model.fields,readonly:0 #: field:res.partner.bank.type.field,readonly:0 msgid "Readonly" -msgstr "" +msgstr "Samo za čitanje" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_gt @@ -12059,7 +12215,7 @@ msgstr "" #. module: base #: help:ir.cron,args:0 msgid "Arguments to be passed to the method, e.g. (uid,)." -msgstr "" +msgstr "Argumenti za prosljeđivanje metodi, npr.: (uid,)." #. module: base #: report:ir.module.reference:0 @@ -12082,6 +12238,8 @@ msgid "" "Your server does not seem to support SSL, you may want to try STARTTLS " "instead" msgstr "" +"Vaš server izgleda da ne podržava SSL, možete pokušati sa STARTTLS umjesto " +"toga" #. module: base #: code:addons/base/ir/workflow/workflow.py:100 @@ -12089,6 +12247,8 @@ msgstr "" msgid "" "Please make sure no workitems refer to an activity before deleting it!" msgstr "" +"Molimo da provjerite da radna stavka nije povezana sa nekom od aktivnosti " +"prije nego je obrišete!" #. module: base #: model:res.country,name:base.tr @@ -12160,7 +12320,7 @@ msgstr "radnitok.okidači" #. module: base #: selection:ir.translation,type:0 msgid "XSL" -msgstr "" +msgstr "XSL" #. module: base #: code:addons/base/ir/ir_model.py:85 @@ -12171,12 +12331,12 @@ msgstr "" #. module: base #: view:ir.mail_server:0 msgid "Connection Information" -msgstr "" +msgstr "Informacija o konekciji" #. module: base #: model:res.partner.title,name:base.res_partner_title_prof msgid "Professor" -msgstr "" +msgstr "Profesor" #. module: base #: model:res.country,name:base.hm @@ -12189,6 +12349,8 @@ msgid "" "External Key/Identifier that can be used for data integration with third-" "party systems" msgstr "" +"Vanjski ključ/identifikator koji se može koristiti za podatkovnu integraciju " +"sa trećim sistemima" #. module: base #: field:ir.actions.act_window,view_id:0 @@ -12199,28 +12361,29 @@ msgstr "Prikaz ref." #: model:ir.module.category,description:base.module_category_sales_management msgid "Helps you handle your quotations, sale orders and invoicing." msgstr "" +"Pomaže Vam sa manipulacijom predračuna, prodajnih narudžbi i fakturisanjem." #. module: base #: field:res.users,login_date:0 msgid "Latest connection" -msgstr "" +msgstr "Zadnja prijava" #. module: base #: field:res.groups,implied_ids:0 msgid "Inherits" -msgstr "" +msgstr "Nasljeđuje" #. module: base #: selection:ir.translation,type:0 msgid "Selection" -msgstr "" +msgstr "Odabir" #. module: base #: view:change.password.wizard:0 #: model:ir.actions.act_window,name:base.change_password_wizard_action #: view:res.users:0 msgid "Change Password" -msgstr "" +msgstr "Promjeni šifru" #. module: base #: model:ir.module.module,description:base.module_l10n_es @@ -12262,31 +12425,33 @@ msgid "" "You try to install module '%s' that depends on module '%s'.\n" "But the latter module is not available in your system." msgstr "" +"Pokušali ste instalirati modul '%s' koji ovisi o modulu '%s' \n" +"koji nije dostupan na vašem sistemu." #. module: base #: view:base.language.import:0 #: model:ir.actions.act_window,name:base.action_view_base_import_language #: model:ir.ui.menu,name:base.menu_view_base_import_language msgid "Import Translation" -msgstr "" +msgstr "Uvezi prevod" #. module: base #: view:ir.module.module:0 #: field:ir.module.module,category_id:0 msgid "Category" -msgstr "" +msgstr "Kategorija" #. module: base #: view:ir.attachment:0 #: selection:ir.attachment,type:0 #: selection:ir.property,type:0 msgid "Binary" -msgstr "" +msgstr "Binarni" #. module: base #: model:res.partner.title,name:base.res_partner_title_doctor msgid "Doctor" -msgstr "" +msgstr "Doktor" #. module: base #: model:ir.module.module,description:base.module_mrp_repair @@ -12318,17 +12483,17 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_auth_ldap msgid "Authentication via LDAP" -msgstr "" +msgstr "LDAP Autentikacija" #. module: base #: view:workflow.activity:0 msgid "Conditions" -msgstr "" +msgstr "Uslovi" #. module: base #: model:ir.actions.act_window,name:base.action_partner_other_form msgid "Other Partners" -msgstr "" +msgstr "Ostali partneri" #. module: base #: field:base.language.install,state:0 @@ -12343,39 +12508,39 @@ msgstr "" #: view:workflow.workitem:0 #: field:workflow.workitem,state:0 msgid "Status" -msgstr "" +msgstr "Status" #. module: base #: model:ir.actions.act_window,name:base.action_currency_form #: model:ir.ui.menu,name:base.menu_action_currency_form #: view:res.currency:0 msgid "Currencies" -msgstr "" +msgstr "Valute" #. module: base #: model:res.partner.category,name:base.res_partner_category_8 msgid "Consultancy Services" -msgstr "" +msgstr "Konsultantske usluge" #. module: base #: help:ir.values,value:0 msgid "Default value (pickled) or reference to an action" -msgstr "" +msgstr "Zadana vrijednost (ustaljena) ili referenca do neke akcije" #. module: base #: field:ir.actions.report.xml,auto:0 msgid "Custom Python Parser" -msgstr "" +msgstr "Prilagođen Python Parser" #. module: base #: sql_constraint:res.groups:0 msgid "The name of the group must be unique !" -msgstr "" +msgstr "Naziv grupe mora biti jedinstven!" #. module: base #: help:ir.translation,module:0 msgid "Module this term belongs to" -msgstr "" +msgstr "Modul kojem ovaj termin pripada" #. module: base #: model:ir.module.module,description:base.module_web_view_editor @@ -12390,7 +12555,7 @@ msgstr "" #. module: base #: view:ir.sequence:0 msgid "Hour 00->12: %(h12)s" -msgstr "" +msgstr "Sat 00->12: %(h12)s" #. module: base #: model:res.country,name:base.dk @@ -12400,7 +12565,7 @@ msgstr "" #. module: base #: field:res.country,code:0 msgid "Country Code" -msgstr "" +msgstr "Šifra države" #. module: base #: model:ir.model,name:base.model_workflow_instance @@ -12411,7 +12576,7 @@ msgstr "workflow.instance" #: code:addons/orm.py:479 #, python-format msgid "Unknown attribute %s in %s " -msgstr "" +msgstr "Nepoznat atribut %s u %s " #. module: base #: view:res.lang:0 @@ -12434,7 +12599,7 @@ msgstr "" #: code:addons/fields.py:130 #, python-format msgid "undefined get method !" -msgstr "" +msgstr "nedefinisana get metoda !" #. module: base #: selection:base.language.install,lang:0 @@ -12444,7 +12609,7 @@ msgstr "" #. module: base #: model:res.partner.title,name:base.res_partner_title_madam msgid "Madam" -msgstr "" +msgstr "Gospođa" #. module: base #: model:res.country,name:base.ee @@ -12455,27 +12620,27 @@ msgstr "" #: model:ir.module.module,shortdesc:base.module_board #: model:ir.ui.menu,name:base.menu_reporting_dashboard msgid "Dashboards" -msgstr "" +msgstr "Kontrolne ploče" #. module: base #: model:ir.module.module,shortdesc:base.module_procurement msgid "Procurements" -msgstr "" +msgstr "Naručivanja" #. module: base #: model:res.partner.category,name:base.res_partner_category_6 msgid "Bronze" -msgstr "" +msgstr "Brončani" #. module: base #: model:ir.module.module,shortdesc:base.module_hr_payroll_account msgid "Payroll Accounting" -msgstr "" +msgstr "Računovodstvo plata" #. module: base #: view:res.users:0 msgid "Change password" -msgstr "" +msgstr "Promijeni šifru" #. module: base #: model:res.country,name:base.sr @@ -12485,22 +12650,22 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_sale_order_dates msgid "Dates on Sales Order" -msgstr "" +msgstr "Datumi na prodajnim nalozima" #. module: base #: view:ir.attachment:0 msgid "Creation Month" -msgstr "" +msgstr "Mjesec kreiranja" #. module: base #: field:ir.module.module,demo:0 msgid "Demo Data" -msgstr "" +msgstr "Demo Podaci" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_mister msgid "Mr." -msgstr "" +msgstr "Gdin." #. module: base #: model:res.country,name:base.mv @@ -12510,7 +12675,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_portal_crm msgid "Portal CRM" -msgstr "" +msgstr "CRM portal" #. module: base #: model:ir.ui.menu,name:base.next_id_4 @@ -12520,22 +12685,22 @@ msgstr "Objekti niskog nivoa" #. module: base #: help:ir.values,model:0 msgid "Model to which this entry applies" -msgstr "" +msgstr "Model na koji se odnosi ovaj zapis" #. module: base #: field:res.country,address_format:0 msgid "Address Format" -msgstr "" +msgstr "Format adrese" #. module: base #: model:ir.model,name:base.model_change_password_user msgid "Change Password Wizard User" -msgstr "" +msgstr "Čarobnjak promjene šifre korisnika" #. module: base #: model:res.groups,name:base.group_no_one msgid "Technical Features" -msgstr "" +msgstr "Tehničke mogućnosti" #. module: base #: model:ir.module.module,description:base.module_l10n_ve @@ -12584,13 +12749,15 @@ msgid "" "Here is what we got instead:\n" " %s" msgstr "" +"Ovo je što smo dobili umjesto toga:\n" +" %s" #. module: base #: model:ir.actions.act_window,name:base.action_model_data #: view:ir.model.data:0 #: model:ir.ui.menu,name:base.ir_model_data_menu msgid "External Identifiers" -msgstr "" +msgstr "Vanjski identifikatori" #. module: base #: selection:base.language.install,lang:0 @@ -12610,11 +12777,14 @@ msgid "" "OpenERP. They are launched during the installation of new modules, but you " "can choose to restart some wizards manually from this menu." msgstr "" +"Konfiguracijski čarobnjaci se koriste da Vam pomognu konfigurisati novu " +"istancu OpenERP-a. Pokreću se tokom instalacije novih modula, ali možete i " +"da izaberete da ponovno pokrenete neke od čarobnjaka ručno iz ovog menija." #. module: base #: field:ir.actions.report.xml,report_sxw:0 msgid "SXW Path" -msgstr "" +msgstr "SXW putanja" #. module: base #: model:ir.module.module,description:base.module_account_asset @@ -12635,19 +12805,19 @@ msgstr "" #. module: base #: field:ir.cron,numbercall:0 msgid "Number of Calls" -msgstr "" +msgstr "Broj pokretanja" #. module: base #: code:addons/base/res/res_bank.py:192 #, python-format msgid "BANK" -msgstr "" +msgstr "BANKA" #. module: base #: model:ir.module.category,name:base.module_category_point_of_sale #: model:ir.module.module,shortdesc:base.module_point_of_sale msgid "Point of Sale" -msgstr "" +msgstr "POS Kasa" #. module: base #: model:ir.module.module,description:base.module_mail @@ -12690,6 +12860,8 @@ msgid "" "Important when you deal with multiple actions, the execution order will be " "decided based on this, low number is higher priority." msgstr "" +"Važno kada radite sa više akcija, redosljed izvršavanja će biti odlučen na " +"osnovu ovoga, manji broj veći prioritet." #. module: base #: model:res.country,name:base.gr @@ -12699,12 +12871,12 @@ msgstr "" #. module: base #: view:res.config:0 msgid "Apply" -msgstr "" +msgstr "Primjeni" #. module: base #: field:res.request,trigger_date:0 msgid "Trigger Date" -msgstr "" +msgstr "Datum okidanja" #. module: base #: selection:base.language.install,lang:0 @@ -12730,17 +12902,17 @@ msgstr "" #. module: base #: sql_constraint:res.country:0 msgid "The code of the country must be unique !" -msgstr "" +msgstr "Šifra države mora biti jedinstvena!" #. module: base #: selection:ir.module.module.dependency,state:0 msgid "Uninstallable" -msgstr "" +msgstr "Ne može se instalirati" #. module: base #: view:res.partner.category:0 msgid "Partner Category" -msgstr "" +msgstr "Kategorija partnera" #. module: base #: view:ir.actions.server:0 @@ -12754,6 +12926,8 @@ msgid "" "Helps you manage your inventory and main stock operations: delivery orders, " "receptions, etc." msgstr "" +"Pomaže Vam u upravljanju popisa zalihe (inventure) i glavnim operacijama " +"zalihe: nalozi isporuke, prijemi, itd..." #. module: base #: model:ir.model,name:base.model_ir_values @@ -12763,12 +12937,12 @@ msgstr "" #. module: base #: model:ir.model,name:base.model_base_module_update msgid "Update Module" -msgstr "" +msgstr "Ažuriraj modul" #. module: base #: view:ir.model.fields:0 msgid "Translate" -msgstr "" +msgstr "Prevedi" #. module: base #: field:res.request.history,body:0 @@ -12808,7 +12982,7 @@ msgstr "" #. module: base #: field:res.users,menu_id:0 msgid "Menu Action" -msgstr "" +msgstr "Akcija menija" #. module: base #: help:ir.model.fields,selection:0 @@ -12817,6 +12991,8 @@ msgid "" "defining a list of (key, label) pairs. For example: " "[('blue','Blue'),('yellow','Yellow')]" msgstr "" +"Lista opcija za polje odabira, specifirano kao Python izraz koji definira " +"listu (key, label) parova. Na primjer:[('blue','Blue'),('yellow','Yellow')]" #. module: base #: selection:base.language.export,state:0 @@ -12830,16 +13006,18 @@ msgid "" "Please define at least one SMTP server, or provide the SMTP parameters " "explicitly." msgstr "" +"Molimo Vas da definišete makar jedan SMTP server, ili obezbjedite parametre " +"SMTP-a eksplicitno." #. module: base #: view:ir.attachment:0 msgid "Filter on my documents" -msgstr "" +msgstr "Filtriraj moje dokumente" #. module: base #: model:ir.module.module,summary:base.module_project_gtd msgid "Personal Tasks, Contexts, Timeboxes" -msgstr "" +msgstr "Lični zadatci, Konteksti, Vremenske kutije" #. module: base #: model:ir.module.module,description:base.module_l10n_cr @@ -12867,17 +13045,17 @@ msgstr "" #: model:ir.ui.menu,name:base.menu_procurement_management_supplier_name #: view:res.partner:0 msgid "Suppliers" -msgstr "" +msgstr "Dobavljači" #. module: base #: field:res.request,ref_doc2:0 msgid "Document Ref 2" -msgstr "" +msgstr "Vezni dokument 2" #. module: base #: field:res.request,ref_doc1:0 msgid "Document Ref 1" -msgstr "" +msgstr "Vezni dokument 1" #. module: base #: model:res.country,name:base.ga @@ -12887,13 +13065,13 @@ msgstr "" #. module: base #: model:ir.module.module,summary:base.module_stock msgid "Inventory, Logistic, Storage" -msgstr "" +msgstr "Inventura, Logistika, Skladištenje" #. module: base #: view:ir.actions.act_window:0 #: selection:ir.translation,type:0 msgid "Help" -msgstr "" +msgstr "Pomoć" #. module: base #: view:ir.model:0 @@ -12902,7 +13080,7 @@ msgstr "" #: model:res.groups,name:base.group_erp_manager #: view:res.users:0 msgid "Access Rights" -msgstr "" +msgstr "Prava pristupa" #. module: base #: model:res.country,name:base.gl @@ -12913,7 +13091,7 @@ msgstr "" #: view:res.partner.bank:0 #: field:res.partner.bank,acc_number:0 msgid "Account Number" -msgstr "" +msgstr "Broj računa" #. module: base #: view:ir.rule:0 @@ -12930,7 +13108,7 @@ msgstr "" #. module: base #: view:res.lang:0 msgid "1. %c ==> Fri Dec 5 18:25:20 2008" -msgstr "" +msgstr "1. %c ==> Pet Dec 5 18:25:20 2008" #. module: base #: model:res.country,name:base.nc @@ -12940,7 +13118,7 @@ msgstr "" #. module: base #: field:ir.model,osv_memory:0 msgid "Transient Model" -msgstr "" +msgstr "Prolazni model (osv_memory)" #. module: base #: model:res.country,name:base.cy @@ -12950,14 +13128,14 @@ msgstr "" #. module: base #: field:res.users,new_password:0 msgid "Set Password" -msgstr "" +msgstr "Postavi šifru" #. module: base #: field:ir.actions.server,subject:0 #: field:res.request,name:0 #: view:res.request.link:0 msgid "Subject" -msgstr "" +msgstr "Tema" #. module: base #: model:ir.module.module,description:base.module_membership @@ -12982,23 +13160,23 @@ msgstr "" #. module: base #: selection:res.currency,position:0 msgid "Before Amount" -msgstr "" +msgstr "Prije iznosa" #. module: base #: field:res.request,act_from:0 #: field:res.request.history,act_from:0 msgid "From" -msgstr "" +msgstr "Od" #. module: base #: view:res.users:0 msgid "Preferences" -msgstr "" +msgstr "Postavke" #. module: base #: model:res.partner.category,name:base.res_partner_category_9 msgid "Components Buyer" -msgstr "" +msgstr "Kupac komponenti" #. module: base #: model:ir.module.module,description:base.module_web_tests_demo @@ -13014,17 +13192,17 @@ msgstr "" #. module: base #: help:ir.cron,function:0 msgid "Name of the method to be called when this job is processed." -msgstr "" +msgstr "Ime metode za pozivanje kada se ovaj posao bude obrađivao." #. module: base #: field:ir.actions.client,tag:0 msgid "Client action tag" -msgstr "" +msgstr "Oznaka klijentske akcije" #. module: base #: field:ir.values,model_id:0 msgid "Model (change only)" -msgstr "" +msgstr "Model (samo izmjene)" #. module: base #: model:ir.module.module,description:base.module_marketing_campaign_crm_demo @@ -13052,29 +13230,30 @@ msgid "" "The Selection Options expression is must be in the [('key','Label'), ...] " "format!" msgstr "" +"Format izraza opcija selekcije mora biti u formatu [('key','Label'), ...] !" #. module: base #: field:res.company,company_registry:0 msgid "Company Registry" -msgstr "" +msgstr "Matični broj" #. module: base #: view:ir.actions.report.xml:0 #: view:res.currency:0 msgid "Miscellaneous" -msgstr "" +msgstr "Dodatna podešavanja" #. module: base #: model:ir.actions.act_window,name:base.action_ir_mail_server_list #: view:ir.mail_server:0 #: model:ir.ui.menu,name:base.menu_mail_servers msgid "Outgoing Mail Servers" -msgstr "" +msgstr "Odlazni mail serveri" #. module: base #: model:ir.ui.menu,name:base.menu_custom msgid "Technical" -msgstr "" +msgstr "Tehnički detalji" #. module: base #: model:res.country,name:base.cn @@ -13087,6 +13266,8 @@ msgid "" "The object that should receive the workflow signal (must have an associated " "workflow)" msgstr "" +"Objekat koji bi trebao da primi signal radnog toka (mora imati pridružen " +"radni tok)" #. module: base #: model:ir.module.category,description:base.module_category_account_voucher @@ -13094,6 +13275,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 "" +"Dozvoljava Vam da kreirate vaše fakture i pratite plaćanja. To je lakša " +"verzija modula računovodstva za menadžere koji nisu računovođe." #. module: base #: model:res.country,name:base.eh @@ -13103,7 +13286,7 @@ msgstr "" #. module: base #: model:ir.module.category,name:base.module_category_account_voucher msgid "Invoicing & Payments" -msgstr "" +msgstr "Fakturisanje i Plaćanja" #. module: base #: model:ir.actions.act_window,help:base.action_res_company_form @@ -13111,6 +13294,9 @@ msgid "" "Create and manage the companies that will be managed by OpenERP from here. " "Shops or subsidiaries can be created and maintained from here." msgstr "" +"Kreirajte i upravljajte kompanijama koje će biti upravljane od strane " +"OpenERP-a odavde. Prodavnice i podružnice mogu biti kreirane i održavane " +"odavde." #. module: base #: model:res.country,name:base.id @@ -13141,6 +13327,8 @@ msgid "" "Expression, must be True to match\n" "use context.get or user (browse)" msgstr "" +"Izraz mora biti Tačan da odgovara \n" +"korištenju context.get ili user (browse)" #. module: base #: model:res.country,name:base.bg @@ -13166,12 +13354,12 @@ msgstr "" #: field:res.currency,name:0 #: field:res.currency.rate,currency_id:0 msgid "Currency" -msgstr "" +msgstr "Valuta" #. module: base #: view:res.lang:0 msgid "5. %y, %Y ==> 08, 2008" -msgstr "" +msgstr "5. %y, %Y ==> 08, 2013" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_ltd @@ -13214,12 +13402,12 @@ msgstr "" #. module: base #: model:ir.module.category,name:base.module_category_administration msgid "Administration" -msgstr "" +msgstr "Administracija" #. module: base #: view:base.module.update:0 msgid "Click on Update below to start the process..." -msgstr "" +msgstr "Kliknite na Ažuriraj ispod da započnete proces..." #. module: base #: model:res.country,name:base.ir @@ -13237,12 +13425,12 @@ msgstr "" #: field:res.partner,has_image:0 #: field:res.users,user_email:0 msgid "unknown" -msgstr "" +msgstr "nepoznato" #. module: base #: field:res.currency,symbol:0 msgid "Symbol" -msgstr "" +msgstr "Znak" #. module: base #: help:res.partner,image_medium:0 @@ -13255,13 +13443,13 @@ msgstr "" #. module: base #: view:base.update.translations:0 msgid "Synchronize Translation" -msgstr "" +msgstr "Sinkronizuj prevode" #. module: base #: view:res.partner.bank:0 #: field:res.partner.bank,bank_name:0 msgid "Bank Name" -msgstr "" +msgstr "Naziv banke" #. module: base #: model:res.country,name:base.ki @@ -13278,24 +13466,24 @@ msgstr "" #: model:ir.ui.menu,name:base.menu_association #: model:ir.ui.menu,name:base.menu_report_association msgid "Association" -msgstr "" +msgstr "Udruženja" #. module: base #: view:ir.actions.server:0 msgid "Action to Launch" -msgstr "" +msgstr "Akcija za pokretanje" #. module: base #: field:ir.model,modules:0 #: field:ir.model.fields,modules:0 msgid "In Modules" -msgstr "" +msgstr "Unutar modula" #. module: base #: model:ir.module.module,shortdesc:base.module_contacts #: model:ir.ui.menu,name:base.menu_config_address_book msgid "Address Book" -msgstr "" +msgstr "Adresar" #. module: base #: model:ir.model,name:base.model_ir_sequence_type @@ -13310,7 +13498,7 @@ msgstr "" #. module: base #: selection:base.language.export,format:0 msgid "CSV File" -msgstr "" +msgstr "CSV datoteka" #. module: base #: field:res.company,account_no:0 @@ -13340,7 +13528,7 @@ msgstr "" #. module: base #: selection:ir.model,state:0 msgid "Base Object" -msgstr "" +msgstr "Osnovni objekt" #. module: base #: field:ir.cron,priority:0 @@ -13348,27 +13536,27 @@ msgstr "" #: field:res.request,priority:0 #: field:res.request.link,priority:0 msgid "Priority" -msgstr "" +msgstr "Prioritet" #. module: base #: report:ir.module.reference:0 msgid "Dependencies :" -msgstr "" +msgstr "Ovisnosti :" #. module: base #: field:res.company,vat:0 msgid "Tax ID" -msgstr "" +msgstr "PDV Broj" #. module: base #: model:ir.module.module,shortdesc:base.module_account_bank_statement_extensions msgid "Bank Statement Extensions to Support e-banking" -msgstr "" +msgstr "Dodatci bankovnih izvoda kako bi se omogućilo e-bankarstvo" #. module: base #: field:ir.model.fields,field_description:0 msgid "Field Label" -msgstr "" +msgstr "Prikazani naziv polja" #. module: base #: model:res.country,name:base.dj @@ -13378,7 +13566,7 @@ msgstr "Djibouti" #. module: base #: field:ir.translation,value:0 msgid "Translation Value" -msgstr "" +msgstr "Prevedena vrijednost" #. module: base #: model:res.country,name:base.ag @@ -13393,26 +13581,26 @@ msgstr "" #. module: base #: model:ir.module.module,summary:base.module_project msgid "Projects, Tasks" -msgstr "" +msgstr "Projekti, Zadatci" #. module: base #: field:ir.attachment,res_id:0 #: field:workflow.instance,res_id:0 #: field:workflow.triggers,res_id:0 msgid "Resource ID" -msgstr "" +msgstr "ID Resursa" #. module: base #: view:ir.cron:0 #: field:ir.model,info:0 msgid "Information" -msgstr "" +msgstr "Informacije" #. module: base #: code:addons/base/ir/ir_fields.py:146 #, python-format msgid "false" -msgstr "" +msgstr "netačno" #. module: base #: model:ir.module.module,description:base.module_account_analytic_analysis @@ -13443,12 +13631,12 @@ msgstr "" #. module: base #: field:res.partner.category,parent_right:0 msgid "Right parent" -msgstr "" +msgstr "Desni nadređeni" #. module: base #: view:base.module.update:0 msgid "Update Module List" -msgstr "" +msgstr "Ažuriraj listu modula" #. module: base #: code:addons/base/res/res_users.py:685 @@ -13457,7 +13645,7 @@ msgstr "" #: view:res.users:0 #, python-format msgid "Other" -msgstr "" +msgstr "Drugo" #. module: base #: selection:base.language.install,lang:0 @@ -13469,12 +13657,12 @@ msgstr "" #: model:ir.ui.menu,name:base.menu_workflow_activity #: field:workflow,activities:0 msgid "Activities" -msgstr "" +msgstr "Aktivnosti" #. module: base #: model:ir.module.module,shortdesc:base.module_product msgid "Products & Pricelists" -msgstr "" +msgstr "Proizvodi & Cjenovnici" #. module: base #: help:ir.filters,user_id:0 @@ -13482,11 +13670,13 @@ msgid "" "The user this filter is private to. When left empty the filter is public and " "available to all users." msgstr "" +"Korisnik kojem ovaj filter pripada. Ako se ostavi prazno filter je javan i " +"dostupan svim korisnicima." #. module: base #: field:ir.actions.act_window,auto_refresh:0 msgid "Auto-Refresh" -msgstr "" +msgstr "Automatsko osvježavanje" #. module: base #: model:ir.module.module,description:base.module_product_expiry @@ -13511,22 +13701,24 @@ msgid "" "Automatically set to let administators find new terms that might need to be " "translated" msgstr "" +"Automatski postavljeno da dozvoli administratorima da pronađu termine koji " +"možda treba da budu prevedeni" #. module: base #: code:addons/base/ir/ir_model.py:85 #, python-format msgid "The osv_memory field can only be compared with = and != operator." -msgstr "" +msgstr "Polje osv_memory može se upoređivati samo sa = ili =! operatorima." #. module: base #: view:res.partner:0 msgid "Fax:" -msgstr "" +msgstr "Faks:" #. module: base #: selection:ir.ui.view,type:0 msgid "Diagram" -msgstr "" +msgstr "Dijagram" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_es @@ -13536,12 +13728,12 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_stock_no_autopicking msgid "Picking Before Manufacturing" -msgstr "" +msgstr "Prikupljanje prije proizvodnje" #. module: base #: model:ir.module.module,summary:base.module_note_pad msgid "Sticky memos, Collaborative" -msgstr "" +msgstr "Ljepljivi podsjetnici, Kolaborativni" #. module: base #: model:res.country,name:base.wf @@ -13551,7 +13743,7 @@ msgstr "" #. module: base #: help:multi_company.default,name:0 msgid "Name it to easily find a record" -msgstr "" +msgstr "Nazovite ga da lakše pronađete zapis" #. module: base #: model:ir.module.module,description:base.module_hr @@ -13593,7 +13785,7 @@ msgstr "" #: view:ir.model.data:0 #: field:ir.model.data,name:0 msgid "External Identifier" -msgstr "" +msgstr "Vanjski identifikator" #. module: base #: model:ir.module.module,description:base.module_audittrail @@ -13614,7 +13806,7 @@ msgstr "" #: model:ir.actions.act_window,name:base.grant_menu_access #: model:ir.ui.menu,name:base.menu_grant_menu_access msgid "Menu Items" -msgstr "" +msgstr "Stavke menija" #. module: base #: model:res.groups,comment:base.group_sale_salesman_all_leads @@ -13622,11 +13814,12 @@ msgid "" "the user will have access to all records of everyone in the sales " "application." msgstr "" +"korisnik će imati pristup svim zapisima o svima u aplikaciji prodaje." #. module: base #: model:ir.module.module,shortdesc:base.module_event msgid "Events Organisation" -msgstr "" +msgstr "Organizacija događaja" #. module: base #: model:ir.actions.act_window,name:base.ir_sequence_actions @@ -13634,12 +13827,12 @@ msgstr "" #: model:ir.ui.menu,name:base.next_id_6 #: view:workflow.activity:0 msgid "Actions" -msgstr "" +msgstr "Akcije" #. module: base #: model:ir.module.module,shortdesc:base.module_delivery msgid "Delivery Costs" -msgstr "" +msgstr "Troškovi Dostave" #. module: base #: code:addons/base/ir/ir_cron.py:263 @@ -13648,12 +13841,14 @@ msgid "" "This cron task is currently being executed and may not be modified, please " "try again in a few minutes" msgstr "" +"Ovaj Cron zadatak se trenutno izvršava i nije ga moguće mijenjati, molimo " +"pokušajte ponovo za par minuta" #. module: base #: view:base.language.export:0 #: field:ir.exports.line,export_id:0 msgid "Export" -msgstr "" +msgstr "Izvoz" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_ma @@ -13664,7 +13859,7 @@ msgstr "" #: field:res.bank,bic:0 #: field:res.partner.bank,bank_bic:0 msgid "Bank Identifier Code" -msgstr "" +msgstr "Identifikacijska šifra banke" #. module: base #: view:base.language.export:0 @@ -13674,6 +13869,10 @@ msgid "" " the rightmost column (value) contains the " "translations" msgstr "" +"CSV format: možete ga editovati direktno sa vašim omiljenim spreadsheet " +"software-om,\n" +" zadnja desna kolona (vrijednost) sadrži " +"prevod" #. module: base #: model:ir.module.module,description:base.module_account_chart @@ -13688,24 +13887,24 @@ msgstr "" #. module: base #: view:ir.rule:0 msgid "Record rules" -msgstr "" +msgstr "Pravila zapisa" #. module: base #: help:workflow.transition,act_to:0 msgid "The destination activity." -msgstr "" +msgstr "Odredišna aktivnost" #. module: base #: model:ir.module.module,shortdesc:base.module_project_issue msgid "Issue Tracker" -msgstr "" +msgstr "Praćenje pitanja" #. module: base #: view:base.module.update:0 #: view:base.module.upgrade:0 #: view:base.update.translations:0 msgid "Update" -msgstr "" +msgstr "Ažuriraj" #. module: base #: model:ir.module.module,description:base.module_plugin @@ -13741,7 +13940,7 @@ msgstr "" #. module: base #: model:ir.actions.report.xml,name:base.ir_module_reference_print msgid "Technical guide" -msgstr "" +msgstr "Tehničko uputstvo" #. module: base #: model:res.country,name:base.tz @@ -13756,7 +13955,7 @@ msgstr "" #. module: base #: selection:ir.model.fields,select_level:0 msgid "Advanced Search (deprecated)" -msgstr "" +msgstr "Napredna pretraga (zastarjelo)" #. module: base #: model:res.country,name:base.cx @@ -13771,6 +13970,10 @@ msgid "" "your home page.\n" "You can track your suppliers, customers and other contacts.\n" msgstr "" +"\n" +"Ovaj modul vam daje brzi pregled adresara, dostupnog sa Vaše početne " +"stranice.\n" +"Možete da pratite dobavljače, kupce i druge kontakte.\n" #. module: base #: help:res.company,custom_footer:0 @@ -13778,31 +13981,33 @@ msgid "" "Check this to define the report footer manually. Otherwise it will be " "filled in automatically." msgstr "" +"Označite ovdje za ručni unos podnožja stranice, ili će podnožje biti " +"automatski popunjeno." #. module: base #: view:res.partner:0 msgid "Supplier Partners" -msgstr "" +msgstr "Partneri dobavljači" #. module: base #: view:res.config.installer:0 msgid "Install Modules" -msgstr "" +msgstr "Instaliraj module" #. module: base #: model:ir.ui.menu,name:base.menu_import_crm msgid "Import & Synchronize" -msgstr "" +msgstr "Uvezi i Sinhronizuj" #. module: base #: view:res.partner:0 msgid "Customer Partners" -msgstr "" +msgstr "Partneri kupci" #. module: base #: sql_constraint:res.users:0 msgid "You can not have two users with the same login !" -msgstr "" +msgstr "Ne možete imati dva korisnika sa istim korisničkim imenom !" #. module: base #: model:ir.model,name:base.model_res_request_history @@ -13812,18 +14017,18 @@ msgstr "" #. module: base #: model:ir.model,name:base.model_multi_company_default msgid "Default multi company" -msgstr "" +msgstr "Zadana multi kompanija" #. module: base #: field:ir.translation,src:0 msgid "Source" -msgstr "" +msgstr "Izvorno" #. module: base #: field:ir.model.constraint,date_init:0 #: field:ir.model.relation,date_init:0 msgid "Initialization Date" -msgstr "" +msgstr "Datum inicijalizacije" #. module: base #: model:res.country,name:base.vu @@ -13858,7 +14063,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_crm msgid "CRM" -msgstr "" +msgstr "CRM" #. module: base #: model:ir.module.module,description:base.module_base_report_designer @@ -13875,7 +14080,7 @@ msgstr "" #. module: base #: view:base.module.upgrade:0 msgid "Start configuration" -msgstr "" +msgstr "Započni konfiguraciju" #. module: base #: selection:base.language.install,lang:0 @@ -13899,6 +14104,8 @@ msgid "" "Invalid group_by specification: \"%s\".\n" "A group_by specification must be a list of valid fields." msgstr "" +"Pogrešna specifikacija grupiši po: \"%s\".\n" +"Grupiši po specifikacija mora biti lista validnih polja." #. module: base #: selection:ir.mail_server,smtp_encryption:0 @@ -13909,6 +14116,7 @@ msgstr "" #: help:ir.actions.act_window,usage:0 msgid "Used to filter menu and home actions from the user form." msgstr "" +"Koristi se za filtriranje menija i početne akcije iz korisničke forme." #. module: base #: model:res.country,name:base.sa @@ -13946,7 +14154,7 @@ msgstr "" #: field:ir.actions.server,trigger_obj_id:0 #: field:ir.model.fields,relation_field:0 msgid "Relation Field" -msgstr "" +msgstr "Relaciono Polje" #. module: base #: model:ir.module.module,description:base.module_portal_project @@ -13963,12 +14171,12 @@ msgstr "" #: code:addons/base/module/wizard/base_module_configuration.py:38 #, python-format msgid "System Configuration done" -msgstr "" +msgstr "Konfiguracija sistema završena" #. module: base #: field:ir.attachment,db_datas:0 msgid "Database Data" -msgstr "" +msgstr "Podatci baze" #. module: base #: model:res.country,name:base.tc @@ -13978,19 +14186,19 @@ msgstr "" #. module: base #: field:workflow.triggers,instance_id:0 msgid "Destination Instance" -msgstr "" +msgstr "Odredišna istanca" #. module: base #: field:ir.actions.act_window,multi:0 #: field:ir.actions.wizard,multi:0 msgid "Action on Multiple Doc." -msgstr "" +msgstr "Akcija na više dokumenata" #. module: base #: model:ir.actions.act_window,name:base.action_partner_title_partner #: model:ir.ui.menu,name:base.menu_partner_title_partner msgid "Titles" -msgstr "" +msgstr "Naslovi" #. module: base #: model:ir.module.module,description:base.module_anonymization @@ -14021,6 +14229,9 @@ msgid "" "later is slower than the former but forbids any gap in the sequence (while " "they are possible in the former)." msgstr "" +"Dvije implementacije objekta sekvenci su ponuđene: Standardna i Bez razmaka. " +"Druga je sporija od prve ali onemogućava bilo kakav razmak u sekvencama (dok " +"su u prvoj moguće)" #. module: base #: model:res.country,name:base.gn @@ -14040,23 +14251,23 @@ msgstr "" #. module: base #: model:ir.module.module,summary:base.module_base_calendar msgid "Personal & Shared Calendar" -msgstr "" +msgstr "Lični i Djeljeni Kalendar" #. module: base #: selection:res.request,priority:0 msgid "Low" -msgstr "" +msgstr "Nizak" #. module: base #: code:addons/base/ir/ir_ui_menu.py:379 #, python-format msgid "Error ! You can not create recursive Menu." -msgstr "" +msgstr "Greška ! Ne možete kreirati rekurzivni meni." #. module: base #: view:ir.translation:0 msgid "Web-only translations" -msgstr "" +msgstr "Samo Web prevodi" #. module: base #: view:ir.rule:0 @@ -14064,6 +14275,8 @@ msgid "" "3. If user belongs to several groups, the results from step 2 are combined " "with logical OR operator" msgstr "" +"3. Ako korisnik ima više grupa, rezultati iz 2. koraka se kombiniraju " +"logičkim ili (OR) operatorom" #. module: base #: model:ir.module.module,description:base.module_l10n_be @@ -14115,12 +14328,12 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_base_gengo msgid "Automated Translations through Gengo API" -msgstr "" +msgstr "Automatizirani prevodi preko Gengo API" #. module: base #: model:ir.module.module,shortdesc:base.module_account_payment msgid "Suppliers Payment Management" -msgstr "" +msgstr "Upravljanje plaćanjima dobavljačima" #. module: base #: model:res.country,name:base.sv @@ -14134,12 +14347,12 @@ msgstr "" #: field:res.partner,phone:0 #, python-format msgid "Phone" -msgstr "" +msgstr "Telefon" #. module: base #: field:res.groups,menu_access:0 msgid "Access Menu" -msgstr "" +msgstr "Pristup meniju" #. module: base #: model:res.country,name:base.th @@ -14149,17 +14362,17 @@ msgstr "" #. module: base #: model:ir.model,name:base.model_change_password_wizard msgid "Change Password Wizard" -msgstr "" +msgstr "Čarobnjak za promjenu lozinke" #. module: base #: model:ir.module.module,summary:base.module_account_voucher msgid "Send Invoices and Track Payments" -msgstr "" +msgstr "Slanje faktura i Praćenje plaćanja" #. module: base #: model:ir.ui.menu,name:base.menu_crm_config_lead msgid "Leads & Opportunities" -msgstr "" +msgstr "Potencijali i Prilike" #. module: base #: model:res.country,name:base.gg @@ -14213,23 +14426,23 @@ msgstr "" #: selection:workflow.activity,join_mode:0 #: selection:workflow.activity,split_mode:0 msgid "And" -msgstr "" +msgstr "i" #. module: base #: help:ir.values,res_id:0 msgid "" "Database identifier of the record to which this applies. 0 = for all records" -msgstr "" +msgstr "Identifikator zapisa baze na koji se ovo odnosi. 0 = za sve zapise." #. module: base #: field:ir.model.fields,relation:0 msgid "Object Relation" -msgstr "" +msgstr "Relacija objekta" #. module: base #: model:ir.module.module,shortdesc:base.module_account_voucher msgid "eInvoicing & Payments" -msgstr "" +msgstr "eFakture i Plaćanja" #. module: base #: view:ir.rule:0 @@ -14260,25 +14473,25 @@ msgstr "" #. module: base #: model:ir.model,name:base.model_res_currency_rate msgid "Currency Rate" -msgstr "" +msgstr "Kursna lista" #. module: base #: view:base.module.upgrade:0 #: field:base.module.upgrade,module_info:0 msgid "Modules to Update" -msgstr "" +msgstr "Moduli za nadograndnju" #. module: base #: model:ir.ui.menu,name:base.menu_custom_multicompany msgid "Multi-Companies" -msgstr "" +msgstr "Višekompanijske kompanije" #. module: base #: field:workflow,osv:0 #: view:workflow.instance:0 #: field:workflow.instance,res_type:0 msgid "Resource Object" -msgstr "" +msgstr "Objekt resursa" #. module: base #: model:ir.module.module,shortdesc:base.module_crm_helpdesk @@ -14288,12 +14501,12 @@ msgstr "" #. module: base #: field:ir.rule,perm_write:0 msgid "Apply for Write" -msgstr "" +msgstr "Pisanje" #. module: base #: field:ir.ui.menu,parent_left:0 msgid "Parent Left" -msgstr "" +msgstr "Roditelj lijevo" #. module: base #: model:ir.module.module,description:base.module_document_page @@ -14311,6 +14524,9 @@ msgid "" "Python code to be executed if condition is met.\n" "It is a Python block that can use the same values as for the condition field" msgstr "" +"Python kod koji će se izvršiti ako je uslov ispunjen.\n" +"To je Python-ov blok koji može da koristi iste vrijednosti kao i uslovna " +"polja." #. module: base #: model:ir.actions.act_window,help:base.grant_menu_access @@ -14321,16 +14537,21 @@ msgid "" "be assigned to specific groups in order to make them accessible to some " "users within the system." msgstr "" +"Upravljajte i prilagodite stavke koje su dostupne i prikazane u vašem " +"OpenERP sistemskom meniju. Možete da obrišete neku stavku klikom na kućicu " +"na početku svake linije, te klikom na meni Obriši iz menija koji se pojavi " +"(Više). Stavke mogu biti dodjeljene specifičnim grupama da bi ste ih " +"omogućili nekim korisnicima u vašem sistemu." #. module: base #: field:ir.ui.view,field_parent:0 msgid "Child Field" -msgstr "" +msgstr "POdređeno polje" #. module: base #: view:ir.rule:0 msgid "Detailed algorithm:" -msgstr "" +msgstr "Detaljni algoritam:" #. module: base #: field:ir.actions.act_url,usage:0 @@ -14342,12 +14563,12 @@ msgstr "" #: field:ir.actions.server,usage:0 #: field:ir.actions.wizard,usage:0 msgid "Action Usage" -msgstr "" +msgstr "Svrha akcije" #. module: base #: field:ir.module.module,name:0 msgid "Technical Name" -msgstr "" +msgstr "Tehnički naziv" #. module: base #: model:ir.model,name:base.model_workflow_workitem @@ -14360,11 +14581,13 @@ msgid "" "Lets you install various interesting but non-essential tools like Survey, " "Lunch and Ideas box." msgstr "" +"Dozvoljava Vam instalaciju različitih interesantnih alata kao što su Ankete, " +"Ručak i Ideje." #. module: base #: selection:ir.module.module,state:0 msgid "Not Installable" -msgstr "" +msgstr "Ne može se instalirati" #. module: base #: help:res.lang,iso_code:0 @@ -14374,12 +14597,12 @@ msgstr "ISO oznaka je naziv PO datoteke za potrebe prijevoda" #. module: base #: report:ir.module.reference:0 msgid "View :" -msgstr "" +msgstr "Pogled :" #. module: base #: field:ir.model.fields,view_load:0 msgid "View Auto-Load" -msgstr "" +msgstr "Automatsko učitavanje" #. module: base #: model:ir.module.module,description:base.module_l10n_et @@ -14399,7 +14622,7 @@ msgstr "" #. module: base #: view:res.users:0 msgid "Allowed Companies" -msgstr "" +msgstr "Dopuštene kompanije" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_de @@ -14409,22 +14632,22 @@ msgstr "" #. module: base #: view:ir.sequence:0 msgid "Day of the Year: %(doy)s" -msgstr "" +msgstr "Dan u godini: %(doy)s" #. module: base #: field:ir.ui.menu,web_icon:0 msgid "Web Icon File" -msgstr "" +msgstr "Datoteka web ikone" #. module: base #: model:ir.ui.menu,name:base.menu_view_base_module_upgrade msgid "Apply Scheduled Upgrades" -msgstr "" +msgstr "Primjeni planirane nadogradnje" #. module: base #: model:ir.module.module,shortdesc:base.module_sale_journal msgid "Invoicing Journals" -msgstr "" +msgstr "Dnevnici fakturisanja" #. module: base #: help:ir.ui.view,groups_id:0 @@ -14432,6 +14655,8 @@ msgid "" "If this field is empty, the view applies to all users. Otherwise, the view " "applies to the users of those groups only." msgstr "" +"Ako je ovo polje prazno, pogled se odnosi na sve korisnike. U suprotnom, " +"pogled se odnosi samo na korisnike ovih grupa." #. module: base #: selection:base.language.install,lang:0 @@ -14441,17 +14666,17 @@ msgstr "" #. module: base #: view:base.language.export:0 msgid "Export Settings" -msgstr "" +msgstr "Postavke izvoza" #. module: base #: field:ir.actions.act_window,src_model:0 msgid "Source Model" -msgstr "" +msgstr "Izvorni model" #. module: base #: view:ir.sequence:0 msgid "Day of the Week (0:Monday): %(weekday)s" -msgstr "" +msgstr "Dan u sedmici (0:ponedjeljak): %(weekday)s" #. module: base #: code:addons/base/module/wizard/base_module_upgrade.py:84 @@ -14465,7 +14690,7 @@ msgstr "" #: code:addons/base/ir/ir_model.py:1031 #, python-format msgid "Administrator access is required to uninstall a module" -msgstr "" +msgstr "Potreban je administrativni pristup da se deinstalira modul" #. module: base #: model:ir.model,name:base.model_base_module_configuration @@ -14511,6 +14736,10 @@ msgid "" "\n" "(Document type: %s, Operation: %s)" msgstr "" +"Zahtjevana operacija nije mogla biti izvršena zbog sigurnosnih ograničenja. " +"Molimo Vas da kontaktirate vašeg sistemskog administratora.\n" +"\n" +"(Tip dokumenta: %s, Operacija: %s)" #. module: base #: model:ir.module.module,description:base.module_idea @@ -14536,6 +14765,8 @@ msgid "" "%s This might be '%s' in the current model, or a field of the same name in " "an o2m." msgstr "" +"%s bi mogao biti '%s' u trenutnom modelu, ili polje istog imena u nekom od " +"one2many." #. module: base #: model:ir.module.module,description:base.module_account_payment @@ -14572,14 +14803,14 @@ msgstr "" #: field:ir.model,access_ids:0 #: view:ir.model.access:0 msgid "Access" -msgstr "" +msgstr "Pristup" #. module: base #: code:addons/base/res/res_company.py:165 #: field:res.partner,vat:0 #, python-format msgid "TIN" -msgstr "" +msgstr "JIB/JBMG" #. module: base #: model:res.country,name:base.aw @@ -14590,7 +14821,7 @@ msgstr "" #: code:addons/base/module/wizard/base_module_import.py:58 #, python-format msgid "File is not a zip file!" -msgstr "" +msgstr "Datoteka nije u zip formatu !" #. module: base #: model:res.country,name:base.ar @@ -14600,7 +14831,7 @@ msgstr "" #. module: base #: field:res.groups,full_name:0 msgid "Group Name" -msgstr "" +msgstr "Naziv grupe" #. module: base #: model:res.country,name:base.bh @@ -14614,7 +14845,7 @@ msgstr "" #: field:res.partner,fax:0 #, python-format msgid "Fax" -msgstr "" +msgstr "Fax" #. module: base #: view:ir.attachment:0 @@ -14631,17 +14862,17 @@ msgstr "" #: view:res.users:0 #: field:res.users,company_id:0 msgid "Company" -msgstr "" +msgstr "Kompanija" #. module: base #: model:ir.module.category,name:base.module_category_report_designer msgid "Advanced Reporting" -msgstr "" +msgstr "Napredno izvještavanje" #. module: base #: model:ir.module.module,summary:base.module_purchase msgid "Purchase Orders, Receptions, Supplier Invoices" -msgstr "" +msgstr "Nabavne narudžbe, Prijemi, Fakture dobavljača" #. module: base #: model:ir.module.module,description:base.module_hr_payroll @@ -14674,12 +14905,12 @@ msgstr "" #. module: base #: model:ir.ui.menu,name:base.menu_aftersale msgid "After-Sale Services" -msgstr "" +msgstr "Usluge postprodaje" #. module: base #: field:base.language.import,code:0 msgid "ISO Code" -msgstr "" +msgstr "ISO šifra" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_fr @@ -14689,12 +14920,12 @@ msgstr "" #. module: base #: view:ir.actions.todo:0 msgid "Launch" -msgstr "" +msgstr "Pokreni" #. module: base #: selection:res.partner,type:0 msgid "Shipping" -msgstr "" +msgstr "Prevoznik" #. module: base #: model:ir.module.module,description:base.module_project_mrp @@ -14733,18 +14964,19 @@ msgstr "" #. module: base #: field:ir.actions.act_window,limit:0 msgid "Limit" -msgstr "" +msgstr "Limit" #. module: base #: model:res.groups,name:base.group_hr_user msgid "Officer" -msgstr "" +msgstr "Oficir" #. module: base #: code:addons/orm.py:787 #, python-format msgid "Serialization field `%s` not found for sparse field `%s`!" msgstr "" +"Serijalizacijsko polje `%s` nije pronađeno za prorjeđeno (sparse) polje `%s`!" #. module: base #: model:res.country,name:base.jm @@ -14754,7 +14986,7 @@ msgstr "" #. module: base #: field:res.partner,color:0 msgid "Color Index" -msgstr "" +msgstr "Indeks boje" #. module: base #: model:ir.actions.act_window,help:base.action_partner_category_form @@ -14788,7 +15020,7 @@ msgstr "" #: code:addons/base/ir/ir_model.py:165 #, python-format msgid "Model '%s' contains module data and cannot be removed!" -msgstr "" +msgstr "Model '%s' sadrži modulske podatke koji ne mogu biti uklonjeni!" #. module: base #: model:res.country,name:base.az @@ -14802,12 +15034,12 @@ msgstr "" #: code:addons/base/res/res_partner.py:566 #, python-format msgid "Warning" -msgstr "" +msgstr "Upozorenje" #. module: base #: model:ir.module.module,shortdesc:base.module_edi msgid "Electronic Data Interchange (EDI)" -msgstr "" +msgstr "Elektronska razmjena podataka (EDI)" #. module: base #: model:ir.module.module,shortdesc:base.module_account_anglo_saxon @@ -14823,7 +15055,7 @@ msgstr "" #: view:ir.property:0 #: model:ir.ui.menu,name:base.menu_ir_property msgid "Parameters" -msgstr "" +msgstr "Parametri" #. module: base #: selection:base.language.install,lang:0 @@ -14833,7 +15065,7 @@ msgstr "" #. module: base #: model:ir.module.category,name:base.module_category_generic_modules msgid "Generic Modules" -msgstr "" +msgstr "Opšti moduli" #. module: base #: model:res.country,name:base.mk @@ -14856,7 +15088,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 "SMTP Port. Obično 465 za SSL, i 25 ili 587 u ostalim slučajevima." #. module: base #: model:res.country,name:base.ck @@ -14866,7 +15098,7 @@ msgstr "" #. module: base #: field:ir.model.data,noupdate:0 msgid "Non Updatable" -msgstr "" +msgstr "Nije nadogradivo" #. module: base #: selection:base.language.install,lang:0 @@ -14881,13 +15113,13 @@ msgstr "" #. module: base #: selection:ir.actions.act_window,target:0 msgid "Current Window" -msgstr "" +msgstr "Trenutni prozor" #. module: base #: model:ir.module.category,name:base.module_category_hidden #: view:res.users:0 msgid "Technical Settings" -msgstr "" +msgstr "Tehničke postavke" #. module: base #: model:ir.module.category,description:base.module_category_accounting_and_finance @@ -14895,6 +15127,8 @@ msgid "" "Helps you handle your accounting needs, if you are not an accountant, we " "suggest you to install only the Invoicing." msgstr "" +"Pomaže Vam da upravljate potrebama računovodstva. Ako niste računovođa, " +"predlažemo Vam da instalirate samo fakturisanje." #. module: base #: model:ir.module.module,shortdesc:base.module_plugin_thunderbird @@ -14904,7 +15138,7 @@ msgstr "" #. module: base #: model:ir.module.module,summary:base.module_event msgid "Trainings, Conferences, Meetings, Exhibitions, Registrations" -msgstr "" +msgstr "Edukacije, konferencije, sastanci, izložbe, registracije" #. module: base #: model:ir.model,name:base.model_res_country @@ -14921,12 +15155,12 @@ msgstr "" #: field:res.partner.bank,country_id:0 #: view:res.users:0 msgid "Country" -msgstr "" +msgstr "Država" #. module: base #: model:res.partner.category,name:base.res_partner_category_15 msgid "Wholesaler" -msgstr "" +msgstr "Veleprodaja" #. module: base #: model:ir.module.module,shortdesc:base.module_base_vat @@ -14936,7 +15170,7 @@ msgstr "" #. module: base #: field:ir.model.fields,complete_name:0 msgid "Complete Name" -msgstr "" +msgstr "Puni naziv" #. module: base #: help:ir.actions.wizard,multi:0 @@ -14944,11 +15178,13 @@ msgid "" "If set to true, the wizard will not be displayed on the right toolbar of a " "form view." msgstr "" +"Ako je postavljeno na istinito, čarobnjak neće biti prikazan na desnoj " +"alatnoj traci prozora." #. module: base #: view:ir.values:0 msgid "Action Bindings/Defaults" -msgstr "" +msgstr "Povezivanje akcija/Zadane vrijednosti" #. module: base #: view:base.language.export:0 @@ -14963,6 +15199,8 @@ msgid "" "1. Global rules are combined together with a logical AND operator, and with " "the result of the following steps" msgstr "" +"1. Globalna pravila se kombiniraju logičkim 'i' (AND) operatorom , i sa " +"rezultatom slijedećih koraka" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_nl @@ -14977,7 +15215,7 @@ msgstr "" #. module: base #: view:res.lang:0 msgid "%X - Appropriate time representation." -msgstr "" +msgstr "%X - Odgovarajući prikaz vremena" #. module: base #: selection:base.language.install,lang:0 @@ -14992,11 +15230,16 @@ msgid "" "1,06,500;[1,2,-1] will represent it to be 106,50,0;[3] will represent it as " "106,500. Provided ',' as the thousand separator in each case." msgstr "" +"Format razdijelnika bi trebao biti kao [,n] gdje je 0 < n: započeto s brojem " +"Jedinice. -1 će prekinuti razdvajanje. npr. [3,2,-1] predstavlja 106500 da " +"bude 1,06,500;[1,2,-1] će ga predstavljati kao 106,50,0;[3] će ga " +"predstavljati kao 106,500. Pod uslovom da je ',' razdijelnik hiljada u " +"svakom slučaju." #. module: base #: field:ir.module.module,auto_install:0 msgid "Automatic Installation" -msgstr "" +msgstr "Automatska instalacija" #. module: base #: model:ir.module.module,description:base.module_l10n_hn @@ -15026,7 +15269,7 @@ msgstr "" #. module: base #: selection:ir.translation,type:0 msgid "Report/Template" -msgstr "" +msgstr "Izvještaj/Prijedlog" #. module: base #: model:ir.module.module,description:base.module_account_budget @@ -15066,7 +15309,7 @@ msgstr "" #: selection:ir.actions.act_window.view,view_mode:0 #: selection:ir.ui.view,type:0 msgid "Graph" -msgstr "" +msgstr "Dijagram" #. module: base #: model:ir.model,name:base.model_ir_actions_server @@ -15116,22 +15359,22 @@ msgstr "" #: model:ir.ui.menu,name:base.menu_ir_actions_todo #: model:ir.ui.menu,name:base.menu_ir_actions_todo_form msgid "Configuration Wizards" -msgstr "" +msgstr "Konfiguracijski čarobnjaci" #. module: base #: field:res.lang,code:0 msgid "Locale Code" -msgstr "" +msgstr "Šifra lokalizacije" #. module: base #: field:workflow.activity,split_mode:0 msgid "Split Mode" -msgstr "" +msgstr "Način račvanja" #. module: base #: view:base.module.upgrade:0 msgid "Note that this operation might take a few minutes." -msgstr "" +msgstr "Ova operacija može potrajati nekoliko minuta." #. module: base #: code:addons/base/ir/ir_fields.py:363 @@ -15140,11 +15383,13 @@ msgid "" "Ambiguous specification for field '%(field)s', only provide one of name, " "external id or database id" msgstr "" +"Dvosmislena specifikacija za polje '%(field)s', unesite samo jedno ime, " +"eksterni id ili id baze podataka" #. module: base #: field:ir.sequence,implementation:0 msgid "Implementation" -msgstr "" +msgstr "Implementacija" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_ve @@ -15159,40 +15404,40 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_web_view_editor msgid "View Editor" -msgstr "" +msgstr "Uređivač pogleda" #. module: base #: view:ir.cron:0 msgid "Execution" -msgstr "" +msgstr "Izvršavanje" #. module: base #: field:ir.actions.server,condition:0 #: view:ir.values:0 #: field:workflow.transition,condition:0 msgid "Condition" -msgstr "" +msgstr "Uslov" #. module: base #: model:ir.actions.client,name:base.modules_updates_act_cl #: model:ir.ui.menu,name:base.menu_module_updates msgid "Updates" -msgstr "" +msgstr "Ažuriranja" #. module: base #: help:res.currency,rate:0 msgid "The rate of the currency to the currency of rate 1." -msgstr "" +msgstr "Kurs valute u odnosu na kurs sa valutom 1." #. module: base #: field:ir.ui.view,name:0 msgid "View Name" -msgstr "" +msgstr "Naziv pogleda" #. module: base #: model:ir.model,name:base.model_res_groups msgid "Access Groups" -msgstr "" +msgstr "Pristupne grupe" #. module: base #: selection:base.language.install,lang:0 @@ -15205,6 +15450,8 @@ msgid "" "Only one client action will be executed, last client action will be " "considered in case of multiple client actions." msgstr "" +"Samo jedna klijentska akcija će se izvršiti. U slučaju više klijentskih " +"akcija izvršit će se posljednja." #. module: base #: model:ir.module.module,description:base.module_mrp_jit @@ -15237,11 +15484,13 @@ msgid "" "Do you confirm the uninstallation of this module? This will permanently " "erase all data currently stored by the module!" msgstr "" +"Da li potvrđujete uklanjanje ovog modula? Ova akcija će trajno obrisati sve " +"podatke sačuvane od strane ovog modula!" #. module: base #: field:ir.actions.server,mobile:0 msgid "Mobile No" -msgstr "" +msgstr "Mobilni br." #. module: base #: model:ir.actions.act_window,name:base.action_partner_by_category @@ -15249,28 +15498,28 @@ msgstr "" #: model:ir.model,name:base.model_res_partner_category #: view:res.partner.category:0 msgid "Partner Categories" -msgstr "" +msgstr "Kategorije partnera" #. module: base #: view:base.module.upgrade:0 msgid "System Update" -msgstr "" +msgstr "Ažuriranje sistema" #. module: base #: field:ir.actions.report.xml,report_sxw_content:0 #: field:ir.actions.report.xml,report_sxw_content_data:0 msgid "SXW Content" -msgstr "" +msgstr "SXW Sadržaj" #. module: base #: field:ir.attachment,file_size:0 msgid "File Size" -msgstr "" +msgstr "Veličine datoteke" #. module: base #: help:ir.sequence,prefix:0 msgid "Prefix value of the record for the sequence" -msgstr "" +msgstr "Prefiks vrijednost zapisa za sekvencu" #. module: base #: model:res.country,name:base.sc @@ -15280,7 +15529,7 @@ msgstr "" #. module: base #: model:res.partner.category,name:base.res_partner_category_4 msgid "Gold" -msgstr "" +msgstr "Zlatni" #. module: base #: code:addons/base/res/res_company.py:173 @@ -15292,7 +15541,7 @@ msgstr "" #: view:res.partner.bank:0 #, python-format msgid "Bank Accounts" -msgstr "" +msgstr "Računi banke" #. module: base #: model:res.country,name:base.sl @@ -15302,7 +15551,7 @@ msgstr "" #. module: base #: view:res.company:0 msgid "General Information" -msgstr "" +msgstr "Opšte informacije" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_pt @@ -15312,7 +15561,7 @@ msgstr "" #. module: base #: field:ir.model.data,complete_name:0 msgid "Complete ID" -msgstr "" +msgstr "Puni ID" #. module: base #: model:ir.module.module,description:base.module_stock @@ -15357,11 +15606,13 @@ msgid "" "Tax Identification Number. Check the box if this contact is subjected to " "taxes. Used by the some of the legal statements." msgstr "" +"PDV broj. Označite kućicu ako je ovaj kontakt PDV obaveznik. Koristi se u " +"nekim od zakonskih dokumenata." #. module: base #: field:res.partner.bank,partner_id:0 msgid "Account Owner" -msgstr "" +msgstr "Vlasnik računa" #. module: base #: model:ir.module.module,description:base.module_procurement @@ -15388,13 +15639,13 @@ msgstr "" #: model:ir.actions.act_window,name:base.open_module_tree #: model:ir.ui.menu,name:base.menu_module_tree msgid "Installed Modules" -msgstr "" +msgstr "Instalirani moduli" #. module: base #: code:addons/base/res/res_users.py:170 #, python-format msgid "Company Switch Warning" -msgstr "" +msgstr "Upozorenje prilikom promjene kompanije" #. module: base #: model:ir.module.category,description:base.module_category_manufacturing @@ -15402,21 +15653,23 @@ msgid "" "Helps you manage your manufacturing processes and generate reports on those " "processes." msgstr "" +"Pomaže Vam pri upravljanju procesima proizvodnje i generisanjem izvještaja " +"nad ovim procesima." #. module: base #: help:ir.sequence,number_increment:0 msgid "The next number of the sequence will be incremented by this number" -msgstr "" +msgstr "Sljedeći broj sekvence biti će uvećan za vrijednost ovog broja." #. module: base #: selection:workflow.activity,kind:0 msgid "Function" -msgstr "" +msgstr "Funkcija" #. module: base #: field:ir.ui.menu,parent_right:0 msgid "Parent Right" -msgstr "" +msgstr "Roditelj desno" #. module: base #: model:ir.module.category,description:base.module_category_customer_relationship_management @@ -15424,6 +15677,8 @@ msgid "" "Manage relations with prospects and customers using leads, opportunities, " "requests or issues." msgstr "" +"Upravljajte odnosima sa potencijalnim kupcima koristeći potencijale, " +"prilike, zahtjeve ili pitanja." #. module: base #: model:ir.module.module,description:base.module_project @@ -15451,7 +15706,7 @@ msgstr "" #. module: base #: view:res.partner:0 msgid "Internal Notes" -msgstr "" +msgstr "Interne zabilješke" #. module: base #: model:res.partner.title,name:base.res_partner_title_pvt_ltd @@ -15462,40 +15717,40 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_purchase_requisition msgid "Purchase Requisitions" -msgstr "" +msgstr "Nabavni zahtjevi" #. module: base #: selection:ir.actions.act_window,target:0 msgid "Inline Edit" -msgstr "" +msgstr "Uredi unutar" #. module: base #: selection:ir.cron,interval_type:0 msgid "Months" -msgstr "" +msgstr "Mjeseci" #. module: base #: view:workflow.instance:0 msgid "Workflow Instances" -msgstr "" +msgstr "Instance radnog toka" #. module: base #: code:addons/base/res/res_partner.py:684 #, python-format msgid "Partners: " -msgstr "" +msgstr "Partneri: " #. module: base #: view:res.partner:0 msgid "Is a Company?" -msgstr "" +msgstr "Je kompanija?" #. module: base #: code:addons/base/res/res_company.py:173 #: field:res.partner.bank,name:0 #, python-format msgid "Bank Account" -msgstr "" +msgstr "Račun banke" #. module: base #: model:res.country,name:base.kp @@ -15505,7 +15760,7 @@ msgstr "" #. module: base #: selection:ir.actions.server,state:0 msgid "Create Object" -msgstr "" +msgstr "Kreiraj objekt" #. module: base #: model:res.country,name:base.ss @@ -15515,12 +15770,12 @@ msgstr "" #. module: base #: field:ir.filters,context:0 msgid "Context" -msgstr "" +msgstr "Kontekst" #. module: base #: model:ir.module.module,shortdesc:base.module_sale_mrp msgid "Sales and MRP Management" -msgstr "" +msgstr "Upravljanje Prodajom i Proizvodnjom" #. module: base #: model:ir.actions.act_window,help:base.action_partner_form @@ -15534,16 +15789,25 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Kliknite da dodate kontakt u adresar.\n" +"

\n" +" OpenERP Vam pomaže da na jednostavan način pratite sve " +"aktivnosti \n" +" vezane za kupca; diskusije, istoriju poslovnih prilika, " +"dokumente, itd.\n" +"

\n" +" " #. module: base #: model:res.partner.category,name:base.res_partner_category_2 msgid "Prospect" -msgstr "" +msgstr "Potencijalni partner" #. module: base #: model:ir.module.module,shortdesc:base.module_stock_invoice_directly msgid "Invoice Picking Directly" -msgstr "" +msgstr "Fakturiši prikupljanje artikala direktno" #. module: base #: selection:base.language.install,lang:0 @@ -15553,7 +15817,7 @@ msgstr "" #. module: base #: field:ir.exports,name:0 msgid "Export Name" -msgstr "" +msgstr "Naziv izvoza" #. module: base #: help:res.partner,type:0 @@ -15561,6 +15825,8 @@ msgid "" "Used to select automatically the right address according to the context in " "sales and purchases documents." msgstr "" +"Koristi se za automatski odabir pravilne adrese na osnovu konteksta u " +"prodajnim i nabavnim dokumentima." #. module: base #: model:ir.module.module,description:base.module_purchase_analytic_plans @@ -15583,7 +15849,7 @@ msgstr "" #. module: base #: field:ir.actions.act_window,search_view:0 msgid "Search View" -msgstr "" +msgstr "Pogled pretrage" #. module: base #: selection:base.language.install,lang:0 @@ -15593,7 +15859,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_auth_signup msgid "Signup" -msgstr "" +msgstr "Učlanjivanje" #~ msgid "SMS - Gateway: clickatell" #~ msgstr "SMS - pristupnik: clickatell" diff --git a/openerp/addons/base/i18n/ca.po b/openerp/addons/base/i18n/ca.po index 781e5a0219f..e3cee60f097 100644 --- a/openerp/addons/base/i18n/ca.po +++ b/openerp/addons/base/i18n/ca.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: 2013-10-11 04:39+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:31+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/cs.po b/openerp/addons/base/i18n/cs.po index 7b521b994c3..9cf53292bec 100644 --- a/openerp/addons/base/i18n/cs.po +++ b/openerp/addons/base/i18n/cs.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: 2013-10-11 04:39+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:31+0000\n" +"X-Generator: Launchpad (build 16820)\n" "X-Poedit-Language: Czech\n" #. module: base diff --git a/openerp/addons/base/i18n/da.po b/openerp/addons/base/i18n/da.po index cb17babc067..e8c71d885b8 100644 --- a/openerp/addons/base/i18n/da.po +++ b/openerp/addons/base/i18n/da.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:39+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:31+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/de.po b/openerp/addons/base/i18n/de.po index 6c6700edc85..3a710145e2b 100644 --- a/openerp/addons/base/i18n/de.po +++ b/openerp/addons/base/i18n/de.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:40+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:33+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/el.po b/openerp/addons/base/i18n/el.po index e8151abcff4..c656752f89c 100644 --- a/openerp/addons/base/i18n/el.po +++ b/openerp/addons/base/i18n/el.po @@ -12,8 +12,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:41+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:33+0000\n" +"X-Generator: Launchpad (build 16820)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" "X-Poedit-SourceCharset: utf-8\n" diff --git a/openerp/addons/base/i18n/en_GB.po b/openerp/addons/base/i18n/en_GB.po index 6bca254a4b0..16e0bb43d6b 100644 --- a/openerp/addons/base/i18n/en_GB.po +++ b/openerp/addons/base/i18n/en_GB.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:47+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:39+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -1107,7 +1107,7 @@ msgstr "Email Preferences" #: code:addons/base/ir/ir_fields.py:195 #, python-format msgid "'%s' does not seem to be a valid date for field '%%(field)s'" -msgstr "" +msgstr "'%s' does not seem to be a valid date for field '%%(field)s'" #. module: base #: view:res.partner:0 @@ -1257,7 +1257,7 @@ msgstr "Andorra, Principality of" #. module: base #: field:ir.rule,perm_read:0 msgid "Apply for Read" -msgstr "" +msgstr "Apply for Read" #. module: base #: model:res.country,name:base.mn @@ -1349,7 +1349,7 @@ msgstr "Document model" #. module: base #: view:res.users:0 msgid "Change the user password." -msgstr "" +msgstr "Change the user password." #. module: base #: view:res.lang:0 @@ -1488,12 +1488,12 @@ msgstr "The country name must be unique!" #. module: base #: field:ir.module.module,installed_version:0 msgid "Latest Version" -msgstr "" +msgstr "Latest Version" #. module: base #: view:ir.rule:0 msgid "Delete Access Right" -msgstr "" +msgstr "Delete Access Right" #. module: base #: code:addons/base/ir/ir_mail_server.py:214 @@ -1520,7 +1520,7 @@ msgstr "Cayman Islands" #. module: base #: view:ir.rule:0 msgid "Record Rule" -msgstr "" +msgstr "Record Rule" #. module: base #: model:res.country,name:base.kr @@ -1546,7 +1546,7 @@ msgstr "Contributors" #. module: base #: field:ir.rule,perm_unlink:0 msgid "Apply for Delete" -msgstr "" +msgstr "Apply for Delete" #. module: base #: selection:ir.property,type:0 @@ -1556,12 +1556,12 @@ msgstr "Char" #. module: base #: field:ir.module.category,visible:0 msgid "Visible" -msgstr "" +msgstr "Visible" #. module: base #: model:ir.actions.client,name:base.action_client_base_menu msgid "Open Settings Menu" -msgstr "" +msgstr "Open Settings Menu" #. module: base #: selection:base.language.install,lang:0 @@ -1621,6 +1621,10 @@ msgid "" " for uploading to OpenERP's translation " "platform," msgstr "" +"TGZ format: this is a compressed archive containing a PO file, directly " +"suitable\n" +" for uploading to OpenERP's translation " +"platform," #. module: base #: view:res.lang:0 @@ -1647,7 +1651,7 @@ msgstr "Tests" #. module: base #: field:ir.actions.report.xml,attachment:0 msgid "Save as Attachment Prefix" -msgstr "" +msgstr "Save as Attachment Prefix" #. module: base #: field:ir.ui.view_sc,res_id:0 @@ -1684,7 +1688,7 @@ msgstr "Haiti" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_fr_hr_payroll msgid "French Payroll" -msgstr "" +msgstr "French Payroll" #. module: base #: view:ir.ui.view:0 @@ -1843,7 +1847,7 @@ msgstr "" #. module: base #: model:res.country,name:base.mf msgid "Saint Martin (French part)" -msgstr "" +msgstr "Saint Martin (French part)" #. module: base #: model:ir.model,name:base.model_ir_exports @@ -1863,6 +1867,15 @@ msgid "" " * the main taxes used in Luxembourg\n" " * default fiscal position for local, intracom, extracom " msgstr "" +"\n" +"This is the base module to manage the accounting chart for Luxembourg.\n" +"======================================================================\n" +"\n" +" * the Luxembourg Official Chart of Accounts (law of June 2009 + 2011 " +"chart and Taxes),\n" +" * the Tax Code Chart for Luxembourg\n" +" * the main taxes used in Luxembourg\n" +" * default fiscal position for local, intracom, extracom " #. module: base #: code:addons/base/module/wizard/base_update_translations.py:39 @@ -1874,7 +1887,7 @@ msgstr "No language with code \"%s\" exists" #: model:ir.module.category,name:base.module_category_social_network #: model:ir.module.module,shortdesc:base.module_mail msgid "Social Network" -msgstr "" +msgstr "Social Network" #. module: base #: view:res.lang:0 @@ -1884,12 +1897,12 @@ msgstr "%Y - Year with century." #. module: base #: view:res.company:0 msgid "Report Footer Configuration" -msgstr "" +msgstr "Report Footer Configuration" #. module: base #: field:ir.translation,comments:0 msgid "Translation comments" -msgstr "" +msgstr "Translation comments" #. module: base #: model:ir.module.module,description:base.module_lunch @@ -1947,6 +1960,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 "" +"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)" #. module: base #: model:ir.model,name:base.model_res_bank @@ -1972,7 +1987,7 @@ msgstr "" #. module: base #: help:res.partner,website:0 msgid "Website of Partner or Company" -msgstr "" +msgstr "Website of Partner or Company" #. module: base #: help:base.language.install,overwrite:0 @@ -2032,7 +2047,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_portal_project_issue msgid "Portal Issue" -msgstr "" +msgstr "Portal Issue" #. module: base #: model:ir.ui.menu,name:base.menu_tools @@ -2052,6 +2067,10 @@ msgid "" "Launch Manually Once: after having been launched manually, it sets " "automatically to Done." msgstr "" +"Manual: Launched manually.\n" +"Automatic: Runs whenever the system is reconfigured.\n" +"Launch Manually Once: after having been launched manually, it sets " +"automatically to Done." #. module: base #: field:res.partner,image_small:0 @@ -13849,7 +13868,7 @@ msgstr "ir.sequence.type" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_be_hr_payroll_account msgid "Belgium - Payroll with Accounting" -msgstr "" +msgstr "Belgium - Payroll with Accounting" #. module: base #: selection:base.language.export,format:0 diff --git a/openerp/addons/base/i18n/es.po b/openerp/addons/base/i18n/es.po index 815fb5f1e90..28882c4626e 100644 --- a/openerp/addons/base/i18n/es.po +++ b/openerp/addons/base/i18n/es.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: 2013-10-11 04:45+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:37+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -7260,7 +7260,7 @@ msgstr "El nombre del grupo no puede empezar con \"-\"" #: view:ir.module.module:0 #: model:ir.ui.menu,name:base.module_mi msgid "Apps" -msgstr "Aplicaciones" +msgstr "Tienda de aplicaciones" #. module: base #: view:ir.ui.view_sc:0 @@ -17750,7 +17750,7 @@ msgstr "" #: model:ir.actions.act_window,name:base.open_module_tree #: model:ir.ui.menu,name:base.menu_module_tree msgid "Installed Modules" -msgstr "Módulos instalados" +msgstr "Módulos locales" #. module: base #: code:addons/base/res/res_users.py:170 diff --git a/openerp/addons/base/i18n/es_AR.po b/openerp/addons/base/i18n/es_AR.po index db5ee2466e8..4423bc5cb4e 100644 --- a/openerp/addons/base/i18n/es_AR.po +++ b/openerp/addons/base/i18n/es_AR.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:47+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:39+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es_BO.po b/openerp/addons/base/i18n/es_BO.po index 1d3e1e19a07..f4d593c423c 100644 --- a/openerp/addons/base/i18n/es_BO.po +++ b/openerp/addons/base/i18n/es_BO.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:48+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:40+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es_CL.po b/openerp/addons/base/i18n/es_CL.po index 64dd55a71c4..ff08cde77e3 100644 --- a/openerp/addons/base/i18n/es_CL.po +++ b/openerp/addons/base/i18n/es_CL.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: 2013-10-11 04:47+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:40+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es_CR.po b/openerp/addons/base/i18n/es_CR.po index b1604f3096d..051e066675f 100644 --- a/openerp/addons/base/i18n/es_CR.po +++ b/openerp/addons/base/i18n/es_CR.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:48+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:40+0000\n" +"X-Generator: Launchpad (build 16820)\n" "Language: \n" #. module: base diff --git a/openerp/addons/base/i18n/es_DO.po b/openerp/addons/base/i18n/es_DO.po index 76091892541..ee375adf2fd 100644 --- a/openerp/addons/base/i18n/es_DO.po +++ b/openerp/addons/base/i18n/es_DO.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:47+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:39+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es_EC.po b/openerp/addons/base/i18n/es_EC.po index f4202a760b7..ebd78c3365a 100644 --- a/openerp/addons/base/i18n/es_EC.po +++ b/openerp/addons/base/i18n/es_EC.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: 2013-10-11 04:48+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:41+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es_MX.po b/openerp/addons/base/i18n/es_MX.po index 5885e2b6801..dada8ac040f 100644 --- a/openerp/addons/base/i18n/es_MX.po +++ b/openerp/addons/base/i18n/es_MX.po @@ -15,8 +15,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:48+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:41+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/es_VE.po b/openerp/addons/base/i18n/es_VE.po index 5b6834b2067..1e049620bc3 100644 --- a/openerp/addons/base/i18n/es_VE.po +++ b/openerp/addons/base/i18n/es_VE.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:47+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:39+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/et.po b/openerp/addons/base/i18n/et.po index 8d59999f5c4..34650078232 100644 --- a/openerp/addons/base/i18n/et.po +++ b/openerp/addons/base/i18n/et.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: 2013-10-11 04:40+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:32+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/eu.po b/openerp/addons/base/i18n/eu.po index c3ab34be0af..c4b9340aa4b 100644 --- a/openerp/addons/base/i18n/eu.po +++ b/openerp/addons/base/i18n/eu.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:38+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:31+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/fa.po b/openerp/addons/base/i18n/fa.po index ef950580b70..e3fc519ec9f 100644 --- a/openerp/addons/base/i18n/fa.po +++ b/openerp/addons/base/i18n/fa.po @@ -9,8 +9,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:43+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:36+0000\n" +"X-Generator: Launchpad (build 16820)\n" "X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n" "X-Poedit-Language: Persian\n" diff --git a/openerp/addons/base/i18n/fa_AF.po b/openerp/addons/base/i18n/fa_AF.po index 1e94e426438..53e9362c6b2 100644 --- a/openerp/addons/base/i18n/fa_AF.po +++ b/openerp/addons/base/i18n/fa_AF.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:49+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:41+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/fi.po b/openerp/addons/base/i18n/fi.po index 24541605d87..7035d142803 100644 --- a/openerp/addons/base/i18n/fi.po +++ b/openerp/addons/base/i18n/fi.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: 2013-10-11 04:40+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:32+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/fr.po b/openerp/addons/base/i18n/fr.po index e08b8264737..00e7b9abcb4 100644 --- a/openerp/addons/base/i18n/fr.po +++ b/openerp/addons/base/i18n/fr.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: 2013-10-11 04:40+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:32+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -15529,7 +15529,8 @@ msgstr "Partenaires clients" #. module: base #: sql_constraint:res.users:0 msgid "You can not have two users with the same login !" -msgstr "VOus ne pouvez pas avoir deux utilsiateurs avec le même login !" +msgstr "" +"Vous ne pouvez pas avoir deux utilisateurs avec le même identifiant !" #. module: base #: model:ir.model,name:base.model_res_request_history diff --git a/openerp/addons/base/i18n/fr_CA.po b/openerp/addons/base/i18n/fr_CA.po index 603232605cf..5cdbd3ededf 100644 --- a/openerp/addons/base/i18n/fr_CA.po +++ b/openerp/addons/base/i18n/fr_CA.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:47+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:40+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/gl.po b/openerp/addons/base/i18n/gl.po index c3f32cdff4d..4a886ee3d64 100644 --- a/openerp/addons/base/i18n/gl.po +++ b/openerp/addons/base/i18n/gl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:41+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:33+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/gu.po b/openerp/addons/base/i18n/gu.po index 23a97e9639c..c576a71b892 100644 --- a/openerp/addons/base/i18n/gu.po +++ b/openerp/addons/base/i18n/gu.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:41+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:33+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/he.po b/openerp/addons/base/i18n/he.po index 921c60b5ec7..f175a5e5aaa 100644 --- a/openerp/addons/base/i18n/he.po +++ b/openerp/addons/base/i18n/he.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:41+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:33+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/hi.po b/openerp/addons/base/i18n/hi.po index 604fe05ee22..1144acda420 100644 --- a/openerp/addons/base/i18n/hi.po +++ b/openerp/addons/base/i18n/hi.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:41+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:33+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/hr.po b/openerp/addons/base/i18n/hr.po index d45c715ede1..acd172f0e68 100644 --- a/openerp/addons/base/i18n/hr.po +++ b/openerp/addons/base/i18n/hr.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: 2013-10-11 04:44+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:37+0000\n" +"X-Generator: Launchpad (build 16820)\n" "Language: hr\n" #. module: base @@ -3189,7 +3189,7 @@ msgstr "" #. module: base #: field:res.company,rml_header1:0 msgid "Company Tagline" -msgstr "" +msgstr "Slogan tvrtke" #. module: base #: code:addons/base/res/res_users.py:674 @@ -3994,7 +3994,7 @@ msgstr "12. %w ==> 5 ( Petak je 6ti dan)" #. module: base #: constraint:res.partner.category:0 msgid "Error ! You can not create recursive categories." -msgstr "Graška ! Ne može se stvoriti kategorije s rekurzijom." +msgstr "Greška! Ne možete kreirati rekurzivne kategorije." #. module: base #: view:res.lang:0 @@ -8815,6 +8815,10 @@ msgid "" "\n" "(Document type: %s)" msgstr "" +"Za ovu vrstu dokumenta imate pravo pristupa samo onima koje ste vi " +"kreirali.\n" +"\n" +"(Vrstu dokumenta: %s)" #. module: base #: view:base.language.export:0 @@ -9872,7 +9876,7 @@ msgstr "Kreirano" #: help:ir.actions.server,model_id:0 msgid "" "Select the object on which the action will work (read, write, create)." -msgstr "Odaberite objekt na koje će akcija raditi (read, write, create)." +msgstr "Odaberite objekt na koje će akcija raditi (čitaj, piši, kreiraj)." #. module: base #: field:base.language.import,name:0 diff --git a/openerp/addons/base/i18n/hu.po b/openerp/addons/base/i18n/hu.po index b29473411c9..c40cf95c0c2 100644 --- a/openerp/addons/base/i18n/hu.po +++ b/openerp/addons/base/i18n/hu.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" -"PO-Revision-Date: 2013-03-14 10:08+0000\n" -"Last-Translator: krnkris \n" +"PO-Revision-Date: 2013-10-15 13:13+0000\n" +"Last-Translator: tdombos \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:41+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:34+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -6230,7 +6230,7 @@ msgstr "Kenya" #: model:ir.actions.act_window,name:base.action_translation #: model:ir.ui.menu,name:base.menu_action_translation msgid "Translated Terms" -msgstr "Lefordított feltételek" +msgstr "Lefordított kifejezések" #. module: base #: selection:base.language.install,lang:0 @@ -12491,7 +12491,7 @@ msgstr "This method does not exist anymore" #: model:ir.actions.act_window,name:base.action_wizard_update_translations #: model:ir.ui.menu,name:base.menu_wizard_update_translations msgid "Synchronize Terms" -msgstr "Feltételek szinkronizáása" +msgstr "Kifejezések szinkronizáása" #. module: base #: field:res.lang,thousands_sep:0 @@ -13640,7 +13640,7 @@ msgstr "Érvénytelen adatbázis azonosító '%s' ehhez a mezőhöz '%%(field)s' #. module: base #: view:res.lang:0 msgid "Update Languague Terms" -msgstr "Nyelvi feltételek frissítése" +msgstr "Nyelvi kifejezések frissítése" #. module: base #: field:workflow.activity,join_mode:0 diff --git a/openerp/addons/base/i18n/hy.po b/openerp/addons/base/i18n/hy.po index a3414b87477..ac040e38376 100644 --- a/openerp/addons/base/i18n/hy.po +++ b/openerp/addons/base/i18n/hy.po @@ -9,8 +9,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:38+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:30+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/id.po b/openerp/addons/base/i18n/id.po index e1ff7e99c5d..c0396fff58a 100644 --- a/openerp/addons/base/i18n/id.po +++ b/openerp/addons/base/i18n/id.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:42+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:34+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/is.po b/openerp/addons/base/i18n/is.po index 8df0df2ffaa..76ab4a711aa 100644 --- a/openerp/addons/base/i18n/is.po +++ b/openerp/addons/base/i18n/is.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:42+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:34+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/it.po b/openerp/addons/base/i18n/it.po index 7f2ced532b7..a96c9dcbcdd 100644 --- a/openerp/addons/base/i18n/it.po +++ b/openerp/addons/base/i18n/it.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: 2013-10-11 04:42+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:34+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ja.po b/openerp/addons/base/i18n/ja.po index d851d89354c..ed1b65fe6ed 100644 --- a/openerp/addons/base/i18n/ja.po +++ b/openerp/addons/base/i18n/ja.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:42+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:34+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -62,7 +62,7 @@ msgstr "ビューアーキテクチャ" #. module: base #: model:ir.module.module,summary:base.module_sale_stock msgid "Quotation, Sale Orders, Delivery & Invoicing Control" -msgstr "見積書、販売オーダ、出荷、請求書コントロール" +msgstr "見積、受注、出荷、請求書コントロール" #. module: base #: selection:ir.sequence,implementation:0 @@ -94,7 +94,7 @@ msgstr "店舗用タッチスクリーン画面" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll msgid "Indian Payroll" -msgstr "" +msgstr "インド給与管理" #. module: base #: help:ir.cron,model:0 @@ -135,11 +135,14 @@ msgid "" "The module adds google user in res user.\n" "========================================\n" msgstr "" +"\n" +"このモジュールはユーザマスタにGoogleユーザを追加します。\n" +"========================================\n" #. module: base #: help:res.partner,employee:0 msgid "Check this box if this contact is an Employee." -msgstr "" +msgstr "この連絡先が従業員である場合はチェック。" #. module: base #: help:ir.model.fields,domain:0 @@ -169,7 +172,7 @@ msgstr "ターゲットウィンドウ" #. module: base #: field:ir.actions.report.xml,report_rml:0 msgid "Main Report File Path" -msgstr "" +msgstr "メインレポートファイルパス" #. module: base #: model:ir.module.module,shortdesc:base.module_sale_analytic_plans @@ -287,12 +290,12 @@ msgstr "販売管理" msgid "" "The internal user that is in charge of communicating with this contact if " "any." -msgstr "" +msgstr "この連絡先との連携を担当する内部ユーザ" #. module: base #: view:res.partner:0 msgid "Search Partner" -msgstr "パートナ検索" +msgstr "取引先検索" #. module: base #: field:ir.module.category,module_nr:0 @@ -613,7 +616,7 @@ msgstr "スペイン語(ベネズエラ)/ Español (VE)" #. module: base #: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice msgid "Invoice on Timesheets" -msgstr "勤務表による請求書" +msgstr "タイムシートを基に請求" #. module: base #: view:base.module.upgrade:0 @@ -668,7 +671,7 @@ msgstr "未翻訳" #. module: base #: view:ir.mail_server:0 msgid "Outgoing Mail Server" -msgstr "" +msgstr "送信メールサーバ" #. module: base #: help:ir.actions.act_window,context:0 @@ -855,7 +858,7 @@ msgstr "セキュリティと認証" #. module: base #: model:ir.module.module,shortdesc:base.module_web_calendar msgid "Web Calendar" -msgstr "" +msgstr "ウェブカレンダ" #. module: base #: selection:base.language.install,lang:0 @@ -866,7 +869,7 @@ msgstr "スウェーデン語 / svenska" #: field:base.language.export,name:0 #: field:ir.attachment,datas_fname:0 msgid "File Name" -msgstr "" +msgstr "ファイル名" #. module: base #: model:res.country,name:base.rs @@ -962,7 +965,7 @@ msgstr "" #. module: base #: view:res.partner:0 msgid "My Partners" -msgstr "Myパートナ" +msgstr "自分の取引先" #. module: base #: model:res.country,name:base.zw @@ -1261,7 +1264,7 @@ msgstr "国の名前は固有であるべきです。" #. module: base #: field:ir.module.module,installed_version:0 msgid "Latest Version" -msgstr "" +msgstr "最新バージョン" #. module: base #: view:ir.rule:0 @@ -1649,7 +1652,7 @@ msgstr "%Y - 世紀を含む年" #. module: base #: view:res.company:0 msgid "Report Footer Configuration" -msgstr "" +msgstr "レポートフッタ設定調整" #. module: base #: field:ir.translation,comments:0 @@ -1998,7 +2001,7 @@ msgstr "7. %H:%M:%S ==> 18:25:20" #: view:res.partner:0 #: field:res.partner.category,partner_ids:0 msgid "Partners" -msgstr "パートナ" +msgstr "取引先" #. module: base #: field:res.partner.category,parent_left:0 @@ -2019,7 +2022,7 @@ msgstr "" #. module: base #: field:res.partner.bank,footer:0 msgid "Display on Reports" -msgstr "表示(レポート)" +msgstr "レポート表記" #. module: base #: model:ir.module.module,description:base.module_project_timesheet @@ -2596,7 +2599,7 @@ msgstr "オブジェクト名は x_ で始める必要があり、特殊文字 #. module: base #: model:ir.module.module,shortdesc:base.module_auth_oauth_signup msgid "Signup with OAuth2 Authentication" -msgstr "" +msgstr "OAuth2認証によるサインアップ" #. module: base #: selection:ir.model,state:0 @@ -2623,12 +2626,12 @@ msgstr "ギリシャ語 / Ελληνικά" #. module: base #: field:res.company,custom_footer:0 msgid "Custom Footer" -msgstr "" +msgstr "フッターのカスタマイズ" #. module: base #: model:ir.module.module,shortdesc:base.module_sale_crm msgid "Opportunity to Quotation" -msgstr "商談から見積り" +msgstr "商談から見積" #. module: base #: model:ir.module.module,description:base.module_sale_analytic_plans @@ -3134,7 +3137,7 @@ msgstr "韓国語(韓国)/ 한국어 (KR)" #. module: base #: help:ir.model.fields,model:0 msgid "The technical name of the model this field belongs to" -msgstr "この項目が属するモデルの専門的名前" +msgstr "この項目が属するモデルの技術名称" #. module: base #: field:ir.actions.server,action_id:0 @@ -3165,7 +3168,7 @@ msgstr "" #. module: base #: field:res.company,rml_header1:0 msgid "Company Tagline" -msgstr "" +msgstr "会社スローガン" #. module: base #: code:addons/base/res/res_users.py:674 @@ -3370,12 +3373,12 @@ msgstr "オーストリア" #: model:ir.ui.menu,name:base.menu_calendar_configuration #: selection:ir.ui.view,type:0 msgid "Calendar" -msgstr "カレンダー" +msgstr "カレンダ" #. module: base #: model:ir.module.category,name:base.module_category_knowledge_management msgid "Knowledge" -msgstr "" +msgstr "ナレッジ" #. module: base #: field:workflow.activity,signal_send:0 @@ -3408,7 +3411,7 @@ msgid "" "Manage the contact titles you want to have available in your system and the " "way you want to print them in letters and other documents. Some example: " "Mr., Mrs. " -msgstr "手紙や他のドキュメントの印刷において利用する際の適切な連絡先のタイトルを管理します。 幾つかの例:男子や夫人の敬称 " +msgstr "手紙やその他のドキュメント印刷にて使用する連絡先敬称を管理します(例えば「様」、「御中」など)。 " #. module: base #: view:ir.model.access:0 @@ -3477,7 +3480,7 @@ msgstr "生年月日" #: model:ir.actions.act_window,name:base.action_partner_title_contact #: model:ir.ui.menu,name:base.menu_partner_title_contact msgid "Contact Titles" -msgstr "役職" +msgstr "連絡先敬称" #. module: base #: model:ir.module.module,shortdesc:base.module_product_manufacturer @@ -3700,7 +3703,7 @@ msgstr "" #. module: base #: view:base.language.import:0 msgid "_Import" -msgstr "インポート" +msgstr "インポート(_I)" #. module: base #: field:res.users,action_id:0 @@ -3753,7 +3756,7 @@ msgstr "ルール間の影響" #: field:res.company,rml_footer:0 #: field:res.company,rml_footer_readonly:0 msgid "Report Footer" -msgstr "" +msgstr "レポートフッタ" #. module: base #: selection:res.lang,direction:0 @@ -3791,7 +3794,7 @@ msgstr "レポート" #: field:res.partner,title:0 #: field:res.partner.title,name:0 msgid "Title" -msgstr "役職" +msgstr "敬称" #. module: base #: help:ir.property,res_id:0 @@ -4436,7 +4439,7 @@ msgstr "式" #. module: base #: view:res.company:0 msgid "Header/Footer" -msgstr "ヘッダー / フッター" +msgstr "ヘッダ/フッタ" #. module: base #: help:ir.mail_server,sequence:0 @@ -4448,7 +4451,7 @@ msgstr "メールサーバを特に指定しないメールは最も高い優先 #. module: base #: model:ir.module.module,summary:base.module_sale msgid "Quotations, Sales Orders, Invoicing" -msgstr "" +msgstr "見積、受注、請求" #. module: base #: field:res.partner,parent_id:0 @@ -4482,7 +4485,7 @@ msgstr "モジュール .ZIPファイル" #. module: base #: model:res.partner.category,name:base.res_partner_category_17 msgid "Telecom sector" -msgstr "遠距離通信部門" +msgstr "通信セクター" #. module: base #: field:workflow.transition,trigger_model:0 @@ -4497,7 +4500,7 @@ msgstr "`code`は固有であるべきです。" #. module: base #: model:ir.module.module,shortdesc:base.module_knowledge msgid "Knowledge Management System" -msgstr "" +msgstr "ナレッジ管理システム" #. module: base #: view:workflow.activity:0 @@ -4811,7 +4814,7 @@ msgstr "郵便番号" #: view:ir.module.module:0 #: field:ir.module.module,author:0 msgid "Author" -msgstr "著者" +msgstr "作成者" #. module: base #: view:ir.actions.todo:0 @@ -4970,7 +4973,7 @@ msgstr "" #. module: base #: model:res.partner.category,name:base.res_partner_category_7 msgid "IT Services" -msgstr "" +msgstr "ITサービス" #. module: base #: model:ir.module.category,name:base.module_category_specific_industry_applications @@ -5037,7 +5040,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_event_sale msgid "Events Sales" -msgstr "" +msgstr "イベント販売" #. module: base #: model:res.country,name:base.ls @@ -5161,7 +5164,7 @@ msgstr "キー" #. module: base #: field:res.company,rml_header:0 msgid "RML Header" -msgstr "RMLヘッダー" +msgstr "RMLヘッダ" #. module: base #: help:res.country,address_format:0 @@ -5341,7 +5344,7 @@ msgstr "各モジュールは固有でなければなりません。" #: model:ir.module.category,name:base.module_category_localization #: model:ir.ui.menu,name:base.menu_localisation msgid "Localization" -msgstr "ローカル化" +msgstr "ローカライズ" #. module: base #: model:ir.module.module,description:base.module_web_api @@ -5420,12 +5423,12 @@ msgstr "" #. module: base #: model:ir.ui.menu,name:base.menu_partner_category_form msgid "Partner Tags" -msgstr "" +msgstr "取引先タグ" #. module: base #: view:res.company:0 msgid "Preview Header/Footer" -msgstr "" +msgstr "ヘッダ/フッタプレビュー" #. module: base #: field:ir.ui.menu,parent_id:0 @@ -5716,7 +5719,7 @@ msgstr "" #: field:workflow,name:0 #: field:workflow.activity,name:0 msgid "Name" -msgstr "名前" +msgstr "名称" #. module: base #: help:ir.actions.act_window,multi:0 @@ -5944,7 +5947,7 @@ msgstr "インストール言語" #. module: base #: model:res.partner.category,name:base.res_partner_category_11 msgid "Services" -msgstr "" +msgstr "サービス業" #. module: base #: view:ir.translation:0 @@ -6393,7 +6396,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_account_cancel msgid "Cancel Journal Entries" -msgstr "仕訳帳入力のキャンセル" +msgstr "仕訳取消" #. module: base #: field:res.partner,tz_offset:0 @@ -6530,7 +6533,7 @@ msgstr "フランス語 / Français" #. module: base #: view:ir.module.module:0 msgid "Created Menus" -msgstr "作成済メニュー" +msgstr "作成メニュー" #. module: base #: code:addons/base/module/module.py:502 @@ -6797,7 +6800,7 @@ msgstr "時刻の書式" #. module: base #: field:res.company,rml_header3:0 msgid "RML Internal Header for Landscape Reports" -msgstr "" +msgstr "ランドスケープレポート用RML内部ヘッダ" #. module: base #: model:res.groups,name:base.group_partner_manager @@ -6807,7 +6810,7 @@ msgstr "" #. module: base #: view:ir.module.module:0 msgid "Defined Reports" -msgstr "レポートの定義" +msgstr "定義レポート" #. module: base #: model:ir.module.module,shortdesc:base.module_project_gtd @@ -6919,7 +6922,7 @@ msgstr "ボツワナ" #. module: base #: view:res.partner.title:0 msgid "Partner Titles" -msgstr "パートナのタイトル" +msgstr "取引先タイトル" #. module: base #: code:addons/base/ir/ir_fields.py:196 @@ -7033,7 +7036,7 @@ msgstr "" #. module: base #: help:ir.model.fields,relation:0 msgid "For relationship fields, the technical name of the target model" -msgstr "その目的モデルの関係項目のための技術的な名前" +msgstr "関係項目につき、ターゲットモデルの技術名称" #. module: base #: view:res.lang:0 @@ -7093,7 +7096,7 @@ msgstr "遷移" #: model:ir.module.module,shortdesc:base.module_hr_timesheet #: model:ir.module.module,shortdesc:base.module_hr_timesheet_sheet msgid "Timesheets" -msgstr "勤務表" +msgstr "タイムシート" #. module: base #: help:ir.values,company_id:0 @@ -7276,7 +7279,7 @@ msgstr "署名" #. module: base #: field:res.partner.category,complete_name:0 msgid "Full Name" -msgstr "氏名" +msgstr "名称" #. module: base #: view:ir.attachment:0 @@ -7369,7 +7372,7 @@ msgstr "" #: view:res.partner:0 #: field:res.partner,child_ids:0 msgid "Contacts" -msgstr "コンタクト" +msgstr "連絡先" #. module: base #: model:res.country,name:base.fo @@ -7395,7 +7398,7 @@ msgstr "エクアドル - 会計" #. module: base #: field:res.partner.category,name:0 msgid "Category Name" -msgstr "分類名" +msgstr "カテゴリ名" #. module: base #: model:res.country,name:base.mp @@ -7480,7 +7483,7 @@ msgstr "コンテンツが別のデータ項目にある場合、メインレポ #. module: base #: model:res.partner.category,name:base.res_partner_category_14 msgid "Manufacturer" -msgstr "" +msgstr "製造業" #. module: base #: help:res.users,company_id:0 @@ -7744,7 +7747,7 @@ msgstr "" #. module: base #: field:res.company,rml_header2:0 msgid "RML Internal Header" -msgstr "RML内部ヘッダー" +msgstr "RML内部ヘッダ" #. module: base #: field:ir.actions.act_window,search_view_id:0 @@ -7967,7 +7970,7 @@ msgstr "" #: view:res.partner:0 #: field:res.partner,user_id:0 msgid "Salesperson" -msgstr "" +msgstr "営業担当者" #. module: base #: view:res.lang:0 @@ -8049,7 +8052,7 @@ msgstr "全ての x で繰り返す" #. module: base #: model:res.partner.bank.type,name:base.bank_normal msgid "Normal Bank Account" -msgstr "通常の銀行口座" +msgstr "普通口座" #. module: base #: field:change.password.user,wizard_id:0 @@ -8118,7 +8121,7 @@ msgstr "フランス語(スイス)/ Français (CH)" #. module: base #: model:res.partner.category,name:base.res_partner_category_13 msgid "Distributor" -msgstr "" +msgstr "代理店" #. module: base #: help:ir.actions.server,subject:0 @@ -8274,7 +8277,7 @@ msgstr "" #. module: base #: field:res.partner.category,parent_id:0 msgid "Parent Category" -msgstr "親分類" +msgstr "親カテゴリ" #. module: base #: model:res.country,name:base.fi @@ -8448,7 +8451,7 @@ msgstr "香港" #. module: base #: model:ir.module.module,shortdesc:base.module_portal_sale msgid "Portal Sale" -msgstr "" +msgstr "販売ポータル" #. module: base #: field:ir.default,ref_id:0 @@ -8647,7 +8650,7 @@ msgstr "" #: model:ir.module.module,shortdesc:base.module_hr_attendance #: model:res.groups,name:base.group_hr_attendance msgid "Attendances" -msgstr "参加" +msgstr "勤怠" #. module: base #: model:ir.module.module,shortdesc:base.module_warning @@ -8717,7 +8720,7 @@ msgstr "" #. module: base #: model:ir.ui.menu,name:base.menu_view_base_module_update msgid "Update Modules List" -msgstr "モジュールリストの更新" +msgstr "モジュールリスト更新" #. module: base #: code:addons/base/module/module.py:359 @@ -8783,7 +8786,7 @@ msgstr "スロベニア語 / slovenščina" #. module: base #: field:res.currency,position:0 msgid "Symbol Position" -msgstr "" +msgstr "記号位置" #. module: base #: model:ir.module.module,description:base.module_l10n_de @@ -8896,7 +8899,7 @@ msgstr "複数のアクション" #. module: base #: model:ir.module.module,summary:base.module_mail msgid "Discussions, Mailing Lists, News" -msgstr "" +msgstr "ディスカッション、メーリングリスト、ニュース" #. module: base #: model:ir.module.module,description:base.module_fleet @@ -8997,7 +9000,7 @@ msgstr "ユーザエラー" #. module: base #: model:ir.module.module,summary:base.module_project_issue msgid "Support, Bug Tracker, Helpdesk" -msgstr "" +msgstr "サポート、バグ追跡、ヘルプデスク" #. module: base #: model:res.country,name:base.ae @@ -9022,12 +9025,12 @@ msgstr "このドキュメントはデフォルト属性として使用されて #. module: base #: model:res.partner.category,name:base.res_partner_category_5 msgid "Silver" -msgstr "" +msgstr "シルバー" #. module: base #: field:res.partner.title,shortcut:0 msgid "Abbreviation" -msgstr "" +msgstr "略称" #. module: base #: model:ir.ui.menu,name:base.menu_crm_case_job_req_main @@ -9313,7 +9316,7 @@ msgstr "なし" #. module: base #: model:ir.module.module,shortdesc:base.module_hr_holidays msgid "Leave Management" -msgstr "" +msgstr "休暇管理" #. module: base #: model:res.company,overdue_msg:base.main_company @@ -9412,12 +9415,12 @@ msgstr "" #. module: base #: field:res.request,ref_partner_id:0 msgid "Partner Ref." -msgstr "パートナの参照" +msgstr "取引先参照" #. module: base #: model:ir.module.module,shortdesc:base.module_hr_expense msgid "Expense Management" -msgstr "" +msgstr "経費管理" #. module: base #: field:ir.attachment,create_date:0 @@ -9727,7 +9730,7 @@ msgstr "カスタム" #. module: base #: model:ir.module.module,shortdesc:base.module_sale_margin msgid "Margins in Sales Orders" -msgstr "受注オーダーのマージン" +msgstr "受注マージン" #. module: base #: model:ir.module.module,shortdesc:base.module_purchase @@ -9997,7 +10000,7 @@ msgstr "インストールする" #: model:ir.module.module,shortdesc:base.module_base #: field:res.currency,base:0 msgid "Base" -msgstr "ベース" +msgstr "基本" #. module: base #: field:ir.model.data,model:0 @@ -10185,7 +10188,7 @@ msgstr "間隔の単位" #. module: base #: model:ir.module.module,shortdesc:base.module_portal_stock msgid "Portal Stock" -msgstr "" +msgstr "在庫ポータル" #. module: base #: field:workflow.activity,kind:0 @@ -10251,7 +10254,7 @@ msgstr "データベース内の目的レコードのID" #. module: base #: model:ir.module.module,shortdesc:base.module_account_analytic_analysis msgid "Contracts Management" -msgstr "コンタクト管理" +msgstr "契約管理" #. module: base #: selection:base.language.install,lang:0 @@ -10478,7 +10481,7 @@ msgstr "この会社に関連した銀行口座" #: model:ir.ui.menu,name:base.menu_sales #: model:ir.ui.menu,name:base.next_id_64 msgid "Sales" -msgstr "受注" +msgstr "販売" #. module: base #: field:ir.actions.server,child_ids:0 @@ -10555,7 +10558,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_portal_hr_employees msgid "Portal HR employees" -msgstr "" +msgstr "従業員ポータル" #. module: base #: selection:base.language.install,lang:0 @@ -10814,7 +10817,7 @@ msgstr "ユーザ自身がダッシュボードビュー(Webクライアント #. module: base #: model:ir.module.module,shortdesc:base.module_sale_stock msgid "Sales and Warehouse Management" -msgstr "" +msgstr "販売・倉庫管理" #. module: base #: model:ir.module.module,description:base.module_hr_recruitment @@ -11049,7 +11052,7 @@ msgstr "Eメール" #. module: base #: model:res.partner.category,name:base.res_partner_category_12 msgid "Office Supplies" -msgstr "" +msgstr "オフィス用品" #. module: base #: field:ir.attachment,res_model:0 @@ -11158,7 +11161,7 @@ msgstr "カスケード" #. module: base #: model:ir.module.module,summary:base.module_crm msgid "Leads, Opportunities, Phone Calls" -msgstr "" +msgstr "リード、案件、電話" #. module: base #: model:ir.module.category,description:base.module_category_knowledge_management @@ -11221,7 +11224,7 @@ msgstr "マーケティングキャンペーン" #. module: base #: field:res.country.state,name:0 msgid "State Name" -msgstr "状態の名前" +msgstr "州名" #. module: base #: help:ir.attachment,type:0 @@ -11820,7 +11823,7 @@ msgstr "トリガーのシグナル" #: model:ir.actions.act_window,name:base.action_country_state #: model:ir.ui.menu,name:base.menu_country_state_partner msgid "Fed. States" -msgstr "連邦" +msgstr "州" #. module: base #: view:ir.model:0 @@ -12021,7 +12024,7 @@ msgstr "ループ式" #. module: base #: model:res.partner.category,name:base.res_partner_category_16 msgid "Retailer" -msgstr "" +msgstr "小売業" #. module: base #: view:ir.model.fields:0 @@ -12052,7 +12055,7 @@ msgstr "リファレンスガイド" #: selection:res.partner.title,domain:0 #: model:res.request.link,name:base.req_link_partner msgid "Partner" -msgstr "パートナ" +msgstr "取引先" #. module: base #: code:addons/base/ir/ir_mail_server.py:482 @@ -12309,7 +12312,7 @@ msgstr "条件" #. module: base #: model:ir.actions.act_window,name:base.action_partner_other_form msgid "Other Partners" -msgstr "その他のパートナ" +msgstr "他の取引先" #. module: base #: field:base.language.install,state:0 @@ -12324,7 +12327,7 @@ msgstr "その他のパートナ" #: view:workflow.workitem:0 #: field:workflow.workitem,state:0 msgid "Status" -msgstr "" +msgstr "ステータス" #. module: base #: model:ir.actions.act_window,name:base.action_currency_form @@ -12336,7 +12339,7 @@ msgstr "通貨" #. module: base #: model:res.partner.category,name:base.res_partner_category_8 msgid "Consultancy Services" -msgstr "" +msgstr "コンサルティングサービス" #. module: base #: help:ir.values,value:0 @@ -12446,7 +12449,7 @@ msgstr "調達" #. module: base #: model:res.partner.category,name:base.res_partner_category_6 msgid "Bronze" -msgstr "" +msgstr "ブロンズ" #. module: base #: model:ir.module.module,shortdesc:base.module_hr_payroll_account @@ -12476,7 +12479,7 @@ msgstr "作成月" #. module: base #: field:ir.module.module,demo:0 msgid "Demo Data" -msgstr "" +msgstr "デモデータ" #. module: base #: model:res.partner.title,shortcut:base.res_partner_title_mister @@ -12491,7 +12494,7 @@ msgstr "モルディブ" #. module: base #: model:ir.module.module,shortdesc:base.module_portal_crm msgid "Portal CRM" -msgstr "" +msgstr "CRMポータル" #. module: base #: model:ir.ui.menu,name:base.next_id_4 @@ -12633,7 +12636,7 @@ msgstr "銀行" #: model:ir.module.category,name:base.module_category_point_of_sale #: model:ir.module.module,shortdesc:base.module_point_of_sale msgid "Point of Sale" -msgstr "" +msgstr "POS" #. module: base #: model:ir.module.module,description:base.module_mail @@ -12988,7 +12991,7 @@ msgstr "設定" #. module: base #: model:res.partner.category,name:base.res_partner_category_9 msgid "Components Buyer" -msgstr "" +msgstr "部材バイヤー" #. module: base #: model:ir.module.module,description:base.module_web_tests_demo @@ -13052,7 +13055,7 @@ msgstr "選択オプションの式は[('key','Label'), ...] の形式である #. module: base #: field:res.company,company_registry:0 msgid "Company Registry" -msgstr "会社のレジストリ" +msgstr "会社レジストリ" #. module: base #: view:ir.actions.report.xml:0 @@ -13240,7 +13243,7 @@ msgstr "不明" #. module: base #: field:res.currency,symbol:0 msgid "Symbol" -msgstr "シンボル" +msgstr "記号" #. module: base #: help:res.partner,image_medium:0 @@ -13356,7 +13359,7 @@ msgstr "依存関係:" #. module: base #: field:res.company,vat:0 msgid "Tax ID" -msgstr "税金ID" +msgstr "税ID" #. module: base #: model:ir.module.module,shortdesc:base.module_account_bank_statement_extensions @@ -13391,7 +13394,7 @@ msgstr "ザイール" #. module: base #: model:ir.module.module,summary:base.module_project msgid "Projects, Tasks" -msgstr "" +msgstr "プロジェクト、タスク" #. module: base #: field:ir.attachment,res_id:0 @@ -13446,7 +13449,7 @@ msgstr "右括弧" #. module: base #: view:base.module.update:0 msgid "Update Module List" -msgstr "モジュールリストの更新" +msgstr "モジュールリスト更新" #. module: base #: code:addons/base/res/res_users.py:685 @@ -13701,7 +13704,7 @@ msgstr "宛先の活動" #. module: base #: model:ir.module.module,shortdesc:base.module_project_issue msgid "Issue Tracker" -msgstr "" +msgstr "課題管理" #. module: base #: view:base.module.update:0 @@ -13785,7 +13788,7 @@ msgstr "" #. module: base #: view:res.partner:0 msgid "Supplier Partners" -msgstr "仕入先パートナ" +msgstr "仕入先取引先" #. module: base #: view:res.config.installer:0 @@ -13800,7 +13803,7 @@ msgstr "" #. module: base #: view:res.partner:0 msgid "Customer Partners" -msgstr "顧客パートナ" +msgstr "顧客取引先" #. module: base #: sql_constraint:res.users:0 @@ -14047,7 +14050,7 @@ msgstr "ルクセンブルク" #. module: base #: model:ir.module.module,summary:base.module_base_calendar msgid "Personal & Shared Calendar" -msgstr "" +msgstr "個人および共有カレンダ" #. module: base #: selection:res.request,priority:0 @@ -14161,7 +14164,7 @@ msgstr "" #. module: base #: model:ir.module.module,summary:base.module_account_voucher msgid "Send Invoices and Track Payments" -msgstr "" +msgstr "請求書送付、支払追跡" #. module: base #: model:ir.ui.menu,name:base.menu_crm_config_lead @@ -14359,7 +14362,7 @@ msgstr "アクションの用途" #. module: base #: field:ir.module.module,name:0 msgid "Technical Name" -msgstr "" +msgstr "技術名称" #. module: base #: model:ir.model,name:base.model_workflow_workitem @@ -14940,7 +14943,7 @@ msgstr "国" #. module: base #: model:res.partner.category,name:base.res_partner_category_15 msgid "Wholesaler" -msgstr "" +msgstr "卸売業" #. module: base #: model:ir.module.module,shortdesc:base.module_base_vat @@ -15043,7 +15046,7 @@ msgstr "リネームは一度に1カラムしかできません。" #. module: base #: selection:ir.translation,type:0 msgid "Report/Template" -msgstr "レポート / テンプレート" +msgstr "レポート/テンプレート" #. module: base #: model:ir.module.module,description:base.module_account_budget @@ -15254,7 +15257,7 @@ msgstr "クロアチア" msgid "" "Do you confirm the uninstallation of this module? This will permanently " "erase all data currently stored by the module!" -msgstr "" +msgstr "このモジュールを本当にアンインストールしてよいですか?このアクションにより、このモジュール依存のデータが全て消失します。" #. module: base #: field:ir.actions.server,mobile:0 @@ -15267,7 +15270,7 @@ msgstr "携帯電話番号" #: model:ir.model,name:base.model_res_partner_category #: view:res.partner.category:0 msgid "Partner Categories" -msgstr "パートナ分類" +msgstr "取引先カテゴリ" #. module: base #: view:base.module.upgrade:0 @@ -15298,7 +15301,7 @@ msgstr "セーシェル" #. module: base #: model:res.partner.category,name:base.res_partner_category_4 msgid "Gold" -msgstr "" +msgstr "ゴールド" #. module: base #: code:addons/base/res/res_company.py:173 @@ -15379,7 +15382,7 @@ msgstr "" #. module: base #: field:res.partner.bank,partner_id:0 msgid "Account Owner" -msgstr "アカウント所有者" +msgstr "口座所有者" #. module: base #: model:ir.module.module,description:base.module_procurement @@ -15501,7 +15504,7 @@ msgstr "ワークフローインスタンス" #: code:addons/base/res/res_partner.py:684 #, python-format msgid "Partners: " -msgstr "パートナ: " +msgstr "取引先: " #. module: base #: view:res.partner:0 @@ -15538,7 +15541,7 @@ msgstr "コンテキスト" #. module: base #: model:ir.module.module,shortdesc:base.module_sale_mrp msgid "Sales and MRP Management" -msgstr "受注とMRP管理" +msgstr "販売・MRP管理" #. module: base #: model:ir.actions.act_window,help:base.action_partner_form @@ -15556,7 +15559,7 @@ msgstr "" #. module: base #: model:res.partner.category,name:base.res_partner_category_2 msgid "Prospect" -msgstr "見込み客" +msgstr "見込客" #. module: base #: model:ir.module.module,shortdesc:base.module_stock_invoice_directly @@ -15611,7 +15614,7 @@ msgstr "ロシア語 / русский язык" #. module: base #: model:ir.module.module,shortdesc:base.module_auth_signup msgid "Signup" -msgstr "" +msgstr "サインアップ" #~ msgid "Code (eg:en__US)" #~ msgstr "コード(例:en_US)" diff --git a/openerp/addons/base/i18n/ka.po b/openerp/addons/base/i18n/ka.po index 66447babcc5..2edfb680c98 100644 --- a/openerp/addons/base/i18n/ka.po +++ b/openerp/addons/base/i18n/ka.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:40+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:32+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/kk.po b/openerp/addons/base/i18n/kk.po index c9159836a90..e91319e4937 100644 --- a/openerp/addons/base/i18n/kk.po +++ b/openerp/addons/base/i18n/kk.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:42+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:34+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ko.po b/openerp/addons/base/i18n/ko.po index ef6e0c4c9dd..e2fc47d80b5 100644 --- a/openerp/addons/base/i18n/ko.po +++ b/openerp/addons/base/i18n/ko.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:42+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:35+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/lt.po b/openerp/addons/base/i18n/lt.po index d2e3c3ef4a5..8dc7f768992 100644 --- a/openerp/addons/base/i18n/lt.po +++ b/openerp/addons/base/i18n/lt.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: 2013-10-11 04:43+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:35+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/lv.po b/openerp/addons/base/i18n/lv.po index e2848ad5a53..42cc7935238 100644 --- a/openerp/addons/base/i18n/lv.po +++ b/openerp/addons/base/i18n/lv.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:43+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:35+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/mk.po b/openerp/addons/base/i18n/mk.po index 199d738895b..6cd54157325 100644 --- a/openerp/addons/base/i18n/mk.po +++ b/openerp/addons/base/i18n/mk.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:43+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:35+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/mn.po b/openerp/addons/base/i18n/mn.po index 4d5bceaf671..388012ef14b 100644 --- a/openerp/addons/base/i18n/mn.po +++ b/openerp/addons/base/i18n/mn.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: 2013-10-11 04:43+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:35+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -12022,6 +12022,31 @@ msgid "" " Reporting / Accounting / **Follow-ups Analysis\n" "\n" msgstr "" +"\n" +"Төлөгдөөгүй нэхэмжлэлүүдэд олон шаттай дуудлаг хийх, захиадал явуулах ажлыг " +"автоматжуулах модуль.\n" +"=========================================================================\n" +"\n" +"Дараах менюгээр олон шатлалтай дуудлагуудыг тодорхойлж болно:\n" +"---------------------------------------------------------------\n" +" Тохиргоо / Мөшгөлтийн Түвшин\n" +" \n" +"Нэгэнт тодорхойлсон бол дараах менюгээр орж дуудлагуудын автоматаар тогтмол " +"хэвлэж болно:\n" +"-----------------------------------------------------------------------------" +"-------------------------\n" +" Төлбөрийн Мөшгөлт / Имэйл болон захидал илгээх\n" +"\n" +"Энэ нь PDF үүсгэх / имэйл илгээх / гар үйлдлүүдийг олон шатлалтай дуудлага " +"дээр үндэслэн үүсгэдэг. \n" +"Ялгаатай компаниудад ялгаатай бодлогыг тодорхойлж болно. \n" +"\n" +"Хэрэв тухайлсан харилцагч/дансны бичилт дээр мөшгөлтийг шалгахыг хүсвэл " +"дараах менюгээр хийх боломжтой:\n" +"-----------------------------------------------------------------------------" +"-------------------------------------\n" +" Тайлан / Санхүү / **Мөшгөлтийн шинжилгээ\n" +"\n" #. module: base #: code:addons/base/ir/ir_model.py:735 @@ -12196,6 +12221,20 @@ msgid "" "You can define the different phases of interviews and easily rate the " "applicant from the kanban view.\n" msgstr "" +"\n" +"Ажлын байр, ажилтан авах процессийг удирдана\n" +"================================================\n" +"\n" +"Энэ модуль нь ажлыг хөтлөх, амралтыг хөтлөх, өргөдөл болон ярилцлагыг хөтлөх " +"зэрэг ажлыг хялбараар хийх боломжийг олгодог...\n" +"\n" +"Энэ нь имэйл үүдтэй уялддаг бөгөөд гэсэн хаяг руу " +"ирсэн имэйлээс өргөдлүүдийг татан авдаг. Мөн баримтын модультай уялдсан " +"байдаг бөгөөд файлаар ирсэн CV-үүдийг хадгалж дараа хайлт хийх боломжийг " +"бүрдүүлдэг. Үүнтэй төстэйгээр Санал асуулга модультай уялдаж ярилцлагыг " +"хөтлөдөг. \n" +"Ярилцлагын ялгаатай шатуудыг тодорхойлж эдгээртээ үнэлгээ өгөх зэрэг ажлыг " +"канбан харагдацаас хялбараар хийж болдог.\n" #. module: base #: field:ir.model.fields,model:0 @@ -12242,7 +12281,7 @@ msgstr "" #. module: base #: help:res.partner,ean13:0 msgid "BarCode" -msgstr "" +msgstr "Зураасан код" #. module: base #: help:ir.model.fields,model_id:0 @@ -12423,7 +12462,7 @@ msgstr "Оффисын Хангамжууд" #. module: base #: field:ir.attachment,res_model:0 msgid "Resource Model" -msgstr "Нөөцийн модел" +msgstr "Нөөц модел" #. module: base #: code:addons/custom.py:555 @@ -12721,6 +12760,9 @@ msgid "" "Allow users to sign up through OAuth2 Provider.\n" "===============================================\n" msgstr "" +"\n" +"OAuth2-р хэрэглэгчид бүртгүүлэх, нэвтрэх боломжийг олгодог.\n" +"===============================================\n" #. module: base #: field:change.password.user,user_id:0 @@ -12744,7 +12786,7 @@ msgstr "Пуэрто Рико" #. module: base #: model:ir.module.module,shortdesc:base.module_web_tests_demo msgid "Demonstration of web/javascript tests" -msgstr "" +msgstr "Веб/javascript тестийн жишээ, үзүүлэн" #. module: base #: field:workflow.transition,signal:0 @@ -13076,6 +13118,13 @@ msgid "" "\n" "The decimal precision is configured per company.\n" msgstr "" +"\n" +"Үнийн нарийвчлалыг тохируулахыг олон зорилгоор ашиглаж болно: санхүү, " +"борлуулалт, худалдан авалт\n" +"=============================================================================" +"====================\n" +"\n" +"Аравны нарийвчлал нь компанийн хүрээнд хийгдэнэ.\n" #. module: base #: selection:res.company,paper_format:0 @@ -13175,6 +13224,9 @@ msgid "" "(if you delete a native ACL, it will be re-created when you reload the " "module." msgstr "" +"Идэвхтэй талбарыг сонгоогүй тохиолдолд ACL-г устгалгүйгээр идэвхгүй болгоно. " +"(Анхны эх ACL-г устгасан байлаа ч модулийг ахин ачаалахад дахин шинээр " +"үүсдэг)" #. module: base #: model:ir.model,name:base.model_ir_fields_converter @@ -13230,6 +13282,17 @@ msgid "" "into mail.message with attachments.\n" " " msgstr "" +"\n" +"Энэ модуль нь Outlook Залгаасыг өгдөг.\n" +"=========================================\n" +"\n" +"Outlook залгаас нь MS Outlook дотороосоо имэйлдээ OpenERP обьекуудтыг \n" +"сонгох хавсаргах боломжийг олгодог. Харилцагч, даалгавар, төсөл, " +"шинжилгээний данс \n" +"гэх мэт дуртай обьектоо сонгож имэйлдээ оруулж mail.message обьектот " +"хавсралтын хамт\n" +"архивладаг.\n" +" " #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_bo @@ -17186,6 +17249,15 @@ msgid "" "

\n" " " msgstr "" +"

\n" +" Хаягийн дэвтэртэй холбогч нэмэхээр бол дарна.\n" +"

\n" +" OpenERP нь захиалагчтай холбоотой бүх үйл ажиллагааг хялбар " +"хөтлөдөг, үүнд: \n" +" захиалагчтай харилцсан харилцаа, бизнес боломжийн түүх, " +"баримтууд гэх мэт.\n" +"

\n" +" " #. module: base #: model:res.partner.category,name:base.res_partner_category_2 @@ -17228,6 +17300,17 @@ msgid "" "on a supplier purchase order into several accounts and analytic plans.\n" " " msgstr "" +"\n" +"Шинжилгээний тархалт болон худалдан авалтын захиалгын менежментийг хийх " +"суурь модуль.\n" +"====================================================================\n" +"\n" +"Шинжилгээний хэд хэдэн төлөвлөгөөг үүсгэх боломжийг хэрэглэгчид олгодог. Энэ " +"нь нийлүүлэгчийн\n" +"худалдан авалтын захиалгын нэг мөр дээр олон данс болон шинжилгээний " +"төлөвлөгөөг сонгож, хуваах \n" +"боломжийг олгодог.\n" +" " #. module: base #: model:res.country,name:base.lk @@ -17247,7 +17330,7 @@ msgstr "Орос хэл / русский язык" #. module: base #: model:ir.module.module,shortdesc:base.module_auth_signup msgid "Signup" -msgstr "" +msgstr "Бүртгүүлэх" #, python-format #~ msgid "new" diff --git a/openerp/addons/base/i18n/nb.po b/openerp/addons/base/i18n/nb.po index 66340e1d131..2482036ec37 100644 --- a/openerp/addons/base/i18n/nb.po +++ b/openerp/addons/base/i18n/nb.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:43+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:35+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/nl.po b/openerp/addons/base/i18n/nl.po index 3fd2efaf667..ef35bb2ece2 100644 --- a/openerp/addons/base/i18n/nl.po +++ b/openerp/addons/base/i18n/nl.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: 2013-10-11 04:39+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:32+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -58,7 +58,7 @@ msgstr "" #: field:ir.ui.view,arch:0 #: field:ir.ui.view.custom,arch:0 msgid "View Architecture" -msgstr "Opbouw weergave" +msgstr "Hiërarchie bekijken" #. module: base #: model:ir.module.module,summary:base.module_sale_stock @@ -78,7 +78,7 @@ msgstr "Hongaars / Magyar" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (PY) / Español (PY)" -msgstr "Spaans (PY) / Spanja (PY)" +msgstr "Spaans (PY) / Español (PY)" #. module: base #: model:ir.module.category,description:base.module_category_project_management @@ -153,11 +153,12 @@ msgid "" msgstr "" "\n" "Deze module voegt een Google gebruiker toe in res.user\n" +"======================================================\n" #. module: base #: help:res.partner,employee:0 msgid "Check this box if this contact is an Employee." -msgstr "Vink dit aan als deze gebruiker een werknemer is" +msgstr "Vink dit aan als deze gebruiker een werknemer is." #. module: base #: help:ir.model.fields,domain:0 @@ -210,13 +211,14 @@ msgid "" "reports." msgstr "" "\n" -"Genereer je facturen vanuit uitgaven, tijdsregistraties.\n" +"Genereer uw facturen vanuit uitgaven, tijdsregistraties.\n" " ========================================================\n" " \n" -"Module voor het genereren van facturen op basis van uitgaven (Personen, " -"uitgaven, enz).\n" +"Module voor het genereren van facturen op basis van kosten (Personen, " +"uitgaven, ...).\n" " \n" -"Je kunt prijslijsten definieren in een grootboek rapportage." +"U kunt prijslijsten definieren in een grootboek rapportage, maak enkele " +"theoretische omzet rapportages." #. module: base #: code:addons/base/ir/ir_sequence.py:134 @@ -252,7 +254,7 @@ msgstr "ir.ui.view.custom" #: code:addons/base/ir/ir_model.py:374 #, python-format msgid "Renaming sparse field \"%s\" is not allowed" -msgstr "Hiernoenen sparse field \"%s\" is niet toegestaan" +msgstr "Hernoenen sparse veld \"%s\" is niet toegestaan" #. module: base #: model:res.country,name:base.sz @@ -319,7 +321,7 @@ msgid "" "any." msgstr "" "De interne gebruiker die verantwoordelijk is voor de communicatie met deze " -"contactpersoon indien aanwezig." +"contactpersoon indien van toepassing." #. module: base #: view:res.partner:0 @@ -491,9 +493,9 @@ msgid "" "Invalid date/time format directive specified. Please refer to the list of " "allowed directives, displayed when you edit a language." msgstr "" -"Ongeldige datum / tijd-formaat richtlijn gespecificeerd. Raadpleeg de lijst " -"met toegestane richtlijnen welke worden weergegeven wanneer u bewerken van " -"een taal." +"Ongeldige datum/tijd-formaat richtlijn gespecificeerd. Raadpleeg de lijst " +"met toegestane richtlijnen welke worden weergegeven wanneer u een taal " +"bewerkt." #. module: base #: code:addons/orm.py:4153 @@ -502,7 +504,7 @@ msgid "" "One of the records you are trying to modify has already been deleted " "(Document type: %s)." msgstr "" -"Een van de records die u probeert te wijzigen is al verwijderd )document " +"Een van de records die u probeert te wijzigen is al verwijderd (Document " "type: %s)." #. module: base @@ -541,12 +543,12 @@ msgstr "Volgende assistent" #. module: base #: field:res.lang,date_format:0 msgid "Date Format" -msgstr "Datumopmaak" +msgstr "Datumnotatie" #. module: base #: model:ir.module.module,shortdesc:base.module_base_report_designer msgid "OpenOffice Report Designer" -msgstr "OpenOffice overzicht ontwerper" +msgstr "OpenOffice Rapport Ontwerper" #. module: base #: model:res.country,name:base.an @@ -667,7 +669,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (VE) / Español (VE)" -msgstr "Spaans (VE) / Spanje (VE)" +msgstr "Spaans (VE) / Español (VE)" #. module: base #: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice @@ -883,7 +885,7 @@ msgstr "De naam van het bedrijf moet uniek zijn!" #. module: base #: model:ir.ui.menu,name:base.menu_base_action_rule_admin msgid "Automated Actions" -msgstr "Automatische acties" +msgstr "Geautomatiseerde acties" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_ro @@ -1006,7 +1008,7 @@ msgstr "base.language.export" #. module: base #: model:res.country,name:base.pg msgid "Papua New Guinea" -msgstr "Papua Nieuw-Guinea" +msgstr "Papoea-Nieuw-Guinea" #. module: base #: help:ir.actions.report.xml,report_type:0 @@ -1344,7 +1346,7 @@ msgstr "Nieuwste versie" #. module: base #: view:ir.rule:0 msgid "Delete Access Right" -msgstr "Tegangsrechten verwijderen." +msgstr "Toegangsrechten verwijderen" #. module: base #: code:addons/base/ir/ir_mail_server.py:214 @@ -1452,7 +1454,7 @@ msgstr "Veld assistent" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (GT) / Español (GT)" -msgstr "Spaans (GT) / Spanje (GT)" +msgstr "Spaans (GT) / Español (GT)" #. module: base #: field:ir.mail_server,smtp_port:0 @@ -1483,7 +1485,7 @@ msgid "" "decimal number [00,53]. All days in a new year preceding the first Monday " "are considered to be in week 0." msgstr "" -"%W - Weeknummer van het jaar (Maandag als eerste dag van de maand) als " +"%W - Weeknummer van het jaar (Maandag als eerste dag van de week) als " "decimaal getal [00,53]. Alle dagen in het nieuwe jaar voorafgaande aan de " "eerste maandag vallen in week 0." @@ -1646,13 +1648,13 @@ msgid "" " " msgstr "" "\n" -"Deze module installaeert de basis voor IBAN (International Bank Account " -"Number) bank rekeningen controleert op geldigheid.\n" +"Deze module installeert de basis voor IBAN (International Bank Account " +"Number) bankrekeningen en controleert deze op geldigheid.\n" "=============================================================================" -"========================\n" +"=====================================\n" "\n" -"De mogelijkheid om correcte local rekeningen op te halen uit een IBAN " -"rekening met een een enkele opdacht.\n" +"De mogelijkheid om correcte normale rekeningnummers te halen uit een IBAN " +"rekeningnummer met een een enkele opdacht.\n" " " #. module: base @@ -1675,6 +1677,12 @@ msgid "" "=============\n" " " msgstr "" +"\n" +"Deze module voegt claim menu en features aan uw portaal toe indien claim en " +"portal zijn geïnstalleerd.\n" +"=============================================================================" +"=========================\n" +" " #. module: base #: model:ir.actions.act_window,help:base.action_res_partner_bank_account_form @@ -1812,8 +1820,8 @@ msgid "" "Helps you manage your purchase-related processes such as requests for " "quotations, supplier invoices, etc..." msgstr "" -"Helpt de inkoop-gerelateerde processen te beheren zoals inkoop " -"prijsaanvragen, inkoopfacturen, etc..." +"Helpt de inkoop-gerelateerde processen te beheren zoals aanvragen van " +"offertes, inkoopfacturen, etc..." #. module: base #: help:res.partner,website:0 @@ -1974,7 +1982,7 @@ msgstr "" #. module: base #: model:res.country,name:base.kg msgid "Kyrgyz Republic (Kyrgyzstan)" -msgstr "Kyrgyzstan" +msgstr "Kirgizië" #. module: base #: model:ir.module.module,description:base.module_account_accountant @@ -2008,8 +2016,7 @@ msgstr "" #: code:addons/base/ir/ir_fields.py:164 #, python-format msgid "Unknown value '%s' for boolean field '%%(field)s', assuming '%s'" -msgstr "" -"Onbekende waarde '%s' voor boolean veld'%%(field)s', ervan uitgaande dat '%s'" +msgstr "Onbekende waarde '%s' voor boolean veld '%%(field)s', neem '%s' aan" #. module: base #: model:res.country,name:base.nl @@ -2045,12 +2052,12 @@ msgstr "Voertuig, lease, verzekeringen, kosten" #: view:ir.model.access:0 #: field:ir.model.access,perm_read:0 msgid "Read Access" -msgstr "Lezen" +msgstr "Leesrechten" #. module: base #: help:ir.attachment,res_id:0 msgid "The record id this is attached to" -msgstr "Het record is waaraan dit is verbonden" +msgstr "Het record id waaraan dit is verbonden" #. module: base #: model:ir.module.module,description:base.module_share @@ -2348,12 +2355,12 @@ msgstr "Spaans / Español" #. module: base #: selection:base.language.install,lang:0 msgid "Korean (KP) / 한국어 (KP)" -msgstr "Koreans (KP) / Korea (KP)" +msgstr "Koreaans (KP) / 한국어 (KP)" #. module: base #: model:res.country,name:base.ax msgid "Åland Islands" -msgstr "Åland-eilanden" +msgstr "Ålandseilanden" #. module: base #: field:res.company,logo:0 @@ -2512,7 +2519,7 @@ msgstr "Groepen" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (CL) / Español (CL)" -msgstr "Spaans (CL) / Spanje (CL)" +msgstr "Spaans (CL) / Español (CL)" #. module: base #: model:res.country,name:base.bz @@ -2532,6 +2539,10 @@ msgid "" "=================================\n" " " msgstr "" +"\n" +"Anonieme gebruikers toegang geven tot uw Portaal.\n" +"=====================================================\n" +" " #. module: base #: model:res.country,name:base.ge @@ -2750,7 +2761,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_auth_oauth_signup msgid "Signup with OAuth2 Authentication" -msgstr "Inloggen met OAuth2 Authenticatie" +msgstr "Registreren met OAuth2 Authenticatie" #. module: base #: selection:ir.model,state:0 @@ -2804,6 +2815,10 @@ msgid "" "==================================\n" " " msgstr "" +"\n" +"Verenigde Staten - Grootboekschema.\n" +"======================================\n" +" " #. module: base #: field:ir.actions.act_url,target:0 @@ -2962,6 +2977,9 @@ msgid "" "Module to attach a google document to any model.\n" "================================================\n" msgstr "" +"\n" +"Module om een google document aan een model te koppelen.\n" +"============================================================\n" #. module: base #: code:addons/base/ir/ir_fields.py:333 @@ -3311,7 +3329,7 @@ msgstr "Norfolkeiland" #. module: base #: selection:base.language.install,lang:0 msgid "Korean (KR) / 한국어 (KR)" -msgstr "Koreans(KR) / Korea (KR)" +msgstr "Koreaans (KR) / 한국어 (KR)" #. module: base #: help:ir.model.fields,model:0 @@ -3429,7 +3447,7 @@ msgstr "Armenië" #. module: base #: model:ir.module.module,summary:base.module_hr_evaluation msgid "Periodical Evaluations, Appraisals, Surveys" -msgstr "Periodieke evaluaties, beoordelingen en enquêtes," +msgstr "Periodieke evaluaties, beoordelingen, enquêtes" #. module: base #: model:ir.actions.act_window,name:base.ir_property_form @@ -3683,7 +3701,7 @@ msgstr "Personeels enquêtes" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (DO) / Español (DO)" -msgstr "Spaans (DO) / Spanje (DO)" +msgstr "Spaans (DO) / Español (DO)" #. module: base #: model:ir.model,name:base.model_workflow_activity @@ -3717,7 +3735,7 @@ msgstr "Uruguay" #. module: base #: selection:base.language.install,lang:0 msgid "Finnish / Suomi" -msgstr "Fins / Finland" +msgstr "Fins / Suomi" #. module: base #: view:ir.config_parameter:0 @@ -3990,7 +4008,7 @@ msgstr "Recursiviteit ontdekt." #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_et msgid "Ethiopia - Accounting" -msgstr "Boekhouding - Ethiopië" +msgstr "Ethiopië - Boekhouding" #. module: base #: code:addons/base/module/module.py:366 @@ -4541,7 +4559,7 @@ msgstr "Te starten actie" #: field:ir.model.constraint,name:0 #: selection:ir.translation,type:0 msgid "Constraint" -msgstr "Begrenzing" +msgstr "Beperking" #. module: base #: selection:ir.values,key:0 @@ -4552,7 +4570,7 @@ msgstr "Standaard adres" #. module: base #: model:ir.module.module,summary:base.module_lunch msgid "Lunch Order, Meal, Food" -msgstr "Lunch orders, maaltijden en voeding" +msgstr "Lunch orders, maaltijden, consumpties" #. module: base #: view:ir.model.fields:0 @@ -4721,7 +4739,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_project_timesheet msgid "Bill Time on Tasks" -msgstr "Tijd of taken factureren" +msgstr "Tijd op taken factureren" #. module: base #: model:ir.module.category,name:base.module_category_marketing @@ -4744,11 +4762,15 @@ msgid "" "==========================\n" "\n" msgstr "" +"\n" +"OpenERP Web Kalender weergave.\n" +"==================================\n" +"\n" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (HN) / Español (HN)" -msgstr "Spaans (HN) / Spanje (HN)" +msgstr "Spaans (HN) / Español (HN)" #. module: base #: view:ir.sequence.type:0 @@ -4855,6 +4877,15 @@ msgid "" " * Commitment Date\n" " * Effective Date\n" msgstr "" +"\n" +"Extra datum informatie toevoegen aan een verkooporder.\n" +"=====================================================\n" +"\n" +"U kunt de volgende extra datums toevoegen aan een verkooporder:\n" +"-----------------------------------------------------------------------\n" +" * Datum Verzoek\n" +" * Datum Toezegging\n" +" * Datum Uitvoering\n" #. module: base #: field:ir.actions.server,srcmodel_id:0 @@ -4920,7 +4951,7 @@ msgstr "Open een venster" #. module: base #: model:res.country,name:base.gq msgid "Equatorial Guinea" -msgstr "Equatoriaal Guinea" +msgstr "Equatoriaal-Guinea" #. module: base #: model:ir.module.module,shortdesc:base.module_web_api @@ -5002,7 +5033,7 @@ msgstr "Stel in als te doen" #. module: base #: view:res.lang:0 msgid "%c - Appropriate date and time representation." -msgstr "%c - Passende weergave datum en tijd" +msgstr "%c - Passende datum en tijd weergave." #. module: base #: code:addons/base/res/res_config.py:420 @@ -5013,6 +5044,7 @@ msgid "" "Click 'Continue' and enjoy your OpenERP experience..." msgstr "" "Uw database is nu volledig geconfigureerd.\n" +"\n" "Klik op 'Doorgaan' en geniet van uw OpenERP beleving..." #. module: base @@ -5064,7 +5096,7 @@ msgstr "Rechten" #. module: base #: field:ir.mail_server,smtp_host:0 msgid "SMTP Server" -msgstr "SMTP-server" +msgstr "SMTP Server" #. module: base #: code:addons/base/module/module.py:320 @@ -5072,7 +5104,7 @@ msgstr "SMTP-server" msgid "You try to remove a module that is installed or will be installed" msgstr "" "U probeert een module te verwijderen die geïnstalleerd is of nog moet worden " -"geïnstalleerd." +"geïnstalleerd" #. module: base #: view:base.module.upgrade:0 @@ -5082,7 +5114,7 @@ msgstr "De geselecteerde modules zijn bijgewerkt / geïnstalleerd !" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (PR) / Español (PR)" -msgstr "Spaans (PR) / Spanja (PR)" +msgstr "Spaans (PR) / Español (PR)" #. module: base #: model:ir.module.module,description:base.module_crm_profiling @@ -5137,7 +5169,7 @@ msgstr "Inkoop" #. module: base #: selection:base.language.install,lang:0 msgid "Portuguese (BR) / Português (BR)" -msgstr "" +msgstr "Portugees (BR) / Português (BR)" #. module: base #: model:ir.model,name:base.model_ir_needaction_mixin @@ -5157,7 +5189,7 @@ msgstr "IT Services" #. module: base #: model:ir.module.category,name:base.module_category_specific_industry_applications msgid "Specific Industry Applications" -msgstr "Specificeer industrie toepassingen" +msgstr "Specifieke industriële toepassingen" #. module: base #: model:ir.module.module,shortdesc:base.module_google_docs @@ -5245,12 +5277,12 @@ msgstr "Kenia" #: model:ir.actions.act_window,name:base.action_translation #: model:ir.ui.menu,name:base.menu_action_translation msgid "Translated Terms" -msgstr "Vertaalde regels" +msgstr "Vertaalde uitdrukkingen" #. module: base #: selection:base.language.install,lang:0 msgid "Abkhazian / аҧсуа" -msgstr "Abchazisch / Abchazië" +msgstr "Abchazisch / аҧсуа" #. module: base #: view:base.module.configuration:0 @@ -5301,7 +5333,7 @@ msgstr "Opslaan" #. module: base #: field:ir.actions.report.xml,report_xml:0 msgid "XML Path" -msgstr "XML Path" +msgstr "XML Pad" #. module: base #: model:res.country,name:base.bj @@ -5401,14 +5433,14 @@ msgstr "Beveiliging" #. module: base #: selection:base.language.install,lang:0 msgid "Portuguese / Português" -msgstr "" +msgstr "Portugees / Português" #. module: base #: code:addons/base/ir/ir_model.py:372 #, python-format msgid "Changing the storing system for field \"%s\" is not allowed." msgstr "" -"Het veranderen van het opsla systeem voor veld \"%s\" is niet toegestaan." +"Het veranderen van het opslagsysteem voor veld \"%s\" is niet toegestaan." #. module: base #: help:res.partner.bank,company_id:0 @@ -5436,7 +5468,7 @@ msgstr "Geïnstalleerd" #. module: base #: selection:base.language.install,lang:0 msgid "Ukrainian / українська" -msgstr "Oekraïens / Oekraïne" +msgstr "Oekraïens / українська" #. module: base #: model:res.country,name:base.sn @@ -5493,7 +5525,7 @@ msgstr "Expressie om aan te voldoen om de transitie te maken." #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (PA) / Español (PA)" -msgstr "Spaans (PA) / Spanja (PA)" +msgstr "Spaans (PA) / Español (PA)" #. module: base #: view:res.currency:0 @@ -5525,7 +5557,7 @@ msgstr "Ieder model moet uniek zijn!" #: model:ir.module.category,name:base.module_category_localization #: model:ir.ui.menu,name:base.menu_localisation msgid "Localization" -msgstr "Vertalingen" +msgstr "Lokalisatie" #. module: base #: model:ir.module.module,description:base.module_web_api @@ -5613,7 +5645,7 @@ msgstr "Relatie labels" #. module: base #: view:res.company:0 msgid "Preview Header/Footer" -msgstr "Bekijk kop/voet" +msgstr "Bekijk kop-/voettekst" #. module: base #: field:ir.ui.menu,parent_id:0 @@ -5624,7 +5656,7 @@ msgstr "Hoofdmenu" #. module: base #: field:res.partner.bank,owner_name:0 msgid "Account Owner Name" -msgstr "Naam eigenaar rekening" +msgstr "Naam rekeningeigenaar" #. module: base #: code:addons/base/ir/ir_model.py:420 @@ -5683,7 +5715,7 @@ msgstr "Filter Naam" #: view:res.partner:0 #: field:res.request,history:0 msgid "History" -msgstr "Historie" +msgstr "Geschiedenis" #. module: base #: model:res.country,name:base.im @@ -5704,12 +5736,12 @@ msgstr "De modulenaam moet uniek zijn !" #. module: base #: model:res.country,name:base.bv msgid "Bouvet Island" -msgstr "Bouvet-eiland" +msgstr "Bouveteiland" #. module: base #: field:ir.model.constraint,type:0 msgid "Constraint Type" -msgstr "Constraint soort" +msgstr "Soort Beperking" #. module: base #: field:res.company,child_ids:0 @@ -5939,7 +5971,7 @@ msgstr "ir.actions.act_url" #. module: base #: model:ir.ui.menu,name:base.menu_translation_app msgid "Application Terms" -msgstr "Applicatie-termen" +msgstr "Applicatie uitdrukkingen" #. module: base #: model:ir.actions.act_window,help:base.open_module_tree @@ -5973,12 +6005,12 @@ msgstr "Engels (GB)" #. module: base #: selection:base.language.install,lang:0 msgid "Japanese / 日本語" -msgstr "Japans / Japan" +msgstr "Japans / 日本語" #. module: base #: model:ir.model,name:base.model_base_language_import msgid "Language Import" -msgstr "Taal import" +msgstr "Taal Importeren" #. module: base #: help:workflow.transition,act_from:0 @@ -6090,7 +6122,7 @@ msgstr "" #. module: base #: view:ir.translation:0 msgid "Comments" -msgstr "Reacties" +msgstr "Opmerkingen" #. module: base #: model:res.country,name:base.et @@ -6196,6 +6228,12 @@ msgid "" "===============================================\n" " " msgstr "" +"\n" +"Gebruikers toestaan om te registreren en hun wachtwoord opnieuw in te " +"stellen\n" +"=============================================================================" +"\n" +" " #. module: base #: model:ir.module.category,name:base.module_category_usability @@ -6278,7 +6316,7 @@ msgstr "" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (BO) / Español (BO)" -msgstr "Spaans (BO) / Spaans (BO)" +msgstr "Spaans (BO) / Español (BO)" #. module: base #: model:ir.module.module,description:base.module_board @@ -6300,7 +6338,7 @@ msgstr "Overzicht toegangscontrole" #. module: base #: model:res.country,name:base.um msgid "USA Minor Outlying Islands" -msgstr "VS Kleine Buitengaatse Eilanden" +msgstr "Kleine afgelegen eilanden van de Verenigde Staten" #. module: base #: help:ir.cron,numbercall:0 @@ -6342,7 +6380,7 @@ msgstr "Initiële datum" #. module: base #: selection:base.language.install,lang:0 msgid "Gujarati / ગુજરાતી" -msgstr "Gujarati / India" +msgstr "Gujarati / ગુજરાતી" #. module: base #: code:addons/base/module/module.py:361 @@ -6356,7 +6394,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_be_hr_payroll msgid "Belgium - Payroll" -msgstr "Loonadministratie - België" +msgstr "België - Loonadministratie" #. module: base #: view:workflow.activity:0 @@ -6741,7 +6779,7 @@ msgstr "Prijs nauwkeurigheid" #. module: base #: selection:base.language.install,lang:0 msgid "Latvian / latviešu valoda" -msgstr "Lets / Letland" +msgstr "Lets / latviešu valoda" #. module: base #: selection:base.language.install,lang:0 @@ -7004,7 +7042,7 @@ msgstr "Soms BIC of Swift genoemd." #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_in msgid "Indian - Accounting" -msgstr "Boekhouding - India" +msgstr "India - Boekhouding" #. module: base #: field:res.lang,time_format:0 @@ -15159,7 +15197,7 @@ msgstr "Limiet" #. module: base #: model:res.groups,name:base.group_hr_user msgid "Officer" -msgstr "Manager" +msgstr "Functionaris" #. module: base #: code:addons/orm.py:787 diff --git a/openerp/addons/base/i18n/nl_BE.po b/openerp/addons/base/i18n/nl_BE.po index d9cd2b2a0b1..625ec0831ee 100644 --- a/openerp/addons/base/i18n/nl_BE.po +++ b/openerp/addons/base/i18n/nl_BE.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:47+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:40+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/pl.po b/openerp/addons/base/i18n/pl.po index 8b5af32e358..81278aee92c 100644 --- a/openerp/addons/base/i18n/pl.po +++ b/openerp/addons/base/i18n/pl.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: 2013-10-11 04:44+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:36+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/pt.po b/openerp/addons/base/i18n/pt.po index fbf23562ddf..32a09c25bf4 100644 --- a/openerp/addons/base/i18n/pt.po +++ b/openerp/addons/base/i18n/pt.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: 2013-10-11 04:44+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:36+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/pt_BR.po b/openerp/addons/base/i18n/pt_BR.po index 749f6afa8e9..177135777e0 100644 --- a/openerp/addons/base/i18n/pt_BR.po +++ b/openerp/addons/base/i18n/pt_BR.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:46+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:39+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ro.po b/openerp/addons/base/i18n/ro.po index 441f1fcb778..9fcd193e9fd 100644 --- a/openerp/addons/base/i18n/ro.po +++ b/openerp/addons/base/i18n/ro.po @@ -8,13 +8,13 @@ msgstr "" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-12-21 17:04+0000\n" "PO-Revision-Date: 2013-01-05 18:18+0000\n" -"Last-Translator: ERPSystems.ro \n" +"Last-Translator: ERPSystems.ro \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: 2013-10-11 04:44+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:36+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ru.po b/openerp/addons/base/i18n/ru.po index 321134ec830..599dd264403 100644 --- a/openerp/addons/base/i18n/ru.po +++ b/openerp/addons/base/i18n/ru.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: 2013-10-11 04:44+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:36+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -307,6 +307,13 @@ msgid "" "\n" " " msgstr "" +"\n" +"Чилийский бухгалтерский учет и налоги в соответствии с действующими " +"положениями\n" +"==============================================\n" +"Plan contable chileno e impuestos de acuerdo a disposiciones vigentes\n" +"\n" +" " #. module: base #: model:ir.module.module,shortdesc:base.module_sale @@ -429,6 +436,8 @@ msgid "" "There is already a shared filter set as default for %(model)s, delete or " "change it before setting a new default" msgstr "" +"Уже существует общий фильтр по умолчанию для %(model)s, удалите или измените " +"его прежде чем устанавливать новый по умолчанию" #. module: base #: code:addons/orm.py:2649 @@ -597,6 +606,15 @@ msgid "" "that have no counterpart in the general financial accounts.\n" " " msgstr "" +"\n" +"Модуль для определения объекта аналитического учета.\n" +"===============================================\n" +"\n" +"В OpenERP, аналитические счета связаны с общими счетами, но рассматриваются\n" +"полностью независимо. Таким образом, вы можете ввести различные " +"аналитические операции\n" +"которые не дублируются в общие финансовые счета.\n" +" " #. module: base #: model:ir.module.module,shortdesc:base.module_idea @@ -620,6 +638,19 @@ msgid "" "* Use emails to automatically confirm and send acknowledgements for any " "event registration\n" msgstr "" +"\n" +"Организация и управление событиями.\n" +"======================================\n" +"\n" +"Модуль мероприятий позволяет Вам эффективно организовывать события и все " +"задачи связанные с: планификацией, регистрацией отслеживания,\n" +"посещаемостью, и т.д.\n" +"\n" +"Основные характеристики\n" +"------------\n" +"* Управление своими Мероприятиями и Регистрациями\n" +"* Использовать электронную почту для автоматического подтверждения и " +"отправлять подтверждения для регистрации любого события\n" #. module: base #: selection:base.language.install,lang:0 @@ -877,7 +908,7 @@ msgstr "Иордания" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_hr msgid "Croatia - RRIF 2012 COA" -msgstr "" +msgstr "Хорватия - RRIF 2012 COA" #. module: base #: help:ir.cron,nextcall:0 @@ -2534,6 +2565,10 @@ msgid "" "=================================\n" " " msgstr "" +"\n" +"Позволить неавторизованным пользователям доступ к Порталу.\n" +"=================================\n" +" " #. module: base #: model:res.country,name:base.ge @@ -2918,6 +2953,40 @@ msgid "" "* Monthly Turnover (Graph)\n" " " msgstr "" +"\n" +"Управление предложениями цен и заказами покупателей \n" +"==================================\n" +"\n" +"This application allows you to manage your sales goals in an effective and " +"efficient manner by keeping track of all sales orders and history.\n" +"\n" +"It handles the full sales workflow:\n" +"\n" +"* **Quotation** -> **Sales order** -> **Invoice**\n" +"\n" +"Preferences (only with Warehouse Management installed)\n" +"------------------------------------------------------\n" +"\n" +"If you also installed the Warehouse Management, you can deal with the " +"following preferences:\n" +"\n" +"* Shipping: Choice of delivery at once or partial delivery\n" +"* Invoicing: choose how invoices will be paid\n" +"* Incoterms: International Commercial terms\n" +"\n" +"You can choose flexible invoicing methods:\n" +"\n" +"* *On Demand*: Invoices are created manually from Sales Orders when needed\n" +"* *On Delivery Order*: Invoices are generated from picking (delivery)\n" +"* *Before Delivery*: A Draft invoice is created and must be paid before " +"delivery\n" +"\n" +"\n" +"The Dashboard for the Sales Manager will include\n" +"------------------------------------------------\n" +"* My Quotations\n" +"* Monthly Turnover (Graph)\n" +" " #. module: base #: field:ir.actions.act_window,res_id:0 @@ -3020,6 +3089,14 @@ msgid "" "This module is currently not compatible with the ``user_ldap`` module and\n" "will disable LDAP authentication completely if installed at the same time.\n" msgstr "" +"\n" +"Зашифрованные пароли\n" +"==================\n" +"\n" +"Взаимодействие с LDAP - авторизацией\n" +"-------------------------------------\n" +"This module is currently not compatible with the ``user_ldap`` module and\n" +"will disable LDAP authentication completely if installed at the same time.\n" #. module: base #: model:res.groups,name:base.group_hr_manager @@ -3205,6 +3282,15 @@ msgid "" " * ``base_stage``: stage management\n" " " msgstr "" +"\n" +"Этот модуль обрабатывает состояния и стадии. Он является производным от " +"классов crm_base и crm_case для crm. \n" +"=============================================================================" +"======================\n" +"\n" +" * ``base_state``: управление состояниями \n" +" * ``base_stage``: управление стадиями\n" +" " #. module: base #: model:ir.module.module,shortdesc:base.module_web_linkedin @@ -7907,7 +7993,7 @@ msgstr "Следующее число в этой нумерации" #. module: base #: view:res.partner:0 msgid "at" -msgstr "" +msgstr "в" #. module: base #: view:ir.rule:0 @@ -8744,7 +8830,7 @@ msgstr "Гонконг" #. module: base #: model:ir.module.module,shortdesc:base.module_portal_sale msgid "Portal Sale" -msgstr "" +msgstr "Портал: продажи" #. module: base #: field:ir.default,ref_id:0 diff --git a/openerp/addons/base/i18n/sk.po b/openerp/addons/base/i18n/sk.po index f6508c82998..db9049c1746 100644 --- a/openerp/addons/base/i18n/sk.po +++ b/openerp/addons/base/i18n/sk.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:45+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:37+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/sl.po b/openerp/addons/base/i18n/sl.po index 4124fefe7a1..b4d6a2e2e26 100644 --- a/openerp/addons/base/i18n/sl.po +++ b/openerp/addons/base/i18n/sl.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: 2013-10-11 04:45+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:37+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/sq.po b/openerp/addons/base/i18n/sq.po index 3ccb5e34230..9e2df0e1627 100644 --- a/openerp/addons/base/i18n/sq.po +++ b/openerp/addons/base/i18n/sq.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: 2013-10-11 04:38+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:30+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/sr.po b/openerp/addons/base/i18n/sr.po index 4158db2ab6f..7841a5b5e65 100644 --- a/openerp/addons/base/i18n/sr.po +++ b/openerp/addons/base/i18n/sr.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:44+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:37+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/sr@latin.po b/openerp/addons/base/i18n/sr@latin.po index bd6314e4f8e..e1e78ca8e5c 100644 --- a/openerp/addons/base/i18n/sr@latin.po +++ b/openerp/addons/base/i18n/sr@latin.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:49+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:41+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/sv.po b/openerp/addons/base/i18n/sv.po index a6e76dff183..c03e2186ca7 100644 --- a/openerp/addons/base/i18n/sv.po +++ b/openerp/addons/base/i18n/sv.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: 2013-10-11 04:45+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:37+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing @@ -59,7 +59,7 @@ msgstr "Visa arkitektur" #. module: base #: model:ir.module.module,summary:base.module_sale_stock msgid "Quotation, Sale Orders, Delivery & Invoicing Control" -msgstr "" +msgstr "Offerter, säljordrar, leverans & faktura kontroll" #. module: base #: selection:ir.sequence,implementation:0 @@ -88,7 +88,7 @@ msgstr "" #. module: base #: model:ir.module.module,summary:base.module_point_of_sale msgid "Touchscreen Interface for Shops" -msgstr "" +msgstr "Pekskärmsinterface för affärer" #. module: base #: model:ir.module.module,shortdesc:base.module_l10n_in_hr_payroll @@ -139,7 +139,7 @@ msgstr "" #. module: base #: help:res.partner,employee:0 msgid "Check this box if this contact is an Employee." -msgstr "" +msgstr "Markera här om kontakten är en anställd" #. module: base #: help:ir.model.fields,domain:0 diff --git a/openerp/addons/base/i18n/th.po b/openerp/addons/base/i18n/th.po index 37703f638c1..587d02b4213 100644 --- a/openerp/addons/base/i18n/th.po +++ b/openerp/addons/base/i18n/th.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:45+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:38+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/tlh.po b/openerp/addons/base/i18n/tlh.po index b5dcd87baa8..0f9c4b2de90 100644 --- a/openerp/addons/base/i18n/tlh.po +++ b/openerp/addons/base/i18n/tlh.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: 2013-10-11 04:45+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:38+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/tr.po b/openerp/addons/base/i18n/tr.po index 763015f2c22..dc751e8b678 100644 --- a/openerp/addons/base/i18n/tr.po +++ b/openerp/addons/base/i18n/tr.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: 2013-10-11 04:46+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:38+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/uk.po b/openerp/addons/base/i18n/uk.po index f641d8c62c7..d280ce9ab2f 100644 --- a/openerp/addons/base/i18n/uk.po +++ b/openerp/addons/base/i18n/uk.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: 2013-10-11 04:46+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:38+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/ur.po b/openerp/addons/base/i18n/ur.po index 5d7d5f171af..e1031e2204c 100644 --- a/openerp/addons/base/i18n/ur.po +++ b/openerp/addons/base/i18n/ur.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:46+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:38+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/vi.po b/openerp/addons/base/i18n/vi.po index fe020c806b8..8c3e6c6fc7c 100644 --- a/openerp/addons/base/i18n/vi.po +++ b/openerp/addons/base/i18n/vi.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:46+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:38+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/zh_CN.po b/openerp/addons/base/i18n/zh_CN.po index 274a4066dfa..f0912388b06 100644 --- a/openerp/addons/base/i18n/zh_CN.po +++ b/openerp/addons/base/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: 2013-10-11 04:48+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:41+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/zh_HK.po b/openerp/addons/base/i18n/zh_HK.po index c457ec60396..d492baf639f 100644 --- a/openerp/addons/base/i18n/zh_HK.po +++ b/openerp/addons/base/i18n/zh_HK.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-10-11 04:46+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:38+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/i18n/zh_TW.po b/openerp/addons/base/i18n/zh_TW.po index b5246db8eed..14f9b915942 100644 --- a/openerp/addons/base/i18n/zh_TW.po +++ b/openerp/addons/base/i18n/zh_TW.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: 2013-10-11 04:48+0000\n" -"X-Generator: Launchpad (build 16799)\n" +"X-Launchpad-Export-Date: 2013-11-12 05:40+0000\n" +"X-Generator: Launchpad (build 16820)\n" #. module: base #: model:ir.module.module,description:base.module_account_check_writing diff --git a/openerp/addons/base/ir/__init__.py b/openerp/addons/base/ir/__init__.py index 35184f7a565..f5e8fcf41a7 100644 --- a/openerp/addons/base/ir/__init__.py +++ b/openerp/addons/base/ir/__init__.py @@ -37,6 +37,7 @@ import ir_config_parameter import osv_memory_autovacuum import ir_mail_server import ir_fields +import ir_http # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/openerp/addons/base/ir/ir_attachment.py b/openerp/addons/base/ir/ir_attachment.py index 704488f6938..6b7b4cecc4b 100644 --- a/openerp/addons/base/ir/ir_attachment.py +++ b/openerp/addons/base/ir/ir_attachment.py @@ -27,6 +27,7 @@ import re from openerp import tools from openerp.osv import fields,osv +from openerp import SUPERUSER_ID _logger = logging.getLogger(__name__) @@ -142,9 +143,10 @@ class ir_attachment(osv.osv): if attach.store_fname: self._file_delete(cr, uid, location, attach.store_fname) fname = self._file_write(cr, uid, location, value) - super(ir_attachment, self).write(cr, uid, [id], {'store_fname': fname, 'file_size': file_size}, context=context) + # SUPERUSER_ID as probably don't have write access, trigger during create + super(ir_attachment, self).write(cr, SUPERUSER_ID, [id], {'store_fname': fname, 'file_size': file_size}, context=context) else: - super(ir_attachment, self).write(cr, uid, [id], {'db_datas': value, 'file_size': file_size}, context=context) + super(ir_attachment, self).write(cr, SUPERUSER_ID, [id], {'db_datas': value, 'file_size': file_size}, context=context) return True _name = 'ir.attachment' @@ -186,8 +188,6 @@ class ir_attachment(osv.osv): In the 'document' module, it is overriden to relax this hard rule, since more complex ones apply there. """ - if not ids: - return res_ids = {} if ids: if isinstance(ids, (int, long)): @@ -261,10 +261,14 @@ class ir_attachment(osv.osv): return len(result) if count else list(result) def read(self, cr, uid, ids, fields_to_read=None, context=None, load='_classic_read'): + if isinstance(ids, (int, long)): + ids = [ids] self.check(cr, uid, ids, 'read', context=context) return super(ir_attachment, self).read(cr, uid, ids, fields_to_read, context, load) def write(self, cr, uid, ids, vals, context=None): + if isinstance(ids, (int, long)): + ids = [ids] self.check(cr, uid, ids, 'write', context=context, values=vals) if 'file_size' in vals: del vals['file_size'] @@ -275,6 +279,8 @@ class ir_attachment(osv.osv): return super(ir_attachment, self).copy(cr, uid, id, default, context) def unlink(self, cr, uid, ids, context=None): + if isinstance(ids, (int, long)): + ids = [ids] self.check(cr, uid, ids, 'unlink', context=context) location = self.pool.get('ir.config_parameter').get_param(cr, uid, 'ir_attachment.location') if location: @@ -284,7 +290,7 @@ class ir_attachment(osv.osv): return super(ir_attachment, self).unlink(cr, uid, ids, context) def create(self, cr, uid, values, context=None): - self.check(cr, uid, [], mode='create', context=context, values=values) + self.check(cr, uid, [], mode='write', context=context, values=values) if 'file_size' in values: del values['file_size'] return super(ir_attachment, self).create(cr, uid, values, context) diff --git a/openerp/addons/base/ir/ir_fields.py b/openerp/addons/base/ir/ir_fields.py index 302b11eb526..09622dadd17 100644 --- a/openerp/addons/base/ir/ir_fields.py +++ b/openerp/addons/base/ir/ir_fields.py @@ -184,7 +184,7 @@ class ir_fields_converter(orm.Model): def _str_id(self, cr, uid, model, column, value, context=None): return value, [] - _str_to_char = _str_to_text = _str_to_binary = _str_id + _str_to_reference = _str_to_char = _str_to_text = _str_to_binary = _str_id def _str_to_date(self, cr, uid, model, column, value, context=None): try: diff --git a/openerp/addons/base/ir/ir_http.py b/openerp/addons/base/ir/ir_http.py new file mode 100644 index 00000000000..56c00743900 --- /dev/null +++ b/openerp/addons/base/ir/ir_http.py @@ -0,0 +1,144 @@ +#---------------------------------------------------------- +# ir_http modular http routing +#---------------------------------------------------------- +import logging +import re + +import werkzeug.exceptions +import werkzeug.routing + +import openerp +from openerp import http +from openerp.http import request +from openerp.osv import osv, orm + +_logger = logging.getLogger(__name__) + + +# FIXME: replace by proxy on request.uid? +_uid = object() + +class ModelConverter(werkzeug.routing.BaseConverter): + + def __init__(self, url_map, model=False): + super(ModelConverter, self).__init__(url_map) + self.model = model + self.regex = '([0-9]+)' + + def to_python(self, value): + m = re.match(self.regex, value) + return request.registry[self.model].browse( + request.cr, _uid, int(m.group(1)), context=request.context) + + def to_url(self, value): + return value.id + +class ModelsConverter(werkzeug.routing.BaseConverter): + + def __init__(self, url_map, model=False): + super(ModelsConverter, self).__init__(url_map) + self.model = model + # TODO add support for slug in the form [A-Za-z0-9-] bla-bla-89 -> id 89 + self.regex = '([0-9,]+)' + + def to_python(self, value): + # TODO: + # - raise routing.ValidationError() if no browse record can be createdm + # - support slug + return request.registry[self.model].browse(request.cr, _uid, [int(i) for i in value.split(',')], context=request.context) + + def to_url(self, value): + return ",".join(i.id for i in value) + +class ir_http(osv.AbstractModel): + _name = 'ir.http' + + _description = "HTTP routing" + + def _get_converters(self): + return {'model': ModelConverter, 'models': ModelsConverter} + + def _find_handler(self): + return self.routing_map().bind_to_environ(request.httprequest.environ).match() + + def _auth_method_user(self): + request.uid = request.session.uid + if not request.uid: + raise http.SessionExpiredException("Session expired") + + def _auth_method_admin(self): + if not request.db: + raise http.SessionExpiredException("No valid database for request %s" % request.httprequest) + request.uid = openerp.SUPERUSER_ID + + def _auth_method_none(self): + request.disable_db = True + request.uid = None + + def _authenticate(self, func, arguments): + auth_method = getattr(func, "auth", "user") + if request.session.uid: + try: + request.session.check_security() + # what if error in security.check() + # -> res_users.check() + # -> res_users.check_credentials() + except http.SessionExpiredException: + request.session.logout() + raise http.SessionExpiredException("Session expired for request %s" % request.httprequest) + getattr(self, "_auth_method_%s" % auth_method)() + return auth_method + + def _handle_404(self, exception): + raise exception + + def _handle_403(self, exception): + raise exception + + def _handle_500(self, exception): + raise exception + + def _dispatch(self): + # locate the controller method + try: + func, arguments = self._find_handler() + except werkzeug.exceptions.NotFound, e: + return self._handle_404(e) + + # check authentication level + try: + auth_method = self._authenticate(func, arguments) + except werkzeug.exceptions.NotFound, e: + return self._handle_403(e) + + # post process arg to set uid on browse records + for arg in arguments.itervalues(): + if isinstance(arg, orm.browse_record) and arg._uid is _uid: + arg._uid = request.uid + + # set and execute handler + try: + request.set_handler(func, arguments, auth_method) + result = request.dispatch() + if isinstance(result, Exception): + raise result + except Exception, e: + fn = getattr(self, '_handle_%s' % getattr(e, 'code', 500), + self._handle_500) + return fn(e) + + return result + + def routing_map(self): + if not hasattr(self, '_routing_map'): + _logger.info("Generating routing map") + cr = request.cr + m = request.registry.get('ir.module.module') + ids = m.search(cr, openerp.SUPERUSER_ID, [('state', '=', 'installed'), ('name', '!=', 'web')], context=request.context) + installed = set(x['name'] for x in m.read(cr, 1, ids, ['name'], context=request.context)) + mods = ['', "web"] + sorted(installed) + self._routing_map = http.routing_map(mods, False, converters=self._get_converters()) + + return self._routing_map + +# vim:et: diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py index 396de27903e..14b854f0f1a 100644 --- a/openerp/addons/base/ir/ir_model.py +++ b/openerp/addons/base/ir/ir_model.py @@ -198,6 +198,7 @@ class ir_model(osv.osv): select=vals.get('select_level', '0'), update_custom_fields=True) self.pool[vals['model']]._auto_init(cr, ctx) + self.pool[vals['model']]._auto_end(cr, ctx) # actually create FKs! openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname) return res @@ -356,6 +357,7 @@ class ir_model_fields(osv.osv): select=vals.get('select_level', '0'), update_custom_fields=True) self.pool[vals['model']]._auto_init(cr, ctx) + self.pool[vals['model']]._auto_end(cr, ctx) # actually create FKs! openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname) return res @@ -470,6 +472,7 @@ class ir_model_fields(osv.osv): for col_name, col_prop, val in patch_struct[1]: setattr(obj._columns[col_name], col_prop, val) obj._auto_init(cr, ctx) + obj._auto_end(cr, ctx) # actually create FKs! openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname) return res diff --git a/openerp/addons/base/ir/ir_translation.py b/openerp/addons/base/ir/ir_translation.py index 0f9b6ea3886..6cbd90c3072 100644 --- a/openerp/addons/base/ir/ir_translation.py +++ b/openerp/addons/base/ir/ir_translation.py @@ -161,18 +161,18 @@ class ir_translation(osv.osv): ''' if context is None: context = {} - res = {} + res = dict.fromkeys(ids, False) for record in self.browse(cr, uid, ids, context=context): if record.type != 'model': res[record.id] = record.src else: model_name, field = record.name.split(',') model = self.pool.get(model_name) - #We need to take the context without the language information, because we want to read the - #value store in db and not on the one associate with current language. - context_wo_lang = context.copy() - context_wo_lang.pop('lang', None) - res[record.id] = model.read(cr, uid, record.res_id, [field], context=context_wo_lang)[field] + if model and model.exists(cr, uid, record.res_id, context=context): + # Pass context without lang, need to read real stored field, not translation + context_no_lang = dict(context, lang=None) + result = model.read(cr, uid, record.res_id, [field], context=context_no_lang) + res[record.id] = result[field] if result else False return res def _set_src(self, cr, uid, id, name, value, args, context=None): diff --git a/openerp/addons/base/ir/ir_translation_view.xml b/openerp/addons/base/ir/ir_translation_view.xml index 64a02576091..f3f9c4d0fac 100644 --- a/openerp/addons/base/ir/ir_translation_view.xml +++ b/openerp/addons/base/ir/ir_translation_view.xml @@ -34,6 +34,7 @@ + diff --git a/openerp/addons/base/module/wizard/base_module_import.py b/openerp/addons/base/module/wizard/base_module_import.py index 61694d5f8c3..6d6f0e1ef8d 100644 --- a/openerp/addons/base/module/wizard/base_module_import.py +++ b/openerp/addons/base/module/wizard/base_module_import.py @@ -47,33 +47,8 @@ class base_module_import(osv.osv_memory): } def importzip(self, cr, uid, ids, context): - (data,) = self.browse(cr, uid, ids , context=context) - module_data = data.module_file - zip_data = base64.decodestring(module_data) - fp = StringIO() - fp.write(zip_data) - try: - file_data = zipfile.ZipFile(fp, 'r') - except zipfile.BadZipfile: - raise osv.except_osv(_('Error!'), _('File is not a zip file!')) - init_file_name = sorted(file_data.namelist())[0] - module_name = os.path.split(init_file_name)[0] - - file_path = os.path.join(ADDONS_PATH, '%s.zip' % module_name) - try: - zip_file = open(file_path, 'wb') - except IOError: - raise osv.except_osv(_('Error!'), - _('Can not create the module file: %s!') % \ - (file_path,) ) - zip_file.write(zip_data) - zip_file.close() - - self.pool.get('ir.module.module').update_list(cr, uid, - {'module_name': module_name,}) - self.write(cr, uid, ids, {'state':'done', 'module_name': module_name}, - context) - return False + #TODO: drop this model and the corresponding view/action in trunk + raise NotImplementedError('This feature is not available') def action_module_open(self, cr, uid, ids, context): (data,) = self.browse(cr, uid, ids , context=context) diff --git a/openerp/addons/base/res/res_config.py b/openerp/addons/base/res/res_config.py index c59f56d9fa6..5e4d1879ee3 100644 --- a/openerp/addons/base/res/res_config.py +++ b/openerp/addons/base/res/res_config.py @@ -102,13 +102,10 @@ class res_config_configurable(osv.osv_memory): res = next.action_launch(context=context) res['nodestroy'] = False return res - # reload the client; open the first available root menu - menu_obj = self.pool['ir.ui.menu'] - menu_ids = menu_obj.search(cr, uid, [('parent_id', '=', False)], context=context) + return { 'type': 'ir.actions.client', 'tag': 'reload', - 'params': {'menu_id': menu_ids and menu_ids[0] or False}, } def start(self, cr, uid, ids, context=None): diff --git a/openerp/addons/base/res/res_currency.py b/openerp/addons/base/res/res_currency.py index a496a1eccdf..94a5f538b25 100644 --- a/openerp/addons/base/res/res_currency.py +++ b/openerp/addons/base/res/res_currency.py @@ -249,8 +249,8 @@ class res_currency_rate(osv.osv): _description = "Currency Rate" _columns = { - 'name': fields.date('Date', required=True, select=True), - 'rate': fields.float('Rate', digits=(12,6), help='The rate of the currency to the currency of rate 1'), + 'name': fields.datetime('Date', required=True, select=True), + 'rate': fields.float('Rate', digits=(12, 6), help='The rate of the currency to the currency of rate 1'), 'currency_id': fields.many2one('res.currency', 'Currency', readonly=True), 'currency_rate_type_id': fields.many2one('res.currency.rate.type', 'Currency Rate Type', help="Allow you to define your own currency rate types, like 'Average' or 'Year to Date'. Leave empty if you simply want to use the normal 'spot' rate type"), } diff --git a/openerp/addons/base/res/res_partner_view.xml b/openerp/addons/base/res/res_partner_view.xml index f02021313c0..943aedf49f7 100644 --- a/openerp/addons/base/res/res_partner_view.xml +++ b/openerp/addons/base/res/res_partner_view.xml @@ -329,7 +329,7 @@ + filter_domain="['|','|',('display_name','ilike',self),('ref','=',self),('email,'ilike',self)]"/> diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index beb0018dc8d..160ac6a2059 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -171,13 +171,6 @@ class res_users(osv.osv): def on_change_login(self, cr, uid, ids, login, context=None): return {'value': {'email': login}} - def on_change_company_id(self, cr, uid, ids, company_id): - return {'warning' : { - 'title': _("Company Switch Warning"), - 'message': _("Please keep in mind that documents currently displayed may not be relevant after switching to another company. If you have unsaved changes, please make sure to save and close all forms before switching to a different company. (You can click on Cancel in the User Preferences now)"), - } - } - def onchange_state(self, cr, uid, ids, state_id, context=None): partner_ids = [user.partner_id.id for user in self.browse(cr, uid, ids, context=context)] return self.pool.get('res.partner').onchange_state(cr, uid, partner_ids, state_id, context=context) diff --git a/openerp/addons/base/res/res_users_view.xml b/openerp/addons/base/res/res_users_view.xml index 628cfc4f858..ed52de5eba2 100644 --- a/openerp/addons/base/res/res_users_view.xml +++ b/openerp/addons/base/res/res_users_view.xml @@ -231,7 +231,7 @@ res.users - + @@ -283,7 +283,7 @@ + groups="base.group_multi_company"/> diff --git a/openerp/cli/server.py b/openerp/cli/server.py index 24987c098e4..97737a38c3f 100644 --- a/openerp/cli/server.py +++ b/openerp/cli/server.py @@ -168,6 +168,11 @@ def main(args): import_translation() sys.exit(0) + # This needs to be done now to ensure the use of the multiprocessing + # signaling mecanism for registries loaded with -d + if config['workers']: + openerp.multi_process = True + # preload registryies, needed for -u --stop_after_init rc = 0 if config['db_name']: diff --git a/openerp/http.py b/openerp/http.py index e2f3024110d..e22cf04b04d 100644 --- a/openerp/http.py +++ b/openerp/http.py @@ -1,37 +1,1059 @@ # -*- coding: utf-8 -*- +#---------------------------------------------------------- +# OpenERP HTTP layer +#---------------------------------------------------------- +import ast +import cgi +import collections +import contextlib +import errno +import functools +import getpass +import inspect +import logging +import mimetypes +import os +import random +import re +import sys +import tempfile +import threading +import time +import traceback +import urlparse +import warnings +import babel.core +import simplejson +import werkzeug.contrib.sessions +import werkzeug.datastructures +import werkzeug.exceptions +import werkzeug.local +import werkzeug.routing +import werkzeug.wrappers +import werkzeug.wsgi + +import openerp +from openerp.service import security, model as service_model +from openerp.tools import config + +_logger = logging.getLogger(__name__) + +#---------------------------------------------------------- +# RequestHandler +#---------------------------------------------------------- +class WebRequest(object): + """ Parent class for all OpenERP Web request types, mostly deals with + initialization and setup of the request object (the dispatching itself has + to be handled by the subclasses) + + :param request: a wrapped werkzeug Request object + :type request: :class:`werkzeug.wrappers.BaseRequest` + + .. attribute:: httprequest + + the original :class:`werkzeug.wrappers.Request` object provided to the + request + + .. attribute:: httpsession + + .. deprecated:: 8.0 + + Use ``self.session`` instead. + + .. attribute:: params + + :class:`~collections.Mapping` of request parameters, not generally + useful as they're provided directly to the handler method as keyword + arguments + + .. attribute:: session_id + + opaque identifier for the :class:`session.OpenERPSession` instance of + the current request + + .. attribute:: session + + a :class:`OpenERPSession` holding the HTTP session data for the + current http session + + .. attribute:: context + + :class:`~collections.Mapping` of context values for the current request + + .. attribute:: db + + ``str``, the name of the database linked to the current request. Can be ``None`` + if the current request uses the ``none`` authentication. + + .. attribute:: uid + + ``int``, the id of the user related to the current request. Can be ``None`` + if the current request uses the ``none`` authenticatoin. + """ + def __init__(self, httprequest): + self.httprequest = httprequest + self.httpresponse = None + self.httpsession = httprequest.session + self.session = httprequest.session + self.session_id = httprequest.session.sid + self.disable_db = False + self.uid = None + self.func = None + self.func_arguments = {} + self.auth_method = None + self._cr_cm = None + self._cr = None + self.func_request_type = None + # set db/uid trackers - they're cleaned up at the WSGI + # dispatching phase in openerp.service.wsgi_server.application + if self.db: + threading.current_thread().dbname = self.db + if self.session.uid: + threading.current_thread().uid = self.session.uid + self.context = dict(self.session.context) + self.lang = self.context["lang"] + + @property + def registry(self): + """ + The registry to the database linked to this request. Can be ``None`` if the current request uses the + ``none'' authentication. + """ + return openerp.modules.registry.RegistryManager.get(self.db) if self.db else None + + @property + def db(self): + """ + The registry to the database linked to this request. Can be ``None`` if the current request uses the + ``none'' authentication. + """ + return self.session.db if not self.disable_db else None + + @property + def cr(self): + """ + The cursor initialized for the current method call. If the current request uses the ``none`` authentication + trying to access this property will raise an exception. + """ + # some magic to lazy create the cr + if not self._cr_cm: + self._cr_cm = self.registry.cursor() + self._cr = self._cr_cm.__enter__() + return self._cr + + def set_handler(self, func, arguments, auth): + # is this needed ? + arguments = dict((k, v) for k, v in arguments.iteritems() + if not k.startswith("_ignored_")) + + self.func = func + self.func_request_type = func.exposed + self.func_arguments = arguments + self.auth_method = auth + + def _call_function(self, *args, **kwargs): + try: + # ugly syntax only to get the __exit__ arguments to pass to self._cr + request = self + class with_obj(object): + def __enter__(self): + pass + def __exit__(self, *args): + if request._cr_cm: + request._cr_cm.__exit__(*args) + request._cr_cm = None + request._cr = None + + with with_obj(): + if self.func_request_type != self._request_type: + raise Exception("%s, %s: Function declared as capable of handling request of type '%s' but called with a request of type '%s'" \ + % (self.func, self.httprequest.path, self.func_request_type, self._request_type)) + + kwargs.update(self.func_arguments) + + # Backward for 7.0 + if getattr(self.func, '_first_arg_is_req', False): + args = (request,) + args + # Correct exception handling and concurency retry + @service_model.check + def checked_call(dbname, *a, **kw): + return self.func(*a, **kw) + if self.db: + return checked_call(self.db, *args, **kwargs) + return self.func(*args, **kwargs) + finally: + # just to be sure no one tries to re-use the request + self.disable_db = True + self.uid = None + + @property + def debug(self): + return 'debug' in self.httprequest.args + + @contextlib.contextmanager + def registry_cr(self): + warnings.warn('please use request.registry and request.cr directly', DeprecationWarning) + yield (self.registry, self.cr) + +def route(route, type="http", auth="user"): + """ + Decorator marking the decorated method as being a handler for requests. The method must be part of a subclass + of ``Controller``. + + :param route: string or array. The route part that will determine which http requests will match the decorated + method. Can be a single string or an array of strings. See werkzeug's routing documentation for the format of + route expression ( http://werkzeug.pocoo.org/docs/routing/ ). + :param type: The type of request, can be ``'http'`` or ``'json'``. + :param auth: The type of authentication method, can on of the following: + + * ``user``: The user must be authenticated and the current request will perform using the rights of the + user. + * ``admin``: The user may not be authenticated and the current request will perform using the admin user. + * ``none``: The method is always active, even if there is no database. Mainly used by the framework and + authentication modules. There request code will not have any facilities to access the database nor have any + configuration indicating the current database nor the current user. + """ + assert type in ["http", "json"] + def decorator(f): + if isinstance(route, list): + f.routes = route + else: + f.routes = [route] + f.exposed = type + if getattr(f, "auth", None) is None: + f.auth = auth + return f + return decorator + +class JsonRequest(WebRequest): + """ JSON-RPC2 over HTTP. + + Sucessful request:: + + --> {"jsonrpc": "2.0", + "method": "call", + "params": {"context": {}, + "arg1": "val1" }, + "id": null} + + <-- {"jsonrpc": "2.0", + "result": { "res1": "val1" }, + "id": null} + + Request producing a error:: + + --> {"jsonrpc": "2.0", + "method": "call", + "params": {"context": {}, + "arg1": "val1" }, + "id": null} + + <-- {"jsonrpc": "2.0", + "error": {"code": 1, + "message": "End user error message.", + "data": {"code": "codestring", + "debug": "traceback" } }, + "id": null} + + """ + _request_type = "json" + + def __init__(self, *args): + super(JsonRequest, self).__init__(*args) + + self.jsonp_handler = None + + args = self.httprequest.args + jsonp = args.get('jsonp') + self.jsonp = jsonp + request = None + request_id = args.get('id') + + if jsonp and self.httprequest.method == 'POST': + # jsonp 2 steps step1 POST: save call + def handler(): + self.session.jsonp_requests[request_id] = self.httprequest.form['r'] + self.session.modified = True + headers=[('Content-Type', 'text/plain; charset=utf-8')] + r = werkzeug.wrappers.Response(request_id, headers=headers) + return r + self.jsonp_handler = handler + return + elif jsonp and args.get('r'): + # jsonp method GET + request = args.get('r') + elif jsonp and request_id: + # jsonp 2 steps step2 GET: run and return result + request = self.session.jsonp_requests.pop(request_id, "") + else: + # regular jsonrpc2 + request = self.httprequest.stream.read() + + # Read POST content or POST Form Data named "request" + self.jsonrequest = simplejson.loads(request) + self.params = dict(self.jsonrequest.get("params", {})) + self.context = self.params.pop('context', self.session.context) + + def dispatch(self): + """ Calls the method asked for by the JSON-RPC2 or JSONP request + """ + if self.jsonp_handler: + return self.jsonp_handler() + response = {"jsonrpc": "2.0" } + error = None + + try: + response['id'] = self.jsonrequest.get('id') + response["result"] = self._call_function(**self.params) + except AuthenticationError, e: + _logger.exception("Exception during JSON request handling.") + se = serialize_exception(e) + error = { + 'code': 100, + 'message': "OpenERP Session Invalid", + 'data': se + } + except Exception, e: + _logger.exception("Exception during JSON request handling.") + se = serialize_exception(e) + error = { + 'code': 200, + 'message': "OpenERP Server Error", + 'data': se + } + if error: + response["error"] = error + + if self.jsonp: + # If we use jsonp, that's mean we are called from another host + # Some browser (IE and Safari) do no allow third party cookies + # We need then to manage http sessions manually. + response['session_id'] = self.session_id + mime = 'application/javascript' + body = "%s(%s);" % (self.jsonp, simplejson.dumps(response),) + else: + mime = 'application/json' + body = simplejson.dumps(response) + + r = werkzeug.wrappers.Response(body, headers=[('Content-Type', mime), ('Content-Length', len(body))]) + return r + +def serialize_exception(e): + tmp = { + "name": type(e).__module__ + "." + type(e).__name__ if type(e).__module__ else type(e).__name__, + "debug": traceback.format_exc(), + "message": u"%s" % e, + "arguments": to_jsonable(e.args), + } + if isinstance(e, openerp.osv.osv.except_osv): + tmp["exception_type"] = "except_osv" + elif isinstance(e, openerp.exceptions.Warning): + tmp["exception_type"] = "warning" + elif isinstance(e, openerp.exceptions.AccessError): + tmp["exception_type"] = "access_error" + elif isinstance(e, openerp.exceptions.AccessDenied): + tmp["exception_type"] = "access_denied" + return tmp + +def to_jsonable(o): + if isinstance(o, str) or isinstance(o,unicode) or isinstance(o, int) or isinstance(o, long) \ + or isinstance(o, bool) or o is None or isinstance(o, float): + return o + if isinstance(o, list) or isinstance(o, tuple): + return [to_jsonable(x) for x in o] + if isinstance(o, dict): + tmp = {} + for k, v in o.items(): + tmp[u"%s" % k] = to_jsonable(v) + return tmp + return u"%s" % o + +def jsonrequest(f): + """ + .. deprecated:: 8.0 + + Use the ``route()`` decorator instead. + """ + f.combine = True + base = f.__name__.lstrip('/') + if f.__name__ == "index": + base = "" + return route([base, base + "/"], type="json", auth="user")(f) + +class HttpRequest(WebRequest): + """ Regular GET/POST request + """ + _request_type = "http" + + def __init__(self, *args): + super(HttpRequest, self).__init__(*args) + params = dict(self.httprequest.args) + params.update(self.httprequest.form) + params.update(self.httprequest.files) + params.pop('session_id', None) + self.params = params + + def dispatch(self): + try: + r = self._call_function(**self.params) + except werkzeug.exceptions.HTTPException, e: + r = e + except Exception, e: + _logger.exception("An exception occured during an http request") + se = serialize_exception(e) + error = { + 'code': 200, + 'message': "OpenERP Server Error", + 'data': se + } + r = werkzeug.exceptions.InternalServerError(cgi.escape(simplejson.dumps(error))) + else: + if not r: + r = werkzeug.wrappers.Response(status=204) # no content + return r + + def make_response(self, data, headers=None, cookies=None): + """ Helper for non-HTML responses, or HTML responses with custom + response headers or cookies. + + While handlers can just return the HTML markup of a page they want to + send as a string if non-HTML data is returned they need to create a + complete response object, or the returned data will not be correctly + interpreted by the clients. + + :param basestring data: response body + :param headers: HTTP headers to set on the response + :type headers: ``[(name, value)]`` + :param collections.Mapping cookies: cookies to set on the client + """ + response = werkzeug.wrappers.Response(data, headers=headers) + if cookies: + for k, v in cookies.iteritems(): + response.set_cookie(k, v) + return response + + def not_found(self, description=None): + """ Helper for 404 response, return its result from the method + """ + return werkzeug.exceptions.NotFound(description) + +def httprequest(f): + """ + .. deprecated:: 8.0 + + Use the ``route()`` decorator instead. + """ + f.combine = True + base = f.__name__.lstrip('/') + if f.__name__ == "index": + base = "" + return route([base, base + "/"], type="http", auth="user")(f) + +#---------------------------------------------------------- +# Thread local global request object +#---------------------------------------------------------- +_request_stack = werkzeug.local.LocalStack() + +request = _request_stack() """ -``openerp.http`` offers decorators to register WSGI and RPC endpoints handlers. -See :ref:`routing`. + A global proxy that always redirect to the current request object. """ -from . import service +@contextlib.contextmanager +def set_request(req): + _request_stack.push(req) + try: + yield + finally: + _request_stack.pop() -def handler(): - """ - Decorator to register a WSGI handler. The handler must return None if it - does not handle the request. - """ - def decorator(f): - service.wsgi_server.register_wsgi_handler(f) - return decorator +#---------------------------------------------------------- +# Controller and route registration +#---------------------------------------------------------- +addons_module = {} +addons_manifest = {} +controllers_per_module = collections.defaultdict(list) -def route(url): - """ - Same as then handler() decorator but register the handler under a specific - url. Not yet implemented. - """ - def decorator(f): - pass # TODO - return decorator +class ControllerType(type): + def __init__(cls, name, bases, attrs): + super(ControllerType, cls).__init__(name, bases, attrs) -def rpc(endpoint): - """ - Decorator to register a RPC endpoint handler. The handler will receive - already unmarshalled RCP arguments. - """ - def decorator(f): - service.wsgi_server.register_rpc_endpoint(endpoint, f) - return decorator + # flag old-style methods with req as first argument + for k, v in attrs.items(): + if inspect.isfunction(v): + spec = inspect.getargspec(v) + first_arg = spec.args[1] if len(spec.args) >= 2 else None + if first_arg in ["req", "request"]: + v._first_arg_is_req = True -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + # store the controller in the controllers list + name_class = ("%s.%s" % (cls.__module__, cls.__name__), cls) + class_path = name_class[0].split(".") + if not class_path[:2] == ["openerp", "addons"]: + module = "" + else: + # we want to know all modules that have controllers + module = class_path[2] + # but we only store controllers directly inheriting from Controller + if not "Controller" in globals() or not Controller in bases: + return + controllers_per_module[module].append(name_class) + +class Controller(object): + __metaclass__ = ControllerType + +def routing_map(modules, nodb_only, converters=None): + routing_map = werkzeug.routing.Map(strict_slashes=False, converters=converters) + for module in modules: + if module not in controllers_per_module: + continue + + for _, cls in controllers_per_module[module]: + subclasses = cls.__subclasses__() + subclasses = [c for c in subclasses if c.__module__.startswith('openerp.addons.') and c.__module__.split(".")[2] in modules] + if subclasses: + name = "%s (extended by %s)" % (cls.__name__, ', '.join(sub.__name__ for sub in subclasses)) + cls = type(name, tuple(reversed(subclasses)), {}) + + o = cls() + members = inspect.getmembers(o) + for mk, mv in members: + if inspect.ismethod(mv) and getattr(mv, 'exposed', False) and (not nodb_only or nodb_only == (mv.auth == "none")): + for url in mv.routes: + if getattr(mv, "combine", False): + url = o._cp_path.rstrip('/') + '/' + url.lstrip('/') + if url.endswith("/") and len(url) > 1: + url = url[: -1] + routing_map.add(werkzeug.routing.Rule(url, endpoint=mv)) + return routing_map + +#---------------------------------------------------------- +# HTTP Sessions +#---------------------------------------------------------- +class AuthenticationError(Exception): + pass + +class SessionExpiredException(Exception): + pass + +class Service(object): + """ + .. deprecated:: 8.0 + Use ``openerp.netsvc.dispatch_rpc()`` instead. + """ + def __init__(self, session, service_name): + self.session = session + self.service_name = service_name + + def __getattr__(self, method): + def proxy_method(*args): + result = openerp.netsvc.dispatch_rpc(self.service_name, method, args) + return result + return proxy_method + +class Model(object): + """ + .. deprecated:: 8.0 + Use the resistry and cursor in ``openerp.addons.web.http.request`` instead. + """ + def __init__(self, session, model): + self.session = session + self.model = model + self.proxy = self.session.proxy('object') + + def __getattr__(self, method): + self.session.assert_valid() + def proxy(*args, **kw): + # Can't provide any retro-compatibility for this case, so we check it and raise an Exception + # to tell the programmer to adapt his code + if not request.db or not request.uid or self.session.db != request.db \ + or self.session.uid != request.uid: + raise Exception("Trying to use Model with badly configured database or user.") + + mod = request.registry.get(self.model) + if method.startswith('_'): + raise Exception("Access denied") + meth = getattr(mod, method) + cr = request.cr + result = meth(cr, request.uid, *args, **kw) + # reorder read + if method == "read": + if isinstance(result, list) and len(result) > 0 and "id" in result[0]: + index = {} + for r in result: + index[r['id']] = r + result = [index[x] for x in args[0] if x in index] + return result + return proxy + +class OpenERPSession(werkzeug.contrib.sessions.Session): + def __init__(self, *args, **kwargs): + self.inited = False + self.modified = False + super(OpenERPSession, self).__init__(*args, **kwargs) + self.inited = True + self._default_values() + self.modified = False + + def __getattr__(self, attr): + return self.get(attr, None) + def __setattr__(self, k, v): + if getattr(self, "inited", False): + try: + object.__getattribute__(self, k) + except: + return self.__setitem__(k, v) + object.__setattr__(self, k, v) + + def authenticate(self, db, login=None, password=None, uid=None): + """ + Authenticate the current user with the given db, login and password. If successful, store + the authentication parameters in the current session and request. + + :param uid: If not None, that user id will be used instead the login to authenticate the user. + """ + + if uid is None: + wsgienv = request.httprequest.environ + env = dict( + base_location=request.httprequest.url_root.rstrip('/'), + HTTP_HOST=wsgienv['HTTP_HOST'], + REMOTE_ADDR=wsgienv['REMOTE_ADDR'], + ) + uid = openerp.netsvc.dispatch_rpc('common', 'authenticate', [db, login, password, env]) + else: + security.check(db, uid, password) + self.db = db + self.uid = uid + self.login = login + self.password = password + request.uid = uid + request.disable_db = False + + if uid: self.get_context() + return uid + + def check_security(self): + """ + Chech the current authentication parameters to know if those are still valid. This method + should be called at each request. If the authentication fails, a ``SessionExpiredException`` + is raised. + """ + if not self.db or not self.uid: + raise SessionExpiredException("Session expired") + security.check(self.db, self.uid, self.password) + + def logout(self): + for k in self.keys(): + del self[k] + self._default_values() + + def _default_values(self): + self.setdefault("db", None) + self.setdefault("uid", None) + self.setdefault("login", None) + self.setdefault("password", None) + self.setdefault("context", {'tz': "UTC", "uid": None}) + self.setdefault("jsonp_requests", {}) + + def get_context(self): + """ + Re-initializes the current user's session context (based on + his preferences) by calling res.users.get_context() with the old + context. + + :returns: the new context + """ + assert self.uid, "The user needs to be logged-in to initialize his context" + self.context = request.registry.get('res.users').context_get(request.cr, request.uid) or {} + self.context['uid'] = self.uid + self._fix_lang(self.context) + return self.context + + def _fix_lang(self, context): + """ OpenERP provides languages which may not make sense and/or may not + be understood by the web client's libraries. + + Fix those here. + + :param dict context: context to fix + """ + lang = context['lang'] + + # inane OpenERP locale + if lang == 'ar_AR': + lang = 'ar' + + # lang to lang_REGION (datejs only handles lang_REGION, no bare langs) + if lang in babel.core.LOCALE_ALIASES: + lang = babel.core.LOCALE_ALIASES[lang] + + context['lang'] = lang or 'en_US' + + # Deprecated to be removed in 9 + + """ + Damn properties for retro-compatibility. All of that is deprecated, all + of that. + """ + @property + def _db(self): + return self.db + @_db.setter + def _db(self, value): + self.db = value + @property + def _uid(self): + return self.uid + @_uid.setter + def _uid(self, value): + self.uid = value + @property + def _login(self): + return self.login + @_login.setter + def _login(self, value): + self.login = value + @property + def _password(self): + return self.password + @_password.setter + def _password(self, value): + self.password = value + + def send(self, service_name, method, *args): + """ + .. deprecated:: 8.0 + Use ``openerp.netsvc.dispatch_rpc()`` instead. + """ + return openerp.netsvc.dispatch_rpc(service_name, method, args) + + def proxy(self, service): + """ + .. deprecated:: 8.0 + Use ``openerp.netsvc.dispatch_rpc()`` instead. + """ + return Service(self, service) + + def assert_valid(self, force=False): + """ + .. deprecated:: 8.0 + Use ``check_security()`` instead. + + Ensures this session is valid (logged into the openerp server) + """ + if self.uid and not force: + return + # TODO use authenticate instead of login + self.uid = self.proxy("common").login(self.db, self.login, self.password) + if not self.uid: + raise AuthenticationError("Authentication failure") + + def ensure_valid(self): + """ + .. deprecated:: 8.0 + Use ``check_security()`` instead. + """ + if self.uid: + try: + self.assert_valid(True) + except Exception: + self.uid = None + + def execute(self, model, func, *l, **d): + """ + .. deprecated:: 8.0 + Use the resistry and cursor in ``openerp.addons.web.http.request`` instead. + """ + model = self.model(model) + r = getattr(model, func)(*l, **d) + return r + + def exec_workflow(self, model, id, signal): + """ + .. deprecated:: 8.0 + Use the resistry and cursor in ``openerp.addons.web.http.request`` instead. + """ + self.assert_valid() + r = self.proxy('object').exec_workflow(self.db, self.uid, self.password, model, signal, id) + return r + + def model(self, model): + """ + .. deprecated:: 8.0 + Use the resistry and cursor in ``openerp.addons.web.http.request`` instead. + + Get an RPC proxy for the object ``model``, bound to this session. + + :param model: an OpenERP model name + :type model: str + :rtype: a model object + """ + if not self.db: + raise SessionExpiredException("Session expired") + + return Model(self, model) + +def session_gc(session_store): + if random.random() < 0.001: + # we keep session one week + last_week = time.time() - 60*60*24*7 + for fname in os.listdir(session_store.path): + path = os.path.join(session_store.path, fname) + try: + if os.path.getmtime(path) < last_week: + os.unlink(path) + except OSError: + pass + +#---------------------------------------------------------- +# WSGI Layer +#---------------------------------------------------------- +# Add potentially missing (older ubuntu) font mime types +mimetypes.add_type('application/font-woff', '.woff') +mimetypes.add_type('application/vnd.ms-fontobject', '.eot') +mimetypes.add_type('application/x-font-ttf', '.ttf') + +class DisableCacheMiddleware(object): + def __init__(self, app): + self.app = app + def __call__(self, environ, start_response): + def start_wrapped(status, headers): + referer = environ.get('HTTP_REFERER', '') + parsed = urlparse.urlparse(referer) + debug = parsed.query.count('debug') >= 1 + + new_headers = [] + unwanted_keys = ['Last-Modified'] + if debug: + new_headers = [('Cache-Control', 'no-cache')] + unwanted_keys += ['Expires', 'Etag', 'Cache-Control'] + + for k, v in headers: + if k not in unwanted_keys: + new_headers.append((k, v)) + + start_response(status, new_headers) + return self.app(environ, start_wrapped) + +def session_path(): + try: + import pwd + username = pwd.getpwuid(os.geteuid()).pw_name + except ImportError: + try: + username = getpass.getuser() + except Exception: + username = "unknown" + path = os.path.join(tempfile.gettempdir(), "oe-sessions-" + username) + try: + os.mkdir(path, 0700) + except OSError as exc: + if exc.errno == errno.EEXIST: + # directory exists: ensure it has the correct permissions + # this will fail if the directory is not owned by the current user + os.chmod(path, 0700) + else: + raise + return path + +class Root(object): + """Root WSGI application for the OpenERP Web Client. + """ + def __init__(self): + # Setup http sessions + path = session_path() + _logger.debug('HTTP sessions stored in: %s', path) + self.session_store = werkzeug.contrib.sessions.FilesystemSessionStore(path, session_class=OpenERPSession) + + # TODO should we move this to ir.http so that only configured modules are served ? + _logger.info("HTTP Configuring static files") + self.load_addons() + + _logger.info("Generating nondb routing") + self.nodb_routing_map = routing_map(['', "web"], True) + + def __call__(self, environ, start_response): + """ Handle a WSGI request + """ + return self.dispatch(environ, start_response) + + def load_addons(self): + """ Load all addons from addons patch containg static files and + controllers and configure them. """ + statics = {} + + for addons_path in openerp.modules.module.ad_paths: + for module in sorted(os.listdir(str(addons_path))): + if module not in addons_module: + manifest_path = os.path.join(addons_path, module, '__openerp__.py') + path_static = os.path.join(addons_path, module, 'static') + if os.path.isfile(manifest_path) and os.path.isdir(path_static): + manifest = ast.literal_eval(open(manifest_path).read()) + manifest['addons_path'] = addons_path + _logger.debug("Loading %s", module) + if 'openerp.addons' in sys.modules: + m = __import__('openerp.addons.' + module) + addons_module[module] = m + addons_manifest[module] = manifest + statics['/%s/static' % module] = path_static + + app = werkzeug.wsgi.SharedDataMiddleware(self.dispatch, statics) + self.dispatch = DisableCacheMiddleware(app) + + def setup_session(self, httprequest): + # recover or create session + session_gc(self.session_store) + + sid = httprequest.args.get('session_id') + explicit_session = True + if not sid: + sid = httprequest.headers.get("X-Openerp-Session-Id") + if not sid: + sid = httprequest.cookies.get('session_id') + explicit_session = False + if sid is None: + httprequest.session = self.session_store.new() + else: + httprequest.session = self.session_store.get(sid) + return explicit_session + + def setup_db(self, httprequest): + # if no db is found on the session try to deduce it from the domain + db = db_monodb(httprequest) + if db != httprequest.session.db: + httprequest.session.logout() + httprequest.session.db = db + + def setup_lang(self, httprequest): + if not "lang" in httprequest.session.context: + lang = httprequest.accept_languages.best or "en_US" + lang = babel.core.LOCALE_ALIASES.get(lang, lang).replace('-', '_') + httprequest.session.context["lang"] = lang + + def get_request(self, httprequest): + # deduce type of request + if httprequest.args.get('jsonp'): + return JsonRequest(httprequest) + if httprequest.mimetype == "application/json": + return JsonRequest(httprequest) + else: + return HttpRequest(httprequest) + + def get_response(self, httprequest, result, explicit_session): + if isinstance(result, basestring): + response = werkzeug.wrappers.Response(result, mimetype='text/html') + else: + response = result + + if httprequest.session.should_save: + self.session_store.save(httprequest.session) + # We must not set the cookie if the session id was specified using a http header or a GET parameter. + # There are two reasons to this: + # - When using one of those two means we consider that we are overriding the cookie, which means creating a new + # session on top of an already existing session and we don't want to create a mess with the 'normal' session + # (the one using the cookie). That is a special feature of the Session Javascript class. + # - It could allow session fixation attacks. + if not explicit_session and hasattr(response, 'set_cookie'): + response.set_cookie('session_id', httprequest.session.sid, max_age=90 * 24 * 60 * 60) + + return response + + def dispatch(self, environ, start_response): + """ + Performs the actual WSGI dispatching for the application. + """ + try: + httprequest = werkzeug.wrappers.Request(environ) + httprequest.parameter_storage_class = werkzeug.datastructures.ImmutableDict + httprequest.app = self + + explicit_session = self.setup_session(httprequest) + self.setup_db(httprequest) + self.setup_lang(httprequest) + + request = self.get_request(httprequest) + + with set_request(request): + db = request.session.db + if db: + openerp.modules.registry.RegistryManager.check_registry_signaling(db) + result = request.registry['ir.http']._dispatch() + openerp.modules.registry.RegistryManager.signal_caches_change(db) + else: + # fallback to non-db handlers + func, arguments = self.nodb_routing_map.bind_to_environ(request.httprequest.environ).match() + request.set_handler(func, arguments, "none") + result = request.dispatch() + response = self.get_response(httprequest, result, explicit_session) + return response(environ, start_response) + + except werkzeug.exceptions.HTTPException, e: + return e(environ, start_response) + + def get_db_router(self, db): + if not db: + return self.nodb_routing_map + return request.registry['ir.http'].routing_map() + +def db_list(force=False, httprequest=None): + httprequest = httprequest or request.httprequest + dbs = openerp.netsvc.dispatch_rpc("db", "list", [force]) + h = httprequest.environ['HTTP_HOST'].split(':')[0] + d = h.split('.')[0] + r = openerp.tools.config['dbfilter'].replace('%h', h).replace('%d', d) + dbs = [i for i in dbs if re.match(r, i)] + return dbs + +def db_monodb(httprequest=None): + """ + Magic function to find the current database. + + Implementation details: + + * Magic + * More magic + + Returns ``None`` if the magic is not magic enough. + """ + httprequest = httprequest or request.httprequest + db = None + redirect = None + + dbs = db_list(True, httprequest) + + # try the db already in the session + db_session = httprequest.session.db + if db_session in dbs: + return db_session + + # if dbfilters was specified when launching the server and there is + # only one possible db, we take that one + if openerp.tools.config['dbfilter'] != ".*" and len(dbs) == 1: + return dbs[0] + return None + +#---------------------------------------------------------- +# RPC controller +#---------------------------------------------------------- +class CommonController(Controller): + + @route('/jsonrpc', type='json', auth="none") + def jsonrpc(self, service, method, args): + """ Method used by client APIs to contact OpenERP. """ + return openerp.netsvc.dispatch_rpc(service, method, args) + + @route('/gen_session_id', type='json', auth="none") + def gen_session_id(self): + nsession = root.session_store.new() + return nsession.sid + +root = None + +def wsgi_postload(): + global root + root = Root() + openerp.wsgi.register_wsgi_handler(root) + +# vim:et:ts=4:sw=4: diff --git a/openerp/modules/loading.py b/openerp/modules/loading.py index 390ac77b2ed..983de2d532c 100644 --- a/openerp/modules/loading.py +++ b/openerp/modules/loading.py @@ -166,11 +166,15 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules= # upgrading the module information modobj.write(cr, SUPERUSER_ID, [module_id], modobj.get_values_from_terp(package.data)) _load_data(cr, module_name, idref, mode, kind='data') - if hasattr(package, 'demo') or (package.dbdemo and package.state != 'installed'): + has_demo = hasattr(package, 'demo') or (package.dbdemo and package.state != 'installed') + if has_demo: status['progress'] = (index + 0.75) / len(graph) _load_data(cr, module_name, idref, mode, kind='demo') cr.execute('update ir_module_module set demo=%s where id=%s', (True, module_id)) + migrations.migrate_module(package, 'post') + + if has_demo: # launch tests only in demo mode, as most tests will depend # on demo data. Other tests can be added into the regular # 'data' section, but should probably not alter the data, @@ -186,8 +190,6 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules= processed_modules.append(package.name) - migrations.migrate_module(package, 'post') - ver = adapt_version(package.data['version']) # Set new modules and dependencies modobj.write(cr, SUPERUSER_ID, [module_id], {'state': 'installed', 'latest_version': ver}) diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py index 9d599ba3aac..d58f4b3186b 100644 --- a/openerp/modules/registry.py +++ b/openerp/modules/registry.py @@ -305,18 +305,16 @@ class RegistryManager(object): r, c = cr.fetchone() # 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: + if registry.base_registry_signaling_sequence > 1 and registry.base_registry_signaling_sequence != r: changed = True _logger.info("Reloading the model registry after database signaling.") registry = cls.new(db_name) - registry.base_registry_signaling_sequence = r # 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: + elif registry.base_cache_signaling_sequence > 1 and registry.base_cache_signaling_sequence != c: changed = True _logger.info("Invalidating all model caches after database signaling.") - registry.base_cache_signaling_sequence = c registry.clear_caches() registry.reset_any_cache_cleared() # One possible reason caches have been invalidated is the @@ -326,6 +324,8 @@ class RegistryManager(object): for column in model._columns.values(): if hasattr(column, 'digits_change'): column.digits_change(cr) + registry.base_registry_signaling_sequence = r + registry.base_cache_signaling_sequence = c finally: cr.close() return changed diff --git a/openerp/osv/expression.py b/openerp/osv/expression.py index d471f7efb4f..23c22f10b8b 100644 --- a/openerp/osv/expression.py +++ b/openerp/osv/expression.py @@ -1012,7 +1012,7 @@ class expression(object): else: if field._type == 'datetime' and right and len(right) == 10: - if operator in ('>', '>='): + if operator in ('>', '>=', '='): right += ' 00:00:00' elif operator in ('<', '<='): right += ' 23:59:59' diff --git a/openerp/osv/fields.py b/openerp/osv/fields.py index 372d7e463aa..57a68338193 100644 --- a/openerp/osv/fields.py +++ b/openerp/osv/fields.py @@ -116,8 +116,7 @@ class _column(object): self.groups = False # CSV list of ext IDs of groups that can access this field self.deprecated = False # Optional deprecation warning for a in args: - if args[a]: - setattr(self, a, args[a]) + setattr(self, a, args[a]) def restart(self): pass @@ -207,27 +206,29 @@ class reference(_column): return model.name_get(cr, uid, [int(res_id)], context=context)[0][1] return tools.ustr(value) +# takes a string (encoded in utf8) and returns a string (encoded in utf8) +def _symbol_set_char(self, symb): + + #TODO: + # * we need to remove the "symb==False" from the next line BUT + # for now too many things rely on this broken behavior + # * the symb==None test should be common to all data types + if symb is None or symb == False: + return None + + # we need to convert the string to a unicode object to be able + # to evaluate its length (and possibly truncate it) reliably + u_symb = tools.ustr(symb) + return u_symb[:self.size].encode('utf8') + class char(_column): _type = 'char' def __init__(self, string="unknown", size=None, **args): _column.__init__(self, string=string, size=size or None, **args) - self._symbol_set = (self._symbol_c, self._symbol_set_char) - - # takes a string (encoded in utf8) and returns a string (encoded in utf8) - def _symbol_set_char(self, symb): - #TODO: - # * we need to remove the "symb==False" from the next line BUT - # for now too many things rely on this broken behavior - # * the symb==None test should be common to all data types - if symb is None or symb == False: - return None - - # we need to convert the string to a unicode object to be able - # to evaluate its length (and possibly truncate it) reliably - u_symb = tools.ustr(symb) - - return u_symb[:self.size].encode('utf8') + # self._symbol_set_char defined to keep the backward compatibility + self._symbol_f = self._symbol_set_char = lambda x: _symbol_set_char(self, x) + self._symbol_set = (self._symbol_c, self._symbol_f) class text(_column): @@ -1116,6 +1117,11 @@ class function(_column): self._symbol_f = integer._symbol_f self._symbol_set = integer._symbol_set + if type == 'char': + self._symbol_c = char._symbol_c + self._symbol_f = lambda x: _symbol_set_char(self, x) + self._symbol_set = (self._symbol_c, self._symbol_f) + def digits_change(self, cr): if self._type == 'float': if self.digits_compute: @@ -1367,7 +1373,7 @@ class dummy(function): def __init__(self, *arg, **args): self.arg = arg self._relations = [] - super(dummy, self).__init__(self._fnct_read, arg, self._fnct_write, fnct_inv_arg=arg, fnct_search=None, **args) + super(dummy, self).__init__(self._fnct_read, arg, self._fnct_write, fnct_inv_arg=arg, fnct_search=self._fnct_search, **args) # --------------------------------------------------------- # Serialized fields diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index b5440c2be44..cf96c8d27bd 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -1010,8 +1010,10 @@ class BaseModel(object): raise except_orm('Error', ('Invalid function definition %s in object %s !\nYou must use the definition: store={object:(fnct, fields, priority, time length)}.' % (store_field, self._name))) self.pool._store_function.setdefault(object, []) - self.pool._store_function[object].append((self._name, store_field, fnct, tuple(fields2) if fields2 else None, order, length)) - self.pool._store_function[object].sort(lambda x, y: cmp(x[4], y[4])) + t = (self._name, store_field, fnct, tuple(fields2) if fields2 else None, order, length) + if not t in self.pool._store_function[object]: + self.pool._store_function[object].append((self._name, store_field, fnct, tuple(fields2) if fields2 else None, order, length)) + self.pool._store_function[object].sort(lambda x, y: cmp(x[4], y[4])) for (key, _, msg) in self._sql_constraints: self.pool._sql_error[self._table+'_'+key] = msg @@ -2887,8 +2889,12 @@ class BaseModel(object): """ Record the creation of a constraint for this model, to make it possible to delete it later when the module is uninstalled. Type can be either - 'f' or 'u' depending on the constraing being a foreign key or not. + 'f' or 'u' depending on the constraint being a foreign key or not. """ + if not self._module: + # no need to save constraints for custom models as they're not part + # of any module + return assert type in ('f', 'u') cr.execute(""" SELECT 1 FROM ir_model_constraint, ir_module_module @@ -4583,9 +4589,9 @@ class BaseModel(object): return browse_null() def _store_get_values(self, cr, uid, ids, fields, context): - """Returns an ordered list of fields.functions to call due to + """Returns an ordered list of fields.function to call due to an update operation on ``fields`` of records with ``ids``, - obtained by calling the 'store' functions of these fields, + obtained by calling the 'store' triggers of these fields, as setup by their 'store' attribute. :return: [(priority, model_name, [record_ids,], [function_fields,])] @@ -4594,42 +4600,46 @@ class BaseModel(object): stored_functions = self.pool._store_function.get(self._name, []) # use indexed names for the details of the stored_functions: - model_name_, func_field_to_compute_, id_mapping_fnct_, trigger_fields_, priority_ = range(5) + model_name_, func_field_to_compute_, target_ids_func_, trigger_fields_, priority_ = range(5) - # only keep functions that should be triggered for the ``fields`` + # only keep store triggers that should be triggered for the ``fields`` # being written to. - to_compute = [f for f in stored_functions \ + triggers_to_compute = [f for f in stored_functions \ if ((not f[trigger_fields_]) or set(fields).intersection(f[trigger_fields_]))] - mapping = {} - for function in to_compute: - # use admin user for accessing objects having rules defined on store fields - target_ids = [id for id in function[id_mapping_fnct_](self, cr, SUPERUSER_ID, ids, context) if id] + to_compute_map = {} + target_id_results = {} + for store_trigger in triggers_to_compute: + target_func_id_ = id(store_trigger[target_ids_func_]) + if not target_func_id_ in target_id_results: + # use admin user for accessing objects having rules defined on store fields + target_id_results[target_func_id_] = [i for i in store_trigger[target_ids_func_](self, cr, SUPERUSER_ID, ids, context) if i] + target_ids = target_id_results[target_func_id_] # the compound key must consider the priority and model name - key = (function[priority_], function[model_name_]) + key = (store_trigger[priority_], store_trigger[model_name_]) for target_id in target_ids: - mapping.setdefault(key, {}).setdefault(target_id,set()).add(tuple(function)) + to_compute_map.setdefault(key, {}).setdefault(target_id,set()).add(tuple(store_trigger)) - # Here mapping looks like: - # { (10, 'model_a') : { target_id1: [ (function_1_tuple, function_2_tuple) ], ... } - # (20, 'model_a') : { target_id2: [ (function_3_tuple, function_4_tuple) ], ... } - # (99, 'model_a') : { target_id1: [ (function_5_tuple, function_6_tuple) ], ... } + # Here to_compute_map looks like: + # { (10, 'model_a') : { target_id1: [ (trigger_1_tuple, trigger_2_tuple) ], ... } + # (20, 'model_a') : { target_id2: [ (trigger_3_tuple, trigger_4_tuple) ], ... } + # (99, 'model_a') : { target_id1: [ (trigger_5_tuple, trigger_6_tuple) ], ... } # } # Now we need to generate the batch function calls list # call_map = # { (10, 'model_a') : [(10, 'model_a', [record_ids,], [function_fields,])] } call_map = {} - for ((priority,model), id_map) in mapping.iteritems(): - functions_ids_maps = {} + for ((priority,model), id_map) in to_compute_map.iteritems(): + trigger_ids_maps = {} # function_ids_maps = # { (function_1_tuple, function_2_tuple) : [target_id1, target_id2, ..] } - for id, functions in id_map.iteritems(): - functions_ids_maps.setdefault(tuple(functions), []).append(id) - for functions, ids in functions_ids_maps.iteritems(): - call_map.setdefault((priority,model),[]).append((priority, model, ids, - [f[func_field_to_compute_] for f in functions])) + for target_id, triggers in id_map.iteritems(): + trigger_ids_maps.setdefault(tuple(triggers), []).append(target_id) + for triggers, target_ids in trigger_ids_maps.iteritems(): + call_map.setdefault((priority,model),[]).append((priority, model, target_ids, + [t[func_field_to_compute_] for t in triggers])) ordered_keys = call_map.keys() ordered_keys.sort() result = [] diff --git a/openerp/service/server.py b/openerp/service/server.py index 80a7155926b..19457341b04 100644 --- a/openerp/service/server.py +++ b/openerp/service/server.py @@ -3,7 +3,6 @@ #----------------------------------------------------------- import datetime import errno -import fcntl import logging import os import os.path @@ -21,6 +20,11 @@ import time import traceback import werkzeug.serving + +try: + import fcntl +except ImportError: + pass try: from setproctitle import setproctitle except ImportError: @@ -828,7 +832,6 @@ def start(): global server load_server_wide_modules() if config['workers']: - openerp.multi_process = True server = PreforkServer(openerp.service.wsgi_server.application) elif openerp.evented: server = GeventServer(openerp.service.wsgi_server.application) diff --git a/openerp/tests/test_mail.py b/openerp/tests/test_mail.py index f3d327b0281..36d49e34997 100755 --- a/openerp/tests/test_mail.py +++ b/openerp/tests/test_mail.py @@ -22,11 +22,11 @@ # ############################################################################## +from lxml import etree import unittest2 from . import test_mail_examples from openerp.tools import html_sanitize, html_email_clean, append_content_to_html, plaintext2html - class TestSanitizer(unittest2.TestCase): """ Test the html sanitizer that filters html to remove unwanted attributes """ @@ -76,15 +76,19 @@ class TestSanitizer(unittest2.TestCase): ("; REL=stylesheet\">"), # remote style sheet 3 (""), # remote style sheet 4 (""), # style attribute using a comment to break up expression - (""""""), # down-level hidden block ] for content in cases: html = html_sanitize(content) self.assertNotIn('javascript', html, 'html_sanitize did not remove a malicious javascript') self.assertTrue('ha.ckers.org' not in html or 'http://ha.ckers.org/xss.css' in html, 'html_sanitize did not remove a malicious code in %s (%s)' % (content, html)) + # Raise an exception if the node is an empty string without any root tag + with self.assertRaises(etree.ParserError): + content = "" # down-level hidden block + html = html_sanitize(content, silent=False) + + + def test_html(self): sanitized_html = html_sanitize(test_mail_examples.MISC_HTML_SOURCE) for tag in [' + + +

Hello, Raoul + You are + pretty

+Really + +''' + # shorten at 'H' of Hello -> should shorten after Hello, + html = html_email_clean(test_str, shorten=True, max_length=1, remove=True) + self.assertIn('Hello,', html, 'html_email_cleaner: shorten error or too short') + self.assertNotIn('Raoul', html, 'html_email_cleaner: shorten error or too long') + self.assertIn('read more', html, 'html_email_cleaner: shorten error about read more inclusion') + # shorten at 'are' -> should shorten after are + html = html_email_clean(test_str, shorten=True, max_length=17, remove=True) + self.assertIn('Hello,', html, 'html_email_cleaner: shorten error or too short') + self.assertIn('Raoul', html, 'html_email_cleaner: shorten error or too short') + self.assertIn('are', html, 'html_email_cleaner: shorten error or too short') + self.assertNotIn('pretty', html, 'html_email_cleaner: shorten error or too long') + self.assertNotIn('Really', html, 'html_email_cleaner: shorten error or too long') + self.assertIn('read more', html, 'html_email_cleaner: shorten error about read more inclusion') + + # TEST: shorten in quote + test_str = '''
Blahble + bluih blouh +
This is a quote + And this is quite a long quote, after all. +
+
''' + # shorten in the quote + html = html_email_clean(test_str, shorten=True, max_length=25, remove=True) + self.assertIn('Blahble', html, 'html_email_cleaner: shorten error or too short') + self.assertIn('bluih', html, 'html_email_cleaner: shorten error or too short') + self.assertIn('blouh', html, 'html_email_cleaner: shorten error or too short') + self.assertNotIn('quote', html, 'html_email_cleaner: shorten error or too long') + self.assertIn('read more', html, 'html_email_cleaner: shorten error about read more inclusion') + # shorten in second word + html = html_email_clean(test_str, shorten=True, max_length=9, remove=True) + self.assertIn('Blahble', html, 'html_email_cleaner: shorten error or too short') + self.assertIn('bluih', html, 'html_email_cleaner: shorten error or too short') + self.assertNotIn('blouh', html, 'html_email_cleaner: shorten error or too short') + self.assertNotIn('quote', html, 'html_email_cleaner: shorten error or too long') + self.assertIn('read more', html, 'html_email_cleaner: shorten error about read more inclusion') + # shorten waaay too large + html = html_email_clean(test_str, shorten=True, max_length=900, remove=True) + self.assertIn('Blahble', html, 'html_email_cleaner: shorten error or too short') + self.assertIn('bluih', html, 'html_email_cleaner: shorten error or too short') + self.assertIn('blouh', html, 'html_email_cleaner: shorten error or too short') + self.assertNotIn('quote', html, 'html_email_cleaner: shorten error or too long') + def test_10_email_text(self): """ html_email_clean test for text-based emails """ new_html = html_email_clean(test_mail_examples.TEXT_1, remove=True) @@ -223,6 +280,19 @@ class TestCleaner(unittest2.TestCase): for ext in test_mail_examples.THUNDERBIRD_1_OUT: self.assertNotIn(ext, new_html, 'html_email_cleaner did not erase signature / quoted content') + def test_70_read_more(self): + new_html = html_email_clean(test_mail_examples.BUG1, remove=True, shorten=True, max_length=100) + for ext in test_mail_examples.BUG_1_IN: + self.assertIn(ext, new_html, 'html_email_cleaner wrongly removed valid content') + for ext in test_mail_examples.BUG_1_OUT: + self.assertNotIn(ext, new_html, 'html_email_cleaner did not removed invalid content') + + new_html = html_email_clean(test_mail_examples.BUG2, remove=True, shorten=True, max_length=250) + for ext in test_mail_examples.BUG_2_IN: + self.assertIn(ext, new_html, 'html_email_cleaner wrongly removed valid content') + for ext in test_mail_examples.BUG_2_OUT: + self.assertNotIn(ext, new_html, 'html_email_cleaner did not removed invalid content') + def test_90_misc(self): # False boolean for text must return empty string new_html = html_email_clean(False) diff --git a/openerp/tests/test_mail_examples.py b/openerp/tests/test_mail_examples.py index 7631a28e662..54671106334 100644 --- a/openerp/tests/test_mail_examples.py +++ b/openerp/tests/test_mail_examples.py @@ -637,3 +637,322 @@ MSOFFICE_3 = """
MSOFFICE_3_IN = ['I saw your boss yesterday'] MSOFFICE_3_OUT = ['I noticed you recently downloaded OpenERP.', 'You indicated that you wish', 'Belgium: +32.81.81.37.00'] + + +# ------------------------------------------------------------ +# Test cases coming from bugs +# ------------------------------------------------------------ + +# bug: read more not apparent, strange message in read more span +BUG1 = """
Hi Migration Team,
+
+Paragraph 1, blah blah blah blah blah blah blah blah blah blah blah blah 
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah 
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah 
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah 
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah 
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah 
+blah blah blah blah blah blah blah blah.
+
+Paragraph 2, blah blah blah blah blah blah blah blah blah blah blah blah 
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah 
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah 
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah 
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah 
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah 
+blah blah blah blah blah blah blah blah.
+
+Paragraph 3, blah blah blah blah blah blah blah blah blah blah blah blah 
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah 
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah 
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah 
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah 
+blah blah blah blah blah blah blah blah blah blah blah blah blah blah 
+blah blah blah blah blah blah blah blah.
+
+Thanks.
+
+Regards,
+
+-- 
+Olivier Laurent
+Migration Manager
+OpenERP SA
+Chaussée de Namur, 40
+B-1367 Gérompont
+Tel: +32.81.81.37.00
+Web: http://www.openerp.com
""" + +BUG_1_IN = [ + 'Hi Migration Team', + 'Paragraph 1' +] +BUG_1_OUT = [ + 'Olivier Laurent', + 'Chaussée de Namur', + '81.81.37.00', + 'openerp.com', +] + + +BUG2 = """ +
+
+

+
+ -------- Original Message -------- + + + + + + + + + + + + + + + + + + + +
Subject: + Fwd: TR: OpenERP S.A. Payment Reminder
Date: Wed, 16 Oct 2013 14:11:13 +0200
From: Christine Herrmann <che@openerp.com>
To: online@openerp.com
+
+
+ +
+

+
+ -------- Message original -------- + + + + + + + + + + + + + + + + + + + + + + + +
Sujet: + TR: OpenERP S.A. Payment Reminder
Date : + Wed, 16 Oct 2013 10:34:45 -0000
De : Ida Siwatala <infos@inzoservices.com>
Répondre + + à : catchall@openerp.my.openerp.com
Pour : + Christine Herrmann (che) <che@openerp.com>
+
+
+
+
+

Bonjour,

+

+

 

+

Pourriez-vous + + me faire un retour sur ce point.

+

+

 

+

Cordialement

+

+

 

+
+
+

De : + Ida Siwatala [mailto:infos@inzoservices.com] +
+ Envoyé : vendredi 4 octobre 2013 20:03
+ À : 'Followers of + INZO-services-8-all-e-Maxime-Lisbonne-77176-Savigny-le-temple-France'
+ Objet : RE: OpenERP S.A. Payment Reminder

+
+
+

 

+

Bonsoir,

+

+

 

+

Je + + me permets de revenir vers vous par écrit , car j’ai + fait 2 appels vers votre service en exposant mon + problème, mais je n’ai pas eu de retour.

+

Cela + + fait un mois que j’ai fait la souscription de votre + produit, mais je me rends compte qu’il est pas adapté à + ma situation ( fonctionnalité manquante et surtout je + n’ai pas beaucoup de temps à passer à résoudre des + bugs).

+

C’est + + pourquoi , j’ai demandé qu’un accord soit trouvé avec + vous pour annuler le contrat (tout en vous payant le + mois d’utilisation de septembre).

+

+

 

+

Pourriez-vous + + me faire un retour sur ce point.

+

+

 

+

Cordialement,

+

+

 

+

Ida + + Siwatala

+

+

 

+

De : + che@openerp.com + [mailto:che@openerp.com] +
+ Envoyé : vendredi 4 octobre 2013 17:41
+ À : infos@inzoservices.com
+ Objet : OpenERP S.A. Payment Reminder

+

 

+
+

Dear + + INZO services,

+

Exception + + made if there was a mistake of ours, it seems that the + following amount stays unpaid. Please, take + appropriate measures in order to carry out this + payment in the next 8 days.

+

+

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Date de facturation

+
+

Description

+
+

Reference

+
+

Due Date

+
+

Amount (€)

+
+

Lit.

+
+

2013-09-24

+
+

2013/1121

+
+

Enterprise - Inzo Services + - Juillet 2013

+
+

2013-09-24

+
+

420.0

+

+

+

+

+

+

+

+
+

Amount + + due : 420.00 €

+

Would + + your payment have been carried out after this mail was + sent, please ignore this message. Do not hesitate to + contact our accounting department.

+


+ Best Regards,
+ Aurore Lesage
+ OpenERP
+ Chaussée de Namur, 40
+ B-1367 Grand Rosières
+ Tel: +32.81.81.37.00 - Fax: +32.81.73.35.01
+ E-mail : ale@openerp.com
+ Web: http://www.openerp.com

+
+
+
+ --
+ INZO services Sent by OpenERP + S.A. using OpenERP. + Access your messages and documents in + + OpenERP
+
-- 
+Christine Herrmann 
+
+OpenERP 
+Chaussée de Namur, 40 
+B-1367 Grand Rosières 
+Tel: +32.81.81.37.00 - Fax: +32.81.73.35.01 
+
+Web: http://www.openerp.com 
+
+
+
+
+
+
+ +
""" + +BUG_2_IN = [ + 'read more', + '...', +] +BUG_2_OUT = [ + 'Fwd: TR: OpenERP S.A' + 'fait un mois' +] diff --git a/openerp/tools/mail.py b/openerp/tools/mail.py index 98f8869f85c..ff73a3e0c72 100644 --- a/openerp/tools/mail.py +++ b/openerp/tools/mail.py @@ -175,6 +175,51 @@ def html_email_clean(html, remove=False, shorten=False, max_length=300): iteration += 1 new_node = _insert_new_node(node, -1, new_node_tag, text[idx:] + (cur_node.tail or ''), None, {}) + def _truncate_node(node, position, simplify_whitespaces=True): + """ Truncate a node text at a given position. This algorithm will shorten + at the end of the word whose ending character exceeds position. + + :param bool simplify_whitespaces: whether to try to count all successive + whitespaces as one character. This + option should not be True when trying + to keep 'pre' consistency. + """ + if node.text is None: + node.text = '' + + truncate_idx = -1 + if simplify_whitespaces: + cur_char_nbr = 0 + word = None + node_words = node.text.strip(' \t\r\n').split() + for word in node_words: + cur_char_nbr += len(word) + if cur_char_nbr >= position: + break + if word: + truncate_idx = node.text.find(word) + len(word) + else: + truncate_idx = position + if truncate_idx == -1 or truncate_idx > len(node.text): + truncate_idx = len(node.text) + + # compose new text bits + innertext = node.text[0:truncate_idx] + outertext = node.text[truncate_idx:] + node.text = innertext + + # create ... read more node + read_more_node = _create_node('span', ' ... ', None, {'class': 'oe_mail_expand'}) + read_more_link_node = _create_node('a', 'read more', None, {'href': '#', 'class': 'oe_mail_expand'}) + read_more_node.append(read_more_link_node) + # create outertext node + overtext_node = _create_node('span', outertext) + # tag node + overtext_node.set('in_overlength', '1') + # add newly created nodes in dom + node.append(read_more_node) + node.append(overtext_node) + if not html or not isinstance(html, basestring): return html html = ustr(html) @@ -197,17 +242,16 @@ def html_email_clean(html, remove=False, shorten=False, max_length=300): html = '
%s
' % html root = lxml.html.fromstring(html) - # remove all tails and replace them by a span element, because managing text and tails can be a pain in the ass - for node in root.getiterator(): + quote_tags = re.compile(r'(\n(>)+[^\n\r]*)') + signature = re.compile(r'([-]{2,}[\s]?[\r\n]{1,2}[\s\S]+)') + for node in root.iter(): + # remove all tails and replace them by a span element, because managing text and tails can be a pain in the ass if node.tail: tail_node = _create_node('span', node.tail) node.tail = None node.addnext(tail_node) - # form node and tag text-based quotes and signature - quote_tags = re.compile(r'(\n(>)+[^\n\r]*)') - signature = re.compile(r'([-]{2,}[\s]?[\r\n]{1,2}[^.]+)') - for node in root.getiterator(): + # form node and tag text-based quotes and signature _tag_matching_regex_in_text(quote_tags, node, 'span', {'text_quote': '1'}) _tag_matching_regex_in_text(signature, node, 'span', {'text_signature': '1'}) @@ -219,21 +263,26 @@ def html_email_clean(html, remove=False, shorten=False, max_length=300): quote_begin = False overlength = False cur_char_nbr = 0 - for node in root.getiterator(): + for node in root.iter(): + # do not take into account multiple spaces that are displayed as max 1 space in html + node_text = ' '.join((node.text and node.text.strip(' \t\r\n') or '').split()) + # root: try to tag the client used to write the html if 'WordSection1' in node.get('class', '') or 'MsoNormal' in node.get('class', ''): root.set('msoffice', '1') if 'SkyDrivePlaceholder' in node.get('class', '') or 'SkyDrivePlaceholder' in node.get('id', ''): root.set('hotmail', '1') - # state of the parsing + # state of the parsing: flag quotes and tails to remove if quote_begin: node.set('in_quote', '1') node.set('tail_remove', '1') + # state of the parsing: flag when being in over-length content if overlength: node.set('in_overlength', '1') node.set('tail_remove', '1') + # find quote in msoffice / hotmail / blockquote / text quote and signatures if root.get('msoffice') and node.tag == 'div' and 'border-top:solid' in node.get('style', ''): quote_begin = True node.set('in_quote', '1') @@ -242,42 +291,37 @@ def html_email_clean(html, remove=False, shorten=False, max_length=300): quote_begin = True node.set('in_quote', '1') node.set('tail_remove', '1') + if node.tag == 'blockquote' or node.get('text_quote') or node.get('text_signature'): + node.set('in_quote', '1') # shorten: # 1/ truncate the text at the next available space # 2/ create a 'read more' node, next to current node # 3/ add the truncated text in a new node, next to 'read more' node - if shorten and not overlength and cur_char_nbr + len(node.text or '') > max_length: + if shorten and not overlength and cur_char_nbr + len(node_text) > max_length: + node_to_truncate = node + while node_to_truncate.get('in_quote') and node_to_truncate.getparent() is not None: + node_to_truncate = node_to_truncate.getparent() overlength = True - # truncate text - innertext = node.text[0:(max_length - cur_char_nbr)] - outertext = node.text[(max_length - cur_char_nbr):] - stop_idx = outertext.find(' ') - if stop_idx == -1: - stop_idx = len(outertext) - node.text = innertext + outertext[0:stop_idx] - # create ... read more node - read_more_node = _create_node('span', ' ... ', None, {'class': 'oe_mail_expand'}) - read_more_link_node = _create_node('a', 'read more', None, {'href': '#', 'class': 'oe_mail_expand'}) - read_more_node.append(read_more_link_node) - # create outertext node - new_node = _create_node('span', outertext[stop_idx:]) - # add newly created nodes in dom - node.addnext(new_node) - node.addnext(read_more_node) - # tag node - new_node.set('in_overlength', '1') + node_to_truncate.set('truncate', '1') + if node_to_truncate == node: + node_to_truncate.set('truncate_position', str(max_length - cur_char_nbr)) + else: + node_to_truncate.set('truncate_position', str(len(node.text or ''))) + cur_char_nbr += len(node_text) - cur_char_nbr += len(node.text or '') + # Tree modification + # ------------------------------------------------------------ - if node.tag == 'blockquote' or node.get('text_quote') or node.get('text_signature'): - node.set('in_quote', '1') + for node in root.iter(): + if node.get('truncate'): + _truncate_node(node, int(node.get('truncate_position', '0')), node.tag != 'pre') # Post processing # ------------------------------------------------------------ to_remove = [] - for node in root.getiterator(): + for node in root.iter(): if node.get('in_quote') or node.get('in_overlength'): # copy the node tail into parent text if node.tail and not node.get('tail_remove'): @@ -286,17 +330,20 @@ def html_email_clean(html, remove=False, shorten=False, max_length=300): to_remove.append(node) if node.get('tail_remove'): node.tail = '' + # clean node + for attribute_name in ['in_quote', 'tail_remove', 'in_overlength', 'msoffice', 'hotmail', 'truncate', 'truncate_position']: + node.attrib.pop(attribute_name, None) for node in to_remove: if remove: node.getparent().remove(node) else: if not 'oe_mail_expand' in node.get('class', ''): # trick: read more link should be displayed even if it's in overlength - node_class = node.get('class', '') + ' ' + 'oe_mail_cleaned' + node_class = node.get('class', '') + ' oe_mail_cleaned' node.set('class', node_class) # html: \n that were tail of elements have been encapsulated into -> back to \n html = etree.tostring(root, pretty_print=False) - linebreaks = re.compile(r'([\s]*[\r\n]+[\s]*)<\/span>', re.IGNORECASE | re.DOTALL) + linebreaks = re.compile(r']*>([\s]*[\r\n]+[\s]*)<\/span>', re.IGNORECASE | re.DOTALL) html = _replace_matching_regex(linebreaks, html, '\n') return html