diff options
| author | Christophe Simonis <chs@odoo.com> | 2014-09-05 15:28:22 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2014-09-05 15:28:22 +0200 |
| commit | 31bf30d2d0eb78baaa36360b99fe58bf7cd4c9e7 (patch) | |
| tree | d7be61ecd6bb4c8b5552e39b03e2a64eebbbf323 /addons/website | |
| parent | afba9e8817c458640ae446ac7aaaab79be4fe1e9 (diff) | |
| parent | ed1c173971968eaa96693cb4e1547efa6e6c34e0 (diff) | |
[MERGE] forward port of branch 8.0 up to ed1c173
Diffstat (limited to 'addons/website')
| -rw-r--r-- | addons/website/README.md | 117 | ||||
| -rw-r--r-- | addons/website/__openerp__.py | 1 | ||||
| -rw-r--r-- | addons/website/controllers/main.py | 81 | ||||
| -rw-r--r-- | addons/website/i18n/website.pot | 3069 | ||||
| -rw-r--r-- | addons/website/models/ir_actions.py | 2 | ||||
| -rw-r--r-- | addons/website/models/ir_http.py | 30 | ||||
| -rw-r--r-- | addons/website/models/ir_qweb.py | 20 | ||||
| -rw-r--r-- | addons/website/models/ir_ui_view.py | 15 | ||||
| -rw-r--r-- | addons/website/models/website.py | 51 | ||||
| -rw-r--r-- | addons/website/static/src/css/website.css | 5 | ||||
| -rw-r--r-- | addons/website/static/src/css/website.sass | 7 | ||||
| -rw-r--r-- | addons/website/static/src/js/website.editor.js | 20 | ||||
| -rw-r--r-- | addons/website/static/src/js/website.seo.js | 2 | ||||
| -rw-r--r-- | addons/website/static/src/js/website.snippets.editor.js | 10 | ||||
| -rw-r--r-- | addons/website/static/src/js/website.translator.js | 2 | ||||
| -rw-r--r-- | addons/website/views/themes.xml | 26 | ||||
| -rw-r--r-- | addons/website/views/website_templates.xml | 105 |
17 files changed, 3459 insertions, 104 deletions
diff --git a/addons/website/README.md b/addons/website/README.md new file mode 100644 index 00000000000..2f31310c837 --- /dev/null +++ b/addons/website/README.md @@ -0,0 +1,117 @@ +Odoo Website Builder +-------------------- + +Get an awesome and <a href="https://www.odoo.com/page/website-builder">free website</a>, +easily customizable with the Odoo <a href="https://www.odoo.com/page/website-builder">website builder</a>. + +Create enterprise grade website with our super easy builder. Use finely +designed building blocks and edit everything inline. + +Benefit from out-of-the-box business features; e-Commerce, events, blogs, jobs +announces, customer references, call-to-actions, etc. + +Edit Anything Inline +-------------------- + +Create beautiful websites with no technical knowledge. Odoo's unique *'edit +inline'* approach makes website creation surprisingly easy. No more complex +backend; just click anywhere to change any content. + +"Want to change the price of a product? or put it in bold? Want to change a +blog title?" Just click and change. What you see is what you get. Really. + +Awesome. Astonishingly Beautiful. +--------------------------------- + +Odoo's building blocks allow to design modern websites that are not possible +with traditional WYSIWYG page editors. + +Whether it's for products descriptions, blogs or static pages, you don't need +to be a professioanl designer to create clean contents. Just drag and drop and +customize predefined building blocks. + +Enterprise-Ready, out-of-the-box +-------------------------------- + +Activate ready-to-use enterprise features in just a click; e-commerce, +call-to-actions, jobs announces, events, customer references, blogs, etc. + +Traditional eCommerce and CMS have poorly designed backends as it's not their +core focus. With the Odoo integration, you benefit from the best management +software to follow-up on your orders, your jobs applicants, your leads, etc. + +A Great Mobile Experience +------------------------- + +Get a mobile friendly website thanks to our responsive design based on +bootstrap. All your pages adapt automatically to the screen size. (mobile +phones, tablets, desktop) You don't have to worry about mobile contents, it +works by default. + +SEO tools at your finger tips +----------------------------- + +The *Promote* tool suggests keywords according to Google most searched terms. +Search Engine Optimization tools are ready to use, with no configuration +required. + +Google Analytics tracks your shopping cart events by default. Sitemap and +structured content are created automatically for Google indexation. + +Multi-Languages Made Easy +------------------------- + +Get your website translated in multiple languages with no effort. Odoo proposes +and propagates translations automatically across pages, following what you edit +on the master page. + +Benefit from professional translators to translate all your contents +automatically with the [Gengo](http://gengo.com) integration. Update any part +of your website and the translated versions are pushed automatically in a few +hours. + +Designer-Friendly Templates +--------------------------- + +Templates are awesome and easy to design. You don't need to develop to create +new pages, themes or building blocks. We use a clean HTML structure, a +[bootstrap](http://getbootstrap.com/) CSS. + +Customize every page on the fly with the integrated template editor. Distribute +your work easily as an Odoo module. + +Fluid Grid Layouting +-------------------- + +Design perfect pages by drag and dropping building blocks. Move and scale them +to fit the layout you are looking for. + +Building blocks are based on a responsive, mobile friendly fluid grid system +that appropriately scales up to 12 columns as the device or viewport size +increases. + +Professional Themes +------------------- + +Design a custom theme or reuse pre-defined themes to customize the look and +feel of your website. + +Test new color scheme easily; you can change your theme at any time in just a +click. + +Integrated With Odoo Apps +------------------------- + +### e-Commerce + +Promote products, sell online, optimize visitors' shopping experience. + + +### Blogs + +Write news, attract new visitors, build customer loyalty. + + +### Online Events + +Schedule, organize, promote or sell events online; conferences, trainings, webinars, etc. diff --git a/addons/website/__openerp__.py b/addons/website/__openerp__.py index ab3a84d5e7e..240109d005a 100644 --- a/addons/website/__openerp__.py +++ b/addons/website/__openerp__.py @@ -2,6 +2,7 @@ 'name': 'Website Builder', 'category': 'Website', 'summary': 'Build Your Enterprise Website', + 'website': 'https://www.odoo.com/page/website-builder', 'version': '1.0', 'description': """ OpenERP Website CMS diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py index ce080d34821..0f08a9e717c 100644 --- a/addons/website/controllers/main.py +++ b/addons/website/controllers/main.py @@ -3,12 +3,15 @@ import cStringIO import datetime from itertools import islice import json +import xml.etree.ElementTree as ET + import logging import re from sys import maxint import werkzeug.utils +import urllib2 import werkzeug.wrappers from PIL import Image @@ -53,8 +56,10 @@ class Website(openerp.addons.web.controllers.main.Home): values = { 'path': page, } - # allow shortcut for /page/<website_xml_id> - if '.' not in page: + # /page/website.XXX --> /page/XXX + if page.startswith('website.'): + return request.redirect('/page/' + page[8:], code=301) + elif '.' not in page: page = 'website.%s' % page try: @@ -136,6 +141,22 @@ class Website(openerp.addons.web.controllers.main.Home): return request.make_response(content, [('Content-Type', mimetype)]) + @http.route('/website/info', type='http', auth="public", website=True) + def website_info(self): + try: + request.website.get_template('website.info').name + except Exception, e: + return request.registry['ir.http']._handle_exception(e, 404) + irm = request.env()['ir.module.module'].sudo() + apps = irm.search([('state','=','installed'),('application','=',True)]) + modules = irm.search([('state','=','installed'),('application','=',False)]) + values = { + 'apps': apps, + 'modules': modules, + 'version': openerp.service.common.exp_version() + } + return request.render('website.info', values) + #------------------------------------------------------ # Edit #------------------------------------------------------ @@ -197,13 +218,13 @@ class Website(openerp.addons.web.controllers.main.Home): user_groups = set(user.groups_id) views = request.registry["ir.ui.view"]\ - ._views_get(request.cr, request.uid, xml_id, bundles=bundles, context=request.context) + ._views_get(request.cr, request.uid, xml_id, bundles=bundles, context=dict(request.context or {}, active_test=False)) done = set() result = [] for v in views: if not user_groups.issuperset(v.groups_id): continue - if full or (v.application != 'always' and v.inherit_id.id != view_theme_id): + if full or (v.customize_show and v.inherit_id.id != view_theme_id): if v.inherit_id not in done: result.append({ 'name': v.inherit_id.name, @@ -220,7 +241,7 @@ class Website(openerp.addons.web.controllers.main.Home): 'xml_id': v.xml_id, 'inherit_id': v.inherit_id.id, 'header': False, - 'active': v.application in ('always', 'enabled'), + 'active': v.active, }) return result @@ -334,6 +355,18 @@ class Website(openerp.addons.web.controllers.main.Home): obj = _object.browse(request.cr, request.uid, _id) return bool(obj.website_published) + @http.route(['/website/seo_suggest/<keywords>'], type='http', auth="public", website=True) + def seo_suggest(self, keywords): + url = "http://google.com/complete/search" + try: + req = urllib2.Request("%s?%s" % (url, werkzeug.url_encode({ + 'ie': 'utf8', 'oe': 'utf8', 'output': 'toolbar', 'q': keywords}))) + request = urllib2.urlopen(req) + except (urllib2.HTTPError, urllib2.URLError): + return [] + xmlroot = ET.fromstring(request.read()) + return json.dumps([sugg[0].attrib['data'] for sugg in xmlroot if len(sugg) and sugg[0].attrib['data']]) + #------------------------------------------------------ # Themes #------------------------------------------------------ @@ -356,8 +389,9 @@ class Website(openerp.addons.web.controllers.main.Home): enable = [] disable = [] ids = self.get_view_ids(xml_ids) - for v in view.browse(request.cr, request.uid, ids, context=request.context): - if v.application != "disabled": + context = dict(request.context or {}, active_test=True) + for v in view.browse(request.cr, request.uid, ids, context=context): + if v.active: enable.append(v.xml_id) else: disable.append(v.xml_id) @@ -370,19 +404,12 @@ class Website(openerp.addons.web.controllers.main.Home): cr, uid, context, pool = request.cr, request.uid, request.context, request.registry view = pool["ir.ui.view"] - def set_application(ids, application): - write_ids = [] - for v in view.browse(cr, uid, self.get_view_ids(ids), context=context): - if v.application == 'always': - continue - if v.application != application: - write_ids.append(v.id) - - if write_ids: - view.write(cr, uid, write_ids, {'application': application}) + def set_active(ids, active): + if ids: + view.write(cr, uid, ids, {'active': active}, context=dict(request.context or {}, active_test=True)) - set_application(disable, 'disabled') - set_application(enable, 'enabled') + set_active(disable, False) + set_active(enable, True) return True @@ -405,7 +432,8 @@ class Website(openerp.addons.web.controllers.main.Home): '/website/image', '/website/image/<xmlid>', '/website/image/<xmlid>/<field>', - '/website/image/<model>/<id>/<field>' + '/website/image/<model>/<id>/<field>', + '/website/image/<model>/<id>/<field>/<int:max_width>x<int:max_height>' ], auth="public", website=True) def website_image(self, model=None, id=None, field=None, xmlid=None, max_width=None, max_height=None): """ Fetches the requested field and ensures it does not go above @@ -436,10 +464,15 @@ class Website(openerp.addons.web.controllers.main.Home): if not model or not id or not field: raise werkzeug.exceptions.NotFound() - response = werkzeug.wrappers.Response() - return request.registry['website']._image( - request.cr, request.uid, model, id, field, response, max_width, max_height) - + try: + response = werkzeug.wrappers.Response() + return request.registry['website']._image( + request.cr, request.uid, model, id, field, response, max_width, max_height) + except Exception: + logger.exception("Cannot render image field %r of record %s[%s] at size(%s,%s)", + field, model, id, max_width, max_height) + response = werkzeug.wrappers.Response() + return self.placeholder(response) #------------------------------------------------------ # Server actions diff --git a/addons/website/i18n/website.pot b/addons/website/i18n/website.pot new file mode 100644 index 00000000000..751dd93a55e --- /dev/null +++ b/addons/website/i18n/website.pot @@ -0,0 +1,3069 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * website +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0rc1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-08-14 13:09+0000\n" +"PO-Revision-Date: 2014-08-14 13:09+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.snippets.xml:34 +#: code:addons/website/static/src/xml/website.snippets.xml:35 +#: code:addons/website/static/src/xml/website.snippets.xml:36 +#, python-format +msgid " " +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "×" +msgstr "" + +#. module: website +#: view:website:website.500 +msgid "' in the box below if you want to confirm." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:356 +#, python-format +msgid "(Youtube, Vimeo, Dailymotion)" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid ",\n" +" the #1" +msgstr "" + +#. module: website +#: view:website:website.sitemap_index_xml +msgid ".xml" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.seo.xml:22 +#, python-format +msgid "1. Define Keywords" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.seo.xml:40 +#, python-format +msgid "2. Reference Your Page" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.seo.xml:57 +#, python-format +msgid "3. Preview" +msgstr "" + +#. module: website +#: view:website:website.403 +msgid "403: Forbidden" +msgstr "" + +#. module: website +#: view:website:website.404 +msgid "404: Page not found!" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "50,000+ companies run Odoo to grow their businesses." +msgstr "" + +#. module: website +#: model:ir.actions.act_window,help:website.action_module_website +msgid "<p><b>No website module found!</b></p>\n" +" <p>You should try others search criteria.</p>\n" +" " +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "A Great Headline" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "A Punchy Headline" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "A Section Subtitle" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "A Small Subtitle" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "A calm blue sky" +msgstr "" + +#. module: website +#: help:ir.actions.server,website_published:0 +msgid "A code server action can be executed from the website, using a dedicatedcontroller. The address is <base>/website/action/<website_path>.Set this field as True to allow users to run this action. If itset to is False the action cannot be run through the website." +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "A friendly foundation" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "A good subtitle" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "A great way to catch your reader's attention is to tell a story.\n" +" Everything you consider writing can be told as a story." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "A small explanation of this great" +msgstr "" + +#. module: website +#: view:website:website.aboutus +#: view:website:website.layout +msgid "About us" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Adapt these three columns to fit you design need.\n" +" To duplicate, delete or move columns, select the\n" +" column and use the top icons to perform your action." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:215 +#: code:addons/website/static/src/xml/website.seo.xml:30 +#, python-format +msgid "Add" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:67 +#, python-format +msgid "Add Another Block" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.contentMenu.xml:39 +#: code:addons/website/static/src/xml/website.contentMenu.xml:47 +#, python-format +msgid "Add Menu Entry" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Add Slide" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Add a great slogan" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Add a language..." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:212 +#, python-format +msgid "Add an image URL" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.seo.xml:25 +#, python-format +msgid "Add keyword:" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:111 +#, python-format +msgid "Add new pages and menus" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.contentMenu.js:50 +#, python-format +msgid "Add page in menu" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "All these icons are licensed under creative commons so that you can use them." +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Amelia" +msgstr "" + +#. module: website +#: view:website:website.500 +msgid "An error occured while rendering the template" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "An ode to Metro" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "And a great subtitle too" +msgstr "" + +#. module: website +#: view:website:website.themes +#: view:website:website.view_website_form +#: view:website.config.settings:website.view_website_config_settings +msgid "Apply" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Aqua" +msgstr "" + +#. module: website +#: field:ir.attachment,website_url:0 +msgid "Attachment URL" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Author of this quote" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.snippets.xml:44 +#, python-format +msgid "Auto Resize" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:394 +#, python-format +msgid "Autoplay" +msgstr "" + +#. module: website +#: field:ir.actions.server,website_published:0 +msgid "Available on the Website" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Baby Blue" +msgstr "" + +#. module: website +#: view:website:website.500 +msgid "Back" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Background" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Banner" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Banner Odoo Image" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:92 +#, python-format +msgid "Basic" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Battery: 12 hours" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Battery: 20 hours" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Battery: 8 hours" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Beginner" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Big Message" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Big Picture" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Bigger Text" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Black" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.snippets.xml:13 +#, python-format +msgid "Block style" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Box" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:8 +#, python-format +msgid "Build a page" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Business Guy" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Button" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Can I use it to manage projects based on agile methodologies?" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:300 +#: code:addons/website/static/src/xml/website.translator.xml:46 +#: code:addons/website/static/src/xml/website.xml:74 +#: view:website:website.500 +#: view:website:website.view_website_form +#: view:website.config.settings:website.view_website_config_settings +#, python-format +msgid "Cancel" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Cerulean" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:308 +#, python-format +msgid "Change" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Change Background" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Change Icons" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:315 +#, python-format +msgid "Change Media" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Change Theme" +msgstr "" + +#. module: website +#: view:website:website.contactus +msgid "Change address" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Change..." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:103 +#, python-format +msgid "Check Mobile Preview" +msgstr "" + +#. module: website +#: field:website.menu,child_id:0 +msgid "Child Menus" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Choose a vibrant image and write an inspiring paragraph\n" +" about it. It does not have to be long, but it should\n" +" reinforce your image." +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Choose an image..." +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Circle" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:28 +#, python-format +msgid "Click here to insert blocks of content in the page." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:43 +#, python-format +msgid "Click in the text and start editing it." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Click on the icon to adapt it to your feature" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:49 +#: view:website:website.snippets +#, python-format +msgid "Click to customize this text" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.ace.xml:11 +#: code:addons/website/static/src/xml/website.seo.xml:13 +#: code:addons/website/static/src/xml/website.translator.xml:11 +#: code:addons/website/static/src/xml/website.xml:10 +#: code:addons/website/static/src/xml/website.xml:26 +#: code:addons/website/static/src/xml/website.xml:43 +#, python-format +msgid "Close" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:113 +#, python-format +msgid "Close Tutorial" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Color Splash" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:86 +#, python-format +msgid "Color Style" +msgstr "" + +#. module: website +#: model:ir.model,name:website.model_res_company +msgid "Companies" +msgstr "" + +#. module: website +#: field:website,company_id:0 +msgid "Company" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Company name" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Comparisons" +msgstr "" + +#. module: website +#: view:website.config.settings:website.view_website_config_settings +msgid "Configure Website" +msgstr "" + +#. module: website +#: view:website.config.settings:website.view_website_config_settings +msgid "Configure website menus" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Connect with us" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Consider telling\n" +" a great story that provides personality. Writing a story\n" +" with personality for potential clients will asist with\n" +" making a relationship connection. This shows up in small\n" +" quirks like word choices or phrases. Write from your point\n" +" of view, not from someone else's experience." +msgstr "" + +#. module: website +#: view:website:website.403 +#: view:website:website.404 +msgid "Contact Us" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Contact Us Now" +msgstr "" + +#. module: website +#: view:website:website.contactus +#: view:website:website.layout +#: view:website:website.snippets +#: model:website.menu,name:website.menu_contactus +msgid "Contact us" +msgstr "" + +#. module: website +#: view:website:website.contactus +msgid "Contact us about anything related to our company or services." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Contact us ยป" +msgstr "" + +#. module: website +#: view:website:website.layout +#: view:website:website.snippets +msgid "Content" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.translator.xml:22 +#, python-format +msgid "Content to translate" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:61 +#: code:addons/website/static/src/js/website.tour.banner.js:90 +#: code:addons/website/static/src/js/website.tour.banner.js:105 +#: code:addons/website/static/src/xml/website.xml:73 +#, python-format +msgid "Continue" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Copyright ©" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Cosmo" +msgstr "" + +#. module: website +#: view:website:website.page_404 +msgid "Create Page" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.editor.js:987 +#, python-format +msgid "Create page '%s'" +msgstr "" + +#. module: website +#: field:website,create_uid:0 +#: field:website.config.settings,create_uid:0 +#: field:website.converter.test.sub,create_uid:0 +#: field:website.menu,create_uid:0 +#: field:website.seo.metadata,create_uid:0 +msgid "Created by" +msgstr "" + +#. module: website +#: field:website,create_date:0 +#: field:website.config.settings,create_date:0 +#: field:website.converter.test.sub,create_date:0 +#: field:website.menu,create_date:0 +#: field:website.seo.metadata,create_date:0 +msgid "Created on" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Crisp like a new sheet of paper." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:313 +#: code:addons/website/static/src/xml/website.snippets.xml:31 +#: view:website:website.layout +#, python-format +msgid "Customize" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:60 +#, python-format +msgid "Customize any block through this menu. Try to change the background of the banner." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:42 +#, python-format +msgid "Customize banner's text" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:59 +#, python-format +msgid "Customize the banner" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Cyborg" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:107 +#, python-format +msgid "Danger" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Dark Blue" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Darken" +msgstr "" + +#. module: website +#: field:ir.attachment,datas_checksum:0 +msgid "Datas checksum" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:123 +#: view:website:website.themes +#, python-format +msgid "Default" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Default Theme" +msgstr "" + +#. module: website +#: field:website,default_lang_id:0 +#: field:website.config.settings,default_lang_id:0 +msgid "Default language" +msgstr "" + +#. module: website +#: field:website,default_lang_code:0 +#: field:website.config.settings,default_lang_code:0 +msgid "Default language code" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Delete Blocks" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Delete the above image or replace it with a picture\n" +" that illustrates your message. Click on the picture to\n" +" change it's" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Deploy new stores with just an internet connection: no\n" +" installation, no specific hardware required. It works with any\n" +" iPad, Tablet PC, laptop or industrial POS machine." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.seo.xml:49 +#, python-format +msgid "Description" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.seo.xml:120 +#, python-format +msgid "Description..." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:11 +#: code:addons/website/static/src/xml/website.editor.xml:30 +#: code:addons/website/static/src/xml/website.editor.xml:191 +#: code:addons/website/static/src/xml/website.editor.xml:239 +#: code:addons/website/static/src/xml/website.editor.xml:298 +#: code:addons/website/static/src/xml/website.seo.xml:71 +#, python-format +msgid "Discard" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:288 +#, python-format +msgid "Discard edition" +msgstr "" + +#. module: website +#: view:website:website.template_partner_comment +msgid "Discuss and Comments" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.translator.xml:41 +#, python-format +msgid "Do not show this dialog later." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Does it works offline?" +msgstr "" + +#. module: website +#: view:website:website.view_website_form +#: field:website,name:0 +#: view:website.config.settings:website.view_website_config_settings +msgid "Domain" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:74 +#, python-format +msgid "Drag & Drop This Block" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:34 +#, python-format +msgid "Drag & Drop a Banner" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.contentMenu.xml:34 +#, python-format +msgid "Drag a menu to the right to create a sub-menu" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:75 +#, python-format +msgid "Drag the <em>'Features'</em> block and drop it below the banner." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:35 +#, python-format +msgid "Drag the Banner block and drop it in your page." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.snippets.xml:34 +#, python-format +msgid "Drag to Move" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Duplicate" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.snippets.xml:35 +#, python-format +msgid "Duplicate Container" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Duplicate blocks to add more features." +msgstr "" + +#. module: website +#: view:website:website.layout +#: view:website:website.publish_management +msgid "Edit" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.contentMenu.xml:27 +#: view:website:website.layout +#, python-format +msgid "Edit Menu" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.contentMenu.xml:48 +#, python-format +msgid "Edit Menu Entry" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Edit Top Menu" +msgstr "" + +#. module: website +#: view:website:website.publish_management +msgid "Edit in backend" +msgstr "" + +#. module: website +#: view:website:website.page_404 +msgid "Edit the content below this line to adapt the default \"page not found\" page." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:20 +#, python-format +msgid "Edit this page" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Effects" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:368 +#, python-format +msgid "Embed Video (HTML)" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Enterprise package" +msgstr "" + +#. module: website +#: view:website:website.http_error_debug +msgid "Error" +msgstr "" + +#. module: website +#: view:website:website.http_error_debug +msgid "Error message:" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:21 +#, python-format +msgid "Every page of your website can be modified through the <i>Edit</i> button." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Expert" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Explain the benefits you offer. Don't write about products or\n" +" services here, write about solutions." +msgstr "" + +#. module: website +#: field:ir.actions.server,xml_id:0 +msgid "External ID" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:117 +#, python-format +msgid "Extra Small" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "FAQ" +msgstr "" + +#. module: website +#: field:website,social_facebook:0 +#: field:website.config.settings,social_facebook:0 +msgid "Facebook Account" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Fast" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Feature Grid" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Feature One" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Feature Three" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Feature Title" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Feature Two" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Features" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "First Feature" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Fixed" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Flat and modern" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Flatly" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Flowers Field" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.ace.xml:10 +#, python-format +msgid "Format" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Free shipping, satisfied or reimbursed." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "From the main container, you can change the background to highlight features." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:52 +#, python-format +msgid "Get banner properties" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.seo.xml:15 +#, python-format +msgid "Get this page efficiently referenced in Google to attract more visitors." +msgstr "" + +#. module: website +#: field:website,social_github:0 +#: field:website.config.settings,social_github:0 +msgid "GitHub Account" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:88 +#, python-format +msgid "Good Job!" +msgstr "" + +#. module: website +#: field:website,google_analytics_key:0 +#: field:website.config.settings,google_analytics_key:0 +msgid "Google Analytics Key" +msgstr "" + +#. module: website +#: field:website,social_googleplus:0 +#: field:website.config.settings,social_googleplus:0 +msgid "Google+ Account" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Great Value" +msgstr "" + +#. module: website +#: view:website:website.aboutus +msgid "Great products for great people" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Great stories are for everyone even when only written for\n" +" just one person." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Great stories have personality." +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Green" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Greenfields" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "HELP & TUTORIALS" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "HTML Editor" +msgstr "" + +#. module: website +#: model:ir.model,name:website.model_ir_http +msgid "HTTP routing" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Have a look at" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Help" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.translator.xml:19 +#, python-format +msgid "Here are the visuals used to help you translate efficiently:" +msgstr "" + +#. module: website +#: view:website:website.500 +#: view:website:website.layout +#: model:website.menu,name:website.menu_homepage +msgid "Home" +msgstr "" + +#. module: website +#: view:website:website.403 +#: view:website:website.404 +#: view:website:website.layout +msgid "Homepage" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:321 +#, python-format +msgid "Horizontal flip" +msgstr "" + +#. module: website +#: field:website,id:0 +#: field:website.config.settings,id:0 +#: field:website.converter.test.sub,id:0 +#: field:website.menu,id:0 +#: field:website.qweb,id:0 +#: field:website.qweb.field,id:0 +#: field:website.qweb.field.contact,id:0 +#: field:website.qweb.field.date,id:0 +#: field:website.qweb.field.datetime,id:0 +#: field:website.qweb.field.duration,id:0 +#: field:website.qweb.field.float,id:0 +#: field:website.qweb.field.html,id:0 +#: field:website.qweb.field.image,id:0 +#: field:website.qweb.field.integer,id:0 +#: field:website.qweb.field.many2one,id:0 +#: field:website.qweb.field.monetary,id:0 +#: field:website.qweb.field.qweb,id:0 +#: field:website.qweb.field.relative,id:0 +#: field:website.qweb.field.selection,id:0 +#: field:website.qweb.field.text,id:0 +#: field:website.seo.metadata,id:0 +msgid "ID" +msgstr "" + +#. module: website +#: help:ir.actions.server,xml_id:0 +msgid "ID of the action if defined in a XML file" +msgstr "" + +#. module: website +#: view:website:website.500 +msgid "If this error is caused by a change of yours in the templates, you have the possibility to reset one or more templates to their" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:291 +#, python-format +msgid "If you discard the current edition," +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "If you try to write with a wide general\n" +" audience in mind, your story will ring false and be bland.\n" +" No one will be interested. Write for one person. If itโs genuine for the one, itโs genuine for the rest." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:156 +#, python-format +msgid "Image" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Image Gallery" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Image-Text" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.translator.xml:30 +#, python-format +msgid "In this mode, you can only translate texts. To\n" +" change the structure of the page, you must edit the\n" +" master page. Each modification on the master page\n" +" is automatically applied to all translated\n" +" versions." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:101 +#, python-format +msgid "Info" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.snippets.xml:7 +#, python-format +msgid "Insert Blocks" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:27 +#, python-format +msgid "Insert building blocks" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Install Apps" +msgstr "" + +#. module: website +#: model:ir.model,name:website.model_base_language_install +msgid "Install Language" +msgstr "" + +#. module: website +#: view:website:website.500 +msgid "Internal Server Error" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.xml:35 +#, python-format +msgid "It might be possible to edit the relevant items\n" +" or fix the issue in" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Jet black and electric blue" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "John Doe, CEO" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Join us and make your company a better place." +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Journal" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Landscape" +msgstr "" + +#. module: website +#: view:website.config.settings:website.view_website_config_settings +msgid "Language" +msgstr "" + +#. module: website +#: field:website,language_ids:0 +#: field:website.config.settings,language_ids:0 +msgid "Languages" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:126 +#, python-format +msgid "Large" +msgstr "" + +#. module: website +#: field:website,write_uid:0 +#: field:website.config.settings,write_uid:0 +#: field:website.converter.test.sub,write_uid:0 +#: field:website.menu,write_uid:0 +#: field:website.seo.metadata,write_uid:0 +msgid "Last Updated by" +msgstr "" + +#. module: website +#: field:website,write_date:0 +#: field:website.config.settings,write_date:0 +#: field:website.converter.test.sub,write_date:0 +#: field:website.menu,write_date:0 +#: field:website.seo.metadata,write_date:0 +msgid "Last Updated on" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:68 +#, python-format +msgid "Let's add another building block to your page." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:97 +#, python-format +msgid "Let's check how your homepage looks like on mobile devices." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Limited support" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:89 +#, python-format +msgid "Link" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:71 +#, python-format +msgid "Link text" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:41 +#, python-format +msgid "Link to" +msgstr "" + +#. module: website +#: field:website,social_linkedin:0 +#: field:website.config.settings,social_linkedin:0 +msgid "LinkedIn Account" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "List of Features" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Logout" +msgstr "" + +#. module: website +#: field:website,menu_id:0 +msgid "Main Menu" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Mango" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.snippets.xml:60 +#, python-format +msgid "Margin resize" +msgstr "" + +#. module: website +#: view:website:website.403 +#: view:website:website.404 +msgid "Maybe you were looking for one of these popular pages ?" +msgstr "" + +#. module: website +#: view:website.config.settings:website.view_website_config_settings +#: field:website.menu,name:0 +msgid "Menu" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.contentMenu.xml:55 +#, python-format +msgid "Menu Label" +msgstr "" + +#. module: website +#: view:website:website.template_partner_comment +msgid "Message" +msgstr "" + +#. module: website +#: field:ir.attachment,mimetype:0 +msgid "Mime Type" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Mini and minimalist." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.xml:11 +#: view:website:website.layout +#, python-format +msgid "Mobile preview" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "More than 500 happy customers." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "More than 500 successful projects" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.seo.xml:36 +#, python-format +msgid "Most searched topics related to your keywords, ordered by importance:" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Mountains" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "My Account" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Narrow" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.contentMenu.js:38 +#: view:website:website.layout +#, python-format +msgid "New Page" +msgstr "" + +#. module: website +#: field:website.menu,new_window:0 +msgid "New Window" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.editor.js:972 +#, python-format +msgid "New or existing page" +msgstr "" + +#. module: website +#: view:website:website.kanban_contain +#: view:website:website.pager +msgid "Next" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:162 +#, python-format +msgid "Next โ" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "No support" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "None" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.backend.xml:10 +#: view:website:website.publish_management +#: view:website:website.publish_short +#, python-format +msgid "Not Published" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Odoo" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Odoo provides essential platform for our project management.\n" +" Things are better organized and more visible with it." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Odoo provides essential platform for our project management.\n" +" Things are better organized and more visible with it." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Odoo provides essential platform for our project management.\n" +" Things are better organized and more visible with it." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Odoo's POS is a web application that can run on any device that\n" +" can display websites with little to no setup required." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.translator.xml:44 +#, python-format +msgid "Ok" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Open Source eCommerce" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:56 +#, python-format +msgid "Open in new window" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Optimized for legibility" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Orange" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Orange Red" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Order now" +msgstr "" + +#. module: website +#: view:website:website.view_website_form +msgid "Other Info" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Our Customer References" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Our Offers" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Our References" +msgstr "" + +#. module: website +#: view:website:website.aboutus +msgid "Our Team" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Our products & Services" +msgstr "" + +#. module: website +#: view:website:website.aboutus +msgid "Our products are designed for small to medium size companies willing to optimize\n" +" their performance." +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Our products are designed for small to medium size companies willing to optimize\n" +" their performance." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:46 +#, python-format +msgid "Page" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.contentMenu.js:39 +#, python-format +msgid "Page Title" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Panel" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Panels are a great tool to compare offers or to emphasize on\n" +" key features. To compare products, use the inside columns." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Parallax" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Parallax Slider" +msgstr "" + +#. module: website +#: field:website.menu,parent_left:0 +msgid "Parent Left" +msgstr "" + +#. module: website +#: field:website.menu,parent_id:0 +msgid "Parent Menu" +msgstr "" + +#. module: website +#: field:website.menu,parent_right:0 +msgid "Parent Right" +msgstr "" + +#. module: website +#: model:ir.model,name:website.model_res_partner +msgid "Partner" +msgstr "" + +#. module: website +#: view:website:website.template_partner_post +msgid "Partner Detail" +msgstr "" + +#. module: website +#: view:website:website.template_partner_comment +msgid "Partners" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "People" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:157 +#, python-format +msgid "Pictogram" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Point of Sale Questions" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Powered by" +msgstr "" + +#. module: website +#: view:website:website.kanban_contain +#: view:website:website.pager +msgid "Prev" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:135 +#: code:addons/website/static/src/xml/website.editor.xml:365 +#: code:addons/website/static/src/xml/website.editor.xml:376 +#, python-format +msgid "Preview" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:98 +#, python-format +msgid "Primary" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Professional" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Project Management Questions" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.seo.xml:5 +#: view:website:website.layout +#, python-format +msgid "Promote" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.seo.xml:14 +#, python-format +msgid "Promote This Page" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.seo.xml:5 +#: view:website:website.layout +#, python-format +msgid "Promote page on the web" +msgstr "" + +#. module: website +#: field:website,partner_id:0 +msgid "Public Partner" +msgstr "" + +#. module: website +#: field:website,user_id:0 +msgid "Public User" +msgstr "" + +#. module: website +#: view:website:website.publish_management +msgid "Publish" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:83 +#, python-format +msgid "Publish your page by clicking on the <em>'Save'</em> button." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.backend.xml:11 +#: view:website:website.publish_management +#: view:website:website.publish_short +#, python-format +msgid "Published" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Pure Bootstrap" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Purple" +msgstr "" + +#. module: website +#: view:website:website.http_error_debug +msgid "QWeb" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +#: view:website:website.snippets +msgid "Quote" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Quotes Slider" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Readable" +msgstr "" + +#. module: website +#: view:website:website.template_partner_comment +msgid "Recipient" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Red" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "References" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.snippets.xml:36 +#, python-format +msgid "Remove Block" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:37 +#, python-format +msgid "Remove Link" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Remove Slide" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Reset Transformation" +msgstr "" + +#. module: website +#: view:website:website.500 +msgid "Reset selected templates" +msgstr "" + +#. module: website +#: view:website:website.500 +msgid "Reset templates" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.snippets.xml:45 +#, python-format +msgid "Resize" +msgstr "" + +#. module: website +#: field:ir.attachment,datas_big:0 +msgid "Resized file content" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:318 +#, python-format +msgid "Rotation" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Rounded corners" +msgstr "" + +#. module: website +#: model:ir.model,name:website.model_website_seo_metadata +msgid "SEO metadata" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Sample images" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.ace.xml:9 +#: code:addons/website/static/src/xml/website.editor.xml:9 +#: code:addons/website/static/src/xml/website.editor.xml:27 +#: code:addons/website/static/src/xml/website.editor.xml:188 +#: code:addons/website/static/src/xml/website.seo.xml:69 +#, python-format +msgid "Save" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:82 +#, python-format +msgid "Save your modifications" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Screen: 2.5 inch" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Screen: 2.8 inch" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Scroll Speed" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:104 +#, python-format +msgid "Scroll to check rendering and then close the mobile preview." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Second Feature" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Second List" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.snippets.xml:29 +#, python-format +msgid "Select Container Block" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:152 +#, python-format +msgid "Select a Media" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:232 +#, python-format +msgid "Select a Picture" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Select and delete blocks to remove some features." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:53 +#, python-format +msgid "Select the parent container to get the global options of the banner." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Sell Online. Easily." +msgstr "" + +#. module: website +#: view:website:website.template_partner_comment +msgid "Send" +msgstr "" + +#. module: website +#: view:website:website.template_partner_comment +msgid "Send a Message to our Partners" +msgstr "" + +#. module: website +#: view:website:website.contactus +msgid "Send us an email" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Separator" +msgstr "" + +#. module: website +#: field:website.menu,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:357 +#, python-format +msgid "Set a video URL" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Shades of gunmetal gray" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Shadow" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Share" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Sign in" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Silvery and sleek." +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Simplex" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:114 +#, python-format +msgid "Size" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:14 +#, python-format +msgid "Skip It" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Slate" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Slow" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:120 +#, python-format +msgid "Small" +msgstr "" + +#. module: website +#: view:website:website.view_website_form +#: view:website.config.settings:website.view_website_config_settings +msgid "Social Media" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Spacelab" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:320 +#: view:website:website.snippet_options +#, python-format +msgid "Spin" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:14 +#, python-format +msgid "Start Tutorial" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Start with the customer โ find out what they want\n" +" and give it to them." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Starter package" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Static" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Structure" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:81 +#: code:addons/website/static/src/xml/website.editor.xml:316 +#: view:website:website.snippet_options +#, python-format +msgid "Style" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Subtitle" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Subtitle 2" +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Subtitle 3" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:95 +#, python-format +msgid "Success" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Sunflower" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Sweet and cheery" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Tell features the visitor would like to know, not what you'd like to say." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Tell what's the value for the" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.ace.js:234 +#, python-format +msgid "Template ID: %s" +msgstr "" + +#. module: website +#: view:website:website.500 +msgid "Template fallback" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:96 +#, python-format +msgid "Test Your Mobile Version" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Text Block" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Text-Image" +msgstr "" + +#. module: website +#: view:website:website.template_partner_post +msgid "Thank you for posting a message !" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:112 +#, python-format +msgid "The 'Content' menu allows you to add pages or add the top menu." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "The Point of Sale works perfectly on any kind of touch enabled\n" +" device, whether it's multi-touch tablets like an iPad or\n" +" keyboardless resistive touchscreen terminals." +msgstr "" + +#. module: website +#: view:website:website.http_error_debug +msgid "The error occured while rendering the template" +msgstr "" + +#. module: website +#: view:website:website.http_error_debug +msgid "The following error was raised in the website controller" +msgstr "" + +#. module: website +#: help:ir.actions.server,website_url:0 +msgid "The full URL to access the server action through the website." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:258 +#, python-format +msgid "The image could not be deleted because it is used in the\n" +" following pages or views:" +msgstr "" + +#. module: website +#: view:website:website.403 +msgid "The page you were looking for could not be authorized." +msgstr "" + +#. module: website +#: view:website:website.404 +msgid "The page you were looking for could not be found; it is possible you have\n" +" typed the address incorrectly, but it has most probably been removed due\n" +" to the recent website reorganisation." +msgstr "" + +#. module: website +#: view:website:website.500 +msgid "The selected templates will be reset to their factory settings." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "The top of the top" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.xml:34 +#, python-format +msgid "The web site has encountered an error." +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Theme Changed!" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Third Feature" +msgstr "" + +#. module: website +#: view:website:website.page_404 +msgid "This page does not exists, but you can create it as you are administrator of this site." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:13 +#, python-format +msgid "This tutorial will guide you to build your home page. We will start by adding a banner." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Three Columns" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.seo.xml:43 +#: view:website:website.snippets +#, python-format +msgid "Title" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "To add a fourth column, reduce the size of these\n" +" three columns using the right icon of each block.\n" +" Then, duplicate one of the column to create a new\n" +" one as a copy." +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "Toggle navigation" +msgstr "" + +#. module: website +#: model:website.menu,name:website.main_menu +msgid "Top Menu" +msgstr "" + +#. module: website +#: view:website:website.http_error_debug +msgid "Traceback" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Transform" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.translator.xml:12 +#, python-format +msgid "Translate this page" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.translator.xml:25 +#, python-format +msgid "Translated content" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Try a New Theme" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Turquoise" +msgstr "" + +#. module: website +#: field:website,social_twitter:0 +#: field:website.config.settings,social_twitter:0 +msgid "Twitter Account" +msgstr "" + +#. module: website +#: view:website:website.500 +msgid "Type '" +msgstr "" + +#. module: website +#: view:website:website.view_website_form +#: view:website.config.settings:website.view_website_config_settings +msgid "UA-XXXXXXXX-Y" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:61 +#, python-format +msgid "URL or Email Address" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Ubuntu orange and unique font" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Uniform Color" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "United" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Unlimited support" +msgstr "" + +#. module: website +#: view:website:website.publish_management +msgid "Unpublish" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:207 +#, python-format +msgid "Upload an image from your computer" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:208 +#, python-format +msgid "Uploading..." +msgstr "" + +#. module: website +#: field:website.menu,url:0 +msgid "Url" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Various" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Velour" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:322 +#, python-format +msgid "Vertical flip" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Very Fast" +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Very Slow" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:158 +#, python-format +msgid "Video" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.backend.xml:18 +#, python-format +msgid "View in frontend" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:104 +#, python-format +msgid "Warning" +msgstr "" + +#. module: website +#: view:website:website.aboutus +msgid "We are a team of passionate people whose goal is to improve everyone's\n" +" life through disruptive products. We build great products to solve your\n" +" business problems." +msgstr "" + +#. module: website +#: view:website:website.layout +msgid "We are a team of passionate people whose goal is to improve everyone's\n" +" life through disruptive products. We build great products to solve your\n" +" business problems." +msgstr "" + +#. module: website +#: view:website:website.contactus +msgid "We'll do our best to get back to you as soon as possible." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.backend.xml:18 +#: model:ir.actions.act_url,name:website.action_website +#: view:ir.actions.server:website.view_server_action_search_website +#: model:ir.model,name:website.model_website +#: model:ir.ui.menu,name:website.menu_website +#: view:website:website.layout +#: field:website.menu,website_id:0 +#, python-format +msgid "Website" +msgstr "" + +#. module: website +#: model:ir.actions.act_window,name:website.action_module_website +msgid "Website Apps" +msgstr "" + +#. module: website +#: model:ir.actions.act_url,name:website.action_website_homepage +msgid "Website Homepage" +msgstr "" + +#. module: website +#: model:ir.actions.act_window,name:website.action_website_menu +#: model:ir.model,name:website.model_website_menu +msgid "Website Menu" +msgstr "" + +#. module: website +#: model:ir.actions.server,name:website.action_partner_post +msgid "Website Partner Post and Thanks Demo" +msgstr "" + +#. module: website +#: model:ir.actions.server,name:website.action_partner_comment +msgid "Website Partners Comment Form" +msgstr "" + +#. module: website +#: field:ir.actions.server,website_path:0 +msgid "Website Path" +msgstr "" + +#. module: website +#: model:crm.case.section,name:website.salesteam_website_sales +msgid "Website Sales" +msgstr "" + +#. module: website +#: model:ir.actions.act_window,name:website.action_website_configuration +#: model:ir.ui.menu,name:website.menu_website_configuration +#: view:website:website.view_website_form +msgid "Website Settings" +msgstr "" + +#. module: website +#: field:ir.actions.server,website_url:0 +msgid "Website URL" +msgstr "" + +#. module: website +#: model:ir.actions.act_url,name:website.action_website_tutorial +msgid "Website With Tutorial" +msgstr "" + +#. module: website +#: view:website.menu:website.menu_tree +msgid "Website menu" +msgstr "" + +#. module: website +#: field:ir.ui.view,website_meta_description:0 +#: field:website.seo.metadata,website_meta_description:0 +msgid "Website meta description" +msgstr "" + +#. module: website +#: field:ir.ui.view,website_meta_keywords:0 +#: field:website.seo.metadata,website_meta_keywords:0 +msgid "Website meta keywords" +msgstr "" + +#. module: website +#: field:ir.ui.view,website_meta_title:0 +#: field:website.seo.metadata,website_meta_title:0 +msgid "Website meta title" +msgstr "" + +#. module: website +#: view:website:website.view_website_tree +msgid "Websites" +msgstr "" + +#. module: website +#: field:base.language.install,website_ids:0 +msgid "Websites to translate" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Weight: 1.1 ounces" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Weight: 1.2 ounces" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:12 +#, python-format +msgid "Welcome to your website!" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Well" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:89 +#, python-format +msgid "Well done, you created your homepage." +msgstr "" + +#. module: website +#: field:ir.ui.view,page:0 +msgid "Whether this view is a web page template (complete)" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Which hardware does Odoo POS support?" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "While an internet connection is required to start the Point of\n" +" Sale, it will stay operational even after a complete disconnection." +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Wood" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Write a quote here from one of your customers. Quotes are a\n" +" great way to build confidence in your products or services." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Write a quote here from one of your customers. Quotes are a\n" +" great way to build confidence in your products or services." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Write a quote here from one of your customers. Quotes are a\n" +" great way to build confidence in your products or services." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Write a quote here from one of your customers. Quotes are a\n" +" great way to build confidence in your products or services." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Write one or two paragraphs describing your product or\n" +" services. To be successful your content needs to be\n" +" useful to your readers." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Write one or two paragraphs describing your product,\n" +" services or a specific feature. To be successful\n" +" your content needs to be useful to your readers." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Write one sentence to convince visitor about your message." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Write what the customer would like to know," +msgstr "" + +#. module: website +#: view:website:website.snippet_options +msgid "Yellow Green" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Yes." +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "Yeti" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.translator.xml:16 +#, python-format +msgid "You are about to enter the translation mode." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:295 +#, python-format +msgid "You can cancel to return to the edition mode." +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "You'll be able to change the theme at anytime" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/js/website.tour.banner.js:48 +#: view:website:website.snippets +#, python-format +msgid "Your Banner Title" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "Your Website Title" +msgstr "" + +#. module: website +#: field:website,social_youtube:0 +#: field:website.config.settings,social_youtube:0 +msgid "Youtube Account" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:292 +#, python-format +msgid "all" +msgstr "" + +#. module: website +#: view:website:website.http_error_debug +msgid "and evaluating the following expression:" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:325 +#, python-format +msgid "border" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "customer for this feature." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.seo.xml:22 +#, python-format +msgid "describing your page content" +msgstr "" + +#. module: website +#: view:website:website.500 +msgid "factory settings" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "feature, in clear words." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.seo.xml:57 +#, python-format +msgid "how your page will be listed on Google" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:66 +#, python-format +msgid "http://openerp.com" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:214 +#, python-format +msgid "http://openerp.com/logo.png" +msgstr "" + +#. module: website +#: view:website:website.view_website_form +msgid "http://www.linkedin.com/company/odoo" +msgstr "" + +#. module: website +#: view:website.config.settings:website.view_website_config_settings +msgid "http://www.linkedin.com/company/openerp" +msgstr "" + +#. module: website +#: view:website.config.settings:website.view_website_config_settings +msgid "http://www.youtube.com/channel/HCU842OHPPNrQ" +msgstr "" + +#. module: website +#: view:website:website.view_website_form +msgid "https://facebook.com/odoo" +msgstr "" + +#. module: website +#: view:website.config.settings:website.view_website_config_settings +msgid "https://facebook.com/openerp" +msgstr "" + +#. module: website +#: view:website:website.view_website_form +msgid "https://plus.google.com/+Odooapps" +msgstr "" + +#. module: website +#: view:website.config.settings:website.view_website_config_settings +msgid "https://plus.google.com/+openerp" +msgstr "" + +#. module: website +#: view:website:website.view_website_form +msgid "https://twitter.com/odooapps" +msgstr "" + +#. module: website +#: view:website.config.settings:website.view_website_config_settings +msgid "https://twitter.com/openerp" +msgstr "" + +#. module: website +#: view:website:website.view_website_form +msgid "https://www.youtube.com/channel/UCkQPikELWZFLgQNHd73jkdg" +msgstr "" + +#. module: website +#: view:website:website.view_website_form +#: view:website.config.settings:website.view_website_config_settings +msgid "https://youraccount.github.io" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "not what you want to show." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:9 +#: code:addons/website/static/src/xml/website.editor.xml:28 +#: code:addons/website/static/src/xml/website.editor.xml:189 +#: code:addons/website/static/src/xml/website.editor.xml:298 +#: code:addons/website/static/src/xml/website.seo.xml:69 +#: code:addons/website/static/src/xml/website.translator.xml:44 +#, python-format +msgid "or" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.translator.xml:4 +#, python-format +msgid "or Edit Master" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "or try another theme below." +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "per month" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "rounded corner" +msgstr "" + +#. module: website +#: view:website:website.sitemap_index_xml +msgid "sitemap-" +msgstr "" + +#. module: website +#: view:website:website.robots +msgid "sitemap.xml" +msgstr "" + +#. module: website +#: view:website:website.snippets +msgid "style." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.xml:37 +#, python-format +msgid "the classic Odoo interface" +msgstr "" + +#. module: website +#: field:website.converter.test.sub,name:0 +msgid "unknown" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:292 +#, python-format +msgid "unsaved changes will be lost." +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.seo.xml:40 +#, python-format +msgid "using above suggested keywords" +msgstr "" + +#. module: website +#: field:website.config.settings,website_id:0 +msgid "website" +msgstr "" + +#. module: website +#: view:website:website.500 +msgid "yes" +msgstr "" + +#. module: website +#: view:website:website.themes +msgid "your homepage" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:211 +#: code:addons/website/static/src/xml/website.editor.xml:368 +#, python-format +msgid "โ or โ" +msgstr "" + +#. module: website +#. openerp-web +#: code:addons/website/static/src/xml/website.editor.xml:161 +#, python-format +msgid "โ Previous" +msgstr "" + diff --git a/addons/website/models/ir_actions.py b/addons/website/models/ir_actions.py index 1b469adfc05..f186c421b9f 100644 --- a/addons/website/models/ir_actions.py +++ b/addons/website/models/ir_actions.py @@ -44,7 +44,7 @@ class actions_server(osv.Model): def on_change_website_path(self, cr, uid, ids, website_path, xml_id, context=None): values = { - 'website_url': self._compute_website_url(cr, uid, ids[0], website_path, xml_id, context=context) + 'website_url': self._compute_website_url(cr, uid, ids and ids[0] or None, website_path, xml_id, context=context) } return {'value': values} diff --git a/addons/website/models/ir_http.py b/addons/website/models/ir_http.py index e5ffedd556d..cd0e591ef35 100644 --- a/addons/website/models/ir_http.py +++ b/addons/website/models/ir_http.py @@ -82,23 +82,41 @@ class ir_http(orm.AbstractModel): self._authenticate(func.routing['auth']) else: self._auth_method_public() - request.redirect = lambda url: werkzeug.utils.redirect(url_for(url)) + request.redirect = lambda url, code=302: werkzeug.utils.redirect(url_for(url), code) request.website = request.registry['website'].get_current_website(request.cr, request.uid, context=request.context) + langs = [lg[0] for lg in request.website.get_languages()] + path = request.httprequest.path.split('/') if first_pass: - request.lang = request.website.default_lang_code + if request.website_multilang: + # If the url doesn't contains the lang and that it's the first connection, we to retreive the user preference if it exists. + if not path[1] in langs and not request.httprequest.cookies.get('session_id'): + if request.lang not in langs: + # Try to find a similar lang. Eg: fr_BE and fr_FR + short = request.lang.split('_')[0] + langs_withshort = [lg[0] for lg in request.website.get_languages() if lg[0].startswith(short)] + if len(langs_withshort): + request.lang = langs_withshort[0] + else: + request.lang = request.website.default_lang_code + # We redirect with the right language in url + if request.lang != request.website.default_lang_code: + path.insert(1, request.lang) + path = '/'.join(path) or '/' + return request.redirect(path + '?' + request.httprequest.query_string) + else: + request.lang = request.website.default_lang_code + request.context['lang'] = request.lang if not request.context.get('tz'): request.context['tz'] = request.session['geoip'].get('time_zone') if not func: - path = request.httprequest.path.split('/') - langs = [lg[0] for lg in request.website.get_languages()] if path[1] in langs: request.lang = request.context['lang'] = path.pop(1) path = '/'.join(path) or '/' if request.lang == request.website.default_lang_code: # If language is in the url and it is the default language, redirect # to url without language so google doesn't see duplicate content - return request.redirect(path + '?' + request.httprequest.query_string) + return request.redirect(path + '?' + request.httprequest.query_string, code=301) return self.reroute(path) return super(ir_http, self)._dispatch() @@ -139,7 +157,7 @@ class ir_http(orm.AbstractModel): path = '/' + request.lang + path if request.httprequest.query_string: path += '?' + request.httprequest.query_string - return werkzeug.utils.redirect(path) + return werkzeug.utils.redirect(path, code=301) def _serve_attachment(self): domain = [('type', '=', 'binary'), ('url', '=', request.httprequest.path)] diff --git a/addons/website/models/ir_qweb.py b/addons/website/models/ir_qweb.py index 132ee143bd1..9d528c9329b 100644 --- a/addons/website/models/ir_qweb.py +++ b/addons/website/models/ir_qweb.py @@ -288,19 +288,19 @@ class Image(orm.AbstractModel): if options is None: options = {} classes = ['img', 'img-responsive'] + options.get('class', '').split() - url_params = { + url_frags = { + 'classes': ' '.join(itertools.imap(escape, classes)), 'model': record._model._name, - 'field': field_name, 'id': record.id, + 'field': field_name, + 'max_size': '', } - for options_key in ['max_width', 'max_height']: - if options.get(options_key): - url_params[options_key] = options[options_key] - - return ir_qweb.HTMLSafe('<img class="%s" src="/website/image?%s"/>' % ( - ' '.join(itertools.imap(escape, classes)), - werkzeug.urls.url_encode(url_params) - )) + max_width, max_height = options.get('max_width', 0), options.get('max_height', 0) + if max_width or max_height: + url_frags['max_size'] = '/%sx%s' % (max_width, max_height) + + img = '<img class="%(classes)s" src="/website/image/%(model)s/%(id)s/%(field)s%(max_size)s"/>' + return ir_qweb.HTMLSafe(img % url_frags) local_url_re = re.compile(r'^/(?P<module>[^]]+)/static/(?P<rest>.+)$') def from_html(self, cr, uid, model, column, element, context=None): diff --git a/addons/website/models/ir_ui_view.py b/addons/website/models/ir_ui_view.py index 61de01c4b96..2c468e37af8 100644 --- a/addons/website/models/ir_ui_view.py +++ b/addons/website/models/ir_ui_view.py @@ -1,8 +1,5 @@ # -*- coding: utf-8 -*- import copy -import re -import simplejson -import werkzeug from lxml import etree, html @@ -18,9 +15,11 @@ class view(osv.osv): 'website_meta_title': fields.char("Website meta title", size=70, translate=True), 'website_meta_description': fields.text("Website meta description", size=160, translate=True), 'website_meta_keywords': fields.char("Website meta keywords", translate=True), + 'customize_show': fields.boolean("Show As Optional Inherit"), } _defaults = { 'page': False, + 'customize_show': False, } @@ -71,15 +70,14 @@ class view(osv.osv): extensions = view.inherit_children_ids if not options: # only active children - extensions = (v for v in view.inherit_children_ids - if v.application in ('always', 'enabled')) + extensions = (v for v in view.inherit_children_ids if v.active) # Keep options in a deterministic order regardless of their applicability for extension in sorted(extensions, key=lambda v: v.id): for r in self._views_get( cr, uid, extension, # only return optional grandchildren if this child is enabled - options=extension.application in ('always', 'enabled'), + options=extension.active, context=context, root=False): if r not in result: result.append(r) @@ -145,12 +143,14 @@ class view(osv.osv): if not context: context = {} + company = self.pool['res.company'].browse(cr, SUPERUSER_ID, request.website.company_id.id, context=context) + qcontext = dict( context.copy(), website=request.website, url_for=website.url_for, slug=website.slug, - res_company=request.website.company_id, + res_company=company, user_id=self.pool.get("res.users").browse(cr, uid, uid), translatable=context.get('lang') != request.website.default_lang_code, editable=request.website.is_publisher(), @@ -215,3 +215,4 @@ class view(osv.osv): view = self.browse(cr, SUPERUSER_ID, res_id, context=context) if view.model_data_id: view.model_data_id.write({'noupdate': True}) + diff --git a/addons/website/models/website.py b/addons/website/models/website.py index 681d6560c7e..a1414f204bc 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -121,7 +121,8 @@ def slug(value): return "%s-%d" % (slugname, id) -_UNSLUG_RE = re.compile(r'(?:(\w{1,2}|\w[a-z0-9-_]+?\w)-)?(-?\d+)(?=$|/)', re.I) +# NOTE: as the pattern is used as it for the ModelConverter (ir_http.py), do not use any flags +_UNSLUG_RE = re.compile(r'(?:(\w{1,2}|\w[A-Za-z0-9-_]+?\w)-)?(-?\d+)(?=$|/)') def unslug(s): """Extract slug and id from a string. @@ -219,7 +220,10 @@ class website(osv.osv): def page_exists(self, cr, uid, ids, name, module='website', context=None): try: - return self.pool["ir.model.data"].get_object_reference(cr, uid, module, name) + name = (name or "").replace("/page/website.", "").replace("/page/", "") + if not name: + return False + return self.pool["ir.model.data"].get_object_reference(cr, uid, module, name) except: return False @@ -229,7 +233,31 @@ class website(osv.osv): return [(lg.code, lg.name) for lg in website.language_ids] def get_languages(self, cr, uid, ids, context=None): - return self._get_languages(cr, uid, ids[0]) + return self._get_languages(cr, uid, ids[0], context=context) + + def get_alternate_languages(self, cr, uid, ids, req=None, context=None): + langs = [] + if req is None: + req = request.httprequest + default = self.get_current_website(cr, uid, context=context).default_lang_code + uri = req.path + if req.query_string: + uri += '?' + req.query_string + shorts = [] + for code, name in self.get_languages(cr, uid, ids, context=context): + lg_path = ('/' + code) if code != default else '' + lg = code.split('_') + shorts.append(lg[0]) + lang = { + 'hreflang': ('-'.join(lg)).lower(), + 'short': lg[0], + 'href': req.url_root[0:-1] + lg_path + uri, + } + langs.append(lang) + for lang in langs: + if shorts.count(lang['short']) == 1: + lang['hreflang'] = lang['short'] + return langs def get_current_website(self, cr, uid, context=None): # TODO: Select website, currently hard coded @@ -393,9 +421,14 @@ class website(osv.osv): yield page def search_pages(self, cr, uid, ids, needle=None, limit=None, context=None): - return list(itertools.islice( - self.enumerate_pages(cr, uid, ids, query_string=needle, context=context), - limit)) + name = (needle or "").replace("/page/website.", "").replace("/page/", "") + res = [] + for page in self.enumerate_pages(cr, uid, ids, query_string=name, context=context): + if needle in page['loc']: + res.append(page) + if len(res) == limit: + break + return res def kanban(self, cr, uid, ids, model, domain, column, template, step=None, scope=None, orderby=None, context=None): step = step and int(step) or 10 @@ -546,10 +579,8 @@ class website(osv.osv): response.mimetype = Image.MIME[image.format] w, h = image.size - try: - max_w, max_h = int(max_width), int(max_height) - except: - max_w, max_h = (maxint, maxint) + max_w = int(max_width) if max_width else maxint + max_h = int(max_height) if max_height else maxint if w < max_w and h < max_h: response.data = data diff --git a/addons/website/static/src/css/website.css b/addons/website/static/src/css/website.css index 055ac7fb4e3..09d00d6d0b6 100644 --- a/addons/website/static/src/css/website.css +++ b/addons/website/static/src/css/website.css @@ -570,12 +570,15 @@ div.media_iframe_video { div.media_iframe_video iframe { width: 100%; height: 100%; + position: absolute; + margin-left: -50%; } -div.media_iframe_video div { +div.media_iframe_video .css_editable_mode_display { position: absolute; width: 100%; height: 100%; display: none; + z-index: 2; } /* Mobile view */ diff --git a/addons/website/static/src/css/website.sass b/addons/website/static/src/css/website.sass index ba47a12c90f..b9d7dc1fa9d 100644 --- a/addons/website/static/src/css/website.sass +++ b/addons/website/static/src/css/website.sass @@ -99,7 +99,7 @@ header margin-right: 0 !important .css_non_editable_mode_hidden - display: none + display: none !important /* ----- BOOTSTRAP FIX ----- */ @@ -473,11 +473,14 @@ div.media_iframe_video iframe width: 100% height: 100% - div + position: absolute + margin-left: -50% + .css_editable_mode_display position: absolute width: 100% height: 100% display: none + z-index: 2 /* Mobile view */ diff --git a/addons/website/static/src/js/website.editor.js b/addons/website/static/src/js/website.editor.js index 205d8dde076..5ef971f98b0 100644 --- a/addons/website/static/src/js/website.editor.js +++ b/addons/website/static/src/js/website.editor.js @@ -1151,6 +1151,7 @@ make_link: function (url, new_window, label, classes) { }, bind_data: function () { + var self = this; var href = this.element && (this.element.data( 'cke-saved-href') || this.element.getAttribute('href')); var new_window = this.element @@ -1158,8 +1159,13 @@ : false; var text = this.element ? this.element.getText() : ''; if (!text.length) { - var selection = this.editor.getSelection(); - text = selection.getSelectedText(); + if (this.editor) { + text = this.editor.getSelection().getSelectedText(); + } else { + text = this.data.name; + href = this.data.url; + new_window = this.data.new_window; + } } this.$('input#link-text').val(text); @@ -1180,8 +1186,14 @@ this.$('input.email-address').val(match[1]).change(); } if (href && !$control) { - this.$('input.url').val(href).change(); - this.$('input.window-new').closest("div").show(); + this.page_exists(href).then(function (exist) { + if (exist) { + self.$('#link-page').select2('data', {'id': href, 'text': href}); + } else { + self.$('input.url').val(href).change(); + self.$('input.window-new').closest("div").show(); + } + }); } this.preview(); }, diff --git a/addons/website/static/src/js/website.seo.js b/addons/website/static/src/js/website.seo.js index 8d28237f924..7e32a780bf1 100644 --- a/addons/website/static/src/js/website.seo.js +++ b/addons/website/static/src/js/website.seo.js @@ -86,7 +86,7 @@ } }); } - $.getJSON("http://suggest.hp.af.cm/suggest/"+encodeURIComponent(this.root + " "), addSuggestions); + $.getJSON("/website/seo_suggest/" + encodeURIComponent(this.root + " "), addSuggestions); }, }); diff --git a/addons/website/static/src/js/website.snippets.editor.js b/addons/website/static/src/js/website.snippets.editor.js index e734d361da9..116f55713ec 100644 --- a/addons/website/static/src/js/website.snippets.editor.js +++ b/addons/website/static/src/js/website.snippets.editor.js @@ -247,13 +247,14 @@ var self = this; var snipped_event_flag; self.$wrapwrap.on('click', function (event) { - if (snipped_event_flag || !event.srcElement) { + var srcElement = event.srcElement || (event.originalEvent && (event.originalEvent.originalTarget || event.originalEvent.target)); + if (snipped_event_flag || !srcElement) { return; } snipped_event_flag = true; setTimeout(function () {snipped_event_flag = false;}, 0); - var $target = $(event.srcElement); + var $target = $(srcElement); if ($target.parents(".oe_overlay").length) { return; @@ -644,7 +645,7 @@ var styles = this.$target.data("snippet-option-ids") || {}; styles[option_id] = this; this.$target.data("snippet-option-ids", styles); - this.$overlay = this.$target.data('overlay'); + this.$overlay = this.$target.data('overlay') || $('<div>'); this.option= option_id; this.$el = option.$el.find(">li").clone(); this.data = option.$el.data(); @@ -1505,6 +1506,9 @@ new website.editor.MediaDialog(self, self.element).appendTo(document.body); self.BuildingBlock.make_active(false); } + setTimeout(function () { + self.$target.find(".css_editable_mode_display").removeAttr("_moz_abspos"); + },0); }, }); diff --git a/addons/website/static/src/js/website.translator.js b/addons/website/static/src/js/website.translator.js index 674b2f727b9..a1800799c0c 100644 --- a/addons/website/static/src/js/website.translator.js +++ b/addons/website/static/src/js/website.translator.js @@ -130,7 +130,7 @@ node.setAttribute('data-oe-translation-view-id', view_id); var content = node.childNodes[0].data.trim(); var trans = this.translations.filter(function (t) { - return t.res_id === view_id && t.value === content; + return t.res_id === view_id && t.value.trim() === content; }); if (trans.length) { node.setAttribute('data-oe-translation-id', trans[0].id); diff --git a/addons/website/views/themes.xml b/addons/website/views/themes.xml index d1505575b9c..c90b71e8caa 100644 --- a/addons/website/views/themes.xml +++ b/addons/website/views/themes.xml @@ -8,7 +8,7 @@ Use INPUT type 'checkbox' or 'radio' or use OPTION in select box 'data-xmlid' (optional) xml id of the template to add if the input is checked. - You can set a list of xml id separate by comma (all template is enable or + You can set a list of xml id separate by comma (all template is enable or disable in same time) 'data-enable' (optional) to checked one or more HTML ids, or list separate by comma 'data-disable' (optional) to unchecked one or more HTML ids, or list separate by comma @@ -21,10 +21,10 @@ - all related fields are enabled for data-enable - all related fields are disabled for data-disable else unchecked - + HTML apply classes: - 'checked': on the parent label when input is checked - - 'in': on the container (e.g.: bootstrap modal) after added in DOM (removed together + - 'in': on the container (e.g.: bootstrap modal) after added in DOM (removed together out is added) - 'out': on the container 1 second before removed from ths DOM - 'loading': on the container/modal when the new css is loading @@ -51,7 +51,7 @@ <label class=" center-block"> <div class="text-center" style="background-image: url(/website/static/src/img/theme/layout-full.gif); background-size: 100%; line-height: 40px;">FULL WIDTH</div> <input name="layoutvar" type="radio" data-xmlid=""/> - </label> + </label> </td> <td class=" text-center"> <label class=" center-block"> @@ -172,7 +172,7 @@ <!-- Bootstrap Less File layout --> -<template id="option_bootstrap_less" name="option_bootstrap_less" inherit_id="website.theme" optional="disabled"> +<template id="option_bootstrap_less" name="option_bootstrap_less" inherit_id="website.theme" active="False" customize_show="False"> <xpath expr="//link[@id='bootstrap_css']" position="replace"> <link rel="stylesheet" href='/website/static/src/less/import_bootstrap.less'/> <link rel="stylesheet" href='/website/static/src/less/colors.less' t-ignore="true"/> @@ -181,7 +181,7 @@ <!-- Option layout --> -<template id="option_layout_boxed" name="option_layout_boxed" inherit_id="website.theme" optional="disabled"> +<template id="option_layout_boxed" name="option_layout_boxed" inherit_id="website.theme" active="False" customize_show="False"> <xpath expr="//link[last()]" position="after"> <link href="/website/static/src/less/option_layout_boxed.less" rel="stylesheet" type="text/less"/> </xpath> @@ -189,26 +189,26 @@ <!-- Option color --> -<template id="option_color_stone" name="option_color_stone" inherit_id="website.theme" optional="disabled"> +<template id="option_color_stone" name="option_color_stone" inherit_id="website.theme" active="False" customize_show="False"> <xpath expr="//link[last()]" position="after"><link href="/website/static/src/less/option_color_stone.less" rel="stylesheet" type="text/less"/></xpath> </template> -<template id="option_color_emerald" name="option_color_emerald" inherit_id="website.theme" optional="disabled"> +<template id="option_color_emerald" name="option_color_emerald" inherit_id="website.theme" active="False" customize_show="False"> <xpath expr="//link[last()]" position="after"><link href="/website/static/src/less/option_color_emerald.less" rel="stylesheet" type="text/less"/></xpath> </template> -<template id="option_color_cobalt" name="option_color_cobalt" inherit_id="website.theme" optional="disabled"> +<template id="option_color_cobalt" name="option_color_cobalt" inherit_id="website.theme" active="False" customize_show="False"> <xpath expr="//link[last()]" position="after"><link href="/website/static/src/less/option_color_cobalt.less" rel="stylesheet" type="text/less"/></xpath> </template> -<template id="option_color_amethyst" name="option_color_amethyst" inherit_id="website.theme" optional="disabled"> +<template id="option_color_amethyst" name="option_color_amethyst" inherit_id="website.theme" active="False" customize_show="False"> <xpath expr="//link[last()]" position="after"><link href="/website/static/src/less/option_color_amethyst.less" rel="stylesheet" type="text/less"/></xpath> </template> -<template id="option_color_ruby" name="option_color_ruby" inherit_id="website.theme" optional="disabled"> +<template id="option_color_ruby" name="option_color_ruby" inherit_id="website.theme" active="False" customize_show="False"> <xpath expr="//link[last()]" position="after"><link href="/website/static/src/less/option_color_ruby.less" rel="stylesheet" type="text/less"/></xpath> </template> -<template id="option_color_gold" name="option_color_gold" inherit_id="website.theme" optional="disabled"> +<template id="option_color_gold" name="option_color_gold" inherit_id="website.theme" active="False" customize_show="False"> <xpath expr="//link[last()]" position="after"><link href="/website/static/src/less/option_color_gold.less" rel="stylesheet" type="text/less"/></xpath> </template> -<template id="option_font" name="option_font" inherit_id="website.theme" optional="disabled"> +<template id="option_font" name="option_font" inherit_id="website.theme" active="False" customize_show="False"> <xpath expr="//link[last()]" position="after"><link href="/website/static/src/less/option_font.less" rel="stylesheet" type="text/less"/></xpath> </template> diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml index 52322bc0f18..499c790882f 100644 --- a/addons/website/views/website_templates.xml +++ b/addons/website/views/website_templates.xml @@ -78,10 +78,9 @@ <title><t t-esc="title"/></title> <t t-set="languages" t-value="website.get_languages() if website else None"/> - <t t-if="request and request.website_multilang"> - <t t-foreach="languages" t-as="lg"> - <t t-set="force_lang" t-value="lg[0] if website and lg[0] != website.default_lang_code else None"/> - <link rel="alternate" t-att-href="url_for(request.httprequest.path + '?' + keep_query(), lang=force_lang)" t-att-hreflang="lg[0].replace('_', '-').lower()" /> + <t t-if="request and request.website_multilang and website"> + <t t-foreach="website.get_alternate_languages(request.httprequest)" t-as="lang"> + <link rel="alternate" t-att-hreflang="lang['hreflang']" t-att-href="lang['href']"/> </t> </t> @@ -94,10 +93,10 @@ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','//www.google-analytics.com/analytics.js','_gaw'); + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); - _gaw('create',_.str.trim('<t t-esc="website.google_analytics_key"/>')); - _gaw('send','pageview'); + ga('create',_.str.trim('<t t-esc="website.google_analytics_key"/>')); + ga('send','pageview'); </script> </t> </head> @@ -145,22 +144,27 @@ <footer> <div id="footer_container"> </div> - <div class="container mt16 mb8"> - <div class="pull-right" t-ignore="true" t-if="not editable"> - Create a <a href="http://www.odoo.com/page/website-builder">free website</a> with - <a class="label label-danger" href="http://www.odoo.com/page/website-builder">Odoo</a> - </div> - <div class="pull-left text-muted"> - Copyright &copy; <span t-field="res_company.name">Company name</span> - </div> - </div> </footer> </div> </body> </html> </template> -<template id="layout_logo_show" inherit_id="website.layout" optional="enabled" name="Show Logo"> +<template id="layout_footer_copyright" inherit_id="website.layout" name="Footer Copyright"> + <xpath expr="//footer" position="inside"> + <div class="container mt16 mb8"> + <div class="pull-right" t-ignore="true" t-if="not editable"> + Create a <a href="http://www.odoo.com/page/website-builder">free website</a> with + <a class="label label-danger" href="http://www.odoo.com/page/website-builder">Odoo</a> + </div> + <div class="pull-left text-muted"> + Copyright &copy; <span t-field="res_company.name">Company name</span> + </div> + </div> + </xpath> +</template> + +<template id="layout_logo_show" inherit_id="website.layout" customize_show="True" name="Show Logo"> <xpath expr="//header//a[@class='navbar-brand']" position="replace"> <a href="/" class="navbar-brand logo"> <img src="/logo.png"/> @@ -223,7 +227,7 @@ </xpath> </template> -<template id="show_sign_in" optional="enabled" inherit_id="website.layout" name="Show Sign In" groups="base.group_public"> +<template id="show_sign_in" customize_show="True" inherit_id="website.layout" name="Show Sign In" groups="base.group_public"> <xpath expr="//ul[@id='top_menu']" position="inside"> <li class="divider"/> <li> @@ -265,7 +269,7 @@ </xpath> </template> -<template id="footer_default" inherit_id="website.footer_custom" optional="enabled" name="Automatic Footer"> +<template id="footer_default" inherit_id="website.footer_custom" customize_show="True" name="Automatic Footer"> <xpath expr="//div[@id='footer']" position="replace"> <div class="container hidden-print"> <div class="row"> @@ -432,6 +436,66 @@ <!-- Error and special pages --> +<template id="info" name="Odoo Information"> + <t t-call="website.layout"> + <div id="wrap"> + <div class="oe_structure"> + + <section class="container"> + <h1><t t-esc="res_company.name"/> + <small>Odoo Version <t t-raw="version.get('server_version')"/></small> + </h1> + <p> + Information about the <t t-esc="res_company.name"/> instance of Odoo, the <a href="https://www.odoo.com">Open Source ERP</a>. + </p> + + <div class="alert alert-warning alert-dismissable mt16" groups="base.group_website_publisher"> + <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> + <p> + Note: To hide this page, uncheck it from the top Customize menu. + </p> + </div> + <h2>Installed Applications</h2> + <dl class="dl-horizontal" t-foreach="apps" t-as="app"> + <dt> + <a t-att-href="app.website" t-if="app.website"> + <t t-raw="app.shortdesc"/> + </a> + <span t-raw="app.shortdesc" t-if="not app.website"/> + </dt> + <dd> + <span t-raw="app.summary"/> + </dd><dd class="text-muted"> + Technical name: <span t-field="app.name"/>, updated: <span t-field="app.write_date"/>, author: <span t-field="app.author"/> + </dd> + </dl> + + <h2>Installed Modules</h2> + <dl class="dl-horizontal"> + <t t-foreach="modules" t-as="app"> + <dt> + <span t-raw="app.shortdesc"/> + </dt> + <dd t-if="app.summary"> + <span t-raw="app.summary"/> + </dd><dd> + Technical name: <span t-field="app.name"/>, + updated: <span t-field="app.write_date"/> + <t t-if="app.author"> + , author: <span t-field="app.author"/> + </t> + </dd> + </t> + </dl> + + + </section> + + </div> + </div> + </t> +</template> + <template id="default_page"> <t t-call="website.layout"> <div id="wrap" class="oe_structure oe_empty"></div> @@ -648,7 +712,6 @@ <div class="oe_structure"> <h1 class="container mt32"><t t-esc="status_code"/>: <t t-esc="status_message"/></h1> </div> - <div class="container" t-if="views"> <div class="alert alert-danger" t-if="qweb_exception and editable"> <h4>Template fallback</h4> @@ -700,7 +763,7 @@ Sitemap: <t t-esc="url_root"/>sitemap.xml <template id="sitemap_index_xml"><?xml version="1.0" encoding="UTF-8"?> <sitemapindex t-attf-xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> - <sitemap t-foreach="pages" t-as="page"> + <sitemap t-translate="off" t-foreach="pages" t-as="page"> <loc><t t-esc="url_root"/>sitemap-<t t-esc="page"/>.xml</loc> </sitemap> </sitemapindex> |
