diff --git a/.coveragerc b/.coveragerc index 7f6f849cd..b49e59cd5 100644 --- a/.coveragerc +++ b/.coveragerc @@ -5,6 +5,7 @@ branch = True source = wagtail omit = + */south_migrations/* */migrations/* wagtail/vendor/* @@ -31,4 +32,4 @@ exclude_lines = ignore_errors = True [html] -directory = coverage_html_report \ No newline at end of file +directory = coverage_html_report diff --git a/.travis.yml b/.travis.yml index 2245157e7..f54d1392e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,29 +1,38 @@ language: python -# Test matrix -python: - - 2.7 - - 3.2 - - 3.4 env: - - DJANGO_VERSION=Django==1.6.5 - #- DJANGO_VERSION=Django==1.7.0 +# - TOXENV=py26-dj16-postgres + - TOXENV=py26-dj16-sqlite + - TOXENV=py27-dj16-postgres +# - TOXENV=py27-dj16-sqlite + - TOXENV=py32-dj16-postgres +# - TOXENV=py33-dj16-postgres + - TOXENV=py34-dj16-postgres + - TOXENV=py27-dj17-postgres +# - TOXENV=py27-dj17-sqlite +# - TOXENV=py32-dj17-postgres +# - TOXENV=py33-dj17-postgres + - TOXENV=py34-dj17-postgres + # Services services: - redis-server - elasticsearch + # Package installation install: - - python setup.py install - - pip install psycopg2 elasticsearch wand embedly mock python-dateutil - - pip install coveralls + - pip install tox coveralls + # Pre-test configuration before_script: - psql -c 'create database wagtaildemo;' -U postgres + # Run the tests script: - coverage run runtests.py + tox + after_success: coveralls + # Who to notify about build results notifications: email: diff --git a/.tx/config b/.tx/config index 2ae6c184a..b3b2e98be 100644 --- a/.tx/config +++ b/.tx/config @@ -53,4 +53,10 @@ type = PO file_filter = wagtail/wagtailusers/locale//LC_MESSAGES/django.po source_file = wagtail/wagtailusers/locale/en/LC_MESSAGES/django.po source_lang = en -type = PO \ No newline at end of file +type = PO + +[wagtail.wagtailforms] +file_filter = wagtail/wagtailforms/locale//LC_MESSAGES/django.po +source_file = wagtail/wagtailforms/locale/en/LC_MESSAGES/django.po +source_lang = en +type = PO diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 803ad742d..3b8be22e9 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,11 +1,31 @@ Changelog ========= -0.6 (xx.xx.20xx) +0.7 (xx.xx.2014) ~~~~~~~~~~~~~~~~ - * Added {% routablepageurl %} template tag (@timheap) - * Added RoutablePageMixin (@timheap) - * Fix: Page URL generation now returns correct URLs for sites that have the main 'serve' view rooted somewhere other than '/' + * Added interface for choosing focal point on images + * Removed 'content_type' template filter from the project template, as the same thing can be accomplished with self.get_verbose_name|slugify + * Page copy operations now also copy the page revision history + * Page models now support a 'parent_page_types' property in addition to 'subpage types', to restrict the types of page they can be created under + * 'register_snippet' can now be invoked as a decorator + +0.6 (11.09.2014) +~~~~~~~~~~~~~~~~ + * Added 'wagtail start' command and project template + * Added Django 1.7 support + * Added {% routablepageurl %} template tag (Tim Heap) + * Added RoutablePageMixin (Tim Heap) + * MenuItems can now have bundled JavaScript + * Added the register_admin_menu_item hook for registering menu items at startup + * Added version indicator to the admin interface + * Renamed wagtailsearch.indexed to wagtailsearch.index + * Added Russian translation + * Fix: Page URL generation now returns correct URLs for sites that have the main 'serve' view rooted somewhere other than '/' (Nathan Brizendine) + * Fix: Search results in the page chooser now respect the page_type parameter on PageChooserPanel + * Fix: Rendition filenames are now prevented from going over 60 chars, even with a large focal_point_key + * Fix: Child relations that are defined on a model's superclass (such as the base Page model) are now picked up correctly by the page editing form, page copy operations and the replace_text management command + * Fix: (For Django 1.7 support) Do not import South when using Django 1.7 (thenewguy) + * Fix: Tags on images and documents are now committed to the search index immediately on saving 0.5 (01.08.2014) ~~~~~~~~~~~~~~~~ diff --git a/CONTRIBUTORS.rst b/CONTRIBUTORS.rst index b69fdb539..df2db8419 100644 --- a/CONTRIBUTORS.rst +++ b/CONTRIBUTORS.rst @@ -31,6 +31,7 @@ Contributors * Robert Clark * Tim Heap * Nathan Brizendine +* thenewguy Translators =========== @@ -45,7 +46,9 @@ Translators * Greek: Serafeim Papastefanos * Mongolian: Delgermurun Purevkhuu * Polish: Łukasz Bołdys +* Portuguese: Jose Lourenco * Portuguese Brazil: Gilson Filho * Romanian: Dan Braghis +* Russian: ice9, HNKNTA * Spanish: Unai Zalakain, fooflare * Traditional Chinese (Taiwan): wdv4758h diff --git a/README.rst b/README.rst index f06776221..1ea2dcd3d 100644 --- a/README.rst +++ b/README.rst @@ -24,7 +24,7 @@ Wagtail is a Django content management system built originally for the `Royal Co * Support for tree-based content organisation * Optional preview->submit->approve workflow * Fast out of the box. `Varnish `_-friendly if you need it -* A simple `form builder `_ +* A simple `form builder `_ * Optional `static site generation `_ * Excellent `test coverage `_ @@ -32,10 +32,17 @@ Find out more at `wagtail.io `_. Got a question? Ask it on our `Google Group `_. +Who's using it? +~~~~~~~~~~~~~~~ +We've a list of public Wagtail sites here: https://github.com/torchbox/wagtail/wiki/Public-Wagtail-sites + +Got one of your own? Feel free to add it! + + Getting started ~~~~~~~~~~~~~~~ * To get you up and running quickly, we've provided a demonstration site with all the configuration in place, at `github.com/torchbox/wagtaildemo `_; see the `README `_ for installation instructions. -* See the `Getting Started `_ docs for installation (with the demo app) on a fresh Debian/Ubuntu box with production-ready dependencies, on OS X and on a Vagrant box. +* See the `Getting Started `_ docs for installation (with the demo app) on a fresh Debian/Ubuntu box with production-ready dependencies, on OS X and on a Vagrant box. * `Serafeim Papastefanos `_ has written a `tutorial `_ with all the steps to build a simple Wagtail site from scratch. * We've also provided a skeletal django-template to get started on a blank site: https://github.com/torchbox/wagtail-template @@ -45,9 +52,7 @@ Available at `wagtail.readthedocs.org `_ and al Compatibility ~~~~~~~~~~~~~ -Wagtail supports Django 1.6.2+ on Python 2.6, 2.7, 3.2, 3.3 and 3.4. - -Django 1.7 support is in progress pending further release candidate testing. +Wagtail supports Django 1.6.2+ and 1.7.0+ on Python 2.6, 2.7, 3.2, 3.3 and 3.4. Wagtail's dependencies are summarised at `requirements.io `_. @@ -55,8 +60,8 @@ Contributing ~~~~~~~~~~~~ If you're a Python or Django developer, fork the repo and get stuck in! -We suggest you start by checking the `Help develop me! `_ label and the `coding guidelines `_. +We suggest you start by checking the `Help develop me! `_ label and the `coding guidelines `_. Send us a useful pull request and we'll post you a `t-shirt `_. -We also welcome `translations `_ for Wagtail's interface. +We also welcome `translations `_ for Wagtail's interface. diff --git a/docs/conf.py b/docs/conf.py index 64f4ab934..b8ff46164 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -29,6 +29,9 @@ if not on_rtd: # only import and set the theme if we're building docs locally # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.abspath('..')) +# Get Wagtail version +from wagtail.wagtailcore import __version__ + # Autodoc may need to import some models modules which require django settings # be configured os.environ['DJANGO_SETTINGS_MODULE'] = 'wagtail.tests.settings' @@ -70,9 +73,9 @@ copyright = u'2014, Torchbox' # built documents. # # The short X.Y version. -version = '0.5' +version = __version__ # The full version, including alpha/beta/rc tags. -release = '0.5' +release = __version__ # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/core_components/index.rst b/docs/core_components/index.rst index cfa67d366..a28ddf1b7 100644 --- a/docs/core_components/index.rst +++ b/docs/core_components/index.rst @@ -4,6 +4,7 @@ Core components .. toctree:: :maxdepth: 2 + sites pages/index images/index snippets diff --git a/docs/core_components/pages/advanced_topics/routable_page_mixin.rst b/docs/core_components/pages/advanced_topics/routable_page_mixin.rst index 36ca024c3..1fb9dab62 100644 --- a/docs/core_components/pages/advanced_topics/routable_page_mixin.rst +++ b/docs/core_components/pages/advanced_topics/routable_page_mixin.rst @@ -4,7 +4,7 @@ Embedding URL configuration in Pages ==================================== -.. versionadded:: 0.5 +.. versionadded:: 0.6 The ``RoutablePageMixin`` mixin provides a convenient way for a page to respond on multiple sub-URLs with different views. For example, a blog section on a site might provide several different types of index page at URLs like ``/blog/2013/06/``, ``/blog/authors/bob/``, ``/blog/tagged/python/``, all served by the same ``BlogIndex`` page. @@ -68,16 +68,18 @@ The ``RoutablePageMixin`` class from wagtail.wagtailcore.models import Page + class MyPage(RoutablePageMixin, Page): subpage_urls = ( - url(r'^$', 'serve', name='main'), + url(r'^$', 'main', name='main'), url(r'^archive/$', 'archive', name='archive'), + url(r'^archive/(?P[0-9]{4})/$', 'archive', name='archive'), ) - def serve(self, request): + def main(self, request): ... - def archive(self, request): + def archive(self, request, year=None): ... .. automethod:: resolve_subpage @@ -86,7 +88,7 @@ The ``RoutablePageMixin`` class .. code-block:: python - view, args, kwargs = page.resolve_subpage('/past/') + view, args, kwargs = page.resolve_subpage('/archive/') response = view(request, *args, **kwargs) .. automethod:: reverse_subpage @@ -95,7 +97,7 @@ The ``RoutablePageMixin`` class .. code-block:: python - url = page.url + page.reverse_subpage('events_for_year', args=('2014', )) + url = page.url + page.reverse_subpage('archive', kwargs={'year': '2014'}) .. _routablepageurl_template_tag: @@ -103,8 +105,6 @@ The ``RoutablePageMixin`` class The ``routablepageurl`` template tag ==================================== -.. versionadded:: 0.6 - .. currentmodule:: wagtail.contrib.wagtailroutablepage.templatetags.wagtailroutablepage_tags .. autofunction:: routablepageurl diff --git a/docs/core_components/pages/creating_pages.rst b/docs/core_components/pages/creating_pages.rst index 7806274fa..52d187890 100644 --- a/docs/core_components/pages/creating_pages.rst +++ b/docs/core_components/pages/creating_pages.rst @@ -2,40 +2,15 @@ Creating page models ==================== +Wagtail provides a ``Page`` class to represent types of page (a.k.a Content types). Developers should subclass ``Page`` for their own page models. -The Page Class -~~~~~~~~~~~~~~ - -``Page`` uses Django's model interface, so you can include any field type and field options that Django allows. Wagtail provides some fields and editing handlers that simplify data entry in the Wagtail admin interface, so you may want to keep those in mind when deciding what properties to add to your models in addition to those already provided by ``Page``. +``Page`` uses Django's model interface, so you can include any field type and field options that Django allows. Wagtail provides some field types of its own which simplify data entry in the Wagtail admin interface. Wagtail also wraps Django's field types and widgets with its own concept of "Edit Handlers" and "Panels". These further improve the data entry experience. -Built-in Properties of the Page Class -------------------------------------- +An example Wagtail Page Model +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Wagtail provides some properties in the ``Page`` class which are common to most webpages. Since you'll be subclassing ``Page``, you don't have to worry about implementing them. - -Public Properties -````````````````` - - ``title`` (string, required) - Human-readable title for the content - - ``slug`` (string, required) - Machine-readable URL component for this piece of content. The name of the page as it will appear in URLs e.g ``http://domain.com/blog/[my-slug]/`` - - ``seo_title`` (string) - Alternate SEO-crafted title which overrides the normal title for use in the ```` of a page - - ``search_description`` (string) - A SEO-crafted description of the content, used in both internal search indexing and for the meta description read by search engines - -The ``Page`` class actually has alot more to it, but these are probably the only built-in properties you'll need to worry about when creating templates for your models. - - -Anatomy of a Wagtail Model -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -So what does a Wagtail model definition look like? Here's a model representing a typical blog post: +This example represents a typical blog post: .. code-block:: python @@ -58,6 +33,8 @@ So what does a Wagtail model definition look like? Here's a model representing a related_name='+' ) + + BlogPage.content_panels = [ FieldPanel('title', classname="full title"), FieldPanel('date'), @@ -72,17 +49,48 @@ So what does a Wagtail model definition look like? Here's a model representing a ImageChooserPanel('feed_image'), ] -To keep track of your ``Page``-derived models, it might be helpful to include "Page" as the last part of your class name. ``BlogPage`` defines three properties: ``body``, ``date``, and ``feed_image``. These are a mix of basic Django models (``DateField``), Wagtail fields (``RichTextField``), and a pointer to a Wagtail model (``Image``). +.. tip:: + To keep track of ``Page`` models and avoid class name clashes, it can be helpful to suffix model class names with "Page" e.g BlogPage, ListingIndexPage. -Next, the ``content_panels`` and ``promote_panels`` lists define the capabilities and layout of the Wagtail admin page edit interface. The lists are filled with "panels" and "choosers", which will provide a fine-grain interface for inputting the model's content. The ``ImageChooserPanel``, for instance, lets one browse the image library, upload new images, and input image metadata. The ``RichTextField`` is the basic field for creating web-ready website rich text, including text formatting and embedded media like images and video. The Wagtail admin offers other choices for fields, Panels, and Choosers, with the option of creating your own to precisely fit your content without workarounds or other compromises. +In the example above the ``BlogPage`` class defines three properties: ``body``, ``date``, and ``feed_image``. These are a mix of basic Django models (``DateField``), Wagtail fields (``RichTextField``), and a pointer to a Wagtail model (``Image``). + +Below that the ``content_panels`` and ``promote_panels`` lists define the capabilities and layout of the page editing interface in the Wagtail admin. The lists are filled with "panels" and "choosers", which will provide a fine-grain interface for inputting the model's content. The ``ImageChooserPanel``, for instance, lets one browse the image library, upload new images and input image metadata. The ``RichTextField`` is the basic field for creating web-ready website rich text, including text formatting and embedded media like images and video. The Wagtail admin offers other choices for fields, Panels, and Choosers, with the option of creating your own to precisely fit your content without workarounds or other compromises. Your models may be even more complex, with methods overriding the built-in functionality of the ``Page`` to achieve webdev magic. Or, you can keep your models simple and let Wagtail's built-in functionality do the work. -Now that we have a basic idea of how our content is defined, lets look at relationships between pieces of content. + +``Page`` Class Reference +~~~~~~~~~~~~~~~~~~~~~~~~ + +Default fields +-------------- + +Wagtail provides some fields for the ``Page`` class by default, which will be common to all your pages. You don't need to add these fields to your own page models however you do need to allocate them to ``content_panels``, ``promote_panels`` or ``settings_panels``. See above example and for further information on the panels see :ref:`editing-api`. + + ``title`` (string, required) + Human-readable title of the page - what you'd probably use as your ``

`` tag. + + ``slug`` (string, required) + Machine-readable URL component for this page. The name of the page as it will appear in URLs e.g ``http://domain.com/blog/[my-slug]/`` + + ``seo_title`` (string) + Alternate SEO-crafted title, mainly for use in the page ```` tag. + + ``search_description`` (string) + SEO-crafted description of the content, used for internal search indexing, suitable for your page's ``<meta name="description">`` tag. + + ``show_in_menus`` (boolean) + Toggles whether the page should be considered for inclusion in any site-wide menus you create. + + ``go_live_at`` (datetime) + A datetime on which the page should be automatically made published (made publicly accessible) + + ``expire_at`` (datetime) + A datetime on which the page should be unpublished, rendering it inaccessible to the public. -Page Properties and Methods Reference -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Page Attributes, Properties and Methods Reference +------------------------------------------------- In addition to the model fields provided, ``Page`` has many properties and methods that you may wish to reference, use, or override in creating your own models. Those listed here are relatively straightforward to use, but consult the Wagtail source code for a full view of what's possible. @@ -96,6 +104,8 @@ In addition to the model fields provided, ``Page`` has many properties and metho .. autoattribute:: url .. autoattribute:: full_url + + .. automethod:: get_verbose_name .. automethod:: relative_url @@ -121,14 +131,68 @@ In addition to the model fields provided, ``Page`` has many properties and metho .. automethod:: search + .. attribute:: search_fields + + A list of fields to be indexed by the search engine. See Search docs :ref:`wagtailsearch_for_python_developers` -.. _wagtail_site_admin: + .. attribute:: subpage_types -Site + A whitelist of page models which can be created as children of this page type e.g a ``BlogIndex`` page might allow ``BlogPage``, but not ``JobPage`` e.g + + .. code-block:: python + + class BlogIndex(Page): + subpage_types = ['mysite.BlogPage', 'mysite.BlogArchivePage'] + + .. attribute:: password_required_template + + Defines which template file should be used to render the login form for Protected pages using this model. This overrides the default, defined using ``PASSWORD_REQUIRED_TEMPLATE`` in your settings. See :ref:`private_pages` + + +Tips ~~~~ -Django's built-in admin interface provides the way to map a "site" (hostname or domain) to any node in the wagtail tree, using that node as the site's root. +Friendly model names +-------------------- -Access this by going to ``/django-admin/`` and then "Home › Wagtailcore › Sites." To try out a development site, add a single site with the hostname ``localhost`` at port ``8000`` and map it to one of the pieces of content you have created. +Make your model names more friendly to users of Wagtail using Django's internal ``Meta`` class with a ``verbose_name`` e.g -Wagtail's developers plan to move the site settings into the Wagtail admin interface. +.. code-block:: python + + class HomePage(Page): + ... + + class Meta: + verbose_name = "Homepage" + +When users are given a choice of pages to create, the list of page types is generated by splitting your model names on each of their capital letters. Thus a ``HomePage`` model would be named "Home Page" which is a little clumsy. ``verbose_name`` as in the example above, would change this to read "Homepage" which is slightly more conventional. + +The above example also ensures the name of the + +Helpful model descriptions +-------------------------- + +As your site becomes more complex users may require some prompting in deciding which content type to use when creating a new page. Developers can add a description to their Models by extending Django's internal model ``Meta`` class. + +Insert the following once at the top of your ``models.py``: + +.. code-block:: python + + import django.db.models.options as options + options.DEFAULT_NAMES = options.DEFAULT_NAMES + ('description',) + + +Then for each model as necessary, add a description option to the model ``Meta`` class + + +.. code-block:: python + + class HomePage(Page): + ... + + class Meta: + description = "The top level homepage for your site" + verbose_name = "Homepage" + + +(This method can be used to extend the Model Meta class in various ways however Wagtail only supports the addition of a ``description`` option). diff --git a/docs/core_components/pages/editing_api.rst b/docs/core_components/pages/editing_api.rst index 4d346a815..e94792b59 100644 --- a/docs/core_components/pages/editing_api.rst +++ b/docs/core_components/pages/editing_api.rst @@ -1,6 +1,7 @@ +.. _editing-api: -Defining models with the Editing API -==================================== +Displaying fields with the Editing API +====================================== .. note:: This documentation is currently being written. @@ -387,6 +388,8 @@ For information on developing custom hallo.js plugins, see the project's page: h Edit Handler API ~~~~~~~~~~~~~~~~ +.. _admin_hooks: + Admin Hooks ----------- @@ -528,10 +531,19 @@ The available hooks are: url(r'^how_did_you_almost_know_my_name/$', admin_view, name='frank' ), ] -.. _construct_main_menu: +.. _register_admin_menu_item: -``construct_main_menu`` - Add, remove, or alter ``MenuItem`` objects from the Wagtail admin menu. The callable passed to this hook must take a ``request`` object and a list of ``menu_items``; it must return a list of menu items. New items can be constructed from the ``MenuItem`` class by passing in: a ``label`` which will be the text in the menu item, the URL of the admin page you want the menu item to link to (usually by calling ``reverse()`` on the admin view you've set up), CSS class ``name`` applied to the wrapping ``<li>`` of the menu item as ``"menu-{name}"``, CSS ``classnames`` which are used to give the link an icon, and an ``order`` integer which determine's the item's place in the menu. +``register_admin_menu_item`` + .. versionadded:: 0.6 + + Add an item to the Wagtail admin menu. The callable passed to this hook must return an instance of ``wagtail.wagtailadmin.menu.MenuItem``. New items can be constructed from the ``MenuItem`` class by passing in a ``label`` which will be the text in the menu item, and the URL of the admin page you want the menu item to link to (usually by calling ``reverse()`` on the admin view you've set up). Additionally, the following keyword arguments are accepted: + + :name: an internal name used to identify the menu item; defaults to the slugified form of the label. Also applied as a CSS class to the wrapping ``<li>``, as ``"menu-{name}"``. + :classnames: additional classnames applied to the link, used to give it an icon + :attrs: additional HTML attributes to apply to the link + :order: an integer which determines the item's position in the menu + + ``MenuItem`` can be subclassed to customise the HTML output, specify Javascript files required by the menu item, or conditionally show or hide the item for specific requests (for example, to apply permission checks); see the source code (``wagtail/wagtailadmin/menu.py``) for details. .. code-block:: python @@ -540,11 +552,23 @@ The available hooks are: from wagtail.wagtailcore import hooks from wagtail.wagtailadmin.menu import MenuItem + @hooks.register('register_admin_menu_item') + def register_frank_menu_item(): + return MenuItem('Frank', reverse('frank'), classnames='icon icon-folder-inverse', order=10000) + +.. _construct_main_menu: + +``construct_main_menu`` + Called just before the Wagtail admin menu is output, to allow the list of menu items to be modified. The callable passed to this hook will receive a ``request`` object and a list of ``menu_items``, and should modify ``menu_items`` in-place as required. Adding menu items should generally be done through the ``register_admin_menu_item`` hook instead - items added through ``construct_main_menu`` will be missing any associated Javascript includes, and their ``is_shown`` check will not be applied. + + .. code-block:: python + + from wagtail.wagtailcore import hooks + @hooks.register('construct_main_menu') - def construct_main_menu(request, menu_items): - menu_items.append( - MenuItem( 'Frank', reverse('frank'), classnames='icon icon-folder-inverse', order=10000) - ) + def hide_explorer_menu_item_from_frank(request, menu_items): + if request.user.username == 'frank': + menu_items[:] = [item for item in menu_items if item.name != 'explorer'] .. _insert_editor_js: diff --git a/docs/core_components/pages/theory.rst b/docs/core_components/pages/theory.rst index 272ca3d1d..639ee34f2 100644 --- a/docs/core_components/pages/theory.rst +++ b/docs/core_components/pages/theory.rst @@ -1,3 +1,5 @@ +.. _pages-theory: + ====== Theory ====== @@ -50,7 +52,7 @@ A Parent node could provide its own function returning its descendant objects. return events -This example makes sure to limit the returned objects to pieces of content which make sense, specifically ones which have been published through Wagtail's admin interface (``live()``) and are children of this node (``descendant_of(self)``). By setting a ``subpage_types`` class property in your model, you can specify which models are allowed to be set as children, but Wagtail will allow any ``Page``-derived model by default. Regardless, it's smart for a parent model to provide an index filtered to make sense. +This example makes sure to limit the returned objects to pieces of content which make sense, specifically ones which have been published through Wagtail's admin interface (``live()``) and are children of this node (``descendant_of(self)``). By setting a ``subpage_types`` class property in your model, you can specify which models are allowed to be set as children, and by setting a ``parent_page_types`` class property, you can specify which models are allowed to be parents of this page model. Wagtail will allow any ``Page``-derived model by default. Regardless, it's smart for a parent model to provide an index filtered to make sense. Leaves @@ -69,7 +71,7 @@ The model for the leaf could provide a function that traverses the tree in the o # Find closest ancestor which is an event index return self.get_ancestors().type(EventIndexPage).last() -If defined, ``subpage_types`` will also limit the parent models allowed to contain a leaf. If not, Wagtail will allow any combination of parents and leafs to be associated in the Wagtail tree. Like with index pages, it's a good idea to make sure that the index is actually of the expected model to contain the leaf. +If defined, ``subpage_types`` and ``parent_page_types`` will also limit the parent models allowed to contain a leaf. If not, Wagtail will allow any combination of parents and leafs to be associated in the Wagtail tree. Like with index pages, it's a good idea to make sure that the index is actually of the expected model to contain the leaf. Other Relationships diff --git a/docs/core_components/pages/writing_templates.rst b/docs/core_components/pages/writing_templates.rst index 9374cca32..3d1380115 100644 --- a/docs/core_components/pages/writing_templates.rst +++ b/docs/core_components/pages/writing_templates.rst @@ -112,13 +112,16 @@ For example: <!-- or a square thumbnail: --> {% image self.photo fill-80x80 %} -In the above syntax ``[image]`` is the Django object refering to the image. If your page model defined a field called "photo" then ``[image]`` would probably be ``self.photo``. The ``[resize-rule]`` defines how the image is to be resized when inserted into the page; various resizing methods are supported, to cater for different usage cases (e.g. lead images that span the whole width of the page, or thumbnails to be cropped to a fixed size). +In the above syntax example ``[image]`` is the Django object refering to the image. If your page model defined a field called "photo" then ``[image]`` would probably be ``self.photo``. The ``[resize-rule]`` defines how the image is to be resized when inserted into the page; various resizing methods are supported, to cater for different usage cases (e.g. lead images that span the whole width of the page, or thumbnails to be cropped to a fixed size). Note that a space separates ``[image]`` and ``[resize-rule]``, but the resize rule must not contain spaces. + The available resizing methods are: + .. glossary:: + ``max`` (takes two dimensions) @@ -182,6 +185,7 @@ The available resizing methods are: Leaves the image at its original size - no resizing is performed. + .. Note:: Wagtail does not allow deforming or stretching images. Image dimension ratios will always be kept. Wagtail also *does not support upscaling*. Small images forced to appear at larger sizes will "max out" at their their native dimensions. @@ -218,6 +222,15 @@ Wagtail can assign the image data to another variable using Django's ``as`` synt height="{{ tmp_photo.height }}" alt="{{ tmp_photo.alt }}" class="my-custom-class" /> +This syntax exposes the underlying image "Rendition" (``tmp_photo``) to the developer. A "Rendition" contains just the information specific to the way you've requested to format the image i.e dimensions and source URL. + +If your site defines a custom image model using ``AbstractImage``, then any additional fields you add to an image e.g a copyright holder, are **not** part of the image *rendition*, they're part of the image *model*. + +Therefore in the above example, if you'd added the field ``foo`` to your AbstractImage you'd access it using ``{{ self.photo.foo }}`` not ``{{ tmp_photo.foo }}``. + +(Due to the links in the database between renditions and their parent image, you could also access it as ``{{ tmp_photo.image.foo }}`` but this is clearly confusing.) + + .. Note:: The image property used for the ``src`` attribute is actually ``image.url``, not ``image.src``. diff --git a/docs/core_components/search/for_python_developers.rst b/docs/core_components/search/for_python_developers.rst index b99795e7b..b254a2e1f 100644 --- a/docs/core_components/search/for_python_developers.rst +++ b/docs/core_components/search/for_python_developers.rst @@ -10,6 +10,8 @@ For Python developers Basic usage =========== +By default using the :ref:`wagtailsearch_backends_database`, Wagtail's search will only index the ``title`` field of pages. + All searches are performed on Django QuerySets. Wagtail provides a ``search`` method on the queryset for all page models: .. code-block:: python @@ -35,20 +37,20 @@ Indexing extra fields The ``indexed_fields`` configuration format was replaced with ``search_fields`` +.. versionchanged:: 0.6 -.. note:: - - Searching on extra fields with the database backend is not currently supported. + The ``wagtail.wagtailsearch.indexed`` module was renamed to ``wagtail.wagtailsearch.index`` -Fields need to be explicitly added to the search configuration in order for you to be able to search/filter on them. +.. warning:: -You can add new fields to the search index by overriding the ``search_fields`` property and appending a list of extra ``SearchField``/``FilterField`` objects to it. - -The default value of ``search_fields`` (as set in ``Page``) indexes the ``title`` field as a ``SearchField`` and some other generally useful fields as ``FilterField`` rules. + Indexing extra fields is only supported with ElasticSearch as your backend. If you're using the database backend, any other fields you define via ``search_fields`` will be ignored. -Quick example +Fields must be explicitly added to the ``search_fields`` property of your ``Page``-derived model, in order for you to be able to search/filter on them. This is done by overriding ``search_fields`` to append a list of extra ``SearchField``/``FilterField`` objects to it. + + +Example ------------- This creates an ``EventPage`` model with two fields ``description`` and ``date``. ``description`` is indexed as a ``SearchField`` and ``date`` is indexed as a ``FilterField`` @@ -56,15 +58,15 @@ This creates an ``EventPage`` model with two fields ``description`` and ``date`` .. code-block:: python - from wagtail.wagtailsearch import indexed + from wagtail.wagtailsearch import index class EventPage(Page): description = models.TextField() date = models.DateField() search_fields = Page.search_fields + ( # Inherit search_fields from Page - indexed.SearchField('description'), - indexed.FilterField('date'), + index.SearchField('description'), + index.FilterField('date'), ) @@ -72,7 +74,7 @@ This creates an ``EventPage`` model with two fields ``description`` and ``date`` >>> EventPage.objects.filter(date__gt=timezone.now()).search("Christmas") -``indexed.SearchField`` +``index.SearchField`` ----------------------- These are added to the search index and are used for performing full-text searches on your models. These would usually be text fields. @@ -86,7 +88,7 @@ Options - **es_extra** (dict) - This field is to allow the developer to set or override any setting on the field in the ElasticSearch mapping. Use this if you want to make use of any ElasticSearch features that are not yet supported in Wagtail. -``indexed.FilterField`` +``index.FilterField`` ----------------------- These are added to the search index but are not used for full-text searches. Instead, they allow you to run filters on your search results. @@ -107,7 +109,7 @@ One use for this is indexing ``get_*_display`` methods Django creates automatica .. code-block:: python - from wagtail.wagtailsearch import indexed + from wagtail.wagtailsearch import index class EventPage(Page): IS_PRIVATE_CHOICES = ( @@ -119,10 +121,10 @@ One use for this is indexing ``get_*_display`` methods Django creates automatica search_fields = Page.search_fields + ( # Index the human-readable string for searching - indexed.SearchField('get_is_private_display'), + index.SearchField('get_is_private_display'), # Index the boolean value for filtering - indexed.FilterField('is_private'), + index.FilterField('is_private'), ) @@ -131,25 +133,25 @@ Indexing non-page models Any Django model can be indexed and searched. -To do this, inherit from ``indexed.Indexed`` and add some ``search_fields`` to the model. +To do this, inherit from ``index.Indexed`` and add some ``search_fields`` to the model. .. code-block:: python - from wagtail.wagtailsearch import indexed + from wagtail.wagtailsearch import index - class Book(models.Model, indexed.Indexed): + class Book(models.Model, index.Indexed): title = models.CharField(max_length=255) genre = models.CharField(max_length=255, choices=GENRE_CHOICES) author = models.ForeignKey(Author) published_date = models.DateTimeField() search_fields = ( - indexed.SearchField('title', partial_match=True, boost=10), - indexed.SearchField('get_genre_display'), + index.SearchField('title', partial_match=True, boost=10), + index.SearchField('get_genre_display'), - indexed.FilterField('genre'), - indexed.FilterField('author'), - indexed.FilterField('published_date'), + index.FilterField('genre'), + index.FilterField('author'), + index.FilterField('published_date'), ) # As this model doesn't have a search method in its QuerySet, we have to call search directly on the backend diff --git a/docs/core_components/sites.rst b/docs/core_components/sites.rst new file mode 100644 index 000000000..89c490b65 --- /dev/null +++ b/docs/core_components/sites.rst @@ -0,0 +1,10 @@ +.. _wagtail_site_admin: + +Sites +===== + +Django's built-in admin interface provides the way to map a "site" (hostname or domain) to any node in the wagtail tree, using that node as the site's root. See :ref:`pages-theory`. + +Access this by going to ``/django-admin/`` and then "Home › Wagtailcore › Sites." To try out a development site, add a single site with the hostname ``localhost`` at port ``8000`` and map it to one of the pieces of content you have created. + +Wagtail's developers plan to move the site settings into the Wagtail admin interface. diff --git a/docs/core_components/snippets.rst b/docs/core_components/snippets.rst index 8b2a2d557..33d20bdc4 100644 --- a/docs/core_components/snippets.rst +++ b/docs/core_components/snippets.rst @@ -4,7 +4,7 @@ Snippets ======== -Snippets are pieces of content which do not necessitate a full webpage to render. They could be used for making secondary content, such as headers, footers, and sidebars, editable in the Wagtail admin. Snippets are models which do not inherit the ``Page`` class and are thus not organized into the Wagtail tree, but can still be made editable by assigning panels and identifying the model as a snippet with ``register_snippet()``. +Snippets are pieces of content which do not necessitate a full webpage to render. They could be used for making secondary content, such as headers, footers, and sidebars, editable in the Wagtail admin. Snippets are models which do not inherit the ``Page`` class and are thus not organized into the Wagtail tree, but can still be made editable by assigning panels and identifying the model as a snippet with the ``register_snippet`` class decorator. Snippets are not search-able or order-able in the Wagtail admin, so decide carefully if the content type you would want to build into a snippet might be more suited to a page. @@ -19,9 +19,10 @@ Here's an example snippet from the Wagtail demo website: from wagtail.wagtailadmin.edit_handlers import FieldPanel from wagtail.wagtailsnippets.models import register_snippet - + ... + @register_snippet class Advert(models.Model): url = models.URLField(null=True, blank=True) text = models.CharField(max_length=255) @@ -34,11 +35,9 @@ Here's an example snippet from the Wagtail demo website: def __unicode__(self): return self.text - register_snippet(Advert) - The ``Advert`` model uses the basic Django model class and defines two properties: text and url. The editing interface is very close to that provided for ``Page``-derived models, with fields assigned in the panels property. Snippets do not use multiple tabs of fields, nor do they provide the "save as draft" or "submit for moderation" features. -``register_snippet(Advert)`` tells Wagtail to treat the model as a snippet. The ``panels`` list defines the fields to show on the snippet editing page. It's also important to provide a string representation of the class through ``def __unicode__(self):`` so that the snippet objects make sense when listed in the Wagtail admin. +``@register_snippet`` tells Wagtail to treat the model as a snippet. The ``panels`` list defines the fields to show on the snippet editing page. It's also important to provide a string representation of the class through ``def __unicode__(self):`` so that the snippet objects make sense when listed in the Wagtail admin. Including Snippets in Template Tags ----------------------------------- diff --git a/docs/editor_manual/index.rst b/docs/editor_manual/index.rst index b7b5c84f7..e7b213903 100644 --- a/docs/editor_manual/index.rst +++ b/docs/editor_manual/index.rst @@ -1,3 +1,5 @@ +.. _editor_manual: + Using Wagtail: an Editor's guide ================================ diff --git a/docs/getting_started/creating_your_project.rst b/docs/getting_started/creating_your_project.rst new file mode 100644 index 000000000..18aaa89be --- /dev/null +++ b/docs/getting_started/creating_your_project.rst @@ -0,0 +1,148 @@ +===================== +Creating your project +===================== + +.. contents:: Contents + :local: + + +The ``wagtail start`` command +============================= + +The easiest way to start a new project with wagtail is to use the ``wagtail start`` command. This command is installed into your environment when you install Wagtail (see: :doc:`installation`). + +The command works the same way as ``django-admin.py startproject`` except that the produced project is pre-configured for Wagtail. It also contains some useful extras which we will look at in the next section. + +To create a project, cd into a directory where you would like to create your project and run the following command: + + .. code-block:: bash + + wagtail start mysite + + +The project +=========== + +Lets look at what ``wagtail start`` created:: + + mysite/ + core/ + static/ + templates/ + base.html + 404.html + 500.html + mysite/ + settings/ + base.py + dev.py + production.py + manage.py + vagrant/ + provision.sh + Vagrantfile + readme.rst + requirements.txt + + +The "core" app +---------------- + +Location: ``/mysite/core/`` + +This app is here to help get you started quicker by providing a ``HomePage`` model with migrations to create one when you first setup your app. + + +Default templates and static files +---------------------------------- + +Location: ``/mysite/core/templates/`` and ``/mysite/core/static/`` + +The templates directory contains ``base.html``, ``404.html`` and ``500.html``. These files are very commonly needed on Wagtail sites to they have been added into the template. + +The static directory contains an empty javascript and sass file. Wagtail uses ``django-compressor`` for compiling and compressing static files. For more information, see: `Django Compressor Documentation <http://django-compressor.readthedocs.org/en/latest/>`_ + + +Vagrant configuration +--------------------- + +Location: ``/Vagrantfile`` and ``/vagrant/`` + +If you have Vagrant installed, these files let you easily setup a development environment with PostgreSQL and Elasticsearch inside a virtual machine. + +See below section `With Vagrant`_ for info on how to use Vagrant in development + +If you do not want to use Vagrant, you can just delete these files. + + +Django settings +--------------- + +Location: ``/mysite/mysite/settings/`` + +The Django settings files are split up into ``base.py``, ``dev.py``, ``production.py`` and ``local.py``. + +.. glossary:: + + ``base.py`` + + This file is for global settings that will be used in both development and production. Aim to keep most of your configuration in this file. + + ``dev.py`` + + This file is for settings that will only be used by developers. For example: ``DEBUG = True`` + + ``production.py`` + + This file is for settings that will only run on a production server. For example: ``DEBUG = False`` + + ``local.py`` + + This file is used for settings local to a particular machine. This file should never be tracked by a version control system. + + .. tip:: + + On production servers, we recommend that you only store secrets in local.py (such as API keys and passwords). This can save you headaches in the future if you are ever trying to debug why a server is behaving badly. If you are using multiple servers which need different settings then we recommend that you create a different ``production.py`` file for each one. + + +Getting it running +================== + + +With Vagrant +------------ + +This is the easiest way to get the project running. Vagrant runs your project locally in a virtual machine so you can use PostgreSQL and Elasticsearch in development without having to install them on your host machine. If you haven't yet installed Vagrant, see: `Installing Vagrant <https://docs.vagrantup.com/v2/installation/>`_. + + +To setup the Vagrant box, run the following commands + + .. code-block:: bash + + vagrant up # This may take some time on first run + vagrant ssh + # within the ssh session + dj createsuperuser + djrun + + +If you now visit http://localhost:8111 you should see a very basic "Welcome to your new Wagtail site!" page. + +You can browse the Wagtail admin interface at: http://localhost:8111/admin + +You can read more about how Vagrant works at: https://docs.vagrantup.com/v2/ + + +.. topic:: The ``dj`` and ``djrun`` aliases + + When using Vagrant, the Wagtail template provides two aliases: ``dj`` and ``djrun`` which can be used in the ``vagrant ssh`` session. + + .. glossary:: + + ``dj`` + + This is short for ``python manage.py`` so you can use it to reduce typing. For example: ``python manage.py syncdb`` becomes ``dj syncdb``. + + ``djrun`` + + This is short for ``python manage.py runserver 0.0.0.0:8000``. This is used to run the testing server which is accessible from ``http://localhost:8111`` (note that the port number gets changed by Vagrant) diff --git a/docs/getting_started/index.rst b/docs/getting_started/index.rst new file mode 100644 index 000000000..c614276e8 --- /dev/null +++ b/docs/getting_started/index.rst @@ -0,0 +1,9 @@ +Getting started +=============== + + +.. toctree:: + :maxdepth: 2 + + installation + creating_your_project diff --git a/docs/getting_started/installation.rst b/docs/getting_started/installation.rst new file mode 100644 index 000000000..294144bcb --- /dev/null +++ b/docs/getting_started/installation.rst @@ -0,0 +1,166 @@ +============ +Installation +============ + +Before you start +================ + +A basic Wagtail setup can be installed on your machine with only a few prerequisites - see `A basic Wagtail installation`_. However, there are various optional components that will improve the performance and feature set of Wagtail, and our recommended software stack includes the PostgreSQL database, ElasticSearch (for free-text searching), the OpenCV library (for image feature detection), and Redis (as a cache and message queue backend). This would be a lot to install in one go, and for this reason, we provide a virtual machine image, for use with `Vagrant <http://www.vagrantup.com/>`__, with all of these components ready installed. + +Whether you just want to try out the demo site, or you're ready to dive in and create a Wagtail site with all bells and whistles enabled, we strongly recommend the Vagrant approach. Nevertheless, if you're the sort of person who balks at the idea of downloading a whole operating system just to run a web app, we've got you covered too. Start from `A basic Wagtail installation`_ below. + + +The demo site (a.k.a. the no-installation route) +================================================ + +We provide a demo site containing a set of standard templates and page types - if you're new to Wagtail, this is the best way to try it out and familiarise yourself with how Wagtail works from the point of view of an editor. + +If you're happy to use Vagrant, and you just want to set up the Wagtail demo site, or any other pre-existing Wagtail site that ships with Vagrant support, you don't need to install Wagtail at all. Install `Vagrant <http://www.vagrantup.com/>`__ and `VirtualBox <https://www.virtualbox.org/>`__, and run:: + + git clone https://github.com/torchbox/wagtaildemo.git + cd wagtaildemo + vagrant up + vagrant ssh + + +Then, within the SSH session:: + + ./manage.py createsuperuser + ./manage.py runserver 0.0.0.0:8000 + + +This will make the demo site available on your host machine at the URL http://localhost:8111/ - you can access the Wagtail admin interface at http://localhost:8111/admin/ . Further instructions can be found at :ref:`editor_manual`. + +Once you’ve experimented with the demo site and are ready to build your own site, it's time to install Wagtail on your host machine. Even if you intend to do all further Wagtail work within Vagrant, installing the Wagtail package on your host machine will provide the ``wagtail start`` command that sets up the initial file structure for your project. + + +A basic Wagtail installation +============================ + +This provides everything you need to create a new Wagtail project from scratch, containing no page definitions or templates other than a basic homepage as a starting point for building your site. (For a gentler introduction to Wagtail, you may wish to try out the demo site first!) + +You will need Python's `pip <http://pip.readthedocs.org/en/latest/installing.html>`__ package manager. We also recommend `virtualenvwrapper <http://virtualenvwrapper.readthedocs.org/en/latest/>`_ so that you can manage multiple independent Python environments for different projects - although this is not strictly necessary if you intend to do all your development under Vagrant. + +Wagtail is based on the Django web framework and various other Python libraries. Most of these are pure Python and will install automatically using ``pip``, but there are a few native-code components that require further attention: + + * libsass-python (for compiling SASS stylesheets) - requires a C++ compiler and the Python development headers. + * Pillow (for image processing) - additionally requires libjpeg and zlib. + +On Debian or Ubuntu, these can be installed with the command:: + + sudo apt-get install python-dev python-pip g++ libjpeg62-dev zlib1g-dev + +With these dependencies installed, Wagtail can then be installed with the command:: + + pip install wagtail + +(or if you're not using virtualenvwrapper: ``sudo pip install wagtail``.) + +You will now be able to run the following command to set up an initial file structure for your Wagtail project (replace ``myprojectname`` with a name of your choice):: + + wagtail start myprojectname + +**Without Vagrant:** Run the following steps to complete setup of your project (the ``migrate`` step will prompt you to set up a superuser account):: + + cd myprojectname + pip install -r requirements.txt + python manage.py syncdb + python manage.py migrate + python manage.py runserver + +Your site is now accessible at http://localhost:8000, with the admin backend available at http://localhost:8000/admin/ . + +**With Vagrant:** Run the following steps to bring up the virtual machine and complete setup of your project (the ``createsuperuser`` step will prompt you to set up a superuser account):: + + cd myprojectname + vagrant up + vagrant ssh + ./manage.py createsuperuser + ./manage.py runserver 0.0.0.0:8000 + +Your site is now accessible at http://localhost:8111, with the admin backend available at http://localhost:8111/admin/ . + +Optional extras +=============== + +For the best possible performance and feature set, we recommend setting up the following components. If you're using Vagrant, these are provided as part of the virtual machine image and just need to be enabled in the settings for your project. If you're using Wagtail without Vagrant, this will involve additional installation. + + +PostgreSQL +---------- +PostgreSQL is a mature database engine suitable for production use, and is recommended by the Django development team. Non-Vagrant users will need to install the PostgreSQL development headers in addition to Postgres itself; on Debian or Ubuntu, this can be done with the following command:: + + sudo apt-get install postgresql postgresql-server-dev-all + +To enable Postgres for your project, uncomment the ``psycopg2`` line from your project's requirements.txt, and in ``myprojectname/settings/base.py``, uncomment the DATABASES section for PostgreSQL, commenting out the SQLite one instead. Then run:: + + pip install -r requirements.txt + createdb -Upostgres myprojectname + ./manage.py syncdb + ./manage.py migrate + +This assumes that your PostgreSQL instance is configured to allow you to connect as the 'postgres' user - if not, you'll need to adjust the ``createdb`` line and the database settings in settings/base.py accordingly. + + +ElasticSearch +------------- +Wagtail integrates with ElasticSearch to provide full-text searching of your content, both within the Wagtail interface and on your site's front-end. If ElasticSearch is not available, Wagtail will fall back to much more basic search functionality using database queries. ElasticSearch is pre-installed as part of the Vagrant virtual machine image; non-Vagrant users can use the `debian.sh <https://github.com/torchbox/wagtail/blob/master/scripts/install/debian.sh>`__ or `ubuntu.sh <https://github.com/torchbox/wagtail/blob/master/scripts/install/ubuntu.sh>`__ installation scripts as a guide. + +To enable ElasticSearch for your project, uncomment the ``elasticsearch`` line from your project's requirements.txt, and in ``myprojectname/settings/base.py``, uncomment the WAGTAILSEARCH_BACKENDS section. Then run:: + + pip install -r requirements.txt + ./manage.py update_index + + +Image feature detection +----------------------- +Wagtail can use the OpenCV computer vision library to detect faces and other features in images, and use this information to select the most appropriate centre point when cropping the image. OpenCV is pre-installed as part of the Vagrant virtual machine image, and Vagrant users can enable this by setting ``WAGTAILIMAGES_FEATURE_DETECTION_ENABLED`` to True in ``myprojectname/settings/base.py``. For installation outside of Vagrant, see :ref:`image_feature_detection`. + + +Alternative installation methods +================================ + +Ubuntu +------ + +If you have a fresh instance of Ubuntu 13.04 or later, you can install Wagtail, +along with a demonstration site containing a set of standard templates and page +types, in one step. As the root user:: + + curl -O https://wagtail.io/ubuntu.sh; bash ubuntu.sh + +This script installs all the dependencies for a production-ready Wagtail site, +including PostgreSQL, Redis, Elasticsearch, Nginx and uwsgi. We +recommend you check through the script before running it, and adapt it according +to your deployment preferences. The canonical version is at +`github.com/torchbox/wagtail/blob/master/scripts/install/ubuntu.sh +<https://github.com/torchbox/wagtail/blob/master/scripts/install/ubuntu.sh>`_. + + +Debian +------ + +If you have a fresh instance of Debian 7, you can install Wagtail, along with a +demonstration site containing a set of standard templates and page types, in one +step. As the root user:: + + curl -O https://wagtail.io/debian.sh; bash debian.sh + +This script installs all the dependencies for a production-ready Wagtail site, +including PostgreSQL, Redis, Elasticsearch, Nginx and uwsgi. We +recommend you check through the script before running it, and adapt it according +to your deployment preferences. The canonical version is at +`github.com/torchbox/wagtail/blob/master/scripts/install/debian.sh +<https://github.com/torchbox/wagtail/blob/master/scripts/install/debian.sh>`_. + +Docker +------ + +`@oyvindsk <https://github.com/oyvindsk>`_ has built a Dockerfile for the Wagtail demo. Simply run:: + + docker run -p 8000:8000 -d oyvindsk/wagtail-demo + +then access the site at http://your-ip:8000 and the admin +interface at http://your-ip:8000/admin using admin / test. + +See https://index.docker.io/u/oyvindsk/wagtail-demo/ for more details. diff --git a/docs/gettingstarted.rst b/docs/gettingstarted.rst deleted file mode 100644 index 04905700e..000000000 --- a/docs/gettingstarted.rst +++ /dev/null @@ -1,169 +0,0 @@ -Getting Started ---------------- - -On Ubuntu -~~~~~~~~~ - -If you have a fresh instance of Ubuntu 13.04 or later, you can install Wagtail, -along with a demonstration site containing a set of standard templates and page -types, in one step. As the root user:: - - curl -O https://wagtail.io/ubuntu.sh; bash ubuntu.sh - -This script installs all the dependencies for a production-ready Wagtail site, -including PostgreSQL, Redis, Elasticsearch, Nginx and uwsgi. We -recommend you check through the script before running it, and adapt it according -to your deployment preferences. The canonical version is at -`github.com/torchbox/wagtail/blob/master/scripts/install/ubuntu.sh -<https://github.com/torchbox/wagtail/blob/master/scripts/install/ubuntu.sh>`_. - -Once you've experimented with the demo app and are ready to build your pages via your own app you can `remove the demo app`_ if you choose. - -On Debian -~~~~~~~~~ - -If you have a fresh instance of Debian 7, you can install Wagtail, along with a -demonstration site containing a set of standard templates and page types, in one -step. As the root user:: - - curl -O https://wagtail.io/debian.sh; bash debian.sh - -This script installs all the dependencies for a production-ready Wagtail site, -including PostgreSQL, Redis, Elasticsearch, Nginx and uwsgi. We -recommend you check through the script before running it, and adapt it according -to your deployment preferences. The canonical version is at -`github.com/torchbox/wagtail/blob/master/scripts/install/debian.sh -<https://github.com/torchbox/wagtail/blob/master/scripts/install/debian.sh>`_. - -Once you've experimented with the demo app and are ready to build your pages via your own app you can `remove the demo app`_ if you choose. - -On OS X -~~~~~~~ - -Install `pip <http://pip.readthedocs.org/en/latest/installing.html>`__ and `virtualenvwrapper <http://virtualenvwrapper.readthedocs.org/en/latest/>`_ if you don't have them already. Then, in your terminal:: - - mkvirtualenv wagtaildemo - git clone https://github.com/torchbox/wagtaildemo.git - cd wagtaildemo - pip install -r requirements/dev.txt - -Edit ``wagtaildemo/settings/base.py``, changing ENGINE to django.db.backends.sqlite3 and NAME to wagtail.db. Finally, setup the database and run the local server:: - - ./manage.py syncdb - ./manage.py migrate - ./manage.py runserver - -Using Vagrant -~~~~~~~~~~~~~ - -We provide a Vagrant box which includes all the dependencies for a fully-fledged -Wagtail environment, bundled with a demonstration site containing a set of -standard templates and page types. If you have a good internet connection we recommend -the following steps, which will download the 650MB Vagrant box and make a running -Wagtail instance available as the basis for your new site: - -- Install `Vagrant <http://www.vagrantup.com/>`_ 1.1+ -- Clone the demonstration site, create the Vagrant box and initialise Wagtail:: - - git clone https://github.com/torchbox/wagtaildemo.git - cd wagtaildemo - vagrant up - vagrant ssh - # within the SSH session - ./manage.py createsuperuser - ./manage.py update_index - ./manage.py runserver 0.0.0.0:8000 - -- This will make the app accessible on the host machine as - `localhost:8111 <http://localhost:8111>`_ - you can access the Wagtail admin - interface at `localhost:8111/admin <http://localhost:8111/admin>`_. The codebase - is located on the host machine, exported to the VM as a shared folder; code - editing and Git operations will generally be done on the host. - -Using Docker -~~~~~~~~~~~~ - -`@oyvindsk <https://github.com/oyvindsk>`_ has built a Dockerfile for the Wagtail demo. Simply run:: - - docker run -p 8000:8000 -d oyvindsk/wagtail-demo - -then access the site at http://your-ip:8000 and the admin -interface at http://your-ip:8000/admin using admin / test. - -See https://index.docker.io/u/oyvindsk/wagtail-demo/ for more details. - -Other platforms -~~~~~~~~~~~~~~~ - -If you're not using Ubuntu or Debian, or if you prefer to install Wagtail manually, -use the following steps: - -Required dependencies -===================== - -- `pip <https://github.com/pypa/pip>`__ -- `libjpeg <http://ijg.org/>`_ -- `libxml2 <http://xmlsoft.org/>`_ -- `libxslt <http://xmlsoft.org/XSLT/>`_ -- `zlib <http://www.zlib.net/>`_ - -Optional dependencies -===================== - -- `PostgreSQL`_ -- `Elasticsearch`_ -- `Redis`_ - -Installation -============ - -With PostgreSQL running (and configured to allow you to connect as the -'postgres' user - if not, you'll need to adjust the ``createdb`` line -and the database settings in wagtaildemo/settings/base.py accordingly), -run the following commands:: - - git clone https://github.com/torchbox/wagtaildemo.git - cd wagtaildemo - pip install -r requirements/dev.txt - createdb -Upostgres wagtaildemo - ./manage.py syncdb - ./manage.py migrate - ./manage.py runserver - -SQLite support -============== - -SQLite is supported as an alternative to PostgreSQL - update the DATABASES setting -in wagtaildemo/settings/base.py to use 'django.db.backends.sqlite3', as you would -with a regular Django project. - -.. _Wagtail: http://wagtail.io -.. _VirtualBox: https://www.virtualbox.org/ -.. _the Wagtail codebase: https://github.com/torchbox/wagtail -.. _PostgreSQL: http://www.postgresql.org -.. _Elasticsearch: http://www.elasticsearch.org -.. _Redis: http://redis.io/ - -_`Remove the demo app` -~~~~~~~~~~~~~~~~~~~~~~ - -Once you've experimented with the demo app and are ready to build your pages via your own app you can remove the demo app if you choose. - -``PROJECT_ROOT`` should be where your project is located (e.g. /usr/local/django) and ``PROJECT`` is the name of your project (e.g. mywagtail):: - - export PROJECT_ROOT=/usr/local/django - export PROJECT=mywagtail - cd $PROJECT_ROOT/$PROJECT - ./manage.py sqlclear demo | psql -Upostgres $PROJECT -f - - psql -Upostgres $PROJECT << EOF - BEGIN; - DELETE FROM wagtailcore_site WHERE root_page_id IN (SELECT id FROM wagtailcore_page WHERE content_type_id IN (SELECT id FROM django_content_type where app_label='demo')); - DELETE FROM wagtailcore_page WHERE content_type_id IN (SELECT id FROM django_content_type where app_label='demo'); - DELETE FROM auth_permission WHERE content_type_id IN (SELECT id FROM django_content_type where app_label='demo'); - DELETE FROM django_content_type WHERE app_label='demo'; - DELETE FROM wagtailimages_rendition; - DELETE FROM wagtailimages_image; - COMMIT; - EOF - rm -r demo media/images/* media/original_images/* - perl -pi -e"s/('demo',|WAGTAILSEARCH_RESULTS_TEMPLATE)/#\1/" $PROJECT/settings/base.py diff --git a/docs/howto/index.rst b/docs/howto/index.rst index 01ce20d13..c9826e4d5 100644 --- a/docs/howto/index.rst +++ b/docs/howto/index.rst @@ -8,4 +8,5 @@ How to settings deploying performance + multilingual_sites contributing diff --git a/docs/howto/multilingual_sites.rst b/docs/howto/multilingual_sites.rst new file mode 100644 index 000000000..1d73a18fb --- /dev/null +++ b/docs/howto/multilingual_sites.rst @@ -0,0 +1,146 @@ +=========================== +Creating multilingual sites +=========================== + +This tutorial will show you a method of creating multilingual sites in Wagtail. + +Currently, Wagtail doesn't support multiple languages in the same page. The recommended way of creating multilingual websites in Wagtail at the moment is to create one section of your website for each language. + +For example:: + + / + en/ + about/ + contact/ + fr/ + about/ + contact/ + + +The root page +============= + +The root page (``/``) should detect the browsers language and forward them to the correct language homepage (``/en/``, ``/fr/``). This page should sit at the site root (where the homepage would normally be). + +We must set Djangos ``LANGUAGES`` setting so we don't redirect non English/French users to pages that don't exist. + + +.. code-block:: python + + # settings.py + LANGUAGES = ( + ('en', _("English")), + ('fr', _("French")), + ) + + # models.py + from django.utils import translation + from django.http import HttpResponseRedirect + + from wagtail.wagtailcore.models import Page + + + class LanguageRedirectionPage(Page): + + def serve(self, request): + # This will only return a language that is in the LANGUAGES Django setting + language = translation.get_language_from_request(request) + + return HttpResponseRedirect(self.url + language + '/') + + +Linking pages together +====================== + +It may be useful to link different versions of the same page together to allow the user to easily switch between languages. But we don't want to increse the burdon on the editor too much so ideally, editors should only need to link one of the pages to the other versions and the links between the other versions should be created implicitly. + +As this behaviour needs to be added to all page types that would be translated, its best to put this behaviour in a mixin. + +Heres an example of how this could be implemented (with English as the main language and French/Spanish as alternative languages): + +.. code-block:: python + + class TranslatablePageMixin(models.Model): + # One link for each alternative language + # These should only be used on the main language page (english) + french_link = models.ForeignKey(Page, null=True, on_delete=models.SET_NULL, blank=True, related_name='+') + spanish_link = models.ForeignKey(Page, null=True, on_delete=models.SET_NULL, blank=True, related_name='+') + + def get_language(self): + """ + This returns the language code for this page. + """ + # Look through ancestors of this page for its language homepage + # The language homepage is located at depth 3 + language_homepage = self.get_ancestors(inclusive=True).get(depth=3) + + # The slug of language homepages should always be set to the language code + return language_homepage.slug + + + # Method to find the main language version of this page + # This works by reversing the above links + + def english_page(self): + """ + This finds the english version of this page + """ + language = self.get_language() + + if language == 'en': + return self + elif language == 'fr': + return type(self).objects.filter(french_link=self).first().specific + elif language == 'es': + return type(self).objects.filter(spanish_link=self).first().specific + + + # We need a method to find a version of this page for each alternative language. + # These all work the same way. They firstly find the main version of the page + # (english), then from there they can just follow the link to the correct page. + + def french_page(self): + """ + This finds the french version of this page + """ + english_page = self.english_page() + + if english_page and english_page.french_link: + return english_page.french_link.specific + + def spanish_page(self): + """ + This finds the spanish version of this page + """ + english_page = self.english_page() + + if english_page and english_page.spanish_link: + return english_page.spanish_link.specific + + class Meta: + abstract = True + + + class AboutPage(Page, TranslatablePageMixin): + ... + + + class ContactPage(Page, TranslatablePageMixin): + ... + + +You can make use of these methods in your template by doing: + +.. code-block:: django + + {% if self.english_page and self.get_language != 'en' %} + <a href="{{ self.english_page.url }}">{% trans "View in English" %}</a> + {% endif %} + + {% if self.french_page and self.get_language != 'fr' %} + <a href="{{ self.french_page.url }}">{% trans "View in French" %}</a> + {% endif %} + + {% if self.spanish_page and self.get_language != 'es' %} + <a href="{{ self.spanish_page.url }}">{% trans "View in Spanish" %}</a> + {% endif %} diff --git a/docs/howto/performance.rst b/docs/howto/performance.rst index 68c642520..57bac2131 100644 --- a/docs/howto/performance.rst +++ b/docs/howto/performance.rst @@ -13,7 +13,7 @@ We have tried to minimise external dependencies for a working installation of Wa Cache ----- -We recommend `Redis <http://redis.io/>`_ as a fast, persistent cache. Install Redis through package manager and enable it as a cache backend:: +We recommend `Redis <http://redis.io/>`_ as a fast, persistent cache. Install Redis through your package manager (on Debian or Ubuntu: ``sudo apt-get install redis-server``), add ``django-redis-cache`` to your requirements.txt, and enable it as a cache backend:: CACHES = { 'default': { @@ -25,7 +25,22 @@ We recommend `Redis <http://redis.io/>`_ as a fast, persistent cache. Install Re } } -Without a persistent cache, Wagtail will recreate all compressable assets at each server start, e.g. when any files change under ```./manage.py runserver```. +Without a persistent cache, Wagtail will recreate all compressable assets at each server start, e.g. when any files change under ``./manage.py runserver``. + + +Sending emails in the background using Celery +--------------------------------------------- + +Various actions in the Wagtail admin backend can trigger notification emails - for example, submitting a page for moderation. In Wagtail's default configuration, these are sent as part of the page request/response cycle, which means that web server threads can get tied up for long periods if many emails are being sent. To avoid this, Wagtail can be configured to do this as a background task, using `Celery <http://www.celeryproject.org/>`_ as a task queue. To install Celery, add ``django-celery`` to your requirements.txt. A sample configuration, using Redis as the queue backend, would look like:: + + import djcelery + + djcelery.setup_loader() + + CELERY_SEND_TASK_ERROR_EMAILS = True + BROKER_URL = 'redis://' + +See the Celery documentation for instructions on running the worker process in development or production. Search diff --git a/docs/index.rst b/docs/index.rst index 0ce7b02fa..7c56fc827 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -3,12 +3,12 @@ Welcome to Wagtail's documentation Wagtail is a modern, flexible CMS, built on Django. -It supports Django 1.6.2+ on Python 2.6, 2.7, 3.2, 3.3 and 3.4. Django 1.7 support is in progress pending further release candidate testing. +It supports Django 1.6.2+ and 1.7rc3+ on Python 2.6, 2.7, 3.2, 3.3 and 3.4. .. toctree:: :maxdepth: 3 - gettingstarted + getting_started/index core_components/index contrib_components/index howto/index diff --git a/docs/releases/0.4.rst b/docs/releases/0.4.rst index 0929935f6..4438af87e 100644 --- a/docs/releases/0.4.rst +++ b/docs/releases/0.4.rst @@ -158,6 +158,8 @@ The scheduled publishing mechanism adds an ``expired`` field to wagtailcore.Page 'expired': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +.. _04_deprecated_features: + Deprecated features =================== diff --git a/docs/releases/0.6.rst b/docs/releases/0.6.rst index 321c43730..3dc6f92f3 100644 --- a/docs/releases/0.6.rst +++ b/docs/releases/0.6.rst @@ -1,6 +1,6 @@ -========================================== -Wagtail 0.6 release notes - IN DEVELOPMENT -========================================== +========================= +Wagtail 0.6 release notes +========================= .. contents:: :local: @@ -10,15 +10,50 @@ Wagtail 0.6 release notes - IN DEVELOPMENT What's new ========== +Project template and start project command +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Wagtail now has a basic project template built in to make starting new projects much easier. + +To use it, install ``wagtail`` onto your machine and run ``wagtail start project_name``. + +Django 1.7 support +~~~~~~~~~~~~~~~~~~ + +Wagtail can now be used with Django 1.7. + + Minor features ~~~~~~~~~~~~~~ * A new template tag has been added for reversing URLs inside routable pages. See :ref:`routablepageurl_template_tag`. * RoutablePage can now be used as a mixin. See :class:`wagtail.contrib.wagtailroutablepage.models.RoutablePageMixin`. + * MenuItems can now have bundled JavaScript + * Added the ``register_admin_menu_item`` hook for registering menu items at startup. See :ref:`admin_hooks` + * Added a version indicator into the admin interface (hover over the wagtail to see it) + * Added Russian translation + Bug fixes ~~~~~~~~~ * Page URL generation now returns correct URLs for sites that have the main 'serve' view rooted somewhere other than '/'. + * Search results in the page chooser now respect the page_type parameter on PageChooserPanel. + * Rendition filenames are now prevented from going over 60 chars, even with a large focal_point_key. + * Child relations that are defined on a model's superclass (such as the base Page model) are now picked up correctly by the page editing form, page copy operations and the replace_text management command. + * Tags on images and documents are now committed to the search index immediately on saving. + Upgrade considerations ====================== + +All features deprecated in 0.4 have been removed +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +See: :ref:`04_deprecated_features` + + +Deprecated features +=================== + + * The ``wagtail.wagtailsearch.indexed`` module has been renamed to ``wagtail.wagtailsearch.index`` + diff --git a/docs/releases/0.7.rst b/docs/releases/0.7.rst new file mode 100644 index 000000000..20fafbe04 --- /dev/null +++ b/docs/releases/0.7.rst @@ -0,0 +1,34 @@ +========================================== +Wagtail 0.7 release notes - IN DEVELOPMENT +========================================== + +.. contents:: + :local: + :depth: 1 + + +What's new +========== + +New interface for choosing images focal point +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +Minor features +~~~~~~~~~~~~~~ + + * The ``content_type`` template filter has been removed from the project template, as the same thing can be accomplished with ``self.get_verbose_name|slugify``. + * Page copy operations now also copy the page revision history. + * Page models now support a ``parent_page_types`` property in addition to ``subpage types``, to restrict the types of page they can be created under. + * ``register_snippet`` can now be invoked as a decorator. + +Bug fixes +~~~~~~~~~ + + +Upgrade considerations +====================== + + +Deprecated features +=================== diff --git a/docs/releases/index.rst b/docs/releases/index.rst index a9760c239..fce87c573 100644 --- a/docs/releases/index.rst +++ b/docs/releases/index.rst @@ -5,6 +5,7 @@ Release notes :maxdepth: 1 roadmap + 0.7 0.6 0.5 0.4.1 diff --git a/requirements-dev.txt b/requirements-dev.txt index 6bc561b0c..82d3e09ab 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -3,3 +3,4 @@ coverage==3.7.1 flake8==2.2.1 mock==1.0.1 python-dateutil==2.2 +pytz==2014.7 diff --git a/runtests.py b/runtests.py index 3a7399233..7961d2e19 100755 --- a/runtests.py +++ b/runtests.py @@ -2,6 +2,7 @@ import sys import os import shutil +import warnings from django.core.management import execute_from_command_line @@ -12,6 +13,9 @@ os.environ['DJANGO_SETTINGS_MODULE'] = 'wagtail.tests.settings' def runtests(): + # Don't ignore DeprecationWarnings + warnings.simplefilter('default', DeprecationWarning) + argv = sys.argv[:1] + ['test'] + sys.argv[1:] try: execute_from_command_line(argv) diff --git a/scripts/install/ubuntu.sh b/scripts/install/ubuntu.sh index 45adaa5f2..805cafd55 100644 --- a/scripts/install/ubuntu.sh +++ b/scripts/install/ubuntu.sh @@ -36,7 +36,7 @@ aptitude update aptitude -y install git python-pip nginx postgresql redis-server aptitude -y install postgresql-server-dev-all python-dev libjpeg62-dev -perl -pi -e "s/^(local\s+all\s+postgres\s+)peer$/\1trust/" /etc/postgresql/9.1/main/pg_hba.conf +perl -pi -e "s/^(local\s+all\s+postgres\s+)peer$/\1trust/" /etc/postgresql/9.3/main/pg_hba.conf service postgresql reload aptitude -y install openjdk-7-jre-headless diff --git a/setup.py b/setup.py index 4d22021ed..f3a711f5b 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,8 @@ #!/usr/bin/env python -import sys +import sys, os + +from wagtail.wagtailcore import __version__ try: @@ -9,26 +11,29 @@ except ImportError: from distutils.core import setup -# Hack to prevent stupid TypeError: 'NoneType' object is not callable error on -# exit of python setup.py test # in multiprocessing/util.py _exit_function when -# running python setup.py test (see -# http://www.eby-sarna.com/pipermail/peak/2010-May/003357.html) +# Hack to prevent "TypeError: 'NoneType' object is not callable" error +# in multiprocessing/util.py _exit_function when setup.py exits +# (see http://www.eby-sarna.com/pipermail/peak/2010-May/003357.html) try: import multiprocessing except ImportError: pass +# Disable parallel builds, because Pillow 2.5.3 does some crazy monkeypatching of +# the build process on multicore systems, which breaks installation of libsass +os.environ['MAX_CONCURRENCY'] = '1' + PY3 = sys.version_info[0] == 3 install_requires = [ - "Django>=1.6.2,<1.7", + "Django>=1.6.2,<1.8", "South==1.0.0", "django-compressor>=1.4", "django-libsass>=0.2", - "django-modelcluster>=0.3", - "django-taggit==0.12.0", + "django-modelcluster>=0.4", + "django-taggit==0.12.1", "django-treebeard==2.0", "Pillow>=2.3.0", "beautifulsoup4>=4.3.2", @@ -47,7 +52,7 @@ if not PY3: setup( name='wagtail', - version='0.5', + version=__version__, description='A Django content management system focused on flexibility and user experience', author='Matthew Westcott', author_email='matthew.westcott@torchbox.com', @@ -74,5 +79,9 @@ setup( 'Topic :: Internet :: WWW/HTTP :: Site Management', ], install_requires=install_requires, + entry_points=""" + [console_scripts] + wagtail=wagtail.bin.wagtail:main + """, zip_safe=False, ) diff --git a/tox.ini b/tox.ini index 5e68ac99a..dbb8a5620 100644 --- a/tox.ini +++ b/tox.ini @@ -1,11 +1,41 @@ [deps] -dj16= - Django>=1.6,<1.7 +base = + South==1.0.0 + django-compressor>=1.4 + django-libsass>=0.2 + django-modelcluster>=0.3 + django-taggit==0.12.1 + django-treebeard==2.0 + Pillow>=2.3.0 + beautifulsoup4>=4.3.2 + html5lib==0.999 + Unidecode>=0.04.14 + six==1.7.3 + requests==2.3.0 elasticsearch==1.1.0 mock==1.0.1 python-dateutil==2.2 + pytz==2014.7 + Embedly + coverage + +dj16 = + Django>=1.6,<1.7 + + +dj17 = + https://github.com/django/django/archive/stable/1.7.x.zip#egg=django + +py2 = + unicodecsv>=0.9.4 + +py3 = + [tox] +skipsdist = True +usedevelop = True + envlist = py26-dj16-postgres, py26-dj16-sqlite, @@ -13,7 +43,16 @@ envlist = py27-dj16-sqlite, py32-dj16-postgres, py33-dj16-postgres, - py34-dj16-postgres + py34-dj16-postgres, + + py27-dj17-postgres, + py27-dj17-sqlite, + py32-dj17-postgres, + py32-dj17-sqlite, + py33-dj17-postgres, + py33-dj17-sqlite, + py34-dj17-postgres, + py34-dj17-sqlite # mysql not currently supported # (wagtail.wagtailimages.tests.TestImageEditView currently fails with a @@ -28,11 +67,13 @@ envlist = [testenv] -commands=./runtests.py +commands=coverage run runtests.py [testenv:py26-dj16-postgres] basepython=python2.6 deps = + {[deps]base} + {[deps]py2} {[deps]dj16} psycopg2==2.5.3 setenv = @@ -41,6 +82,8 @@ setenv = [testenv:py26-dj16-sqlite] basepython=python2.6 deps = + {[deps]base} + {[deps]py2} {[deps]dj16} setenv = DATABASE_ENGINE=django.db.backends.sqlite3 @@ -48,6 +91,8 @@ setenv = [testenv:py26-dj16-mysql] basepython=python2.6 deps = + {[deps]base} + {[deps]py2} {[deps]dj16} MySQL-python==1.2.5 setenv = @@ -57,6 +102,8 @@ setenv = [testenv:py27-dj16-postgres] basepython=python2.7 deps = + {[deps]base} + {[deps]py2} {[deps]dj16} psycopg2==2.5.3 setenv = @@ -65,6 +112,8 @@ setenv = [testenv:py27-dj16-sqlite] basepython=python2.7 deps = + {[deps]base} + {[deps]py2} {[deps]dj16} setenv = DATABASE_ENGINE=django.db.backends.sqlite3 @@ -72,6 +121,8 @@ setenv = [testenv:py27-dj16-mysql] basepython=python2.7 deps = + {[deps]base} + {[deps]py2} {[deps]dj16} MySQL-python==1.2.5 setenv = @@ -81,6 +132,8 @@ setenv = [testenv:py32-dj16-postgres] basepython=python3.2 deps = + {[deps]base} + {[deps]py3} {[deps]dj16} psycopg2==2.5.3 setenv = @@ -89,6 +142,8 @@ setenv = [testenv:py32-dj16-sqlite] basepython=python3.2 deps = + {[deps]base} + {[deps]py3} {[deps]dj16} setenv = DATABASE_ENGINE=django.db.backends.sqlite3 @@ -96,6 +151,8 @@ setenv = [testenv:py33-dj16-postgres] basepython=python3.3 deps = + {[deps]base} + {[deps]py3} {[deps]dj16} psycopg2==2.5.3 setenv = @@ -104,6 +161,8 @@ setenv = [testenv:py33-dj16-sqlite] basepython=python3.3 deps = + {[deps]base} + {[deps]py3} {[deps]dj16} setenv = DATABASE_ENGINE=django.db.backends.sqlite3 @@ -111,6 +170,8 @@ setenv = [testenv:py34-dj16-postgres] basepython=python3.4 deps = + {[deps]base} + {[deps]py3} {[deps]dj16} psycopg2==2.5.3 setenv = @@ -119,6 +180,95 @@ setenv = [testenv:py34-dj16-sqlite] basepython=python3.4 deps = + {[deps]base} + {[deps]py3} {[deps]dj16} setenv = DATABASE_ENGINE=django.db.backends.sqlite3 + +[testenv:py27-dj17-postgres] +basepython=python2.7 +deps = + {[deps]base} + {[deps]py2} + {[deps]dj17} + psycopg2==2.5.3 +setenv = + DATABASE_ENGINE=django.db.backends.postgresql_psycopg2 + +[testenv:py27-dj17-sqlite] +basepython=python2.7 +deps = + {[deps]base} + {[deps]py2} + {[deps]dj17} +setenv = + DATABASE_ENGINE=django.db.backends.sqlite3 + +[testenv:py27-dj17-mysql] +basepython=python2.7 +deps = + {[deps]base} + {[deps]py2} + {[deps]dj17} + MySQL-python==1.2.5 +setenv = + DATABASE_ENGINE=django.db.backends.mysql + DATABASE_USER=wagtail + +[testenv:py32-dj17-postgres] +basepython=python3.2 +deps = + {[deps]base} + {[deps]py3} + {[deps]dj17} + psycopg2==2.5.3 +setenv = + DATABASE_ENGINE=django.db.backends.postgresql_psycopg2 + +[testenv:py32-dj17-sqlite] +basepython=python3.2 +deps = + {[deps]base} + {[deps]py3} + {[deps]dj17} +setenv = + DATABASE_ENGINE=django.db.backends.sqlite3 + +[testenv:py33-dj17-postgres] +basepython=python3.3 +deps = + {[deps]base} + {[deps]py3} + {[deps]dj17} + psycopg2==2.5.3 +setenv = + DATABASE_ENGINE=django.db.backends.postgresql_psycopg2 + +[testenv:py33-dj17-sqlite] +basepython=python3.3 +deps = + {[deps]base} + {[deps]py3} + {[deps]dj17} +setenv = + DATABASE_ENGINE=django.db.backends.sqlite3 + +[testenv:py34-dj17-postgres] +basepython=python3.4 +deps = + {[deps]base} + {[deps]py3} + {[deps]dj17} + psycopg2==2.5.3 +setenv = + DATABASE_ENGINE=django.db.backends.postgresql_psycopg2 + +[testenv:py34-dj17-sqlite] +basepython=python3.4 +deps = + {[deps]base} + {[deps]py3} + {[deps]dj17} +setenv = + DATABASE_ENGINE=django.db.backends.sqlite3 diff --git a/wagtail/bin/__init__.py b/wagtail/bin/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/wagtail/bin/wagtail.py b/wagtail/bin/wagtail.py new file mode 100644 index 000000000..0987f8084 --- /dev/null +++ b/wagtail/bin/wagtail.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python +from __future__ import print_function, absolute_import + +import os +import subprocess +import errno +import sys + +from optparse import OptionParser + + +def create_project(parser, options, args): + # Validate args + if len(args) < 2: + parser.error("Please specify a name for your wagtail installation") + elif len(args) > 2: + parser.error("Too many arguments") + + project_name = args[1] + + # Make sure given name is not already in use by another python package/module. + try: + __import__(project_name) + except ImportError: + pass + else: + parser.error("'%s' conflicts with the name of an existing " + "Python module and cannot be used as a project " + "name. Please try another name." % project_name) + + # Make sure directory does not already exist + if os.path.exists(project_name): + print('A directory called %(project_name)s already exists. \ + Please choose another name for your wagtail project or remove the existing directory.' % {'project_name': project_name}) + sys.exit(errno.EEXIST) + + print("Creating a wagtail project called %(project_name)s" % {'project_name': project_name}) + + # Create the project from the wagtail template using startapp + + # First find the path to wagtail + import wagtail + wagtail_path = os.path.dirname(wagtail.__file__) + template_path = os.path.join(wagtail_path, 'project_template') + + # Call django-admin startproject + result = subprocess.call([ + 'django-admin.py', 'startproject', + '--template=' + template_path, + '--name=Vagrantfile', '--ext=html,rst', + project_name + ]) + + if result == 0: + print("Success! %(project_name)s is created" % {'project_name': project_name}) + + +COMMANDS = { + 'start': create_project, +} + +def main(): + # Parse options + parser = OptionParser(usage="Usage: %prog start project_name") + (options, args) = parser.parse_args() + + # Find command + try: + command = args[0] + except IndexError: + parser.print_help() + return + + if command in COMMANDS: + COMMANDS[command](parser, options, args) + else: + parser.error("Unrecognised command: " + command) + +if __name__ == "__main__": + main() diff --git a/wagtail/contrib/wagtailfrontendcache/__init__.py b/wagtail/contrib/wagtailfrontendcache/__init__.py index e69de29bb..2cd2d60cb 100644 --- a/wagtail/contrib/wagtailfrontendcache/__init__.py +++ b/wagtail/contrib/wagtailfrontendcache/__init__.py @@ -0,0 +1 @@ +default_app_config = 'wagtail.contrib.wagtailfrontendcache.apps.WagtailFrontendCacheAppConfig' diff --git a/wagtail/contrib/wagtailfrontendcache/apps.py b/wagtail/contrib/wagtailfrontendcache/apps.py new file mode 100644 index 000000000..2fa34a0da --- /dev/null +++ b/wagtail/contrib/wagtailfrontendcache/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class WagtailFrontendCacheAppConfig(AppConfig): + name = 'wagtail.contrib.wagtailfrontendcache' + label = 'wagtailfrontendcache' + verbose_name = "Wagtail frontend cache" diff --git a/wagtail/contrib/wagtailmedusa/__init__.py b/wagtail/contrib/wagtailmedusa/__init__.py index e69de29bb..5d5f8ce96 100644 --- a/wagtail/contrib/wagtailmedusa/__init__.py +++ b/wagtail/contrib/wagtailmedusa/__init__.py @@ -0,0 +1 @@ +default_app_config = 'wagtail.contrib.wagtailmedusa.apps.WagtailMedusaAppConfig' diff --git a/wagtail/contrib/wagtailmedusa/apps.py b/wagtail/contrib/wagtailmedusa/apps.py new file mode 100644 index 000000000..46143d137 --- /dev/null +++ b/wagtail/contrib/wagtailmedusa/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class WagtailMedusaAppConfig(AppConfig): + name = 'wagtail.contrib.wagtailmedusa' + label = 'wagtailmedusa' + verbose_name = "Wagtail medusa" diff --git a/wagtail/contrib/wagtailroutablepage/__init__.py b/wagtail/contrib/wagtailroutablepage/__init__.py index e69de29bb..286151ff0 100644 --- a/wagtail/contrib/wagtailroutablepage/__init__.py +++ b/wagtail/contrib/wagtailroutablepage/__init__.py @@ -0,0 +1 @@ +default_app_config = 'wagtail.contrib.wagtailroutablepage.apps.WagtailRoutablePageAppConfig' diff --git a/wagtail/contrib/wagtailroutablepage/apps.py b/wagtail/contrib/wagtailroutablepage/apps.py new file mode 100644 index 000000000..c3b9c9573 --- /dev/null +++ b/wagtail/contrib/wagtailroutablepage/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class WagtailRoutablePageAppConfig(AppConfig): + name = 'wagtail.contrib.wagtailroutablepage' + label = 'wagtailroutablepage' + verbose_name = "Wagtail routablepage" diff --git a/wagtail/contrib/wagtailsitemaps/__init__.py b/wagtail/contrib/wagtailsitemaps/__init__.py index e69de29bb..e647b7be1 100644 --- a/wagtail/contrib/wagtailsitemaps/__init__.py +++ b/wagtail/contrib/wagtailsitemaps/__init__.py @@ -0,0 +1 @@ +default_app_config = 'wagtail.contrib.wagtailsitemaps.apps.WagtailSitemapsAppConfig' diff --git a/wagtail/contrib/wagtailsitemaps/apps.py b/wagtail/contrib/wagtailsitemaps/apps.py new file mode 100644 index 000000000..d8b249a2a --- /dev/null +++ b/wagtail/contrib/wagtailsitemaps/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class WagtailSitemapsAppConfig(AppConfig): + name = 'wagtail.contrib.wagtailsitemaps' + label = 'wagtailsitemaps' + verbose_name = "Wagtail sitemaps" diff --git a/wagtail/contrib/wagtailstyleguide/__init__.py b/wagtail/contrib/wagtailstyleguide/__init__.py index e69de29bb..18ff63cfe 100644 --- a/wagtail/contrib/wagtailstyleguide/__init__.py +++ b/wagtail/contrib/wagtailstyleguide/__init__.py @@ -0,0 +1 @@ +default_app_config = 'wagtail.contrib.wagtailstyleguide.apps.WagtailStyleGuideAppConfig' diff --git a/wagtail/contrib/wagtailstyleguide/apps.py b/wagtail/contrib/wagtailstyleguide/apps.py new file mode 100644 index 000000000..093003ac8 --- /dev/null +++ b/wagtail/contrib/wagtailstyleguide/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class WagtailStyleGuideAppConfig(AppConfig): + name = 'wagtail.contrib.wagtailstyleguide' + label = 'wagtailstyleguide' + verbose_name = "Wagtail style guide" diff --git a/wagtail/contrib/wagtailstyleguide/templates/wagtailstyleguide/base.html b/wagtail/contrib/wagtailstyleguide/templates/wagtailstyleguide/base.html index bca7ce8a1..667798c80 100644 --- a/wagtail/contrib/wagtailstyleguide/templates/wagtailstyleguide/base.html +++ b/wagtail/contrib/wagtailstyleguide/templates/wagtailstyleguide/base.html @@ -30,6 +30,7 @@ <li><a href="#editor">Page editor</a></li> <li><a href="#tabs">Tabs</a></li> <li><a href="#breadcrumbs">Breadcrumbs</a></li> + <li><a href="#progress">Progress indicators</a></li> <li><a href="#misc">Misc formatters</a></li> <li><a href="#icons">Icons</a></li> </ul> @@ -406,6 +407,20 @@ </section> + <section id="progress"> + <h2>Progress indicators</h2> + + <div id="progress-example" class="progress active"> + <div class="bar">60%</div> + </div> + + <p> </p> + + <div id="progress-example2" class="progress active"> + <div class="bar" style="width: 50%;">50%</div> + </div> + </section> + <section id="misc"> <h2>Misc formatters</h2> <h3>Avatar icons</h3> @@ -506,7 +521,16 @@ {% block extra_js %} <script> $(function(){ - + (function runprogress(){ + var to = setTimeout(function(){ + runprogress(); + clearTimeout(to); + var to2 = setTimeout(function(){ + $('#progress-example .bar').css('width', '20%'); + }, 2000); + }, 3000); + $('#progress-example .bar').css('width', '80%'); + })(); }) </script> {% endblock %} \ No newline at end of file diff --git a/wagtail/contrib/wagtailstyleguide/wagtail_hooks.py b/wagtail/contrib/wagtailstyleguide/wagtail_hooks.py index 6045772d0..5115150b1 100644 --- a/wagtail/contrib/wagtailstyleguide/wagtail_hooks.py +++ b/wagtail/contrib/wagtailstyleguide/wagtail_hooks.py @@ -15,8 +15,6 @@ def register_admin_urls(): ] -@hooks.register('construct_main_menu') -def construct_main_menu(request, menu_items): - menu_items.append( - MenuItem(_('Styleguide'), urlresolvers.reverse('wagtailstyleguide'), classnames='icon icon-image', order=1000) - ) +@hooks.register('register_admin_menu_item') +def register_styleguide_menu_item(): + return MenuItem(_('Styleguide'), urlresolvers.reverse('wagtailstyleguide'), classnames='icon icon-image', order=1000) diff --git a/wagtail/project_template/.gitignore b/wagtail/project_template/.gitignore new file mode 100644 index 000000000..64f5e14dd --- /dev/null +++ b/wagtail/project_template/.gitignore @@ -0,0 +1,10 @@ +*.pyc +.DS_Store +/.venv/ +/*/settings/local.py +/static/ +/media/ +/.vagrant/ +Vagrantfile.local +/docs/_build/ +/db.sqlite3 diff --git a/wagtail/project_template/Vagrantfile b/wagtail/project_template/Vagrantfile new file mode 100644 index 000000000..81f62e993 --- /dev/null +++ b/wagtail/project_template/Vagrantfile @@ -0,0 +1,27 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +Vagrant::Config.run do |config| + # Base box to build off, and download URL for when it doesn't exist on the user's system already + config.vm.box = "wagtail-base-v0.3" + config.vm.box_url = "http://downloads.torchbox.com/wagtail-base-v0.3.box" + + # Forward a port from the guest to the host, which allows for outside + # computers to access the VM, whereas host only networking does not. + config.vm.forward_port 8000, 8111 + + # Share an additional folder to the guest VM. The first argument is + # an identifier, the second is the path on the guest to mount the + # folder, and the third is the path on the host to the actual folder. + config.vm.share_folder "project", "/home/vagrant/{{ project_name }}", "." + + # Enable provisioning with a shell script. + config.vm.provision :shell, :path => "vagrant/provision.sh", :args => "{{ project_name }}" + + # If a 'Vagrantfile.local' file exists, import any configuration settings + # defined there into here. Vagrantfile.local is ignored in version control, + # so this can be used to add configuration specific to this computer. + if File.exist? "Vagrantfile.local" + instance_eval File.read("Vagrantfile.local"), "Vagrantfile.local" + end +end diff --git a/wagtail/project_template/core/__init__.py b/wagtail/project_template/core/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/wagtail/project_template/core/migrations/0001_initial.py b/wagtail/project_template/core/migrations/0001_initial.py new file mode 100644 index 000000000..d750170b0 --- /dev/null +++ b/wagtail/project_template/core/migrations/0001_initial.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'HomePage' + db.create_table('core_homepage', ( + ('page_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['wagtailcore.Page'], unique=True, primary_key=True)), + )) + db.send_create_signal('core', ['HomePage']) + + + def backwards(self, orm): + # Deleting model 'HomePage' + db.delete_table('core_homepage') + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True', 'to': "orm['auth.Group']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True', 'to': "orm['auth.Permission']"}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'core.homepage': { + 'Meta': {'object_name': 'HomePage', '_ormbases': ['wagtailcore.Page']}, + 'page_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['wagtailcore.Page']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'wagtailcore.page': { + 'Meta': {'object_name': 'Page'}, + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pages'", 'to': "orm['contenttypes.ContentType']"}), + 'depth': ('django.db.models.fields.PositiveIntegerField', [], {}), + 'expire_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'expired': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'go_live_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'has_unpublished_changes': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'live': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'numchild': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_pages'", 'null': 'True', 'to': "orm['auth.User']"}), + 'path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), + 'search_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'seo_title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'show_in_menus': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'url_path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + } + } + + complete_apps = ['core'] diff --git a/wagtail/project_template/core/migrations/0002_create_homepage.py b/wagtail/project_template/core/migrations/0002_create_homepage.py new file mode 100644 index 000000000..7d57af66e --- /dev/null +++ b/wagtail/project_template/core/migrations/0002_create_homepage.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import DataMigration +from django.db import models, connection +from django.db.transaction import set_autocommit + + +class Migration(DataMigration): + + depends_on = ( + ('wagtailcore', '0002_initial_data'), + ) + + def forwards(self, orm): + if connection.vendor == 'sqlite': + set_autocommit(True) + + orm['wagtailcore.Page'].objects.get(id=2).delete() + + homepage_content_type, created = orm['contenttypes.contenttype'].objects.get_or_create( + model='homepage', app_label='core', defaults={'name': 'Homepage'}) + + homepage = orm['core.HomePage'].objects.create( + title="Homepage", + slug='home', + content_type=homepage_content_type, + path='00010001', + depth=2, + numchild=0, + url_path='/home/', + ) + + orm['wagtailcore.site'].objects.create( + hostname='localhost', root_page=homepage, is_default_site=True) + + def backwards(self, orm): + pass + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True', 'to': "orm['auth.Group']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "'user_set'", 'blank': 'True', 'to': "orm['auth.Permission']"}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'core.homepage': { + 'Meta': {'object_name': 'HomePage', '_ormbases': ['wagtailcore.Page']}, + 'page_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['wagtailcore.Page']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'wagtailcore.page': { + 'Meta': {'object_name': 'Page'}, + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pages'", 'to': "orm['contenttypes.ContentType']"}), + 'depth': ('django.db.models.fields.PositiveIntegerField', [], {}), + 'expire_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'expired': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'go_live_at': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'has_unpublished_changes': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'live': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'numchild': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'owned_pages'", 'null': 'True', 'to': "orm['auth.User']"}), + 'path': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}), + 'search_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'seo_title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'show_in_menus': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '50'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'url_path': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}) + }, + 'wagtailcore.site': { + 'Meta': {'unique_together': "(('hostname', 'port'),)", 'object_name': 'Site'}, + 'hostname': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_default_site': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'port': ('django.db.models.fields.IntegerField', [], {'default': '80'}), + 'root_page': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'sites_rooted_here'", 'to': "orm['wagtailcore.Page']"}) + } + } + + complete_apps = ['core'] + symmetrical = True diff --git a/wagtail/project_template/core/migrations/__init__.py b/wagtail/project_template/core/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/wagtail/project_template/core/models.py b/wagtail/project_template/core/models.py new file mode 100644 index 000000000..e88393299 --- /dev/null +++ b/wagtail/project_template/core/models.py @@ -0,0 +1,7 @@ +from django.db import models + +from wagtail.wagtailcore.models import Page + + +class HomePage(Page): + pass diff --git a/wagtail/project_template/core/static/css/project_name.scss b/wagtail/project_template/core/static/css/project_name.scss new file mode 100644 index 000000000..e69de29bb diff --git a/wagtail/project_template/core/static/js/project_name.js b/wagtail/project_template/core/static/js/project_name.js new file mode 100644 index 000000000..e69de29bb diff --git a/wagtail/project_template/core/templates/404.html b/wagtail/project_template/core/templates/404.html new file mode 100644 index 000000000..0c1232f1b --- /dev/null +++ b/wagtail/project_template/core/templates/404.html @@ -0,0 +1,9 @@ +{% templatetag openblock %} extends "base.html" {% templatetag closeblock %} + +{% templatetag openblock %} block body_class {% templatetag closeblock %}template-404{% templatetag openblock %} endblock {% templatetag closeblock %} + +{% templatetag openblock %} block content {% templatetag closeblock %} + <h1>Page not found</h1> + + <h2>Sorry, this page could not be found.</h2> +{% templatetag openblock %} endblock {% templatetag closeblock %} diff --git a/wagtail/project_template/core/templates/500.html b/wagtail/project_template/core/templates/500.html new file mode 100644 index 000000000..b1dc89cc1 --- /dev/null +++ b/wagtail/project_template/core/templates/500.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> +<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]--> +<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]--> +<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]--> +<html> + <head> + <meta charset="utf-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge" /> + <title>Internal server error + + + +

Internal server error

+ +

Sorry, there seems to be an error. Please try again soon.

+ + diff --git a/wagtail/project_template/core/templates/base.html b/wagtail/project_template/core/templates/base.html new file mode 100644 index 000000000..c68694907 --- /dev/null +++ b/wagtail/project_template/core/templates/base.html @@ -0,0 +1,40 @@ +{% templatetag openblock %} load compress static wagtailuserbar {% templatetag closeblock %} + + + + + + + + + + + {% templatetag openblock %} block title %}{% templatetag openblock %} if self.seo_title %}{% templatetag openvariable %} self.seo_title {% templatetag closevariable %}{% templatetag openblock %} else %}{% templatetag openvariable %} self.title {% templatetag closevariable %}{% templatetag openblock %} endif {% templatetag closeblock %}{% templatetag openblock %} endblock {% templatetag closeblock %}{% templatetag openblock %} block title_suffix {% templatetag closeblock %}{% templatetag openblock %} endblock {% templatetag closeblock %} + + + + {% templatetag openblock %} compress css {% templatetag closeblock %} + {# Global stylesheets #} + + {% templatetag openblock %} endcompress {% templatetag closeblock %} + + {% templatetag openblock %} block extra_css {% templatetag closeblock %} + {# Override this in templates to add extra stylesheets #} + {% templatetag openblock %} endblock {% templatetag closeblock %} + + + + {% templatetag openblock %} wagtailuserbar {% templatetag closeblock %} + + {% templatetag openblock %} block content {% templatetag closeblock %}{% templatetag openblock %} endblock {% templatetag closeblock %} + + {% templatetag openblock %} compress js {% templatetag closeblock %} + {# Global javascript #} + + {% templatetag openblock %} endcompress {% templatetag closeblock %} + + {% templatetag openblock %} block extra_js {% templatetag closeblock %} + {# Override this in templates to add extra javascript #} + {% templatetag openblock %} endblock {% templatetag closeblock %} + + diff --git a/wagtail/project_template/core/templates/core/home_page.html b/wagtail/project_template/core/templates/core/home_page.html new file mode 100644 index 000000000..075851878 --- /dev/null +++ b/wagtail/project_template/core/templates/core/home_page.html @@ -0,0 +1,13 @@ +{% templatetag openblock %} extends "base.html" {% templatetag closeblock %} + +{% templatetag openblock %} load static core_tags {% templatetag closeblock %} + +{% templatetag openblock %} block body_class {% templatetag closeblock %}template-{% templatetag openvariable %} self.get_verbose_name|slugify {% templatetag closevariable %}{% templatetag openblock %} endblock {% templatetag closeblock %} + +{% templatetag openblock %} block content {% templatetag closeblock %} +

Welcome to your new Wagtail site!

+ +

You can access the admin interface here (make sure you have run "./manage.py createsuperuser" in the console first). + +

If you haven't already given the documentation a read, head over to http://wagtail.readthedocs.org to start building on Wagtail

+{% templatetag openblock %} endblock {% templatetag closeblock %} diff --git a/wagtail/project_template/core/templatetags/__init__.py b/wagtail/project_template/core/templatetags/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/wagtail/project_template/core/templatetags/core_tags.py b/wagtail/project_template/core/templatetags/core_tags.py new file mode 100644 index 000000000..4bd3b15fe --- /dev/null +++ b/wagtail/project_template/core/templatetags/core_tags.py @@ -0,0 +1,3 @@ +from django import template + +register = template.Library() diff --git a/wagtail/project_template/manage.py b/wagtail/project_template/manage.py new file mode 100755 index 000000000..391dd88ba --- /dev/null +++ b/wagtail/project_template/manage.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python +import os +import sys + +if __name__ == "__main__": + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings") + + from django.core.management import execute_from_command_line + + execute_from_command_line(sys.argv) diff --git a/wagtail/project_template/project_name/__init__.py b/wagtail/project_template/project_name/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/wagtail/project_template/project_name/settings/__init__.py b/wagtail/project_template/project_name/settings/__init__.py new file mode 100644 index 000000000..c7873286a --- /dev/null +++ b/wagtail/project_template/project_name/settings/__init__.py @@ -0,0 +1 @@ +from .dev import * diff --git a/wagtail/project_template/project_name/settings/base.py b/wagtail/project_template/project_name/settings/base.py new file mode 100644 index 000000000..b0ad25c3b --- /dev/null +++ b/wagtail/project_template/project_name/settings/base.py @@ -0,0 +1,164 @@ +""" +Django settings for {{ project_name }} project. + +For more information on this file, see +https://docs.djangoproject.com/en/{{ docs_version }}/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/{{ docs_version }}/ref/settings/ +""" + +from os.path import abspath, dirname, join + +# Absolute filesystem path to the Django project directory: +PROJECT_ROOT = dirname(dirname(dirname(abspath(__file__)))) + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/{{ docs_version }}/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = '{{ secret_key }}' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +TEMPLATE_DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = ( + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + + 'south', + 'compressor', + 'taggit', + 'modelcluster', + + 'wagtail.wagtailcore', + 'wagtail.wagtailadmin', + 'wagtail.wagtaildocs', + 'wagtail.wagtailsnippets', + 'wagtail.wagtailusers', + 'wagtail.wagtailimages', + 'wagtail.wagtailembeds', + 'wagtail.wagtailsearch', + 'wagtail.wagtailredirects', + 'wagtail.wagtailforms', + + 'core', +) + +MIDDLEWARE_CLASSES = ( + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', + + 'wagtail.wagtailcore.middleware.SiteMiddleware', + 'wagtail.wagtailredirects.middleware.RedirectMiddleware', +) + +ROOT_URLCONF = '{{ project_name }}.urls' +WSGI_APPLICATION = '{{ project_name }}.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/{{ docs_version }}/ref/settings/#databases + +# SQLite (simplest install) +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': join(PROJECT_ROOT, 'db.sqlite3'), + } +} + +# PostgreSQL (Recommended, but requires the psycopg2 library and Postgresql development headers) +# DATABASES = { +# 'default': { +# 'ENGINE': 'django.db.backends.postgresql_psycopg2', +# 'NAME': '{{ project_name }}', +# 'USER': 'postgres', +# 'PASSWORD': '', +# 'HOST': '', # Set to empty string for localhost. +# 'PORT': '', # Set to empty string for default. +# 'CONN_MAX_AGE': 600, # number of seconds database connections should persist for +# } +# } + + +# Internationalization +# https://docs.djangoproject.com/en/{{ docs_version }}/topics/i18n/ + +LANGUAGE_CODE = 'en-gb' +TIME_ZONE = 'UTC' +USE_I18N = True +USE_L10N = True +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/{{ docs_version }}/howto/static-files/ + +STATIC_ROOT = join(PROJECT_ROOT, 'static') +STATIC_URL = '/static/' + +STATICFILES_FINDERS = ( + 'django.contrib.staticfiles.finders.FileSystemFinder', + 'django.contrib.staticfiles.finders.AppDirectoriesFinder', + 'compressor.finders.CompressorFinder', +) + +MEDIA_ROOT = join(PROJECT_ROOT, 'media') +MEDIA_URL = '/media/' + + +# Django compressor settings +# http://django-compressor.readthedocs.org/en/latest/settings/ + +COMPRESS_PRECOMPILERS = ( + ('text/x-scss', 'django_libsass.SassCompiler'), +) + + +# Template configuration + +from django.conf import global_settings + +TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + ( + 'django.core.context_processors.request', +) + + +# Wagtail settings + +LOGIN_URL = 'wagtailadmin_login' +LOGIN_REDIRECT_URL = 'wagtailadmin_home' + +WAGTAIL_SITE_NAME = "{{ project_name }}" + +# Use Elasticsearch as the search backend for extra performance and better search results: +# http://wagtail.readthedocs.org/en/latest/howto/performance.html#search +# http://wagtail.readthedocs.org/en/latest/core_components/search/backends.html#elasticsearch-backend +# +# WAGTAILSEARCH_BACKENDS = { +# 'default': { +# 'BACKEND': 'wagtail.wagtailsearch.backends.elasticsearch.ElasticSearch', +# 'INDEX': '{{ project_name }}', +# }, +# } + + +# Whether to use face/feature detection to improve image cropping - requires OpenCV +WAGTAILIMAGES_FEATURE_DETECTION_ENABLED = False diff --git a/wagtail/project_template/project_name/settings/dev.py b/wagtail/project_template/project_name/settings/dev.py new file mode 100644 index 000000000..0430df7e6 --- /dev/null +++ b/wagtail/project_template/project_name/settings/dev.py @@ -0,0 +1,13 @@ +from .base import * + + +DEBUG = True +TEMPLATE_DEBUG = True + +EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' + + +try: + from .local import * +except ImportError: + pass diff --git a/wagtail/project_template/project_name/settings/production.py b/wagtail/project_template/project_name/settings/production.py new file mode 100644 index 000000000..e9e9e1971 --- /dev/null +++ b/wagtail/project_template/project_name/settings/production.py @@ -0,0 +1,48 @@ +from .base import * + + +# Disable debug mode + +DEBUG = False +TEMPLATE_DEBUG = False + + +# Compress static files offline +# http://django-compressor.readthedocs.org/en/latest/settings/#django.conf.settings.COMPRESS_OFFLINE + +COMPRESS_OFFLINE = True + + +# Send notification emails as a background task using Celery, +# to prevent this from blocking web server threads +# (requires the django-celery package): +# http://celery.readthedocs.org/en/latest/configuration.html + +# import djcelery +# +# djcelery.setup_loader() +# +# CELERY_SEND_TASK_ERROR_EMAILS = True +# BROKER_URL = 'redis://' + + +# Use Redis as the cache backend for extra performance +# (requires the django-redis-cache package): +# http://wagtail.readthedocs.org/en/latest/howto/performance.html#cache + +# CACHES = { +# 'default': { +# 'BACKEND': 'redis_cache.cache.RedisCache', +# 'LOCATION': '127.0.0.1:6379', +# 'KEY_PREFIX': '{{ project_name }}', +# 'OPTIONS': { +# 'CLIENT_CLASS': 'redis_cache.client.DefaultClient', +# } +# } +# } + + +try: + from .local import * +except ImportError: + pass diff --git a/wagtail/project_template/project_name/urls.py b/wagtail/project_template/project_name/urls.py new file mode 100644 index 000000000..3859bc722 --- /dev/null +++ b/wagtail/project_template/project_name/urls.py @@ -0,0 +1,37 @@ +import os + +from django.conf.urls import patterns, include, url +from django.conf.urls.static import static +from django.conf import settings +from django.contrib import admin + +from wagtail.wagtailadmin import urls as wagtailadmin_urls +from wagtail.wagtailsearch import urls as wagtailsearch_urls +from wagtail.wagtaildocs import urls as wagtaildocs_urls +from wagtail.wagtailcore import urls as wagtail_urls + + +admin.autodiscover() + + +# Register search signal handlers +from wagtail.wagtailsearch.signal_handlers import register_signal_handlers as wagtailsearch_register_signal_handlers +wagtailsearch_register_signal_handlers() + + +urlpatterns = patterns('', + url(r'^django-admin/', include(admin.site.urls)), + + url(r'^admin/', include(wagtailadmin_urls)), + url(r'^search/', include(wagtailsearch_urls)), + url(r'^documents/', include(wagtaildocs_urls)), + + url(r'', include(wagtail_urls)), +) + + +if settings.DEBUG: + from django.contrib.staticfiles.urls import staticfiles_urlpatterns + + urlpatterns += staticfiles_urlpatterns() + urlpatterns += static(settings.MEDIA_URL + 'images/', document_root=os.path.join(settings.MEDIA_ROOT, 'images')) diff --git a/wagtail/project_template/project_name/wsgi.py b/wagtail/project_template/project_name/wsgi.py new file mode 100644 index 000000000..461771b9d --- /dev/null +++ b/wagtail/project_template/project_name/wsgi.py @@ -0,0 +1,14 @@ +""" +WSGI config for {{ project_name }} project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/1.6/howto/deployment/wsgi/ +""" + +import os +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings.production") + +from django.core.wsgi import get_wsgi_application +application = get_wsgi_application() diff --git a/wagtail/project_template/readme.rst b/wagtail/project_template/readme.rst new file mode 100644 index 000000000..172e810ef --- /dev/null +++ b/wagtail/project_template/readme.rst @@ -0,0 +1,3 @@ +================== +{{ project_name }} +================== diff --git a/wagtail/project_template/requirements.txt b/wagtail/project_template/requirements.txt new file mode 100644 index 000000000..6cecb31e2 --- /dev/null +++ b/wagtail/project_template/requirements.txt @@ -0,0 +1,12 @@ +# Minimal requirements +Django>=1.6.2,<1.7 +South==1.0.0 +wagtail==0.6 + +# Recommended components (require additional setup): +# psycopg2==2.5.2 +# elasticsearch==1.1.1 + +# Recommended components to improve performance in production: +# django-redis-cache==0.13.0 +# django-celery==3.1.10 diff --git a/wagtail/project_template/vagrant/provision.sh b/wagtail/project_template/vagrant/provision.sh new file mode 100755 index 000000000..03d28a89b --- /dev/null +++ b/wagtail/project_template/vagrant/provision.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +PROJECT_NAME=$1 + +PROJECT_DIR=/home/vagrant/$PROJECT_NAME +VIRTUALENV_DIR=/home/vagrant/.virtualenvs/$PROJECT_NAME + +PYTHON=$VIRTUALENV_DIR/bin/python +PIP=$VIRTUALENV_DIR/bin/pip + + +# Virtualenv setup for project +su - vagrant -c "/usr/local/bin/virtualenv --system-site-packages $VIRTUALENV_DIR && \ + echo $PROJECT_DIR > $VIRTUALENV_DIR/.project && \ + PIP_DOWNLOAD_CACHE=/home/vagrant/.pip_download_cache $PIP install -r $PROJECT_DIR/requirements.txt" + +echo "workon $PROJECT_NAME" >> /home/vagrant/.bashrc + + +# Set execute permissions on manage.py as they get lost if we build from a zip file +chmod a+x $PROJECT_DIR/manage.py + + +# Run syncdb/migrate/update_index +su - vagrant -c "$PYTHON $PROJECT_DIR/manage.py syncdb --noinput && \ + $PYTHON $PROJECT_DIR/manage.py migrate --noinput && \ + $PYTHON $PROJECT_DIR/manage.py update_index" + + +# Add a couple of aliases to manage.py into .bashrc +cat << EOF >> /home/vagrant/.bashrc +alias dj="$PYTHON $PROJECT_DIR/manage.py" +alias djrun="dj runserver 0.0.0.0:8000" +EOF diff --git a/wagtail/tests/fixtures/test.json b/wagtail/tests/fixtures/test.json index 00e621f48..940874435 100644 --- a/wagtail/tests/fixtures/test.json +++ b/wagtail/tests/fixtures/test.json @@ -90,8 +90,8 @@ "model": "tests.eventpagespeaker", "fields": { "page": 4, - "first_name": "Santa", - "last_name": "Claus", + "first_name": "Father", + "last_name": "Christmas", "sort_order": 0 } }, @@ -567,7 +567,17 @@ "model": "tests.AdvertPlacement", "fields": { "page": 2, - "advert": 1 + "advert": 1, + "colour": "yellow" + } +}, +{ + "pk": 2, + "model": "tests.AdvertPlacement", + "fields": { + "page": 4, + "advert": 1, + "colour": "greener than a Christmas tree" } }, { diff --git a/wagtail/tests/migrations/0001_initial.py b/wagtail/tests/migrations/0001_initial.py new file mode 100644 index 000000000..c1dd942f5 --- /dev/null +++ b/wagtail/tests/migrations/0001_initial.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('auth', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='CustomUser', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('password', models.CharField(max_length=128, verbose_name='password')), + ('last_login', models.DateTimeField(default=django.utils.timezone.now, verbose_name='last login')), + ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), + ('username', models.CharField(unique=True, max_length=100)), + ('email', models.EmailField(max_length=255, blank=True)), + ('is_staff', models.BooleanField(default=True)), + ('is_active', models.BooleanField(default=True)), + ('first_name', models.CharField(max_length=50, blank=True)), + ('last_name', models.CharField(max_length=50, blank=True)), + ('groups', models.ManyToManyField(to='auth.Group', verbose_name='groups', blank=True)), + ('user_permissions', models.ManyToManyField(to='auth.Permission', verbose_name='user permissions', blank=True)), + ], + options={ + 'abstract': False, + }, + bases=(models.Model,), + ), + ] diff --git a/wagtail/tests/migrations/0002_auto_20140827_0908.py b/wagtail/tests/migrations/0002_auto_20140827_0908.py new file mode 100644 index 000000000..66c85ffb0 --- /dev/null +++ b/wagtail/tests/migrations/0002_auto_20140827_0908.py @@ -0,0 +1,386 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +import django.db.models.deletion +import modelcluster.fields +import wagtail.contrib.wagtailroutablepage.models +import wagtail.wagtailcore.fields +import wagtail.wagtailsearch.index +import modelcluster.tags + + +class Migration(migrations.Migration): + + dependencies = [ + ('wagtailcore', '0002_initial_data'), + ('wagtaildocs', '0002_initial_data'), + ('taggit', '0001_initial'), + ('wagtailimages', '0002_initial_data'), + ('tests', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Advert', + fields=[ + ('id', models.AutoField(auto_created=True, verbose_name='ID', primary_key=True, serialize=False)), + ('url', models.URLField(null=True, blank=True)), + ('text', models.CharField(max_length=255)), + ], + options={ + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='AdvertPlacement', + fields=[ + ('id', models.AutoField(auto_created=True, verbose_name='ID', primary_key=True, serialize=False)), + ('advert', models.ForeignKey(to='tests.Advert', related_name='+')), + ], + options={ + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='AlphaSnippet', + fields=[ + ('id', models.AutoField(auto_created=True, verbose_name='ID', primary_key=True, serialize=False)), + ('text', models.CharField(max_length=255)), + ], + options={ + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='BusinessChild', + fields=[ + ('page_ptr', models.OneToOneField(parent_link=True, to='wagtailcore.Page', serialize=False, auto_created=True, primary_key=True)), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + migrations.CreateModel( + name='BusinessIndex', + fields=[ + ('page_ptr', models.OneToOneField(parent_link=True, to='wagtailcore.Page', serialize=False, auto_created=True, primary_key=True)), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + migrations.CreateModel( + name='BusinessSubIndex', + fields=[ + ('page_ptr', models.OneToOneField(parent_link=True, to='wagtailcore.Page', serialize=False, auto_created=True, primary_key=True)), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + migrations.CreateModel( + name='EventIndex', + fields=[ + ('page_ptr', models.OneToOneField(parent_link=True, to='wagtailcore.Page', serialize=False, auto_created=True, primary_key=True)), + ('intro', wagtail.wagtailcore.fields.RichTextField(blank=True)), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + migrations.CreateModel( + name='EventPage', + fields=[ + ('page_ptr', models.OneToOneField(parent_link=True, to='wagtailcore.Page', serialize=False, auto_created=True, primary_key=True)), + ('date_from', models.DateField(null=True, verbose_name='Start date')), + ('date_to', models.DateField(null=True, help_text='Not required if event is on a single day', blank=True, verbose_name='End date')), + ('time_from', models.TimeField(null=True, blank=True, verbose_name='Start time')), + ('time_to', models.TimeField(null=True, blank=True, verbose_name='End time')), + ('audience', models.CharField(choices=[('public', 'Public'), ('private', 'Private')], max_length=255)), + ('location', models.CharField(max_length=255)), + ('body', wagtail.wagtailcore.fields.RichTextField(blank=True)), + ('cost', models.CharField(max_length=255)), + ('signup_link', models.URLField(blank=True)), + ('feed_image', models.ForeignKey(related_name='+', blank=True, to='wagtailimages.Image', on_delete=django.db.models.deletion.SET_NULL, null=True)), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + migrations.CreateModel( + name='EventPageCarouselItem', + fields=[ + ('id', models.AutoField(auto_created=True, verbose_name='ID', primary_key=True, serialize=False)), + ('sort_order', models.IntegerField(null=True, blank=True, editable=False)), + ('link_external', models.URLField(blank=True, verbose_name='External link')), + ('embed_url', models.URLField(blank=True, verbose_name='Embed URL')), + ('caption', models.CharField(blank=True, max_length=255)), + ('image', models.ForeignKey(related_name='+', blank=True, to='wagtailimages.Image', on_delete=django.db.models.deletion.SET_NULL, null=True)), + ('link_document', models.ForeignKey(related_name='+', blank=True, to='wagtaildocs.Document', null=True)), + ], + options={ + 'abstract': False, + 'ordering': ['sort_order'], + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='EventPageRelatedLink', + fields=[ + ('id', models.AutoField(auto_created=True, verbose_name='ID', primary_key=True, serialize=False)), + ('sort_order', models.IntegerField(null=True, blank=True, editable=False)), + ('link_external', models.URLField(blank=True, verbose_name='External link')), + ('title', models.CharField(help_text='Link title', max_length=255)), + ('link_document', models.ForeignKey(related_name='+', blank=True, to='wagtaildocs.Document', null=True)), + ], + options={ + 'abstract': False, + 'ordering': ['sort_order'], + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='EventPageSpeaker', + fields=[ + ('id', models.AutoField(auto_created=True, verbose_name='ID', primary_key=True, serialize=False)), + ('sort_order', models.IntegerField(null=True, blank=True, editable=False)), + ('link_external', models.URLField(blank=True, verbose_name='External link')), + ('first_name', models.CharField(blank=True, verbose_name='Name', max_length=255)), + ('last_name', models.CharField(blank=True, verbose_name='Surname', max_length=255)), + ('image', models.ForeignKey(related_name='+', blank=True, to='wagtailimages.Image', on_delete=django.db.models.deletion.SET_NULL, null=True)), + ('link_document', models.ForeignKey(related_name='+', blank=True, to='wagtaildocs.Document', null=True)), + ], + options={ + 'abstract': False, + 'ordering': ['sort_order'], + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='FormField', + fields=[ + ('id', models.AutoField(auto_created=True, verbose_name='ID', primary_key=True, serialize=False)), + ('sort_order', models.IntegerField(null=True, blank=True, editable=False)), + ('label', models.CharField(help_text='The label of the form field', max_length=255)), + ('field_type', models.CharField(choices=[('singleline', 'Single line text'), ('multiline', 'Multi-line text'), ('email', 'Email'), ('number', 'Number'), ('url', 'URL'), ('checkbox', 'Checkbox'), ('checkboxes', 'Checkboxes'), ('dropdown', 'Drop down'), ('radio', 'Radio buttons'), ('date', 'Date'), ('datetime', 'Date/time')], max_length=16)), + ('required', models.BooleanField(default=True)), + ('choices', models.CharField(blank=True, help_text='Comma seperated list of choices. Only applicable in checkboxes, radio and dropdown.', max_length=512)), + ('default_value', models.CharField(blank=True, help_text='Default value. Comma seperated values supported for checkboxes.', max_length=255)), + ('help_text', models.CharField(blank=True, max_length=255)), + ], + options={ + 'abstract': False, + 'ordering': ['sort_order'], + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='FormPage', + fields=[ + ('page_ptr', models.OneToOneField(parent_link=True, to='wagtailcore.Page', serialize=False, auto_created=True, primary_key=True)), + ('to_address', models.CharField(blank=True, help_text='Optional - form submissions will be emailed to this address', max_length=255)), + ('from_address', models.CharField(blank=True, max_length=255)), + ('subject', models.CharField(blank=True, max_length=255)), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + migrations.CreateModel( + name='PageWithOldStyleRouteMethod', + fields=[ + ('page_ptr', models.OneToOneField(parent_link=True, to='wagtailcore.Page', serialize=False, auto_created=True, primary_key=True)), + ('content', models.TextField()), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + migrations.CreateModel( + name='RoutablePageTest', + fields=[ + ('page_ptr', models.OneToOneField(parent_link=True, to='wagtailcore.Page', serialize=False, auto_created=True, primary_key=True)), + ], + options={ + 'abstract': False, + }, + bases=(wagtail.contrib.wagtailroutablepage.models.RoutablePageMixin, 'wagtailcore.page'), + ), + migrations.CreateModel( + name='SearchTest', + fields=[ + ('id', models.AutoField(auto_created=True, verbose_name='ID', primary_key=True, serialize=False)), + ('title', models.CharField(max_length=255)), + ('content', models.TextField()), + ('live', models.BooleanField(default=False)), + ('published_date', models.DateField(null=True)), + ], + options={ + }, + bases=(models.Model, wagtail.wagtailsearch.index.Indexed), + ), + migrations.CreateModel( + name='SearchTestChild', + fields=[ + ('searchtest_ptr', models.OneToOneField(parent_link=True, to='tests.SearchTest', serialize=False, auto_created=True, primary_key=True)), + ('subtitle', models.CharField(null=True, blank=True, max_length=255)), + ('extra_content', models.TextField()), + ], + options={ + }, + bases=('tests.searchtest',), + ), + migrations.CreateModel( + name='SearchTestOldConfig', + fields=[ + ('id', models.AutoField(auto_created=True, verbose_name='ID', primary_key=True, serialize=False)), + ], + options={ + }, + bases=(models.Model, wagtail.wagtailsearch.index.Indexed), + ), + migrations.CreateModel( + name='SearchTestOldConfigList', + fields=[ + ('id', models.AutoField(auto_created=True, verbose_name='ID', primary_key=True, serialize=False)), + ], + options={ + }, + bases=(models.Model, wagtail.wagtailsearch.index.Indexed), + ), + migrations.CreateModel( + name='SimplePage', + fields=[ + ('page_ptr', models.OneToOneField(parent_link=True, to='wagtailcore.Page', serialize=False, auto_created=True, primary_key=True)), + ('content', models.TextField()), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + migrations.CreateModel( + name='StandardChild', + fields=[ + ('page_ptr', models.OneToOneField(parent_link=True, to='wagtailcore.Page', serialize=False, auto_created=True, primary_key=True)), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + migrations.CreateModel( + name='StandardIndex', + fields=[ + ('page_ptr', models.OneToOneField(parent_link=True, to='wagtailcore.Page', serialize=False, auto_created=True, primary_key=True)), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + migrations.CreateModel( + name='TaggedPage', + fields=[ + ('page_ptr', models.OneToOneField(parent_link=True, to='wagtailcore.Page', serialize=False, auto_created=True, primary_key=True)), + ], + options={ + 'abstract': False, + }, + bases=('wagtailcore.page',), + ), + migrations.CreateModel( + name='TaggedPageTag', + fields=[ + ('id', models.AutoField(auto_created=True, verbose_name='ID', primary_key=True, serialize=False)), + ('content_object', modelcluster.fields.ParentalKey(to='tests.TaggedPage', related_name='tagged_items')), + ('tag', models.ForeignKey(to='taggit.Tag', related_name='tests_taggedpagetag_items')), + ], + options={ + 'abstract': False, + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='ZuluSnippet', + fields=[ + ('id', models.AutoField(auto_created=True, verbose_name='ID', primary_key=True, serialize=False)), + ('text', models.CharField(max_length=255)), + ], + options={ + }, + bases=(models.Model,), + ), + migrations.AddField( + model_name='taggedpage', + name='tags', + field=modelcluster.tags.ClusterTaggableManager(through='tests.TaggedPageTag', blank=True, verbose_name='Tags', to='taggit.Tag', help_text='A comma-separated list of tags.'), + preserve_default=True, + ), + migrations.AddField( + model_name='formfield', + name='page', + field=modelcluster.fields.ParentalKey(to='tests.FormPage', related_name='form_fields'), + preserve_default=True, + ), + migrations.AddField( + model_name='eventpagespeaker', + name='link_page', + field=models.ForeignKey(related_name='+', blank=True, to='wagtailcore.Page', null=True), + preserve_default=True, + ), + migrations.AddField( + model_name='eventpagespeaker', + name='page', + field=modelcluster.fields.ParentalKey(to='tests.EventPage', related_name='speakers'), + preserve_default=True, + ), + migrations.AddField( + model_name='eventpagerelatedlink', + name='link_page', + field=models.ForeignKey(related_name='+', blank=True, to='wagtailcore.Page', null=True), + preserve_default=True, + ), + migrations.AddField( + model_name='eventpagerelatedlink', + name='page', + field=modelcluster.fields.ParentalKey(to='tests.EventPage', related_name='related_links'), + preserve_default=True, + ), + migrations.AddField( + model_name='eventpagecarouselitem', + name='link_page', + field=models.ForeignKey(related_name='+', blank=True, to='wagtailcore.Page', null=True), + preserve_default=True, + ), + migrations.AddField( + model_name='eventpagecarouselitem', + name='page', + field=modelcluster.fields.ParentalKey(to='tests.EventPage', related_name='carousel_items'), + preserve_default=True, + ), + migrations.AddField( + model_name='advertplacement', + name='page', + field=modelcluster.fields.ParentalKey(to='wagtailcore.Page', related_name='advert_placements'), + preserve_default=True, + ), + migrations.AlterField( + model_name='customuser', + name='groups', + field=models.ManyToManyField(related_name='user_set', blank=True, verbose_name='groups', to='auth.Group', related_query_name='user', help_text='The groups this user belongs to. A user will get all permissions granted to each of his/her group.'), + ), + migrations.AlterField( + model_name='customuser', + name='user_permissions', + field=models.ManyToManyField(related_name='user_set', blank=True, verbose_name='user permissions', to='auth.Permission', related_query_name='user', help_text='Specific permissions for this user.'), + ), + ] diff --git a/wagtail/tests/migrations/0003_auto_20140905_0634.py b/wagtail/tests/migrations/0003_auto_20140905_0634.py new file mode 100644 index 000000000..c1f69f529 --- /dev/null +++ b/wagtail/tests/migrations/0003_auto_20140905_0634.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('tests', '0002_auto_20140827_0908'), + ] + + operations = [ + migrations.AddField( + model_name='advertplacement', + name='colour', + field=models.CharField(default='blue', max_length=255), + preserve_default=False, + ), + ] diff --git a/wagtail/tests/migrations/__init__.py b/wagtail/tests/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/wagtail/tests/models.py b/wagtail/tests/models.py index a38d889bd..53a9b2796 100644 --- a/wagtail/tests/models.py +++ b/wagtail/tests/models.py @@ -17,7 +17,7 @@ from wagtail.wagtailimages.edit_handlers import ImageChooserPanel from wagtail.wagtaildocs.edit_handlers import DocumentChooserPanel from wagtail.wagtailforms.models import AbstractEmailForm, AbstractFormField from wagtail.wagtailsnippets.models import register_snippet -from wagtail.wagtailsearch import indexed +from wagtail.wagtailsearch import index from wagtail.contrib.wagtailroutablepage.models import RoutablePage @@ -228,8 +228,11 @@ class EventPage(Page): related_name='+' ) - indexed_fields = ('get_audience_display', 'location', 'body') - search_name = "Event" + search_fields = ( + index.SearchField('get_audience_display'), + index.SearchField('location'), + index.SearchField('body'), + ) password_required_template = 'tests/event_page_password_required.html' @@ -330,6 +333,7 @@ FormPage.content_panels = [ class AdvertPlacement(models.Model): page = ParentalKey('wagtailcore.Page', related_name='advert_placements') advert = models.ForeignKey('tests.Advert', related_name='+') + colour = models.CharField(max_length=255) @python_2_unicode_compatible class Advert(models.Model): @@ -372,34 +376,50 @@ class ZuluSnippet(models.Model): class StandardIndex(Page): - pass + """ Index for the site, not allowed to be placed anywhere """ + parent_page_types = [] + + +StandardIndex.content_panels = [ + FieldPanel('title', classname="full title"), + InlinePanel(StandardIndex, 'advert_placements', label="Adverts"), +] + class StandardChild(Page): pass + class BusinessIndex(Page): + """ Can be placed anywhere, can only have Business children """ subpage_types = ['tests.BusinessChild', 'tests.BusinessSubIndex'] + class BusinessSubIndex(Page): + """ Can be placed under BusinessIndex, and have BusinessChild children """ subpage_types = ['tests.BusinessChild'] + parent_page_types = ['tests.BusinessIndex'] + class BusinessChild(Page): + """ Can only be placed under Business indexes, no children allowed """ subpage_types = [] + parent_page_types = ['tests.BusinessIndex', BusinessSubIndex] -class SearchTest(models.Model, indexed.Indexed): +class SearchTest(models.Model, index.Indexed): title = models.CharField(max_length=255) content = models.TextField() live = models.BooleanField(default=False) published_date = models.DateField(null=True) search_fields = [ - indexed.SearchField('title', partial_match=True), - indexed.SearchField('content'), - indexed.SearchField('callable_indexed_field'), - indexed.FilterField('title'), - indexed.FilterField('live'), - indexed.FilterField('published_date'), + index.SearchField('title', partial_match=True), + index.SearchField('content'), + index.SearchField('callable_indexed_field'), + index.FilterField('title'), + index.FilterField('live'), + index.FilterField('published_date'), ] def callable_indexed_field(self): @@ -411,40 +431,11 @@ class SearchTestChild(SearchTest): extra_content = models.TextField() search_fields = SearchTest.search_fields + [ - indexed.SearchField('subtitle', partial_match=True), - indexed.SearchField('extra_content'), + index.SearchField('subtitle', partial_match=True), + index.SearchField('extra_content'), ] -class SearchTestOldConfig(models.Model, indexed.Indexed): - """ - This tests that the Indexed class can correctly handle models that - use the old "indexed_fields" configuration format. - """ - indexed_fields = { - # A search field with predictive search and boosting - 'title': { - 'type': 'string', - 'analyzer': 'edgengram_analyzer', - 'boost': 100, - }, - - # A filter field - 'live': { - 'type': 'boolean', - 'index': 'not_analyzed', - }, - } - - -class SearchTestOldConfigList(models.Model, indexed.Indexed): - """ - This tests that the Indexed class can correctly handle models that - use the old "indexed_fields" configuration format using a list. - """ - indexed_fields = ['title', 'content'] - - def routable_page_external_view(request, arg): return HttpResponse("EXTERNAL VIEW: " + arg) diff --git a/wagtail/tests/settings.py b/wagtail/tests/settings.py index 1ef1c5ab1..e9c1172b4 100644 --- a/wagtail/tests/settings.py +++ b/wagtail/tests/settings.py @@ -1,5 +1,6 @@ import os +import django from django.conf import global_settings @@ -57,7 +58,6 @@ INSTALLED_APPS = [ 'django.contrib.admin', 'taggit', - 'south', 'compressor', 'wagtail.wagtailcore', @@ -68,7 +68,6 @@ INSTALLED_APPS = [ 'wagtail.wagtailimages', 'wagtail.wagtailembeds', 'wagtail.wagtailsearch', - 'wagtail.wagtailredirects', 'wagtail.wagtailforms', 'wagtail.contrib.wagtailstyleguide', 'wagtail.contrib.wagtailsitemaps', @@ -76,6 +75,27 @@ INSTALLED_APPS = [ 'wagtail.tests', ] +# If we are using Django 1.6, add South to INSTALLED_APPS +if django.VERSION < (1, 7): + INSTALLED_APPS.append('south') + + +# If we are using Django 1.7 install wagtailredirects with its appconfig +# Theres nothing special about wagtailredirects, we just need to have one +# app which uses AppConfigs to test that hooks load properly + +if django.VERSION < (1, 7): + INSTALLED_APPS.append('wagtail.wagtailredirects') +else: + INSTALLED_APPS.append('wagtail.wagtailredirects.apps.WagtailRedirectsAppConfig') + +# As we don't have south migrations for tests, South thinks +# the Django 1.7 migrations are South migrations. +SOUTH_MIGRATION_MODULES = { + 'tests': 'ignore', +} + + # Using DatabaseCache to make sure that the cache is cleared between tests. # This prevents false-positives in some wagtail core tests where we are # changing the 'wagtail_root_paths' key which may cause future tests to fail. diff --git a/wagtail/tests/wagtail_hooks.py b/wagtail/tests/wagtail_hooks.py index bb879ebe5..a7ff2804c 100644 --- a/wagtail/tests/wagtail_hooks.py +++ b/wagtail/tests/wagtail_hooks.py @@ -2,6 +2,7 @@ from django.http import HttpResponse from wagtail.wagtailcore import hooks from wagtail.wagtailcore.whitelist import attribute_rule, check_url, allow_without_attributes +from wagtail.wagtailadmin.menu import MenuItem # Register one hook using decorators... @@ -28,3 +29,12 @@ def block_googlebot(page, request, serve_args, serve_kwargs): if request.META.get('HTTP_USER_AGENT') == 'GoogleBot': return HttpResponse("

bad googlebot no cookie

") hooks.register('before_serve_page', block_googlebot) + + +class KittensMenuItem(MenuItem): + def is_shown(self, request): + return not request.GET.get('hide-kittens', False) + +@hooks.register('register_admin_menu_item') +def register_kittens_menu_item(): + return KittensMenuItem('Kittens!', 'http://www.tomroyal.com/teaandkittens/', classnames='icon icon-kitten', attrs={'data-fluffy': 'yes'}, order=10000) diff --git a/wagtail/utils/apps.py b/wagtail/utils/apps.py new file mode 100644 index 000000000..2bee7484e --- /dev/null +++ b/wagtail/utils/apps.py @@ -0,0 +1,35 @@ +try: + from importlib import import_module +except ImportError: + # for Python 2.6, fall back on django.utils.importlib (deprecated as of Django 1.7) + from django.utils.importlib import import_module + +import django +from django.conf import settings +from django.utils.module_loading import module_has_submodule + + +def get_app_modules(): + """ + Generator function that yields a module object for each installed app + yields tuples of (app_name, module) + """ + if django.VERSION < (1, 7): + # Django 1.6 + for app in settings.INSTALLED_APPS: + yield app, import_module(app) + else: + # Django 1.7+ + from django.apps import apps + for app in apps.get_app_configs(): + yield app.name, app.module + + +def get_app_submodules(submodule_name): + """ + Searches each app module for the specified submodule + yields tuples of (app_name, module) + """ + for name, module in get_app_modules(): + if module_has_submodule(module, submodule_name): + yield name, import_module('%s.%s' % (name, submodule_name)) diff --git a/wagtail/utils/deprecation.py b/wagtail/utils/deprecation.py index 24dc4e589..dd8d89e91 100644 --- a/wagtail/utils/deprecation.py +++ b/wagtail/utils/deprecation.py @@ -1,6 +1,6 @@ -class RemovedInWagtail06Warning(DeprecationWarning): +class RemovedInWagtail07Warning(DeprecationWarning): pass -class RemovedInWagtail07Warning(PendingDeprecationWarning): +class RemovedInWagtail08Warning(PendingDeprecationWarning): pass diff --git a/wagtail/wagtailadmin/__init__.py b/wagtail/wagtailadmin/__init__.py index e69de29bb..c0779fd93 100644 --- a/wagtail/wagtailadmin/__init__.py +++ b/wagtail/wagtailadmin/__init__.py @@ -0,0 +1 @@ +default_app_config = 'wagtail.wagtailadmin.apps.WagtailAdminAppConfig' diff --git a/wagtail/wagtailadmin/apps.py b/wagtail/wagtailadmin/apps.py new file mode 100644 index 000000000..c963dadef --- /dev/null +++ b/wagtail/wagtailadmin/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class WagtailAdminAppConfig(AppConfig): + name = 'wagtail.wagtailadmin' + label = 'wagtailadmin' + verbose_name = "Wagtail admin" diff --git a/wagtail/wagtailadmin/edit_handlers.py b/wagtail/wagtailadmin/edit_handlers.py index d2eb181c3..137bb207a 100644 --- a/wagtail/wagtailadmin/edit_handlers.py +++ b/wagtail/wagtailadmin/edit_handlers.py @@ -19,8 +19,8 @@ from django.core.urlresolvers import reverse from django.utils.translation import ugettext_lazy from wagtail.wagtailcore.models import Page -from wagtail.wagtailcore.utils import camelcase_to_underscore from wagtail.wagtailcore.fields import RichTextArea +from wagtail.wagtailcore.utils import camelcase_to_underscore, resolve_model_string FORM_FIELD_OVERRIDES = {} @@ -483,21 +483,16 @@ class BasePageChooserPanel(BaseChooserPanel): def target_content_type(cls): if cls._target_content_type is None: if cls.page_type: - if isinstance(cls.page_type, string_types): - # translate the passed model name into an actual model class - from django.db.models import get_model - try: - app_label, model_name = cls.page_type.split('.') - except ValueError: - raise ImproperlyConfigured("The page_type passed to PageChooserPanel must be of the form 'app_label.model_name'") + try: + model = resolve_model_string(cls.page_type) + except LookupError: + raise ImproperlyConfigured("{0}.page_type must be of the form 'app_label.model_name', given {1!r}".format( + cls.__name__, cls.page_type)) + except ValueError: + raise ImproperlyConfigured("{0}.page_type refers to model {1!r} that has not been installed".format( + cls.__name__, cls.page_type)) - page_type = get_model(app_label, model_name) - if page_type is None: - raise ImproperlyConfigured("PageChooserPanel refers to model '%s' that has not been installed" % cls.page_type) - else: - page_type = cls.page_type - - cls._target_content_type = ContentType.objects.get_for_model(page_type) + cls._target_content_type = ContentType.objects.get_for_model(model) else: # TODO: infer the content type by introspection on the foreign key cls._target_content_type = ContentType.objects.get_by_natural_key('wagtailcore', 'page') diff --git a/wagtail/wagtailadmin/hooks.py b/wagtail/wagtailadmin/hooks.py deleted file mode 100644 index 8c8a2374a..000000000 --- a/wagtail/wagtailadmin/hooks.py +++ /dev/null @@ -1,14 +0,0 @@ -# The 'hooks' module is now part of wagtailcore. -# Imports are provided here for backwards compatibility - -import warnings - -from wagtail.utils.deprecation import RemovedInWagtail06Warning - - -warnings.warn( - "The wagtail.wagtailadmin.hooks module has been moved. " - "Use wagtail.wagtailcore.hooks instead.", RemovedInWagtail06Warning) - - -from wagtail.wagtailcore.hooks import register, get_hooks diff --git a/wagtail/wagtailadmin/locale/bg/LC_MESSAGES/django.mo b/wagtail/wagtailadmin/locale/bg/LC_MESSAGES/django.mo index bad15500e..2ac7eb2e7 100644 Binary files a/wagtail/wagtailadmin/locale/bg/LC_MESSAGES/django.mo and b/wagtail/wagtailadmin/locale/bg/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailadmin/locale/bg/LC_MESSAGES/django.po b/wagtail/wagtailadmin/locale/bg/LC_MESSAGES/django.po index 1a6739d18..217f2028b 100644 --- a/wagtail/wagtailadmin/locale/bg/LC_MESSAGES/django.po +++ b/wagtail/wagtailadmin/locale/bg/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Lyuboslav Petrov , 2014 # Lyuboslav Petrov , 2014 @@ -9,21 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Bulgarian (http://www.transifex.com/projects/p/wagtail/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/projects/p/wagtail/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: edit_handlers.py:627 +#: edit_handlers.py:631 msgid "Scheduled publishing" msgstr "" -#: edit_handlers.py:641 +#: edit_handlers.py:645 msgid "Common page configuration" msgstr "" @@ -51,7 +52,9 @@ msgstr "Моля въведете вашият имейл адрес." msgid "" "Sorry, you cannot reset your password here as your user account is managed " "by another server." -msgstr "Не можете да възстановите паролата си тук, понеже акаунта ви се менижира от друг сървър." +msgstr "" +"Не можете да възстановите паролата си тук, понеже акаунта ви се менижира от " +"друг сървър." #: forms.py:76 msgid "This email address is not recognised." @@ -99,7 +102,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: forms.py:124 views/pages.py:155 views/pages.py:272 +#: forms.py:124 views/pages.py:153 views/pages.py:270 msgid "This slug is already in use" msgstr "Този слъг е вече в употреба" @@ -116,6 +119,16 @@ msgstr "" msgid "This field is required." msgstr "" +#: wagtail_hooks.py:15 templates/wagtailadmin/chooser/_search_results.html:12 +msgid "Explorer" +msgstr "Файлов мениджър" + +#: wagtail_hooks.py:23 templates/wagtailadmin/chooser/_search_form.html:7 +#: templates/wagtailadmin/pages/search.html:3 +#: templates/wagtailadmin/pages/search.html:16 +msgid "Search" +msgstr "Търсене" + #: templates/wagtailadmin/base.html:7 templates/wagtailadmin/home.html:4 msgid "Dashboard" msgstr "Работно Табло" @@ -133,7 +146,9 @@ msgstr "Добре дошъл в %(site_name)s Wagtail CMS" msgid "" "This is your dashboard on which helpful information about content you've " "created will be displayed." -msgstr "Това е вашето работно табло, където ще бъде показана полезна информация за контент, който сте създали." +msgstr "" +"Това е вашето работно табло, където ще бъде показана полезна информация за " +"контент, който сте създали." #: templates/wagtailadmin/login.html:4 templates/wagtailadmin/login.html:59 msgid "Sign in" @@ -165,7 +180,10 @@ msgid "" "Your avatar image is provided by Gravatar and is connected to your email " "address. With a Gravatar account you can set an avatar for any number of " "other email addresses you use." -msgstr "Снимката за вашият Аватар е предоставена от Gravatar и е свързана с вашия имейл адрес. Със сметка в Gravatar можете да зададете аватар за произволен брой други имейл адреси, които използвате." +msgstr "" +"Снимката за вашият Аватар е предоставена от Gravatar и е свързана с вашия " +"имейл адрес. Със сметка в Gravatar можете да зададете аватар за произволен " +"брой други имейл адреси, които използвате." #: templates/wagtailadmin/account/account.html:25 #: templates/wagtailadmin/account/change_password.html:4 @@ -192,7 +210,9 @@ msgstr "Смени парола" #: templates/wagtailadmin/account/change_password.html:21 msgid "" "Your password can't be changed here. Please contact a site administrator." -msgstr "Вашата парола не може да бъде променена тук. Моля свържете се с администратора на сайта." +msgstr "" +"Вашата парола не може да бъде променена тук. Моля свържете се с " +"администратора на сайта." #: templates/wagtailadmin/account/notification_preferences.html:4 #: templates/wagtailadmin/account/notification_preferences.html:6 @@ -263,19 +283,16 @@ msgstr "Външен линк" msgid "Email link" msgstr "Имейл линк" -#: templates/wagtailadmin/chooser/_search_form.html:7 -#: templates/wagtailadmin/pages/search.html:3 -#: templates/wagtailadmin/pages/search.html:16 -#: templatetags/wagtailadmin_tags.py:36 -msgid "Search" -msgstr "Търсене" +#: templates/wagtailadmin/chooser/_search_results.html:5 +#, python-format +msgid "" +"\n" +" Only pages of type \"%(type)s\" may be chosen for this field. " +"Search results will exclude pages of other types.\n" +" " +msgstr "" -#: templates/wagtailadmin/chooser/_search_results.html:3 -#: templatetags/wagtailadmin_tags.py:35 -msgid "Explorer" -msgstr "Файлов мениджър" - -#: templates/wagtailadmin/chooser/_search_results.html:8 +#: templates/wagtailadmin/chooser/_search_results.html:16 #, python-format msgid "" "\n" @@ -285,10 +302,19 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\nИма едно съвпадение" -msgstr[1] "\nИма %(counter)s съвпадения" +msgstr[0] "" +"\n" +"Има едно съвпадение" +msgstr[1] "" +"\n" +"Има %(counter)s съвпадения" -#: templates/wagtailadmin/chooser/browse.html:2 +#: templates/wagtailadmin/chooser/browse.html:3 +#, fuzzy +msgid "Choose" +msgstr "Изберете страница" + +#: templates/wagtailadmin/chooser/browse.html:6 #: templates/wagtailadmin/chooser/search.html:2 #: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:13 msgid "Choose a page" @@ -443,8 +469,14 @@ msgid_plural "" "\n" " %(total_pages)s Pages\n" " " -msgstr[0] "\n %(total_pages)s Страница\n " -msgstr[1] "\n %(total_pages)s Страници\n " +msgstr[0] "" +"\n" +" %(total_pages)s Страница\n" +" " +msgstr[1] "" +"\n" +" %(total_pages)s Страници\n" +" " #: templates/wagtailadmin/home/site_summary.html:16 #, python-format @@ -456,8 +488,12 @@ msgid_plural "" "\n" " %(total_images)s Images\n" " " -msgstr[0] "\n%(total_images)s Изображение" -msgstr[1] "\n%(total_images)s Изображения" +msgstr[0] "" +"\n" +"%(total_images)s Изображение" +msgstr[1] "" +"\n" +"%(total_images)s Изображения" #: templates/wagtailadmin/home/site_summary.html:25 #, python-format @@ -469,8 +505,12 @@ msgid_plural "" "\n" " %(total_docs)s Documents\n" " " -msgstr[0] "\n%(total_docs)s Документ" -msgstr[1] "\n%(total_docs)s Документи" +msgstr[0] "" +"\n" +"%(total_docs)s Документ" +msgstr[1] "" +"\n" +"%(total_docs)s Документи" #: templates/wagtailadmin/notifications/approved.html:1 #, python-format @@ -533,16 +573,19 @@ msgid "You can edit the privacy settings on:" msgstr "" #: templates/wagtailadmin/page_privacy/set_privacy.html:6 -msgid "Note: privacy changes apply to all children of this page too." +msgid "Privacy changes apply to all children of this page too." msgstr "" #: templates/wagtailadmin/pages/_moderator_userbar.html:4 #, python-format msgid "" "\n" -" Previewing '%(title)s', submitted by %(submitted_by)s on %(submitted_on)s.\n" +" Previewing '%(title)s', submitted by %(submitted_by)s on " +"%(submitted_on)s.\n" " " -msgstr "\nПреглед на '%(title)s', предоставена от %(submitted_by)s на %(submitted_on)s." +msgstr "" +"\n" +"Преглед на '%(title)s', предоставена от %(submitted_by)s на %(submitted_on)s." #: templates/wagtailadmin/pages/_privacy_indicator.html:9 msgid "Privacy" @@ -588,16 +631,26 @@ msgid "" " " msgid_plural "" "\n" -" This will also delete %(descendant_count)s more subpages.\n" +" This will also delete %(descendant_count)s more " +"subpages.\n" +" " +msgstr[0] "" +"\n" +" Това ще изтрие още една подстраница.\n" +" " +msgstr[1] "" +"\n" +" Това ще изтрие още %(descendant_count)s подстраници.\n" " " -msgstr[0] "\n Това ще изтрие още една подстраница.\n " -msgstr[1] "\n Това ще изтрие още %(descendant_count)s подстраници.\n " #: templates/wagtailadmin/pages/confirm_delete.html:22 msgid "" "Alternatively you can unpublish the page. This removes the page from public " "view and you can edit or publish it again later." -msgstr "Като алтернатива можете да прекратите публикуването на страницата. Това премахва страницата от обществен достъп и ще можете да редактирате или да го публикувате отново по-късно." +msgstr "" +"Като алтернатива можете да прекратите публикуването на страницата. Това " +"премахва страницата от обществен достъп и ще можете да редактирате или да го " +"публикувате отново по-късно." #: templates/wagtailadmin/pages/confirm_delete.html:26 msgid "Delete it" @@ -628,7 +681,9 @@ msgstr "Сигурни ли сте, че желаете да преместит msgid "" "Are you sure you want to move this page and all of its children into " "'%(title)s'?" -msgstr "Сигурни ли сте, че искате да преместите страницата и принадлежащите към нея дъщерни страници в '%(title)s'?" +msgstr "" +"Сигурни ли сте, че искате да преместите страницата и принадлежащите към нея " +"дъщерни страници в '%(title)s'?" #: templates/wagtailadmin/pages/confirm_move.html:18 msgid "Yes, move this page" @@ -855,7 +910,10 @@ msgid "" "\n" " Page %(page_number)s of %(num_pages)s.\n" " " -msgstr "\n Страница %(page_number)s от %(num_pages)s.\n " +msgstr "" +"\n" +" Страница %(page_number)s от %(num_pages)s.\n" +" " #: templates/wagtailadmin/pages/search_results.html:54 #, python-format @@ -994,66 +1052,66 @@ msgstr "Паролата ви бе променена успешно!" msgid "Your preferences have been updated successfully!" msgstr "" -#: views/pages.py:169 views/pages.py:286 +#: views/pages.py:167 views/pages.py:284 msgid "Go live date/time must be before expiry date/time" msgstr "" -#: views/pages.py:179 views/pages.py:296 +#: views/pages.py:177 views/pages.py:294 msgid "Expiry date/time must be in the future" msgstr "" -#: views/pages.py:219 views/pages.py:351 views/pages.py:791 +#: views/pages.py:217 views/pages.py:349 views/pages.py:766 msgid "Page '{0}' published." msgstr "Страница '{0}' е публикувана." -#: views/pages.py:221 views/pages.py:353 +#: views/pages.py:219 views/pages.py:351 msgid "Page '{0}' submitted for moderation." msgstr "Страница '{0}' е предоставена за модерация." -#: views/pages.py:224 +#: views/pages.py:222 msgid "Page '{0}' created." msgstr "Страница '{0}' е създадена." -#: views/pages.py:233 +#: views/pages.py:231 msgid "The page could not be created due to validation errors" msgstr "" -#: views/pages.py:356 +#: views/pages.py:354 msgid "Page '{0}' updated." msgstr "Страница '{0}' обновена." -#: views/pages.py:365 +#: views/pages.py:363 msgid "The page could not be saved due to validation errors" msgstr "Тази страница не можеше да бъде запазена поради валидационни грешки" -#: views/pages.py:378 +#: views/pages.py:376 msgid "This page is currently awaiting moderation" msgstr "Тази страница очаква да бъде модерирана" -#: views/pages.py:409 +#: views/pages.py:407 msgid "Page '{0}' deleted." msgstr "Страница '{0}' е изтрита." -#: views/pages.py:575 +#: views/pages.py:550 msgid "Page '{0}' unpublished." msgstr "Страница '{0}' отменена от публикуване." -#: views/pages.py:627 +#: views/pages.py:602 msgid "Page '{0}' moved." msgstr "Страница '{0}' преместена." -#: views/pages.py:709 +#: views/pages.py:684 msgid "Page '{0}' and {1} subpages copied." msgstr "" -#: views/pages.py:711 +#: views/pages.py:686 msgid "Page '{0}' copied." msgstr "" -#: views/pages.py:785 views/pages.py:804 views/pages.py:824 +#: views/pages.py:760 views/pages.py:779 views/pages.py:799 msgid "The page '{0}' is not currently awaiting moderation." msgstr "Страница '{0}' не очаква да бъде модерирана." -#: views/pages.py:810 +#: views/pages.py:785 msgid "Page '{0}' rejected for publication." msgstr "Страница '{0}' отхвърлена от публикуване." diff --git a/wagtail/wagtailadmin/locale/ca/LC_MESSAGES/django.mo b/wagtail/wagtailadmin/locale/ca/LC_MESSAGES/django.mo index de002f6a3..363488ff5 100644 Binary files a/wagtail/wagtailadmin/locale/ca/LC_MESSAGES/django.mo and b/wagtail/wagtailadmin/locale/ca/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailadmin/locale/ca/LC_MESSAGES/django.po b/wagtail/wagtailadmin/locale/ca/LC_MESSAGES/django.po index b24a5c00a..73c6529c7 100644 --- a/wagtail/wagtailadmin/locale/ca/LC_MESSAGES/django.po +++ b/wagtail/wagtailadmin/locale/ca/LC_MESSAGES/django.po @@ -1,28 +1,29 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # David Llop , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Catalan (http://www.transifex.com/projects/p/wagtail/language/ca/)\n" +"Language-Team: Catalan (http://www.transifex.com/projects/p/wagtail/language/" +"ca/)\n" +"Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: edit_handlers.py:627 +#: edit_handlers.py:631 msgid "Scheduled publishing" msgstr "" -#: edit_handlers.py:641 +#: edit_handlers.py:645 msgid "Common page configuration" msgstr "Configuració de la pàgina comú" @@ -50,7 +51,9 @@ msgstr "Si us plau escriu el teu correu" msgid "" "Sorry, you cannot reset your password here as your user account is managed " "by another server." -msgstr "Ho sentim, no pots reiniciar la teva contrasenya aquí ja que la teva conta d'usuari es administrada per un altre servidor" +msgstr "" +"Ho sentim, no pots reiniciar la teva contrasenya aquí ja que la teva conta " +"d'usuari es administrada per un altre servidor" #: forms.py:76 msgid "This email address is not recognised." @@ -98,7 +101,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: forms.py:124 views/pages.py:155 views/pages.py:272 +#: forms.py:124 views/pages.py:153 views/pages.py:270 msgid "This slug is already in use" msgstr "Aquest llimac ja està en ús" @@ -115,6 +118,16 @@ msgstr "" msgid "This field is required." msgstr "" +#: wagtail_hooks.py:15 templates/wagtailadmin/chooser/_search_results.html:12 +msgid "Explorer" +msgstr "Explorador" + +#: wagtail_hooks.py:23 templates/wagtailadmin/chooser/_search_form.html:7 +#: templates/wagtailadmin/pages/search.html:3 +#: templates/wagtailadmin/pages/search.html:16 +msgid "Search" +msgstr "Cercar" + #: templates/wagtailadmin/base.html:7 templates/wagtailadmin/home.html:4 msgid "Dashboard" msgstr "Tauler de control" @@ -132,7 +145,9 @@ msgstr "Benvingut al Wagtail CMS del lloc %(site_name)s" msgid "" "This is your dashboard on which helpful information about content you've " "created will be displayed." -msgstr "Aquest es el teu tauler de control on es mostrarà informació útil sobre el contingut que has creat" +msgstr "" +"Aquest es el teu tauler de control on es mostrarà informació útil sobre el " +"contingut que has creat" #: templates/wagtailadmin/login.html:4 templates/wagtailadmin/login.html:59 msgid "Sign in" @@ -140,7 +155,9 @@ msgstr "Registra't" #: templates/wagtailadmin/login.html:18 msgid "Your username and password didn't match. Please try again." -msgstr "El teu nom d'usuari i la teva contrasenya no coincideixen. Si us plau torna-ho a intentar" +msgstr "" +"El teu nom d'usuari i la teva contrasenya no coincideixen. Si us plau torna-" +"ho a intentar" #: templates/wagtailadmin/login.html:26 msgid "Sign in to Wagtail" @@ -164,7 +181,10 @@ msgid "" "Your avatar image is provided by Gravatar and is connected to your email " "address. With a Gravatar account you can set an avatar for any number of " "other email addresses you use." -msgstr "La teva imatge de perfil és subministrada per Gravatar i està conectada al teu correu. Amb una conta de Gravatar pots definir una imatge de perfil per cadascuna de la resta d'adreces de correu que fas servir." +msgstr "" +"La teva imatge de perfil és subministrada per Gravatar i està conectada al " +"teu correu. Amb una conta de Gravatar pots definir una imatge de perfil per " +"cadascuna de la resta d'adreces de correu que fas servir." #: templates/wagtailadmin/account/account.html:25 #: templates/wagtailadmin/account/change_password.html:4 @@ -191,7 +211,9 @@ msgstr "Canvia la contrasenya" #: templates/wagtailadmin/account/change_password.html:21 msgid "" "Your password can't be changed here. Please contact a site administrator." -msgstr "La teva contrasenya no es pot canviar des d'aquí. Si us plau contacta amb l'administrador de la web" +msgstr "" +"La teva contrasenya no es pot canviar des d'aquí. Si us plau contacta amb " +"l'administrador de la web" #: templates/wagtailadmin/account/notification_preferences.html:4 #: templates/wagtailadmin/account/notification_preferences.html:6 @@ -262,19 +284,16 @@ msgstr "Enllaç extern" msgid "Email link" msgstr "Enllaç de correu electrònic" -#: templates/wagtailadmin/chooser/_search_form.html:7 -#: templates/wagtailadmin/pages/search.html:3 -#: templates/wagtailadmin/pages/search.html:16 -#: templatetags/wagtailadmin_tags.py:36 -msgid "Search" -msgstr "Cercar" +#: templates/wagtailadmin/chooser/_search_results.html:5 +#, python-format +msgid "" +"\n" +" Only pages of type \"%(type)s\" may be chosen for this field. " +"Search results will exclude pages of other types.\n" +" " +msgstr "" -#: templates/wagtailadmin/chooser/_search_results.html:3 -#: templatetags/wagtailadmin_tags.py:35 -msgid "Explorer" -msgstr "Explorador" - -#: templates/wagtailadmin/chooser/_search_results.html:8 +#: templates/wagtailadmin/chooser/_search_results.html:16 #, python-format msgid "" "\n" @@ -284,10 +303,19 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\nHi ha un resultat" -msgstr[1] "\nHi han %(counter)s resultats" +msgstr[0] "" +"\n" +"Hi ha un resultat" +msgstr[1] "" +"\n" +"Hi han %(counter)s resultats" -#: templates/wagtailadmin/chooser/browse.html:2 +#: templates/wagtailadmin/chooser/browse.html:3 +#, fuzzy +msgid "Choose" +msgstr "Escull una pàgina" + +#: templates/wagtailadmin/chooser/browse.html:6 #: templates/wagtailadmin/chooser/search.html:2 #: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:13 msgid "Choose a page" @@ -442,8 +470,12 @@ msgid_plural "" "\n" " %(total_pages)s Pages\n" " " -msgstr[0] "\n%(total_pages)s Pàgina" -msgstr[1] "\n%(total_pages)sPàgines" +msgstr[0] "" +"\n" +"%(total_pages)s Pàgina" +msgstr[1] "" +"\n" +"%(total_pages)sPàgines" #: templates/wagtailadmin/home/site_summary.html:16 #, python-format @@ -455,8 +487,12 @@ msgid_plural "" "\n" " %(total_images)s Images\n" " " -msgstr[0] "\n%(total_images)s Imatge" -msgstr[1] "\n%(total_images)s Imatges" +msgstr[0] "" +"\n" +"%(total_images)s Imatge" +msgstr[1] "" +"\n" +"%(total_images)s Imatges" #: templates/wagtailadmin/home/site_summary.html:25 #, python-format @@ -468,8 +504,12 @@ msgid_plural "" "\n" " %(total_docs)s Documents\n" " " -msgstr[0] "\n%(total_docs)s Document" -msgstr[1] "\n%(total_docs)s Documents" +msgstr[0] "" +"\n" +"%(total_docs)s Document" +msgstr[1] "" +"\n" +"%(total_docs)s Documents" #: templates/wagtailadmin/notifications/approved.html:1 #, python-format @@ -532,16 +572,19 @@ msgid "You can edit the privacy settings on:" msgstr "" #: templates/wagtailadmin/page_privacy/set_privacy.html:6 -msgid "Note: privacy changes apply to all children of this page too." +msgid "Privacy changes apply to all children of this page too." msgstr "" #: templates/wagtailadmin/pages/_moderator_userbar.html:4 #, python-format msgid "" "\n" -" Previewing '%(title)s', submitted by %(submitted_by)s on %(submitted_on)s.\n" +" Previewing '%(title)s', submitted by %(submitted_by)s on " +"%(submitted_on)s.\n" " " -msgstr "\nPrevisualitzant '%(title)s, enviada per %(submitted_by)s el %(submitted_on)s." +msgstr "" +"\n" +"Previsualitzant '%(title)s, enviada per %(submitted_by)s el %(submitted_on)s." #: templates/wagtailadmin/pages/_privacy_indicator.html:9 msgid "Privacy" @@ -587,16 +630,23 @@ msgid "" " " msgid_plural "" "\n" -" This will also delete %(descendant_count)s more subpages.\n" +" This will also delete %(descendant_count)s more " +"subpages.\n" " " -msgstr[0] "\nAixò també esborrarà una subpàgina més." -msgstr[1] "\nAixò també esborrarà %(descendant_count)s subpàgines més." +msgstr[0] "" +"\n" +"Això també esborrarà una subpàgina més." +msgstr[1] "" +"\n" +"Això també esborrarà %(descendant_count)s subpàgines més." #: templates/wagtailadmin/pages/confirm_delete.html:22 msgid "" "Alternatively you can unpublish the page. This removes the page from public " "view and you can edit or publish it again later." -msgstr "Alternativament pots despublicar la pàgina. Això treu la pàgina de la vista pública i podràs editar-la o tornar-la a publicar desprès." +msgstr "" +"Alternativament pots despublicar la pàgina. Això treu la pàgina de la vista " +"pública i podràs editar-la o tornar-la a publicar desprès." #: templates/wagtailadmin/pages/confirm_delete.html:26 msgid "Delete it" @@ -627,7 +677,9 @@ msgstr "Estàs segur que vols moure aquesta pàgina dins de '%(title)s'?" msgid "" "Are you sure you want to move this page and all of its children into " "'%(title)s'?" -msgstr "Estàs segur que vols moure aquesta pàgina i els seus fills dins de '%(title)s'?" +msgstr "" +"Estàs segur que vols moure aquesta pàgina i els seus fills dins de " +"'%(title)s'?" #: templates/wagtailadmin/pages/confirm_move.html:18 msgid "Yes, move this page" @@ -854,7 +906,9 @@ msgid "" "\n" " Page %(page_number)s of %(num_pages)s.\n" " " -msgstr "\nPàgina %(page_number)s de %(num_pages)s." +msgstr "" +"\n" +"Pàgina %(page_number)s de %(num_pages)s." #: templates/wagtailadmin/pages/search_results.html:54 #, python-format @@ -993,66 +1047,66 @@ msgstr "S'ha canviat la teva contrasenya!" msgid "Your preferences have been updated successfully!" msgstr "" -#: views/pages.py:169 views/pages.py:286 +#: views/pages.py:167 views/pages.py:284 msgid "Go live date/time must be before expiry date/time" msgstr "" -#: views/pages.py:179 views/pages.py:296 +#: views/pages.py:177 views/pages.py:294 msgid "Expiry date/time must be in the future" msgstr "" -#: views/pages.py:219 views/pages.py:351 views/pages.py:791 +#: views/pages.py:217 views/pages.py:349 views/pages.py:766 msgid "Page '{0}' published." msgstr "Pàgina '{0}' publicada." -#: views/pages.py:221 views/pages.py:353 +#: views/pages.py:219 views/pages.py:351 msgid "Page '{0}' submitted for moderation." msgstr "Pàgina '{0}' enviada per revisió" -#: views/pages.py:224 +#: views/pages.py:222 msgid "Page '{0}' created." msgstr "Pàgina '{0}' creada." -#: views/pages.py:233 +#: views/pages.py:231 msgid "The page could not be created due to validation errors" msgstr "" -#: views/pages.py:356 +#: views/pages.py:354 msgid "Page '{0}' updated." msgstr "Pàgina '{0}' actualitzada." -#: views/pages.py:365 +#: views/pages.py:363 msgid "The page could not be saved due to validation errors" msgstr "La pàgina no s'ha pogut guardar degut a errors de validació" -#: views/pages.py:378 +#: views/pages.py:376 msgid "This page is currently awaiting moderation" msgstr "Aquesta pàgina està esperant moderació" -#: views/pages.py:409 +#: views/pages.py:407 msgid "Page '{0}' deleted." msgstr "Pàgina '{0}' eliminada." -#: views/pages.py:575 +#: views/pages.py:550 msgid "Page '{0}' unpublished." msgstr "Pàgina '{0}' despublicada." -#: views/pages.py:627 +#: views/pages.py:602 msgid "Page '{0}' moved." msgstr "Pàgina '{0}' moguda." -#: views/pages.py:709 +#: views/pages.py:684 msgid "Page '{0}' and {1} subpages copied." msgstr "" -#: views/pages.py:711 +#: views/pages.py:686 msgid "Page '{0}' copied." msgstr "" -#: views/pages.py:785 views/pages.py:804 views/pages.py:824 +#: views/pages.py:760 views/pages.py:779 views/pages.py:799 msgid "The page '{0}' is not currently awaiting moderation." msgstr "La pàgina '{0}' ja no es troba esperant moderació." -#: views/pages.py:810 +#: views/pages.py:785 msgid "Page '{0}' rejected for publication." msgstr "La pàgina '{0}' ha estat rebutjada per publicació" diff --git a/wagtail/wagtailadmin/locale/de/LC_MESSAGES/django.mo b/wagtail/wagtailadmin/locale/de/LC_MESSAGES/django.mo index 3eb226630..e418c7eea 100644 Binary files a/wagtail/wagtailadmin/locale/de/LC_MESSAGES/django.mo and b/wagtail/wagtailadmin/locale/de/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailadmin/locale/de/LC_MESSAGES/django.po b/wagtail/wagtailadmin/locale/de/LC_MESSAGES/django.po index 589af7b7f..ae1adf617 100644 --- a/wagtail/wagtailadmin/locale/de/LC_MESSAGES/django.po +++ b/wagtail/wagtailadmin/locale/de/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Johannes Spielmann , 2014 # karlsander , 2014 @@ -10,21 +10,22 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: German (http://www.transifex.com/projects/p/wagtail/language/de/)\n" +"Language-Team: German (http://www.transifex.com/projects/p/wagtail/language/" +"de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: edit_handlers.py:627 +#: edit_handlers.py:631 msgid "Scheduled publishing" msgstr "" -#: edit_handlers.py:641 +#: edit_handlers.py:645 msgid "Common page configuration" msgstr "Allgemeine Seiten Konfiguration" @@ -52,7 +53,9 @@ msgstr "Bitte geben Sie ihre Email Adresse ein." msgid "" "Sorry, you cannot reset your password here as your user account is managed " "by another server." -msgstr "Sie können Ihr Passwort hier leider nicht zurücksetzen, da Ihr Benutzerkonto von einem anderen Server verwaltet wird." +msgstr "" +"Sie können Ihr Passwort hier leider nicht zurücksetzen, da Ihr Benutzerkonto " +"von einem anderen Server verwaltet wird." #: forms.py:76 msgid "This email address is not recognised." @@ -100,7 +103,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: forms.py:124 views/pages.py:155 views/pages.py:272 +#: forms.py:124 views/pages.py:153 views/pages.py:270 msgid "This slug is already in use" msgstr "Der Kurztitel wird bereits verwendet" @@ -117,6 +120,16 @@ msgstr "" msgid "This field is required." msgstr "" +#: wagtail_hooks.py:15 templates/wagtailadmin/chooser/_search_results.html:12 +msgid "Explorer" +msgstr "Explorer" + +#: wagtail_hooks.py:23 templates/wagtailadmin/chooser/_search_form.html:7 +#: templates/wagtailadmin/pages/search.html:3 +#: templates/wagtailadmin/pages/search.html:16 +msgid "Search" +msgstr "Suche" + #: templates/wagtailadmin/base.html:7 templates/wagtailadmin/home.html:4 msgid "Dashboard" msgstr "Dashboard" @@ -134,7 +147,9 @@ msgstr "Willkommen zum %(site_name)s Wagtail CMS" msgid "" "This is your dashboard on which helpful information about content you've " "created will be displayed." -msgstr "Das ist Ihr Dashboard, auf dem nützliche Informationen zu den Inhalten, die Sie erstellen, zusammengestellt werden." +msgstr "" +"Das ist Ihr Dashboard, auf dem nützliche Informationen zu den Inhalten, die " +"Sie erstellen, zusammengestellt werden." #: templates/wagtailadmin/login.html:4 templates/wagtailadmin/login.html:59 msgid "Sign in" @@ -142,7 +157,9 @@ msgstr "Anmelden" #: templates/wagtailadmin/login.html:18 msgid "Your username and password didn't match. Please try again." -msgstr "Ihr Benutzername und Ihr Passwort wurden nicht erkannt. Bitte versuchen Sie es erneut." +msgstr "" +"Ihr Benutzername und Ihr Passwort wurden nicht erkannt. Bitte versuchen Sie " +"es erneut." #: templates/wagtailadmin/login.html:26 msgid "Sign in to Wagtail" @@ -166,7 +183,10 @@ msgid "" "Your avatar image is provided by Gravatar and is connected to your email " "address. With a Gravatar account you can set an avatar for any number of " "other email addresses you use." -msgstr "Ihr Profilbild wird von Gravatar zur Verfügung gestellt und ist mit Ihrer Email Adresse verknüpft. Mit einem Gravatar Benutzerkonto können Sie die Profilbilder für all Ihre Email Adressen verwalten." +msgstr "" +"Ihr Profilbild wird von Gravatar zur Verfügung gestellt und ist mit Ihrer " +"Email Adresse verknüpft. Mit einem Gravatar Benutzerkonto können Sie die " +"Profilbilder für all Ihre Email Adressen verwalten." #: templates/wagtailadmin/account/account.html:25 #: templates/wagtailadmin/account/change_password.html:4 @@ -193,7 +213,9 @@ msgstr "Password ändern" #: templates/wagtailadmin/account/change_password.html:21 msgid "" "Your password can't be changed here. Please contact a site administrator." -msgstr "Sie können Ihr Passwort hier nicht ändern. Bitte kontaktieren Sie einen Administrator der Seite." +msgstr "" +"Sie können Ihr Passwort hier nicht ändern. Bitte kontaktieren Sie einen " +"Administrator der Seite." #: templates/wagtailadmin/account/notification_preferences.html:4 #: templates/wagtailadmin/account/notification_preferences.html:6 @@ -235,7 +257,8 @@ msgstr "Überprüfen Sie ihre Emails." #: templates/wagtailadmin/account/password_reset/done.html:16 msgid "A link to reset your password has been emailed to you." -msgstr "Ein Link zum Zurücksetzen Ihres Passwortes wurde Ihnen per Email zugesandt." +msgstr "" +"Ein Link zum Zurücksetzen Ihres Passwortes wurde Ihnen per Email zugesandt." #: templates/wagtailadmin/account/password_reset/email.txt:2 msgid "Please follow the link below to reset your password" @@ -264,19 +287,16 @@ msgstr "Externer Link" msgid "Email link" msgstr "Email-Link" -#: templates/wagtailadmin/chooser/_search_form.html:7 -#: templates/wagtailadmin/pages/search.html:3 -#: templates/wagtailadmin/pages/search.html:16 -#: templatetags/wagtailadmin_tags.py:36 -msgid "Search" -msgstr "Suche" +#: templates/wagtailadmin/chooser/_search_results.html:5 +#, python-format +msgid "" +"\n" +" Only pages of type \"%(type)s\" may be chosen for this field. " +"Search results will exclude pages of other types.\n" +" " +msgstr "" -#: templates/wagtailadmin/chooser/_search_results.html:3 -#: templatetags/wagtailadmin_tags.py:35 -msgid "Explorer" -msgstr "Explorer" - -#: templates/wagtailadmin/chooser/_search_results.html:8 +#: templates/wagtailadmin/chooser/_search_results.html:16 #, python-format msgid "" "\n" @@ -286,10 +306,19 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\nEs gibt ein Ergebnis." -msgstr[1] "\nEs gibt %(counter)s Ergebnisse." +msgstr[0] "" +"\n" +"Es gibt ein Ergebnis." +msgstr[1] "" +"\n" +"Es gibt %(counter)s Ergebnisse." -#: templates/wagtailadmin/chooser/browse.html:2 +#: templates/wagtailadmin/chooser/browse.html:3 +#, fuzzy +msgid "Choose" +msgstr "Seite auswählen" + +#: templates/wagtailadmin/chooser/browse.html:6 #: templates/wagtailadmin/chooser/search.html:2 #: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:13 msgid "Choose a page" @@ -444,8 +473,12 @@ msgid_plural "" "\n" " %(total_pages)s Pages\n" " " -msgstr[0] "\n%(total_pages)s Seite" -msgstr[1] "\n%(total_pages)s Seiten" +msgstr[0] "" +"\n" +"%(total_pages)s Seite" +msgstr[1] "" +"\n" +"%(total_pages)s Seiten" #: templates/wagtailadmin/home/site_summary.html:16 #, python-format @@ -457,8 +490,12 @@ msgid_plural "" "\n" " %(total_images)s Images\n" " " -msgstr[0] "\n%(total_images)s Bild" -msgstr[1] "\n%(total_images)s Bilder" +msgstr[0] "" +"\n" +"%(total_images)s Bild" +msgstr[1] "" +"\n" +"%(total_images)s Bilder" #: templates/wagtailadmin/home/site_summary.html:25 #, python-format @@ -470,8 +507,12 @@ msgid_plural "" "\n" " %(total_docs)s Documents\n" " " -msgstr[0] "\n%(total_docs)s Dokument" -msgstr[1] "\n%(total_docs)s Dokumente" +msgstr[0] "" +"\n" +"%(total_docs)s Dokument" +msgstr[1] "" +"\n" +"%(total_docs)s Dokumente" #: templates/wagtailadmin/notifications/approved.html:1 #, python-format @@ -534,16 +575,20 @@ msgid "You can edit the privacy settings on:" msgstr "" #: templates/wagtailadmin/page_privacy/set_privacy.html:6 -msgid "Note: privacy changes apply to all children of this page too." +msgid "Privacy changes apply to all children of this page too." msgstr "" #: templates/wagtailadmin/pages/_moderator_userbar.html:4 #, python-format msgid "" "\n" -" Previewing '%(title)s', submitted by %(submitted_by)s on %(submitted_on)s.\n" +" Previewing '%(title)s', submitted by %(submitted_by)s on " +"%(submitted_on)s.\n" " " -msgstr "\nVorschau für '%(title)s', eingereicht von %(submitted_by)s am %(submitted_on)s." +msgstr "" +"\n" +"Vorschau für '%(title)s', eingereicht von %(submitted_by)s am " +"%(submitted_on)s." #: templates/wagtailadmin/pages/_privacy_indicator.html:9 msgid "Privacy" @@ -589,16 +634,24 @@ msgid "" " " msgid_plural "" "\n" -" This will also delete %(descendant_count)s more subpages.\n" +" This will also delete %(descendant_count)s more " +"subpages.\n" " " -msgstr[0] "\nEine weitere Unterseite wird auch gelöscht." -msgstr[1] "\n%(descendant_count)s Unterseiten werden auch gelöscht." +msgstr[0] "" +"\n" +"Eine weitere Unterseite wird auch gelöscht." +msgstr[1] "" +"\n" +"%(descendant_count)s Unterseiten werden auch gelöscht." #: templates/wagtailadmin/pages/confirm_delete.html:22 msgid "" "Alternatively you can unpublish the page. This removes the page from public " "view and you can edit or publish it again later." -msgstr "Alternativ können Sie die Seite depublizieren. Die Seite wird aus der öffentlichen Ansicht entfernt und Sie können sie später noch bearbeiten oder erneut veröffentlichen." +msgstr "" +"Alternativ können Sie die Seite depublizieren. Die Seite wird aus der " +"öffentlichen Ansicht entfernt und Sie können sie später noch bearbeiten oder " +"erneut veröffentlichen." #: templates/wagtailadmin/pages/confirm_delete.html:26 msgid "Delete it" @@ -622,14 +675,17 @@ msgstr "Verschieben" #: templates/wagtailadmin/pages/confirm_move.html:11 #, python-format msgid "Are you sure you want to move this page into '%(title)s'?" -msgstr "Sind Sie sicher, dass Sie diese Seite nach '%(title)s' verschieben wollen?" +msgstr "" +"Sind Sie sicher, dass Sie diese Seite nach '%(title)s' verschieben wollen?" #: templates/wagtailadmin/pages/confirm_move.html:13 #, python-format msgid "" "Are you sure you want to move this page and all of its children into " "'%(title)s'?" -msgstr "Sind Sie sicher, dass Sie diese Seite und alle untergeordneten Seiten nach '%(title)s' verschieben wollen?" +msgstr "" +"Sind Sie sicher, dass Sie diese Seite und alle untergeordneten Seiten nach " +"'%(title)s' verschieben wollen?" #: templates/wagtailadmin/pages/confirm_move.html:18 msgid "Yes, move this page" @@ -856,12 +912,15 @@ msgid "" "\n" " Page %(page_number)s of %(num_pages)s.\n" " " -msgstr "\nSeite %(page_number)s von %(num_pages)s." +msgstr "" +"\n" +"Seite %(page_number)s von %(num_pages)s." #: templates/wagtailadmin/pages/search_results.html:54 #, python-format msgid "Sorry, no pages match \"%(query_string)s\"" -msgstr "Es gibt leider keine Seiten zum Suchbegriff \"%(query_string)s\"" +msgstr "" +"Es gibt leider keine Seiten zum Suchbegriff \"%(query_string)s\"" #: templates/wagtailadmin/pages/search_results.html:56 msgid "Enter a search term above" @@ -995,66 +1054,68 @@ msgstr "Ihr Passwort wurde erfolgreich geändert." msgid "Your preferences have been updated successfully!" msgstr "" -#: views/pages.py:169 views/pages.py:286 +#: views/pages.py:167 views/pages.py:284 msgid "Go live date/time must be before expiry date/time" msgstr "" -#: views/pages.py:179 views/pages.py:296 +#: views/pages.py:177 views/pages.py:294 msgid "Expiry date/time must be in the future" msgstr "" -#: views/pages.py:219 views/pages.py:351 views/pages.py:791 +#: views/pages.py:217 views/pages.py:349 views/pages.py:766 msgid "Page '{0}' published." msgstr "Seite '{0}' veröffentlicht." -#: views/pages.py:221 views/pages.py:353 +#: views/pages.py:219 views/pages.py:351 msgid "Page '{0}' submitted for moderation." msgstr "Seite '{0}' zur Freischaltung eingereicht." -#: views/pages.py:224 +#: views/pages.py:222 msgid "Page '{0}' created." msgstr "Seite '{0}' erstellt." -#: views/pages.py:233 +#: views/pages.py:231 msgid "The page could not be created due to validation errors" msgstr "" -#: views/pages.py:356 +#: views/pages.py:354 msgid "Page '{0}' updated." msgstr "Seite '{0}' geändert." -#: views/pages.py:365 +#: views/pages.py:363 msgid "The page could not be saved due to validation errors" -msgstr "Aufgrund von Fehlern bei der Validierung konnte die Seite nicht gespeichert werden." +msgstr "" +"Aufgrund von Fehlern bei der Validierung konnte die Seite nicht gespeichert " +"werden." -#: views/pages.py:378 +#: views/pages.py:376 msgid "This page is currently awaiting moderation" msgstr "Diese Seite wartet derzeit auf Freischaltung" -#: views/pages.py:409 +#: views/pages.py:407 msgid "Page '{0}' deleted." msgstr "Seite '{0}' gelöscht." -#: views/pages.py:575 +#: views/pages.py:550 msgid "Page '{0}' unpublished." msgstr "Seite '{0}' depubliziert." -#: views/pages.py:627 +#: views/pages.py:602 msgid "Page '{0}' moved." msgstr "Seite '{0}' verschoben." -#: views/pages.py:709 +#: views/pages.py:684 msgid "Page '{0}' and {1} subpages copied." msgstr "" -#: views/pages.py:711 +#: views/pages.py:686 msgid "Page '{0}' copied." msgstr "" -#: views/pages.py:785 views/pages.py:804 views/pages.py:824 +#: views/pages.py:760 views/pages.py:779 views/pages.py:799 msgid "The page '{0}' is not currently awaiting moderation." msgstr "Die Seite '{0}' wartet derzeit nicht auf Freischaltung." -#: views/pages.py:810 +#: views/pages.py:785 msgid "Page '{0}' rejected for publication." msgstr "Die Veröffentlichung der Seite '{0}' wurde abgelehnt." diff --git a/wagtail/wagtailadmin/locale/el/LC_MESSAGES/django.mo b/wagtail/wagtailadmin/locale/el/LC_MESSAGES/django.mo index 8bc41d0a6..35fccc162 100644 Binary files a/wagtail/wagtailadmin/locale/el/LC_MESSAGES/django.mo and b/wagtail/wagtailadmin/locale/el/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailadmin/locale/el/LC_MESSAGES/django.po b/wagtail/wagtailadmin/locale/el/LC_MESSAGES/django.po index 1ab108d02..7d4331ee4 100644 --- a/wagtail/wagtailadmin/locale/el/LC_MESSAGES/django.po +++ b/wagtail/wagtailadmin/locale/el/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # serafeim , 2014 # serafeim , 2014 @@ -9,21 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Greek (http://www.transifex.com/projects/p/wagtail/language/el/)\n" +"Language-Team: Greek (http://www.transifex.com/projects/p/wagtail/language/" +"el/)\n" +"Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: edit_handlers.py:627 +#: edit_handlers.py:631 msgid "Scheduled publishing" msgstr "" -#: edit_handlers.py:641 +#: edit_handlers.py:645 msgid "Common page configuration" msgstr "Κοινές ρυθμίσεις σελίδων" @@ -51,7 +52,9 @@ msgstr "Συμπληρώσατε τη διεύθυνση email σας." msgid "" "Sorry, you cannot reset your password here as your user account is managed " "by another server." -msgstr "Λυπούμαστε, δε μπορείτε να αλλάξετε τον κωδικό σας διότι το λογαριασμό χρήστη σας τον διαχειρίζεται ένας διαφορετικός εξυπηρετητής." +msgstr "" +"Λυπούμαστε, δε μπορείτε να αλλάξετε τον κωδικό σας διότι το λογαριασμό " +"χρήστη σας τον διαχειρίζεται ένας διαφορετικός εξυπηρετητής." #: forms.py:76 msgid "This email address is not recognised." @@ -99,7 +102,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: forms.py:124 views/pages.py:155 views/pages.py:272 +#: forms.py:124 views/pages.py:153 views/pages.py:270 msgid "This slug is already in use" msgstr "Το slug χρησιμοποιείται" @@ -116,6 +119,16 @@ msgstr "" msgid "This field is required." msgstr "" +#: wagtail_hooks.py:15 templates/wagtailadmin/chooser/_search_results.html:12 +msgid "Explorer" +msgstr "Εξερευνητής" + +#: wagtail_hooks.py:23 templates/wagtailadmin/chooser/_search_form.html:7 +#: templates/wagtailadmin/pages/search.html:3 +#: templates/wagtailadmin/pages/search.html:16 +msgid "Search" +msgstr "Αναζήτηση" + #: templates/wagtailadmin/base.html:7 templates/wagtailadmin/home.html:4 msgid "Dashboard" msgstr "Πίνακας ελέγχου" @@ -133,7 +146,9 @@ msgstr "Καλώς ήρθατε στο %(site_name)s Wagtail CMS" msgid "" "This is your dashboard on which helpful information about content you've " "created will be displayed." -msgstr "Αυτός είναι ο πίνακας ελέγχου στον οποίο εμφανίζονται πληροφορίες σχετικές με το περιεχόμενου που έχετε δημιουργήσει." +msgstr "" +"Αυτός είναι ο πίνακας ελέγχου στον οποίο εμφανίζονται πληροφορίες σχετικές " +"με το περιεχόμενου που έχετε δημιουργήσει." #: templates/wagtailadmin/login.html:4 templates/wagtailadmin/login.html:59 msgid "Sign in" @@ -165,7 +180,10 @@ msgid "" "Your avatar image is provided by Gravatar and is connected to your email " "address. With a Gravatar account you can set an avatar for any number of " "other email addresses you use." -msgstr "Η εικόνα σας παρέχετε από το Gravatar και συσχετίζεται με τη διεύθυνση email σας. Με το λογαριασμό σας στο Gravatar μπορείτε να δημιουργήσετε εικόνα και για τις άλλες διευθύνσεις email που έχετε." +msgstr "" +"Η εικόνα σας παρέχετε από το Gravatar και συσχετίζεται με τη διεύθυνση email " +"σας. Με το λογαριασμό σας στο Gravatar μπορείτε να δημιουργήσετε εικόνα και " +"για τις άλλες διευθύνσεις email που έχετε." #: templates/wagtailadmin/account/account.html:25 #: templates/wagtailadmin/account/change_password.html:4 @@ -192,7 +210,8 @@ msgstr "Αλλαγή κωδικού" #: templates/wagtailadmin/account/change_password.html:21 msgid "" "Your password can't be changed here. Please contact a site administrator." -msgstr "Ο κωδικός σας δε μπορεί να αλλαχτεί εδώ. Παρακαλώ ενημερώστε το διαχειριστή." +msgstr "" +"Ο κωδικός σας δε μπορεί να αλλαχτεί εδώ. Παρακαλώ ενημερώστε το διαχειριστή." #: templates/wagtailadmin/account/notification_preferences.html:4 #: templates/wagtailadmin/account/notification_preferences.html:6 @@ -238,7 +257,8 @@ msgstr "Μια σύνδεση για ανανέωση του κωδικού σα #: templates/wagtailadmin/account/password_reset/email.txt:2 msgid "Please follow the link below to reset your password" -msgstr "Παρακαλούμε ακολουθήστε τη σύνδεση παρακάτω για να ανανεώσετε τον κωδικό σας" +msgstr "" +"Παρακαλούμε ακολουθήστε τη σύνδεση παρακάτω για να ανανεώσετε τον κωδικό σας" #: templates/wagtailadmin/account/password_reset/email_subject.txt:2 msgid "Password reset" @@ -263,19 +283,16 @@ msgstr "Εξωτερική σύνδεση" msgid "Email link" msgstr "Σύνδεση με email" -#: templates/wagtailadmin/chooser/_search_form.html:7 -#: templates/wagtailadmin/pages/search.html:3 -#: templates/wagtailadmin/pages/search.html:16 -#: templatetags/wagtailadmin_tags.py:36 -msgid "Search" -msgstr "Αναζήτηση" +#: templates/wagtailadmin/chooser/_search_results.html:5 +#, python-format +msgid "" +"\n" +" Only pages of type \"%(type)s\" may be chosen for this field. " +"Search results will exclude pages of other types.\n" +" " +msgstr "" -#: templates/wagtailadmin/chooser/_search_results.html:3 -#: templatetags/wagtailadmin_tags.py:35 -msgid "Explorer" -msgstr "Εξερευνητής" - -#: templates/wagtailadmin/chooser/_search_results.html:8 +#: templates/wagtailadmin/chooser/_search_results.html:16 #, python-format msgid "" "\n" @@ -285,10 +302,19 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\nΒρέθηκε ένα αποτέλεσμα" -msgstr[1] "\nΒρέθηκαν %(counter)s αποτελέσματα" +msgstr[0] "" +"\n" +"Βρέθηκε ένα αποτέλεσμα" +msgstr[1] "" +"\n" +"Βρέθηκαν %(counter)s αποτελέσματα" -#: templates/wagtailadmin/chooser/browse.html:2 +#: templates/wagtailadmin/chooser/browse.html:3 +#, fuzzy +msgid "Choose" +msgstr "Επιλογή σελίδας" + +#: templates/wagtailadmin/chooser/browse.html:6 #: templates/wagtailadmin/chooser/search.html:2 #: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:13 msgid "Choose a page" @@ -443,8 +469,12 @@ msgid_plural "" "\n" " %(total_pages)s Pages\n" " " -msgstr[0] "\n%(total_pages)s Σελίδα" -msgstr[1] "\n%(total_pages)s Σελίδες" +msgstr[0] "" +"\n" +"%(total_pages)s Σελίδα" +msgstr[1] "" +"\n" +"%(total_pages)s Σελίδες" #: templates/wagtailadmin/home/site_summary.html:16 #, python-format @@ -456,8 +486,12 @@ msgid_plural "" "\n" " %(total_images)s Images\n" " " -msgstr[0] "\n%(total_images)s Εικόνα" -msgstr[1] "\n%(total_images)s Εικόνες" +msgstr[0] "" +"\n" +"%(total_images)s Εικόνα" +msgstr[1] "" +"\n" +"%(total_images)s Εικόνες" #: templates/wagtailadmin/home/site_summary.html:25 #, python-format @@ -469,8 +503,14 @@ msgid_plural "" "\n" " %(total_docs)s Documents\n" " " -msgstr[0] "\n\n%(total_docs)s Έγγραφο" -msgstr[1] "\n\n%(total_docs)s Έγγραφα" +msgstr[0] "" +"\n" +"\n" +"%(total_docs)s Έγγραφο" +msgstr[1] "" +"\n" +"\n" +"%(total_docs)s Έγγραφα" #: templates/wagtailadmin/notifications/approved.html:1 #, python-format @@ -533,16 +573,21 @@ msgid "You can edit the privacy settings on:" msgstr "" #: templates/wagtailadmin/page_privacy/set_privacy.html:6 -msgid "Note: privacy changes apply to all children of this page too." +msgid "Privacy changes apply to all children of this page too." msgstr "" #: templates/wagtailadmin/pages/_moderator_userbar.html:4 #, python-format msgid "" "\n" -" Previewing '%(title)s', submitted by %(submitted_by)s on %(submitted_on)s.\n" +" Previewing '%(title)s', submitted by %(submitted_by)s on " +"%(submitted_on)s.\n" +" " +msgstr "" +"\n" +" Προεπισκόπηση της '%(title)s', που δημιουργήθηκε από τον " +"%(submitted_by)s στις %(submitted_on)s.\n" " " -msgstr "\n Προεπισκόπηση της '%(title)s', που δημιουργήθηκε από τον %(submitted_by)s στις %(submitted_on)s.\n " #: templates/wagtailadmin/pages/_privacy_indicator.html:9 msgid "Privacy" @@ -588,16 +633,26 @@ msgid "" " " msgid_plural "" "\n" -" This will also delete %(descendant_count)s more subpages.\n" +" This will also delete %(descendant_count)s more " +"subpages.\n" +" " +msgstr[0] "" +"\n" +" Επίσης θα διαγραφεί και μια ακόμα σελίδα.\n" +" " +msgstr[1] "" +"\n" +" Επίσης θα διαγραφούν και %(descendant_count)s ακόμα " +"σελίδες.\n" " " -msgstr[0] "\n Επίσης θα διαγραφεί και μια ακόμα σελίδα.\n " -msgstr[1] "\n Επίσης θα διαγραφούν και %(descendant_count)s ακόμα σελίδες.\n " #: templates/wagtailadmin/pages/confirm_delete.html:22 msgid "" "Alternatively you can unpublish the page. This removes the page from public " "view and you can edit or publish it again later." -msgstr "Εναλλακτικά μπορείτε να αποεκδόσετε τη σελίδα ώστε να μην εμφανίζεται στο κοινό. Στη συνέχεια μπορείτε να τη διορθώστε και να την εκδόσετε ." +msgstr "" +"Εναλλακτικά μπορείτε να αποεκδόσετε τη σελίδα ώστε να μην εμφανίζεται στο " +"κοινό. Στη συνέχεια μπορείτε να τη διορθώστε και να την εκδόσετε ." #: templates/wagtailadmin/pages/confirm_delete.html:26 msgid "Delete it" @@ -628,7 +683,9 @@ msgstr "Είστε σίγουρος ότι θέλετε να μετακινήσ msgid "" "Are you sure you want to move this page and all of its children into " "'%(title)s'?" -msgstr "Είστε σίγουρος ότι θέλετε να μετακινήσετε τη σελίδα και όλα τα παιδιά της στο '%(title)s';" +msgstr "" +"Είστε σίγουρος ότι θέλετε να μετακινήσετε τη σελίδα και όλα τα παιδιά της " +"στο '%(title)s';" #: templates/wagtailadmin/pages/confirm_move.html:18 msgid "Yes, move this page" @@ -855,12 +912,15 @@ msgid "" "\n" " Page %(page_number)s of %(num_pages)s.\n" " " -msgstr "\nΣελίδα %(page_number)s of %(num_pages)s." +msgstr "" +"\n" +"Σελίδα %(page_number)s of %(num_pages)s." #: templates/wagtailadmin/pages/search_results.html:54 #, python-format msgid "Sorry, no pages match \"%(query_string)s\"" -msgstr "Λυπούμαστε, καμία σελίδα δε ταιριάζει με το \"%(query_string)s\"" +msgstr "" +"Λυπούμαστε, καμία σελίδα δε ταιριάζει με το \"%(query_string)s\"" #: templates/wagtailadmin/pages/search_results.html:56 msgid "Enter a search term above" @@ -994,66 +1054,66 @@ msgstr "Ο κωδικός σας αλλάχτηκε με επιτυχία!" msgid "Your preferences have been updated successfully!" msgstr "" -#: views/pages.py:169 views/pages.py:286 +#: views/pages.py:167 views/pages.py:284 msgid "Go live date/time must be before expiry date/time" msgstr "" -#: views/pages.py:179 views/pages.py:296 +#: views/pages.py:177 views/pages.py:294 msgid "Expiry date/time must be in the future" msgstr "" -#: views/pages.py:219 views/pages.py:351 views/pages.py:791 +#: views/pages.py:217 views/pages.py:349 views/pages.py:766 msgid "Page '{0}' published." msgstr "Η σελίδα '{0}' δημοσιεύθηκε." -#: views/pages.py:221 views/pages.py:353 +#: views/pages.py:219 views/pages.py:351 msgid "Page '{0}' submitted for moderation." msgstr "Η σελίδα '{0}' στάλθηκε προς έλεγχο." -#: views/pages.py:224 +#: views/pages.py:222 msgid "Page '{0}' created." msgstr "Η σελίδα '{0}' δημιουργήθηκε." -#: views/pages.py:233 +#: views/pages.py:231 msgid "The page could not be created due to validation errors" msgstr "" -#: views/pages.py:356 +#: views/pages.py:354 msgid "Page '{0}' updated." msgstr "Έγινε η αποθήκευση της σελίδας '{0}'." -#: views/pages.py:365 +#: views/pages.py:363 msgid "The page could not be saved due to validation errors" msgstr "Δε ήταν δυνατή η αποθήκευση της σελίδας λόγω σφαλμάτων ελέγχου" -#: views/pages.py:378 +#: views/pages.py:376 msgid "This page is currently awaiting moderation" msgstr "Η σελίδα δεν είναι προς έλεγχο" -#: views/pages.py:409 +#: views/pages.py:407 msgid "Page '{0}' deleted." msgstr "Έγινε διαγραφή της σελίδας '{0}'." -#: views/pages.py:575 +#: views/pages.py:550 msgid "Page '{0}' unpublished." msgstr "Έγινε αποδημοσίευση της '{0}'." -#: views/pages.py:627 +#: views/pages.py:602 msgid "Page '{0}' moved." msgstr "Έγινε η μετακίνηση της σελίδας '{0}'." -#: views/pages.py:709 +#: views/pages.py:684 msgid "Page '{0}' and {1} subpages copied." msgstr "" -#: views/pages.py:711 +#: views/pages.py:686 msgid "Page '{0}' copied." msgstr "" -#: views/pages.py:785 views/pages.py:804 views/pages.py:824 +#: views/pages.py:760 views/pages.py:779 views/pages.py:799 msgid "The page '{0}' is not currently awaiting moderation." msgstr "Η σελίδα '{0}' δεν είναι για έλεγχο." -#: views/pages.py:810 +#: views/pages.py:785 msgid "Page '{0}' rejected for publication." msgstr "Η δημοσίευση της σελίδας '{0}' απορρίφθηκε." diff --git a/wagtail/wagtailadmin/locale/en/LC_MESSAGES/django.mo b/wagtail/wagtailadmin/locale/en/LC_MESSAGES/django.mo index 4b726f7d6..9bc4992d4 100644 Binary files a/wagtail/wagtailadmin/locale/en/LC_MESSAGES/django.mo and b/wagtail/wagtailadmin/locale/en/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailadmin/locale/en/LC_MESSAGES/django.po b/wagtail/wagtailadmin/locale/en/LC_MESSAGES/django.po index 999e25a1a..d9b5af87f 100644 --- a/wagtail/wagtailadmin/locale/en/LC_MESSAGES/django.po +++ b/wagtail/wagtailadmin/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,11 +17,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: edit_handlers.py:627 +#: edit_handlers.py:631 msgid "Scheduled publishing" msgstr "" -#: edit_handlers.py:641 +#: edit_handlers.py:645 msgid "Common page configuration" msgstr "" @@ -97,7 +97,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: forms.py:124 views/pages.py:155 views/pages.py:272 +#: forms.py:124 views/pages.py:153 views/pages.py:270 msgid "This slug is already in use" msgstr "" @@ -114,6 +114,16 @@ msgstr "" msgid "This field is required." msgstr "" +#: wagtail_hooks.py:15 templates/wagtailadmin/chooser/_search_results.html:12 +msgid "Explorer" +msgstr "" + +#: wagtail_hooks.py:23 templates/wagtailadmin/chooser/_search_form.html:7 +#: templates/wagtailadmin/pages/search.html:3 +#: templates/wagtailadmin/pages/search.html:16 +msgid "Search" +msgstr "" + #: templates/wagtailadmin/base.html:7 templates/wagtailadmin/home.html:4 msgid "Dashboard" msgstr "" @@ -261,19 +271,16 @@ msgstr "" msgid "Email link" msgstr "" -#: templates/wagtailadmin/chooser/_search_form.html:7 -#: templates/wagtailadmin/pages/search.html:3 -#: templates/wagtailadmin/pages/search.html:16 -#: templatetags/wagtailadmin_tags.py:36 -msgid "Search" +#: templates/wagtailadmin/chooser/_search_results.html:5 +#, python-format +msgid "" +"\n" +" Only pages of type \"%(type)s\" may be chosen for this field. " +"Search results will exclude pages of other types.\n" +" " msgstr "" -#: templates/wagtailadmin/chooser/_search_results.html:3 -#: templatetags/wagtailadmin_tags.py:35 -msgid "Explorer" -msgstr "" - -#: templates/wagtailadmin/chooser/_search_results.html:8 +#: templates/wagtailadmin/chooser/_search_results.html:16 #, python-format msgid "" "\n" @@ -286,7 +293,11 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: templates/wagtailadmin/chooser/browse.html:2 +#: templates/wagtailadmin/chooser/browse.html:3 +msgid "Choose" +msgstr "" + +#: templates/wagtailadmin/chooser/browse.html:6 #: templates/wagtailadmin/chooser/search.html:2 #: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:13 msgid "Choose a page" @@ -531,7 +542,7 @@ msgid "You can edit the privacy settings on:" msgstr "" #: templates/wagtailadmin/page_privacy/set_privacy.html:6 -msgid "Note: privacy changes apply to all children of this page too." +msgid "Privacy changes apply to all children of this page too." msgstr "" #: templates/wagtailadmin/pages/_moderator_userbar.html:4 @@ -994,66 +1005,66 @@ msgstr "" msgid "Your preferences have been updated successfully!" msgstr "" -#: views/pages.py:169 views/pages.py:286 +#: views/pages.py:167 views/pages.py:284 msgid "Go live date/time must be before expiry date/time" msgstr "" -#: views/pages.py:179 views/pages.py:296 +#: views/pages.py:177 views/pages.py:294 msgid "Expiry date/time must be in the future" msgstr "" -#: views/pages.py:219 views/pages.py:351 views/pages.py:791 +#: views/pages.py:217 views/pages.py:349 views/pages.py:766 msgid "Page '{0}' published." msgstr "" -#: views/pages.py:221 views/pages.py:353 +#: views/pages.py:219 views/pages.py:351 msgid "Page '{0}' submitted for moderation." msgstr "" -#: views/pages.py:224 +#: views/pages.py:222 msgid "Page '{0}' created." msgstr "" -#: views/pages.py:233 +#: views/pages.py:231 msgid "The page could not be created due to validation errors" msgstr "" -#: views/pages.py:356 +#: views/pages.py:354 msgid "Page '{0}' updated." msgstr "" -#: views/pages.py:365 +#: views/pages.py:363 msgid "The page could not be saved due to validation errors" msgstr "" -#: views/pages.py:378 +#: views/pages.py:376 msgid "This page is currently awaiting moderation" msgstr "" -#: views/pages.py:409 +#: views/pages.py:407 msgid "Page '{0}' deleted." msgstr "" -#: views/pages.py:575 +#: views/pages.py:550 msgid "Page '{0}' unpublished." msgstr "" -#: views/pages.py:627 +#: views/pages.py:602 msgid "Page '{0}' moved." msgstr "" -#: views/pages.py:709 +#: views/pages.py:684 msgid "Page '{0}' and {1} subpages copied." msgstr "" -#: views/pages.py:711 +#: views/pages.py:686 msgid "Page '{0}' copied." msgstr "" -#: views/pages.py:785 views/pages.py:804 views/pages.py:824 +#: views/pages.py:760 views/pages.py:779 views/pages.py:799 msgid "The page '{0}' is not currently awaiting moderation." msgstr "" -#: views/pages.py:810 +#: views/pages.py:785 msgid "Page '{0}' rejected for publication." msgstr "" diff --git a/wagtail/wagtailadmin/locale/es/LC_MESSAGES/django.mo b/wagtail/wagtailadmin/locale/es/LC_MESSAGES/django.mo index 8848e753e..98fb1de3c 100644 Binary files a/wagtail/wagtailadmin/locale/es/LC_MESSAGES/django.mo and b/wagtail/wagtailadmin/locale/es/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailadmin/locale/es/LC_MESSAGES/django.po b/wagtail/wagtailadmin/locale/es/LC_MESSAGES/django.po index 36aa5f402..5e16a1429 100644 --- a/wagtail/wagtailadmin/locale/es/LC_MESSAGES/django.po +++ b/wagtail/wagtailadmin/locale/es/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # fooflare , 2014 # Unai Zalakain , 2014 @@ -9,21 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/wagtail/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/projects/p/wagtail/language/" +"es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: edit_handlers.py:627 +#: edit_handlers.py:631 msgid "Scheduled publishing" msgstr "" -#: edit_handlers.py:641 +#: edit_handlers.py:645 msgid "Common page configuration" msgstr "Configuración común de página" @@ -51,7 +52,9 @@ msgstr "Rellena tu dirección de correo por favor." msgid "" "Sorry, you cannot reset your password here as your user account is managed " "by another server." -msgstr "Lo sentimos, no puedes restablecer tu contraseña aquí porque tu cuenta es gestionada por otro servidor." +msgstr "" +"Lo sentimos, no puedes restablecer tu contraseña aquí porque tu cuenta es " +"gestionada por otro servidor." #: forms.py:76 msgid "This email address is not recognised." @@ -99,7 +102,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: forms.py:124 views/pages.py:155 views/pages.py:272 +#: forms.py:124 views/pages.py:153 views/pages.py:270 msgid "This slug is already in use" msgstr "Este slug ya está en uso" @@ -116,6 +119,16 @@ msgstr "" msgid "This field is required." msgstr "" +#: wagtail_hooks.py:15 templates/wagtailadmin/chooser/_search_results.html:12 +msgid "Explorer" +msgstr "Explorador" + +#: wagtail_hooks.py:23 templates/wagtailadmin/chooser/_search_form.html:7 +#: templates/wagtailadmin/pages/search.html:3 +#: templates/wagtailadmin/pages/search.html:16 +msgid "Search" +msgstr "Búsqueda" + #: templates/wagtailadmin/base.html:7 templates/wagtailadmin/home.html:4 msgid "Dashboard" msgstr "Panel de control" @@ -133,7 +146,9 @@ msgstr "Bienvenido al CMS Wagtail %(site_name)s" msgid "" "This is your dashboard on which helpful information about content you've " "created will be displayed." -msgstr "Este es tu panel de control donde aparecerá información útil sobre el contenido que has creado." +msgstr "" +"Este es tu panel de control donde aparecerá información útil sobre el " +"contenido que has creado." #: templates/wagtailadmin/login.html:4 templates/wagtailadmin/login.html:59 msgid "Sign in" @@ -165,7 +180,10 @@ msgid "" "Your avatar image is provided by Gravatar and is connected to your email " "address. With a Gravatar account you can set an avatar for any number of " "other email addresses you use." -msgstr "Tu avatar es provisto por Gravatar y está conectado a tu dirección de correo. Con una cuenta Gravatar puedes establecer un avatar para cualquier número de correos electrónicos." +msgstr "" +"Tu avatar es provisto por Gravatar y está conectado a tu dirección de " +"correo. Con una cuenta Gravatar puedes establecer un avatar para cualquier " +"número de correos electrónicos." #: templates/wagtailadmin/account/account.html:25 #: templates/wagtailadmin/account/change_password.html:4 @@ -192,7 +210,9 @@ msgstr "Cambiar Contraseña" #: templates/wagtailadmin/account/change_password.html:21 msgid "" "Your password can't be changed here. Please contact a site administrator." -msgstr "Tu contraseña no puede cambiarse aquí. Por favor, contacta con el administrador." +msgstr "" +"Tu contraseña no puede cambiarse aquí. Por favor, contacta con el " +"administrador." #: templates/wagtailadmin/account/notification_preferences.html:4 #: templates/wagtailadmin/account/notification_preferences.html:6 @@ -234,7 +254,9 @@ msgstr "Revisa tu correo electrónico" #: templates/wagtailadmin/account/password_reset/done.html:16 msgid "A link to reset your password has been emailed to you." -msgstr "Un enlace para restablecer tu contraseña, te ha sido enviado por correo electrónico." +msgstr "" +"Un enlace para restablecer tu contraseña, te ha sido enviado por correo " +"electrónico." #: templates/wagtailadmin/account/password_reset/email.txt:2 msgid "Please follow the link below to reset your password" @@ -263,19 +285,16 @@ msgstr "Enlace externo" msgid "Email link" msgstr "Enlace de correo electrónico" -#: templates/wagtailadmin/chooser/_search_form.html:7 -#: templates/wagtailadmin/pages/search.html:3 -#: templates/wagtailadmin/pages/search.html:16 -#: templatetags/wagtailadmin_tags.py:36 -msgid "Search" -msgstr "Búsqueda" +#: templates/wagtailadmin/chooser/_search_results.html:5 +#, python-format +msgid "" +"\n" +" Only pages of type \"%(type)s\" may be chosen for this field. " +"Search results will exclude pages of other types.\n" +" " +msgstr "" -#: templates/wagtailadmin/chooser/_search_results.html:3 -#: templatetags/wagtailadmin_tags.py:35 -msgid "Explorer" -msgstr "Explorador" - -#: templates/wagtailadmin/chooser/_search_results.html:8 +#: templates/wagtailadmin/chooser/_search_results.html:16 #, python-format msgid "" "\n" @@ -285,10 +304,21 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Hay una coincidencia\n " -msgstr[1] "\n Hay %(counter)s coincidencias\n " +msgstr[0] "" +"\n" +" Hay una coincidencia\n" +" " +msgstr[1] "" +"\n" +" Hay %(counter)s coincidencias\n" +" " -#: templates/wagtailadmin/chooser/browse.html:2 +#: templates/wagtailadmin/chooser/browse.html:3 +#, fuzzy +msgid "Choose" +msgstr "Elige una página" + +#: templates/wagtailadmin/chooser/browse.html:6 #: templates/wagtailadmin/chooser/search.html:2 #: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:13 msgid "Choose a page" @@ -443,8 +473,14 @@ msgid_plural "" "\n" " %(total_pages)s Pages\n" " " -msgstr[0] "\n %(total_pages)s Página\n " -msgstr[1] "\n %(total_pages)s Páginas\n " +msgstr[0] "" +"\n" +" %(total_pages)s Página\n" +" " +msgstr[1] "" +"\n" +" %(total_pages)s Páginas\n" +" " #: templates/wagtailadmin/home/site_summary.html:16 #, python-format @@ -456,8 +492,14 @@ msgid_plural "" "\n" " %(total_images)s Images\n" " " -msgstr[0] "\n %(total_images)s Imagen\n " -msgstr[1] "\n %(total_images)s Imágenes\n " +msgstr[0] "" +"\n" +" %(total_images)s Imagen\n" +" " +msgstr[1] "" +"\n" +" %(total_images)s Imágenes\n" +" " #: templates/wagtailadmin/home/site_summary.html:25 #, python-format @@ -469,8 +511,14 @@ msgid_plural "" "\n" " %(total_docs)s Documents\n" " " -msgstr[0] "\n %(total_docs)s Documento\n " -msgstr[1] "\n %(total_docs)s Documentos\n " +msgstr[0] "" +"\n" +" %(total_docs)s Documento\n" +" " +msgstr[1] "" +"\n" +" %(total_docs)s Documentos\n" +" " #: templates/wagtailadmin/notifications/approved.html:1 #, python-format @@ -533,16 +581,21 @@ msgid "You can edit the privacy settings on:" msgstr "" #: templates/wagtailadmin/page_privacy/set_privacy.html:6 -msgid "Note: privacy changes apply to all children of this page too." +msgid "Privacy changes apply to all children of this page too." msgstr "" #: templates/wagtailadmin/pages/_moderator_userbar.html:4 #, python-format msgid "" "\n" -" Previewing '%(title)s', submitted by %(submitted_by)s on %(submitted_on)s.\n" +" Previewing '%(title)s', submitted by %(submitted_by)s on " +"%(submitted_on)s.\n" +" " +msgstr "" +"\n" +" Previsualizando '%(title)s', enviada por %(submitted_by)s en " +"%(submitted_on)s.\n" " " -msgstr "\n Previsualizando '%(title)s', enviada por %(submitted_by)s en %(submitted_on)s.\n " #: templates/wagtailadmin/pages/_privacy_indicator.html:9 msgid "Privacy" @@ -588,16 +641,26 @@ msgid "" " " msgid_plural "" "\n" -" This will also delete %(descendant_count)s more subpages.\n" +" This will also delete %(descendant_count)s more " +"subpages.\n" +" " +msgstr[0] "" +"\n" +" Esto también borrará otra subpágina.\n" +" " +msgstr[1] "" +"\n" +" Esto también eliminará %(descendant_count)s subpáginas " +"más.\n" " " -msgstr[0] "\n Esto también borrará otra subpágina.\n " -msgstr[1] "\n Esto también eliminará %(descendant_count)s subpáginas más.\n " #: templates/wagtailadmin/pages/confirm_delete.html:22 msgid "" "Alternatively you can unpublish the page. This removes the page from public " "view and you can edit or publish it again later." -msgstr "Otra opción es no publicar la página. Esto no permite que el público la vea y la puedes editar o volver a publicar más tarde." +msgstr "" +"Otra opción es no publicar la página. Esto no permite que el público la vea " +"y la puedes editar o volver a publicar más tarde." #: templates/wagtailadmin/pages/confirm_delete.html:26 msgid "Delete it" @@ -628,7 +691,9 @@ msgstr "Estás seguro de que quieres mover esta página a dentro de '%(title)s'? msgid "" "Are you sure you want to move this page and all of its children into " "'%(title)s'?" -msgstr "Estás seguro de que quieres mover esta página y todas sus páginas hijas a '%(title)s'?" +msgstr "" +"Estás seguro de que quieres mover esta página y todas sus páginas hijas a " +"'%(title)s'?" #: templates/wagtailadmin/pages/confirm_move.html:18 msgid "Yes, move this page" @@ -855,7 +920,10 @@ msgid "" "\n" " Page %(page_number)s of %(num_pages)s.\n" " " -msgstr "\n Página %(page_number)s de %(num_pages)s.\n " +msgstr "" +"\n" +" Página %(page_number)s de %(num_pages)s.\n" +" " #: templates/wagtailadmin/pages/search_results.html:54 #, python-format @@ -994,66 +1062,66 @@ msgstr "¡Tu contraseña ha sido cambiada con éxito!" msgid "Your preferences have been updated successfully!" msgstr "" -#: views/pages.py:169 views/pages.py:286 +#: views/pages.py:167 views/pages.py:284 msgid "Go live date/time must be before expiry date/time" msgstr "" -#: views/pages.py:179 views/pages.py:296 +#: views/pages.py:177 views/pages.py:294 msgid "Expiry date/time must be in the future" msgstr "" -#: views/pages.py:219 views/pages.py:351 views/pages.py:791 +#: views/pages.py:217 views/pages.py:349 views/pages.py:766 msgid "Page '{0}' published." msgstr "Página '{0}' publicada." -#: views/pages.py:221 views/pages.py:353 +#: views/pages.py:219 views/pages.py:351 msgid "Page '{0}' submitted for moderation." msgstr "Página '{0}' enviada para ser moderada." -#: views/pages.py:224 +#: views/pages.py:222 msgid "Page '{0}' created." msgstr "Página '{0}' creada." -#: views/pages.py:233 +#: views/pages.py:231 msgid "The page could not be created due to validation errors" msgstr "" -#: views/pages.py:356 +#: views/pages.py:354 msgid "Page '{0}' updated." msgstr "Página '{0}' actualizada." -#: views/pages.py:365 +#: views/pages.py:363 msgid "The page could not be saved due to validation errors" msgstr "La página no ha podido ser guardada debido a errores de validación" -#: views/pages.py:378 +#: views/pages.py:376 msgid "This page is currently awaiting moderation" msgstr "La página está a la espera de ser moderada" -#: views/pages.py:409 +#: views/pages.py:407 msgid "Page '{0}' deleted." msgstr "Página '{0}' eliminada." -#: views/pages.py:575 +#: views/pages.py:550 msgid "Page '{0}' unpublished." msgstr "Página '{0}' no publicada." -#: views/pages.py:627 +#: views/pages.py:602 msgid "Page '{0}' moved." msgstr "Página '{0}' movida." -#: views/pages.py:709 +#: views/pages.py:684 msgid "Page '{0}' and {1} subpages copied." msgstr "" -#: views/pages.py:711 +#: views/pages.py:686 msgid "Page '{0}' copied." msgstr "" -#: views/pages.py:785 views/pages.py:804 views/pages.py:824 +#: views/pages.py:760 views/pages.py:779 views/pages.py:799 msgid "The page '{0}' is not currently awaiting moderation." msgstr "La página '{0}' no está esperando a ser moderada." -#: views/pages.py:810 +#: views/pages.py:785 msgid "Page '{0}' rejected for publication." msgstr "Rechazada la publicación de la página '{0}'." diff --git a/wagtail/wagtailadmin/locale/eu/LC_MESSAGES/django.mo b/wagtail/wagtailadmin/locale/eu/LC_MESSAGES/django.mo index 25184f12b..4c0313a86 100644 Binary files a/wagtail/wagtailadmin/locale/eu/LC_MESSAGES/django.mo and b/wagtail/wagtailadmin/locale/eu/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailadmin/locale/eu/LC_MESSAGES/django.po b/wagtail/wagtailadmin/locale/eu/LC_MESSAGES/django.po index 85ab69320..6e2facaa0 100644 --- a/wagtail/wagtailadmin/locale/eu/LC_MESSAGES/django.po +++ b/wagtail/wagtailadmin/locale/eu/LC_MESSAGES/django.po @@ -1,28 +1,29 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Unai Zalakain , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Basque (http://www.transifex.com/projects/p/wagtail/language/eu/)\n" +"Language-Team: Basque (http://www.transifex.com/projects/p/wagtail/language/" +"eu/)\n" +"Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: edit_handlers.py:627 +#: edit_handlers.py:631 msgid "Scheduled publishing" msgstr "" -#: edit_handlers.py:641 +#: edit_handlers.py:645 msgid "Common page configuration" msgstr "" @@ -50,7 +51,9 @@ msgstr "Idatzi zure eposta helbidea mesedez." msgid "" "Sorry, you cannot reset your password here as your user account is managed " "by another server." -msgstr "Sentitzen dugu, ezin duzu zure pasahitza hemen berrezarri zure kontua beste zerbitzari batek kudeatzen duelako." +msgstr "" +"Sentitzen dugu, ezin duzu zure pasahitza hemen berrezarri zure kontua beste " +"zerbitzari batek kudeatzen duelako." #: forms.py:76 msgid "This email address is not recognised." @@ -98,7 +101,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: forms.py:124 views/pages.py:155 views/pages.py:272 +#: forms.py:124 views/pages.py:153 views/pages.py:270 msgid "This slug is already in use" msgstr "" @@ -115,6 +118,16 @@ msgstr "" msgid "This field is required." msgstr "" +#: wagtail_hooks.py:15 templates/wagtailadmin/chooser/_search_results.html:12 +msgid "Explorer" +msgstr "Arakatzailea" + +#: wagtail_hooks.py:23 templates/wagtailadmin/chooser/_search_form.html:7 +#: templates/wagtailadmin/pages/search.html:3 +#: templates/wagtailadmin/pages/search.html:16 +msgid "Search" +msgstr "Bilatu" + #: templates/wagtailadmin/base.html:7 templates/wagtailadmin/home.html:4 msgid "Dashboard" msgstr "Kontrol panela" @@ -132,7 +145,9 @@ msgstr "Ongi etorri %(site_name)s Wagtail CMSra" msgid "" "This is your dashboard on which helpful information about content you've " "created will be displayed." -msgstr "Kontrol panel honetan sortu duzun edukiekin erlazionaturiko informazio baliagarria agertuko da." +msgstr "" +"Kontrol panel honetan sortu duzun edukiekin erlazionaturiko informazio " +"baliagarria agertuko da." #: templates/wagtailadmin/login.html:4 templates/wagtailadmin/login.html:59 msgid "Sign in" @@ -140,7 +155,9 @@ msgstr "" #: templates/wagtailadmin/login.html:18 msgid "Your username and password didn't match. Please try again." -msgstr "Zure erabiltzaileak eta pasahitzak ez dute bat egin. Mesedez saiatu beranduago." +msgstr "" +"Zure erabiltzaileak eta pasahitzak ez dute bat egin. Mesedez saiatu " +"beranduago." #: templates/wagtailadmin/login.html:26 msgid "Sign in to Wagtail" @@ -164,7 +181,10 @@ msgid "" "Your avatar image is provided by Gravatar and is connected to your email " "address. With a Gravatar account you can set an avatar for any number of " "other email addresses you use." -msgstr "Zure avatar irudia Gravatar-ek hornitzen du eta zure eposta helbidera konektatua dago. Gravatar kontu batekin erabiltzen duzun eposta helbide bakoitzeko avatar bat ezarri dezakezu." +msgstr "" +"Zure avatar irudia Gravatar-ek hornitzen du eta zure eposta helbidera " +"konektatua dago. Gravatar kontu batekin erabiltzen duzun eposta helbide " +"bakoitzeko avatar bat ezarri dezakezu." #: templates/wagtailadmin/account/account.html:25 #: templates/wagtailadmin/account/change_password.html:4 @@ -191,7 +211,8 @@ msgstr "" #: templates/wagtailadmin/account/change_password.html:21 msgid "" "Your password can't be changed here. Please contact a site administrator." -msgstr "Zure pasahitza ezin da hemen aldatu. Mesedez kontaktatu administratzailea." +msgstr "" +"Zure pasahitza ezin da hemen aldatu. Mesedez kontaktatu administratzailea." #: templates/wagtailadmin/account/notification_preferences.html:4 #: templates/wagtailadmin/account/notification_preferences.html:6 @@ -262,19 +283,16 @@ msgstr "Kanpo esteka" msgid "Email link" msgstr "Eposta esteka" -#: templates/wagtailadmin/chooser/_search_form.html:7 -#: templates/wagtailadmin/pages/search.html:3 -#: templates/wagtailadmin/pages/search.html:16 -#: templatetags/wagtailadmin_tags.py:36 -msgid "Search" -msgstr "Bilatu" +#: templates/wagtailadmin/chooser/_search_results.html:5 +#, python-format +msgid "" +"\n" +" Only pages of type \"%(type)s\" may be chosen for this field. " +"Search results will exclude pages of other types.\n" +" " +msgstr "" -#: templates/wagtailadmin/chooser/_search_results.html:3 -#: templatetags/wagtailadmin_tags.py:35 -msgid "Explorer" -msgstr "Arakatzailea" - -#: templates/wagtailadmin/chooser/_search_results.html:8 +#: templates/wagtailadmin/chooser/_search_results.html:16 #, python-format msgid "" "\n" @@ -287,7 +305,12 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: templates/wagtailadmin/chooser/browse.html:2 +#: templates/wagtailadmin/chooser/browse.html:3 +#, fuzzy +msgid "Choose" +msgstr "Orrialde bat aukeratu" + +#: templates/wagtailadmin/chooser/browse.html:6 #: templates/wagtailadmin/chooser/search.html:2 #: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:13 msgid "Choose a page" @@ -532,14 +555,15 @@ msgid "You can edit the privacy settings on:" msgstr "" #: templates/wagtailadmin/page_privacy/set_privacy.html:6 -msgid "Note: privacy changes apply to all children of this page too." +msgid "Privacy changes apply to all children of this page too." msgstr "" #: templates/wagtailadmin/pages/_moderator_userbar.html:4 #, python-format msgid "" "\n" -" Previewing '%(title)s', submitted by %(submitted_by)s on %(submitted_on)s.\n" +" Previewing '%(title)s', submitted by %(submitted_by)s on " +"%(submitted_on)s.\n" " " msgstr "" @@ -587,7 +611,8 @@ msgid "" " " msgid_plural "" "\n" -" This will also delete %(descendant_count)s more subpages.\n" +" This will also delete %(descendant_count)s more " +"subpages.\n" " " msgstr[0] "" msgstr[1] "" @@ -993,66 +1018,66 @@ msgstr "" msgid "Your preferences have been updated successfully!" msgstr "" -#: views/pages.py:169 views/pages.py:286 +#: views/pages.py:167 views/pages.py:284 msgid "Go live date/time must be before expiry date/time" msgstr "" -#: views/pages.py:179 views/pages.py:296 +#: views/pages.py:177 views/pages.py:294 msgid "Expiry date/time must be in the future" msgstr "" -#: views/pages.py:219 views/pages.py:351 views/pages.py:791 +#: views/pages.py:217 views/pages.py:349 views/pages.py:766 msgid "Page '{0}' published." msgstr "" -#: views/pages.py:221 views/pages.py:353 +#: views/pages.py:219 views/pages.py:351 msgid "Page '{0}' submitted for moderation." msgstr "" -#: views/pages.py:224 +#: views/pages.py:222 msgid "Page '{0}' created." msgstr "" -#: views/pages.py:233 +#: views/pages.py:231 msgid "The page could not be created due to validation errors" msgstr "" -#: views/pages.py:356 +#: views/pages.py:354 msgid "Page '{0}' updated." msgstr "" -#: views/pages.py:365 +#: views/pages.py:363 msgid "The page could not be saved due to validation errors" msgstr "" -#: views/pages.py:378 +#: views/pages.py:376 msgid "This page is currently awaiting moderation" msgstr "" -#: views/pages.py:409 +#: views/pages.py:407 msgid "Page '{0}' deleted." msgstr "" -#: views/pages.py:575 +#: views/pages.py:550 msgid "Page '{0}' unpublished." msgstr "" -#: views/pages.py:627 +#: views/pages.py:602 msgid "Page '{0}' moved." msgstr "" -#: views/pages.py:709 +#: views/pages.py:684 msgid "Page '{0}' and {1} subpages copied." msgstr "" -#: views/pages.py:711 +#: views/pages.py:686 msgid "Page '{0}' copied." msgstr "" -#: views/pages.py:785 views/pages.py:804 views/pages.py:824 +#: views/pages.py:760 views/pages.py:779 views/pages.py:799 msgid "The page '{0}' is not currently awaiting moderation." msgstr "" -#: views/pages.py:810 +#: views/pages.py:785 msgid "Page '{0}' rejected for publication." msgstr "" diff --git a/wagtail/wagtailadmin/locale/fr/LC_MESSAGES/django.mo b/wagtail/wagtailadmin/locale/fr/LC_MESSAGES/django.mo index 8396ffe67..2fe78b893 100644 Binary files a/wagtail/wagtailadmin/locale/fr/LC_MESSAGES/django.mo and b/wagtail/wagtailadmin/locale/fr/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailadmin/locale/fr/LC_MESSAGES/django.po b/wagtail/wagtailadmin/locale/fr/LC_MESSAGES/django.po index 8e10df1d2..2fc201c26 100644 --- a/wagtail/wagtailadmin/locale/fr/LC_MESSAGES/django.po +++ b/wagtail/wagtailadmin/locale/fr/LC_MESSAGES/django.po @@ -1,28 +1,29 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # nahuel, 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: French (http://www.transifex.com/projects/p/wagtail/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/projects/p/wagtail/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: edit_handlers.py:627 +#: edit_handlers.py:631 msgid "Scheduled publishing" msgstr "" -#: edit_handlers.py:641 +#: edit_handlers.py:645 msgid "Common page configuration" msgstr "" @@ -50,7 +51,9 @@ msgstr "Entrez votre adresse e-mail." msgid "" "Sorry, you cannot reset your password here as your user account is managed " "by another server." -msgstr "Désolé, vous ne pouvez pas réinitialiser votre mot de passe ici alors que votre compte utilisateur est géré par un autre serveur." +msgstr "" +"Désolé, vous ne pouvez pas réinitialiser votre mot de passe ici alors que " +"votre compte utilisateur est géré par un autre serveur." #: forms.py:76 msgid "This email address is not recognised." @@ -98,7 +101,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: forms.py:124 views/pages.py:155 views/pages.py:272 +#: forms.py:124 views/pages.py:153 views/pages.py:270 msgid "This slug is already in use" msgstr "" @@ -115,6 +118,16 @@ msgstr "" msgid "This field is required." msgstr "" +#: wagtail_hooks.py:15 templates/wagtailadmin/chooser/_search_results.html:12 +msgid "Explorer" +msgstr "" + +#: wagtail_hooks.py:23 templates/wagtailadmin/chooser/_search_form.html:7 +#: templates/wagtailadmin/pages/search.html:3 +#: templates/wagtailadmin/pages/search.html:16 +msgid "Search" +msgstr "" + #: templates/wagtailadmin/base.html:7 templates/wagtailadmin/home.html:4 msgid "Dashboard" msgstr "Tableau de bord" @@ -132,7 +145,9 @@ msgstr "" msgid "" "This is your dashboard on which helpful information about content you've " "created will be displayed." -msgstr "Ceci est votre tableau de bord sur lequel des informations importantes sur le contenu que vous avez créé seront affichées." +msgstr "" +"Ceci est votre tableau de bord sur lequel des informations importantes sur " +"le contenu que vous avez créé seront affichées." #: templates/wagtailadmin/login.html:4 templates/wagtailadmin/login.html:59 msgid "Sign in" @@ -140,7 +155,8 @@ msgstr "S'identifier" #: templates/wagtailadmin/login.html:18 msgid "Your username and password didn't match. Please try again." -msgstr "Vos identifiant et mot de passe ne correspondent pas. Essayez de nouveau." +msgstr "" +"Vos identifiant et mot de passe ne correspondent pas. Essayez de nouveau." #: templates/wagtailadmin/login.html:26 msgid "Sign in to Wagtail" @@ -164,7 +180,10 @@ msgid "" "Your avatar image is provided by Gravatar and is connected to your email " "address. With a Gravatar account you can set an avatar for any number of " "other email addresses you use." -msgstr "Votre avatar est fourni par Gravatar et est relié à votre adresse e-mail. Avec un compte Gravatar vous pouvez définir un avatar pour toutes les adresses e-mail que vous utilisez." +msgstr "" +"Votre avatar est fourni par Gravatar et est relié à votre adresse e-mail. " +"Avec un compte Gravatar vous pouvez définir un avatar pour toutes les " +"adresses e-mail que vous utilisez." #: templates/wagtailadmin/account/account.html:25 #: templates/wagtailadmin/account/change_password.html:4 @@ -191,7 +210,8 @@ msgstr "" #: templates/wagtailadmin/account/change_password.html:21 msgid "" "Your password can't be changed here. Please contact a site administrator." -msgstr "Votre mot de passe ne peut être changé ici. Contactez un administrateur." +msgstr "" +"Votre mot de passe ne peut être changé ici. Contactez un administrateur." #: templates/wagtailadmin/account/notification_preferences.html:4 #: templates/wagtailadmin/account/notification_preferences.html:6 @@ -262,19 +282,16 @@ msgstr "Lien externe" msgid "Email link" msgstr "" -#: templates/wagtailadmin/chooser/_search_form.html:7 -#: templates/wagtailadmin/pages/search.html:3 -#: templates/wagtailadmin/pages/search.html:16 -#: templatetags/wagtailadmin_tags.py:36 -msgid "Search" +#: templates/wagtailadmin/chooser/_search_results.html:5 +#, python-format +msgid "" +"\n" +" Only pages of type \"%(type)s\" may be chosen for this field. " +"Search results will exclude pages of other types.\n" +" " msgstr "" -#: templates/wagtailadmin/chooser/_search_results.html:3 -#: templatetags/wagtailadmin_tags.py:35 -msgid "Explorer" -msgstr "" - -#: templates/wagtailadmin/chooser/_search_results.html:8 +#: templates/wagtailadmin/chooser/_search_results.html:16 #, python-format msgid "" "\n" @@ -287,7 +304,12 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: templates/wagtailadmin/chooser/browse.html:2 +#: templates/wagtailadmin/chooser/browse.html:3 +#, fuzzy +msgid "Choose" +msgstr "Choisissez une page" + +#: templates/wagtailadmin/chooser/browse.html:6 #: templates/wagtailadmin/chooser/search.html:2 #: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:13 msgid "Choose a page" @@ -442,8 +464,14 @@ msgid_plural "" "\n" " %(total_pages)s Pages\n" " " -msgstr[0] "\n %(total_pages)s page\n " -msgstr[1] "\n %(total_pages)s pages\n " +msgstr[0] "" +"\n" +" %(total_pages)s page\n" +" " +msgstr[1] "" +"\n" +" %(total_pages)s pages\n" +" " #: templates/wagtailadmin/home/site_summary.html:16 #, python-format @@ -455,8 +483,14 @@ msgid_plural "" "\n" " %(total_images)s Images\n" " " -msgstr[0] "\n %(total_images)s image\n " -msgstr[1] "\n %(total_images)s images\n " +msgstr[0] "" +"\n" +" %(total_images)s image\n" +" " +msgstr[1] "" +"\n" +" %(total_images)s images\n" +" " #: templates/wagtailadmin/home/site_summary.html:25 #, python-format @@ -468,8 +502,14 @@ msgid_plural "" "\n" " %(total_docs)s Documents\n" " " -msgstr[0] "\n %(total_docs)s document\n " -msgstr[1] "\n %(total_docs)s documents\n " +msgstr[0] "" +"\n" +" %(total_docs)s document\n" +" " +msgstr[1] "" +"\n" +" %(total_docs)s documents\n" +" " #: templates/wagtailadmin/notifications/approved.html:1 #, python-format @@ -532,16 +572,21 @@ msgid "You can edit the privacy settings on:" msgstr "" #: templates/wagtailadmin/page_privacy/set_privacy.html:6 -msgid "Note: privacy changes apply to all children of this page too." +msgid "Privacy changes apply to all children of this page too." msgstr "" #: templates/wagtailadmin/pages/_moderator_userbar.html:4 #, python-format msgid "" "\n" -" Previewing '%(title)s', submitted by %(submitted_by)s on %(submitted_on)s.\n" +" Previewing '%(title)s', submitted by %(submitted_by)s on " +"%(submitted_on)s.\n" +" " +msgstr "" +"\n" +" Prévisualisation de '%(title)s', soumis par %(submitted_by)s le " +"%(submitted_on)s.\n" " " -msgstr "\n Prévisualisation de '%(title)s', soumis par %(submitted_by)s le %(submitted_on)s.\n " #: templates/wagtailadmin/pages/_privacy_indicator.html:9 msgid "Privacy" @@ -587,16 +632,26 @@ msgid "" " " msgid_plural "" "\n" -" This will also delete %(descendant_count)s more subpages.\n" +" This will also delete %(descendant_count)s more " +"subpages.\n" +" " +msgstr[0] "" +"\n" +" Ceci supprime aussi une sous-pages supplémentaire.\n" +" " +msgstr[1] "" +"\n" +" Ceci supprimer aussi %(descendant_count)s sous-pages " +"supplémentaires.\n" " " -msgstr[0] "\n Ceci supprime aussi une sous-pages supplémentaire.\n " -msgstr[1] "\n Ceci supprimer aussi %(descendant_count)s sous-pages supplémentaires.\n " #: templates/wagtailadmin/pages/confirm_delete.html:22 msgid "" "Alternatively you can unpublish the page. This removes the page from public " "view and you can edit or publish it again later." -msgstr "Vous pouvez également dé-publier la page. Cela enlèvera la page des vues publiques et vous pourrez l'éditer ou la publier de nouveau plus tard." +msgstr "" +"Vous pouvez également dé-publier la page. Cela enlèvera la page des vues " +"publiques et vous pourrez l'éditer ou la publier de nouveau plus tard." #: templates/wagtailadmin/pages/confirm_delete.html:26 msgid "Delete it" @@ -627,7 +682,9 @@ msgstr "Êtes-vous sûr de vouloir déplacer cette page dans '%(title)s'?" msgid "" "Are you sure you want to move this page and all of its children into " "'%(title)s'?" -msgstr "Êtes-vous sûr de vouloir déplacer cette page et l'ensemble de ses enfants dans '%(title)s'?" +msgstr "" +"Êtes-vous sûr de vouloir déplacer cette page et l'ensemble de ses enfants " +"dans '%(title)s'?" #: templates/wagtailadmin/pages/confirm_move.html:18 msgid "Yes, move this page" @@ -854,7 +911,10 @@ msgid "" "\n" " Page %(page_number)s of %(num_pages)s.\n" " " -msgstr "\n Page %(page_number)s sur %(num_pages)s.\n " +msgstr "" +"\n" +" Page %(page_number)s sur %(num_pages)s.\n" +" " #: templates/wagtailadmin/pages/search_results.html:54 #, python-format @@ -993,66 +1053,66 @@ msgstr "Votre mot de passe a été changé avec succès!" msgid "Your preferences have been updated successfully!" msgstr "" -#: views/pages.py:169 views/pages.py:286 +#: views/pages.py:167 views/pages.py:284 msgid "Go live date/time must be before expiry date/time" msgstr "" -#: views/pages.py:179 views/pages.py:296 +#: views/pages.py:177 views/pages.py:294 msgid "Expiry date/time must be in the future" msgstr "" -#: views/pages.py:219 views/pages.py:351 views/pages.py:791 +#: views/pages.py:217 views/pages.py:349 views/pages.py:766 msgid "Page '{0}' published." msgstr "Page '{0}' publiée." -#: views/pages.py:221 views/pages.py:353 +#: views/pages.py:219 views/pages.py:351 msgid "Page '{0}' submitted for moderation." msgstr "Page '{0}' soumise pour modération." -#: views/pages.py:224 +#: views/pages.py:222 msgid "Page '{0}' created." msgstr "Page '{0}' créée." -#: views/pages.py:233 +#: views/pages.py:231 msgid "The page could not be created due to validation errors" msgstr "" -#: views/pages.py:356 +#: views/pages.py:354 msgid "Page '{0}' updated." msgstr "Page '{0}' mise à jour." -#: views/pages.py:365 +#: views/pages.py:363 msgid "The page could not be saved due to validation errors" msgstr "La page n'a pu être enregistré à cause d'erreurs de validation." -#: views/pages.py:378 +#: views/pages.py:376 msgid "This page is currently awaiting moderation" msgstr "Cette page est actuellement en attente de modération" -#: views/pages.py:409 +#: views/pages.py:407 msgid "Page '{0}' deleted." msgstr "Page '{0}' supprimée." -#: views/pages.py:575 +#: views/pages.py:550 msgid "Page '{0}' unpublished." msgstr "Page '{0}' dé-publiée." -#: views/pages.py:627 +#: views/pages.py:602 msgid "Page '{0}' moved." msgstr "Page '{0}' déplacée." -#: views/pages.py:709 +#: views/pages.py:684 msgid "Page '{0}' and {1} subpages copied." msgstr "" -#: views/pages.py:711 +#: views/pages.py:686 msgid "Page '{0}' copied." msgstr "" -#: views/pages.py:785 views/pages.py:804 views/pages.py:824 +#: views/pages.py:760 views/pages.py:779 views/pages.py:799 msgid "The page '{0}' is not currently awaiting moderation." msgstr "La page '{0}' est actuellement en attente de modération." -#: views/pages.py:810 +#: views/pages.py:785 msgid "Page '{0}' rejected for publication." msgstr "Page '{0}' refusée à la publication." diff --git a/wagtail/wagtailadmin/locale/gl/LC_MESSAGES/django.mo b/wagtail/wagtailadmin/locale/gl/LC_MESSAGES/django.mo index 402a2fd3b..ab419b9c8 100644 Binary files a/wagtail/wagtailadmin/locale/gl/LC_MESSAGES/django.mo and b/wagtail/wagtailadmin/locale/gl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailadmin/locale/gl/LC_MESSAGES/django.po b/wagtail/wagtailadmin/locale/gl/LC_MESSAGES/django.po index b58956423..15dfaa06e 100644 --- a/wagtail/wagtailadmin/locale/gl/LC_MESSAGES/django.po +++ b/wagtail/wagtailadmin/locale/gl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # fooflare , 2014 # fooflare , 2014 @@ -9,21 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Galician (http://www.transifex.com/projects/p/wagtail/language/gl/)\n" +"Language-Team: Galician (http://www.transifex.com/projects/p/wagtail/" +"language/gl/)\n" +"Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: edit_handlers.py:627 +#: edit_handlers.py:631 msgid "Scheduled publishing" msgstr "" -#: edit_handlers.py:641 +#: edit_handlers.py:645 msgid "Common page configuration" msgstr "Configuración común de páxina" @@ -51,7 +52,9 @@ msgstr "Por favor, enche a túa dirección de correo." msgid "" "Sorry, you cannot reset your password here as your user account is managed " "by another server." -msgstr "Sentímolo, non podes restablecer o teu contrasinal aquí porque a túa conta é xestionada por outro servidor." +msgstr "" +"Sentímolo, non podes restablecer o teu contrasinal aquí porque a túa conta é " +"xestionada por outro servidor." #: forms.py:76 msgid "This email address is not recognised." @@ -99,7 +102,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: forms.py:124 views/pages.py:155 views/pages.py:272 +#: forms.py:124 views/pages.py:153 views/pages.py:270 msgid "This slug is already in use" msgstr "Este slug ya está en uso" @@ -116,6 +119,16 @@ msgstr "" msgid "This field is required." msgstr "" +#: wagtail_hooks.py:15 templates/wagtailadmin/chooser/_search_results.html:12 +msgid "Explorer" +msgstr "Explorador" + +#: wagtail_hooks.py:23 templates/wagtailadmin/chooser/_search_form.html:7 +#: templates/wagtailadmin/pages/search.html:3 +#: templates/wagtailadmin/pages/search.html:16 +msgid "Search" +msgstr "Busca" + #: templates/wagtailadmin/base.html:7 templates/wagtailadmin/home.html:4 msgid "Dashboard" msgstr "Panel de control" @@ -133,7 +146,9 @@ msgstr "Benvido ao CMS Wagtail %(site_name)s" msgid "" "This is your dashboard on which helpful information about content you've " "created will be displayed." -msgstr "Este é o teu panel de control onde aparecerá información útil sobre o contido que creaches." +msgstr "" +"Este é o teu panel de control onde aparecerá información útil sobre o " +"contido que creaches." #: templates/wagtailadmin/login.html:4 templates/wagtailadmin/login.html:59 msgid "Sign in" @@ -165,7 +180,10 @@ msgid "" "Your avatar image is provided by Gravatar and is connected to your email " "address. With a Gravatar account you can set an avatar for any number of " "other email addresses you use." -msgstr "O teu avatar é provisto por Gravatar e está conectado á túa dirección de correo. Cunha conta Gravatar podes establecer un avatar para calquera número de correos electrónicos." +msgstr "" +"O teu avatar é provisto por Gravatar e está conectado á túa dirección de " +"correo. Cunha conta Gravatar podes establecer un avatar para calquera número " +"de correos electrónicos." #: templates/wagtailadmin/account/account.html:25 #: templates/wagtailadmin/account/change_password.html:4 @@ -192,7 +210,9 @@ msgstr "Cambiar Contrasinal" #: templates/wagtailadmin/account/change_password.html:21 msgid "" "Your password can't be changed here. Please contact a site administrator." -msgstr "O teu contrasinal non pode cambiarse aquí. Por favor, contacta co administrador." +msgstr "" +"O teu contrasinal non pode cambiarse aquí. Por favor, contacta co " +"administrador." #: templates/wagtailadmin/account/notification_preferences.html:4 #: templates/wagtailadmin/account/notification_preferences.html:6 @@ -234,11 +254,14 @@ msgstr "Revisa o teu correo electrónico" #: templates/wagtailadmin/account/password_reset/done.html:16 msgid "A link to reset your password has been emailed to you." -msgstr "Unha ligazón para restablecer o teu contrasinal foiche enviado por correo electrónico." +msgstr "" +"Unha ligazón para restablecer o teu contrasinal foiche enviado por correo " +"electrónico." #: templates/wagtailadmin/account/password_reset/email.txt:2 msgid "Please follow the link below to reset your password" -msgstr "Por favor, segue a ligazón de abaixo para restablecer e teu contrasinal" +msgstr "" +"Por favor, segue a ligazón de abaixo para restablecer e teu contrasinal" #: templates/wagtailadmin/account/password_reset/email_subject.txt:2 msgid "Password reset" @@ -263,19 +286,16 @@ msgstr "Ligazón externa" msgid "Email link" msgstr "Ligazón de correo electrónico" -#: templates/wagtailadmin/chooser/_search_form.html:7 -#: templates/wagtailadmin/pages/search.html:3 -#: templates/wagtailadmin/pages/search.html:16 -#: templatetags/wagtailadmin_tags.py:36 -msgid "Search" -msgstr "Busca" +#: templates/wagtailadmin/chooser/_search_results.html:5 +#, python-format +msgid "" +"\n" +" Only pages of type \"%(type)s\" may be chosen for this field. " +"Search results will exclude pages of other types.\n" +" " +msgstr "" -#: templates/wagtailadmin/chooser/_search_results.html:3 -#: templatetags/wagtailadmin_tags.py:35 -msgid "Explorer" -msgstr "Explorador" - -#: templates/wagtailadmin/chooser/_search_results.html:8 +#: templates/wagtailadmin/chooser/_search_results.html:16 #, python-format msgid "" "\n" @@ -285,10 +305,21 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Hai unha coincidencia\n " -msgstr[1] "\n Hai %(counter)s coincidencias\n " +msgstr[0] "" +"\n" +" Hai unha coincidencia\n" +" " +msgstr[1] "" +"\n" +" Hai %(counter)s coincidencias\n" +" " -#: templates/wagtailadmin/chooser/browse.html:2 +#: templates/wagtailadmin/chooser/browse.html:3 +#, fuzzy +msgid "Choose" +msgstr "Elixe unha páxina" + +#: templates/wagtailadmin/chooser/browse.html:6 #: templates/wagtailadmin/chooser/search.html:2 #: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:13 msgid "Choose a page" @@ -443,8 +474,14 @@ msgid_plural "" "\n" " %(total_pages)s Pages\n" " " -msgstr[0] "\n %(total_pages)s Páxina\n " -msgstr[1] "\n %(total_pages)s Páginas\n " +msgstr[0] "" +"\n" +" %(total_pages)s Páxina\n" +" " +msgstr[1] "" +"\n" +" %(total_pages)s Páginas\n" +" " #: templates/wagtailadmin/home/site_summary.html:16 #, python-format @@ -456,8 +493,14 @@ msgid_plural "" "\n" " %(total_images)s Images\n" " " -msgstr[0] "\n %(total_images)s Imaxe\n " -msgstr[1] "\n %(total_images)s Imágenes\n " +msgstr[0] "" +"\n" +" %(total_images)s Imaxe\n" +" " +msgstr[1] "" +"\n" +" %(total_images)s Imágenes\n" +" " #: templates/wagtailadmin/home/site_summary.html:25 #, python-format @@ -469,8 +512,14 @@ msgid_plural "" "\n" " %(total_docs)s Documents\n" " " -msgstr[0] "\n %(total_docs)s Documento\n " -msgstr[1] "\n %(total_docs)s Documentos\n " +msgstr[0] "" +"\n" +" %(total_docs)s Documento\n" +" " +msgstr[1] "" +"\n" +" %(total_docs)s Documentos\n" +" " #: templates/wagtailadmin/notifications/approved.html:1 #, python-format @@ -533,16 +582,21 @@ msgid "You can edit the privacy settings on:" msgstr "" #: templates/wagtailadmin/page_privacy/set_privacy.html:6 -msgid "Note: privacy changes apply to all children of this page too." +msgid "Privacy changes apply to all children of this page too." msgstr "" #: templates/wagtailadmin/pages/_moderator_userbar.html:4 #, python-format msgid "" "\n" -" Previewing '%(title)s', submitted by %(submitted_by)s on %(submitted_on)s.\n" +" Previewing '%(title)s', submitted by %(submitted_by)s on " +"%(submitted_on)s.\n" +" " +msgstr "" +"\n" +" Previsualizando '%(title)s', enviada por %(submitted_by)s en " +"%(submitted_on)s.\n" " " -msgstr "\n Previsualizando '%(title)s', enviada por %(submitted_by)s en %(submitted_on)s.\n " #: templates/wagtailadmin/pages/_privacy_indicator.html:9 msgid "Privacy" @@ -588,16 +642,26 @@ msgid "" " " msgid_plural "" "\n" -" This will also delete %(descendant_count)s more subpages.\n" +" This will also delete %(descendant_count)s more " +"subpages.\n" +" " +msgstr[0] "" +"\n" +" Isto tamén eliminará outra subpáxina.\n" +" " +msgstr[1] "" +"\n" +" Isto tamén eliminará %(descendant_count)s subpáxinas " +"máis.\n" " " -msgstr[0] "\n Isto tamén eliminará outra subpáxina.\n " -msgstr[1] "\n Isto tamén eliminará %(descendant_count)s subpáxinas máis.\n " #: templates/wagtailadmin/pages/confirm_delete.html:22 msgid "" "Alternatively you can unpublish the page. This removes the page from public " "view and you can edit or publish it again later." -msgstr "Outra opción é non publicar a páxina. Isto non permite que o público a vexa e a podes editar ou voltar a publicala máis tarde." +msgstr "" +"Outra opción é non publicar a páxina. Isto non permite que o público a vexa " +"e a podes editar ou voltar a publicala máis tarde." #: templates/wagtailadmin/pages/confirm_delete.html:26 msgid "Delete it" @@ -628,7 +692,9 @@ msgstr "¿Seguro que queres mover esta páxina a '%(title)s'?" msgid "" "Are you sure you want to move this page and all of its children into " "'%(title)s'?" -msgstr "¿Seguro que queres mover esta páxina e todas as súas páxinas filla a '%(title)s'?" +msgstr "" +"¿Seguro que queres mover esta páxina e todas as súas páxinas filla a " +"'%(title)s'?" #: templates/wagtailadmin/pages/confirm_move.html:18 msgid "Yes, move this page" @@ -855,7 +921,10 @@ msgid "" "\n" " Page %(page_number)s of %(num_pages)s.\n" " " -msgstr "\n Páxina %(page_number)s de %(num_pages)s.\n " +msgstr "" +"\n" +" Páxina %(page_number)s de %(num_pages)s.\n" +" " #: templates/wagtailadmin/pages/search_results.html:54 #, python-format @@ -994,66 +1063,66 @@ msgstr "¡O teu contrasinal foi cambiado correctamente!" msgid "Your preferences have been updated successfully!" msgstr "" -#: views/pages.py:169 views/pages.py:286 +#: views/pages.py:167 views/pages.py:284 msgid "Go live date/time must be before expiry date/time" msgstr "" -#: views/pages.py:179 views/pages.py:296 +#: views/pages.py:177 views/pages.py:294 msgid "Expiry date/time must be in the future" msgstr "" -#: views/pages.py:219 views/pages.py:351 views/pages.py:791 +#: views/pages.py:217 views/pages.py:349 views/pages.py:766 msgid "Page '{0}' published." msgstr "Páxina '{0}' publicada." -#: views/pages.py:221 views/pages.py:353 +#: views/pages.py:219 views/pages.py:351 msgid "Page '{0}' submitted for moderation." msgstr "Páxina '{0}' enviada para ser moderada." -#: views/pages.py:224 +#: views/pages.py:222 msgid "Page '{0}' created." msgstr "Páxina '{0}' creada." -#: views/pages.py:233 +#: views/pages.py:231 msgid "The page could not be created due to validation errors" msgstr "" -#: views/pages.py:356 +#: views/pages.py:354 msgid "Page '{0}' updated." msgstr "Páxina '{0}' actualizada." -#: views/pages.py:365 +#: views/pages.py:363 msgid "The page could not be saved due to validation errors" msgstr "A páxina non puido ser gardada debido a erros de validación" -#: views/pages.py:378 +#: views/pages.py:376 msgid "This page is currently awaiting moderation" msgstr "A páxina está á espera de ser moderada" -#: views/pages.py:409 +#: views/pages.py:407 msgid "Page '{0}' deleted." msgstr "Páxina '{0}' eliminada." -#: views/pages.py:575 +#: views/pages.py:550 msgid "Page '{0}' unpublished." msgstr "Páxina '{0}' non publicada." -#: views/pages.py:627 +#: views/pages.py:602 msgid "Page '{0}' moved." msgstr "Páxina '{0}' movida." -#: views/pages.py:709 +#: views/pages.py:684 msgid "Page '{0}' and {1} subpages copied." msgstr "" -#: views/pages.py:711 +#: views/pages.py:686 msgid "Page '{0}' copied." msgstr "" -#: views/pages.py:785 views/pages.py:804 views/pages.py:824 +#: views/pages.py:760 views/pages.py:779 views/pages.py:799 msgid "The page '{0}' is not currently awaiting moderation." msgstr "A páxina '{0}' non está esperando a ser moderada." -#: views/pages.py:810 +#: views/pages.py:785 msgid "Page '{0}' rejected for publication." msgstr "Rexeitada a publicación da página '{0}'." diff --git a/wagtail/wagtailadmin/locale/mn/LC_MESSAGES/django.mo b/wagtail/wagtailadmin/locale/mn/LC_MESSAGES/django.mo index 17dfcca91..073cb1868 100644 Binary files a/wagtail/wagtailadmin/locale/mn/LC_MESSAGES/django.mo and b/wagtail/wagtailadmin/locale/mn/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailadmin/locale/mn/LC_MESSAGES/django.po b/wagtail/wagtailadmin/locale/mn/LC_MESSAGES/django.po index e8d0f5045..c62b5e4a3 100644 --- a/wagtail/wagtailadmin/locale/mn/LC_MESSAGES/django.po +++ b/wagtail/wagtailadmin/locale/mn/LC_MESSAGES/django.po @@ -1,28 +1,29 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Delgermurun Purevkhuuu , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Mongolian (http://www.transifex.com/projects/p/wagtail/language/mn/)\n" +"Language-Team: Mongolian (http://www.transifex.com/projects/p/wagtail/" +"language/mn/)\n" +"Language: mn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: mn\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: edit_handlers.py:627 +#: edit_handlers.py:631 msgid "Scheduled publishing" msgstr "" -#: edit_handlers.py:641 +#: edit_handlers.py:645 msgid "Common page configuration" msgstr "" @@ -98,7 +99,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: forms.py:124 views/pages.py:155 views/pages.py:272 +#: forms.py:124 views/pages.py:153 views/pages.py:270 msgid "This slug is already in use" msgstr "" @@ -115,6 +116,16 @@ msgstr "" msgid "This field is required." msgstr "" +#: wagtail_hooks.py:15 templates/wagtailadmin/chooser/_search_results.html:12 +msgid "Explorer" +msgstr "" + +#: wagtail_hooks.py:23 templates/wagtailadmin/chooser/_search_form.html:7 +#: templates/wagtailadmin/pages/search.html:3 +#: templates/wagtailadmin/pages/search.html:16 +msgid "Search" +msgstr "" + #: templates/wagtailadmin/base.html:7 templates/wagtailadmin/home.html:4 msgid "Dashboard" msgstr "Хянах самбар" @@ -262,19 +273,16 @@ msgstr "" msgid "Email link" msgstr "" -#: templates/wagtailadmin/chooser/_search_form.html:7 -#: templates/wagtailadmin/pages/search.html:3 -#: templates/wagtailadmin/pages/search.html:16 -#: templatetags/wagtailadmin_tags.py:36 -msgid "Search" +#: templates/wagtailadmin/chooser/_search_results.html:5 +#, python-format +msgid "" +"\n" +" Only pages of type \"%(type)s\" may be chosen for this field. " +"Search results will exclude pages of other types.\n" +" " msgstr "" -#: templates/wagtailadmin/chooser/_search_results.html:3 -#: templatetags/wagtailadmin_tags.py:35 -msgid "Explorer" -msgstr "" - -#: templates/wagtailadmin/chooser/_search_results.html:8 +#: templates/wagtailadmin/chooser/_search_results.html:16 #, python-format msgid "" "\n" @@ -287,7 +295,11 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: templates/wagtailadmin/chooser/browse.html:2 +#: templates/wagtailadmin/chooser/browse.html:3 +msgid "Choose" +msgstr "" + +#: templates/wagtailadmin/chooser/browse.html:6 #: templates/wagtailadmin/chooser/search.html:2 #: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:13 msgid "Choose a page" @@ -532,14 +544,15 @@ msgid "You can edit the privacy settings on:" msgstr "" #: templates/wagtailadmin/page_privacy/set_privacy.html:6 -msgid "Note: privacy changes apply to all children of this page too." +msgid "Privacy changes apply to all children of this page too." msgstr "" #: templates/wagtailadmin/pages/_moderator_userbar.html:4 #, python-format msgid "" "\n" -" Previewing '%(title)s', submitted by %(submitted_by)s on %(submitted_on)s.\n" +" Previewing '%(title)s', submitted by %(submitted_by)s on " +"%(submitted_on)s.\n" " " msgstr "" @@ -587,7 +600,8 @@ msgid "" " " msgid_plural "" "\n" -" This will also delete %(descendant_count)s more subpages.\n" +" This will also delete %(descendant_count)s more " +"subpages.\n" " " msgstr[0] "" msgstr[1] "" @@ -993,66 +1007,66 @@ msgstr "" msgid "Your preferences have been updated successfully!" msgstr "" -#: views/pages.py:169 views/pages.py:286 +#: views/pages.py:167 views/pages.py:284 msgid "Go live date/time must be before expiry date/time" msgstr "" -#: views/pages.py:179 views/pages.py:296 +#: views/pages.py:177 views/pages.py:294 msgid "Expiry date/time must be in the future" msgstr "" -#: views/pages.py:219 views/pages.py:351 views/pages.py:791 +#: views/pages.py:217 views/pages.py:349 views/pages.py:766 msgid "Page '{0}' published." msgstr "" -#: views/pages.py:221 views/pages.py:353 +#: views/pages.py:219 views/pages.py:351 msgid "Page '{0}' submitted for moderation." msgstr "" -#: views/pages.py:224 +#: views/pages.py:222 msgid "Page '{0}' created." msgstr "" -#: views/pages.py:233 +#: views/pages.py:231 msgid "The page could not be created due to validation errors" msgstr "" -#: views/pages.py:356 +#: views/pages.py:354 msgid "Page '{0}' updated." msgstr "" -#: views/pages.py:365 +#: views/pages.py:363 msgid "The page could not be saved due to validation errors" msgstr "" -#: views/pages.py:378 +#: views/pages.py:376 msgid "This page is currently awaiting moderation" msgstr "" -#: views/pages.py:409 +#: views/pages.py:407 msgid "Page '{0}' deleted." msgstr "" -#: views/pages.py:575 +#: views/pages.py:550 msgid "Page '{0}' unpublished." msgstr "" -#: views/pages.py:627 +#: views/pages.py:602 msgid "Page '{0}' moved." msgstr "" -#: views/pages.py:709 +#: views/pages.py:684 msgid "Page '{0}' and {1} subpages copied." msgstr "" -#: views/pages.py:711 +#: views/pages.py:686 msgid "Page '{0}' copied." msgstr "" -#: views/pages.py:785 views/pages.py:804 views/pages.py:824 +#: views/pages.py:760 views/pages.py:779 views/pages.py:799 msgid "The page '{0}' is not currently awaiting moderation." msgstr "" -#: views/pages.py:810 +#: views/pages.py:785 msgid "Page '{0}' rejected for publication." msgstr "" diff --git a/wagtail/wagtailadmin/locale/pl/LC_MESSAGES/django.mo b/wagtail/wagtailadmin/locale/pl/LC_MESSAGES/django.mo index 21d95ae1c..96d065718 100644 Binary files a/wagtail/wagtailadmin/locale/pl/LC_MESSAGES/django.mo and b/wagtail/wagtailadmin/locale/pl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailadmin/locale/pl/LC_MESSAGES/django.po b/wagtail/wagtailadmin/locale/pl/LC_MESSAGES/django.po index b2a49d04f..acbf3ce1d 100644 --- a/wagtail/wagtailadmin/locale/pl/LC_MESSAGES/django.po +++ b/wagtail/wagtailadmin/locale/pl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # utek , 2014 # utek , 2014 @@ -9,21 +9,23 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Polish (http://www.transifex.com/projects/p/wagtail/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/projects/p/wagtail/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" -#: edit_handlers.py:627 +#: edit_handlers.py:631 msgid "Scheduled publishing" msgstr "" -#: edit_handlers.py:641 +#: edit_handlers.py:645 msgid "Common page configuration" msgstr "Wspólna konfiguracja stron" @@ -51,7 +53,9 @@ msgstr "Podaj swój adres email." msgid "" "Sorry, you cannot reset your password here as your user account is managed " "by another server." -msgstr "Przepraszamy, nie możesz zresetować hasła tutaj ponieważ Twoje konto jest zarządzane przez inny serwer." +msgstr "" +"Przepraszamy, nie możesz zresetować hasła tutaj ponieważ Twoje konto jest " +"zarządzane przez inny serwer." #: forms.py:76 msgid "This email address is not recognised." @@ -101,7 +105,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: forms.py:124 views/pages.py:155 views/pages.py:272 +#: forms.py:124 views/pages.py:153 views/pages.py:270 msgid "This slug is already in use" msgstr "Ten slug jest już w użyciu" @@ -118,6 +122,16 @@ msgstr "" msgid "This field is required." msgstr "" +#: wagtail_hooks.py:15 templates/wagtailadmin/chooser/_search_results.html:12 +msgid "Explorer" +msgstr "Przeglądarka" + +#: wagtail_hooks.py:23 templates/wagtailadmin/chooser/_search_form.html:7 +#: templates/wagtailadmin/pages/search.html:3 +#: templates/wagtailadmin/pages/search.html:16 +msgid "Search" +msgstr "Szukaj" + #: templates/wagtailadmin/base.html:7 templates/wagtailadmin/home.html:4 msgid "Dashboard" msgstr "Kokpit" @@ -135,7 +149,9 @@ msgstr "Witamy na %(site_name)s Wagtail CMS" msgid "" "This is your dashboard on which helpful information about content you've " "created will be displayed." -msgstr "To jest twój kokpit, na którym będą wyświetlane pomocne informacje o treści, którą stworzono." +msgstr "" +"To jest twój kokpit, na którym będą wyświetlane pomocne informacje o treści, " +"którą stworzono." #: templates/wagtailadmin/login.html:4 templates/wagtailadmin/login.html:59 msgid "Sign in" @@ -167,7 +183,10 @@ msgid "" "Your avatar image is provided by Gravatar and is connected to your email " "address. With a Gravatar account you can set an avatar for any number of " "other email addresses you use." -msgstr "Twoje zdjęcie jest dostarczane przez Gravatar i jest skojarzone z Twoim adresem email. Z konta Gravatar możesz ustawić zdjęcie dla dowolnej ilości adresów email, których używasz." +msgstr "" +"Twoje zdjęcie jest dostarczane przez Gravatar i jest skojarzone z Twoim " +"adresem email. Z konta Gravatar możesz ustawić zdjęcie dla dowolnej ilości " +"adresów email, których używasz." #: templates/wagtailadmin/account/account.html:25 #: templates/wagtailadmin/account/change_password.html:4 @@ -194,7 +213,9 @@ msgstr "Zmień hasło" #: templates/wagtailadmin/account/change_password.html:21 msgid "" "Your password can't be changed here. Please contact a site administrator." -msgstr "Twoje hasło nie może być zmienione. Proszę skontaktować się z administratorem." +msgstr "" +"Twoje hasło nie może być zmienione. Proszę skontaktować się z " +"administratorem." #: templates/wagtailadmin/account/notification_preferences.html:4 #: templates/wagtailadmin/account/notification_preferences.html:6 @@ -265,19 +286,16 @@ msgstr "Link zewnętrzny" msgid "Email link" msgstr "Wyślij link pocztą email" -#: templates/wagtailadmin/chooser/_search_form.html:7 -#: templates/wagtailadmin/pages/search.html:3 -#: templates/wagtailadmin/pages/search.html:16 -#: templatetags/wagtailadmin_tags.py:36 -msgid "Search" -msgstr "Szukaj" +#: templates/wagtailadmin/chooser/_search_results.html:5 +#, python-format +msgid "" +"\n" +" Only pages of type \"%(type)s\" may be chosen for this field. " +"Search results will exclude pages of other types.\n" +" " +msgstr "" -#: templates/wagtailadmin/chooser/_search_results.html:3 -#: templatetags/wagtailadmin_tags.py:35 -msgid "Explorer" -msgstr "Przeglądarka" - -#: templates/wagtailadmin/chooser/_search_results.html:8 +#: templates/wagtailadmin/chooser/_search_results.html:16 #, python-format msgid "" "\n" @@ -287,11 +305,25 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Jedno dopasowanie\n " -msgstr[1] "\n Są %(counter)s dopasowania\n " -msgstr[2] "\n Jest %(counter)s dopasowań\n " +msgstr[0] "" +"\n" +" Jedno dopasowanie\n" +" " +msgstr[1] "" +"\n" +" Są %(counter)s dopasowania\n" +" " +msgstr[2] "" +"\n" +" Jest %(counter)s dopasowań\n" +" " -#: templates/wagtailadmin/chooser/browse.html:2 +#: templates/wagtailadmin/chooser/browse.html:3 +#, fuzzy +msgid "Choose" +msgstr "Wybierz stronę" + +#: templates/wagtailadmin/chooser/browse.html:6 #: templates/wagtailadmin/chooser/search.html:2 #: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:13 msgid "Choose a page" @@ -446,9 +478,18 @@ msgid_plural "" "\n" " %(total_pages)s Pages\n" " " -msgstr[0] "\n %(total_pages)s Strona\n " -msgstr[1] "\n %(total_pages)s Strony\n " -msgstr[2] "\n %(total_pages)s Stron\n " +msgstr[0] "" +"\n" +" %(total_pages)s Strona\n" +" " +msgstr[1] "" +"\n" +" %(total_pages)s Strony\n" +" " +msgstr[2] "" +"\n" +" %(total_pages)s Stron\n" +" " #: templates/wagtailadmin/home/site_summary.html:16 #, python-format @@ -460,9 +501,18 @@ msgid_plural "" "\n" " %(total_images)s Images\n" " " -msgstr[0] "\n %(total_images)s Obraz\n " -msgstr[1] "\n %(total_images)s Obrazy\n " -msgstr[2] "\n %(total_images)s Obrazów\n " +msgstr[0] "" +"\n" +" %(total_images)s Obraz\n" +" " +msgstr[1] "" +"\n" +" %(total_images)s Obrazy\n" +" " +msgstr[2] "" +"\n" +" %(total_images)s Obrazów\n" +" " #: templates/wagtailadmin/home/site_summary.html:25 #, python-format @@ -474,9 +524,18 @@ msgid_plural "" "\n" " %(total_docs)s Documents\n" " " -msgstr[0] "\n %(total_docs)s Dokument\n " -msgstr[1] "\n %(total_docs)s Dokumenty\n " -msgstr[2] "\n %(total_docs)s Dokumentów\n " +msgstr[0] "" +"\n" +" %(total_docs)s Dokument\n" +" " +msgstr[1] "" +"\n" +" %(total_docs)s Dokumenty\n" +" " +msgstr[2] "" +"\n" +" %(total_docs)s Dokumentów\n" +" " #: templates/wagtailadmin/notifications/approved.html:1 #, python-format @@ -539,16 +598,19 @@ msgid "You can edit the privacy settings on:" msgstr "" #: templates/wagtailadmin/page_privacy/set_privacy.html:6 -msgid "Note: privacy changes apply to all children of this page too." +msgid "Privacy changes apply to all children of this page too." msgstr "" #: templates/wagtailadmin/pages/_moderator_userbar.html:4 #, python-format msgid "" "\n" -" Previewing '%(title)s', submitted by %(submitted_by)s on %(submitted_on)s.\n" +" Previewing '%(title)s', submitted by %(submitted_by)s on " +"%(submitted_on)s.\n" " " -msgstr "\nPodgląd '%(title)s', Wysłano przez %(submitted_by)s, %(submitted_on)s." +msgstr "" +"\n" +"Podgląd '%(title)s', Wysłano przez %(submitted_by)s, %(submitted_on)s." #: templates/wagtailadmin/pages/_privacy_indicator.html:9 msgid "Privacy" @@ -594,17 +656,32 @@ msgid "" " " msgid_plural "" "\n" -" This will also delete %(descendant_count)s more subpages.\n" +" This will also delete %(descendant_count)s more " +"subpages.\n" +" " +msgstr[0] "" +"\n" +" Zostanie usunięta również jedna strona podrzędna\n" +" " +msgstr[1] "" +"\n" +" Zostaną usunięte również %(descendant_count)s strony " +"podrzędne.\n" +" " +msgstr[2] "" +"\n" +" Zostanie usuniętych również %(descendant_count)s stron " +"podrzędnych.\n" " " -msgstr[0] "\n Zostanie usunięta również jedna strona podrzędna\n " -msgstr[1] "\n Zostaną usunięte również %(descendant_count)s strony podrzędne.\n " -msgstr[2] "\n Zostanie usuniętych również %(descendant_count)s stron podrzędnych.\n " #: templates/wagtailadmin/pages/confirm_delete.html:22 msgid "" "Alternatively you can unpublish the page. This removes the page from public " "view and you can edit or publish it again later." -msgstr "Możesz dodatkowo cofnąć publikację tej strony. To spowoduje usunięcie jej z widoku publicznego. Istnieje możliwość późniejszej edycji lub ponownej publikacji." +msgstr "" +"Możesz dodatkowo cofnąć publikację tej strony. To spowoduje usunięcie jej z " +"widoku publicznego. Istnieje możliwość późniejszej edycji lub ponownej " +"publikacji." #: templates/wagtailadmin/pages/confirm_delete.html:26 msgid "Delete it" @@ -635,7 +712,9 @@ msgstr "Czy na pewno chcesz przesunąć tę stronę do '%(title)s'?" msgid "" "Are you sure you want to move this page and all of its children into " "'%(title)s'?" -msgstr "Czy na pewno chcesz przesunąć tę stronę i wszystkie strony podrzędne do '%(title)s'?" +msgstr "" +"Czy na pewno chcesz przesunąć tę stronę i wszystkie strony podrzędne do " +"'%(title)s'?" #: templates/wagtailadmin/pages/confirm_move.html:18 msgid "Yes, move this page" @@ -863,7 +942,10 @@ msgid "" "\n" " Page %(page_number)s of %(num_pages)s.\n" " " -msgstr "\n Strona %(page_number)s z %(num_pages)s.\n " +msgstr "" +"\n" +" Strona %(page_number)s z %(num_pages)s.\n" +" " #: templates/wagtailadmin/pages/search_results.html:54 #, python-format @@ -1003,66 +1085,66 @@ msgstr "Twoje hasło zostało zmienione poprawnie!" msgid "Your preferences have been updated successfully!" msgstr "" -#: views/pages.py:169 views/pages.py:286 +#: views/pages.py:167 views/pages.py:284 msgid "Go live date/time must be before expiry date/time" msgstr "" -#: views/pages.py:179 views/pages.py:296 +#: views/pages.py:177 views/pages.py:294 msgid "Expiry date/time must be in the future" msgstr "" -#: views/pages.py:219 views/pages.py:351 views/pages.py:791 +#: views/pages.py:217 views/pages.py:349 views/pages.py:766 msgid "Page '{0}' published." msgstr "Strona '{0}' została opublikowana." -#: views/pages.py:221 views/pages.py:353 +#: views/pages.py:219 views/pages.py:351 msgid "Page '{0}' submitted for moderation." msgstr "Przesłano stronę '{0}' do przeglądu." -#: views/pages.py:224 +#: views/pages.py:222 msgid "Page '{0}' created." msgstr "Stworzono stronę '{0}'." -#: views/pages.py:233 +#: views/pages.py:231 msgid "The page could not be created due to validation errors" msgstr "" -#: views/pages.py:356 +#: views/pages.py:354 msgid "Page '{0}' updated." msgstr "Uaktualniono stronę '{0}'." -#: views/pages.py:365 +#: views/pages.py:363 msgid "The page could not be saved due to validation errors" msgstr "Strona nie mogła zostać zapisana z powodu błędów poprawności." -#: views/pages.py:378 +#: views/pages.py:376 msgid "This page is currently awaiting moderation" msgstr "Ta strona oczekuje na przejrzenie." -#: views/pages.py:409 +#: views/pages.py:407 msgid "Page '{0}' deleted." msgstr "Usunięto stronę '{0}'." -#: views/pages.py:575 +#: views/pages.py:550 msgid "Page '{0}' unpublished." msgstr "Cofnięto publikację strony '{0}'." -#: views/pages.py:627 +#: views/pages.py:602 msgid "Page '{0}' moved." msgstr "Przesunięto stronę '{0}'." -#: views/pages.py:709 +#: views/pages.py:684 msgid "Page '{0}' and {1} subpages copied." msgstr "" -#: views/pages.py:711 +#: views/pages.py:686 msgid "Page '{0}' copied." msgstr "" -#: views/pages.py:785 views/pages.py:804 views/pages.py:824 +#: views/pages.py:760 views/pages.py:779 views/pages.py:799 msgid "The page '{0}' is not currently awaiting moderation." msgstr "Strona '{0}' nie oczekuje na przejrzenie." -#: views/pages.py:810 +#: views/pages.py:785 msgid "Page '{0}' rejected for publication." msgstr "Strona '{0}' została odrzucona." diff --git a/wagtail/wagtailadmin/locale/pt_BR/LC_MESSAGES/django.mo b/wagtail/wagtailadmin/locale/pt_BR/LC_MESSAGES/django.mo index 30c718d83..1e21d668d 100644 Binary files a/wagtail/wagtailadmin/locale/pt_BR/LC_MESSAGES/django.mo and b/wagtail/wagtailadmin/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailadmin/locale/pt_BR/LC_MESSAGES/django.po b/wagtail/wagtailadmin/locale/pt_BR/LC_MESSAGES/django.po index d30aaa5f0..d9b326e2a 100644 --- a/wagtail/wagtailadmin/locale/pt_BR/LC_MESSAGES/django.po +++ b/wagtail/wagtailadmin/locale/pt_BR/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Douglas Miranda , 2014 # Gladson , 2014 @@ -9,21 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/wagtail/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/" +"wagtail/language/pt_BR/)\n" +"Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: edit_handlers.py:627 +#: edit_handlers.py:631 msgid "Scheduled publishing" msgstr "" -#: edit_handlers.py:641 +#: edit_handlers.py:645 msgid "Common page configuration" msgstr "Configuração comum de página" @@ -51,7 +52,9 @@ msgstr "Por favor, insira o seu e-mail." msgid "" "Sorry, you cannot reset your password here as your user account is managed " "by another server." -msgstr "Desculpe, você não pode redefinir sua senha aqui com seu usuário, que é gerenciado por outro servidor." +msgstr "" +"Desculpe, você não pode redefinir sua senha aqui com seu usuário, que é " +"gerenciado por outro servidor." #: forms.py:76 msgid "This email address is not recognised." @@ -99,7 +102,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: forms.py:124 views/pages.py:155 views/pages.py:272 +#: forms.py:124 views/pages.py:153 views/pages.py:270 msgid "This slug is already in use" msgstr "Esse endereço já existe" @@ -116,6 +119,16 @@ msgstr "Privado, acessível com a seguinte senha" msgid "This field is required." msgstr "Este campo é obrigatório." +#: wagtail_hooks.py:15 templates/wagtailadmin/chooser/_search_results.html:12 +msgid "Explorer" +msgstr "Explorar" + +#: wagtail_hooks.py:23 templates/wagtailadmin/chooser/_search_form.html:7 +#: templates/wagtailadmin/pages/search.html:3 +#: templates/wagtailadmin/pages/search.html:16 +msgid "Search" +msgstr "Pesquisa" + #: templates/wagtailadmin/base.html:7 templates/wagtailadmin/home.html:4 msgid "Dashboard" msgstr "Painel" @@ -133,7 +146,9 @@ msgstr "Bem vindo ao %(site_name)s Wagtail CMS" msgid "" "This is your dashboard on which helpful information about content you've " "created will be displayed." -msgstr "Este é o seu painel aonde possui informações úteis sobre os conteúdos que criou." +msgstr "" +"Este é o seu painel aonde possui informações úteis sobre os conteúdos que " +"criou." #: templates/wagtailadmin/login.html:4 templates/wagtailadmin/login.html:59 msgid "Sign in" @@ -165,7 +180,10 @@ msgid "" "Your avatar image is provided by Gravatar and is connected to your email " "address. With a Gravatar account you can set an avatar for any number of " "other email addresses you use." -msgstr "Sua imagem é fornecido pelo Gravatar e está ligado ao seu e-mail. Com sua conta do Gravatar você pode definir um avatar para qualquer quantidade de e-mails que você usa." +msgstr "" +"Sua imagem é fornecido pelo Gravatar e está ligado ao seu e-mail. Com sua " +"conta do Gravatar você pode definir um avatar para qualquer quantidade de e-" +"mails que você usa." #: templates/wagtailadmin/account/account.html:25 #: templates/wagtailadmin/account/change_password.html:4 @@ -263,19 +281,16 @@ msgstr "Link externo" msgid "Email link" msgstr "Link de e-mail" -#: templates/wagtailadmin/chooser/_search_form.html:7 -#: templates/wagtailadmin/pages/search.html:3 -#: templates/wagtailadmin/pages/search.html:16 -#: templatetags/wagtailadmin_tags.py:36 -msgid "Search" -msgstr "Pesquisa" +#: templates/wagtailadmin/chooser/_search_results.html:5 +#, python-format +msgid "" +"\n" +" Only pages of type \"%(type)s\" may be chosen for this field. " +"Search results will exclude pages of other types.\n" +" " +msgstr "" -#: templates/wagtailadmin/chooser/_search_results.html:3 -#: templatetags/wagtailadmin_tags.py:35 -msgid "Explorer" -msgstr "Explorar" - -#: templates/wagtailadmin/chooser/_search_results.html:8 +#: templates/wagtailadmin/chooser/_search_results.html:16 #, python-format msgid "" "\n" @@ -285,10 +300,21 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Existe uma combinação\n " -msgstr[1] "\n Existem %(counter)s combinações\n " +msgstr[0] "" +"\n" +" Existe uma combinação\n" +" " +msgstr[1] "" +"\n" +" Existem %(counter)s combinações\n" +" " -#: templates/wagtailadmin/chooser/browse.html:2 +#: templates/wagtailadmin/chooser/browse.html:3 +#, fuzzy +msgid "Choose" +msgstr "Escolha uma página" + +#: templates/wagtailadmin/chooser/browse.html:6 #: templates/wagtailadmin/chooser/search.html:2 #: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:13 msgid "Choose a page" @@ -443,8 +469,14 @@ msgid_plural "" "\n" " %(total_pages)s Pages\n" " " -msgstr[0] "\n %(total_pages)s Página\n " -msgstr[1] "\n %(total_pages)s Páginas\n " +msgstr[0] "" +"\n" +" %(total_pages)s Página\n" +" " +msgstr[1] "" +"\n" +" %(total_pages)s Páginas\n" +" " #: templates/wagtailadmin/home/site_summary.html:16 #, python-format @@ -456,8 +488,14 @@ msgid_plural "" "\n" " %(total_images)s Images\n" " " -msgstr[0] "\n %(total_images)s Imagem\n " -msgstr[1] "\n %(total_images)s Imagens\n " +msgstr[0] "" +"\n" +" %(total_images)s Imagem\n" +" " +msgstr[1] "" +"\n" +" %(total_images)s Imagens\n" +" " #: templates/wagtailadmin/home/site_summary.html:25 #, python-format @@ -469,8 +507,14 @@ msgid_plural "" "\n" " %(total_docs)s Documents\n" " " -msgstr[0] "\n %(total_docs)s Documento\n " -msgstr[1] "\n %(total_docs)s Documentos\n " +msgstr[0] "" +"\n" +" %(total_docs)s Documento\n" +" " +msgstr[1] "" +"\n" +" %(total_docs)s Documentos\n" +" " #: templates/wagtailadmin/notifications/approved.html:1 #, python-format @@ -533,16 +577,21 @@ msgid "You can edit the privacy settings on:" msgstr "Você pode editar as configurações de privacidade em:" #: templates/wagtailadmin/page_privacy/set_privacy.html:6 -msgid "Note: privacy changes apply to all children of this page too." +msgid "Privacy changes apply to all children of this page too." msgstr "" #: templates/wagtailadmin/pages/_moderator_userbar.html:4 #, python-format msgid "" "\n" -" Previewing '%(title)s', submitted by %(submitted_by)s on %(submitted_on)s.\n" +" Previewing '%(title)s', submitted by %(submitted_by)s on " +"%(submitted_on)s.\n" +" " +msgstr "" +"\n" +" Visualizando '%(title)s', enviado por %(submitted_by)s em " +"%(submitted_on)s.\n" " " -msgstr "\n Visualizando '%(title)s', enviado por %(submitted_by)s em %(submitted_on)s.\n " #: templates/wagtailadmin/pages/_privacy_indicator.html:9 msgid "Privacy" @@ -588,16 +637,26 @@ msgid "" " " msgid_plural "" "\n" -" This will also delete %(descendant_count)s more subpages.\n" +" This will also delete %(descendant_count)s more " +"subpages.\n" +" " +msgstr[0] "" +"\n" +" Isso deverá excluir mais de uma sub-página.\n" +" " +msgstr[1] "" +"\n" +" Isso deverá excluir mais de %(descendant_count)s sub-" +"páginas.\n" " " -msgstr[0] "\n Isso deverá excluir mais de uma sub-página.\n " -msgstr[1] "\n Isso deverá excluir mais de %(descendant_count)s sub-páginas.\n " #: templates/wagtailadmin/pages/confirm_delete.html:22 msgid "" "Alternatively you can unpublish the page. This removes the page from public " "view and you can edit or publish it again later." -msgstr "Você pode cancelar a publicaçåo da página de outra forma. Isso vai remover a página de publicação e então pode editar e publicá-lo mais tarde." +msgstr "" +"Você pode cancelar a publicaçåo da página de outra forma. Isso vai remover a " +"página de publicação e então pode editar e publicá-lo mais tarde." #: templates/wagtailadmin/pages/confirm_delete.html:26 msgid "Delete it" @@ -628,7 +687,8 @@ msgstr "Tem certeza que deseja mover a página dentro de '%(title)s'?" msgid "" "Are you sure you want to move this page and all of its children into " "'%(title)s'?" -msgstr "Tem certeza que deseja mover essa página e suas filhas dentro de '%(title)s'?" +msgstr "" +"Tem certeza que deseja mover essa página e suas filhas dentro de '%(title)s'?" #: templates/wagtailadmin/pages/confirm_move.html:18 msgid "Yes, move this page" @@ -787,7 +847,10 @@ msgid "" "\n" " Page %(page_number)s of %(num_pages)s.\n" " " -msgstr "\n Página %(page_number)s de %(num_pages)s.\n " +msgstr "" +"\n" +" Página %(page_number)s de %(num_pages)s.\n" +" " #: templates/wagtailadmin/pages/list.html:269 #: templates/wagtailadmin/pages/search_results.html:35 @@ -829,8 +892,14 @@ msgid_plural "" "\n" " There are %(counter)s matching pages\n" " " -msgstr[0] "\n Há uma página correspondente\n " -msgstr[1] "\n Existem %(counter)s páginas que correspondem\n " +msgstr[0] "" +"\n" +" Há uma página correspondente\n" +" " +msgstr[1] "" +"\n" +" Existem %(counter)s páginas que correspondem\n" +" " #: templates/wagtailadmin/pages/search_results.html:16 msgid "Other searches" @@ -855,7 +924,10 @@ msgid "" "\n" " Page %(page_number)s of %(num_pages)s.\n" " " -msgstr "\n Página %(page_number)s de %(num_pages)s.\n " +msgstr "" +"\n" +" Página %(page_number)s de %(num_pages)s.\n" +" " #: templates/wagtailadmin/pages/search_results.html:54 #, python-format @@ -994,66 +1066,66 @@ msgstr "Sua senha foi alterada com sucesso!" msgid "Your preferences have been updated successfully!" msgstr "" -#: views/pages.py:169 views/pages.py:286 +#: views/pages.py:167 views/pages.py:284 msgid "Go live date/time must be before expiry date/time" msgstr "" -#: views/pages.py:179 views/pages.py:296 +#: views/pages.py:177 views/pages.py:294 msgid "Expiry date/time must be in the future" msgstr "" -#: views/pages.py:219 views/pages.py:351 views/pages.py:791 +#: views/pages.py:217 views/pages.py:349 views/pages.py:766 msgid "Page '{0}' published." msgstr "Página '{0}' publicada." -#: views/pages.py:221 views/pages.py:353 +#: views/pages.py:219 views/pages.py:351 msgid "Page '{0}' submitted for moderation." msgstr "Página '{0}' enviada para moderação." -#: views/pages.py:224 +#: views/pages.py:222 msgid "Page '{0}' created." msgstr "Página '{0}' criada." -#: views/pages.py:233 +#: views/pages.py:231 msgid "The page could not be created due to validation errors" msgstr "" -#: views/pages.py:356 +#: views/pages.py:354 msgid "Page '{0}' updated." msgstr "Página '{0}' atualizada." -#: views/pages.py:365 +#: views/pages.py:363 msgid "The page could not be saved due to validation errors" msgstr "A página não pode ser salva devido a erros de validação" -#: views/pages.py:378 +#: views/pages.py:376 msgid "This page is currently awaiting moderation" msgstr "Essa página está atualmente esperando moderação" -#: views/pages.py:409 +#: views/pages.py:407 msgid "Page '{0}' deleted." msgstr "Página '{0}' excluida." -#: views/pages.py:575 +#: views/pages.py:550 msgid "Page '{0}' unpublished." msgstr "Página '{0}' despublicada." -#: views/pages.py:627 +#: views/pages.py:602 msgid "Page '{0}' moved." msgstr "Página '{0}' movida." -#: views/pages.py:709 +#: views/pages.py:684 msgid "Page '{0}' and {1} subpages copied." msgstr "" -#: views/pages.py:711 +#: views/pages.py:686 msgid "Page '{0}' copied." msgstr "" -#: views/pages.py:785 views/pages.py:804 views/pages.py:824 +#: views/pages.py:760 views/pages.py:779 views/pages.py:799 msgid "The page '{0}' is not currently awaiting moderation." msgstr "A página '{0}' não está mais esperando moderação." -#: views/pages.py:810 +#: views/pages.py:785 msgid "Page '{0}' rejected for publication." msgstr "Página '{0}' rejeitada para publicação." diff --git a/wagtail/wagtailadmin/locale/pt_PT/LC_MESSAGES/django.mo b/wagtail/wagtailadmin/locale/pt_PT/LC_MESSAGES/django.mo new file mode 100644 index 000000000..de6b68ffd Binary files /dev/null and b/wagtail/wagtailadmin/locale/pt_PT/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailadmin/locale/pt_PT/LC_MESSAGES/django.po b/wagtail/wagtailadmin/locale/pt_PT/LC_MESSAGES/django.po new file mode 100644 index 000000000..e40700d5e --- /dev/null +++ b/wagtail/wagtailadmin/locale/pt_PT/LC_MESSAGES/django.po @@ -0,0 +1,1142 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Douglas Miranda , 2014 +# Gladson , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail 0.5.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" +"PO-Revision-Date: 2014-09-17 17:21+0100\n" +"Last-Translator: Jose Lourenco \n" +"Language-Team: \n" +"Language: pt_PT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: edit_handlers.py:631 +msgid "Scheduled publishing" +msgstr "Publicação agendada" + +#: edit_handlers.py:645 +msgid "Common page configuration" +msgstr "Configuração comum de página" + +#: forms.py:19 +msgid "Search term" +msgstr "Procurar termo" + +#: forms.py:43 +msgid "Enter your username" +msgstr "Introduza o seu nome de utilizador" + +#: forms.py:46 +msgid "Enter password" +msgstr "Introduza a sua senha" + +#: forms.py:51 +msgid "Enter your email address to reset your password" +msgstr "Introduza o seu email para alterar a sua senha" + +#: forms.py:60 +msgid "Please fill your email address." +msgstr "Por favor, insira o seu e-mail." + +#: forms.py:73 +msgid "" +"Sorry, you cannot reset your password here as your user account is managed " +"by another server." +msgstr "" +"Desculpe, você não pode alterar a sua senha aqui porque a sua conta de " +"utilizador é gerida por outro servidor." + +#: forms.py:76 +msgid "This email address is not recognised." +msgstr "Este email não é reconhecido." + +#: forms.py:88 +msgid "New title" +msgstr "Novo título" + +#: forms.py:89 +msgid "New slug" +msgstr "Novo endereço" + +#: forms.py:95 +msgid "Copy subpages" +msgstr "Copiar sub-páginas" + +#: forms.py:97 +#, python-format +msgid "This will copy %(count)s subpage." +msgid_plural "This will copy %(count)s subpages." +msgstr[0] "Será copiada %(count)s sub-página." +msgstr[1] "Serão copiadas %(count)s sub-páginas." + +#: forms.py:106 +msgid "Publish copied page" +msgstr "Publicar página copiada" + +#: forms.py:107 +msgid "This page is live. Would you like to publish its copy as well?" +msgstr "Esta página está publicada. Gostaria de publicar também a sua cópia?" + +#: forms.py:109 +msgid "Publish copies" +msgstr "Publicar cópias" + +#: forms.py:111 +#, python-format +msgid "" +"%(count)s of the pages being copied is live. Would you like to publish its " +"copy?" +msgid_plural "" +"%(count)s of the pages being copied are live. Would you like to publish " +"their copies?" +msgstr[0] "" +"%(count)s das páginas a copiar estão publicadas. Gostaria de publicar " +"também a sua cópia?" +msgstr[1] "" +"%(count)s das páginas a copiar estão publicadas. Gostaria de publicar " +"também as suas cópias?" + +#: forms.py:124 views/pages.py:153 views/pages.py:270 +msgid "This slug is already in use" +msgstr "Esse endereço já existe" + +#: forms.py:130 templates/wagtailadmin/pages/_privacy_indicator.html:13 +#: templates/wagtailadmin/pages/_privacy_indicator.html:18 +msgid "Public" +msgstr "Público" + +#: forms.py:131 +msgid "Private, accessible with the following password" +msgstr "Privado, acessível com a seguinte senha" + +#: forms.py:139 +msgid "This field is required." +msgstr "Este campo é obrigatório." + +#: wagtail_hooks.py:15 templates/wagtailadmin/chooser/_search_results.html:12 +msgid "Explorer" +msgstr "Explorador" + +#: wagtail_hooks.py:23 templates/wagtailadmin/chooser/_search_form.html:7 +#: templates/wagtailadmin/pages/search.html:3 +#: templates/wagtailadmin/pages/search.html:16 +msgid "Search" +msgstr "Procurar" + +#: templates/wagtailadmin/base.html:7 templates/wagtailadmin/home.html:4 +msgid "Dashboard" +msgstr "Painel de controlo" + +#: templates/wagtailadmin/base.html:27 +msgid "Menu" +msgstr "Menu" + +#: templates/wagtailadmin/home.html:22 +#, python-format +msgid "Welcome to the %(site_name)s Wagtail CMS" +msgstr "Bem vindo ao %(site_name)s Wagtail CMS" + +#: templates/wagtailadmin/home.html:33 +msgid "" +"This is your dashboard on which helpful information about content you've " +"created will be displayed." +msgstr "" +"Este é o seu painel de controlo no qual serão mostradas informações úteis " +"sobre os conteúdos criados por si." + +#: templates/wagtailadmin/login.html:4 templates/wagtailadmin/login.html:59 +msgid "Sign in" +msgstr "Entrar" + +#: templates/wagtailadmin/login.html:18 +msgid "Your username and password didn't match. Please try again." +msgstr "O seu nome de utilizador ou senha não estão corretos. Tente novamente." + +#: templates/wagtailadmin/login.html:26 +msgid "Sign in to Wagtail" +msgstr "Entrar no Wagtail" + +#: templates/wagtailadmin/login.html:46 +msgid "Forgotten it?" +msgstr "Esqueceu-a?" + +#: templates/wagtailadmin/account/account.html:4 +#: templates/wagtailadmin/account/account.html:6 +msgid "Account" +msgstr "Conta" + +#: templates/wagtailadmin/account/account.html:13 +msgid "Set gravatar" +msgstr "Atribuir gravatar" + +#: templates/wagtailadmin/account/account.html:17 +msgid "" +"Your avatar image is provided by Gravatar and is connected to your email " +"address. With a Gravatar account you can set an avatar for any number of " +"other email addresses you use." +msgstr "" +"A sua imagem avatar é fornecida por Gravatar e está associada ao seu email. " +"Com uma conta do Gravatar você pode definir uma imagem avatar para qualquer " +"número de emails que você use." + +#: templates/wagtailadmin/account/account.html:25 +#: templates/wagtailadmin/account/change_password.html:4 +#: templates/wagtailadmin/account/change_password.html:6 +msgid "Change password" +msgstr "Alterar senha" + +#: templates/wagtailadmin/account/account.html:29 +msgid "Change the password you use to log in." +msgstr "Altere a senha que utiliza para entrar." + +#: templates/wagtailadmin/account/account.html:36 +msgid "Notification preferences" +msgstr "Preferências de notificação" + +#: templates/wagtailadmin/account/account.html:40 +msgid "Choose which email notifications to receive." +msgstr "Escolha quais as notificações de email a receber." + +#: templates/wagtailadmin/account/change_password.html:18 +msgid "Change Password" +msgstr "Alterar Senha" + +#: templates/wagtailadmin/account/change_password.html:21 +msgid "" +"Your password can't be changed here. Please contact a site administrator." +msgstr "A sua senha não pode ser alterada. Contacte um administrador do site." + +#: templates/wagtailadmin/account/notification_preferences.html:4 +#: templates/wagtailadmin/account/notification_preferences.html:6 +msgid "Notification Preferences" +msgstr "Preferências de notificação" + +#: templates/wagtailadmin/account/notification_preferences.html:16 +msgid "Update" +msgstr "Atualizar" + +#: templates/wagtailadmin/account/password_reset/complete.html:4 +#: templates/wagtailadmin/account/password_reset/confirm.html:42 +#: templates/wagtailadmin/account/password_reset/done.html:4 +#: templates/wagtailadmin/account/password_reset/form.html:4 +#: templates/wagtailadmin/account/password_reset/form.html:37 +msgid "Reset password" +msgstr "Alterar senha" + +#: templates/wagtailadmin/account/password_reset/complete.html:15 +msgid "Password change successful" +msgstr "Senha alterada com sucesso" + +#: templates/wagtailadmin/account/password_reset/complete.html:16 +msgid "Login" +msgstr "Login" + +#: templates/wagtailadmin/account/password_reset/confirm.html:4 +#: templates/wagtailadmin/account/password_reset/confirm.html:26 +msgid "Set your new password" +msgstr "Insira a sua nova senha" + +#: templates/wagtailadmin/account/password_reset/confirm.html:19 +msgid "The passwords do not match. Please try again." +msgstr "As senhas são diferentes. Tente novamente." + +#: templates/wagtailadmin/account/password_reset/done.html:15 +msgid "Check your email" +msgstr "Verifique o seu email" + +#: templates/wagtailadmin/account/password_reset/done.html:16 +msgid "A link to reset your password has been emailed to you." +msgstr "Um link para alterar a sua senha foi-lhe enviado para o seu email." + +#: templates/wagtailadmin/account/password_reset/email.txt:2 +msgid "Please follow the link below to reset your password" +msgstr "Por favor clique no link abaixo para alterar a sua senha" + +#: templates/wagtailadmin/account/password_reset/email_subject.txt:2 +msgid "Password reset" +msgstr "Alterar senha" + +#: templates/wagtailadmin/account/password_reset/form.html:27 +msgid "Reset your password" +msgstr "Alterar a sua senha" + +#: templates/wagtailadmin/chooser/_link_types.html:5 +#: templates/wagtailadmin/chooser/_link_types.html:7 +msgid "Internal link" +msgstr "Link interno" + +#: templates/wagtailadmin/chooser/_link_types.html:11 +#: templates/wagtailadmin/chooser/_link_types.html:13 +msgid "External link" +msgstr "Link externo" + +#: templates/wagtailadmin/chooser/_link_types.html:17 +#: templates/wagtailadmin/chooser/_link_types.html:19 +msgid "Email link" +msgstr "Link de email" + +#: templates/wagtailadmin/chooser/_search_results.html:5 +#, python-format +msgid "" +"\n" +" Only pages of type \"%(type)s\" may be chosen for this field. " +"Search results will exclude pages of other types.\n" +" " +msgstr "" +"\n" +" Neste campo apenas pode escolher páginas do tipo \"%(type)s\". " +"Nos resultados da pesquisa serão excluídas as páginas de outros tipos.\n" +" " + +#: templates/wagtailadmin/chooser/_search_results.html:16 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "" +"\n" +" Existe uma correspondência\n" +" " +msgstr[1] "" +"\n" +" Existem %(counter)s correspondências\n" +" " + +#: templates/wagtailadmin/chooser/browse.html:3 +msgid "Choose" +msgstr "Escolhe" + +#: templates/wagtailadmin/chooser/browse.html:6 +#: templates/wagtailadmin/chooser/search.html:2 +#: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:13 +msgid "Choose a page" +msgstr "Escolher uma página" + +#: templates/wagtailadmin/chooser/email_link.html:2 +msgid "Add an email link" +msgstr "Adicionar link de email" + +#: templates/wagtailadmin/chooser/email_link.html:14 +#: templates/wagtailadmin/chooser/external_link.html:14 +msgid "Insert link" +msgstr "Inserir link" + +#: templates/wagtailadmin/chooser/external_link.html:2 +msgid "Add an external link" +msgstr "Adicionar link externo" + +#: templates/wagtailadmin/edit_handlers/chooser_panel.html:20 +msgid "Clear choice" +msgstr "Limpar escolha" + +#: templates/wagtailadmin/edit_handlers/chooser_panel.html:22 +msgid "Choose another item" +msgstr "Escolher outro item" + +#: templates/wagtailadmin/edit_handlers/chooser_panel.html:27 +msgid "Choose an item" +msgstr "Escolher um item" + +#: templates/wagtailadmin/edit_handlers/inline_panel_child.html:5 +msgid "Move up" +msgstr "Mover para cima" + +#: templates/wagtailadmin/edit_handlers/inline_panel_child.html:6 +msgid "Move down" +msgstr "Mover para baixo" + +#: templates/wagtailadmin/edit_handlers/inline_panel_child.html:8 +#: templates/wagtailadmin/pages/confirm_delete.html:7 +#: templates/wagtailadmin/pages/edit.html:45 +#: templates/wagtailadmin/pages/list.html:84 +#: templates/wagtailadmin/pages/list.html:205 +msgid "Delete" +msgstr "Eliminar" + +#: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:12 +msgid "Choose another page" +msgstr "Escolher outra página" + +#: templates/wagtailadmin/home/pages_for_moderation.html:5 +msgid "Pages awaiting moderation" +msgstr "Páginas a aguardar moderação" + +#: templates/wagtailadmin/home/pages_for_moderation.html:13 +#: templates/wagtailadmin/home/recent_edits.html:12 +#: templates/wagtailadmin/pages/list.html:121 +#: templates/wagtailadmin/pages/list.html:124 +msgid "Title" +msgstr "Título" + +#: templates/wagtailadmin/home/pages_for_moderation.html:14 +#: templates/wagtailadmin/pages/list.html:22 +msgid "Parent" +msgstr "Ascendente (pai)" + +#: templates/wagtailadmin/home/pages_for_moderation.html:15 +#: templates/wagtailadmin/pages/list.html:24 +#: templates/wagtailadmin/pages/list.html:133 +#: templates/wagtailadmin/pages/list.html:136 +msgid "Type" +msgstr "Tipo" + +#: templates/wagtailadmin/home/pages_for_moderation.html:16 +msgid "Edited" +msgstr "Editado" + +#: templates/wagtailadmin/home/pages_for_moderation.html:23 +#: templates/wagtailadmin/home/recent_edits.html:21 +#: templates/wagtailadmin/pages/list.html:176 +#: templates/wagtailadmin/pages/list.html:190 +msgid "Edit this page" +msgstr "Editar esta página" + +#: templates/wagtailadmin/home/pages_for_moderation.html:28 +#: templates/wagtailadmin/pages/_moderator_userbar.html:12 +#: templates/wagtailadmin/userbar/item_page_approve.html:8 +msgid "Approve" +msgstr "Aprovar" + +#: templates/wagtailadmin/home/pages_for_moderation.html:34 +#: templates/wagtailadmin/pages/_moderator_userbar.html:17 +#: templates/wagtailadmin/userbar/item_page_reject.html:8 +msgid "Reject" +msgstr "Rejeitar" + +#: templates/wagtailadmin/home/pages_for_moderation.html:37 +#: templates/wagtailadmin/home/recent_edits.html:23 +#: templates/wagtailadmin/pages/_moderator_userbar.html:9 +#: templates/wagtailadmin/pages/list.html:72 +#: templates/wagtailadmin/pages/list.html:190 +#: templates/wagtailadmin/userbar/item_page_edit.html:5 +msgid "Edit" +msgstr "Editar" + +#: templates/wagtailadmin/home/pages_for_moderation.html:38 +#: templates/wagtailadmin/pages/create.html:41 +#: templates/wagtailadmin/pages/edit.html:56 +#: templates/wagtailadmin/pages/preview.html:5 +msgid "Preview" +msgstr "Pre-visualizar" + +#: templates/wagtailadmin/home/recent_edits.html:5 +msgid "Your most recent edits" +msgstr "Suas últimas edições" + +#: templates/wagtailadmin/home/recent_edits.html:13 +msgid "Date" +msgstr "Data" + +#: templates/wagtailadmin/home/recent_edits.html:14 +#: templates/wagtailadmin/pages/edit.html:18 +#: templates/wagtailadmin/pages/list.html:25 +#: templates/wagtailadmin/pages/list.html:142 +#: templates/wagtailadmin/pages/list.html:145 +msgid "Status" +msgstr "Estado" + +#: templates/wagtailadmin/home/recent_edits.html:25 +#: templates/wagtailadmin/pages/list.html:75 +#: templates/wagtailadmin/pages/list.html:193 +msgid "Draft" +msgstr "Rascunho" + +#: templates/wagtailadmin/home/recent_edits.html:28 +#: templates/wagtailadmin/pages/list.html:78 +#: templates/wagtailadmin/pages/list.html:196 +msgid "Live" +msgstr "Publicado" + +#: templates/wagtailadmin/home/site_summary.html:3 +msgid "Site summary" +msgstr "Resumo do Site" + +#: templates/wagtailadmin/home/site_summary.html:7 +#, python-format +msgid "" +"\n" +" %(total_pages)s Page\n" +" " +msgid_plural "" +"\n" +" %(total_pages)s Pages\n" +" " +msgstr[0] "" +"\n" +" %(total_pages)s Página\n" +" " +msgstr[1] "" +"\n" +" %(total_pages)s Páginas\n" +" " + +#: templates/wagtailadmin/home/site_summary.html:16 +#, python-format +msgid "" +"\n" +" %(total_images)s Image\n" +" " +msgid_plural "" +"\n" +" %(total_images)s Images\n" +" " +msgstr[0] "" +"\n" +" %(total_images)s Imagem\n" +" " +msgstr[1] "" +"\n" +" %(total_images)s Imagens\n" +" " + +#: templates/wagtailadmin/home/site_summary.html:25 +#, python-format +msgid "" +"\n" +" %(total_docs)s Document\n" +" " +msgid_plural "" +"\n" +" %(total_docs)s Documents\n" +" " +msgstr[0] "" +"\n" +" %(total_docs)s Documento\n" +" " +msgstr[1] "" +"\n" +" %(total_docs)s Documentos\n" +" " + +#: templates/wagtailadmin/notifications/approved.html:1 +#, python-format +msgid "The page \"%(title)s\" has been approved" +msgstr "A página \"%(title)s\" foi aprovada" + +#: templates/wagtailadmin/notifications/approved.html:2 +#, python-format +msgid "The page \"%(title)s\" has been approved." +msgstr "A página \"%(title)s\" foi aprovada." + +#: templates/wagtailadmin/notifications/approved.html:4 +msgid "You can view the page here:" +msgstr "Pode visualizar a página aqui:" + +#: templates/wagtailadmin/notifications/base_notification.html:3 +msgid "Edit your notification preferences here:" +msgstr "Edite as suas preferências de notificação aqui:" + +#: templates/wagtailadmin/notifications/rejected.html:1 +#, python-format +msgid "The page \"%(title)s\" has been rejected" +msgstr "A página \"%(title)s\" foi rejeitada" + +#: templates/wagtailadmin/notifications/rejected.html:2 +#, python-format +msgid "The page \"%(title)s\" has been rejected." +msgstr "A página \"%(title)s\" foi rejeitada" + +#: templates/wagtailadmin/notifications/rejected.html:4 +#: templates/wagtailadmin/notifications/submitted.html:5 +msgid "You can edit the page here:" +msgstr "Você pode editar a página aqui:" + +#: templates/wagtailadmin/notifications/submitted.html:1 +#, python-format +msgid "The page \"%(page)s\" has been submitted for moderation" +msgstr "A página \"%(page)s\" foi enviada para moderação" + +#: templates/wagtailadmin/notifications/submitted.html:2 +#, python-format +msgid "The page \"%(page)s\" has been submitted for moderation." +msgstr "A página \"%(page)s\" foi enviada para moderação." + +#: templates/wagtailadmin/notifications/submitted.html:4 +msgid "You can preview the page here:" +msgstr "Pode pre-visualizar a página aqui:" + +#: templates/wagtailadmin/page_privacy/ancestor_privacy.html:2 +#: templates/wagtailadmin/page_privacy/set_privacy.html:2 +msgid "Page privacy" +msgstr "Privacidade da página" + +#: templates/wagtailadmin/page_privacy/ancestor_privacy.html:6 +msgid "This page has been made private by a parent page." +msgstr "Esta página foi classificada como privada por uma página ascendente" + +#: templates/wagtailadmin/page_privacy/ancestor_privacy.html:7 +msgid "You can edit the privacy settings on:" +msgstr "Você pode editar as configurações de privacidade em:" + +#: templates/wagtailadmin/page_privacy/set_privacy.html:6 +msgid "Privacy changes apply to all children of this page too." +msgstr "" +"As alterações de privacidade também serão aplicadas a todas as páginas " +"filhas desta página." + +#: templates/wagtailadmin/pages/_moderator_userbar.html:4 +#, python-format +msgid "" +"\n" +" Previewing '%(title)s', submitted by %(submitted_by)s on " +"%(submitted_on)s.\n" +" " +msgstr "" +"\n" +" Pre-visualizando '%(title)s', enviado por %(submitted_by)s em " +"%(submitted_on)s.\n" +" " + +#: templates/wagtailadmin/pages/_privacy_indicator.html:9 +msgid "Privacy" +msgstr "Privacidade" + +#: templates/wagtailadmin/pages/_privacy_indicator.html:14 +#: templates/wagtailadmin/pages/_privacy_indicator.html:20 +msgid "Private" +msgstr "Privada" + +#: templates/wagtailadmin/pages/add_subpage.html:6 +#, python-format +msgid "Create a page in %(title)s" +msgstr "Criar uma página em %(title)s" + +#: templates/wagtailadmin/pages/add_subpage.html:9 +msgid "Create a page in" +msgstr "Criar uma página em" + +#: templates/wagtailadmin/pages/add_subpage.html:13 +msgid "Choose which type of page you'd like to create." +msgstr "Escolha o tipo de página que gostaria de criar." + +#: templates/wagtailadmin/pages/add_subpage.html:26 +#, python-format +msgid "Pages using %(page_type)s" +msgstr "Páginas usando %(page_type)s" + +#: templates/wagtailadmin/pages/confirm_delete.html:3 +#, python-format +msgid "Delete %(title)s" +msgstr "Eliminar %(title)s" + +#: templates/wagtailadmin/pages/confirm_delete.html:12 +msgid "Are you sure you want to delete this page?" +msgstr "Tem certeza que deseja eliminar esta página?" + +#: templates/wagtailadmin/pages/confirm_delete.html:14 +#, python-format +msgid "" +"\n" +" This will also delete one more subpage.\n" +" " +msgid_plural "" +"\n" +" This will also delete %(descendant_count)s more " +"subpages.\n" +" " +msgstr[0] "" +"\n" +" Isto também eliminará uma ou mais sub-páginas.\n" +" " +msgstr[1] "" +"\n" +" Isto também eliminará mais %(descendant_count)s sub-" +"páginas.\n" +" " + +#: templates/wagtailadmin/pages/confirm_delete.html:22 +msgid "" +"Alternatively you can unpublish the page. This removes the page from public " +"view and you can edit or publish it again later." +msgstr "" +"Em alternativa, poderá despublicar a página. Assim, a página deixará de " +"estar visível publicamente, podendo você voltar a editá-la ou publicá-la " +"mais tarde." + +#: templates/wagtailadmin/pages/confirm_delete.html:26 +msgid "Delete it" +msgstr "Eliminá-la" + +#: templates/wagtailadmin/pages/confirm_delete.html:26 +msgid "Unpublish it" +msgstr "Despublicá-la" + +#: templates/wagtailadmin/pages/confirm_move.html:3 +#, python-format +msgid "Move %(title)s" +msgstr "Mover %(title)s" + +#: templates/wagtailadmin/pages/confirm_move.html:6 +#: templates/wagtailadmin/pages/list.html:81 +#: templates/wagtailadmin/pages/list.html:199 +msgid "Move" +msgstr "Mover" + +#: templates/wagtailadmin/pages/confirm_move.html:11 +#, python-format +msgid "Are you sure you want to move this page into '%(title)s'?" +msgstr "Tem certeza que deseja mover esta página para dentro de '%(title)s'?" + +#: templates/wagtailadmin/pages/confirm_move.html:13 +#, python-format +msgid "" +"Are you sure you want to move this page and all of its children into " +"'%(title)s'?" +msgstr "" +"Tem a certeza que deseja mover esta página e todas as suas páginas filhas " +"para dentro de '%(title)s'?" + +#: templates/wagtailadmin/pages/confirm_move.html:18 +msgid "Yes, move this page" +msgstr "Sim, mover esta página" + +#: templates/wagtailadmin/pages/confirm_unpublish.html:3 +#, python-format +msgid "Unpublish %(title)s" +msgstr "Despublicar %(title)s" + +#: templates/wagtailadmin/pages/confirm_unpublish.html:6 +#: templates/wagtailadmin/pages/edit.html:42 +#: templates/wagtailadmin/pages/list.html:87 +#: templates/wagtailadmin/pages/list.html:208 +msgid "Unpublish" +msgstr "Despublicar" + +#: templates/wagtailadmin/pages/confirm_unpublish.html:10 +msgid "Are you sure you want to unpublish this page?" +msgstr "Tem certeza que deseja despublicar esta página?" + +#: templates/wagtailadmin/pages/confirm_unpublish.html:13 +msgid "Yes, unpublish it" +msgstr "Sim, quero despublicar" + +#: templates/wagtailadmin/pages/content_type_use.html:7 +msgid "Pages using" +msgstr "Páginas usando" + +#: templates/wagtailadmin/pages/copy.html:3 +#, python-format +msgid "Copy %(title)s" +msgstr "Copiar %(title)s" + +#: templates/wagtailadmin/pages/copy.html:6 +#: templates/wagtailadmin/pages/list.html:202 +msgid "Copy" +msgstr "Copiar" + +#: templates/wagtailadmin/pages/copy.html:26 +msgid "Copy this page" +msgstr "Copiar esta página" + +#: templates/wagtailadmin/pages/create.html:5 +#, python-format +msgid "New %(page_type)s" +msgstr "Nova %(page_type)s" + +#: templates/wagtailadmin/pages/create.html:15 +msgid "New" +msgstr "Nova" + +#: templates/wagtailadmin/pages/create.html:29 +msgid "Save as draft" +msgstr "Guardar como rascunho" + +#: templates/wagtailadmin/pages/create.html:33 +#: templates/wagtailadmin/pages/edit.html:48 +msgid "Publish" +msgstr "Publicar" + +#: templates/wagtailadmin/pages/create.html:35 +#: templates/wagtailadmin/pages/edit.html:50 +msgid "Submit for moderation" +msgstr "Enviar para moderação" + +#: templates/wagtailadmin/pages/edit.html:5 +#, python-format +msgid "Editing %(title)s" +msgstr "Editando %(title)s" + +#: templates/wagtailadmin/pages/edit.html:15 +#, python-format +msgid "Editing %(title)s" +msgstr "Editando %(title)s" + +#: templates/wagtailadmin/pages/edit.html:38 +msgid "Save draft" +msgstr "Guardar rascunho" + +#: templates/wagtailadmin/pages/edit.html:77 +#, python-format +msgid "Last modified: %(last_mod)s" +msgstr "Última modificação: %(last_mod)s" + +#: templates/wagtailadmin/pages/edit.html:79 +#, python-format +msgid "by %(modified_by)s" +msgstr "por %(modified_by)s" + +#: templates/wagtailadmin/pages/index.html:3 +#, python-format +msgid "Exploring %(title)s" +msgstr "Explorando %(title)s" + +#: templates/wagtailadmin/pages/list.html:90 +#: templates/wagtailadmin/pages/list.html:211 +msgid "Add child page" +msgstr "Adicionar página filha" + +#: templates/wagtailadmin/pages/list.html:112 +msgid "Disable ordering of child pages" +msgstr "Desativar ordenação de páginas filhas" + +#: templates/wagtailadmin/pages/list.html:112 +#: templates/wagtailadmin/pages/list.html:114 +msgid "Order" +msgstr "Ordem" + +#: templates/wagtailadmin/pages/list.html:114 +msgid "Enable ordering of child pages" +msgstr "Ativar ordenação de páginas filhas" + +#: templates/wagtailadmin/pages/list.html:158 +msgid "Drag" +msgstr "Arrastar" + +#: templates/wagtailadmin/pages/list.html:237 +#: templates/wagtailadmin/pages/list.html:241 +#, python-format +msgid "Explorer subpages of '%(title)s'" +msgstr "Explorar sub-páginas de %(title)s" + +#: templates/wagtailadmin/pages/list.html:237 +#: templates/wagtailadmin/pages/list.html:241 +#: templates/wagtailadmin/pages/list.html:245 +msgid "Explore" +msgstr "Explorar" + +#: templates/wagtailadmin/pages/list.html:245 +#, python-format +msgid "Explore child pages of '%(title)s'" +msgstr "Explorar as páginas filhas de '%(title)s'" + +#: templates/wagtailadmin/pages/list.html:247 +#, python-format +msgid "Add a child page to '%(title)s'" +msgstr "Adicionar página filha a %(title)s" + +#: templates/wagtailadmin/pages/list.html:247 +msgid "Add subpage" +msgstr "Adicionar sub-página" + +#: templates/wagtailadmin/pages/list.html:256 +msgid "No pages have been created." +msgstr "Nenhuma página foi criada." + +#: templates/wagtailadmin/pages/list.html:256 +#, python-format +msgid "Why not add one?" +msgstr "Porque não adicionar uma?" + +#: templates/wagtailadmin/pages/list.html:263 +#, python-format +msgid "" +"\n" +" Page %(page_number)s of %(num_pages)s.\n" +" " +msgstr "" +"\n" +" Página %(page_number)s de %(num_pages)s.\n" +" " + +#: templates/wagtailadmin/pages/list.html:269 +#: templates/wagtailadmin/pages/search_results.html:35 +#: templates/wagtailadmin/pages/search_results.html:37 +#: templates/wagtailadmin/pages/usage_results.html:13 +#: templates/wagtailadmin/shared/pagination_nav.html:21 +#: templates/wagtailadmin/shared/pagination_nav.html:23 +#: templates/wagtailadmin/shared/pagination_nav.html:25 +msgid "Previous" +msgstr "Anterior" + +#: templates/wagtailadmin/pages/list.html:274 +#: templates/wagtailadmin/pages/search_results.html:44 +#: templates/wagtailadmin/pages/search_results.html:46 +#: templates/wagtailadmin/pages/usage_results.html:18 +#: templates/wagtailadmin/shared/pagination_nav.html:32 +#: templates/wagtailadmin/shared/pagination_nav.html:34 +#: templates/wagtailadmin/shared/pagination_nav.html:36 +msgid "Next" +msgstr "Próxima" + +#: templates/wagtailadmin/pages/move_choose_destination.html:3 +#, python-format +msgid "Select a new parent page for %(title)s" +msgstr "Selecione uma nova página ascendente para %(title)s" + +#: templates/wagtailadmin/pages/move_choose_destination.html:7 +#, python-format +msgid "Select a new parent page for %(title)s" +msgstr "Selecione uma nova página ascendente para %(title)s" + +#: templates/wagtailadmin/pages/search_results.html:6 +#, python-format +msgid "" +"\n" +" There is one matching page\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matching pages\n" +" " +msgstr[0] "" +"\n" +" Existe uma página correspondente\n" +" " +msgstr[1] "" +"\n" +" Existem %(counter)s páginas correspondentes\n" +" " + +#: templates/wagtailadmin/pages/search_results.html:16 +msgid "Other searches" +msgstr "Outras pesquisas" + +#: templates/wagtailadmin/pages/search_results.html:18 +msgid "Images" +msgstr "Imagens" + +#: templates/wagtailadmin/pages/search_results.html:19 +msgid "Documents" +msgstr "Documentos" + +#: templates/wagtailadmin/pages/search_results.html:20 +msgid "Users" +msgstr "Utilizadores" + +#: templates/wagtailadmin/pages/search_results.html:28 +#: templates/wagtailadmin/pages/usage_results.html:7 +#, python-format +msgid "" +"\n" +" Page %(page_number)s of %(num_pages)s.\n" +" " +msgstr "" +"\n" +" Página %(page_number)s de %(num_pages)s.\n" +" " + +#: templates/wagtailadmin/pages/search_results.html:54 +#, python-format +msgid "Sorry, no pages match \"%(query_string)s\"" +msgstr "Desculpe, nenhuma página satisfaz \"%(query_string)s\"" + +#: templates/wagtailadmin/pages/search_results.html:56 +msgid "Enter a search term above" +msgstr "Introduza um termo de pesquisa acima" + +#: templates/wagtailadmin/pages/usage_results.html:24 +msgid "No pages use" +msgstr "Nenhuma página usa" + +#: templates/wagtailadmin/shared/breadcrumb.html:6 +msgid "Home" +msgstr "Início" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:6 +msgid "January" +msgstr "Janeiro" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:7 +msgid "February" +msgstr "Fevereiro" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:8 +msgid "March" +msgstr "Março" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:9 +msgid "April" +msgstr "Abril" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:10 +msgid "May" +msgstr "Maio" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:11 +msgid "June" +msgstr "Junho" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:12 +msgid "July" +msgstr "Julho" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:13 +msgid "August" +msgstr "Agosto" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:14 +msgid "September" +msgstr "Setembro" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:15 +msgid "October" +msgstr "Outubro" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:16 +msgid "November" +msgstr "Novembro" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:17 +msgid "December" +msgstr "Dezembro" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:20 +msgid "Sun" +msgstr "Dom" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:21 +msgid "Mon" +msgstr "Seg" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:22 +msgid "Tue" +msgstr "Ter" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:23 +msgid "Wed" +msgstr "Qua" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:24 +msgid "Thu" +msgstr "Qui" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:25 +msgid "Fri" +msgstr "Sex" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:26 +msgid "Sat" +msgstr "Sáb" + +#: templates/wagtailadmin/shared/header.html:23 +#, python-format +msgid "Used %(useage_count)s time" +msgid_plural "Used %(useage_count)s times" +msgstr[0] "Em uso %(useage_count)s time" +msgstr[1] "Em uso %(useage_count)s times" + +#: templates/wagtailadmin/shared/main_nav.html:10 +msgid "Account settings" +msgstr "Configurações da Conta" + +#: templates/wagtailadmin/shared/main_nav.html:11 +msgid "Log out" +msgstr "Sair" + +#: templates/wagtailadmin/shared/pagination_nav.html:16 +#, python-format +msgid "Page %(page_num)s of %(total_pages)s." +msgstr "Página %(page_num)s de %(total_pages)s." + +#: templates/wagtailadmin/userbar/base.html:4 +msgid "User bar" +msgstr "Barra de utilizador" + +#: templates/wagtailadmin/userbar/base.html:14 +msgid "Go to Wagtail admin interface" +msgstr "Ir para a página admin do Wagtail" + +#: templates/wagtailadmin/userbar/item_page_add.html:5 +msgid "Add another page at this level" +msgstr "Adicionar outra página a este nível" + +#: templates/wagtailadmin/userbar/item_page_add.html:5 +msgid "Add" +msgstr "Adicionar" + +#: views/account.py:39 +msgid "Your password has been changed successfully!" +msgstr "A sua senha foi alterada com sucesso!" + +#: views/account.py:60 +msgid "Your preferences have been updated successfully!" +msgstr "As suas preferências foram atualizadas com sucesso!" + +#: views/pages.py:167 views/pages.py:284 +msgid "Go live date/time must be before expiry date/time" +msgstr "A data/hora de publicação tem de ser anterior à data/hora terminal" + +#: views/pages.py:177 views/pages.py:294 +msgid "Expiry date/time must be in the future" +msgstr "A data/hora terminal tem de ocorrer no futuro" + +#: views/pages.py:217 views/pages.py:349 views/pages.py:766 +msgid "Page '{0}' published." +msgstr "Página '{0}' publicada." + +#: views/pages.py:219 views/pages.py:351 +msgid "Page '{0}' submitted for moderation." +msgstr "Página '{0}' enviada para moderação." + +#: views/pages.py:222 +msgid "Page '{0}' created." +msgstr "Página '{0}' criada." + +#: views/pages.py:231 +msgid "The page could not be created due to validation errors" +msgstr "Esta página não pôde ser criada devido a erros na validação" + +#: views/pages.py:354 +msgid "Page '{0}' updated." +msgstr "Página '{0}' atualizada." + +#: views/pages.py:363 +msgid "The page could not be saved due to validation errors" +msgstr "A página não pôde ser guardada devido a erros na validação" + +#: views/pages.py:376 +msgid "This page is currently awaiting moderation" +msgstr "Essa página aguarda por moderação" + +#: views/pages.py:407 +msgid "Page '{0}' deleted." +msgstr "Página '{0}' eliminada." + +#: views/pages.py:550 +msgid "Page '{0}' unpublished." +msgstr "Página '{0}' despublicada." + +#: views/pages.py:602 +msgid "Page '{0}' moved." +msgstr "Página '{0}' movida." + +#: views/pages.py:684 +msgid "Page '{0}' and {1} subpages copied." +msgstr "Página '{0}' e {1} sub-páginas copiadas." + +#: views/pages.py:686 +msgid "Page '{0}' copied." +msgstr "Página '{0}' copiada." + +#: views/pages.py:760 views/pages.py:779 views/pages.py:799 +msgid "The page '{0}' is not currently awaiting moderation." +msgstr "A página '{0}' já não está aguarda moderação." + +#: views/pages.py:785 +msgid "Page '{0}' rejected for publication." +msgstr "Página '{0}' rejeitada para publicação." diff --git a/wagtail/wagtailadmin/locale/ro/LC_MESSAGES/django.mo b/wagtail/wagtailadmin/locale/ro/LC_MESSAGES/django.mo index 89a352c00..4d162b549 100644 Binary files a/wagtail/wagtailadmin/locale/ro/LC_MESSAGES/django.mo and b/wagtail/wagtailadmin/locale/ro/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailadmin/locale/ro/LC_MESSAGES/django.po b/wagtail/wagtailadmin/locale/ro/LC_MESSAGES/django.po index 4967b5f5f..e531f902c 100644 --- a/wagtail/wagtailadmin/locale/ro/LC_MESSAGES/django.po +++ b/wagtail/wagtailadmin/locale/ro/LC_MESSAGES/django.po @@ -1,28 +1,30 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Dan Braghis, 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Romanian (http://www.transifex.com/projects/p/wagtail/language/ro/)\n" +"Language-Team: Romanian (http://www.transifex.com/projects/p/wagtail/" +"language/ro/)\n" +"Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: edit_handlers.py:627 +#: edit_handlers.py:631 msgid "Scheduled publishing" msgstr "" -#: edit_handlers.py:641 +#: edit_handlers.py:645 msgid "Common page configuration" msgstr "Configurație de pagini generală" @@ -50,7 +52,9 @@ msgstr "Introduceți adresa de e-mail." msgid "" "Sorry, you cannot reset your password here as your user account is managed " "by another server." -msgstr "Ne pare rău, dar nu puteți reseta parola aici. Contul dvs. de utilizator este gestionat de un alt server." +msgstr "" +"Ne pare rău, dar nu puteți reseta parola aici. Contul dvs. de utilizator " +"este gestionat de un alt server." #: forms.py:76 msgid "This email address is not recognised." @@ -100,7 +104,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: forms.py:124 views/pages.py:155 views/pages.py:272 +#: forms.py:124 views/pages.py:153 views/pages.py:270 msgid "This slug is already in use" msgstr "Această fisă a fost deja folosită" @@ -117,6 +121,16 @@ msgstr "" msgid "This field is required." msgstr "" +#: wagtail_hooks.py:15 templates/wagtailadmin/chooser/_search_results.html:12 +msgid "Explorer" +msgstr "Explorator" + +#: wagtail_hooks.py:23 templates/wagtailadmin/chooser/_search_form.html:7 +#: templates/wagtailadmin/pages/search.html:3 +#: templates/wagtailadmin/pages/search.html:16 +msgid "Search" +msgstr "Căutare" + #: templates/wagtailadmin/base.html:7 templates/wagtailadmin/home.html:4 msgid "Dashboard" msgstr "Bord" @@ -142,7 +156,8 @@ msgstr "Conectare" #: templates/wagtailadmin/login.html:18 msgid "Your username and password didn't match. Please try again." -msgstr "Numele de utilizator și parola nu corespund. Vă rugăm să încercați din nou." +msgstr "" +"Numele de utilizator și parola nu corespund. Vă rugăm să încercați din nou." #: templates/wagtailadmin/login.html:26 msgid "Sign in to Wagtail" @@ -166,7 +181,10 @@ msgid "" "Your avatar image is provided by Gravatar and is connected to your email " "address. With a Gravatar account you can set an avatar for any number of " "other email addresses you use." -msgstr "Avatarul este oferit de Gravatar și este legat de adresa dvs. de e-mail. Având un cont Gravatar, puteți seta un avatar pentru orice număr de adrese e-mail folosite." +msgstr "" +"Avatarul este oferit de Gravatar și este legat de adresa dvs. de e-mail. " +"Având un cont Gravatar, puteți seta un avatar pentru orice număr de adrese e-" +"mail folosite." #: templates/wagtailadmin/account/account.html:25 #: templates/wagtailadmin/account/change_password.html:4 @@ -193,7 +211,9 @@ msgstr "Schimbă parola" #: templates/wagtailadmin/account/change_password.html:21 msgid "" "Your password can't be changed here. Please contact a site administrator." -msgstr "Parola nu poate fi schimbată aici. Vă rugăm să contactați administratorii sitului." +msgstr "" +"Parola nu poate fi schimbată aici. Vă rugăm să contactați administratorii " +"sitului." #: templates/wagtailadmin/account/notification_preferences.html:4 #: templates/wagtailadmin/account/notification_preferences.html:6 @@ -264,19 +284,16 @@ msgstr "Link extern" msgid "Email link" msgstr "Link e-mail" -#: templates/wagtailadmin/chooser/_search_form.html:7 -#: templates/wagtailadmin/pages/search.html:3 -#: templates/wagtailadmin/pages/search.html:16 -#: templatetags/wagtailadmin_tags.py:36 -msgid "Search" -msgstr "Căutare" +#: templates/wagtailadmin/chooser/_search_results.html:5 +#, python-format +msgid "" +"\n" +" Only pages of type \"%(type)s\" may be chosen for this field. " +"Search results will exclude pages of other types.\n" +" " +msgstr "" -#: templates/wagtailadmin/chooser/_search_results.html:3 -#: templatetags/wagtailadmin_tags.py:35 -msgid "Explorer" -msgstr "Explorator" - -#: templates/wagtailadmin/chooser/_search_results.html:8 +#: templates/wagtailadmin/chooser/_search_results.html:16 #, python-format msgid "" "\n" @@ -286,11 +303,22 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\nExistă o potrivire" -msgstr[1] "\nSunt %(counter)s potriviri" -msgstr[2] "\nSunt %(counter)s potriviri" +msgstr[0] "" +"\n" +"Există o potrivire" +msgstr[1] "" +"\n" +"Sunt %(counter)s potriviri" +msgstr[2] "" +"\n" +"Sunt %(counter)s potriviri" -#: templates/wagtailadmin/chooser/browse.html:2 +#: templates/wagtailadmin/chooser/browse.html:3 +#, fuzzy +msgid "Choose" +msgstr "Selectează o pagină" + +#: templates/wagtailadmin/chooser/browse.html:6 #: templates/wagtailadmin/chooser/search.html:2 #: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:13 msgid "Choose a page" @@ -445,9 +473,15 @@ msgid_plural "" "\n" " %(total_pages)s Pages\n" " " -msgstr[0] "\n%(total_pages)s pagină" -msgstr[1] "\n%(total_pages)s pagini" -msgstr[2] "\n%(total_pages)s pagini" +msgstr[0] "" +"\n" +"%(total_pages)s pagină" +msgstr[1] "" +"\n" +"%(total_pages)s pagini" +msgstr[2] "" +"\n" +"%(total_pages)s pagini" #: templates/wagtailadmin/home/site_summary.html:16 #, python-format @@ -459,9 +493,15 @@ msgid_plural "" "\n" " %(total_images)s Images\n" " " -msgstr[0] "\n%(total_images)s imagine" -msgstr[1] "\n%(total_images)s imagini" -msgstr[2] "\n%(total_images)s imagini" +msgstr[0] "" +"\n" +"%(total_images)s imagine" +msgstr[1] "" +"\n" +"%(total_images)s imagini" +msgstr[2] "" +"\n" +"%(total_images)s imagini" #: templates/wagtailadmin/home/site_summary.html:25 #, python-format @@ -473,9 +513,15 @@ msgid_plural "" "\n" " %(total_docs)s Documents\n" " " -msgstr[0] "\n%(total_docs)s document" -msgstr[1] "\n%(total_docs)s documente" -msgstr[2] "\n%(total_docs)s documente" +msgstr[0] "" +"\n" +"%(total_docs)s document" +msgstr[1] "" +"\n" +"%(total_docs)s documente" +msgstr[2] "" +"\n" +"%(total_docs)s documente" #: templates/wagtailadmin/notifications/approved.html:1 #, python-format @@ -538,16 +584,20 @@ msgid "You can edit the privacy settings on:" msgstr "" #: templates/wagtailadmin/page_privacy/set_privacy.html:6 -msgid "Note: privacy changes apply to all children of this page too." +msgid "Privacy changes apply to all children of this page too." msgstr "" #: templates/wagtailadmin/pages/_moderator_userbar.html:4 #, python-format msgid "" "\n" -" Previewing '%(title)s', submitted by %(submitted_by)s on %(submitted_on)s.\n" +" Previewing '%(title)s', submitted by %(submitted_by)s on " +"%(submitted_on)s.\n" " " -msgstr "\nExaminare '%(title)s', trimisă de %(submitted_by)s pe data de %(submitted_on)s." +msgstr "" +"\n" +"Examinare '%(title)s', trimisă de %(submitted_by)s pe data de " +"%(submitted_on)s." #: templates/wagtailadmin/pages/_privacy_indicator.html:9 msgid "Privacy" @@ -593,17 +643,26 @@ msgid "" " " msgid_plural "" "\n" -" This will also delete %(descendant_count)s more subpages.\n" +" This will also delete %(descendant_count)s more " +"subpages.\n" " " -msgstr[0] "\nAceastă acțiune va șterge și o subpagină." -msgstr[1] "\nAceastă acțiune va șterge %(descendant_count)s subpagini." -msgstr[2] "\nAceastă acțiune va șterge %(descendant_count)s subpagini." +msgstr[0] "" +"\n" +"Această acțiune va șterge și o subpagină." +msgstr[1] "" +"\n" +"Această acțiune va șterge %(descendant_count)s subpagini." +msgstr[2] "" +"\n" +"Această acțiune va șterge %(descendant_count)s subpagini." #: templates/wagtailadmin/pages/confirm_delete.html:22 msgid "" "Alternatively you can unpublish the page. This removes the page from public " "view and you can edit or publish it again later." -msgstr "Puteți să anulați pagina ca alternativă. Această acțiune retrage pagina din domeniul public, dar puteți edita sau publica pagina ulterior." +msgstr "" +"Puteți să anulați pagina ca alternativă. Această acțiune retrage pagina din " +"domeniul public, dar puteți edita sau publica pagina ulterior." #: templates/wagtailadmin/pages/confirm_delete.html:26 msgid "Delete it" @@ -634,7 +693,8 @@ msgstr "Sigur doriți să mutați această pagină în '%(title)s'?" msgid "" "Are you sure you want to move this page and all of its children into " "'%(title)s'?" -msgstr "Sigur doriți să mutați această pagină și paginile dependente în '%(title)s'?" +msgstr "" +"Sigur doriți să mutați această pagină și paginile dependente în '%(title)s'?" #: templates/wagtailadmin/pages/confirm_move.html:18 msgid "Yes, move this page" @@ -862,12 +922,15 @@ msgid "" "\n" " Page %(page_number)s of %(num_pages)s.\n" " " -msgstr "\nPagina %(page_number)s din %(num_pages)s." +msgstr "" +"\n" +"Pagina %(page_number)s din %(num_pages)s." #: templates/wagtailadmin/pages/search_results.html:54 #, python-format msgid "Sorry, no pages match \"%(query_string)s\"" -msgstr "Ne pare rău, \"%(query_string)s\" nu se potrivește cu nici o pagină" +msgstr "" +"Ne pare rău, \"%(query_string)s\" nu se potrivește cu nici o pagină" #: templates/wagtailadmin/pages/search_results.html:56 msgid "Enter a search term above" @@ -1002,66 +1065,66 @@ msgstr "Parola a fost schimbată cu succes!" msgid "Your preferences have been updated successfully!" msgstr "" -#: views/pages.py:169 views/pages.py:286 +#: views/pages.py:167 views/pages.py:284 msgid "Go live date/time must be before expiry date/time" msgstr "" -#: views/pages.py:179 views/pages.py:296 +#: views/pages.py:177 views/pages.py:294 msgid "Expiry date/time must be in the future" msgstr "" -#: views/pages.py:219 views/pages.py:351 views/pages.py:791 +#: views/pages.py:217 views/pages.py:349 views/pages.py:766 msgid "Page '{0}' published." msgstr "Pagina '{0}' a fost publicată." -#: views/pages.py:221 views/pages.py:353 +#: views/pages.py:219 views/pages.py:351 msgid "Page '{0}' submitted for moderation." msgstr "Pagina '{0}' a fost trimisă pentru moderare." -#: views/pages.py:224 +#: views/pages.py:222 msgid "Page '{0}' created." msgstr "Pagina '{0}' a fost creată." -#: views/pages.py:233 +#: views/pages.py:231 msgid "The page could not be created due to validation errors" msgstr "" -#: views/pages.py:356 +#: views/pages.py:354 msgid "Page '{0}' updated." msgstr "Pagina '{0}' a fost actualizată." -#: views/pages.py:365 +#: views/pages.py:363 msgid "The page could not be saved due to validation errors" msgstr "Pagina nu a fost salvată din cauza erorilor de validare." -#: views/pages.py:378 +#: views/pages.py:376 msgid "This page is currently awaiting moderation" msgstr "Această pagină este în moderare" -#: views/pages.py:409 +#: views/pages.py:407 msgid "Page '{0}' deleted." msgstr "Pagina '{0}' a fost ștearsă." -#: views/pages.py:575 +#: views/pages.py:550 msgid "Page '{0}' unpublished." msgstr "Publicare anulată pentru pagina '{0}'." -#: views/pages.py:627 +#: views/pages.py:602 msgid "Page '{0}' moved." msgstr "Pagina '{0}' a fost mutată." -#: views/pages.py:709 +#: views/pages.py:684 msgid "Page '{0}' and {1} subpages copied." msgstr "" -#: views/pages.py:711 +#: views/pages.py:686 msgid "Page '{0}' copied." msgstr "" -#: views/pages.py:785 views/pages.py:804 views/pages.py:824 +#: views/pages.py:760 views/pages.py:779 views/pages.py:799 msgid "The page '{0}' is not currently awaiting moderation." msgstr "Pagina '{0}' nu este în moderare la moment." -#: views/pages.py:810 +#: views/pages.py:785 msgid "Page '{0}' rejected for publication." msgstr "Publicare paginii '{0}' a fost refuzată." diff --git a/wagtail/wagtailadmin/locale/ru/LC_MESSAGES/django.mo b/wagtail/wagtailadmin/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 000000000..935cb612b Binary files /dev/null and b/wagtail/wagtailadmin/locale/ru/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailadmin/locale/ru/LC_MESSAGES/django.po b/wagtail/wagtailadmin/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 000000000..67da042d9 --- /dev/null +++ b/wagtail/wagtailadmin/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,1078 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# ajk, 2014 +# HNKNTA , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" +"PO-Revision-Date: 2014-09-11 15:40+0000\n" +"Last-Translator: Karl Hobley \n" +"Language-Team: Russian (http://www.transifex.com/projects/p/wagtail/language/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: edit_handlers.py:631 +msgid "Scheduled publishing" +msgstr "" + +#: edit_handlers.py:645 +msgid "Common page configuration" +msgstr "" + +#: forms.py:19 +msgid "Search term" +msgstr "Критерий поиска" + +#: forms.py:43 +msgid "Enter your username" +msgstr "Введите имя пользователя" + +#: forms.py:46 +msgid "Enter password" +msgstr "Введите пароль" + +#: forms.py:51 +msgid "Enter your email address to reset your password" +msgstr "Введите Ваш адрес электронной почты для сброса пароля" + +#: forms.py:60 +msgid "Please fill your email address." +msgstr "Пожалуйста, заполните Ваш адрес электронной почты" + +#: forms.py:73 +msgid "" +"Sorry, you cannot reset your password here as your user account is managed " +"by another server." +msgstr "Извините, Вы не можете сбросить пароль здесь, так как Ваш аккаунт управляется другим сервером" + +#: forms.py:76 +msgid "This email address is not recognised." +msgstr "Этот адрес электронной почты не распознан" + +#: forms.py:88 +msgid "New title" +msgstr "" + +#: forms.py:89 +msgid "New slug" +msgstr "" + +#: forms.py:95 +msgid "Copy subpages" +msgstr "" + +#: forms.py:97 +#, python-format +msgid "This will copy %(count)s subpage." +msgid_plural "This will copy %(count)s subpages." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: forms.py:106 +msgid "Publish copied page" +msgstr "" + +#: forms.py:107 +msgid "This page is live. Would you like to publish its copy as well?" +msgstr "" + +#: forms.py:109 +msgid "Publish copies" +msgstr "" + +#: forms.py:111 +#, python-format +msgid "" +"%(count)s of the pages being copied is live. Would you like to publish its " +"copy?" +msgid_plural "" +"%(count)s of the pages being copied are live. Would you like to publish " +"their copies?" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: forms.py:124 views/pages.py:153 views/pages.py:270 +msgid "This slug is already in use" +msgstr "Этот слаг уже используется" + +#: forms.py:130 templates/wagtailadmin/pages/_privacy_indicator.html:13 +#: templates/wagtailadmin/pages/_privacy_indicator.html:18 +msgid "Public" +msgstr "" + +#: forms.py:131 +msgid "Private, accessible with the following password" +msgstr "" + +#: forms.py:139 +msgid "This field is required." +msgstr "" + +#: wagtail_hooks.py:15 templates/wagtailadmin/chooser/_search_results.html:12 +msgid "Explorer" +msgstr "Проводник" + +#: wagtail_hooks.py:23 templates/wagtailadmin/chooser/_search_form.html:7 +#: templates/wagtailadmin/pages/search.html:3 +#: templates/wagtailadmin/pages/search.html:16 +msgid "Search" +msgstr "Поиск" + +#: templates/wagtailadmin/base.html:7 templates/wagtailadmin/home.html:4 +msgid "Dashboard" +msgstr "Панель управления" + +#: templates/wagtailadmin/base.html:27 +msgid "Menu" +msgstr "Меню" + +#: templates/wagtailadmin/home.html:22 +#, python-format +msgid "Welcome to the %(site_name)s Wagtail CMS" +msgstr "Добро пожаловать в %(site_name)s Wagtail CMS" + +#: templates/wagtailadmin/home.html:33 +msgid "" +"This is your dashboard on which helpful information about content you've " +"created will be displayed." +msgstr "Это Ваша панель управления сайтом. Здесь отображается различная информация о контенте, который Вы создаете." + +#: templates/wagtailadmin/login.html:4 templates/wagtailadmin/login.html:59 +msgid "Sign in" +msgstr "Войти" + +#: templates/wagtailadmin/login.html:18 +msgid "Your username and password didn't match. Please try again." +msgstr "Ваши имя пользователя и пароль не подходят. Пожалуйста, попробуйте еще раз." + +#: templates/wagtailadmin/login.html:26 +msgid "Sign in to Wagtail" +msgstr "Войти в Wagtail" + +#: templates/wagtailadmin/login.html:46 +msgid "Forgotten it?" +msgstr "Забыли?" + +#: templates/wagtailadmin/account/account.html:4 +#: templates/wagtailadmin/account/account.html:6 +msgid "Account" +msgstr "Аккаунт" + +#: templates/wagtailadmin/account/account.html:13 +msgid "Set gravatar" +msgstr "Установить граватар" + +#: templates/wagtailadmin/account/account.html:17 +msgid "" +"Your avatar image is provided by Gravatar and is connected to your email " +"address. With a Gravatar account you can set an avatar for any number of " +"other email addresses you use." +msgstr "" + +#: templates/wagtailadmin/account/account.html:25 +#: templates/wagtailadmin/account/change_password.html:4 +#: templates/wagtailadmin/account/change_password.html:6 +msgid "Change password" +msgstr "Изменить пароль" + +#: templates/wagtailadmin/account/account.html:29 +msgid "Change the password you use to log in." +msgstr "Изменить пароль, который Вы используете для входа." + +#: templates/wagtailadmin/account/account.html:36 +msgid "Notification preferences" +msgstr "" + +#: templates/wagtailadmin/account/account.html:40 +msgid "Choose which email notifications to receive." +msgstr "" + +#: templates/wagtailadmin/account/change_password.html:18 +msgid "Change Password" +msgstr "Изменить пароль" + +#: templates/wagtailadmin/account/change_password.html:21 +msgid "" +"Your password can't be changed here. Please contact a site administrator." +msgstr "Ваш пароль не может быть изменен здесь. Пожалуйста, свяжитесь с администратором сайта." + +#: templates/wagtailadmin/account/notification_preferences.html:4 +#: templates/wagtailadmin/account/notification_preferences.html:6 +msgid "Notification Preferences" +msgstr "" + +#: templates/wagtailadmin/account/notification_preferences.html:16 +msgid "Update" +msgstr "" + +#: templates/wagtailadmin/account/password_reset/complete.html:4 +#: templates/wagtailadmin/account/password_reset/confirm.html:42 +#: templates/wagtailadmin/account/password_reset/done.html:4 +#: templates/wagtailadmin/account/password_reset/form.html:4 +#: templates/wagtailadmin/account/password_reset/form.html:37 +msgid "Reset password" +msgstr "Сбросить пароль" + +#: templates/wagtailadmin/account/password_reset/complete.html:15 +msgid "Password change successful" +msgstr "Пароль успешно изменен" + +#: templates/wagtailadmin/account/password_reset/complete.html:16 +msgid "Login" +msgstr "Войти" + +#: templates/wagtailadmin/account/password_reset/confirm.html:4 +#: templates/wagtailadmin/account/password_reset/confirm.html:26 +msgid "Set your new password" +msgstr "Задайте новый пароль" + +#: templates/wagtailadmin/account/password_reset/confirm.html:19 +msgid "The passwords do not match. Please try again." +msgstr "Пароли не совпадают. Пожалуйста, попробуйте еще раз." + +#: templates/wagtailadmin/account/password_reset/done.html:15 +msgid "Check your email" +msgstr "Проверьте электронную почту" + +#: templates/wagtailadmin/account/password_reset/done.html:16 +msgid "A link to reset your password has been emailed to you." +msgstr "Ссылка для смены пароля отправлена на Ваш адрес электронной почты." + +#: templates/wagtailadmin/account/password_reset/email.txt:2 +msgid "Please follow the link below to reset your password" +msgstr "Пожалуйста, используйте данную ссылку для сброса пароля" + +#: templates/wagtailadmin/account/password_reset/email_subject.txt:2 +msgid "Password reset" +msgstr "Пароль сброшен" + +#: templates/wagtailadmin/account/password_reset/form.html:27 +msgid "Reset your password" +msgstr "Сбросьте Ваш пароль" + +#: templates/wagtailadmin/chooser/_link_types.html:5 +#: templates/wagtailadmin/chooser/_link_types.html:7 +msgid "Internal link" +msgstr "Внутренняя ссылка" + +#: templates/wagtailadmin/chooser/_link_types.html:11 +#: templates/wagtailadmin/chooser/_link_types.html:13 +msgid "External link" +msgstr "Внешняя ссылка" + +#: templates/wagtailadmin/chooser/_link_types.html:17 +#: templates/wagtailadmin/chooser/_link_types.html:19 +msgid "Email link" +msgstr "Ссылка на адрес электронной почты" + +#: templates/wagtailadmin/chooser/_search_results.html:5 +#, python-format +msgid "" +"\n" +" Only pages of type \"%(type)s\" may be chosen for this field. Search results will exclude pages of other types.\n" +" " +msgstr "" + +#: templates/wagtailadmin/chooser/_search_results.html:16 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "\nЕсть одно совпадение" +msgstr[1] "\nЕсть %(counter)s совпадений" +msgstr[2] "\nЕсть %(counter)s совпадений" + +#: templates/wagtailadmin/chooser/browse.html:3 +msgid "Choose" +msgstr "" + +#: templates/wagtailadmin/chooser/browse.html:6 +#: templates/wagtailadmin/chooser/search.html:2 +#: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:13 +msgid "Choose a page" +msgstr "Выбрать страницу" + +#: templates/wagtailadmin/chooser/email_link.html:2 +msgid "Add an email link" +msgstr "Добавить ссылку на адрес электронной почты" + +#: templates/wagtailadmin/chooser/email_link.html:14 +#: templates/wagtailadmin/chooser/external_link.html:14 +msgid "Insert link" +msgstr "Вставить ссылку" + +#: templates/wagtailadmin/chooser/external_link.html:2 +msgid "Add an external link" +msgstr "Добавить внешнюю ссылку" + +#: templates/wagtailadmin/edit_handlers/chooser_panel.html:20 +msgid "Clear choice" +msgstr "Очистить выбор" + +#: templates/wagtailadmin/edit_handlers/chooser_panel.html:22 +msgid "Choose another item" +msgstr "Выбрать другой элемент" + +#: templates/wagtailadmin/edit_handlers/chooser_panel.html:27 +msgid "Choose an item" +msgstr "Выбрать элемент" + +#: templates/wagtailadmin/edit_handlers/inline_panel_child.html:5 +msgid "Move up" +msgstr "Вверх" + +#: templates/wagtailadmin/edit_handlers/inline_panel_child.html:6 +msgid "Move down" +msgstr "Вниз" + +#: templates/wagtailadmin/edit_handlers/inline_panel_child.html:8 +#: templates/wagtailadmin/pages/confirm_delete.html:7 +#: templates/wagtailadmin/pages/edit.html:45 +#: templates/wagtailadmin/pages/list.html:84 +#: templates/wagtailadmin/pages/list.html:205 +msgid "Delete" +msgstr "Удалить" + +#: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:12 +msgid "Choose another page" +msgstr "Выбрать другую страницу" + +#: templates/wagtailadmin/home/pages_for_moderation.html:5 +msgid "Pages awaiting moderation" +msgstr "Страницы ожидающие модерации" + +#: templates/wagtailadmin/home/pages_for_moderation.html:13 +#: templates/wagtailadmin/home/recent_edits.html:12 +#: templates/wagtailadmin/pages/list.html:121 +#: templates/wagtailadmin/pages/list.html:124 +msgid "Title" +msgstr "Заголовок" + +#: templates/wagtailadmin/home/pages_for_moderation.html:14 +#: templates/wagtailadmin/pages/list.html:22 +msgid "Parent" +msgstr "Родительский элемент" + +#: templates/wagtailadmin/home/pages_for_moderation.html:15 +#: templates/wagtailadmin/pages/list.html:24 +#: templates/wagtailadmin/pages/list.html:133 +#: templates/wagtailadmin/pages/list.html:136 +msgid "Type" +msgstr "Тип" + +#: templates/wagtailadmin/home/pages_for_moderation.html:16 +msgid "Edited" +msgstr "" + +#: templates/wagtailadmin/home/pages_for_moderation.html:23 +#: templates/wagtailadmin/home/recent_edits.html:21 +#: templates/wagtailadmin/pages/list.html:176 +#: templates/wagtailadmin/pages/list.html:190 +msgid "Edit this page" +msgstr "Редактировать эту страницу" + +#: templates/wagtailadmin/home/pages_for_moderation.html:28 +#: templates/wagtailadmin/pages/_moderator_userbar.html:12 +#: templates/wagtailadmin/userbar/item_page_approve.html:8 +msgid "Approve" +msgstr "Одобрить" + +#: templates/wagtailadmin/home/pages_for_moderation.html:34 +#: templates/wagtailadmin/pages/_moderator_userbar.html:17 +#: templates/wagtailadmin/userbar/item_page_reject.html:8 +msgid "Reject" +msgstr "Отклонить" + +#: templates/wagtailadmin/home/pages_for_moderation.html:37 +#: templates/wagtailadmin/home/recent_edits.html:23 +#: templates/wagtailadmin/pages/_moderator_userbar.html:9 +#: templates/wagtailadmin/pages/list.html:72 +#: templates/wagtailadmin/pages/list.html:190 +#: templates/wagtailadmin/userbar/item_page_edit.html:5 +msgid "Edit" +msgstr "Правка" + +#: templates/wagtailadmin/home/pages_for_moderation.html:38 +#: templates/wagtailadmin/pages/create.html:41 +#: templates/wagtailadmin/pages/edit.html:56 +#: templates/wagtailadmin/pages/preview.html:5 +msgid "Preview" +msgstr "Превью" + +#: templates/wagtailadmin/home/recent_edits.html:5 +msgid "Your most recent edits" +msgstr "Ваши последние правки" + +#: templates/wagtailadmin/home/recent_edits.html:13 +msgid "Date" +msgstr "Дата" + +#: templates/wagtailadmin/home/recent_edits.html:14 +#: templates/wagtailadmin/pages/edit.html:18 +#: templates/wagtailadmin/pages/list.html:25 +#: templates/wagtailadmin/pages/list.html:142 +#: templates/wagtailadmin/pages/list.html:145 +msgid "Status" +msgstr "Статус" + +#: templates/wagtailadmin/home/recent_edits.html:25 +#: templates/wagtailadmin/pages/list.html:75 +#: templates/wagtailadmin/pages/list.html:193 +msgid "Draft" +msgstr "" + +#: templates/wagtailadmin/home/recent_edits.html:28 +#: templates/wagtailadmin/pages/list.html:78 +#: templates/wagtailadmin/pages/list.html:196 +msgid "Live" +msgstr "" + +#: templates/wagtailadmin/home/site_summary.html:3 +msgid "Site summary" +msgstr "Общая информация" + +#: templates/wagtailadmin/home/site_summary.html:7 +#, python-format +msgid "" +"\n" +" %(total_pages)s Page\n" +" " +msgid_plural "" +"\n" +" %(total_pages)s Pages\n" +" " +msgstr[0] "\n%(total_pages)s Страница" +msgstr[1] "\n%(total_pages)s Страниц" +msgstr[2] "\n%(total_pages)s Страниц" + +#: templates/wagtailadmin/home/site_summary.html:16 +#, python-format +msgid "" +"\n" +" %(total_images)s Image\n" +" " +msgid_plural "" +"\n" +" %(total_images)s Images\n" +" " +msgstr[0] "\n%(total_images)s Изображение" +msgstr[1] "\n%(total_images)s Изображений" +msgstr[2] "\n%(total_images)s Изображений" + +#: templates/wagtailadmin/home/site_summary.html:25 +#, python-format +msgid "" +"\n" +" %(total_docs)s Document\n" +" " +msgid_plural "" +"\n" +" %(total_docs)s Documents\n" +" " +msgstr[0] "\n%(total_docs)s Документ" +msgstr[1] "\n%(total_docs)s Документов" +msgstr[2] "\n%(total_docs)s Документов" + +#: templates/wagtailadmin/notifications/approved.html:1 +#, python-format +msgid "The page \"%(title)s\" has been approved" +msgstr "Страница \"%(title)s\" была принята" + +#: templates/wagtailadmin/notifications/approved.html:2 +#, python-format +msgid "The page \"%(title)s\" has been approved." +msgstr "Страница \"%(title)s\" была принята." + +#: templates/wagtailadmin/notifications/approved.html:4 +msgid "You can view the page here:" +msgstr "Вы можете увидеть страницу здесь:" + +#: templates/wagtailadmin/notifications/base_notification.html:3 +msgid "Edit your notification preferences here:" +msgstr "" + +#: templates/wagtailadmin/notifications/rejected.html:1 +#, python-format +msgid "The page \"%(title)s\" has been rejected" +msgstr "" + +#: templates/wagtailadmin/notifications/rejected.html:2 +#, python-format +msgid "The page \"%(title)s\" has been rejected." +msgstr "" + +#: templates/wagtailadmin/notifications/rejected.html:4 +#: templates/wagtailadmin/notifications/submitted.html:5 +msgid "You can edit the page here:" +msgstr "" + +#: templates/wagtailadmin/notifications/submitted.html:1 +#, python-format +msgid "The page \"%(page)s\" has been submitted for moderation" +msgstr "" + +#: templates/wagtailadmin/notifications/submitted.html:2 +#, python-format +msgid "The page \"%(page)s\" has been submitted for moderation." +msgstr "" + +#: templates/wagtailadmin/notifications/submitted.html:4 +msgid "You can preview the page here:" +msgstr "" + +#: templates/wagtailadmin/page_privacy/ancestor_privacy.html:2 +#: templates/wagtailadmin/page_privacy/set_privacy.html:2 +msgid "Page privacy" +msgstr "" + +#: templates/wagtailadmin/page_privacy/ancestor_privacy.html:6 +msgid "This page has been made private by a parent page." +msgstr "" + +#: templates/wagtailadmin/page_privacy/ancestor_privacy.html:7 +msgid "You can edit the privacy settings on:" +msgstr "" + +#: templates/wagtailadmin/page_privacy/set_privacy.html:6 +msgid "Privacy changes apply to all children of this page too." +msgstr "" + +#: templates/wagtailadmin/pages/_moderator_userbar.html:4 +#, python-format +msgid "" +"\n" +" Previewing '%(title)s', submitted by %(submitted_by)s on %(submitted_on)s.\n" +" " +msgstr "" + +#: templates/wagtailadmin/pages/_privacy_indicator.html:9 +msgid "Privacy" +msgstr "" + +#: templates/wagtailadmin/pages/_privacy_indicator.html:14 +#: templates/wagtailadmin/pages/_privacy_indicator.html:20 +msgid "Private" +msgstr "" + +#: templates/wagtailadmin/pages/add_subpage.html:6 +#, python-format +msgid "Create a page in %(title)s" +msgstr "" + +#: templates/wagtailadmin/pages/add_subpage.html:9 +msgid "Create a page in" +msgstr "Создать страницу в" + +#: templates/wagtailadmin/pages/add_subpage.html:13 +msgid "Choose which type of page you'd like to create." +msgstr "" + +#: templates/wagtailadmin/pages/add_subpage.html:26 +#, python-format +msgid "Pages using %(page_type)s" +msgstr "" + +#: templates/wagtailadmin/pages/confirm_delete.html:3 +#, python-format +msgid "Delete %(title)s" +msgstr "Удалить %(title)s" + +#: templates/wagtailadmin/pages/confirm_delete.html:12 +msgid "Are you sure you want to delete this page?" +msgstr "" + +#: templates/wagtailadmin/pages/confirm_delete.html:14 +#, python-format +msgid "" +"\n" +" This will also delete one more subpage.\n" +" " +msgid_plural "" +"\n" +" This will also delete %(descendant_count)s more subpages.\n" +" " +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/wagtailadmin/pages/confirm_delete.html:22 +msgid "" +"Alternatively you can unpublish the page. This removes the page from public " +"view and you can edit or publish it again later." +msgstr "" + +#: templates/wagtailadmin/pages/confirm_delete.html:26 +msgid "Delete it" +msgstr "Удалить" + +#: templates/wagtailadmin/pages/confirm_delete.html:26 +msgid "Unpublish it" +msgstr "Отменить публикацию" + +#: templates/wagtailadmin/pages/confirm_move.html:3 +#, python-format +msgid "Move %(title)s" +msgstr "Переместить %(title)s" + +#: templates/wagtailadmin/pages/confirm_move.html:6 +#: templates/wagtailadmin/pages/list.html:81 +#: templates/wagtailadmin/pages/list.html:199 +msgid "Move" +msgstr "Переместить" + +#: templates/wagtailadmin/pages/confirm_move.html:11 +#, python-format +msgid "Are you sure you want to move this page into '%(title)s'?" +msgstr "" + +#: templates/wagtailadmin/pages/confirm_move.html:13 +#, python-format +msgid "" +"Are you sure you want to move this page and all of its children into " +"'%(title)s'?" +msgstr "" + +#: templates/wagtailadmin/pages/confirm_move.html:18 +msgid "Yes, move this page" +msgstr "Да, переместить эту страницу" + +#: templates/wagtailadmin/pages/confirm_unpublish.html:3 +#, python-format +msgid "Unpublish %(title)s" +msgstr "Отменить публикацию %(title)s" + +#: templates/wagtailadmin/pages/confirm_unpublish.html:6 +#: templates/wagtailadmin/pages/edit.html:42 +#: templates/wagtailadmin/pages/list.html:87 +#: templates/wagtailadmin/pages/list.html:208 +msgid "Unpublish" +msgstr "Отменить публикацию" + +#: templates/wagtailadmin/pages/confirm_unpublish.html:10 +msgid "Are you sure you want to unpublish this page?" +msgstr "Вы уверены, что хотите отменить публикацию этой страницы?" + +#: templates/wagtailadmin/pages/confirm_unpublish.html:13 +msgid "Yes, unpublish it" +msgstr "Да, отменить публикацию" + +#: templates/wagtailadmin/pages/content_type_use.html:7 +msgid "Pages using" +msgstr "" + +#: templates/wagtailadmin/pages/copy.html:3 +#, python-format +msgid "Copy %(title)s" +msgstr "" + +#: templates/wagtailadmin/pages/copy.html:6 +#: templates/wagtailadmin/pages/list.html:202 +msgid "Copy" +msgstr "" + +#: templates/wagtailadmin/pages/copy.html:26 +msgid "Copy this page" +msgstr "" + +#: templates/wagtailadmin/pages/create.html:5 +#, python-format +msgid "New %(page_type)s" +msgstr "" + +#: templates/wagtailadmin/pages/create.html:15 +msgid "New" +msgstr "" + +#: templates/wagtailadmin/pages/create.html:29 +msgid "Save as draft" +msgstr "Сохранить как черновик" + +#: templates/wagtailadmin/pages/create.html:33 +#: templates/wagtailadmin/pages/edit.html:48 +msgid "Publish" +msgstr "Опубликовать" + +#: templates/wagtailadmin/pages/create.html:35 +#: templates/wagtailadmin/pages/edit.html:50 +msgid "Submit for moderation" +msgstr "Отправить на модерацию" + +#: templates/wagtailadmin/pages/edit.html:5 +#, python-format +msgid "Editing %(title)s" +msgstr "" + +#: templates/wagtailadmin/pages/edit.html:15 +#, python-format +msgid "Editing %(title)s" +msgstr "" + +#: templates/wagtailadmin/pages/edit.html:38 +msgid "Save draft" +msgstr "Сохранить черновик" + +#: templates/wagtailadmin/pages/edit.html:77 +#, python-format +msgid "Last modified: %(last_mod)s" +msgstr "Последние правки: %(last_mod)s" + +#: templates/wagtailadmin/pages/edit.html:79 +#, python-format +msgid "by %(modified_by)s" +msgstr "" + +#: templates/wagtailadmin/pages/index.html:3 +#, python-format +msgid "Exploring %(title)s" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:90 +#: templates/wagtailadmin/pages/list.html:211 +msgid "Add child page" +msgstr "Добавить дочернюю страницу" + +#: templates/wagtailadmin/pages/list.html:112 +msgid "Disable ordering of child pages" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:112 +#: templates/wagtailadmin/pages/list.html:114 +msgid "Order" +msgstr "Порядок" + +#: templates/wagtailadmin/pages/list.html:114 +msgid "Enable ordering of child pages" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:158 +msgid "Drag" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:237 +#: templates/wagtailadmin/pages/list.html:241 +#, python-format +msgid "Explorer subpages of '%(title)s'" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:237 +#: templates/wagtailadmin/pages/list.html:241 +#: templates/wagtailadmin/pages/list.html:245 +msgid "Explore" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:245 +#, python-format +msgid "Explore child pages of '%(title)s'" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:247 +#, python-format +msgid "Add a child page to '%(title)s'" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:247 +msgid "Add subpage" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:256 +msgid "No pages have been created." +msgstr "" + +#: templates/wagtailadmin/pages/list.html:256 +#, python-format +msgid "Why not add one?" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:263 +#, python-format +msgid "" +"\n" +" Page %(page_number)s of %(num_pages)s.\n" +" " +msgstr "" + +#: templates/wagtailadmin/pages/list.html:269 +#: templates/wagtailadmin/pages/search_results.html:35 +#: templates/wagtailadmin/pages/search_results.html:37 +#: templates/wagtailadmin/pages/usage_results.html:13 +#: templates/wagtailadmin/shared/pagination_nav.html:21 +#: templates/wagtailadmin/shared/pagination_nav.html:23 +#: templates/wagtailadmin/shared/pagination_nav.html:25 +msgid "Previous" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:274 +#: templates/wagtailadmin/pages/search_results.html:44 +#: templates/wagtailadmin/pages/search_results.html:46 +#: templates/wagtailadmin/pages/usage_results.html:18 +#: templates/wagtailadmin/shared/pagination_nav.html:32 +#: templates/wagtailadmin/shared/pagination_nav.html:34 +#: templates/wagtailadmin/shared/pagination_nav.html:36 +msgid "Next" +msgstr "" + +#: templates/wagtailadmin/pages/move_choose_destination.html:3 +#, python-format +msgid "Select a new parent page for %(title)s" +msgstr "" + +#: templates/wagtailadmin/pages/move_choose_destination.html:7 +#, python-format +msgid "Select a new parent page for %(title)s" +msgstr "" + +#: templates/wagtailadmin/pages/search_results.html:6 +#, python-format +msgid "" +"\n" +" There is one matching page\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matching pages\n" +" " +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/wagtailadmin/pages/search_results.html:16 +msgid "Other searches" +msgstr "" + +#: templates/wagtailadmin/pages/search_results.html:18 +msgid "Images" +msgstr "Изображения" + +#: templates/wagtailadmin/pages/search_results.html:19 +msgid "Documents" +msgstr "Документы" + +#: templates/wagtailadmin/pages/search_results.html:20 +msgid "Users" +msgstr "Пользователи" + +#: templates/wagtailadmin/pages/search_results.html:28 +#: templates/wagtailadmin/pages/usage_results.html:7 +#, python-format +msgid "" +"\n" +" Page %(page_number)s of %(num_pages)s.\n" +" " +msgstr "" + +#: templates/wagtailadmin/pages/search_results.html:54 +#, python-format +msgid "Sorry, no pages match \"%(query_string)s\"" +msgstr "" + +#: templates/wagtailadmin/pages/search_results.html:56 +msgid "Enter a search term above" +msgstr "" + +#: templates/wagtailadmin/pages/usage_results.html:24 +msgid "No pages use" +msgstr "" + +#: templates/wagtailadmin/shared/breadcrumb.html:6 +msgid "Home" +msgstr "Главная" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:6 +msgid "January" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:7 +msgid "February" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:8 +msgid "March" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:9 +msgid "April" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:10 +msgid "May" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:11 +msgid "June" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:12 +msgid "July" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:13 +msgid "August" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:14 +msgid "September" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:15 +msgid "October" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:16 +msgid "November" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:17 +msgid "December" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:20 +msgid "Sun" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:21 +msgid "Mon" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:22 +msgid "Tue" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:23 +msgid "Wed" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:24 +msgid "Thu" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:25 +msgid "Fri" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:26 +msgid "Sat" +msgstr "" + +#: templates/wagtailadmin/shared/header.html:23 +#, python-format +msgid "Used %(useage_count)s time" +msgid_plural "Used %(useage_count)s times" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/wagtailadmin/shared/main_nav.html:10 +msgid "Account settings" +msgstr "" + +#: templates/wagtailadmin/shared/main_nav.html:11 +msgid "Log out" +msgstr "Выйти" + +#: templates/wagtailadmin/shared/pagination_nav.html:16 +#, python-format +msgid "Page %(page_num)s of %(total_pages)s." +msgstr "" + +#: templates/wagtailadmin/userbar/base.html:4 +msgid "User bar" +msgstr "" + +#: templates/wagtailadmin/userbar/base.html:14 +msgid "Go to Wagtail admin interface" +msgstr "" + +#: templates/wagtailadmin/userbar/item_page_add.html:5 +msgid "Add another page at this level" +msgstr "" + +#: templates/wagtailadmin/userbar/item_page_add.html:5 +msgid "Add" +msgstr "" + +#: views/account.py:39 +msgid "Your password has been changed successfully!" +msgstr "Ваш пароль успешно изменен!" + +#: views/account.py:60 +msgid "Your preferences have been updated successfully!" +msgstr "" + +#: views/pages.py:167 views/pages.py:284 +msgid "Go live date/time must be before expiry date/time" +msgstr "" + +#: views/pages.py:177 views/pages.py:294 +msgid "Expiry date/time must be in the future" +msgstr "" + +#: views/pages.py:217 views/pages.py:349 views/pages.py:766 +msgid "Page '{0}' published." +msgstr "Страница '{0}' опубликована." + +#: views/pages.py:219 views/pages.py:351 +msgid "Page '{0}' submitted for moderation." +msgstr "" + +#: views/pages.py:222 +msgid "Page '{0}' created." +msgstr "Страница '{0}' создана." + +#: views/pages.py:231 +msgid "The page could not be created due to validation errors" +msgstr "" + +#: views/pages.py:354 +msgid "Page '{0}' updated." +msgstr "Страница '{0}' обновлена." + +#: views/pages.py:363 +msgid "The page could not be saved due to validation errors" +msgstr "" + +#: views/pages.py:376 +msgid "This page is currently awaiting moderation" +msgstr "" + +#: views/pages.py:407 +msgid "Page '{0}' deleted." +msgstr "Страница '{0}' удалена." + +#: views/pages.py:550 +msgid "Page '{0}' unpublished." +msgstr "" + +#: views/pages.py:602 +msgid "Page '{0}' moved." +msgstr "Страница '{0}' перемещена." + +#: views/pages.py:684 +msgid "Page '{0}' and {1} subpages copied." +msgstr "" + +#: views/pages.py:686 +msgid "Page '{0}' copied." +msgstr "" + +#: views/pages.py:760 views/pages.py:779 views/pages.py:799 +msgid "The page '{0}' is not currently awaiting moderation." +msgstr "" + +#: views/pages.py:785 +msgid "Page '{0}' rejected for publication." +msgstr "" diff --git a/wagtail/wagtailadmin/locale/vi/LC_MESSAGES/django.mo b/wagtail/wagtailadmin/locale/vi/LC_MESSAGES/django.mo new file mode 100644 index 000000000..456079b0d Binary files /dev/null and b/wagtail/wagtailadmin/locale/vi/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailadmin/locale/vi/LC_MESSAGES/django.po b/wagtail/wagtailadmin/locale/vi/LC_MESSAGES/django.po new file mode 100644 index 000000000..1a9224a59 --- /dev/null +++ b/wagtail/wagtailadmin/locale/vi/LC_MESSAGES/django.po @@ -0,0 +1,1058 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" +"PO-Revision-Date: 2014-09-11 15:40+0000\n" +"Last-Translator: Karl Hobley \n" +"Language-Team: Vietnamese (http://www.transifex.com/projects/p/wagtail/language/vi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: edit_handlers.py:631 +msgid "Scheduled publishing" +msgstr "" + +#: edit_handlers.py:645 +msgid "Common page configuration" +msgstr "" + +#: forms.py:19 +msgid "Search term" +msgstr "" + +#: forms.py:43 +msgid "Enter your username" +msgstr "" + +#: forms.py:46 +msgid "Enter password" +msgstr "" + +#: forms.py:51 +msgid "Enter your email address to reset your password" +msgstr "" + +#: forms.py:60 +msgid "Please fill your email address." +msgstr "" + +#: forms.py:73 +msgid "" +"Sorry, you cannot reset your password here as your user account is managed " +"by another server." +msgstr "" + +#: forms.py:76 +msgid "This email address is not recognised." +msgstr "" + +#: forms.py:88 +msgid "New title" +msgstr "" + +#: forms.py:89 +msgid "New slug" +msgstr "" + +#: forms.py:95 +msgid "Copy subpages" +msgstr "" + +#: forms.py:97 +#, python-format +msgid "This will copy %(count)s subpage." +msgid_plural "This will copy %(count)s subpages." +msgstr[0] "" + +#: forms.py:106 +msgid "Publish copied page" +msgstr "" + +#: forms.py:107 +msgid "This page is live. Would you like to publish its copy as well?" +msgstr "" + +#: forms.py:109 +msgid "Publish copies" +msgstr "" + +#: forms.py:111 +#, python-format +msgid "" +"%(count)s of the pages being copied is live. Would you like to publish its " +"copy?" +msgid_plural "" +"%(count)s of the pages being copied are live. Would you like to publish " +"their copies?" +msgstr[0] "" + +#: forms.py:124 views/pages.py:153 views/pages.py:270 +msgid "This slug is already in use" +msgstr "" + +#: forms.py:130 templates/wagtailadmin/pages/_privacy_indicator.html:13 +#: templates/wagtailadmin/pages/_privacy_indicator.html:18 +msgid "Public" +msgstr "" + +#: forms.py:131 +msgid "Private, accessible with the following password" +msgstr "" + +#: forms.py:139 +msgid "This field is required." +msgstr "" + +#: wagtail_hooks.py:15 templates/wagtailadmin/chooser/_search_results.html:12 +msgid "Explorer" +msgstr "" + +#: wagtail_hooks.py:23 templates/wagtailadmin/chooser/_search_form.html:7 +#: templates/wagtailadmin/pages/search.html:3 +#: templates/wagtailadmin/pages/search.html:16 +msgid "Search" +msgstr "" + +#: templates/wagtailadmin/base.html:7 templates/wagtailadmin/home.html:4 +msgid "Dashboard" +msgstr "" + +#: templates/wagtailadmin/base.html:27 +msgid "Menu" +msgstr "" + +#: templates/wagtailadmin/home.html:22 +#, python-format +msgid "Welcome to the %(site_name)s Wagtail CMS" +msgstr "" + +#: templates/wagtailadmin/home.html:33 +msgid "" +"This is your dashboard on which helpful information about content you've " +"created will be displayed." +msgstr "" + +#: templates/wagtailadmin/login.html:4 templates/wagtailadmin/login.html:59 +msgid "Sign in" +msgstr "" + +#: templates/wagtailadmin/login.html:18 +msgid "Your username and password didn't match. Please try again." +msgstr "" + +#: templates/wagtailadmin/login.html:26 +msgid "Sign in to Wagtail" +msgstr "" + +#: templates/wagtailadmin/login.html:46 +msgid "Forgotten it?" +msgstr "" + +#: templates/wagtailadmin/account/account.html:4 +#: templates/wagtailadmin/account/account.html:6 +msgid "Account" +msgstr "" + +#: templates/wagtailadmin/account/account.html:13 +msgid "Set gravatar" +msgstr "" + +#: templates/wagtailadmin/account/account.html:17 +msgid "" +"Your avatar image is provided by Gravatar and is connected to your email " +"address. With a Gravatar account you can set an avatar for any number of " +"other email addresses you use." +msgstr "" + +#: templates/wagtailadmin/account/account.html:25 +#: templates/wagtailadmin/account/change_password.html:4 +#: templates/wagtailadmin/account/change_password.html:6 +msgid "Change password" +msgstr "" + +#: templates/wagtailadmin/account/account.html:29 +msgid "Change the password you use to log in." +msgstr "" + +#: templates/wagtailadmin/account/account.html:36 +msgid "Notification preferences" +msgstr "" + +#: templates/wagtailadmin/account/account.html:40 +msgid "Choose which email notifications to receive." +msgstr "" + +#: templates/wagtailadmin/account/change_password.html:18 +msgid "Change Password" +msgstr "" + +#: templates/wagtailadmin/account/change_password.html:21 +msgid "" +"Your password can't be changed here. Please contact a site administrator." +msgstr "" + +#: templates/wagtailadmin/account/notification_preferences.html:4 +#: templates/wagtailadmin/account/notification_preferences.html:6 +msgid "Notification Preferences" +msgstr "" + +#: templates/wagtailadmin/account/notification_preferences.html:16 +msgid "Update" +msgstr "" + +#: templates/wagtailadmin/account/password_reset/complete.html:4 +#: templates/wagtailadmin/account/password_reset/confirm.html:42 +#: templates/wagtailadmin/account/password_reset/done.html:4 +#: templates/wagtailadmin/account/password_reset/form.html:4 +#: templates/wagtailadmin/account/password_reset/form.html:37 +msgid "Reset password" +msgstr "" + +#: templates/wagtailadmin/account/password_reset/complete.html:15 +msgid "Password change successful" +msgstr "" + +#: templates/wagtailadmin/account/password_reset/complete.html:16 +msgid "Login" +msgstr "" + +#: templates/wagtailadmin/account/password_reset/confirm.html:4 +#: templates/wagtailadmin/account/password_reset/confirm.html:26 +msgid "Set your new password" +msgstr "" + +#: templates/wagtailadmin/account/password_reset/confirm.html:19 +msgid "The passwords do not match. Please try again." +msgstr "" + +#: templates/wagtailadmin/account/password_reset/done.html:15 +msgid "Check your email" +msgstr "" + +#: templates/wagtailadmin/account/password_reset/done.html:16 +msgid "A link to reset your password has been emailed to you." +msgstr "" + +#: templates/wagtailadmin/account/password_reset/email.txt:2 +msgid "Please follow the link below to reset your password" +msgstr "" + +#: templates/wagtailadmin/account/password_reset/email_subject.txt:2 +msgid "Password reset" +msgstr "" + +#: templates/wagtailadmin/account/password_reset/form.html:27 +msgid "Reset your password" +msgstr "" + +#: templates/wagtailadmin/chooser/_link_types.html:5 +#: templates/wagtailadmin/chooser/_link_types.html:7 +msgid "Internal link" +msgstr "" + +#: templates/wagtailadmin/chooser/_link_types.html:11 +#: templates/wagtailadmin/chooser/_link_types.html:13 +msgid "External link" +msgstr "" + +#: templates/wagtailadmin/chooser/_link_types.html:17 +#: templates/wagtailadmin/chooser/_link_types.html:19 +msgid "Email link" +msgstr "" + +#: templates/wagtailadmin/chooser/_search_results.html:5 +#, python-format +msgid "" +"\n" +" Only pages of type \"%(type)s\" may be chosen for this field. Search results will exclude pages of other types.\n" +" " +msgstr "" + +#: templates/wagtailadmin/chooser/_search_results.html:16 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "" + +#: templates/wagtailadmin/chooser/browse.html:3 +msgid "Choose" +msgstr "" + +#: templates/wagtailadmin/chooser/browse.html:6 +#: templates/wagtailadmin/chooser/search.html:2 +#: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:13 +msgid "Choose a page" +msgstr "" + +#: templates/wagtailadmin/chooser/email_link.html:2 +msgid "Add an email link" +msgstr "" + +#: templates/wagtailadmin/chooser/email_link.html:14 +#: templates/wagtailadmin/chooser/external_link.html:14 +msgid "Insert link" +msgstr "" + +#: templates/wagtailadmin/chooser/external_link.html:2 +msgid "Add an external link" +msgstr "" + +#: templates/wagtailadmin/edit_handlers/chooser_panel.html:20 +msgid "Clear choice" +msgstr "" + +#: templates/wagtailadmin/edit_handlers/chooser_panel.html:22 +msgid "Choose another item" +msgstr "" + +#: templates/wagtailadmin/edit_handlers/chooser_panel.html:27 +msgid "Choose an item" +msgstr "" + +#: templates/wagtailadmin/edit_handlers/inline_panel_child.html:5 +msgid "Move up" +msgstr "" + +#: templates/wagtailadmin/edit_handlers/inline_panel_child.html:6 +msgid "Move down" +msgstr "" + +#: templates/wagtailadmin/edit_handlers/inline_panel_child.html:8 +#: templates/wagtailadmin/pages/confirm_delete.html:7 +#: templates/wagtailadmin/pages/edit.html:45 +#: templates/wagtailadmin/pages/list.html:84 +#: templates/wagtailadmin/pages/list.html:205 +msgid "Delete" +msgstr "" + +#: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:12 +msgid "Choose another page" +msgstr "" + +#: templates/wagtailadmin/home/pages_for_moderation.html:5 +msgid "Pages awaiting moderation" +msgstr "" + +#: templates/wagtailadmin/home/pages_for_moderation.html:13 +#: templates/wagtailadmin/home/recent_edits.html:12 +#: templates/wagtailadmin/pages/list.html:121 +#: templates/wagtailadmin/pages/list.html:124 +msgid "Title" +msgstr "" + +#: templates/wagtailadmin/home/pages_for_moderation.html:14 +#: templates/wagtailadmin/pages/list.html:22 +msgid "Parent" +msgstr "" + +#: templates/wagtailadmin/home/pages_for_moderation.html:15 +#: templates/wagtailadmin/pages/list.html:24 +#: templates/wagtailadmin/pages/list.html:133 +#: templates/wagtailadmin/pages/list.html:136 +msgid "Type" +msgstr "" + +#: templates/wagtailadmin/home/pages_for_moderation.html:16 +msgid "Edited" +msgstr "" + +#: templates/wagtailadmin/home/pages_for_moderation.html:23 +#: templates/wagtailadmin/home/recent_edits.html:21 +#: templates/wagtailadmin/pages/list.html:176 +#: templates/wagtailadmin/pages/list.html:190 +msgid "Edit this page" +msgstr "" + +#: templates/wagtailadmin/home/pages_for_moderation.html:28 +#: templates/wagtailadmin/pages/_moderator_userbar.html:12 +#: templates/wagtailadmin/userbar/item_page_approve.html:8 +msgid "Approve" +msgstr "" + +#: templates/wagtailadmin/home/pages_for_moderation.html:34 +#: templates/wagtailadmin/pages/_moderator_userbar.html:17 +#: templates/wagtailadmin/userbar/item_page_reject.html:8 +msgid "Reject" +msgstr "" + +#: templates/wagtailadmin/home/pages_for_moderation.html:37 +#: templates/wagtailadmin/home/recent_edits.html:23 +#: templates/wagtailadmin/pages/_moderator_userbar.html:9 +#: templates/wagtailadmin/pages/list.html:72 +#: templates/wagtailadmin/pages/list.html:190 +#: templates/wagtailadmin/userbar/item_page_edit.html:5 +msgid "Edit" +msgstr "" + +#: templates/wagtailadmin/home/pages_for_moderation.html:38 +#: templates/wagtailadmin/pages/create.html:41 +#: templates/wagtailadmin/pages/edit.html:56 +#: templates/wagtailadmin/pages/preview.html:5 +msgid "Preview" +msgstr "" + +#: templates/wagtailadmin/home/recent_edits.html:5 +msgid "Your most recent edits" +msgstr "" + +#: templates/wagtailadmin/home/recent_edits.html:13 +msgid "Date" +msgstr "" + +#: templates/wagtailadmin/home/recent_edits.html:14 +#: templates/wagtailadmin/pages/edit.html:18 +#: templates/wagtailadmin/pages/list.html:25 +#: templates/wagtailadmin/pages/list.html:142 +#: templates/wagtailadmin/pages/list.html:145 +msgid "Status" +msgstr "" + +#: templates/wagtailadmin/home/recent_edits.html:25 +#: templates/wagtailadmin/pages/list.html:75 +#: templates/wagtailadmin/pages/list.html:193 +msgid "Draft" +msgstr "" + +#: templates/wagtailadmin/home/recent_edits.html:28 +#: templates/wagtailadmin/pages/list.html:78 +#: templates/wagtailadmin/pages/list.html:196 +msgid "Live" +msgstr "" + +#: templates/wagtailadmin/home/site_summary.html:3 +msgid "Site summary" +msgstr "" + +#: templates/wagtailadmin/home/site_summary.html:7 +#, python-format +msgid "" +"\n" +" %(total_pages)s Page\n" +" " +msgid_plural "" +"\n" +" %(total_pages)s Pages\n" +" " +msgstr[0] "" + +#: templates/wagtailadmin/home/site_summary.html:16 +#, python-format +msgid "" +"\n" +" %(total_images)s Image\n" +" " +msgid_plural "" +"\n" +" %(total_images)s Images\n" +" " +msgstr[0] "" + +#: templates/wagtailadmin/home/site_summary.html:25 +#, python-format +msgid "" +"\n" +" %(total_docs)s Document\n" +" " +msgid_plural "" +"\n" +" %(total_docs)s Documents\n" +" " +msgstr[0] "" + +#: templates/wagtailadmin/notifications/approved.html:1 +#, python-format +msgid "The page \"%(title)s\" has been approved" +msgstr "" + +#: templates/wagtailadmin/notifications/approved.html:2 +#, python-format +msgid "The page \"%(title)s\" has been approved." +msgstr "" + +#: templates/wagtailadmin/notifications/approved.html:4 +msgid "You can view the page here:" +msgstr "" + +#: templates/wagtailadmin/notifications/base_notification.html:3 +msgid "Edit your notification preferences here:" +msgstr "" + +#: templates/wagtailadmin/notifications/rejected.html:1 +#, python-format +msgid "The page \"%(title)s\" has been rejected" +msgstr "" + +#: templates/wagtailadmin/notifications/rejected.html:2 +#, python-format +msgid "The page \"%(title)s\" has been rejected." +msgstr "" + +#: templates/wagtailadmin/notifications/rejected.html:4 +#: templates/wagtailadmin/notifications/submitted.html:5 +msgid "You can edit the page here:" +msgstr "" + +#: templates/wagtailadmin/notifications/submitted.html:1 +#, python-format +msgid "The page \"%(page)s\" has been submitted for moderation" +msgstr "" + +#: templates/wagtailadmin/notifications/submitted.html:2 +#, python-format +msgid "The page \"%(page)s\" has been submitted for moderation." +msgstr "" + +#: templates/wagtailadmin/notifications/submitted.html:4 +msgid "You can preview the page here:" +msgstr "" + +#: templates/wagtailadmin/page_privacy/ancestor_privacy.html:2 +#: templates/wagtailadmin/page_privacy/set_privacy.html:2 +msgid "Page privacy" +msgstr "" + +#: templates/wagtailadmin/page_privacy/ancestor_privacy.html:6 +msgid "This page has been made private by a parent page." +msgstr "" + +#: templates/wagtailadmin/page_privacy/ancestor_privacy.html:7 +msgid "You can edit the privacy settings on:" +msgstr "" + +#: templates/wagtailadmin/page_privacy/set_privacy.html:6 +msgid "Privacy changes apply to all children of this page too." +msgstr "" + +#: templates/wagtailadmin/pages/_moderator_userbar.html:4 +#, python-format +msgid "" +"\n" +" Previewing '%(title)s', submitted by %(submitted_by)s on %(submitted_on)s.\n" +" " +msgstr "" + +#: templates/wagtailadmin/pages/_privacy_indicator.html:9 +msgid "Privacy" +msgstr "" + +#: templates/wagtailadmin/pages/_privacy_indicator.html:14 +#: templates/wagtailadmin/pages/_privacy_indicator.html:20 +msgid "Private" +msgstr "" + +#: templates/wagtailadmin/pages/add_subpage.html:6 +#, python-format +msgid "Create a page in %(title)s" +msgstr "" + +#: templates/wagtailadmin/pages/add_subpage.html:9 +msgid "Create a page in" +msgstr "" + +#: templates/wagtailadmin/pages/add_subpage.html:13 +msgid "Choose which type of page you'd like to create." +msgstr "" + +#: templates/wagtailadmin/pages/add_subpage.html:26 +#, python-format +msgid "Pages using %(page_type)s" +msgstr "" + +#: templates/wagtailadmin/pages/confirm_delete.html:3 +#, python-format +msgid "Delete %(title)s" +msgstr "" + +#: templates/wagtailadmin/pages/confirm_delete.html:12 +msgid "Are you sure you want to delete this page?" +msgstr "" + +#: templates/wagtailadmin/pages/confirm_delete.html:14 +#, python-format +msgid "" +"\n" +" This will also delete one more subpage.\n" +" " +msgid_plural "" +"\n" +" This will also delete %(descendant_count)s more subpages.\n" +" " +msgstr[0] "" + +#: templates/wagtailadmin/pages/confirm_delete.html:22 +msgid "" +"Alternatively you can unpublish the page. This removes the page from public " +"view and you can edit or publish it again later." +msgstr "" + +#: templates/wagtailadmin/pages/confirm_delete.html:26 +msgid "Delete it" +msgstr "" + +#: templates/wagtailadmin/pages/confirm_delete.html:26 +msgid "Unpublish it" +msgstr "" + +#: templates/wagtailadmin/pages/confirm_move.html:3 +#, python-format +msgid "Move %(title)s" +msgstr "" + +#: templates/wagtailadmin/pages/confirm_move.html:6 +#: templates/wagtailadmin/pages/list.html:81 +#: templates/wagtailadmin/pages/list.html:199 +msgid "Move" +msgstr "" + +#: templates/wagtailadmin/pages/confirm_move.html:11 +#, python-format +msgid "Are you sure you want to move this page into '%(title)s'?" +msgstr "" + +#: templates/wagtailadmin/pages/confirm_move.html:13 +#, python-format +msgid "" +"Are you sure you want to move this page and all of its children into " +"'%(title)s'?" +msgstr "" + +#: templates/wagtailadmin/pages/confirm_move.html:18 +msgid "Yes, move this page" +msgstr "" + +#: templates/wagtailadmin/pages/confirm_unpublish.html:3 +#, python-format +msgid "Unpublish %(title)s" +msgstr "" + +#: templates/wagtailadmin/pages/confirm_unpublish.html:6 +#: templates/wagtailadmin/pages/edit.html:42 +#: templates/wagtailadmin/pages/list.html:87 +#: templates/wagtailadmin/pages/list.html:208 +msgid "Unpublish" +msgstr "" + +#: templates/wagtailadmin/pages/confirm_unpublish.html:10 +msgid "Are you sure you want to unpublish this page?" +msgstr "" + +#: templates/wagtailadmin/pages/confirm_unpublish.html:13 +msgid "Yes, unpublish it" +msgstr "" + +#: templates/wagtailadmin/pages/content_type_use.html:7 +msgid "Pages using" +msgstr "" + +#: templates/wagtailadmin/pages/copy.html:3 +#, python-format +msgid "Copy %(title)s" +msgstr "" + +#: templates/wagtailadmin/pages/copy.html:6 +#: templates/wagtailadmin/pages/list.html:202 +msgid "Copy" +msgstr "" + +#: templates/wagtailadmin/pages/copy.html:26 +msgid "Copy this page" +msgstr "" + +#: templates/wagtailadmin/pages/create.html:5 +#, python-format +msgid "New %(page_type)s" +msgstr "" + +#: templates/wagtailadmin/pages/create.html:15 +msgid "New" +msgstr "" + +#: templates/wagtailadmin/pages/create.html:29 +msgid "Save as draft" +msgstr "" + +#: templates/wagtailadmin/pages/create.html:33 +#: templates/wagtailadmin/pages/edit.html:48 +msgid "Publish" +msgstr "" + +#: templates/wagtailadmin/pages/create.html:35 +#: templates/wagtailadmin/pages/edit.html:50 +msgid "Submit for moderation" +msgstr "" + +#: templates/wagtailadmin/pages/edit.html:5 +#, python-format +msgid "Editing %(title)s" +msgstr "" + +#: templates/wagtailadmin/pages/edit.html:15 +#, python-format +msgid "Editing %(title)s" +msgstr "" + +#: templates/wagtailadmin/pages/edit.html:38 +msgid "Save draft" +msgstr "" + +#: templates/wagtailadmin/pages/edit.html:77 +#, python-format +msgid "Last modified: %(last_mod)s" +msgstr "" + +#: templates/wagtailadmin/pages/edit.html:79 +#, python-format +msgid "by %(modified_by)s" +msgstr "" + +#: templates/wagtailadmin/pages/index.html:3 +#, python-format +msgid "Exploring %(title)s" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:90 +#: templates/wagtailadmin/pages/list.html:211 +msgid "Add child page" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:112 +msgid "Disable ordering of child pages" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:112 +#: templates/wagtailadmin/pages/list.html:114 +msgid "Order" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:114 +msgid "Enable ordering of child pages" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:158 +msgid "Drag" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:237 +#: templates/wagtailadmin/pages/list.html:241 +#, python-format +msgid "Explorer subpages of '%(title)s'" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:237 +#: templates/wagtailadmin/pages/list.html:241 +#: templates/wagtailadmin/pages/list.html:245 +msgid "Explore" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:245 +#, python-format +msgid "Explore child pages of '%(title)s'" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:247 +#, python-format +msgid "Add a child page to '%(title)s'" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:247 +msgid "Add subpage" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:256 +msgid "No pages have been created." +msgstr "" + +#: templates/wagtailadmin/pages/list.html:256 +#, python-format +msgid "Why not add one?" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:263 +#, python-format +msgid "" +"\n" +" Page %(page_number)s of %(num_pages)s.\n" +" " +msgstr "" + +#: templates/wagtailadmin/pages/list.html:269 +#: templates/wagtailadmin/pages/search_results.html:35 +#: templates/wagtailadmin/pages/search_results.html:37 +#: templates/wagtailadmin/pages/usage_results.html:13 +#: templates/wagtailadmin/shared/pagination_nav.html:21 +#: templates/wagtailadmin/shared/pagination_nav.html:23 +#: templates/wagtailadmin/shared/pagination_nav.html:25 +msgid "Previous" +msgstr "" + +#: templates/wagtailadmin/pages/list.html:274 +#: templates/wagtailadmin/pages/search_results.html:44 +#: templates/wagtailadmin/pages/search_results.html:46 +#: templates/wagtailadmin/pages/usage_results.html:18 +#: templates/wagtailadmin/shared/pagination_nav.html:32 +#: templates/wagtailadmin/shared/pagination_nav.html:34 +#: templates/wagtailadmin/shared/pagination_nav.html:36 +msgid "Next" +msgstr "" + +#: templates/wagtailadmin/pages/move_choose_destination.html:3 +#, python-format +msgid "Select a new parent page for %(title)s" +msgstr "" + +#: templates/wagtailadmin/pages/move_choose_destination.html:7 +#, python-format +msgid "Select a new parent page for %(title)s" +msgstr "" + +#: templates/wagtailadmin/pages/search_results.html:6 +#, python-format +msgid "" +"\n" +" There is one matching page\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matching pages\n" +" " +msgstr[0] "" + +#: templates/wagtailadmin/pages/search_results.html:16 +msgid "Other searches" +msgstr "" + +#: templates/wagtailadmin/pages/search_results.html:18 +msgid "Images" +msgstr "" + +#: templates/wagtailadmin/pages/search_results.html:19 +msgid "Documents" +msgstr "" + +#: templates/wagtailadmin/pages/search_results.html:20 +msgid "Users" +msgstr "" + +#: templates/wagtailadmin/pages/search_results.html:28 +#: templates/wagtailadmin/pages/usage_results.html:7 +#, python-format +msgid "" +"\n" +" Page %(page_number)s of %(num_pages)s.\n" +" " +msgstr "" + +#: templates/wagtailadmin/pages/search_results.html:54 +#, python-format +msgid "Sorry, no pages match \"%(query_string)s\"" +msgstr "" + +#: templates/wagtailadmin/pages/search_results.html:56 +msgid "Enter a search term above" +msgstr "" + +#: templates/wagtailadmin/pages/usage_results.html:24 +msgid "No pages use" +msgstr "" + +#: templates/wagtailadmin/shared/breadcrumb.html:6 +msgid "Home" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:6 +msgid "January" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:7 +msgid "February" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:8 +msgid "March" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:9 +msgid "April" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:10 +msgid "May" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:11 +msgid "June" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:12 +msgid "July" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:13 +msgid "August" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:14 +msgid "September" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:15 +msgid "October" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:16 +msgid "November" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:17 +msgid "December" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:20 +msgid "Sun" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:21 +msgid "Mon" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:22 +msgid "Tue" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:23 +msgid "Wed" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:24 +msgid "Thu" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:25 +msgid "Fri" +msgstr "" + +#: templates/wagtailadmin/shared/datetimepicker_translations.html:26 +msgid "Sat" +msgstr "" + +#: templates/wagtailadmin/shared/header.html:23 +#, python-format +msgid "Used %(useage_count)s time" +msgid_plural "Used %(useage_count)s times" +msgstr[0] "" + +#: templates/wagtailadmin/shared/main_nav.html:10 +msgid "Account settings" +msgstr "" + +#: templates/wagtailadmin/shared/main_nav.html:11 +msgid "Log out" +msgstr "" + +#: templates/wagtailadmin/shared/pagination_nav.html:16 +#, python-format +msgid "Page %(page_num)s of %(total_pages)s." +msgstr "" + +#: templates/wagtailadmin/userbar/base.html:4 +msgid "User bar" +msgstr "" + +#: templates/wagtailadmin/userbar/base.html:14 +msgid "Go to Wagtail admin interface" +msgstr "" + +#: templates/wagtailadmin/userbar/item_page_add.html:5 +msgid "Add another page at this level" +msgstr "" + +#: templates/wagtailadmin/userbar/item_page_add.html:5 +msgid "Add" +msgstr "" + +#: views/account.py:39 +msgid "Your password has been changed successfully!" +msgstr "" + +#: views/account.py:60 +msgid "Your preferences have been updated successfully!" +msgstr "" + +#: views/pages.py:167 views/pages.py:284 +msgid "Go live date/time must be before expiry date/time" +msgstr "" + +#: views/pages.py:177 views/pages.py:294 +msgid "Expiry date/time must be in the future" +msgstr "" + +#: views/pages.py:217 views/pages.py:349 views/pages.py:766 +msgid "Page '{0}' published." +msgstr "" + +#: views/pages.py:219 views/pages.py:351 +msgid "Page '{0}' submitted for moderation." +msgstr "" + +#: views/pages.py:222 +msgid "Page '{0}' created." +msgstr "" + +#: views/pages.py:231 +msgid "The page could not be created due to validation errors" +msgstr "" + +#: views/pages.py:354 +msgid "Page '{0}' updated." +msgstr "" + +#: views/pages.py:363 +msgid "The page could not be saved due to validation errors" +msgstr "" + +#: views/pages.py:376 +msgid "This page is currently awaiting moderation" +msgstr "" + +#: views/pages.py:407 +msgid "Page '{0}' deleted." +msgstr "" + +#: views/pages.py:550 +msgid "Page '{0}' unpublished." +msgstr "" + +#: views/pages.py:602 +msgid "Page '{0}' moved." +msgstr "" + +#: views/pages.py:684 +msgid "Page '{0}' and {1} subpages copied." +msgstr "" + +#: views/pages.py:686 +msgid "Page '{0}' copied." +msgstr "" + +#: views/pages.py:760 views/pages.py:779 views/pages.py:799 +msgid "The page '{0}' is not currently awaiting moderation." +msgstr "" + +#: views/pages.py:785 +msgid "Page '{0}' rejected for publication." +msgstr "" diff --git a/wagtail/wagtailadmin/locale/zh/LC_MESSAGES/django.mo b/wagtail/wagtailadmin/locale/zh/LC_MESSAGES/django.mo index 7dabd4747..2aae4a9e9 100644 Binary files a/wagtail/wagtailadmin/locale/zh/LC_MESSAGES/django.mo and b/wagtail/wagtailadmin/locale/zh/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailadmin/locale/zh/LC_MESSAGES/django.po b/wagtail/wagtailadmin/locale/zh/LC_MESSAGES/django.po index 7aa5b5fec..5ab3d95c4 100644 --- a/wagtail/wagtailadmin/locale/zh/LC_MESSAGES/django.po +++ b/wagtail/wagtailadmin/locale/zh/LC_MESSAGES/django.po @@ -1,27 +1,28 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Chinese (http://www.transifex.com/projects/p/wagtail/language/zh/)\n" +"Language-Team: Chinese (http://www.transifex.com/projects/p/wagtail/language/" +"zh/)\n" +"Language: zh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: edit_handlers.py:627 +#: edit_handlers.py:631 msgid "Scheduled publishing" msgstr "" -#: edit_handlers.py:641 +#: edit_handlers.py:645 msgid "Common page configuration" msgstr "" @@ -95,7 +96,7 @@ msgid_plural "" "their copies?" msgstr[0] "" -#: forms.py:124 views/pages.py:155 views/pages.py:272 +#: forms.py:124 views/pages.py:153 views/pages.py:270 msgid "This slug is already in use" msgstr "这个唯一的地址已被占用" @@ -112,6 +113,16 @@ msgstr "" msgid "This field is required." msgstr "" +#: wagtail_hooks.py:15 templates/wagtailadmin/chooser/_search_results.html:12 +msgid "Explorer" +msgstr "浏览" + +#: wagtail_hooks.py:23 templates/wagtailadmin/chooser/_search_form.html:7 +#: templates/wagtailadmin/pages/search.html:3 +#: templates/wagtailadmin/pages/search.html:16 +msgid "Search" +msgstr "搜索" + #: templates/wagtailadmin/base.html:7 templates/wagtailadmin/home.html:4 msgid "Dashboard" msgstr "仪表板" @@ -161,7 +172,9 @@ msgid "" "Your avatar image is provided by Gravatar and is connected to your email " "address. With a Gravatar account you can set an avatar for any number of " "other email addresses you use." -msgstr "您的头像图片是由Gravatar提供的,并且关联了您的电子邮件地址。一个Gravatar账号可以设置多个电子邮件地址的头像图片。" +msgstr "" +"您的头像图片是由Gravatar提供的,并且关联了您的电子邮件地址。一个Gravatar账号" +"可以设置多个电子邮件地址的头像图片。" #: templates/wagtailadmin/account/account.html:25 #: templates/wagtailadmin/account/change_password.html:4 @@ -259,19 +272,16 @@ msgstr "外部链接" msgid "Email link" msgstr "电子邮件链接" -#: templates/wagtailadmin/chooser/_search_form.html:7 -#: templates/wagtailadmin/pages/search.html:3 -#: templates/wagtailadmin/pages/search.html:16 -#: templatetags/wagtailadmin_tags.py:36 -msgid "Search" -msgstr "搜索" +#: templates/wagtailadmin/chooser/_search_results.html:5 +#, python-format +msgid "" +"\n" +" Only pages of type \"%(type)s\" may be chosen for this field. " +"Search results will exclude pages of other types.\n" +" " +msgstr "" -#: templates/wagtailadmin/chooser/_search_results.html:3 -#: templatetags/wagtailadmin_tags.py:35 -msgid "Explorer" -msgstr "浏览" - -#: templates/wagtailadmin/chooser/_search_results.html:8 +#: templates/wagtailadmin/chooser/_search_results.html:16 #, python-format msgid "" "\n" @@ -283,7 +293,12 @@ msgid_plural "" " " msgstr[0] "" -#: templates/wagtailadmin/chooser/browse.html:2 +#: templates/wagtailadmin/chooser/browse.html:3 +#, fuzzy +msgid "Choose" +msgstr "选择一个页面" + +#: templates/wagtailadmin/chooser/browse.html:6 #: templates/wagtailadmin/chooser/search.html:2 #: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:13 msgid "Choose a page" @@ -525,16 +540,20 @@ msgid "You can edit the privacy settings on:" msgstr "" #: templates/wagtailadmin/page_privacy/set_privacy.html:6 -msgid "Note: privacy changes apply to all children of this page too." +msgid "Privacy changes apply to all children of this page too." msgstr "" #: templates/wagtailadmin/pages/_moderator_userbar.html:4 #, python-format msgid "" "\n" -" Previewing '%(title)s', submitted by %(submitted_by)s on %(submitted_on)s.\n" +" Previewing '%(title)s', submitted by %(submitted_by)s on " +"%(submitted_on)s.\n" +" " +msgstr "" +"\n" +" 预览 '%(title)s', %(submitted_by)s 在 %(submitted_on)s 提交.\n" " " -msgstr "\n 预览 '%(title)s', %(submitted_by)s 在 %(submitted_on)s 提交.\n " #: templates/wagtailadmin/pages/_privacy_indicator.html:9 msgid "Privacy" @@ -580,7 +599,8 @@ msgid "" " " msgid_plural "" "\n" -" This will also delete %(descendant_count)s more subpages.\n" +" This will also delete %(descendant_count)s more " +"subpages.\n" " " msgstr[0] "" @@ -845,7 +865,10 @@ msgid "" "\n" " Page %(page_number)s of %(num_pages)s.\n" " " -msgstr "\n 第 %(page_number)s / %(num_pages)s页.\n " +msgstr "" +"\n" +" 第 %(page_number)s / %(num_pages)s页.\n" +" " #: templates/wagtailadmin/pages/search_results.html:54 #, python-format @@ -983,66 +1006,66 @@ msgstr "您的密码已经更改成功。" msgid "Your preferences have been updated successfully!" msgstr "" -#: views/pages.py:169 views/pages.py:286 +#: views/pages.py:167 views/pages.py:284 msgid "Go live date/time must be before expiry date/time" msgstr "" -#: views/pages.py:179 views/pages.py:296 +#: views/pages.py:177 views/pages.py:294 msgid "Expiry date/time must be in the future" msgstr "" -#: views/pages.py:219 views/pages.py:351 views/pages.py:791 +#: views/pages.py:217 views/pages.py:349 views/pages.py:766 msgid "Page '{0}' published." msgstr "第 '{0}' 页已发布。" -#: views/pages.py:221 views/pages.py:353 +#: views/pages.py:219 views/pages.py:351 msgid "Page '{0}' submitted for moderation." msgstr "第 '{0}' 页已提交审核。" -#: views/pages.py:224 +#: views/pages.py:222 msgid "Page '{0}' created." msgstr "第 '{0}' 页已创建。" -#: views/pages.py:233 +#: views/pages.py:231 msgid "The page could not be created due to validation errors" msgstr "" -#: views/pages.py:356 +#: views/pages.py:354 msgid "Page '{0}' updated." msgstr "第 '{0}' 页已更新" -#: views/pages.py:365 +#: views/pages.py:363 msgid "The page could not be saved due to validation errors" msgstr "这页无法保存,因为页面发生验证错误" -#: views/pages.py:378 +#: views/pages.py:376 msgid "This page is currently awaiting moderation" msgstr "这页正在等待审核" -#: views/pages.py:409 +#: views/pages.py:407 msgid "Page '{0}' deleted." msgstr "第 '{0}' 页已删除" -#: views/pages.py:575 +#: views/pages.py:550 msgid "Page '{0}' unpublished." msgstr "第 '{0}' 页已停止发布" -#: views/pages.py:627 +#: views/pages.py:602 msgid "Page '{0}' moved." msgstr "第 '{0}' 页已移动。" -#: views/pages.py:709 +#: views/pages.py:684 msgid "Page '{0}' and {1} subpages copied." msgstr "" -#: views/pages.py:711 +#: views/pages.py:686 msgid "Page '{0}' copied." msgstr "" -#: views/pages.py:785 views/pages.py:804 views/pages.py:824 +#: views/pages.py:760 views/pages.py:779 views/pages.py:799 msgid "The page '{0}' is not currently awaiting moderation." msgstr "第 '{0}' 页当前不需要等待审核。" -#: views/pages.py:810 +#: views/pages.py:785 msgid "Page '{0}' rejected for publication." msgstr "第 '{0}' 页已被拒绝发布。" diff --git a/wagtail/wagtailadmin/locale/zh_TW/LC_MESSAGES/django.mo b/wagtail/wagtailadmin/locale/zh_TW/LC_MESSAGES/django.mo index a00aa643b..d78c6884a 100644 Binary files a/wagtail/wagtailadmin/locale/zh_TW/LC_MESSAGES/django.mo and b/wagtail/wagtailadmin/locale/zh_TW/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailadmin/locale/zh_TW/LC_MESSAGES/django.po b/wagtail/wagtailadmin/locale/zh_TW/LC_MESSAGES/django.po index 95b8e929d..a9c2422f8 100644 --- a/wagtail/wagtailadmin/locale/zh_TW/LC_MESSAGES/django.po +++ b/wagtail/wagtailadmin/locale/zh_TW/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-05-01 12:09+0000\n" "Last-Translator: wdv4758h \n" "Language-Team: \n" @@ -17,11 +17,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: edit_handlers.py:627 +#: edit_handlers.py:631 msgid "Scheduled publishing" msgstr "" -#: edit_handlers.py:641 +#: edit_handlers.py:645 msgid "Common page configuration" msgstr "一般頁面設定" @@ -98,7 +98,7 @@ msgid_plural "" "their copies?" msgstr[0] "" -#: forms.py:124 views/pages.py:155 views/pages.py:272 +#: forms.py:124 views/pages.py:153 views/pages.py:270 msgid "This slug is already in use" msgstr "這個地址已被使用" @@ -117,6 +117,16 @@ msgstr "" msgid "This field is required." msgstr "找不到這個電子信箱。" +#: wagtail_hooks.py:15 templates/wagtailadmin/chooser/_search_results.html:12 +msgid "Explorer" +msgstr "瀏覽" + +#: wagtail_hooks.py:23 templates/wagtailadmin/chooser/_search_form.html:7 +#: templates/wagtailadmin/pages/search.html:3 +#: templates/wagtailadmin/pages/search.html:16 +msgid "Search" +msgstr "搜尋" + #: templates/wagtailadmin/base.html:7 templates/wagtailadmin/home.html:4 msgid "Dashboard" msgstr "Dashboard" @@ -266,19 +276,16 @@ msgstr "外部連結" msgid "Email link" msgstr "電子信箱連結" -#: templates/wagtailadmin/chooser/_search_form.html:7 -#: templates/wagtailadmin/pages/search.html:3 -#: templates/wagtailadmin/pages/search.html:16 -#: templatetags/wagtailadmin_tags.py:36 -msgid "Search" -msgstr "搜尋" +#: templates/wagtailadmin/chooser/_search_results.html:5 +#, python-format +msgid "" +"\n" +" Only pages of type \"%(type)s\" may be chosen for this field. " +"Search results will exclude pages of other types.\n" +" " +msgstr "" -#: templates/wagtailadmin/chooser/_search_results.html:3 -#: templatetags/wagtailadmin_tags.py:35 -msgid "Explorer" -msgstr "瀏覽" - -#: templates/wagtailadmin/chooser/_search_results.html:8 +#: templates/wagtailadmin/chooser/_search_results.html:16 #, python-format msgid "" "\n" @@ -295,7 +302,12 @@ msgstr[1] "" "\n" " 有 $(counter)s 個符合" -#: templates/wagtailadmin/chooser/browse.html:2 +#: templates/wagtailadmin/chooser/browse.html:3 +#, fuzzy +msgid "Choose" +msgstr "選擇一個頁面" + +#: templates/wagtailadmin/chooser/browse.html:6 #: templates/wagtailadmin/chooser/search.html:2 #: templates/wagtailadmin/edit_handlers/page_chooser_panel.html:13 msgid "Choose a page" @@ -559,7 +571,7 @@ msgid "You can edit the privacy settings on:" msgstr "你可以在此編輯這個頁面:" #: templates/wagtailadmin/page_privacy/set_privacy.html:6 -msgid "Note: privacy changes apply to all children of this page too." +msgid "Privacy changes apply to all children of this page too." msgstr "" #: templates/wagtailadmin/pages/_moderator_userbar.html:4 @@ -1046,70 +1058,70 @@ msgstr "您的密碼已經更改成功。" msgid "Your preferences have been updated successfully!" msgstr "您的密碼已經更改成功。" -#: views/pages.py:169 views/pages.py:286 +#: views/pages.py:167 views/pages.py:284 msgid "Go live date/time must be before expiry date/time" msgstr "" -#: views/pages.py:179 views/pages.py:296 +#: views/pages.py:177 views/pages.py:294 msgid "Expiry date/time must be in the future" msgstr "" -#: views/pages.py:219 views/pages.py:351 views/pages.py:791 +#: views/pages.py:217 views/pages.py:349 views/pages.py:766 msgid "Page '{0}' published." msgstr "第 '{0}' 頁已發佈。" -#: views/pages.py:221 views/pages.py:353 +#: views/pages.py:219 views/pages.py:351 msgid "Page '{0}' submitted for moderation." msgstr "第 '{0}' 頁已送審。" -#: views/pages.py:224 +#: views/pages.py:222 msgid "Page '{0}' created." msgstr "第 '{0}' 頁已建立。" -#: views/pages.py:233 +#: views/pages.py:231 #, fuzzy msgid "The page could not be created due to validation errors" msgstr "這頁面因有驗證錯誤而無法儲存。" -#: views/pages.py:356 +#: views/pages.py:354 msgid "Page '{0}' updated." msgstr "第 '{0}' 頁已更新" -#: views/pages.py:365 +#: views/pages.py:363 msgid "The page could not be saved due to validation errors" msgstr "這頁面因有驗證錯誤而無法儲存。" -#: views/pages.py:378 +#: views/pages.py:376 msgid "This page is currently awaiting moderation" msgstr "這頁正等待審核" -#: views/pages.py:409 +#: views/pages.py:407 msgid "Page '{0}' deleted." msgstr "第 '{0}' 頁已刪除" -#: views/pages.py:575 +#: views/pages.py:550 msgid "Page '{0}' unpublished." msgstr "第 '{0}' 頁已取消發佈" -#: views/pages.py:627 +#: views/pages.py:602 msgid "Page '{0}' moved." msgstr "第 '{0}' 頁已移動。" -#: views/pages.py:709 +#: views/pages.py:684 #, fuzzy msgid "Page '{0}' and {1} subpages copied." msgstr "第 '{0}' 頁已更新" -#: views/pages.py:711 +#: views/pages.py:686 #, fuzzy msgid "Page '{0}' copied." msgstr "第 '{0}' 頁已移動。" -#: views/pages.py:785 views/pages.py:804 views/pages.py:824 +#: views/pages.py:760 views/pages.py:779 views/pages.py:799 msgid "The page '{0}' is not currently awaiting moderation." msgstr "第 '{0}' 頁目前不需要等待審核。" -#: views/pages.py:810 +#: views/pages.py:785 msgid "Page '{0}' rejected for publication." msgstr "第 '{0}' 頁已被拒絕發佈。" diff --git a/wagtail/wagtailadmin/menu.py b/wagtail/wagtailadmin/menu.py index 74e3c406c..34a8c792f 100644 --- a/wagtail/wagtailadmin/menu.py +++ b/wagtail/wagtailadmin/menu.py @@ -1,20 +1,56 @@ from __future__ import unicode_literals -from six import text_type +from six import text_type, with_metaclass +try: + # renamed util -> utils in Django 1.7; try the new name first + from django.forms.utils import flatatt +except ImportError: + from django.forms.util import flatatt + +from django.conf import settings +from django.forms import MediaDefiningClass from django.utils.text import slugify -from django.utils.html import format_html +from django.utils.html import format_html, format_html_join + +from wagtail.wagtailcore import hooks -class MenuItem(object): - def __init__(self, label, url, name=None, classnames='', order=1000): +class MenuItem(with_metaclass(MediaDefiningClass)): + def __init__(self, label, url, name=None, classnames='', attrs=None, order=1000): self.label = label self.url = url self.classnames = classnames self.name = (name or slugify(text_type(label))) self.order = order + if attrs: + self.attr_string = flatatt(attrs) + else: + self.attr_string = "" + + def is_shown(self, request): + """ + Whether this menu item should be shown for the given request; permission + checks etc should go here. By default, menu items are shown all the time + """ + return True + def render_html(self): return format_html( - """""", - self.name, self.url, self.classnames, self.label) + """""", + self.name, self.url, self.classnames, self.attr_string, self.label) + + +_master_menu_item_list = None +def get_master_menu_item_list(): + """ + Return the list of menu items registered with the 'register_admin_menu_item' hook. + This is the "master list" because the final admin menu may vary per request + according to the value of is_shown() and the construct_main_menu hook. + """ + global _master_menu_item_list + if _master_menu_item_list is None: + _master_menu_item_list = [fn() for fn in hooks.get_hooks('register_admin_menu_item')] + + return _master_menu_item_list diff --git a/wagtail/wagtailadmin/migrations/0001_create_admin_access_permissions.py b/wagtail/wagtailadmin/migrations/0001_create_admin_access_permissions.py new file mode 100644 index 000000000..5f198a01d --- /dev/null +++ b/wagtail/wagtailadmin/migrations/0001_create_admin_access_permissions.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +def create_admin_access_permissions(apps, schema_editor): + ContentType = apps.get_model('contenttypes.ContentType') + Permission = apps.get_model('auth.Permission') + Group = apps.get_model('auth.Group') + + # Add a fake content type to hang the 'can access Wagtail admin' permission off. + # The fact that this doesn't correspond to an actual defined model shouldn't matter, I hope... + wagtailadmin_content_type = ContentType.objects.create( + app_label='wagtailadmin', + model='admin', + name='Wagtail admin' + ) + + # Create admin permission + admin_permission = Permission.objects.create( + content_type=wagtailadmin_content_type, + codename='access_admin', + name='Can access Wagtail admin' + ) + + # Assign it to Editors and Moderators groups + for group in Group.objects.filter(name__in=['Editors', 'Moderators']): + group.permissions.add(admin_permission) + + +class Migration(migrations.Migration): + + dependencies = [ + # Need to run wagtailcores initial data migration to make sure the groups are created + ('wagtailcore', '0002_initial_data'), + ] + + operations = [ + migrations.RunPython(create_admin_access_permissions), + ] diff --git a/wagtail/wagtailadmin/migrations/__init__.py b/wagtail/wagtailadmin/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/wagtail/wagtailadmin/static/wagtailadmin/js/core.js b/wagtail/wagtailadmin/static/wagtailadmin/js/core.js index 0808eb9b7..21966a3bf 100644 --- a/wagtail/wagtailadmin/static/wagtailadmin/js/core.js +++ b/wagtail/wagtailadmin/static/wagtailadmin/js/core.js @@ -21,32 +21,6 @@ $(function(){ } }); - // Dynamically load menu on request. - $(document).on('click', '.dl-trigger', function(){ - var $this = $(this); - var $explorer = $('#explorer'); - - $this.addClass('icon-spinner'); - - if(!$explorer.children().length){ - $explorer.load(window.explorer_menu_url, function() { - $this.removeClass('icon-spinner'); - - $explorer.addClass('dl-menuwrapper').dlmenu({ - animationClasses : { - classin : 'dl-animate-in-2', - classout : 'dl-animate-out-2' - } - }); - $explorer.dlmenu('openMenu'); - }); - }else{ - $explorer.dlmenu('openMenu'); - } - - return false; - }); - // Resize nav to fit height of window. This is an unimportant bell/whistle to make it look nice var fitNav = function(){ $('.nav-wrapper').css('min-height',$(window).height()); diff --git a/wagtail/wagtailadmin/static/wagtailadmin/js/explorer-menu.js b/wagtail/wagtailadmin/static/wagtailadmin/js/explorer-menu.js new file mode 100644 index 000000000..9fc6ccc5b --- /dev/null +++ b/wagtail/wagtailadmin/static/wagtailadmin/js/explorer-menu.js @@ -0,0 +1,27 @@ +$(function(){ + // Dynamically load menu on request. + $(document).on('click', '.dl-trigger', function(){ + var $this = $(this); + var $explorer = $('#explorer'); + + $this.addClass('icon-spinner'); + + if(!$explorer.children().length){ + $explorer.load($this.data('explorer-menu-url'), function() { + $this.removeClass('icon-spinner'); + + $explorer.addClass('dl-menuwrapper').dlmenu({ + animationClasses : { + classin : 'dl-animate-in-2', + classout : 'dl-animate-out-2' + } + }); + $explorer.dlmenu('openMenu'); + }); + }else{ + $explorer.dlmenu('openMenu'); + } + + return false; + }); +}); diff --git a/wagtail/wagtailadmin/static/wagtailadmin/js/vendor/modernizr-2.6.2.min.js b/wagtail/wagtailadmin/static/wagtailadmin/js/vendor/modernizr-2.6.2.min.js index 7eb2abe75..f18b5c2c9 100644 --- a/wagtail/wagtailadmin/static/wagtailadmin/js/vendor/modernizr-2.6.2.min.js +++ b/wagtail/wagtailadmin/static/wagtailadmin/js/vendor/modernizr-2.6.2.min.js @@ -1,4 +1,4 @@ /* Modernizr 2.8.3 (Custom Build) | MIT & BSD - * Build: http://modernizr.com/download/#-cssanimations-cssreflections-csstransforms-csstransforms3d-csstransitions-draganddrop-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-file_api-load + * Build: http://modernizr.com/download/#-cssanimations-cssreflections-csstransforms-csstransforms3d-csstransitions-draganddrop-touch-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-file_api-load */ -;window.Modernizr=function(a,b,c){function B(a){j.cssText=a}function C(a,b){return B(m.join(a+";")+(b||""))}function D(a,b){return typeof a===b}function E(a,b){return!!~(""+a).indexOf(b)}function F(a,b){for(var d in a){var e=a[d];if(!E(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function G(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:D(f,"function")?f.bind(d||b):f}return!1}function H(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+o.join(d+" ")+d).split(" ");return D(b,"string")||D(b,"undefined")?F(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),G(e,b,c))}var d="2.8.3",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={},r={},s={},t=[],u=t.slice,v,w=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["­",'"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},x=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b)&&c(b).matches||!1;var d;return w("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},y=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=D(e[d],"function"),D(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),z={}.hasOwnProperty,A;!D(z,"undefined")&&!D(z.call,"undefined")?A=function(a,b){return z.call(a,b)}:A=function(a,b){return b in a&&D(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=u.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(u.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(u.call(arguments)))};return e}),q.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},q.cssanimations=function(){return H("animationName")},q.cssreflections=function(){return H("boxReflect")},q.csstransforms=function(){return!!H("transform")},q.csstransforms3d=function(){var a=!!H("perspective");return a&&"webkitPerspective"in g.style&&w("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},q.csstransitions=function(){return H("transition")};for(var I in q)A(q,I)&&(v=I.toLowerCase(),e[v]=q[I](),t.push((e[v]?"":"no-")+v));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)A(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},B(""),i=k=null,function(a,b){function l(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function m(){var a=s.elements;return typeof a=="string"?a.split(" "):a}function n(a){var b=j[a[h]];return b||(b={},i++,a[h]=i,j[i]=b),b}function o(a,c,d){c||(c=b);if(k)return c.createElement(a);d||(d=n(c));var g;return d.cache[a]?g=d.cache[a].cloneNode():f.test(a)?g=(d.cache[a]=d.createElem(a)).cloneNode():g=d.createElem(a),g.canHaveChildren&&!e.test(a)&&!g.tagUrn?d.frag.appendChild(g):g}function p(a,c){a||(a=b);if(k)return a.createDocumentFragment();c=c||n(a);var d=c.frag.cloneNode(),e=0,f=m(),g=f.length;for(;e",g="hidden"in a,k=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){g=!0,k=!0}})();var s={elements:d.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:c,shivCSS:d.shivCSS!==!1,supportsUnknownElements:k,shivMethods:d.shivMethods!==!1,type:"default",shivDocument:r,createElement:o,createDocumentFragment:p};a.html5=s,r(b)}(this,b),e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.mq=x,e.hasEvent=y,e.testProp=function(a){return F([a])},e.testAllProps=H,e.testStyles=w,e.prefixed=function(a,b,c){return b?H(a,b,c):H(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+t.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f',a,""].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},x=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b)&&c(b).matches||!1;var d;return w("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},y=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=D(e[d],"function"),D(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),z={}.hasOwnProperty,A;!D(z,"undefined")&&!D(z.call,"undefined")?A=function(a,b){return z.call(a,b)}:A=function(a,b){return b in a&&D(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=u.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(u.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(u.call(arguments)))};return e}),q.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:w(["@media (",m.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},q.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},q.cssanimations=function(){return H("animationName")},q.cssreflections=function(){return H("boxReflect")},q.csstransforms=function(){return!!H("transform")},q.csstransforms3d=function(){var a=!!H("perspective");return a&&"webkitPerspective"in g.style&&w("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},q.csstransitions=function(){return H("transition")};for(var I in q)A(q,I)&&(v=I.toLowerCase(),e[v]=q[I](),t.push((e[v]?"":"no-")+v));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)A(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},B(""),i=k=null,function(a,b){function l(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function m(){var a=s.elements;return typeof a=="string"?a.split(" "):a}function n(a){var b=j[a[h]];return b||(b={},i++,a[h]=i,j[i]=b),b}function o(a,c,d){c||(c=b);if(k)return c.createElement(a);d||(d=n(c));var g;return d.cache[a]?g=d.cache[a].cloneNode():f.test(a)?g=(d.cache[a]=d.createElem(a)).cloneNode():g=d.createElem(a),g.canHaveChildren&&!e.test(a)&&!g.tagUrn?d.frag.appendChild(g):g}function p(a,c){a||(a=b);if(k)return a.createDocumentFragment();c=c||n(a);var d=c.frag.cloneNode(),e=0,f=m(),g=f.length;for(;e",g="hidden"in a,k=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){g=!0,k=!0}})();var s={elements:d.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:c,shivCSS:d.shivCSS!==!1,supportsUnknownElements:k,shivMethods:d.shivMethods!==!1,type:"default",shivDocument:r,createElement:o,createDocumentFragment:p};a.html5=s,r(b)}(this,b),e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.mq=x,e.hasEvent=y,e.testProp=function(a){return F([a])},e.testAllProps=H,e.testStyles=w,e.prefixed=function(a,b,c){return b?H(a,b,c):H(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+t.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f - + {% main_nav_js %} {% endcompress %} {% block extra_js %}{% endblock %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/base.html b/wagtail/wagtailadmin/templates/wagtailadmin/base.html index c7a89def7..130fe47d6 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/base.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/base.html @@ -1,10 +1,10 @@ {% extends "wagtailadmin/admin_base.html" %} -{% load wagtailadmin_tags %} +{% load wagtailadmin_tags wagtailcore_tags %} {% load i18n %} {% block furniture %} {% endif %} -
+

{% blocktrans %}Welcome to the {{ site_name }} Wagtail CMS{% endblocktrans %}

{{ user.get_full_name|default:user.username }}

diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/page_privacy/set_privacy.html b/wagtail/wagtailadmin/templates/wagtailadmin/page_privacy/set_privacy.html index 6298d6f5f..263908a26 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/page_privacy/set_privacy.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/page_privacy/set_privacy.html @@ -3,7 +3,7 @@ {% include "wagtailadmin/shared/header.html" with title=title_str icon="locked" %}
-

{% trans "Note: privacy changes apply to all children of this page too." %}

+

{% trans "Privacy changes apply to all children of this page too." %}

{% csrf_token %}
    diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/shared/header.html b/wagtail/wagtailadmin/templates/wagtailadmin/shared/header.html index fa790960d..6d394d499 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/shared/header.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/shared/header.html @@ -6,7 +6,7 @@

    {{ title }} {{ subtitle }}

{% if search_url %} - +
    {% for field in search_form %} {% include "wagtailadmin/shared/field_as_li.html" with field=field field_classes="field-small iconfield" input_classes="icon-search" %} diff --git a/wagtail/wagtailadmin/templatetags/wagtailadmin_tags.py b/wagtail/wagtailadmin/templatetags/wagtailadmin_tags.py index a08211591..da764a0c5 100644 --- a/wagtail/wagtailadmin/templatetags/wagtailadmin_tags.py +++ b/wagtail/wagtailadmin/templatetags/wagtailadmin_tags.py @@ -2,14 +2,12 @@ from __future__ import unicode_literals from django.conf import settings from django import template -from django.core import urlresolvers -from django.utils.translation import ugettext_lazy as _ - -from wagtail.wagtailadmin.menu import MenuItem +from django.forms import Media from wagtail.wagtailcore import hooks from wagtail.wagtailcore.models import get_navigation_menu_items, UserPagePermissionsProxy, PageViewRestriction from wagtail.wagtailcore.utils import camelcase_to_underscore +from wagtail.wagtailadmin.menu import get_master_menu_item_list register = template.Library() @@ -31,12 +29,8 @@ def explorer_subnav(nodes): @register.inclusion_tag('wagtailadmin/shared/main_nav.html', takes_context=True) def main_nav(context): - menu_items = [ - MenuItem(_('Explorer'), urlresolvers.reverse('wagtailadmin_explore_root'), classnames='icon icon-folder-open-inverse dl-trigger', order=100), - MenuItem(_('Search'), urlresolvers.reverse('wagtailadmin_pages_search'), classnames='icon icon-search', order=200), - ] - request = context['request'] + menu_items = [item for item in get_master_menu_item_list() if item.is_shown(request)] for fn in hooks.get_hooks('construct_main_menu'): fn(request, menu_items) @@ -46,6 +40,14 @@ def main_nav(context): 'request': request, } +@register.simple_tag +def main_nav_js(): + media = Media() + for item in get_master_menu_item_list(): + media += item.media + + return media['js'] + @register.filter("ellipsistrim") def ellipsistrim(value, max_length): diff --git a/wagtail/wagtailadmin/templatetags/wagtailuserbar.py b/wagtail/wagtailadmin/templatetags/wagtailuserbar.py index c7861185e..2846d9506 100644 --- a/wagtail/wagtailadmin/templatetags/wagtailuserbar.py +++ b/wagtail/wagtailadmin/templatetags/wagtailuserbar.py @@ -3,8 +3,6 @@ import warnings from django import template from django.template.loader import render_to_string -from wagtail.utils.deprecation import RemovedInWagtail06Warning - from wagtail.wagtailcore.models import Page @@ -12,13 +10,7 @@ register = template.Library() @register.simple_tag(takes_context=True) -def wagtailuserbar(context, css_path=None): - if css_path is not None: - warnings.warn( - "Passing a CSS path to the wagtailuserbar tag is no longer required; use {% wagtailuserbar %} instead", - RemovedInWagtail06Warning - ) - +def wagtailuserbar(context): # Find request object request = context['request'] diff --git a/wagtail/wagtailadmin/tests/test_edit_handlers.py b/wagtail/wagtailadmin/tests/test_edit_handlers.py index 8b499378c..eaedccc2c 100644 --- a/wagtail/wagtailadmin/tests/test_edit_handlers.py +++ b/wagtail/wagtailadmin/tests/test_edit_handlers.py @@ -43,9 +43,6 @@ class TestGetFormForModel(TestCase): class TestExtractPanelDefinitionsFromModelClass(TestCase): - class FakePage(Page): - pass - def test_can_extract_panels(self): mock = MagicMock() mock.panels = 'foo' @@ -58,7 +55,7 @@ class TestExtractPanelDefinitionsFromModelClass(TestCase): self.assertNotEqual(panel.field_name, 'hostname') def test_extracted_objects_are_panels(self): - panels = extract_panel_definitions_from_model_class(self.FakePage) + panels = extract_panel_definitions_from_model_class(Page) for panel in panels: self.assertTrue(issubclass(panel, BaseFieldPanel)) @@ -346,11 +343,27 @@ class TestInlinePanel(TestCase): fake_page = self.FakePage() self.barbecue = fake_page + class FakePanel(object): + name = 'mock panel' + + class FakeChild(object): + def render_js(self): + return "rendered js" + + def rendered_fields(self): + return ["rendered fields"] + + def init(*args, **kwargs): + pass + + def __call__(self, *args, **kwargs): + fake_child = self.FakeChild() + return fake_child + def setUp(self): self.fake_field = self.FakeField() self.fake_instance = self.FakeInstance() - self.mock_panel = MagicMock() - self.mock_panel.name = 'mock panel' + self.mock_panel = self.FakePanel() self.mock_model = MagicMock() self.mock_model.formset.related.model.panels = [self.mock_panel] diff --git a/wagtail/wagtailadmin/tests/test_pages_views.py b/wagtail/wagtailadmin/tests/test_pages_views.py index 765c21786..eb7668a6d 100644 --- a/wagtail/wagtailadmin/tests/test_pages_views.py +++ b/wagtail/wagtailadmin/tests/test_pages_views.py @@ -8,7 +8,11 @@ from django.core import mail from django.core.paginator import Paginator from django.utils import timezone -from wagtail.tests.models import SimplePage, EventPage, EventPageCarouselItem, StandardIndex, BusinessIndex, BusinessChild, BusinessSubIndex, TaggedPage +from wagtail.tests.models import ( + SimplePage, EventPage, EventPageCarouselItem, + StandardIndex, StandardChild, + BusinessIndex, BusinessChild, BusinessSubIndex, + TaggedPage, Advert, AdvertPlacement) from wagtail.tests.utils import unittest, WagtailTestUtils from wagtail.wagtailcore.models import Page, PageRevision from wagtail.wagtailcore.signals import page_published, page_unpublished @@ -1483,11 +1487,14 @@ class TestSubpageBusinessRules(TestCase, WagtailTestUtils): self.assertEqual(response.status_code, 200) self.assertContains(response, add_subpage_url) - # add_subpage should give us the full set of page types to choose + # add_subpage should give us choices of StandardChild, and BusinessIndex. + # BusinessSubIndex and BusinessChild are not allowed response = self.client.get(add_subpage_url) self.assertEqual(response.status_code, 200) - self.assertContains(response, 'Standard Child') - self.assertContains(response, 'Business Child') + self.assertContains(response, StandardChild.get_verbose_name()) + self.assertContains(response, BusinessIndex.get_verbose_name()) + self.assertNotContains(response, BusinessSubIndex.get_verbose_name()) + self.assertNotContains(response, BusinessChild.get_verbose_name()) def test_business_subpage(self): add_subpage_url = reverse('wagtailadmin_pages_add_subpage', args=(self.business_index.id, )) @@ -1500,8 +1507,10 @@ class TestSubpageBusinessRules(TestCase, WagtailTestUtils): # add_subpage should give us a cut-down set of page types to choose response = self.client.get(add_subpage_url) self.assertEqual(response.status_code, 200) - self.assertNotContains(response, 'Standard Child') - self.assertContains(response, 'Business Child') + self.assertNotContains(response, StandardIndex.get_verbose_name()) + self.assertNotContains(response, StandardChild.get_verbose_name()) + self.assertContains(response, BusinessSubIndex.get_verbose_name()) + self.assertContains(response, BusinessChild.get_verbose_name()) def test_business_child_subpage(self): add_subpage_url = reverse('wagtailadmin_pages_add_subpage', args=(self.business_child.id, )) @@ -1516,12 +1525,16 @@ class TestSubpageBusinessRules(TestCase, WagtailTestUtils): self.assertEqual(response.status_code, 403) def test_cannot_add_invalid_subpage_type(self): - # cannot add SimplePage as a child of BusinessIndex, as SimplePage is not present in subpage_types - response = self.client.get(reverse('wagtailadmin_pages_create', args=('tests', 'simplepage', self.business_index.id))) + # cannot add StandardChild as a child of BusinessIndex, as StandardChild is not present in subpage_types + response = self.client.get(reverse('wagtailadmin_pages_create', args=('tests', 'standardchild', self.business_index.id))) self.assertEqual(response.status_code, 403) # likewise for BusinessChild which has an empty subpage_types list - response = self.client.get(reverse('wagtailadmin_pages_create', args=('tests', 'simplepage', self.business_child.id))) + response = self.client.get(reverse('wagtailadmin_pages_create', args=('tests', 'standardchild', self.business_child.id))) + self.assertEqual(response.status_code, 403) + + # cannot add BusinessChild to StandardIndex, as BusinessChild restricts is parent page types + response = self.client.get(reverse('wagtailadmin_pages_create', args=('tests', 'businesschild', self.standard_index.id))) self.assertEqual(response.status_code, 403) # but we can add a BusinessChild to BusinessIndex @@ -1699,3 +1712,91 @@ class TestIssue197(TestCase, WagtailTestUtils): page = TaggedPage.objects.get(id=self.tagged_page.id) self.assertIn('hello', page.tags.slugs()) self.assertIn('world', page.tags.slugs()) + + +class TestChildRelationsOnSuperclass(TestCase, WagtailTestUtils): + # In our test models we define AdvertPlacement as a child relation on the Page model. + # Here we check that this behaves correctly when exposed on the edit form of a Page + # subclass (StandardIndex here). + fixtures = ['test.json'] + + def setUp(self): + # Find root page + self.root_page = Page.objects.get(id=2) + self.test_advert = Advert.objects.get(id=1) + + # Add child page + self.index_page = StandardIndex( + title="My lovely index", + slug="my-lovely-index", + advert_placements=[AdvertPlacement(advert=self.test_advert)] + ) + self.root_page.add_child(instance=self.index_page) + + # Login + self.login() + + def test_get_create_form(self): + response = self.client.get(reverse('wagtailadmin_pages_create', args=('tests', 'standardindex', self.root_page.id))) + self.assertEqual(response.status_code, 200) + # Response should include an advert_placements formset labelled Adverts + self.assertContains(response, "Adverts") + self.assertContains(response, "id_advert_placements-TOTAL_FORMS") + + def test_post_create_form(self): + post_data = { + 'title': "New index!", + 'slug': 'new-index', + 'advert_placements-TOTAL_FORMS': '1', + 'advert_placements-INITIAL_FORMS': '0', + 'advert_placements-MAX_NUM_FORMS': '1000', + 'advert_placements-0-advert': '1', + 'advert_placements-0-colour': 'yellow', + 'advert_placements-0-id': '', + } + response = self.client.post(reverse('wagtailadmin_pages_create', args=('tests', 'standardindex', self.root_page.id)), post_data) + + # Should be redirected to explorer page + self.assertRedirects(response, reverse('wagtailadmin_explore', args=(self.root_page.id, ))) + + # Find the page and check it + page = Page.objects.get(path__startswith=self.root_page.path, slug='new-index').specific + self.assertEqual(page.advert_placements.count(), 1) + self.assertEqual(page.advert_placements.first().advert.text, 'test_advert') + + def test_get_edit_form(self): + response = self.client.get(reverse('wagtailadmin_pages_edit', args=(self.index_page.id, ))) + self.assertEqual(response.status_code, 200) + + # Response should include an advert_placements formset labelled Adverts + self.assertContains(response, "Adverts") + self.assertContains(response, "id_advert_placements-TOTAL_FORMS") + # the formset should be populated with an existing form + self.assertContains(response, "id_advert_placements-0-advert") + self.assertContains(response, '') + + def test_post_edit_form(self): + post_data = { + 'title': "My lovely index", + 'slug': 'my-lovely-index', + 'advert_placements-TOTAL_FORMS': '2', + 'advert_placements-INITIAL_FORMS': '1', + 'advert_placements-MAX_NUM_FORMS': '1000', + 'advert_placements-0-advert': '1', + 'advert_placements-0-colour': 'yellow', + 'advert_placements-0-id': self.index_page.advert_placements.first().id, + 'advert_placements-1-advert': '1', + 'advert_placements-1-colour': 'purple', + 'advert_placements-1-id': '', + 'action-publish': "Publish", + } + response = self.client.post(reverse('wagtailadmin_pages_edit', args=(self.index_page.id, )), post_data) + + # Should be redirected to explorer page + self.assertRedirects(response, reverse('wagtailadmin_explore', args=(self.root_page.id, ))) + + # Find the page and check it + page = Page.objects.get(id=self.index_page.id).specific + self.assertEqual(page.advert_placements.count(), 2) + self.assertEqual(page.advert_placements.all()[0].advert.text, 'test_advert') + self.assertEqual(page.advert_placements.all()[1].advert.text, 'test_advert') diff --git a/wagtail/wagtailadmin/tests/tests.py b/wagtail/wagtailadmin/tests/tests.py index 427fd3279..9c8dc95df 100644 --- a/wagtail/wagtailadmin/tests/tests.py +++ b/wagtail/wagtailadmin/tests/tests.py @@ -16,6 +16,18 @@ class TestHome(TestCase, WagtailTestUtils): response = self.client.get(reverse('wagtailadmin_home')) self.assertEqual(response.status_code, 200) + def test_admin_menu(self): + response = self.client.get(reverse('wagtailadmin_home')) + self.assertEqual(response.status_code, 200) + # check that media attached to menu items is correctly pulled in + self.assertContains(response, '') + # check that custom menu items (including classname / attrs parameters) are pulled in + self.assertContains(response, 'Kittens!') + + # check that is_shown is respected on menu items + response = self.client.get(reverse('wagtailadmin_home') + '?hide-kittens=true') + self.assertNotContains(response, 'Kittens!') + class TestEditorHooks(TestCase, WagtailTestUtils): def setUp(self): diff --git a/wagtail/wagtailadmin/views/chooser.py b/wagtail/wagtailadmin/views/chooser.py index 31cad20db..1a2c9a109 100644 --- a/wagtail/wagtailadmin/views/chooser.py +++ b/wagtail/wagtailadmin/views/chooser.py @@ -3,6 +3,7 @@ from django.shortcuts import get_object_or_404, render from django.http import Http404 from django.utils.http import urlencode from django.contrib.auth.decorators import permission_required +from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from wagtail.wagtailadmin.modal_workflow import render_modal_workflow from wagtail.wagtailadmin.forms import SearchForm, ExternalLinkChooserForm, ExternalLinkChooserWithLinkTextForm, EmailLinkChooserForm, EmailLinkChooserWithLinkTextForm @@ -25,6 +26,7 @@ def browse(request, parent_page_id=None): content_type_app_name, content_type_model_name = page_type.split('.') is_searching = False + page_types_restricted = page_type != 'wagtailcore.page' try: content_type = ContentType.objects.get_by_natural_key(content_type_app_name, content_type_model_name) @@ -66,8 +68,11 @@ def browse(request, parent_page_id=None): return render(request, 'wagtailadmin/chooser/_search_results.html', { 'querystring': get_querystring(request), 'searchform': search_form, - 'pages': pages, - 'is_searching': is_searching + 'pages': shown_pages, + 'is_searching': is_searching, + 'page_type_string': page_type, + 'page_type': desired_class, + 'page_types_restricted': page_types_restricted }) return render_modal_workflow(request, 'wagtailadmin/chooser/browse.html', 'wagtailadmin/chooser/browse.js', { @@ -77,7 +82,10 @@ def browse(request, parent_page_id=None): 'parent_page': parent_page, 'pages': shown_pages, 'search_form': search_form, - 'is_searching': False + 'is_searching': False, + 'page_type_string': page_type, + 'page_type': desired_class, + 'page_types_restricted': page_types_restricted }) diff --git a/wagtail/wagtailadmin/views/pages.py b/wagtail/wagtailadmin/views/pages.py index 3de6f7cb5..53810fa3c 100644 --- a/wagtail/wagtailadmin/views/pages.py +++ b/wagtail/wagtailadmin/views/pages.py @@ -12,8 +12,6 @@ from django.utils.translation import ugettext as _ from django.views.decorators.http import require_GET from django.views.decorators.vary import vary_on_headers -from wagtail.utils.deprecation import RemovedInWagtail06Warning - from wagtail.wagtailadmin.edit_handlers import TabbedInterface, ObjectList from wagtail.wagtailadmin.forms import SearchForm, CopyForm from wagtail.wagtailadmin import tasks, signals @@ -70,7 +68,7 @@ def add_subpage(request, parent_page_id): if not parent_page.permissions_for_user(request.user).can_add_subpage(): raise PermissionDenied - page_types = sorted(parent_page.clean_subpage_types(), key=lambda pagetype: pagetype.name.lower()) + page_types = sorted(parent_page.allowed_subpage_types(), key=lambda pagetype: pagetype.name.lower()) if len(page_types) == 1: # Only one page type is available - redirect straight to the create form rather than @@ -138,7 +136,7 @@ def create(request, content_type_app_name, content_type_model_name, parent_page_ raise Http404 # page must be in the list of allowed subpage types for this parent ID - if content_type not in parent_page.clean_subpage_types(): + if content_type not in parent_page.allowed_subpage_types(): raise PermissionDenied page = page_class(owner=request.user) @@ -427,27 +425,6 @@ def view_draft(request, page_id): return page.serve_preview(page.dummy_request(), page.default_preview_mode) -def get_preview_response(page, preview_mode): - """ - Helper function for preview_on_edit and preview_on_create - - return a page's preview response via either serve_preview or the deprecated - show_as_mode method - """ - # Check the deprecated Page.show_as_mode method, as subclasses of Page - # might be overriding that to return a response - response = page.show_as_mode(preview_mode) - if response: - warnings.warn( - "Defining 'show_as_mode' on a page model is deprecated. Use 'serve_preview' instead", - RemovedInWagtail06Warning - ) - return response - else: - # show_as_mode did not return a response, so go ahead and use the 'proper' - # serve_preview method - return page.serve_preview(page.dummy_request(), preview_mode) - - @permission_required('wagtailadmin.access_admin') def preview_on_edit(request, page_id): # Receive the form submission that would typically be posted to the 'edit' view. If submission is valid, @@ -462,8 +439,7 @@ def preview_on_edit(request, page_id): form.save(commit=False) preview_mode = request.GET.get('mode', page.default_preview_mode) - response = get_preview_response(page, preview_mode) - + response = page.serve_preview(page.dummy_request(), preview_mode) response['X-Wagtail-Preview'] = 'ok' return response @@ -507,8 +483,7 @@ def preview_on_create(request, content_type_app_name, content_type_model_name, p page.path = Page._get_children_path_interval(parent_page.path)[1] preview_mode = request.GET.get('mode', page.default_preview_mode) - response = get_preview_response(page, preview_mode) - + response = page.serve_preview(page.dummy_request(), preview_mode) response['X-Wagtail-Preview'] = 'ok' return response diff --git a/wagtail/wagtailadmin/wagtail_hooks.py b/wagtail/wagtailadmin/wagtail_hooks.py new file mode 100644 index 000000000..879f4c479 --- /dev/null +++ b/wagtail/wagtailadmin/wagtail_hooks.py @@ -0,0 +1,24 @@ +from django.core import urlresolvers +from django.utils.translation import ugettext_lazy as _ + +from wagtail.wagtailcore import hooks +from wagtail.wagtailadmin.menu import MenuItem + + +class ExplorerMenuItem(MenuItem): + class Media: + js = ['wagtailadmin/js/explorer-menu.js'] + +@hooks.register('register_admin_menu_item') +def register_explorer_menu_item(): + return ExplorerMenuItem( + _('Explorer'), urlresolvers.reverse('wagtailadmin_explore_root'), + classnames='icon icon-folder-open-inverse dl-trigger', + attrs={'data-explorer-menu-url': urlresolvers.reverse('wagtailadmin_explorer_nav')}, + order=100) + +@hooks.register('register_admin_menu_item') +def register_search_menu_item(): + return MenuItem( + _('Search'), urlresolvers.reverse('wagtailadmin_pages_search'), + classnames='icon icon-search', order=200) diff --git a/wagtail/wagtailcore/__init__.py b/wagtail/wagtailcore/__init__.py index e69de29bb..c45294088 100644 --- a/wagtail/wagtailcore/__init__.py +++ b/wagtail/wagtailcore/__init__.py @@ -0,0 +1,2 @@ +__version__ = '0.6' +default_app_config = 'wagtail.wagtailcore.apps.WagtailCoreAppConfig' diff --git a/wagtail/wagtailcore/apps.py b/wagtail/wagtailcore/apps.py new file mode 100644 index 000000000..b4ef506dc --- /dev/null +++ b/wagtail/wagtailcore/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class WagtailCoreAppConfig(AppConfig): + name = 'wagtail.wagtailcore' + label = 'wagtailcore' + verbose_name = "Wagtail core" diff --git a/wagtail/wagtailcore/fields.py b/wagtail/wagtailcore/fields.py index 64235a413..a1362b074 100644 --- a/wagtail/wagtailcore/fields.py +++ b/wagtail/wagtailcore/fields.py @@ -1,6 +1,10 @@ +import django from django.db import models from django.forms import Textarea -from south.modelsinspector import add_introspection_rules + +if django.VERSION < (1, 7): + from south.modelsinspector import add_introspection_rules + add_introspection_rules([], ["^wagtail\.wagtailcore\.fields\.RichTextField"]) from wagtail.wagtailcore.rich_text import DbWhitelister, expand_db_html @@ -29,5 +33,3 @@ class RichTextField(models.TextField): defaults = {'widget': RichTextArea} defaults.update(kwargs) return super(RichTextField, self).formfield(**defaults) - -add_introspection_rules([], ["^wagtail\.wagtailcore\.fields\.RichTextField"]) diff --git a/wagtail/wagtailcore/hooks.py b/wagtail/wagtailcore/hooks.py index 958675b97..41955b9d3 100644 --- a/wagtail/wagtailcore/hooks.py +++ b/wagtail/wagtailcore/hooks.py @@ -1,9 +1,5 @@ -from django.conf import settings -try: - from importlib import import_module -except ImportError: - # for Python 2.6, fall back on django.utils.importlib (deprecated as of Django 1.7) - from django.utils.importlib import import_module +from wagtail.utils.apps import get_app_submodules + _hooks = {} @@ -40,12 +36,7 @@ _searched_for_hooks = False def search_for_hooks(): global _searched_for_hooks if not _searched_for_hooks: - for app_module in settings.INSTALLED_APPS: - try: - import_module('%s.wagtail_hooks' % app_module) - except ImportError: - continue - + list(get_app_submodules('wagtail_hooks')) _searched_for_hooks = True diff --git a/wagtail/wagtailcore/locale/bg/LC_MESSAGES/django.mo b/wagtail/wagtailcore/locale/bg/LC_MESSAGES/django.mo index 4b01bf043..c967a6c7c 100644 Binary files a/wagtail/wagtailcore/locale/bg/LC_MESSAGES/django.mo and b/wagtail/wagtailcore/locale/bg/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailcore/locale/bg/LC_MESSAGES/django.po b/wagtail/wagtailcore/locale/bg/LC_MESSAGES/django.po index 3d3cfb9bb..ff1a42d16 100644 --- a/wagtail/wagtailcore/locale/bg/LC_MESSAGES/django.po +++ b/wagtail/wagtailcore/locale/bg/LC_MESSAGES/django.po @@ -1,80 +1,91 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Lyuboslav Petrov , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Bulgarian (http://www.transifex.com/projects/p/wagtail/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/projects/p/wagtail/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: models.py:46 +#: models.py:45 msgid "" "Set this to something other than 80 if you need a specific port number to " "appear in URLs (e.g. development on port 8000). Does not affect request " "handling (so port forwarding still works)." -msgstr "Задайте това като нещо различно от 80, в случай че имате нужда от определен порт да се появи в URL адресите ви (напр. код-разработка на порт 8000). Не се отнася за боравене със заявки (така Port Forwarding ще работи)." +msgstr "" +"Задайте това като нещо различно от 80, в случай че имате нужда от определен " +"порт да се появи в URL адресите ви (напр. код-разработка на порт 8000). Не " +"се отнася за боравене със заявки (така Port Forwarding ще работи)." -#: models.py:48 +#: models.py:47 msgid "" "If true, this site will handle requests for all other hostnames that do not " "have a site entry of their own" -msgstr "Ако е Вярно, този сайт ще борави със заявки за всички останали хостове, които нямат собствен сайт." +msgstr "" +"Ако е Вярно, този сайт ще борави със заявки за всички останали хостове, " +"които нямат собствен сайт." -#: models.py:109 +#: models.py:108 #, python-format msgid "" "%(hostname)s is already configured as the default site. You must unset that " "before you can save this site as default." msgstr "" -#: models.py:277 +#: models.py:251 msgid "The page title as you'd like it to be seen by the public" msgstr "Заглавието на страницата както желаете да се вижда" -#: models.py:278 +#: models.py:252 msgid "" -"The name of the page as it will appear in URLs e.g http://domain.com/blog" -"/[my-slug]/" -msgstr "Името на страницата както ще изглежда в URL-ите. Например http://domain.com/blog/[my-slug]/" +"The name of the page as it will appear in URLs e.g http://domain.com/blog/" +"[my-slug]/" +msgstr "" +"Името на страницата както ще изглежда в URL-ите. Например http://domain.com/" +"blog/[my-slug]/" -#: models.py:287 +#: models.py:261 msgid "Page title" msgstr "Заглавие на Страница" -#: models.py:287 +#: models.py:261 msgid "" -"Optional. 'Search Engine Friendly' title. This will appear at the top of the" -" browser window." -msgstr "Незадължителен. 'Оптимизирано за Търсачки' заглавие. Това ще се появи най-отгоре на браузър прозореца." +"Optional. 'Search Engine Friendly' title. This will appear at the top of the " +"browser window." +msgstr "" +"Незадължителен. 'Оптимизирано за Търсачки' заглавие. Това ще се появи най-" +"отгоре на браузър прозореца." -#: models.py:288 +#: models.py:262 msgid "" "Whether a link to this page will appear in automatically generated menus" -msgstr "Дали линк към тази страница ще се появи в автоматично генерираните менюта" +msgstr "" +"Дали линк към тази страница ще се появи в автоматично генерираните менюта" -#: models.py:291 +#: models.py:265 msgid "Go live date/time" msgstr "" -#: models.py:291 models.py:292 +#: models.py:265 models.py:266 msgid "Please add a date-time in the form YYYY-MM-DD hh:mm:ss." msgstr "" -#: models.py:292 +#: models.py:266 msgid "Expiry date/time" msgstr "" -#: models.py:564 +#: models.py:530 msgid "name '{0}' (used in subpage_types list) is not defined." msgstr "" diff --git a/wagtail/wagtailcore/locale/ca/LC_MESSAGES/django.mo b/wagtail/wagtailcore/locale/ca/LC_MESSAGES/django.mo index 7ed9969c9..c24326066 100644 Binary files a/wagtail/wagtailcore/locale/ca/LC_MESSAGES/django.mo and b/wagtail/wagtailcore/locale/ca/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailcore/locale/ca/LC_MESSAGES/django.po b/wagtail/wagtailcore/locale/ca/LC_MESSAGES/django.po index aa3525fd6..366d34115 100644 --- a/wagtail/wagtailcore/locale/ca/LC_MESSAGES/django.po +++ b/wagtail/wagtailcore/locale/ca/LC_MESSAGES/django.po @@ -1,80 +1,91 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # David Llop , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Catalan (http://www.transifex.com/projects/p/wagtail/language/ca/)\n" +"Language-Team: Catalan (http://www.transifex.com/projects/p/wagtail/language/" +"ca/)\n" +"Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: models.py:46 +#: models.py:45 msgid "" "Set this to something other than 80 if you need a specific port number to " "appear in URLs (e.g. development on port 8000). Does not affect request " "handling (so port forwarding still works)." -msgstr "Canvia això per un número diferent de 80 si necessites que aparegui un port específic en les URLs (per ex: port de desenvolupament al 8000). No afecta a la petició actual (el port de reenviament encara funciona)." +msgstr "" +"Canvia això per un número diferent de 80 si necessites que aparegui un port " +"específic en les URLs (per ex: port de desenvolupament al 8000). No afecta a " +"la petició actual (el port de reenviament encara funciona)." -#: models.py:48 +#: models.py:47 msgid "" "If true, this site will handle requests for all other hostnames that do not " "have a site entry of their own" -msgstr "Si és cert, aquest lloc s'encarregarà de les peticions de totes les altres màquines que no tenen un lloc establert." +msgstr "" +"Si és cert, aquest lloc s'encarregarà de les peticions de totes les altres " +"màquines que no tenen un lloc establert." -#: models.py:109 +#: models.py:108 #, python-format msgid "" "%(hostname)s is already configured as the default site. You must unset that " "before you can save this site as default." msgstr "" -#: models.py:277 +#: models.py:251 msgid "The page title as you'd like it to be seen by the public" msgstr "El títol de la pàgina que vols que sigui vist pel públic" -#: models.py:278 +#: models.py:252 msgid "" -"The name of the page as it will appear in URLs e.g http://domain.com/blog" -"/[my-slug]/" -msgstr "El nom de la pàgina que apareixerà en la URL. Per exemple: http://domini.com/blog/[nom]/" +"The name of the page as it will appear in URLs e.g http://domain.com/blog/" +"[my-slug]/" +msgstr "" +"El nom de la pàgina que apareixerà en la URL. Per exemple: http://domini.com/" +"blog/[nom]/" -#: models.py:287 +#: models.py:261 msgid "Page title" msgstr "Títol de la pàgina" -#: models.py:287 +#: models.py:261 msgid "" -"Optional. 'Search Engine Friendly' title. This will appear at the top of the" -" browser window." -msgstr "Opcional. Títol de 'Motor de cerca amigable'. Això apareixerà al cap damunt de la finetra del navegador" +"Optional. 'Search Engine Friendly' title. This will appear at the top of the " +"browser window." +msgstr "" +"Opcional. Títol de 'Motor de cerca amigable'. Això apareixerà al cap damunt " +"de la finetra del navegador" -#: models.py:288 +#: models.py:262 msgid "" "Whether a link to this page will appear in automatically generated menus" -msgstr "Si s'enllaça cap aquesta pàgina apareixerà automàticament als menús generats" +msgstr "" +"Si s'enllaça cap aquesta pàgina apareixerà automàticament als menús generats" -#: models.py:291 +#: models.py:265 msgid "Go live date/time" msgstr "" -#: models.py:291 models.py:292 +#: models.py:265 models.py:266 msgid "Please add a date-time in the form YYYY-MM-DD hh:mm:ss." msgstr "" -#: models.py:292 +#: models.py:266 msgid "Expiry date/time" msgstr "" -#: models.py:564 +#: models.py:530 msgid "name '{0}' (used in subpage_types list) is not defined." msgstr "" diff --git a/wagtail/wagtailcore/locale/de/LC_MESSAGES/django.mo b/wagtail/wagtailcore/locale/de/LC_MESSAGES/django.mo index d31c17891..fa708f078 100644 Binary files a/wagtail/wagtailcore/locale/de/LC_MESSAGES/django.mo and b/wagtail/wagtailcore/locale/de/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailcore/locale/de/LC_MESSAGES/django.po b/wagtail/wagtailcore/locale/de/LC_MESSAGES/django.po index 543a13b5b..f16ce33a3 100644 --- a/wagtail/wagtailcore/locale/de/LC_MESSAGES/django.po +++ b/wagtail/wagtailcore/locale/de/LC_MESSAGES/django.po @@ -1,80 +1,91 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Johannes Spielmann , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: German (http://www.transifex.com/projects/p/wagtail/language/de/)\n" +"Language-Team: German (http://www.transifex.com/projects/p/wagtail/language/" +"de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: models.py:46 +#: models.py:45 msgid "" "Set this to something other than 80 if you need a specific port number to " "appear in URLs (e.g. development on port 8000). Does not affect request " "handling (so port forwarding still works)." -msgstr "Geben Sie hier einen anderen Wert als 80 ein, wenn dieser in URLs auftauchen soll (z.B. Development Port auf 8000). Dies bezieht sich nicht auf Request Handling, so dass Port Forwarding weiterhin funktioniert." +msgstr "" +"Geben Sie hier einen anderen Wert als 80 ein, wenn dieser in URLs auftauchen " +"soll (z.B. Development Port auf 8000). Dies bezieht sich nicht auf Request " +"Handling, so dass Port Forwarding weiterhin funktioniert." -#: models.py:48 +#: models.py:47 msgid "" "If true, this site will handle requests for all other hostnames that do not " "have a site entry of their own" -msgstr "Falls ausgewählt wird diese Seite Anfragen für alle Hostnamen annehmen, die keinen eigenen Seiteneintrag haben." +msgstr "" +"Falls ausgewählt wird diese Seite Anfragen für alle Hostnamen annehmen, die " +"keinen eigenen Seiteneintrag haben." -#: models.py:109 +#: models.py:108 #, python-format msgid "" "%(hostname)s is already configured as the default site. You must unset that " "before you can save this site as default." msgstr "" -#: models.py:277 +#: models.py:251 msgid "The page title as you'd like it to be seen by the public" msgstr "Der Seitentitel, der öffentlich angezeigt werden soll" -#: models.py:278 +#: models.py:252 msgid "" -"The name of the page as it will appear in URLs e.g http://domain.com/blog" -"/[my-slug]/" -msgstr "Der Name der Seite, wie er in URLs angezeigt werden soll, z.B. http://domain.com/blog/[my-slug]/" +"The name of the page as it will appear in URLs e.g http://domain.com/blog/" +"[my-slug]/" +msgstr "" +"Der Name der Seite, wie er in URLs angezeigt werden soll, z.B. http://domain." +"com/blog/[my-slug]/" -#: models.py:287 +#: models.py:261 msgid "Page title" msgstr "Seitentitel" -#: models.py:287 +#: models.py:261 msgid "" -"Optional. 'Search Engine Friendly' title. This will appear at the top of the" -" browser window." -msgstr "Optional. Suchmaschinenfreundlicher Titel. Wird in der Titelleiste des Browsers angezeigt." +"Optional. 'Search Engine Friendly' title. This will appear at the top of the " +"browser window." +msgstr "" +"Optional. Suchmaschinenfreundlicher Titel. Wird in der Titelleiste des " +"Browsers angezeigt." -#: models.py:288 +#: models.py:262 msgid "" "Whether a link to this page will appear in automatically generated menus" -msgstr "Ob ein Link zu dieser Seite in automatisch generierten Menüs auftaucht." +msgstr "" +"Ob ein Link zu dieser Seite in automatisch generierten Menüs auftaucht." -#: models.py:291 +#: models.py:265 msgid "Go live date/time" msgstr "" -#: models.py:291 models.py:292 +#: models.py:265 models.py:266 msgid "Please add a date-time in the form YYYY-MM-DD hh:mm:ss." msgstr "" -#: models.py:292 +#: models.py:266 msgid "Expiry date/time" msgstr "" -#: models.py:564 +#: models.py:530 msgid "name '{0}' (used in subpage_types list) is not defined." msgstr "" diff --git a/wagtail/wagtailcore/locale/el/LC_MESSAGES/django.mo b/wagtail/wagtailcore/locale/el/LC_MESSAGES/django.mo index 100a28cc1..1523b6060 100644 Binary files a/wagtail/wagtailcore/locale/el/LC_MESSAGES/django.mo and b/wagtail/wagtailcore/locale/el/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailcore/locale/el/LC_MESSAGES/django.po b/wagtail/wagtailcore/locale/el/LC_MESSAGES/django.po index bed0ba05d..810e0571a 100644 --- a/wagtail/wagtailcore/locale/el/LC_MESSAGES/django.po +++ b/wagtail/wagtailcore/locale/el/LC_MESSAGES/django.po @@ -1,80 +1,93 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # serafeim , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Greek (http://www.transifex.com/projects/p/wagtail/language/el/)\n" +"Language-Team: Greek (http://www.transifex.com/projects/p/wagtail/language/" +"el/)\n" +"Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: models.py:46 +#: models.py:45 msgid "" "Set this to something other than 80 if you need a specific port number to " "appear in URLs (e.g. development on port 8000). Does not affect request " "handling (so port forwarding still works)." -msgstr "Μπορείτε να χρησιμοποιήσετε κάτι διαφορετικό από το 80 αν θέλετε να εμφανίζεται στις διευθύνσεις μια συγκεκριμένη θύρα (π.χ. ανάπτυξη στη θύρα 8000). Δεν επηρεάζει τον τρόπο που χειρίζονται τις αιτήσεις (οπότε η προώθηση θύρας δουλεύει ακόμα)" +msgstr "" +"Μπορείτε να χρησιμοποιήσετε κάτι διαφορετικό από το 80 αν θέλετε να " +"εμφανίζεται στις διευθύνσεις μια συγκεκριμένη θύρα (π.χ. ανάπτυξη στη θύρα " +"8000). Δεν επηρεάζει τον τρόπο που χειρίζονται τις αιτήσεις (οπότε η " +"προώθηση θύρας δουλεύει ακόμα)" -#: models.py:48 +#: models.py:47 msgid "" "If true, this site will handle requests for all other hostnames that do not " "have a site entry of their own" -msgstr "Αν είναι αληθές, το εν λόγω site θα χειρίζεται και τις αιτήσεις για όλα τα άλλα ονόματα που δεν έχουν δική τους εγγραφή" +msgstr "" +"Αν είναι αληθές, το εν λόγω site θα χειρίζεται και τις αιτήσεις για όλα τα " +"άλλα ονόματα που δεν έχουν δική τους εγγραφή" -#: models.py:109 +#: models.py:108 #, python-format msgid "" "%(hostname)s is already configured as the default site. You must unset that " "before you can save this site as default." msgstr "" -#: models.py:277 +#: models.py:251 msgid "The page title as you'd like it to be seen by the public" msgstr "Ο τίτλος της σελίδας έτσι όπως θα εμφανίζεται στο κοινό" -#: models.py:278 +#: models.py:252 msgid "" -"The name of the page as it will appear in URLs e.g http://domain.com/blog" -"/[my-slug]/" -msgstr "Το όνομα της σελίδας έτσι όπως θα εμφανίζεται στις διευθύνσεις, π.χ http://domain.com/blog/[my-slug]/" +"The name of the page as it will appear in URLs e.g http://domain.com/blog/" +"[my-slug]/" +msgstr "" +"Το όνομα της σελίδας έτσι όπως θα εμφανίζεται στις διευθύνσεις, π.χ http://" +"domain.com/blog/[my-slug]/" -#: models.py:287 +#: models.py:261 msgid "Page title" msgstr "Τίτλος σελίδας" -#: models.py:287 +#: models.py:261 msgid "" -"Optional. 'Search Engine Friendly' title. This will appear at the top of the" -" browser window." -msgstr "Προαιρετικό. Τίτλος που είναι 'φιλικός προς τις μηχανές αναζήτησης'. Θα εμφανιστεί στην κορυφή του παραθύρου." +"Optional. 'Search Engine Friendly' title. This will appear at the top of the " +"browser window." +msgstr "" +"Προαιρετικό. Τίτλος που είναι 'φιλικός προς τις μηχανές αναζήτησης'. Θα " +"εμφανιστεί στην κορυφή του παραθύρου." -#: models.py:288 +#: models.py:262 msgid "" "Whether a link to this page will appear in automatically generated menus" -msgstr "Επιλέξτε αν μια σύνδεση σε αυτή τη σελίδα θα εμφανιστεί στα μενού που δημιουργούνται αυτόματα" +msgstr "" +"Επιλέξτε αν μια σύνδεση σε αυτή τη σελίδα θα εμφανιστεί στα μενού που " +"δημιουργούνται αυτόματα" -#: models.py:291 +#: models.py:265 msgid "Go live date/time" msgstr "" -#: models.py:291 models.py:292 +#: models.py:265 models.py:266 msgid "Please add a date-time in the form YYYY-MM-DD hh:mm:ss." msgstr "" -#: models.py:292 +#: models.py:266 msgid "Expiry date/time" msgstr "" -#: models.py:564 +#: models.py:530 msgid "name '{0}' (used in subpage_types list) is not defined." msgstr "" diff --git a/wagtail/wagtailcore/locale/en/LC_MESSAGES/django.mo b/wagtail/wagtailcore/locale/en/LC_MESSAGES/django.mo index 3b83aafe9..9bc4992d4 100644 Binary files a/wagtail/wagtailcore/locale/en/LC_MESSAGES/django.mo and b/wagtail/wagtailcore/locale/en/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailcore/locale/en/LC_MESSAGES/django.po b/wagtail/wagtailcore/locale/en/LC_MESSAGES/django.po index c4bf27524..f6691b866 100644 --- a/wagtail/wagtailcore/locale/en/LC_MESSAGES/django.po +++ b/wagtail/wagtailcore/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,63 +17,63 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: models.py:46 +#: models.py:45 msgid "" "Set this to something other than 80 if you need a specific port number to " "appear in URLs (e.g. development on port 8000). Does not affect request " "handling (so port forwarding still works)." msgstr "" -#: models.py:48 +#: models.py:47 msgid "" "If true, this site will handle requests for all other hostnames that do not " "have a site entry of their own" msgstr "" -#: models.py:109 +#: models.py:108 #, python-format msgid "" "%(hostname)s is already configured as the default site. You must unset that " "before you can save this site as default." msgstr "" -#: models.py:277 +#: models.py:251 msgid "The page title as you'd like it to be seen by the public" msgstr "" -#: models.py:278 +#: models.py:252 msgid "" "The name of the page as it will appear in URLs e.g http://domain.com/blog/" "[my-slug]/" msgstr "" -#: models.py:287 +#: models.py:261 msgid "Page title" msgstr "" -#: models.py:287 +#: models.py:261 msgid "" "Optional. 'Search Engine Friendly' title. This will appear at the top of the " "browser window." msgstr "" -#: models.py:288 +#: models.py:262 msgid "" "Whether a link to this page will appear in automatically generated menus" msgstr "" -#: models.py:291 +#: models.py:265 msgid "Go live date/time" msgstr "" -#: models.py:291 models.py:292 +#: models.py:265 models.py:266 msgid "Please add a date-time in the form YYYY-MM-DD hh:mm:ss." msgstr "" -#: models.py:292 +#: models.py:266 msgid "Expiry date/time" msgstr "" -#: models.py:564 +#: models.py:530 msgid "name '{0}' (used in subpage_types list) is not defined." msgstr "" diff --git a/wagtail/wagtailcore/locale/es/LC_MESSAGES/django.mo b/wagtail/wagtailcore/locale/es/LC_MESSAGES/django.mo index 9ab7329f7..6b8fcd0c5 100644 Binary files a/wagtail/wagtailcore/locale/es/LC_MESSAGES/django.mo and b/wagtail/wagtailcore/locale/es/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailcore/locale/es/LC_MESSAGES/django.po b/wagtail/wagtailcore/locale/es/LC_MESSAGES/django.po index 05bc60286..6544cf298 100644 --- a/wagtail/wagtailcore/locale/es/LC_MESSAGES/django.po +++ b/wagtail/wagtailcore/locale/es/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # fooflare , 2014 # fooflare , 2014 @@ -12,73 +12,83 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/wagtail/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/projects/p/wagtail/language/" +"es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: models.py:46 +#: models.py:45 msgid "" "Set this to something other than 80 if you need a specific port number to " "appear in URLs (e.g. development on port 8000). Does not affect request " "handling (so port forwarding still works)." -msgstr "Cambia esto a algo que no sea 80 si necesitas que un puerto específico aparezca en las URLs (p.e. desarrollo en el puerto 8000). Esto no afecta al manejo de solicitudes (así que la redirección de puertos sigue funcionando)." +msgstr "" +"Cambia esto a algo que no sea 80 si necesitas que un puerto específico " +"aparezca en las URLs (p.e. desarrollo en el puerto 8000). Esto no afecta al " +"manejo de solicitudes (así que la redirección de puertos sigue funcionando)." -#: models.py:48 +#: models.py:47 msgid "" "If true, this site will handle requests for all other hostnames that do not " "have a site entry of their own" -msgstr "Si afirmativo, este sitio manejará solicitudes para todos los demás hostnames que no tengan un site por sí mismos" +msgstr "" +"Si afirmativo, este sitio manejará solicitudes para todos los demás " +"hostnames que no tengan un site por sí mismos" -#: models.py:109 +#: models.py:108 #, python-format msgid "" "%(hostname)s is already configured as the default site. You must unset that " "before you can save this site as default." msgstr "" -#: models.py:277 +#: models.py:251 msgid "The page title as you'd like it to be seen by the public" msgstr "El título de la página como quieres que sea visto por el público" -#: models.py:278 +#: models.py:252 msgid "" -"The name of the page as it will appear in URLs e.g http://domain.com/blog" -"/[my-slug]/" -msgstr "El nombre de la página tal como aparecerá en URLs p.ej. http://domain.com/blog/[my-slug]/" +"The name of the page as it will appear in URLs e.g http://domain.com/blog/" +"[my-slug]/" +msgstr "" +"El nombre de la página tal como aparecerá en URLs p.ej. http://domain.com/" +"blog/[my-slug]/" -#: models.py:287 +#: models.py:261 msgid "Page title" msgstr "Título de la página" -#: models.py:287 +#: models.py:261 msgid "" -"Optional. 'Search Engine Friendly' title. This will appear at the top of the" -" browser window." -msgstr "Opcional. Título 'Amigable para el Motor de Búsqueda'. Aparecerá en la parte superior de la ventana del navegador." +"Optional. 'Search Engine Friendly' title. This will appear at the top of the " +"browser window." +msgstr "" +"Opcional. Título 'Amigable para el Motor de Búsqueda'. Aparecerá en la parte " +"superior de la ventana del navegador." -#: models.py:288 +#: models.py:262 msgid "" "Whether a link to this page will appear in automatically generated menus" msgstr "Un enlace a esta página aparecerá en menús generados automáticamente" -#: models.py:291 +#: models.py:265 msgid "Go live date/time" msgstr "" -#: models.py:291 models.py:292 +#: models.py:265 models.py:266 msgid "Please add a date-time in the form YYYY-MM-DD hh:mm:ss." msgstr "" -#: models.py:292 +#: models.py:266 msgid "Expiry date/time" msgstr "" -#: models.py:564 +#: models.py:530 msgid "name '{0}' (used in subpage_types list) is not defined." msgstr "" diff --git a/wagtail/wagtailcore/locale/eu/LC_MESSAGES/django.mo b/wagtail/wagtailcore/locale/eu/LC_MESSAGES/django.mo index 972e8348c..307b70c3b 100644 Binary files a/wagtail/wagtailcore/locale/eu/LC_MESSAGES/django.mo and b/wagtail/wagtailcore/locale/eu/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailcore/locale/eu/LC_MESSAGES/django.po b/wagtail/wagtailcore/locale/eu/LC_MESSAGES/django.po index cbe69e338..1379abf17 100644 --- a/wagtail/wagtailcore/locale/eu/LC_MESSAGES/django.po +++ b/wagtail/wagtailcore/locale/eu/LC_MESSAGES/django.po @@ -1,79 +1,80 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Basque (http://www.transifex.com/projects/p/wagtail/language/eu/)\n" +"Language-Team: Basque (http://www.transifex.com/projects/p/wagtail/language/" +"eu/)\n" +"Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: models.py:46 +#: models.py:45 msgid "" "Set this to something other than 80 if you need a specific port number to " "appear in URLs (e.g. development on port 8000). Does not affect request " "handling (so port forwarding still works)." msgstr "" -#: models.py:48 +#: models.py:47 msgid "" "If true, this site will handle requests for all other hostnames that do not " "have a site entry of their own" msgstr "" -#: models.py:109 +#: models.py:108 #, python-format msgid "" "%(hostname)s is already configured as the default site. You must unset that " "before you can save this site as default." msgstr "" -#: models.py:277 +#: models.py:251 msgid "The page title as you'd like it to be seen by the public" msgstr "" -#: models.py:278 +#: models.py:252 msgid "" -"The name of the page as it will appear in URLs e.g http://domain.com/blog" -"/[my-slug]/" +"The name of the page as it will appear in URLs e.g http://domain.com/blog/" +"[my-slug]/" msgstr "" -#: models.py:287 +#: models.py:261 msgid "Page title" msgstr "" -#: models.py:287 +#: models.py:261 msgid "" -"Optional. 'Search Engine Friendly' title. This will appear at the top of the" -" browser window." +"Optional. 'Search Engine Friendly' title. This will appear at the top of the " +"browser window." msgstr "" -#: models.py:288 +#: models.py:262 msgid "" "Whether a link to this page will appear in automatically generated menus" msgstr "" -#: models.py:291 +#: models.py:265 msgid "Go live date/time" msgstr "" -#: models.py:291 models.py:292 +#: models.py:265 models.py:266 msgid "Please add a date-time in the form YYYY-MM-DD hh:mm:ss." msgstr "" -#: models.py:292 +#: models.py:266 msgid "Expiry date/time" msgstr "" -#: models.py:564 +#: models.py:530 msgid "name '{0}' (used in subpage_types list) is not defined." msgstr "" diff --git a/wagtail/wagtailcore/locale/fr/LC_MESSAGES/django.mo b/wagtail/wagtailcore/locale/fr/LC_MESSAGES/django.mo index 0ceed37cd..d14efd8ec 100644 Binary files a/wagtail/wagtailcore/locale/fr/LC_MESSAGES/django.mo and b/wagtail/wagtailcore/locale/fr/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailcore/locale/fr/LC_MESSAGES/django.po b/wagtail/wagtailcore/locale/fr/LC_MESSAGES/django.po index cc75fb902..7a089f274 100644 --- a/wagtail/wagtailcore/locale/fr/LC_MESSAGES/django.po +++ b/wagtail/wagtailcore/locale/fr/LC_MESSAGES/django.po @@ -1,80 +1,89 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # nahuel, 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: French (http://www.transifex.com/projects/p/wagtail/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/projects/p/wagtail/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: models.py:46 +#: models.py:45 msgid "" "Set this to something other than 80 if you need a specific port number to " "appear in URLs (e.g. development on port 8000). Does not affect request " "handling (so port forwarding still works)." -msgstr "Définissez cette valeur à autre chose que 80 si vous avez besoin qu'un port spécifique apparaisse dans les URLs (e.g. développement sur le port 8000). Ceci n'affecte pas la prise en charge des requêtes (les redirections de port continuent de fonctionner)." +msgstr "" +"Définissez cette valeur à autre chose que 80 si vous avez besoin qu'un port " +"spécifique apparaisse dans les URLs (e.g. développement sur le port 8000). " +"Ceci n'affecte pas la prise en charge des requêtes (les redirections de port " +"continuent de fonctionner)." -#: models.py:48 +#: models.py:47 msgid "" "If true, this site will handle requests for all other hostnames that do not " "have a site entry of their own" msgstr "" -#: models.py:109 +#: models.py:108 #, python-format msgid "" "%(hostname)s is already configured as the default site. You must unset that " "before you can save this site as default." msgstr "" -#: models.py:277 +#: models.py:251 msgid "The page title as you'd like it to be seen by the public" msgstr "Le titre de la page comme vous souhaiteriez que les lecteurs la voient" -#: models.py:278 +#: models.py:252 msgid "" -"The name of the page as it will appear in URLs e.g http://domain.com/blog" -"/[my-slug]/" -msgstr "Le nom de la page comme elle apparaîtra dans l'URL e.g http://domain.com/blog/[my-slug]/" +"The name of the page as it will appear in URLs e.g http://domain.com/blog/" +"[my-slug]/" +msgstr "" +"Le nom de la page comme elle apparaîtra dans l'URL e.g http://domain.com/" +"blog/[my-slug]/" -#: models.py:287 +#: models.py:261 msgid "Page title" msgstr "Titre de la page" -#: models.py:287 +#: models.py:261 msgid "" -"Optional. 'Search Engine Friendly' title. This will appear at the top of the" -" browser window." +"Optional. 'Search Engine Friendly' title. This will appear at the top of the " +"browser window." msgstr "" -#: models.py:288 +#: models.py:262 msgid "" "Whether a link to this page will appear in automatically generated menus" -msgstr "Si un lien vers cette page devra apparaître dans les menus générés automatiquement" +msgstr "" +"Si un lien vers cette page devra apparaître dans les menus générés " +"automatiquement" -#: models.py:291 +#: models.py:265 msgid "Go live date/time" msgstr "" -#: models.py:291 models.py:292 +#: models.py:265 models.py:266 msgid "Please add a date-time in the form YYYY-MM-DD hh:mm:ss." msgstr "" -#: models.py:292 +#: models.py:266 msgid "Expiry date/time" msgstr "" -#: models.py:564 +#: models.py:530 msgid "name '{0}' (used in subpage_types list) is not defined." msgstr "" diff --git a/wagtail/wagtailcore/locale/gl/LC_MESSAGES/django.mo b/wagtail/wagtailcore/locale/gl/LC_MESSAGES/django.mo index d9f4d84ce..3312fae17 100644 Binary files a/wagtail/wagtailcore/locale/gl/LC_MESSAGES/django.mo and b/wagtail/wagtailcore/locale/gl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailcore/locale/gl/LC_MESSAGES/django.po b/wagtail/wagtailcore/locale/gl/LC_MESSAGES/django.po index 4201d9b9e..10ba92d15 100644 --- a/wagtail/wagtailcore/locale/gl/LC_MESSAGES/django.po +++ b/wagtail/wagtailcore/locale/gl/LC_MESSAGES/django.po @@ -1,80 +1,90 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # fooflare , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Galician (http://www.transifex.com/projects/p/wagtail/language/gl/)\n" +"Language-Team: Galician (http://www.transifex.com/projects/p/wagtail/" +"language/gl/)\n" +"Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: models.py:46 +#: models.py:45 msgid "" "Set this to something other than 80 if you need a specific port number to " "appear in URLs (e.g. development on port 8000). Does not affect request " "handling (so port forwarding still works)." -msgstr "Cambia isto a algo que non sexa o 80 se necesitas que un porto específico apareza nas URLs (p.e. desenvolvemento no porto 8000). Isto non afecta ao manexo de solicitudes (así que a redirección de portos segue funcionando)." +msgstr "" +"Cambia isto a algo que non sexa o 80 se necesitas que un porto específico " +"apareza nas URLs (p.e. desenvolvemento no porto 8000). Isto non afecta ao " +"manexo de solicitudes (así que a redirección de portos segue funcionando)." -#: models.py:48 +#: models.py:47 msgid "" "If true, this site will handle requests for all other hostnames that do not " "have a site entry of their own" -msgstr "Se é afirmativo, este sitio manexará solicitudes para todos os demais nomes de host que non teñan unha entrada por si mesmos" +msgstr "" +"Se é afirmativo, este sitio manexará solicitudes para todos os demais nomes " +"de host que non teñan unha entrada por si mesmos" -#: models.py:109 +#: models.py:108 #, python-format msgid "" "%(hostname)s is already configured as the default site. You must unset that " "before you can save this site as default." msgstr "" -#: models.py:277 +#: models.py:251 msgid "The page title as you'd like it to be seen by the public" msgstr "O título da páxina como queres que sexa visto polo público" -#: models.py:278 +#: models.py:252 msgid "" -"The name of the page as it will appear in URLs e.g http://domain.com/blog" -"/[my-slug]/" -msgstr "O nome da páxina tal como aparecerá nas URLs p.ex. http://domain.com/blog/[my-slug]/" +"The name of the page as it will appear in URLs e.g http://domain.com/blog/" +"[my-slug]/" +msgstr "" +"O nome da páxina tal como aparecerá nas URLs p.ex. http://domain.com/blog/" +"[my-slug]/" -#: models.py:287 +#: models.py:261 msgid "Page title" msgstr "Título da páxina" -#: models.py:287 +#: models.py:261 msgid "" -"Optional. 'Search Engine Friendly' title. This will appear at the top of the" -" browser window." -msgstr "Opcional. Título 'Amigable para o Motor de Busca'. Aparecerá na parte superior da ventá do navegador." +"Optional. 'Search Engine Friendly' title. This will appear at the top of the " +"browser window." +msgstr "" +"Opcional. Título 'Amigable para o Motor de Busca'. Aparecerá na parte " +"superior da ventá do navegador." -#: models.py:288 +#: models.py:262 msgid "" "Whether a link to this page will appear in automatically generated menus" msgstr "Un enlace a esta página aparecerá en menús xerados automáticamente" -#: models.py:291 +#: models.py:265 msgid "Go live date/time" msgstr "" -#: models.py:291 models.py:292 +#: models.py:265 models.py:266 msgid "Please add a date-time in the form YYYY-MM-DD hh:mm:ss." msgstr "" -#: models.py:292 +#: models.py:266 msgid "Expiry date/time" msgstr "" -#: models.py:564 +#: models.py:530 msgid "name '{0}' (used in subpage_types list) is not defined." msgstr "" diff --git a/wagtail/wagtailcore/locale/mn/LC_MESSAGES/django.mo b/wagtail/wagtailcore/locale/mn/LC_MESSAGES/django.mo index 7290e12fb..9deba4c1f 100644 Binary files a/wagtail/wagtailcore/locale/mn/LC_MESSAGES/django.mo and b/wagtail/wagtailcore/locale/mn/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailcore/locale/mn/LC_MESSAGES/django.po b/wagtail/wagtailcore/locale/mn/LC_MESSAGES/django.po index 064a1dabb..9c3137352 100644 --- a/wagtail/wagtailcore/locale/mn/LC_MESSAGES/django.po +++ b/wagtail/wagtailcore/locale/mn/LC_MESSAGES/django.po @@ -1,80 +1,81 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Delgermurun Purevkhuuu , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Mongolian (http://www.transifex.com/projects/p/wagtail/language/mn/)\n" +"Language-Team: Mongolian (http://www.transifex.com/projects/p/wagtail/" +"language/mn/)\n" +"Language: mn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: mn\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: models.py:46 +#: models.py:45 msgid "" "Set this to something other than 80 if you need a specific port number to " "appear in URLs (e.g. development on port 8000). Does not affect request " "handling (so port forwarding still works)." msgstr "" -#: models.py:48 +#: models.py:47 msgid "" "If true, this site will handle requests for all other hostnames that do not " "have a site entry of their own" msgstr "" -#: models.py:109 +#: models.py:108 #, python-format msgid "" "%(hostname)s is already configured as the default site. You must unset that " "before you can save this site as default." msgstr "" -#: models.py:277 +#: models.py:251 msgid "The page title as you'd like it to be seen by the public" msgstr "" -#: models.py:278 +#: models.py:252 msgid "" -"The name of the page as it will appear in URLs e.g http://domain.com/blog" -"/[my-slug]/" +"The name of the page as it will appear in URLs e.g http://domain.com/blog/" +"[my-slug]/" msgstr "" -#: models.py:287 +#: models.py:261 msgid "Page title" msgstr "Хуудасны гарчиг" -#: models.py:287 +#: models.py:261 msgid "" -"Optional. 'Search Engine Friendly' title. This will appear at the top of the" -" browser window." +"Optional. 'Search Engine Friendly' title. This will appear at the top of the " +"browser window." msgstr "" -#: models.py:288 +#: models.py:262 msgid "" "Whether a link to this page will appear in automatically generated menus" msgstr "" -#: models.py:291 +#: models.py:265 msgid "Go live date/time" msgstr "" -#: models.py:291 models.py:292 +#: models.py:265 models.py:266 msgid "Please add a date-time in the form YYYY-MM-DD hh:mm:ss." msgstr "" -#: models.py:292 +#: models.py:266 msgid "Expiry date/time" msgstr "" -#: models.py:564 +#: models.py:530 msgid "name '{0}' (used in subpage_types list) is not defined." msgstr "" diff --git a/wagtail/wagtailcore/locale/pl/LC_MESSAGES/django.mo b/wagtail/wagtailcore/locale/pl/LC_MESSAGES/django.mo index 60c93acf4..e07533f0a 100644 Binary files a/wagtail/wagtailcore/locale/pl/LC_MESSAGES/django.mo and b/wagtail/wagtailcore/locale/pl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailcore/locale/pl/LC_MESSAGES/django.po b/wagtail/wagtailcore/locale/pl/LC_MESSAGES/django.po index d0a696b89..ef130db6b 100644 --- a/wagtail/wagtailcore/locale/pl/LC_MESSAGES/django.po +++ b/wagtail/wagtailcore/locale/pl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # utek , 2014 # utek , 2014 @@ -9,73 +9,85 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Polish (http://www.transifex.com/projects/p/wagtail/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/projects/p/wagtail/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" -#: models.py:46 +#: models.py:45 msgid "" "Set this to something other than 80 if you need a specific port number to " "appear in URLs (e.g. development on port 8000). Does not affect request " "handling (so port forwarding still works)." -msgstr "Ustaw na inną wartość niż 80 jeżeli istnieje potrzeba pojawienia się konkretnego portu w URLach (np. port wersji roboczej 8000). Nie ma wpływu na obsługę żądań (przekierowanie portów będzie nadal działało)." +msgstr "" +"Ustaw na inną wartość niż 80 jeżeli istnieje potrzeba pojawienia się " +"konkretnego portu w URLach (np. port wersji roboczej 8000). Nie ma wpływu na " +"obsługę żądań (przekierowanie portów będzie nadal działało)." -#: models.py:48 +#: models.py:47 msgid "" "If true, this site will handle requests for all other hostnames that do not " "have a site entry of their own" -msgstr "Wartość true sprawi, że ta strona będzie obsługiwała żądania wszystkich innych hostów, które nie mają ustawionej strony." +msgstr "" +"Wartość true sprawi, że ta strona będzie obsługiwała żądania wszystkich " +"innych hostów, które nie mają ustawionej strony." -#: models.py:109 +#: models.py:108 #, python-format msgid "" "%(hostname)s is already configured as the default site. You must unset that " "before you can save this site as default." msgstr "" -#: models.py:277 +#: models.py:251 msgid "The page title as you'd like it to be seen by the public" msgstr "Tytuł strony jaki chcesz żeby był widoczny publicznie." -#: models.py:278 +#: models.py:252 msgid "" -"The name of the page as it will appear in URLs e.g http://domain.com/blog" -"/[my-slug]/" -msgstr "Nazwa strony, która będzie wyświetlana w URLach np. http://domain.com/blog/[my-slug]/" +"The name of the page as it will appear in URLs e.g http://domain.com/blog/" +"[my-slug]/" +msgstr "" +"Nazwa strony, która będzie wyświetlana w URLach np. http://domain.com/blog/" +"[my-slug]/" -#: models.py:287 +#: models.py:261 msgid "Page title" msgstr "Tytuł strony" -#: models.py:287 +#: models.py:261 msgid "" -"Optional. 'Search Engine Friendly' title. This will appear at the top of the" -" browser window." -msgstr "Opcjonalne. Tytuł 'przyjazny wyszukiwarkom'. Będzie widoczny się na górze okna przeglądarki." +"Optional. 'Search Engine Friendly' title. This will appear at the top of the " +"browser window." +msgstr "" +"Opcjonalne. Tytuł 'przyjazny wyszukiwarkom'. Będzie widoczny się na górze " +"okna przeglądarki." -#: models.py:288 +#: models.py:262 msgid "" "Whether a link to this page will appear in automatically generated menus" -msgstr "Czy link do tej strony zostanie wyświetlony w menu tworzonym automatycznie." +msgstr "" +"Czy link do tej strony zostanie wyświetlony w menu tworzonym automatycznie." -#: models.py:291 +#: models.py:265 msgid "Go live date/time" msgstr "" -#: models.py:291 models.py:292 +#: models.py:265 models.py:266 msgid "Please add a date-time in the form YYYY-MM-DD hh:mm:ss." msgstr "" -#: models.py:292 +#: models.py:266 msgid "Expiry date/time" msgstr "" -#: models.py:564 +#: models.py:530 msgid "name '{0}' (used in subpage_types list) is not defined." msgstr "" diff --git a/wagtail/wagtailcore/locale/pt_BR/LC_MESSAGES/django.mo b/wagtail/wagtailcore/locale/pt_BR/LC_MESSAGES/django.mo new file mode 100644 index 000000000..1f638ec77 Binary files /dev/null and b/wagtail/wagtailcore/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailcore/locale/pt_BR/LC_MESSAGES/django.po b/wagtail/wagtailcore/locale/pt_BR/LC_MESSAGES/django.po new file mode 100644 index 000000000..a0c78fccc --- /dev/null +++ b/wagtail/wagtailcore/locale/pt_BR/LC_MESSAGES/django.po @@ -0,0 +1,81 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Thiago Cangussu , 2014 +# Gladson , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" +"PO-Revision-Date: 2014-08-17 01:02+0000\n" +"Last-Translator: Gladson \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/wagtail/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: models.py:45 +msgid "" +"Set this to something other than 80 if you need a specific port number to " +"appear in URLs (e.g. development on port 8000). Does not affect request " +"handling (so port forwarding still works)." +msgstr "Ajuste para um valor diferente de 80 se você precisar de um número de porta específico para aparecer nas URLs (ex. desenvolvimento na porta 8000). Não afeta o gerenciamento de requisições (então o redirecionamento de portas continua funcionando)." + +#: models.py:47 +msgid "" +"If true, this site will handle requests for all other hostnames that do not " +"have a site entry of their own" +msgstr "Se verdadeiro, este site irá gerenciar requisições de todos os outros hostnames que não tem um site próprio" + +#: models.py:108 +#, python-format +msgid "" +"%(hostname)s is already configured as the default site. You must unset that " +"before you can save this site as default." +msgstr "%(hostname)s já está configurado como padrão no site. Você deve desconfigurar antes que você possa salvar este como padrão." + +#: models.py:251 +msgid "The page title as you'd like it to be seen by the public" +msgstr "O título da página como você gostaria que fosse visto pelo público" + +#: models.py:252 +msgid "" +"The name of the page as it will appear in URLs e.g http://domain.com/blog" +"/[my-slug]/" +msgstr "O nome da página como ele irá aparecer nas URLs ex.: http://domain.com/blog/[my-slug]/" + +#: models.py:261 +msgid "Page title" +msgstr "Título da página" + +#: models.py:261 +msgid "" +"Optional. 'Search Engine Friendly' title. This will appear at the top of the" +" browser window." +msgstr "Opcional. Título 'Amigável para Mecanismos de Busca'. Isto irá aparecer no topo da janela do navegador." + +#: models.py:262 +msgid "" +"Whether a link to this page will appear in automatically generated menus" +msgstr "Um link para esta página irá aparecer nos menus gerados automaticamente" + +#: models.py:265 +msgid "Go live date/time" +msgstr "" + +#: models.py:265 models.py:266 +msgid "Please add a date-time in the form YYYY-MM-DD hh:mm:ss." +msgstr "Por favor add uma data-hora no formato YYYY-MM-DD hh:mm:ss." + +#: models.py:266 +msgid "Expiry date/time" +msgstr "Validade data/hora" + +#: models.py:530 +msgid "name '{0}' (used in subpage_types list) is not defined." +msgstr "nome '{0}' (used in subpage_types list) não está definido." diff --git a/wagtail/wagtailcore/locale/pt_PT/LC_MESSAGES/django.mo b/wagtail/wagtailcore/locale/pt_PT/LC_MESSAGES/django.mo new file mode 100644 index 000000000..46dc02665 Binary files /dev/null and b/wagtail/wagtailcore/locale/pt_PT/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailcore/locale/pt_PT/LC_MESSAGES/django.po b/wagtail/wagtailcore/locale/pt_PT/LC_MESSAGES/django.po new file mode 100644 index 000000000..37a7023c7 --- /dev/null +++ b/wagtail/wagtailcore/locale/pt_PT/LC_MESSAGES/django.po @@ -0,0 +1,96 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Thiago Cangussu , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail 0.5.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" +"PO-Revision-Date: 2014-08-03 01:52+0100\n" +"Last-Translator: Jose Lourenco \n" +"Language-Team: \n" +"Language: pt_PT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: models.py:45 +msgid "" +"Set this to something other than 80 if you need a specific port number to " +"appear in URLs (e.g. development on port 8000). Does not affect request " +"handling (so port forwarding still works)." +msgstr "" +"Atribua um valor diferente de 80 se você necessitar que um número de porto " +"específico apareça nas URLs (ex. desenvolvimento no porto 8000). Não afeta o " +"tratamento de requisições (assim, o redirecionamento de portos continua a " +"funcionar)." + +#: models.py:47 +msgid "" +"If true, this site will handle requests for all other hostnames that do not " +"have a site entry of their own" +msgstr "" +"Se verdadeiro, este site irá processar requisições de todos os outros " +"hostnames que não tenham um site próprio" + +#: models.py:108 +#, python-format +msgid "" +"%(hostname)s is already configured as the default site. You must unset that " +"before you can save this site as default." +msgstr "" +"O %(hostname)s já está configurado como site pré-definido. Tem de alterar " +"essa configuração antes de poder guardar este site como pré-definido." + +#: models.py:251 +msgid "The page title as you'd like it to be seen by the public" +msgstr "O título da página como você gostaria que fosse visto pelo público" + +#: models.py:252 +msgid "" +"The name of the page as it will appear in URLs e.g http://domain.com/blog/" +"[my-slug]/" +msgstr "" +"O nome da página como ele irá aparecer nas URLs ex.: http://domain.com/blog/" +"[my-slug]/" + +#: models.py:261 +msgid "Page title" +msgstr "Título da página" + +#: models.py:261 +msgid "" +"Optional. 'Search Engine Friendly' title. This will appear at the top of the " +"browser window." +msgstr "" +"Opcional. Título 'Amigável para Motores de Busca'. Isto irá aparecer no topo " +"da janela do navegador." + +#: models.py:262 +msgid "" +"Whether a link to this page will appear in automatically generated menus" +msgstr "" +"Se um link para esta página irá aparecer nos menus gerados automaticamente" + +#: models.py:265 +msgid "Go live date/time" +msgstr "Data/hora de publicação" + +#: models.py:265 models.py:266 +msgid "Please add a date-time in the form YYYY-MM-DD hh:mm:ss." +msgstr "Por favor adicione uma data-hora no formato AAAA-MM-DD hh:mm:ss." + +#: models.py:266 +msgid "Expiry date/time" +msgstr "Data/hora terminal" + +#: models.py:530 +msgid "name '{0}' (used in subpage_types list) is not defined." +msgstr "" +"O nome '{0}' (usado na lista de tipos de sub-páginas) não está definido." diff --git a/wagtail/wagtailcore/locale/ro/LC_MESSAGES/django.mo b/wagtail/wagtailcore/locale/ro/LC_MESSAGES/django.mo index 22c711e9e..8c6ef637d 100644 Binary files a/wagtail/wagtailcore/locale/ro/LC_MESSAGES/django.mo and b/wagtail/wagtailcore/locale/ro/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailcore/locale/ro/LC_MESSAGES/django.po b/wagtail/wagtailcore/locale/ro/LC_MESSAGES/django.po index d6c9a1902..8343ea130 100644 --- a/wagtail/wagtailcore/locale/ro/LC_MESSAGES/django.po +++ b/wagtail/wagtailcore/locale/ro/LC_MESSAGES/django.po @@ -1,80 +1,94 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Dan Braghis, 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Romanian (http://www.transifex.com/projects/p/wagtail/language/ro/)\n" +"Language-Team: Romanian (http://www.transifex.com/projects/p/wagtail/" +"language/ro/)\n" +"Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: models.py:46 +#: models.py:45 msgid "" "Set this to something other than 80 if you need a specific port number to " "appear in URLs (e.g. development on port 8000). Does not affect request " "handling (so port forwarding still works)." -msgstr "Dacă aveți nevoie ca un număr de port specific să apară în adrese de internet (de exemplu, dezvoltare pe portul 8000) setați aceasta la altceva decât 80. Nu influențează gestionarea solicitărilor și transmiterile de port vor continua să funcționeze." +msgstr "" +"Dacă aveți nevoie ca un număr de port specific să apară în adrese de " +"internet (de exemplu, dezvoltare pe portul 8000) setați aceasta la altceva " +"decât 80. Nu influențează gestionarea solicitărilor și transmiterile de port " +"vor continua să funcționeze." -#: models.py:48 +#: models.py:47 msgid "" "If true, this site will handle requests for all other hostnames that do not " "have a site entry of their own" -msgstr "Dacă e 'true', acest sit va gestiona solicitări pentru toate hostname-urile fără setări separate" +msgstr "" +"Dacă e 'true', acest sit va gestiona solicitări pentru toate hostname-urile " +"fără setări separate" -#: models.py:109 +#: models.py:108 #, python-format msgid "" "%(hostname)s is already configured as the default site. You must unset that " "before you can save this site as default." msgstr "" -#: models.py:277 +#: models.py:251 msgid "The page title as you'd like it to be seen by the public" msgstr "Titlul paginii așa cum doriți să fie vizibil public" -#: models.py:278 +#: models.py:252 msgid "" -"The name of the page as it will appear in URLs e.g http://domain.com/blog" -"/[my-slug]/" -msgstr "Numele paginii așa cum va apărea în adrese. De exemplu, http://domain.com/blog/[my-slug]/" +"The name of the page as it will appear in URLs e.g http://domain.com/blog/" +"[my-slug]/" +msgstr "" +"Numele paginii așa cum va apărea în adrese. De exemplu, http://domain.com/" +"blog/[my-slug]/" -#: models.py:287 +#: models.py:261 msgid "Page title" msgstr "Titlu pagină" -#: models.py:287 +#: models.py:261 msgid "" -"Optional. 'Search Engine Friendly' title. This will appear at the top of the" -" browser window." -msgstr "Opțional. Titlu favorabil motoarelor de căutare. Apare în partea de sus a browserului." +"Optional. 'Search Engine Friendly' title. This will appear at the top of the " +"browser window." +msgstr "" +"Opțional. Titlu favorabil motoarelor de căutare. Apare în partea de sus a " +"browserului." -#: models.py:288 +#: models.py:262 msgid "" "Whether a link to this page will appear in automatically generated menus" -msgstr "Dacă un link către această pagină va apărea în meniurile generate în mod automat" +msgstr "" +"Dacă un link către această pagină va apărea în meniurile generate în mod " +"automat" -#: models.py:291 +#: models.py:265 msgid "Go live date/time" msgstr "" -#: models.py:291 models.py:292 +#: models.py:265 models.py:266 msgid "Please add a date-time in the form YYYY-MM-DD hh:mm:ss." msgstr "" -#: models.py:292 +#: models.py:266 msgid "Expiry date/time" msgstr "" -#: models.py:564 +#: models.py:530 msgid "name '{0}' (used in subpage_types list) is not defined." msgstr "" diff --git a/wagtail/wagtailcore/locale/ru/LC_MESSAGES/django.mo b/wagtail/wagtailcore/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 000000000..cc363afba Binary files /dev/null and b/wagtail/wagtailcore/locale/ru/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailcore/locale/ru/LC_MESSAGES/django.po b/wagtail/wagtailcore/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 000000000..2ee019171 --- /dev/null +++ b/wagtail/wagtailcore/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,80 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# ajk, 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" +"PO-Revision-Date: 2014-08-01 15:43+0000\n" +"Last-Translator: Karl Hobley \n" +"Language-Team: Russian (http://www.transifex.com/projects/p/wagtail/language/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: models.py:45 +msgid "" +"Set this to something other than 80 if you need a specific port number to " +"appear in URLs (e.g. development on port 8000). Does not affect request " +"handling (so port forwarding still works)." +msgstr "" + +#: models.py:47 +msgid "" +"If true, this site will handle requests for all other hostnames that do not " +"have a site entry of their own" +msgstr "" + +#: models.py:108 +#, python-format +msgid "" +"%(hostname)s is already configured as the default site. You must unset that " +"before you can save this site as default." +msgstr "" + +#: models.py:251 +msgid "The page title as you'd like it to be seen by the public" +msgstr "" + +#: models.py:252 +msgid "" +"The name of the page as it will appear in URLs e.g http://domain.com/blog" +"/[my-slug]/" +msgstr "Имя страницы, которое будет отображаться в URL, например http://domain.com/blog/[my-slug]/" + +#: models.py:261 +msgid "Page title" +msgstr "Заголовок страницы" + +#: models.py:261 +msgid "" +"Optional. 'Search Engine Friendly' title. This will appear at the top of the" +" browser window." +msgstr "" + +#: models.py:262 +msgid "" +"Whether a link to this page will appear in automatically generated menus" +msgstr "Должна ли ссылка на эту страницу отображаться в автоматически генерируемых меню" + +#: models.py:265 +msgid "Go live date/time" +msgstr "" + +#: models.py:265 models.py:266 +msgid "Please add a date-time in the form YYYY-MM-DD hh:mm:ss." +msgstr "" + +#: models.py:266 +msgid "Expiry date/time" +msgstr "" + +#: models.py:530 +msgid "name '{0}' (used in subpage_types list) is not defined." +msgstr "" diff --git a/wagtail/wagtailcore/locale/vi/LC_MESSAGES/django.mo b/wagtail/wagtailcore/locale/vi/LC_MESSAGES/django.mo new file mode 100644 index 000000000..7b2c18d65 Binary files /dev/null and b/wagtail/wagtailcore/locale/vi/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailcore/locale/vi/LC_MESSAGES/django.po b/wagtail/wagtailcore/locale/vi/LC_MESSAGES/django.po new file mode 100644 index 000000000..2465e6100 --- /dev/null +++ b/wagtail/wagtailcore/locale/vi/LC_MESSAGES/django.po @@ -0,0 +1,79 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" +"PO-Revision-Date: 2014-08-01 15:43+0000\n" +"Last-Translator: Karl Hobley \n" +"Language-Team: Vietnamese (http://www.transifex.com/projects/p/wagtail/language/vi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: models.py:45 +msgid "" +"Set this to something other than 80 if you need a specific port number to " +"appear in URLs (e.g. development on port 8000). Does not affect request " +"handling (so port forwarding still works)." +msgstr "" + +#: models.py:47 +msgid "" +"If true, this site will handle requests for all other hostnames that do not " +"have a site entry of their own" +msgstr "" + +#: models.py:108 +#, python-format +msgid "" +"%(hostname)s is already configured as the default site. You must unset that " +"before you can save this site as default." +msgstr "" + +#: models.py:251 +msgid "The page title as you'd like it to be seen by the public" +msgstr "" + +#: models.py:252 +msgid "" +"The name of the page as it will appear in URLs e.g http://domain.com/blog" +"/[my-slug]/" +msgstr "" + +#: models.py:261 +msgid "Page title" +msgstr "" + +#: models.py:261 +msgid "" +"Optional. 'Search Engine Friendly' title. This will appear at the top of the" +" browser window." +msgstr "" + +#: models.py:262 +msgid "" +"Whether a link to this page will appear in automatically generated menus" +msgstr "" + +#: models.py:265 +msgid "Go live date/time" +msgstr "" + +#: models.py:265 models.py:266 +msgid "Please add a date-time in the form YYYY-MM-DD hh:mm:ss." +msgstr "" + +#: models.py:266 +msgid "Expiry date/time" +msgstr "" + +#: models.py:530 +msgid "name '{0}' (used in subpage_types list) is not defined." +msgstr "" diff --git a/wagtail/wagtailcore/locale/zh/LC_MESSAGES/django.mo b/wagtail/wagtailcore/locale/zh/LC_MESSAGES/django.mo index 003a8aaef..ed83e47d8 100644 Binary files a/wagtail/wagtailcore/locale/zh/LC_MESSAGES/django.mo and b/wagtail/wagtailcore/locale/zh/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailcore/locale/zh/LC_MESSAGES/django.po b/wagtail/wagtailcore/locale/zh/LC_MESSAGES/django.po index 4dc9d01ee..6cc34c60c 100644 --- a/wagtail/wagtailcore/locale/zh/LC_MESSAGES/django.po +++ b/wagtail/wagtailcore/locale/zh/LC_MESSAGES/django.po @@ -1,79 +1,83 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Chinese (http://www.transifex.com/projects/p/wagtail/language/zh/)\n" +"Language-Team: Chinese (http://www.transifex.com/projects/p/wagtail/language/" +"zh/)\n" +"Language: zh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: models.py:46 +#: models.py:45 msgid "" "Set this to something other than 80 if you need a specific port number to " "appear in URLs (e.g. development on port 8000). Does not affect request " "handling (so port forwarding still works)." -msgstr "如果你需要指定端口,请选择一个有别于80的端口(比如开发端口8000)。 不影响接受请求 (端口转发仍然有效)" +msgstr "" +"如果你需要指定端口,请选择一个有别于80的端口(比如开发端口8000)。 不影响接受请" +"求 (端口转发仍然有效)" -#: models.py:48 +#: models.py:47 msgid "" "If true, this site will handle requests for all other hostnames that do not " "have a site entry of their own" -msgstr "如果是真的,这个网站将处理没有一个属于自己的主机名的其他所有主机名的请求" +msgstr "" +"如果是真的,这个网站将处理没有一个属于自己的主机名的其他所有主机名的请求" -#: models.py:109 +#: models.py:108 #, python-format msgid "" "%(hostname)s is already configured as the default site. You must unset that " "before you can save this site as default." msgstr "" -#: models.py:277 +#: models.py:251 msgid "The page title as you'd like it to be seen by the public" msgstr "页面标题,你想被大众所看到的" -#: models.py:278 +#: models.py:252 msgid "" -"The name of the page as it will appear in URLs e.g http://domain.com/blog" -"/[my-slug]/" +"The name of the page as it will appear in URLs e.g http://domain.com/blog/" +"[my-slug]/" msgstr "一个出现在URL的名字 比如 http://domain.com/blog/[my-slug]/" -#: models.py:287 +#: models.py:261 msgid "Page title" msgstr "页面标题" -#: models.py:287 +#: models.py:261 msgid "" -"Optional. 'Search Engine Friendly' title. This will appear at the top of the" -" browser window." +"Optional. 'Search Engine Friendly' title. This will appear at the top of the " +"browser window." msgstr "可选 ‘搜索引擎友好’ 标题。 这会显示在浏览器窗口顶部" -#: models.py:288 +#: models.py:262 msgid "" "Whether a link to this page will appear in automatically generated menus" msgstr "一个链接到这页的链接会显示在自动生成的菜单中" -#: models.py:291 +#: models.py:265 msgid "Go live date/time" msgstr "" -#: models.py:291 models.py:292 +#: models.py:265 models.py:266 msgid "Please add a date-time in the form YYYY-MM-DD hh:mm:ss." msgstr "" -#: models.py:292 +#: models.py:266 msgid "Expiry date/time" msgstr "" -#: models.py:564 +#: models.py:530 msgid "name '{0}' (used in subpage_types list) is not defined." msgstr "" diff --git a/wagtail/wagtailcore/locale/zh_TW/LC_MESSAGES/django.mo b/wagtail/wagtailcore/locale/zh_TW/LC_MESSAGES/django.mo index 616f41b57..2509df8da 100644 Binary files a/wagtail/wagtailcore/locale/zh_TW/LC_MESSAGES/django.mo and b/wagtail/wagtailcore/locale/zh_TW/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailcore/locale/zh_TW/LC_MESSAGES/django.po b/wagtail/wagtailcore/locale/zh_TW/LC_MESSAGES/django.po index 3a3a2bfa6..fa861030b 100644 --- a/wagtail/wagtailcore/locale/zh_TW/LC_MESSAGES/django.po +++ b/wagtail/wagtailcore/locale/zh_TW/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:37+0100\n" "PO-Revision-Date: 2014-02-28 16:07+0000\n" "Last-Translator: wdv4758h \n" "Language-Team: \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: models.py:46 +#: models.py:45 msgid "" "Set this to something other than 80 if you need a specific port number to " "appear in URLs (e.g. development on port 8000). Does not affect request " @@ -26,58 +26,58 @@ msgstr "" "如果你需要指定 port,請選擇一個非 80 的 port number (例如: 開發中用 8000 " "port)。 不影響 request 處理 (port forwarding 仍然有效)" -#: models.py:48 +#: models.py:47 msgid "" "If true, this site will handle requests for all other hostnames that do not " "have a site entry of their own" msgstr "" "如果這是 Ture 的話,這個網站將處理其他沒有自己網站的 hostname 的 request。" -#: models.py:109 +#: models.py:108 #, python-format msgid "" "%(hostname)s is already configured as the default site. You must unset that " "before you can save this site as default." msgstr "" -#: models.py:277 +#: models.py:251 msgid "The page title as you'd like it to be seen by the public" msgstr "頁面標題 (你想讓外界看到的)" -#: models.py:278 +#: models.py:252 msgid "" "The name of the page as it will appear in URLs e.g http://domain.com/blog/" "[my-slug]/" msgstr "一個出現在 URL 的名字,例如 http://domain.com/blog/[my-slug]/" -#: models.py:287 +#: models.py:261 msgid "Page title" msgstr "頁面標題" -#: models.py:287 +#: models.py:261 msgid "" "Optional. 'Search Engine Friendly' title. This will appear at the top of the " "browser window." msgstr "(可選) '搜尋引擎友善' 標題。 這會顯示在瀏覽器的視窗最上方" -#: models.py:288 +#: models.py:262 msgid "" "Whether a link to this page will appear in automatically generated menus" msgstr "是否在自動生成的 Menu 裡顯示一個連結到此頁面" -#: models.py:291 +#: models.py:265 msgid "Go live date/time" msgstr "" -#: models.py:291 models.py:292 +#: models.py:265 models.py:266 msgid "Please add a date-time in the form YYYY-MM-DD hh:mm:ss." msgstr "" -#: models.py:292 +#: models.py:266 msgid "Expiry date/time" msgstr "" -#: models.py:564 +#: models.py:530 #, fuzzy msgid "name '{0}' (used in subpage_types list) is not defined." msgstr "'%s' (用於子頁面類型列表) 沒有被建立。" diff --git a/wagtail/wagtailcore/management/commands/replace_text.py b/wagtail/wagtailcore/management/commands/replace_text.py index d654a61d6..0eb0ea77b 100644 --- a/wagtail/wagtailcore/management/commands/replace_text.py +++ b/wagtail/wagtailcore/management/commands/replace_text.py @@ -1,6 +1,8 @@ from django.core.management.base import BaseCommand from django.db import models +from modelcluster.models import get_all_child_relations + from wagtail.wagtailcore.models import PageRevision, get_page_types @@ -27,10 +29,7 @@ class Command(BaseCommand): self.stdout.write("scanning %s" % content_type.name) page_class = content_type.model_class() - try: - child_relation_names = [rel.get_accessor_name() for rel in page_class._meta.child_relations] - except AttributeError: - child_relation_names = [] + child_relation_names = [rel.get_accessor_name() for rel in get_all_child_relations(page_class)] for page in page_class.objects.all(): replace_in_model(page, from_text, to_text) diff --git a/wagtail/wagtailcore/migrations/0001_initial.py b/wagtail/wagtailcore/migrations/0001_initial.py new file mode 100644 index 000000000..304d53322 --- /dev/null +++ b/wagtail/wagtailcore/migrations/0001_initial.py @@ -0,0 +1,104 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +from django.conf import settings +import wagtail.wagtailsearch.index + + +class Migration(migrations.Migration): + + dependencies = [ + ('auth', '0001_initial'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('contenttypes', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='GroupPagePermission', + fields=[ + ('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)), + ('permission_type', models.CharField(choices=[('add', 'Add'), ('edit', 'Edit'), ('publish', 'Publish')], max_length=20)), + ('group', models.ForeignKey(to='auth.Group', related_name='page_permissions')), + ], + options={ + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Page', + fields=[ + ('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)), + ('path', models.CharField(max_length=255, unique=True)), + ('depth', models.PositiveIntegerField()), + ('numchild', models.PositiveIntegerField(default=0)), + ('title', models.CharField(max_length=255, help_text="The page title as you'd like it to be seen by the public")), + ('slug', models.SlugField(help_text='The name of the page as it will appear in URLs e.g http://domain.com/blog/[my-slug]/')), + ('live', models.BooleanField(default=True, editable=False)), + ('has_unpublished_changes', models.BooleanField(default=False, editable=False)), + ('url_path', models.CharField(blank=True, max_length=255, editable=False)), + ('seo_title', models.CharField(blank=True, max_length=255, help_text="Optional. 'Search Engine Friendly' title. This will appear at the top of the browser window.", verbose_name='Page title')), + ('show_in_menus', models.BooleanField(default=False, help_text='Whether a link to this page will appear in automatically generated menus')), + ('search_description', models.TextField(blank=True)), + ('go_live_at', models.DateTimeField(blank=True, verbose_name='Go live date/time', null=True, help_text='Please add a date-time in the form YYYY-MM-DD hh:mm:ss.')), + ('expire_at', models.DateTimeField(blank=True, verbose_name='Expiry date/time', null=True, help_text='Please add a date-time in the form YYYY-MM-DD hh:mm:ss.')), + ('expired', models.BooleanField(default=False, editable=False)), + ('content_type', models.ForeignKey(to='contenttypes.ContentType', related_name='pages')), + ('owner', models.ForeignKey(blank=True, null=True, to=settings.AUTH_USER_MODEL, editable=False, related_name='owned_pages')), + ], + options={ + 'abstract': False, + }, + bases=(models.Model, wagtail.wagtailsearch.index.Indexed), + ), + migrations.CreateModel( + name='PageRevision', + fields=[ + ('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)), + ('submitted_for_moderation', models.BooleanField(default=False)), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('content_json', models.TextField()), + ('approved_go_live_at', models.DateTimeField(blank=True, null=True)), + ('page', models.ForeignKey(to='wagtailcore.Page', related_name='revisions')), + ('user', models.ForeignKey(blank=True, null=True, to=settings.AUTH_USER_MODEL)), + ], + options={ + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='PageViewRestriction', + fields=[ + ('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)), + ('password', models.CharField(max_length=255)), + ('page', models.ForeignKey(to='wagtailcore.Page', related_name='view_restrictions')), + ], + options={ + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Site', + fields=[ + ('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)), + ('hostname', models.CharField(max_length=255, db_index=True)), + ('port', models.IntegerField(default=80, help_text='Set this to something other than 80 if you need a specific port number to appear in URLs (e.g. development on port 8000). Does not affect request handling (so port forwarding still works).')), + ('is_default_site', models.BooleanField(default=False, help_text='If true, this site will handle requests for all other hostnames that do not have a site entry of their own')), + ('root_page', models.ForeignKey(to='wagtailcore.Page', related_name='sites_rooted_here')), + ], + options={ + }, + bases=(models.Model,), + ), + migrations.AlterUniqueTogether( + name='site', + unique_together=set([('hostname', 'port')]), + ), + migrations.AddField( + model_name='grouppagepermission', + name='page', + field=models.ForeignKey(to='wagtailcore.Page', related_name='group_permissions'), + preserve_default=True, + ), + ] diff --git a/wagtail/wagtailcore/migrations/0002_initial_data.py b/wagtail/wagtailcore/migrations/0002_initial_data.py new file mode 100644 index 000000000..10244c24c --- /dev/null +++ b/wagtail/wagtailcore/migrations/0002_initial_data.py @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +def initial_data(apps, schema_editor): + ContentType = apps.get_model('contenttypes.ContentType') + Group = apps.get_model('auth.Group') + Page = apps.get_model('wagtailcore.Page') + Site = apps.get_model('wagtailcore.Site') + GroupPagePermission = apps.get_model('wagtailcore.GroupPagePermission') + + # Create page content type + page_content_type, created = ContentType.objects.get_or_create( + model='page', + app_label='wagtailcore', + defaults={'name': 'page'} + ) + + # Create root page + root = Page.objects.create( + title="Root", + slug='root', + content_type=page_content_type, + path='0001', + depth=1, + numchild=1, + url_path='/', + ) + + # Create homepage + homepage = Page.objects.create( + title="Welcome to your new Wagtail site!", + slug='home', + content_type=page_content_type, + path='00010001', + depth=2, + numchild=0, + url_path='/home/', + ) + + # Create default site + Site.objects.create( + hostname='localhost', + root_page_id=homepage.id, + is_default_site=True + ) + + # Create auth groups + moderators_group = Group.objects.create(name='Moderators') + editors_group = Group.objects.create(name='Editors') + + # Create group permissions + GroupPagePermission.objects.create( + group=moderators_group, + page=root, + permission_type='add', + ) + GroupPagePermission.objects.create( + group=moderators_group, + page=root, + permission_type='edit', + ) + GroupPagePermission.objects.create( + group=moderators_group, + page=root, + permission_type='publish', + ) + + GroupPagePermission.objects.create( + group=editors_group, + page=root, + permission_type='add', + ) + GroupPagePermission.objects.create( + group=editors_group, + page=root, + permission_type='edit', + ) + + +class Migration(migrations.Migration): + + dependencies = [ + ('wagtailcore', '0001_initial'), + ] + + operations = [ + migrations.RunPython(initial_data), + ] diff --git a/wagtail/wagtailcore/migrations/__init__.py b/wagtail/wagtailcore/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/wagtail/wagtailcore/models.py b/wagtail/wagtailcore/models.py index a237e16e6..126c9c923 100644 --- a/wagtail/wagtailcore/models.py +++ b/wagtail/wagtailcore/models.py @@ -5,10 +5,10 @@ from six import string_types from six import StringIO from six.moves.urllib.parse import urlparse -from modelcluster.models import ClusterableModel +from modelcluster.models import ClusterableModel, get_all_child_relations from django.db import models, connection, transaction -from django.db.models import get_model, Q +from django.db.models import Q from django.http import Http404 from django.core.cache import cache from django.core.handlers.wsgi import WSGIRequest @@ -20,19 +20,17 @@ from django.conf import settings from django.template.response import TemplateResponse from django.utils import timezone from django.utils.translation import ugettext_lazy as _ -from django.core.exceptions import ValidationError +from django.core.exceptions import ValidationError, ImproperlyConfigured from django.utils.functional import cached_property from django.utils.encoding import python_2_unicode_compatible from treebeard.mp_tree import MP_Node -from wagtail.utils.deprecation import RemovedInWagtail06Warning - -from wagtail.wagtailcore.utils import camelcase_to_underscore +from wagtail.wagtailcore.utils import camelcase_to_underscore, resolve_model_string from wagtail.wagtailcore.query import PageQuerySet from wagtail.wagtailcore.url_routing import RouteResult -from wagtail.wagtailsearch import indexed +from wagtail.wagtailsearch import index from wagtail.wagtailsearch.backends import get_search_backend @@ -60,15 +58,15 @@ class Site(models.Model): @staticmethod def find_for_request(request): """ - Find the site object responsible for responding to this HTTP - request object. Try: - - unique hostname first - - then hostname and port - - if there is no matching hostname at all, or no matching - hostname:port combination, fall back to the unique default site, - or raise an exception - NB this means that high-numbered ports on an extant hostname may - still be routed to a different hostname which is set as the default + Find the site object responsible for responding to this HTTP + request object. Try: + - unique hostname first + - then hostname and port + - if there is no matching hostname at all, or no matching + hostname:port combination, fall back to the unique default site, + or raise an exception + NB this means that high-numbered ports on an extant hostname may + still be routed to a different hostname which is set as the default """ try: hostname = request.META['HTTP_HOST'].split(':')[0] # KeyError here goes to the final except clause @@ -149,31 +147,6 @@ def get_page_types(): return _PAGE_CONTENT_TYPES -def get_leaf_page_content_type_ids(): - warnings.warn(""" - get_leaf_page_content_type_ids is deprecated, as it treats pages without an explicit subpage_types - setting as 'leaf' pages. Code that calls get_leaf_page_content_type_ids must be rewritten to avoid - this incorrect assumption. - """, RemovedInWagtail06Warning) - return [ - content_type.id - for content_type in get_page_types() - if not getattr(content_type.model_class(), 'subpage_types', None) - ] - -def get_navigable_page_content_type_ids(): - warnings.warn(""" - get_navigable_page_content_type_ids is deprecated, as it treats pages without an explicit subpage_types - setting as 'leaf' pages. Code that calls get_navigable_page_content_type_ids must be rewritten to avoid - this incorrect assumption. - """, RemovedInWagtail06Warning) - return [ - content_type.id - for content_type in get_page_types() - if getattr(content_type.model_class(), 'subpage_types', None) - ] - - class PageManager(models.Manager): def get_queryset(self): return PageQuerySet(self.model).order_by('path') @@ -263,6 +236,7 @@ class PageBase(models.base.ModelBase): cls.ajax_template = None cls._clean_subpage_types = None # to be filled in on first call to cls.clean_subpage_types + cls._clean_parent_page_types = None # to be filled in on first call to cls.clean_parent_page_types if not dct.get('is_abstract'): # subclasses are only abstract if the subclass itself defines itself so @@ -274,7 +248,7 @@ class PageBase(models.base.ModelBase): @python_2_unicode_compatible -class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, indexed.Indexed)): +class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, index.Indexed)): title = models.CharField(max_length=255, help_text=_("The page title as you'd like it to be seen by the public")) slug = models.SlugField(help_text=_("The name of the page as it will appear in URLs e.g http://domain.com/blog/[my-slug]/")) # TODO: enforce uniqueness on slug field per parent (will have to be done at the Django @@ -294,13 +268,13 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, indexed.Index expired = models.BooleanField(default=False, editable=False) search_fields = ( - indexed.SearchField('title', partial_match=True, boost=100), - indexed.FilterField('id'), - indexed.FilterField('live'), - indexed.FilterField('owner'), - indexed.FilterField('content_type'), - indexed.FilterField('path'), - indexed.FilterField('depth'), + index.SearchField('title', partial_match=True, boost=100), + index.FilterField('id'), + index.FilterField('live'), + index.FilterField('owner'), + index.FilterField('content_type'), + index.FilterField('path'), + index.FilterField('depth'), ) def __init__(self, *args, **kwargs): @@ -476,14 +450,6 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, indexed.Index """ return (not self.is_leaf()) or self.depth == 2 - def get_other_siblings(self): - warnings.warn( - "The 'Page.get_other_siblings()' method has been replaced. " - "Use 'Page.get_siblings(inclusive=False)' instead.", RemovedInWagtail06Warning) - - # get sibling pages excluding self - return self.get_siblings().exclude(id=self.id) - @property def full_url(self): """Return the full URL (including protocol / domain) to this page, or None if it is not routable""" @@ -539,8 +505,8 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, indexed.Index @classmethod def clean_subpage_types(cls): """ - Returns the list of subpage types, with strings converted to class objects - where required + Returns the list of subpage types, with strings converted to class objects + where required """ if cls._clean_subpage_types is None: subpage_types = getattr(cls, 'subpage_types', None) @@ -548,46 +514,70 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, indexed.Index # if subpage_types is not specified on the Page class, allow all page types as subpages res = get_page_types() else: - res = [] - for page_type in cls.subpage_types: - if isinstance(page_type, string_types): - try: - app_label, model_name = page_type.split(".") - except ValueError: - # If we can't split, assume a model in current app - app_label = cls._meta.app_label - model_name = page_type - - model = get_model(app_label, model_name) - if model: - res.append(ContentType.objects.get_for_model(model)) - else: - raise NameError(_("name '{0}' (used in subpage_types list) is not defined.").format(page_type)) - - else: - # assume it's already a model class - res.append(ContentType.objects.get_for_model(page_type)) + try: + models = [resolve_model_string(model_string, cls._meta.app_label) + for model_string in subpage_types] + except LookupError as err: + raise ImproperlyConfigured("{0}.subpage_types must be a list of 'app_label.model_name' strings, given {1!r}".format( + cls.__name__, err.args[1])) + res = list(map(ContentType.objects.get_for_model, models)) cls._clean_subpage_types = res return cls._clean_subpage_types @classmethod - def allowed_parent_page_types(cls): + def clean_parent_page_types(cls): """ - Returns the list of page types that this page type can be a subpage of + Returns the list of parent page types, with strings converted to class + objects where required """ - return [ct for ct in get_page_types() if cls in ct.model_class().clean_subpage_types()] + if cls._clean_parent_page_types is None: + parent_page_types = getattr(cls, 'parent_page_types', None) + if parent_page_types is None: + # if parent_page_types is not specified on the Page class, allow all page types as subpages + res = get_page_types() + else: + try: + models = [resolve_model_string(model_string, cls._meta.app_label) + for model_string in parent_page_types] + except LookupError as err: + raise ImproperlyConfigured("{0}.parent_page_types must be a list of 'app_label.model_name' strings, given {1!r}".format( + cls.__name__, err.args[1])) + res = list(map(ContentType.objects.get_for_model, models)) + + cls._clean_parent_page_types = res + + return cls._clean_parent_page_types @classmethod - def allowed_parent_pages(cls): + def allowed_parent_page_types(cls): """ - Returns the list of pages that this page type can be a subpage of + Returns the list of page types that this page type can be a subpage of """ - return Page.objects.filter(content_type__in=cls.allowed_parent_page_types()) + cls_ct = ContentType.objects.get_for_model(cls) + return [ct for ct in cls.clean_parent_page_types() + if cls_ct in ct.model_class().clean_subpage_types()] + + @classmethod + def allowed_subpage_types(cls): + """ + Returns the list of page types that this page type can be a subpage of + """ + # Special case the 'Page' class, such as the Root page or Home page - + # otherwise you can not add initial pages when setting up a site + if cls == Page: + return get_page_types() + + cls_ct = ContentType.objects.get_for_model(cls) + return [ct for ct in cls.clean_subpage_types() + if cls_ct in ct.model_class().clean_parent_page_types()] @classmethod def get_verbose_name(cls): + """ + Returns the human-readable "verbose name" of this page model e.g "Blog page". + """ # This is similar to doing cls._meta.verbose_name.title() # except this doesn't convert any characters to lowercase return ' '.join([word[0].upper() + word[1:] for word in cls._meta.verbose_name.split()]) @@ -633,7 +623,7 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, indexed.Index new_self.save() new_self._update_descendant_url_paths(old_url_path, new_url_path) - def copy(self, recursive=False, to=None, update_attrs=None): + def copy(self, recursive=False, to=None, update_attrs=None, copy_revisions=True): # Make a copy page_copy = Page.objects.get(id=self.id).specific page_copy.pk = None @@ -653,7 +643,7 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, indexed.Index # Copy child objects specific_self = self.specific - for child_relation in getattr(specific_self._meta, 'child_relations', []): + for child_relation in get_all_child_relations(specific_self): parental_key_name = child_relation.field.attname child_objects = getattr(specific_self, child_relation.get_accessor_name(), None) @@ -663,6 +653,15 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, indexed.Index setattr(child_object, parental_key_name, page_copy.id) child_object.save() + # Copy revisions + if copy_revisions: + for revision in self.revisions.all(): + revision.pk = None + revision.submitted_for_moderation = False + revision.approved_go_live_at = None + revision.page = page_copy + revision.save() + # Copy child pages if recursive: for child_page in self.get_children(): @@ -728,15 +727,6 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, indexed.Index for example, a page containing a form might have a default view of the form, and a post-submission 'thankyou' page """ - modes = self.get_page_modes() - if modes is not Page.DEFAULT_PREVIEW_MODES: - # User has overriden get_page_modes instead of using preview_modes - warnings.warn("Overriding get_page_modes is deprecated. Define a preview_modes property instead", RemovedInWagtail06Warning) - - return modes - - def get_page_modes(self): - # Deprecated accessor for the preview_modes property return Page.DEFAULT_PREVIEW_MODES @property @@ -770,12 +760,6 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, indexed.Index """ return self.serve(request) - def show_as_mode(self, mode_name): - # Deprecated API for rendering previews. If this returns something other than None, - # we know that a subclass of Page has overridden this, and we should try to work with - # that response if possible. - return None - def get_cached_paths(self): """ This returns a list of paths to invalidate in a frontend cache @@ -1070,7 +1054,7 @@ class PagePermissionTester(object): def can_add_subpage(self): if not self.user.is_active: return False - if not self.page.specific_class.clean_subpage_types(): # this page model has an empty subpage_types list, so no subpages are allowed + if not self.page.specific_class.allowed_subpage_types(): # this page model has an empty subpage_types list, so no subpages are allowed return False return self.user.is_superuser or ('add' in self.permissions) @@ -1134,7 +1118,7 @@ class PagePermissionTester(object): """ if not self.user.is_active: return False - if not self.page.specific_class.clean_subpage_types(): # this page model has an empty subpage_types list, so no subpages are allowed + if not self.page.specific_class.allowed_subpage_types(): # this page model has an empty subpage_types list, so no subpages are allowed return False return self.user.is_superuser or ('publish' in self.permissions) diff --git a/wagtail/wagtailcore/templatetags/pageurl.py b/wagtail/wagtailcore/templatetags/pageurl.py deleted file mode 100644 index 016a77759..000000000 --- a/wagtail/wagtailcore/templatetags/pageurl.py +++ /dev/null @@ -1,11 +0,0 @@ -import warnings - -from wagtail.utils.deprecation import RemovedInWagtail06Warning - - -warnings.warn( - "The pageurl tag library has been moved to wagtailcore_tags. " - "Use {% load wagtailcore_tags %} instead.", RemovedInWagtail06Warning) - - -from wagtail.wagtailcore.templatetags.wagtailcore_tags import register, pageurl diff --git a/wagtail/wagtailcore/templatetags/rich_text.py b/wagtail/wagtailcore/templatetags/rich_text.py deleted file mode 100644 index 09e93d846..000000000 --- a/wagtail/wagtailcore/templatetags/rich_text.py +++ /dev/null @@ -1,11 +0,0 @@ -import warnings - -from wagtail.utils.deprecation import RemovedInWagtail06Warning - - -warnings.warn( - "The rich_text tag library has been moved to wagtailcore_tags. " - "Use {% load wagtailcore_tags %} instead.", RemovedInWagtail06Warning) - - -from wagtail.wagtailcore.templatetags.wagtailcore_tags import register, richtext diff --git a/wagtail/wagtailcore/templatetags/wagtailcore_tags.py b/wagtail/wagtailcore/templatetags/wagtailcore_tags.py index 5e137c7a2..b68a66d63 100644 --- a/wagtail/wagtailcore/templatetags/wagtailcore_tags.py +++ b/wagtail/wagtailcore/templatetags/wagtailcore_tags.py @@ -3,6 +3,7 @@ from django.utils.safestring import mark_safe from wagtail.wagtailcore.models import Page from wagtail.wagtailcore.rich_text import expand_db_html +from wagtail.wagtailcore import __version__ register = template.Library() @@ -27,6 +28,11 @@ def slugurl(context, slug): return None +@register.simple_tag +def wagtail_version(): + return __version__ + + @register.filter def richtext(value): return mark_safe('
    ' + expand_db_html(value) + '
    ') diff --git a/wagtail/wagtailcore/tests/test_management_commands.py b/wagtail/wagtailcore/tests/test_management_commands.py index d521497dd..31c09a1f0 100644 --- a/wagtail/wagtailcore/tests/test_management_commands.py +++ b/wagtail/wagtailcore/tests/test_management_commands.py @@ -8,7 +8,7 @@ from django.utils import timezone from wagtail.wagtailcore.models import Page, PageRevision from wagtail.wagtailcore.signals import page_published, page_unpublished -from wagtail.tests.models import SimplePage +from wagtail.tests.models import SimplePage, EventPage class TestFixTreeCommand(TestCase): @@ -82,13 +82,21 @@ class TestReplaceTextCommand(TestCase): def test_replace_text(self): # Check that the christmas page is definitely about christmas - self.assertEqual(Page.objects.get(url_path='/home/events/christmas/').title, "Christmas") + christmas_page = EventPage.objects.get(url_path='/home/events/christmas/') + self.assertEqual(christmas_page.title, "Christmas") + self.assertEqual(christmas_page.speakers.first().last_name, "Christmas") + self.assertEqual(christmas_page.advert_placements.first().colour, "greener than a Christmas tree") # Make it about easter self.run_command("Christmas", "Easter") - # Check that its now about easter - self.assertEqual(Page.objects.get(url_path='/home/events/christmas/').title, "Easter") + # Check that it's now about easter + easter_page = EventPage.objects.get(url_path='/home/events/christmas/') + self.assertEqual(easter_page.title, "Easter") + + # Check that we also update the child objects (including advert_placements, which is defined on the superclass) + self.assertEqual(easter_page.speakers.first().last_name, "Easter") + self.assertEqual(easter_page.advert_placements.first().colour, "greener than a Easter tree") class TestPublishScheduledPagesCommand(TestCase): diff --git a/wagtail/wagtailcore/tests/test_page_model.py b/wagtail/wagtailcore/tests/test_page_model.py index d494b2654..804b2c4e1 100644 --- a/wagtail/wagtailcore/tests/test_page_model.py +++ b/wagtail/wagtailcore/tests/test_page_model.py @@ -1,13 +1,15 @@ import warnings +import datetime + +import pytz from django.test import TestCase, Client from django.test.utils import override_settings from django.http import HttpRequest, Http404 - -from wagtail.utils.deprecation import RemovedInWagtail06Warning +from django.contrib.contenttypes.models import ContentType from wagtail.wagtailcore.models import Page, Site -from wagtail.tests.models import EventPage, EventIndex, SimplePage, PageWithOldStyleRouteMethod +from wagtail.tests.models import EventPage, EventIndex, SimplePage, PageWithOldStyleRouteMethod, BusinessIndex, BusinessSubIndex, BusinessChild, StandardIndex class TestSiteRouting(TestCase): @@ -125,6 +127,14 @@ class TestRouting(TestCase): self.assertEqual(christmas_page.url, '/events/christmas/') self.assertEqual(christmas_page.relative_url(default_site), '/events/christmas/') + def test_page_with_no_url(self): + root = Page.objects.get(url_path='/') + default_site = Site.objects.get(is_default_site=True) + + self.assertEqual(root.full_url, None) + self.assertEqual(root.url, None) + self.assertEqual(root.relative_url(default_site), None) + def test_urls_with_multiple_sites(self): events_page = Page.objects.get(url_path='/home/events/') events_site = Site.objects.create(hostname='events.example.com', root_page=events_page) @@ -282,24 +292,6 @@ class TestServeView(TestCase): self.assertNotContains(response, '

    Events

    ') self.assertContains(response, 'Christmas') - - def test_old_style_routing(self): - """ - Test that route() methods that return an HttpResponse are correctly handled - """ - with warnings.catch_warnings(record=True) as w: - response = self.client.get('/old-style-route/') - - # Check that a RemovedInWagtail06Warning has been triggered - self.assertEqual(len(w), 1) - self.assertTrue(issubclass(w[-1].category, RemovedInWagtail06Warning)) - self.assertTrue("Page.route should return an instance of wagtailcore.url_routing.RouteResult" in str(w[-1].message)) - - expected_page = PageWithOldStyleRouteMethod.objects.get(url_path='/home/old-style-route/') - self.assertEqual(response.status_code, 200) - self.assertEqual(response.context['self'], expected_page) - self.assertEqual(response.templates[0].name, 'tests/simple_page.html') - def test_before_serve_hook(self): response = self.client.get('/events/', HTTP_USER_AGENT='GoogleBot') self.assertContains(response, 'bad googlebot no cookie') @@ -420,6 +412,50 @@ class TestCopyPage(TestCase): # Check that the speakers weren't removed from old page self.assertEqual(christmas_event.speakers.count(), 1, "Child objects were removed from the original page") + # Check that advert placements were also copied (there's a gotcha here, since the advert_placements + # relation is defined on Page, not EventPage) + self.assertEqual(new_christmas_event.advert_placements.count(), 1, "Child objects defined on the superclass weren't copied") + self.assertEqual(christmas_event.advert_placements.count(), 1, "Child objects defined on the superclass were removed from the original page") + + def test_copy_page_copies_revisions(self): + christmas_event = EventPage.objects.get(url_path='/home/events/christmas/') + christmas_event.save_revision() + + # Copy it + new_christmas_event = christmas_event.copy(update_attrs={'title': "New christmas event", 'slug': 'new-christmas-event'}) + + # Check that the revisions were copied + self.assertEqual(new_christmas_event.revisions.count(), 1, "Revisions weren't copied") + + # Check that the revisions weren't removed from old page + self.assertEqual(christmas_event.revisions.count(), 1, "Revisions were removed from the original page") + + def test_copy_page_copies_revisions_and_doesnt_submit_for_moderation(self): + christmas_event = EventPage.objects.get(url_path='/home/events/christmas/') + christmas_event.save_revision(submitted_for_moderation=True) + + # Copy it + new_christmas_event = christmas_event.copy(update_attrs={'title': "New christmas event", 'slug': 'new-christmas-event'}) + + # Check that the old revision is still submitted for moderation + self.assertTrue(christmas_event.revisions.first().submitted_for_moderation) + + # Check that the new revision is not submitted for moderation + self.assertFalse(new_christmas_event.revisions.first().submitted_for_moderation) + + def test_copy_page_copies_revisions_and_doesnt_schedule(self): + christmas_event = EventPage.objects.get(url_path='/home/events/christmas/') + christmas_event.save_revision(approved_go_live_at=datetime.datetime(2014, 9, 16, 9, 12, 00, tzinfo=pytz.utc)) + + # Copy it + new_christmas_event = christmas_event.copy(update_attrs={'title': "New christmas event", 'slug': 'new-christmas-event'}) + + # Check that the old revision is still scheduled + self.assertEqual(christmas_event.revisions.first().approved_go_live_at, datetime.datetime(2014, 9, 16, 9, 12, 00, tzinfo=pytz.utc)) + + # Check that the new revision is not scheduled + self.assertEqual(new_christmas_event.revisions.first().approved_go_live_at, None) + def test_copy_page_copies_child_objects_with_nonspecific_class(self): # Get chrismas page as Page instead of EventPage christmas_event = Page.objects.get(url_path='/home/events/christmas/') @@ -465,3 +501,55 @@ class TestCopyPage(TestCase): # Check that the speakers weren't removed from old page self.assertEqual(old_christmas_event.specific.speakers.count(), 1, "Child objects were removed from the original page") + + def test_copy_page_copies_recursively_with_revisions(self): + events_index = EventIndex.objects.get(url_path='/home/events/') + old_christmas_event = events_index.get_children().filter(slug='christmas').first() + old_christmas_event.save_revision() + + # Copy it + new_events_index = events_index.copy(recursive=True, update_attrs={'title': "New events index", 'slug': 'new-events-index'}) + + # Get christmas event + new_christmas_event = new_events_index.get_children().filter(slug='christmas').first() + + # Check that the revisions were copied + self.assertEqual(new_christmas_event.specific.revisions.count(), 1, "Revisions weren't copied") + + # Check that the revisions weren't removed from old page + self.assertEqual(old_christmas_event.specific.revisions.count(), 1, "Revisions were removed from the original page") + + +class TestSubpageTypeBusinessRules(TestCase): + def test_allowed_subpage_types(self): + # SimplePage does not define any restrictions on subpage types + # SimplePage is a valid subpage of SimplePage + self.assertIn(ContentType.objects.get_for_model(SimplePage), SimplePage.allowed_subpage_types()) + # BusinessIndex is a valid subpage of SimplePage + self.assertIn(ContentType.objects.get_for_model(BusinessIndex), SimplePage.allowed_subpage_types()) + # BusinessSubIndex is not valid, because it explicitly omits SimplePage from parent_page_types + self.assertNotIn(ContentType.objects.get_for_model(BusinessSubIndex), SimplePage.allowed_subpage_types()) + + # BusinessChild has an empty subpage_types list, so does not allow anything + self.assertNotIn(ContentType.objects.get_for_model(SimplePage), BusinessChild.allowed_subpage_types()) + self.assertNotIn(ContentType.objects.get_for_model(BusinessIndex), BusinessChild.allowed_subpage_types()) + self.assertNotIn(ContentType.objects.get_for_model(BusinessSubIndex), BusinessChild.allowed_subpage_types()) + + # BusinessSubIndex only allows BusinessChild as subpage type + self.assertNotIn(ContentType.objects.get_for_model(SimplePage), BusinessSubIndex.allowed_subpage_types()) + self.assertIn(ContentType.objects.get_for_model(BusinessChild), BusinessSubIndex.allowed_subpage_types()) + + def test_allowed_parent_page_types(self): + # SimplePage does not define any restrictions on parent page types + # SimplePage is a valid parent page of SimplePage + self.assertIn(ContentType.objects.get_for_model(SimplePage), SimplePage.allowed_parent_page_types()) + # BusinessChild cannot be a parent of anything + self.assertNotIn(ContentType.objects.get_for_model(BusinessChild), SimplePage.allowed_parent_page_types()) + + # StandardIndex does not allow anything as a parent + self.assertNotIn(ContentType.objects.get_for_model(SimplePage), StandardIndex.allowed_parent_page_types()) + self.assertNotIn(ContentType.objects.get_for_model(StandardIndex), StandardIndex.allowed_parent_page_types()) + + # BusinessSubIndex only allows BusinessIndex as a parent + self.assertNotIn(ContentType.objects.get_for_model(SimplePage), BusinessSubIndex.allowed_parent_page_types()) + self.assertIn(ContentType.objects.get_for_model(BusinessIndex), BusinessSubIndex.allowed_parent_page_types()) diff --git a/wagtail/wagtailcore/util.py b/wagtail/wagtailcore/util.py deleted file mode 100644 index 7bbe82f57..000000000 --- a/wagtail/wagtailcore/util.py +++ /dev/null @@ -1,10 +0,0 @@ -import warnings - -from wagtail.utils.deprecation import RemovedInWagtail06Warning - - -warnings.warn( - "The wagtail.wagtailcore.util module has been renamed. " - "Use wagtail.wagtailcore.utils instead.", RemovedInWagtail06Warning) - -from .utils import * diff --git a/wagtail/wagtailcore/utils.py b/wagtail/wagtailcore/utils.py index c5ad7ea8d..1880684bc 100644 --- a/wagtail/wagtailcore/utils.py +++ b/wagtail/wagtailcore/utils.py @@ -1,6 +1,38 @@ import re +from django.db.models import Model, get_model +from six import string_types def camelcase_to_underscore(str): # http://djangosnippets.org/snippets/585/ return re.sub('(((?<=[a-z])[A-Z])|([A-Z](?![A-Z]|$)))', '_\\1', str).lower().strip('_') + + +def resolve_model_string(model_string, default_app=None): + """ + Resolve an 'app_label.model_name' string into an actual model class. + If a model class is passed in, just return that. + """ + if isinstance(model_string, string_types): + try: + app_label, model_name = model_string.split(".") + except ValueError: + if default_app is not None: + # If we can't split, assume a model in current app + app_label = default_app + model_name = model_string + else: + raise ValueError("Can not resolve {0!r} into a model. Model names " + "should be in the form app_label.model_name".format( + model_string), model_string) + + model = get_model(app_label, model_name) + if not model: + raise LookupError("Can not resolve {0!r} into a model".format(model_string), model_string) + return model + + elif isinstance(model_string, type) and issubclass(model_string, Model): + return model_string + + else: + raise LookupError("Can not resolve {0!r} into a model".format(model_string), model_string) diff --git a/wagtail/wagtailcore/views.py b/wagtail/wagtailcore/views.py index 5daa642b9..f01390b83 100644 --- a/wagtail/wagtailcore/views.py +++ b/wagtail/wagtailcore/views.py @@ -5,8 +5,6 @@ from django.shortcuts import get_object_or_404, redirect from django.core.urlresolvers import reverse from django.conf import settings -from wagtail.utils.deprecation import RemovedInWagtail06Warning - from wagtail.wagtailcore import hooks from wagtail.wagtailcore.models import Page, PageViewRestriction from wagtail.wagtailcore.forms import PasswordPageViewRestrictionForm @@ -19,15 +17,8 @@ def serve(request, path): raise Http404 path_components = [component for component in path.split('/') if component] - route_result = request.site.root_page.specific.route(request, path_components) - if isinstance(route_result, HttpResponse): - warnings.warn( - "Page.route should return an instance of wagtailcore.url_routing.RouteResult, not an HttpResponse", - RemovedInWagtail06Warning - ) - return route_result + page, args, kwargs = request.site.root_page.specific.route(request, path_components) - (page, args, kwargs) = route_result for fn in hooks.get_hooks('before_serve_page'): result = fn(page, request, args, kwargs) if isinstance(result, HttpResponse): diff --git a/wagtail/wagtaildocs/__init__.py b/wagtail/wagtaildocs/__init__.py index e69de29bb..9c5f85240 100644 --- a/wagtail/wagtaildocs/__init__.py +++ b/wagtail/wagtaildocs/__init__.py @@ -0,0 +1 @@ +default_app_config = 'wagtail.wagtaildocs.apps.WagtailDocsAppConfig' diff --git a/wagtail/wagtaildocs/apps.py b/wagtail/wagtaildocs/apps.py new file mode 100644 index 000000000..eef820d18 --- /dev/null +++ b/wagtail/wagtaildocs/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class WagtailDocsAppConfig(AppConfig): + name = 'wagtail.wagtaildocs' + label = 'wagtaildocs' + verbose_name = "Wagtail documents" diff --git a/wagtail/wagtaildocs/locale/bg/LC_MESSAGES/django.mo b/wagtail/wagtaildocs/locale/bg/LC_MESSAGES/django.mo index 72177bf8e..5e08a9c43 100644 Binary files a/wagtail/wagtaildocs/locale/bg/LC_MESSAGES/django.mo and b/wagtail/wagtaildocs/locale/bg/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtaildocs/locale/bg/LC_MESSAGES/django.po b/wagtail/wagtaildocs/locale/bg/LC_MESSAGES/django.po index ff8ce4bd1..c85763455 100644 --- a/wagtail/wagtaildocs/locale/bg/LC_MESSAGES/django.po +++ b/wagtail/wagtaildocs/locale/bg/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Lyuboslav Petrov , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Bulgarian (http://www.transifex.com/projects/p/wagtail/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/projects/p/wagtail/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: models.py:21 templates/wagtaildocs/documents/list.html:11 @@ -32,7 +33,7 @@ msgstr "Файл" msgid "Tags" msgstr "Тагове" -#: wagtail_hooks.py:24 templates/wagtaildocs/documents/index.html:16 +#: wagtail_hooks.py:26 templates/wagtaildocs/documents/index.html:16 msgid "Documents" msgstr "Документи" @@ -67,8 +68,13 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Има едно съвпадение\n " -msgstr[1] "\nИма %(counter)s съвпадения" +msgstr[0] "" +"\n" +" Има едно съвпадение\n" +" " +msgstr[1] "" +"\n" +"Има %(counter)s съвпадения" #: templates/wagtaildocs/chooser/results.html:12 msgid "Latest documents" @@ -128,9 +134,11 @@ msgstr "Качени" #: templates/wagtaildocs/documents/results.html:21 #, python-format msgid "" -"You haven't uploaded any documents. Why not upload one now?" -msgstr "Не сте качили никакви документи. Защо не качите един сега?" +"You haven't uploaded any documents. Why not upload one now?" +msgstr "" +"Не сте качили никакви документи. Защо не качите един сега?" #: templates/wagtaildocs/documents/usage.html:3 #, python-format @@ -165,22 +173,22 @@ msgstr "Изчисти избора" msgid "Choose another document" msgstr "Избери друг документ" -#: views/documents.py:37 views/documents.py:46 +#: views/documents.py:38 views/documents.py:47 msgid "Search documents" msgstr "" -#: views/documents.py:86 +#: views/documents.py:92 msgid "Document '{0}' added." msgstr "Документ '{0}' добавен." -#: views/documents.py:89 views/documents.py:118 +#: views/documents.py:95 views/documents.py:129 msgid "The document could not be saved due to errors." msgstr "Документа не бе запазен поради грешки." -#: views/documents.py:115 +#: views/documents.py:126 msgid "Document '{0}' updated" msgstr "Документа '{0}' е обновен." -#: views/documents.py:137 +#: views/documents.py:148 msgid "Document '{0}' deleted." msgstr "Документа '{0}' е изтрит." diff --git a/wagtail/wagtaildocs/locale/ca/LC_MESSAGES/django.mo b/wagtail/wagtaildocs/locale/ca/LC_MESSAGES/django.mo index cc704ed7d..f68b80e2b 100644 Binary files a/wagtail/wagtaildocs/locale/ca/LC_MESSAGES/django.mo and b/wagtail/wagtaildocs/locale/ca/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtaildocs/locale/ca/LC_MESSAGES/django.po b/wagtail/wagtaildocs/locale/ca/LC_MESSAGES/django.po index 03625463e..fe2f957a8 100644 --- a/wagtail/wagtaildocs/locale/ca/LC_MESSAGES/django.po +++ b/wagtail/wagtaildocs/locale/ca/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # David Llop , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Catalan (http://www.transifex.com/projects/p/wagtail/language/ca/)\n" +"Language-Team: Catalan (http://www.transifex.com/projects/p/wagtail/language/" +"ca/)\n" +"Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: models.py:21 templates/wagtaildocs/documents/list.html:11 @@ -32,7 +33,7 @@ msgstr "Arxiu" msgid "Tags" msgstr "Tags" -#: wagtail_hooks.py:24 templates/wagtaildocs/documents/index.html:16 +#: wagtail_hooks.py:26 templates/wagtaildocs/documents/index.html:16 msgid "Documents" msgstr "Documents" @@ -67,8 +68,12 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\nHi ha un resultat" -msgstr[1] "\nHi han %(counter)s resultats" +msgstr[0] "" +"\n" +"Hi ha un resultat" +msgstr[1] "" +"\n" +"Hi han %(counter)s resultats" #: templates/wagtaildocs/chooser/results.html:12 msgid "Latest documents" @@ -128,9 +133,11 @@ msgstr "Pujat" #: templates/wagtaildocs/documents/results.html:21 #, python-format msgid "" -"You haven't uploaded any documents. Why not upload one now?" -msgstr "No has pujat cap document. Per què no pujes un ara?" +"You haven't uploaded any documents. Why not upload one now?" +msgstr "" +"No has pujat cap document. Per què no pujes un ara?" #: templates/wagtaildocs/documents/usage.html:3 #, python-format @@ -165,22 +172,22 @@ msgstr "Opció clara" msgid "Choose another document" msgstr "Escull un altre document" -#: views/documents.py:37 views/documents.py:46 +#: views/documents.py:38 views/documents.py:47 msgid "Search documents" msgstr "Cercar documents" -#: views/documents.py:86 +#: views/documents.py:92 msgid "Document '{0}' added." msgstr "Document '{0}' afegit." -#: views/documents.py:89 views/documents.py:118 +#: views/documents.py:95 views/documents.py:129 msgid "The document could not be saved due to errors." msgstr "El document no s'ha pogut desar." -#: views/documents.py:115 +#: views/documents.py:126 msgid "Document '{0}' updated" msgstr "Document '{0}' actualitzat" -#: views/documents.py:137 +#: views/documents.py:148 msgid "Document '{0}' deleted." msgstr "Document '{0}' esborrat." diff --git a/wagtail/wagtaildocs/locale/de/LC_MESSAGES/django.mo b/wagtail/wagtaildocs/locale/de/LC_MESSAGES/django.mo index d439342aa..ff73bb3b5 100644 Binary files a/wagtail/wagtaildocs/locale/de/LC_MESSAGES/django.mo and b/wagtail/wagtaildocs/locale/de/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtaildocs/locale/de/LC_MESSAGES/django.po b/wagtail/wagtaildocs/locale/de/LC_MESSAGES/django.po index ae5dccc63..e5e53a005 100644 --- a/wagtail/wagtaildocs/locale/de/LC_MESSAGES/django.po +++ b/wagtail/wagtaildocs/locale/de/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Johannes Spielmann , 2014 # karlsander , 2014 @@ -10,14 +10,15 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: German (http://www.transifex.com/projects/p/wagtail/language/de/)\n" +"Language-Team: German (http://www.transifex.com/projects/p/wagtail/language/" +"de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: models.py:21 templates/wagtaildocs/documents/list.html:11 @@ -34,7 +35,7 @@ msgstr "Datei" msgid "Tags" msgstr "Schlagwörter" -#: wagtail_hooks.py:24 templates/wagtaildocs/documents/index.html:16 +#: wagtail_hooks.py:26 templates/wagtaildocs/documents/index.html:16 msgid "Documents" msgstr "Dokumente" @@ -69,8 +70,14 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Es gibt ein Ergebnis\n " -msgstr[1] "\n Es gibt %(counter)s Ergebnisse\n " +msgstr[0] "" +"\n" +" Es gibt ein Ergebnis\n" +" " +msgstr[1] "" +"\n" +" Es gibt %(counter)s Ergebnisse\n" +" " #: templates/wagtaildocs/chooser/results.html:12 msgid "Latest documents" @@ -80,7 +87,8 @@ msgstr "Neueste Dokumente" #: templates/wagtaildocs/documents/results.html:18 #, python-format msgid "Sorry, no documents match \"%(query_string)s\"" -msgstr "Es gibt leider keine Dokumente zum Suchbegriff \"%(query_string)s\"" +msgstr "" +"Es gibt leider keine Dokumente zum Suchbegriff \"%(query_string)s\"" #: templates/wagtaildocs/documents/_file_field.html:5 msgid "Change document:" @@ -130,9 +138,11 @@ msgstr "Hochgeladen" #: templates/wagtaildocs/documents/results.html:21 #, python-format msgid "" -"You haven't uploaded any documents. Why not upload one now?" -msgstr "Sie haben noch keine Dokumente hochgeladen. Laden Sie doch jetzt eins hoch!" +"You haven't uploaded any documents. Why not upload one now?" +msgstr "" +"Sie haben noch keine Dokumente hochgeladen. Laden Sie doch jetzt eins hoch!" #: templates/wagtaildocs/documents/usage.html:3 #, python-format @@ -167,22 +177,22 @@ msgstr "Auswahl zurücksetzen" msgid "Choose another document" msgstr "Anderes Dokument wählen" -#: views/documents.py:37 views/documents.py:46 +#: views/documents.py:38 views/documents.py:47 msgid "Search documents" msgstr "Nach Dokumenten suchen" -#: views/documents.py:86 +#: views/documents.py:92 msgid "Document '{0}' added." msgstr "Dokument '{0}' wurde hinzugefügt." -#: views/documents.py:89 views/documents.py:118 +#: views/documents.py:95 views/documents.py:129 msgid "The document could not be saved due to errors." msgstr "Aufgrund eines Fehlers konnte das Dokument nicht gespeichert werden." -#: views/documents.py:115 +#: views/documents.py:126 msgid "Document '{0}' updated" msgstr "Dokument '{0}' wurde hochgeladen" -#: views/documents.py:137 +#: views/documents.py:148 msgid "Document '{0}' deleted." msgstr "Dokument '{0}' wurde gelöscht." diff --git a/wagtail/wagtaildocs/locale/el/LC_MESSAGES/django.mo b/wagtail/wagtaildocs/locale/el/LC_MESSAGES/django.mo index b8d5b0a38..e46ba6fb2 100644 Binary files a/wagtail/wagtaildocs/locale/el/LC_MESSAGES/django.mo and b/wagtail/wagtaildocs/locale/el/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtaildocs/locale/el/LC_MESSAGES/django.po b/wagtail/wagtaildocs/locale/el/LC_MESSAGES/django.po index 15b8a82e9..7819194fd 100644 --- a/wagtail/wagtaildocs/locale/el/LC_MESSAGES/django.po +++ b/wagtail/wagtaildocs/locale/el/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # serafeim , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Greek (http://www.transifex.com/projects/p/wagtail/language/el/)\n" +"Language-Team: Greek (http://www.transifex.com/projects/p/wagtail/language/" +"el/)\n" +"Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: models.py:21 templates/wagtaildocs/documents/list.html:11 @@ -32,7 +33,7 @@ msgstr "Αρχείο" msgid "Tags" msgstr "Ετικέτες" -#: wagtail_hooks.py:24 templates/wagtaildocs/documents/index.html:16 +#: wagtail_hooks.py:26 templates/wagtaildocs/documents/index.html:16 msgid "Documents" msgstr "Έγγραφα" @@ -67,8 +68,14 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Βρέθηκε ένα αποτέλεσμα\n " -msgstr[1] "\n Βρέθηκαν %(counter)s αποτελέσματα\n " +msgstr[0] "" +"\n" +" Βρέθηκε ένα αποτέλεσμα\n" +" " +msgstr[1] "" +"\n" +" Βρέθηκαν %(counter)s αποτελέσματα\n" +" " #: templates/wagtaildocs/chooser/results.html:12 msgid "Latest documents" @@ -78,7 +85,8 @@ msgstr "Τελευταία έγγραφα" #: templates/wagtaildocs/documents/results.html:18 #, python-format msgid "Sorry, no documents match \"%(query_string)s\"" -msgstr "Δε βρέθηκαν έγγραφα που να ταιριάζουν με το \"%(query_string)s\"" +msgstr "" +"Δε βρέθηκαν έγγραφα που να ταιριάζουν με το \"%(query_string)s\"" #: templates/wagtaildocs/documents/_file_field.html:5 msgid "Change document:" @@ -128,9 +136,11 @@ msgstr "Ανεβασμένο" #: templates/wagtaildocs/documents/results.html:21 #, python-format msgid "" -"You haven't uploaded any documents. Why not upload one now?" -msgstr "Δεν υπάρχουν έγγραφα. Θέλετε να ανεβάσετε μερικά;" +"You haven't uploaded any documents. Why not upload one now?" +msgstr "" +"Δεν υπάρχουν έγγραφα. Θέλετε να ανεβάσετε μερικά;" #: templates/wagtaildocs/documents/usage.html:3 #, python-format @@ -165,22 +175,22 @@ msgstr "Καθαρισμός επιλογής" msgid "Choose another document" msgstr "Επιλογή άλλου εγγράφου" -#: views/documents.py:37 views/documents.py:46 +#: views/documents.py:38 views/documents.py:47 msgid "Search documents" msgstr "Αναζήτηση εγγράφων" -#: views/documents.py:86 +#: views/documents.py:92 msgid "Document '{0}' added." msgstr "Το έγγραφο '{0}' προστέθηκε." -#: views/documents.py:89 views/documents.py:118 +#: views/documents.py:95 views/documents.py:129 msgid "The document could not be saved due to errors." msgstr "Δεν ήταν δυνατή η αποθήκευση του εγγράφου." -#: views/documents.py:115 +#: views/documents.py:126 msgid "Document '{0}' updated" msgstr "Έγινε διόρθωση του εγγράφου '{0}'" -#: views/documents.py:137 +#: views/documents.py:148 msgid "Document '{0}' deleted." msgstr "Το έγγραφο '{0}' διαγράφηκε." diff --git a/wagtail/wagtaildocs/locale/en/LC_MESSAGES/django.mo b/wagtail/wagtaildocs/locale/en/LC_MESSAGES/django.mo index 3b83aafe9..bc5cb1688 100644 Binary files a/wagtail/wagtaildocs/locale/en/LC_MESSAGES/django.mo and b/wagtail/wagtaildocs/locale/en/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtaildocs/locale/en/LC_MESSAGES/django.po b/wagtail/wagtaildocs/locale/en/LC_MESSAGES/django.po index 88d049cda..8ed1d8ba0 100644 --- a/wagtail/wagtaildocs/locale/en/LC_MESSAGES/django.po +++ b/wagtail/wagtaildocs/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -31,7 +31,7 @@ msgstr "" msgid "Tags" msgstr "" -#: wagtail_hooks.py:24 templates/wagtaildocs/documents/index.html:16 +#: wagtail_hooks.py:26 templates/wagtaildocs/documents/index.html:16 msgid "Documents" msgstr "" @@ -164,22 +164,22 @@ msgstr "" msgid "Choose another document" msgstr "" -#: views/documents.py:37 views/documents.py:46 +#: views/documents.py:38 views/documents.py:47 msgid "Search documents" msgstr "" -#: views/documents.py:86 +#: views/documents.py:92 msgid "Document '{0}' added." msgstr "" -#: views/documents.py:89 views/documents.py:118 +#: views/documents.py:95 views/documents.py:129 msgid "The document could not be saved due to errors." msgstr "" -#: views/documents.py:115 +#: views/documents.py:126 msgid "Document '{0}' updated" msgstr "" -#: views/documents.py:137 +#: views/documents.py:148 msgid "Document '{0}' deleted." msgstr "" diff --git a/wagtail/wagtaildocs/locale/es/LC_MESSAGES/django.mo b/wagtail/wagtaildocs/locale/es/LC_MESSAGES/django.mo index d68ebd190..cf50c2eac 100644 Binary files a/wagtail/wagtaildocs/locale/es/LC_MESSAGES/django.mo and b/wagtail/wagtaildocs/locale/es/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtaildocs/locale/es/LC_MESSAGES/django.po b/wagtail/wagtaildocs/locale/es/LC_MESSAGES/django.po index a8b711977..a122936a0 100644 --- a/wagtail/wagtaildocs/locale/es/LC_MESSAGES/django.po +++ b/wagtail/wagtaildocs/locale/es/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # fooflare , 2014 # fooflare , 2014 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/wagtail/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/projects/p/wagtail/language/" +"es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: models.py:21 templates/wagtaildocs/documents/list.html:11 @@ -33,7 +34,7 @@ msgstr "Archivo" msgid "Tags" msgstr "Etiquetas" -#: wagtail_hooks.py:24 templates/wagtaildocs/documents/index.html:16 +#: wagtail_hooks.py:26 templates/wagtaildocs/documents/index.html:16 msgid "Documents" msgstr "Documentos" @@ -68,8 +69,14 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Hay una coincidencia\n " -msgstr[1] "\n Hay %(counter)s coincidencias\n " +msgstr[0] "" +"\n" +" Hay una coincidencia\n" +" " +msgstr[1] "" +"\n" +" Hay %(counter)s coincidencias\n" +" " #: templates/wagtaildocs/chooser/results.html:12 msgid "Latest documents" @@ -129,9 +136,11 @@ msgstr "Subidos" #: templates/wagtaildocs/documents/results.html:21 #, python-format msgid "" -"You haven't uploaded any documents. Why not upload one now?" -msgstr "No has subido documentos. ¿Por qué no subir uno ahora?" +"You haven't uploaded any documents. Why not upload one now?" +msgstr "" +"No has subido documentos. ¿Por qué no subir uno ahora?" #: templates/wagtaildocs/documents/usage.html:3 #, python-format @@ -166,22 +175,22 @@ msgstr "Borrar selección" msgid "Choose another document" msgstr "Elegir otro documento" -#: views/documents.py:37 views/documents.py:46 +#: views/documents.py:38 views/documents.py:47 msgid "Search documents" msgstr "Buscar documentos" -#: views/documents.py:86 +#: views/documents.py:92 msgid "Document '{0}' added." msgstr "Documento '{0}' añadido." -#: views/documents.py:89 views/documents.py:118 +#: views/documents.py:95 views/documents.py:129 msgid "The document could not be saved due to errors." msgstr "El documento no pudo ser guardado debido a errores." -#: views/documents.py:115 +#: views/documents.py:126 msgid "Document '{0}' updated" msgstr "Documento '{0}' actualizado" -#: views/documents.py:137 +#: views/documents.py:148 msgid "Document '{0}' deleted." msgstr "Documento '{0}' eliminado." diff --git a/wagtail/wagtaildocs/locale/eu/LC_MESSAGES/django.mo b/wagtail/wagtaildocs/locale/eu/LC_MESSAGES/django.mo index 972e8348c..cbda75991 100644 Binary files a/wagtail/wagtaildocs/locale/eu/LC_MESSAGES/django.mo and b/wagtail/wagtaildocs/locale/eu/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtaildocs/locale/eu/LC_MESSAGES/django.po b/wagtail/wagtaildocs/locale/eu/LC_MESSAGES/django.po index aa6f5d81b..17e5726b5 100644 --- a/wagtail/wagtaildocs/locale/eu/LC_MESSAGES/django.po +++ b/wagtail/wagtaildocs/locale/eu/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Basque (http://www.transifex.com/projects/p/wagtail/language/eu/)\n" +"Language-Team: Basque (http://www.transifex.com/projects/p/wagtail/language/" +"eu/)\n" +"Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: models.py:21 templates/wagtaildocs/documents/list.html:11 @@ -31,7 +32,7 @@ msgstr "" msgid "Tags" msgstr "" -#: wagtail_hooks.py:24 templates/wagtaildocs/documents/index.html:16 +#: wagtail_hooks.py:26 templates/wagtaildocs/documents/index.html:16 msgid "Documents" msgstr "" @@ -127,8 +128,8 @@ msgstr "" #: templates/wagtaildocs/documents/results.html:21 #, python-format msgid "" -"You haven't uploaded any documents. Why not upload one now?" +"You haven't uploaded any documents. Why not upload one now?" msgstr "" #: templates/wagtaildocs/documents/usage.html:3 @@ -164,22 +165,22 @@ msgstr "" msgid "Choose another document" msgstr "" -#: views/documents.py:37 views/documents.py:46 +#: views/documents.py:38 views/documents.py:47 msgid "Search documents" msgstr "" -#: views/documents.py:86 +#: views/documents.py:92 msgid "Document '{0}' added." msgstr "" -#: views/documents.py:89 views/documents.py:118 +#: views/documents.py:95 views/documents.py:129 msgid "The document could not be saved due to errors." msgstr "" -#: views/documents.py:115 +#: views/documents.py:126 msgid "Document '{0}' updated" msgstr "" -#: views/documents.py:137 +#: views/documents.py:148 msgid "Document '{0}' deleted." msgstr "" diff --git a/wagtail/wagtaildocs/locale/fr/LC_MESSAGES/django.mo b/wagtail/wagtaildocs/locale/fr/LC_MESSAGES/django.mo index 96d2368bd..3647c2a5f 100644 Binary files a/wagtail/wagtaildocs/locale/fr/LC_MESSAGES/django.mo and b/wagtail/wagtaildocs/locale/fr/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtaildocs/locale/fr/LC_MESSAGES/django.po b/wagtail/wagtaildocs/locale/fr/LC_MESSAGES/django.po index ec5c5f9bf..ec8da90b8 100644 --- a/wagtail/wagtaildocs/locale/fr/LC_MESSAGES/django.po +++ b/wagtail/wagtaildocs/locale/fr/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # nahuel, 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: French (http://www.transifex.com/projects/p/wagtail/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/projects/p/wagtail/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: models.py:21 templates/wagtaildocs/documents/list.html:11 @@ -32,7 +33,7 @@ msgstr "Fichier" msgid "Tags" msgstr "Mots-clés" -#: wagtail_hooks.py:24 templates/wagtaildocs/documents/index.html:16 +#: wagtail_hooks.py:26 templates/wagtaildocs/documents/index.html:16 msgid "Documents" msgstr "Documents" @@ -128,8 +129,8 @@ msgstr "" #: templates/wagtaildocs/documents/results.html:21 #, python-format msgid "" -"You haven't uploaded any documents. Why not upload one now?" +"You haven't uploaded any documents. Why not upload one now?" msgstr "" #: templates/wagtaildocs/documents/usage.html:3 @@ -165,22 +166,22 @@ msgstr "" msgid "Choose another document" msgstr "" -#: views/documents.py:37 views/documents.py:46 +#: views/documents.py:38 views/documents.py:47 msgid "Search documents" msgstr "" -#: views/documents.py:86 +#: views/documents.py:92 msgid "Document '{0}' added." msgstr "Document '{0}' ajouté." -#: views/documents.py:89 views/documents.py:118 +#: views/documents.py:95 views/documents.py:129 msgid "The document could not be saved due to errors." msgstr "Le document ne peut être enregistré du fait d'erreurs." -#: views/documents.py:115 +#: views/documents.py:126 msgid "Document '{0}' updated" msgstr "Document '{0}' mis à jour" -#: views/documents.py:137 +#: views/documents.py:148 msgid "Document '{0}' deleted." msgstr "Document '{0}' supprimé." diff --git a/wagtail/wagtaildocs/locale/gl/LC_MESSAGES/django.mo b/wagtail/wagtaildocs/locale/gl/LC_MESSAGES/django.mo index ea158d485..7348c4215 100644 Binary files a/wagtail/wagtaildocs/locale/gl/LC_MESSAGES/django.mo and b/wagtail/wagtaildocs/locale/gl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtaildocs/locale/gl/LC_MESSAGES/django.po b/wagtail/wagtaildocs/locale/gl/LC_MESSAGES/django.po index 4a2ce5bef..c7dd8fc56 100644 --- a/wagtail/wagtaildocs/locale/gl/LC_MESSAGES/django.po +++ b/wagtail/wagtaildocs/locale/gl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # fooflare , 2014 # fooflare , 2014 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Galician (http://www.transifex.com/projects/p/wagtail/language/gl/)\n" +"Language-Team: Galician (http://www.transifex.com/projects/p/wagtail/" +"language/gl/)\n" +"Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: models.py:21 templates/wagtaildocs/documents/list.html:11 @@ -33,7 +34,7 @@ msgstr "Arquivo" msgid "Tags" msgstr "Etiquetas" -#: wagtail_hooks.py:24 templates/wagtaildocs/documents/index.html:16 +#: wagtail_hooks.py:26 templates/wagtaildocs/documents/index.html:16 msgid "Documents" msgstr "Documentos" @@ -68,8 +69,14 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Hai unha coincidencia\n " -msgstr[1] "\n Hai %(counter)s coincidencias\n " +msgstr[0] "" +"\n" +" Hai unha coincidencia\n" +" " +msgstr[1] "" +"\n" +" Hai %(counter)s coincidencias\n" +" " #: templates/wagtaildocs/chooser/results.html:12 msgid "Latest documents" @@ -129,9 +136,11 @@ msgstr "Subidos" #: templates/wagtaildocs/documents/results.html:21 #, python-format msgid "" -"You haven't uploaded any documents. Why not upload one now?" -msgstr "Non subiches documentos. ¿Por qué non subir un agora?" +"You haven't uploaded any documents. Why not upload one now?" +msgstr "" +"Non subiches documentos. ¿Por qué non subir un agora?" #: templates/wagtaildocs/documents/usage.html:3 #, python-format @@ -166,22 +175,22 @@ msgstr "Borrar selección" msgid "Choose another document" msgstr "Elixir outro documento" -#: views/documents.py:37 views/documents.py:46 +#: views/documents.py:38 views/documents.py:47 msgid "Search documents" msgstr "Buscar documentos" -#: views/documents.py:86 +#: views/documents.py:92 msgid "Document '{0}' added." msgstr "Documento '{0}' engadido." -#: views/documents.py:89 views/documents.py:118 +#: views/documents.py:95 views/documents.py:129 msgid "The document could not be saved due to errors." msgstr "O documento non puido ser gardado debido a erros." -#: views/documents.py:115 +#: views/documents.py:126 msgid "Document '{0}' updated" msgstr "Documento '{0}' actualizado" -#: views/documents.py:137 +#: views/documents.py:148 msgid "Document '{0}' deleted." msgstr "Documento '{0}' eliminado." diff --git a/wagtail/wagtaildocs/locale/mn/LC_MESSAGES/django.mo b/wagtail/wagtaildocs/locale/mn/LC_MESSAGES/django.mo index 25e7bc353..1970643be 100644 Binary files a/wagtail/wagtaildocs/locale/mn/LC_MESSAGES/django.mo and b/wagtail/wagtaildocs/locale/mn/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtaildocs/locale/mn/LC_MESSAGES/django.po b/wagtail/wagtaildocs/locale/mn/LC_MESSAGES/django.po index 5e127bb88..9a59b5afa 100644 --- a/wagtail/wagtaildocs/locale/mn/LC_MESSAGES/django.po +++ b/wagtail/wagtaildocs/locale/mn/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Mongolian (http://www.transifex.com/projects/p/wagtail/language/mn/)\n" +"Language-Team: Mongolian (http://www.transifex.com/projects/p/wagtail/" +"language/mn/)\n" +"Language: mn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: mn\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: models.py:21 templates/wagtaildocs/documents/list.html:11 @@ -31,7 +32,7 @@ msgstr "" msgid "Tags" msgstr "" -#: wagtail_hooks.py:24 templates/wagtaildocs/documents/index.html:16 +#: wagtail_hooks.py:26 templates/wagtaildocs/documents/index.html:16 msgid "Documents" msgstr "" @@ -127,8 +128,8 @@ msgstr "" #: templates/wagtaildocs/documents/results.html:21 #, python-format msgid "" -"You haven't uploaded any documents. Why not upload one now?" +"You haven't uploaded any documents. Why not upload one now?" msgstr "" #: templates/wagtaildocs/documents/usage.html:3 @@ -164,22 +165,22 @@ msgstr "" msgid "Choose another document" msgstr "" -#: views/documents.py:37 views/documents.py:46 +#: views/documents.py:38 views/documents.py:47 msgid "Search documents" msgstr "" -#: views/documents.py:86 +#: views/documents.py:92 msgid "Document '{0}' added." msgstr "" -#: views/documents.py:89 views/documents.py:118 +#: views/documents.py:95 views/documents.py:129 msgid "The document could not be saved due to errors." msgstr "" -#: views/documents.py:115 +#: views/documents.py:126 msgid "Document '{0}' updated" msgstr "" -#: views/documents.py:137 +#: views/documents.py:148 msgid "Document '{0}' deleted." msgstr "" diff --git a/wagtail/wagtaildocs/locale/pl/LC_MESSAGES/django.mo b/wagtail/wagtaildocs/locale/pl/LC_MESSAGES/django.mo index bb1d9fb47..d2fd302b3 100644 Binary files a/wagtail/wagtaildocs/locale/pl/LC_MESSAGES/django.mo and b/wagtail/wagtaildocs/locale/pl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtaildocs/locale/pl/LC_MESSAGES/django.po b/wagtail/wagtaildocs/locale/pl/LC_MESSAGES/django.po index 81db48471..19dd430fe 100644 --- a/wagtail/wagtaildocs/locale/pl/LC_MESSAGES/django.po +++ b/wagtail/wagtaildocs/locale/pl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # utek , 2014 # utek , 2014 @@ -9,15 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Polish (http://www.transifex.com/projects/p/wagtail/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/projects/p/wagtail/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" #: models.py:21 templates/wagtaildocs/documents/list.html:11 #: templates/wagtaildocs/documents/list.html:14 @@ -33,7 +35,7 @@ msgstr "Plik" msgid "Tags" msgstr "Tagi" -#: wagtail_hooks.py:24 templates/wagtaildocs/documents/index.html:16 +#: wagtail_hooks.py:26 templates/wagtaildocs/documents/index.html:16 msgid "Documents" msgstr "Dokumenty" @@ -68,9 +70,18 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Jedno dopasowanie\n " -msgstr[1] "\n Są %(counter)s dopasowania\n " -msgstr[2] "\n Jest %(counter)s dopasowań\n " +msgstr[0] "" +"\n" +" Jedno dopasowanie\n" +" " +msgstr[1] "" +"\n" +" Są %(counter)s dopasowania\n" +" " +msgstr[2] "" +"\n" +" Jest %(counter)s dopasowań\n" +" " #: templates/wagtaildocs/chooser/results.html:12 msgid "Latest documents" @@ -80,7 +91,8 @@ msgstr "Najnowsze dokumenty" #: templates/wagtaildocs/documents/results.html:18 #, python-format msgid "Sorry, no documents match \"%(query_string)s\"" -msgstr "Przepraszamy, żaden dokument nie pasuje do \"%(query_string)s\"" +msgstr "" +"Przepraszamy, żaden dokument nie pasuje do \"%(query_string)s\"" #: templates/wagtaildocs/documents/_file_field.html:5 msgid "Change document:" @@ -130,9 +142,11 @@ msgstr "Przesłano" #: templates/wagtaildocs/documents/results.html:21 #, python-format msgid "" -"You haven't uploaded any documents. Why not upload one now?" -msgstr "Nie przesłano żadnych dokumentów. Czemu nie dodać jednego teraz?" +"You haven't uploaded any documents. Why not upload one now?" +msgstr "" +"Nie przesłano żadnych dokumentów. Czemu nie dodać jednego teraz?" #: templates/wagtaildocs/documents/usage.html:3 #, python-format @@ -167,22 +181,22 @@ msgstr "Wyczyść wybór" msgid "Choose another document" msgstr "Wybierz inny dokument" -#: views/documents.py:37 views/documents.py:46 +#: views/documents.py:38 views/documents.py:47 msgid "Search documents" msgstr "Szukaj dokumentów" -#: views/documents.py:86 +#: views/documents.py:92 msgid "Document '{0}' added." msgstr "Dodano dokument '{0}'." -#: views/documents.py:89 views/documents.py:118 +#: views/documents.py:95 views/documents.py:129 msgid "The document could not be saved due to errors." msgstr "Dokument nie mógł zostać zapisany z powodu błędów." -#: views/documents.py:115 +#: views/documents.py:126 msgid "Document '{0}' updated" msgstr "Uaktualniono dokument '{0}'" -#: views/documents.py:137 +#: views/documents.py:148 msgid "Document '{0}' deleted." msgstr "Usunięto dokument '{0}'" diff --git a/wagtail/wagtaildocs/locale/pt_BR/LC_MESSAGES/django.mo b/wagtail/wagtaildocs/locale/pt_BR/LC_MESSAGES/django.mo new file mode 100644 index 000000000..cc180cbe7 Binary files /dev/null and b/wagtail/wagtaildocs/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtaildocs/locale/pt_BR/LC_MESSAGES/django.po b/wagtail/wagtaildocs/locale/pt_BR/LC_MESSAGES/django.po new file mode 100644 index 000000000..e71a1f87a --- /dev/null +++ b/wagtail/wagtaildocs/locale/pt_BR/LC_MESSAGES/django.po @@ -0,0 +1,186 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Thiago Cangussu , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-01 15:43+0000\n" +"Last-Translator: Karl Hobley \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/wagtail/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: models.py:21 templates/wagtaildocs/documents/list.html:11 +#: templates/wagtaildocs/documents/list.html:14 +#: templates/wagtaildocs/documents/usage.html:16 +msgid "Title" +msgstr "Título" + +#: models.py:22 templates/wagtaildocs/documents/list.html:17 +msgid "File" +msgstr "Arquivo" + +#: models.py:26 +msgid "Tags" +msgstr "Etiquetas" + +#: wagtail_hooks.py:26 templates/wagtaildocs/documents/index.html:16 +msgid "Documents" +msgstr "Documentos" + +#: templates/wagtaildocs/chooser/chooser.html:2 +#: templates/wagtaildocs/edit_handlers/document_chooser_panel.html:11 +msgid "Choose a document" +msgstr "Escolha um documento" + +#: templates/wagtaildocs/chooser/chooser.html:7 +#: templates/wagtaildocs/chooser/chooser.html:19 +msgid "Search" +msgstr "Buscar" + +#: templates/wagtaildocs/chooser/chooser.html:8 +msgid "Upload" +msgstr "Enviar" + +#: templates/wagtaildocs/chooser/chooser.html:34 +#: templates/wagtaildocs/documents/add.html:25 +#: templates/wagtaildocs/documents/edit.html:29 +msgid "Save" +msgstr "Salvar" + +#: templates/wagtaildocs/chooser/results.html:5 +#: templates/wagtaildocs/documents/results.html:5 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "\n Há um resultado\n " +msgstr[1] "\n Há %(counter)s resultados\n " + +#: templates/wagtaildocs/chooser/results.html:12 +msgid "Latest documents" +msgstr "Últimos documentos" + +#: templates/wagtaildocs/chooser/results.html:19 +#: templates/wagtaildocs/documents/results.html:18 +#, python-format +msgid "Sorry, no documents match \"%(query_string)s\"" +msgstr "Desculpe, não há resultados para \"%(query_string)s\"" + +#: templates/wagtaildocs/documents/_file_field.html:5 +msgid "Change document:" +msgstr "Alterar documento" + +#: templates/wagtaildocs/documents/add.html:4 +#: templates/wagtaildocs/documents/index.html:17 +msgid "Add a document" +msgstr "Adicionar um documento" + +#: templates/wagtaildocs/documents/add.html:15 +msgid "Add document" +msgstr "Adicionar documento" + +#: templates/wagtaildocs/documents/confirm_delete.html:3 +#, python-format +msgid "Delete %(title)s" +msgstr "Apagar %(title)s" + +#: templates/wagtaildocs/documents/confirm_delete.html:6 +#: templates/wagtaildocs/documents/edit.html:29 +msgid "Delete document" +msgstr "Apagar documento" + +#: templates/wagtaildocs/documents/confirm_delete.html:10 +msgid "Are you sure you want to delete this document?" +msgstr "Você tem certeza que deseja apagar este documento?" + +#: templates/wagtaildocs/documents/confirm_delete.html:13 +msgid "Yes, delete" +msgstr "Sim, apague" + +#: templates/wagtaildocs/documents/edit.html:4 +#, python-format +msgid "Editing %(title)s" +msgstr "Editando %(title)s" + +#: templates/wagtaildocs/documents/edit.html:15 +msgid "Editing" +msgstr "Editando" + +#: templates/wagtaildocs/documents/list.html:21 +#: templates/wagtaildocs/documents/list.html:24 +msgid "Uploaded" +msgstr "Enviados" + +#: templates/wagtaildocs/documents/results.html:21 +#, python-format +msgid "" +"You haven't uploaded any documents. Why not upload one now?" +msgstr "Você não enviou nenhum documento. Por que não enviar um agora?" + +#: templates/wagtaildocs/documents/usage.html:3 +#, python-format +msgid "Usage of %(title)s" +msgstr "" + +#: templates/wagtaildocs/documents/usage.html:5 +msgid "Usage of" +msgstr "" + +#: templates/wagtaildocs/documents/usage.html:17 +msgid "Parent" +msgstr "" + +#: templates/wagtaildocs/documents/usage.html:18 +msgid "Type" +msgstr "" + +#: templates/wagtaildocs/documents/usage.html:19 +msgid "Status" +msgstr "" + +#: templates/wagtaildocs/documents/usage.html:26 +msgid "Edit this page" +msgstr "" + +#: templates/wagtaildocs/edit_handlers/document_chooser_panel.html:9 +msgid "Clear choice" +msgstr "Limpar escolha" + +#: templates/wagtaildocs/edit_handlers/document_chooser_panel.html:10 +msgid "Choose another document" +msgstr "Escolha um outro documento" + +#: views/documents.py:38 views/documents.py:47 +msgid "Search documents" +msgstr "Buscar documentos" + +#: views/documents.py:92 +msgid "Document '{0}' added." +msgstr "Documento '{0}' adicionado." + +#: views/documents.py:95 views/documents.py:129 +msgid "The document could not be saved due to errors." +msgstr "O documento não pôde ser salvo devido à erros." + +#: views/documents.py:126 +msgid "Document '{0}' updated" +msgstr "Documento '{0}' atualizado" + +#: views/documents.py:148 +msgid "Document '{0}' deleted." +msgstr "Documento '{0}' apagado." diff --git a/wagtail/wagtaildocs/locale/pt_PT/LC_MESSAGES/django.mo b/wagtail/wagtaildocs/locale/pt_PT/LC_MESSAGES/django.mo new file mode 100644 index 000000000..314660442 Binary files /dev/null and b/wagtail/wagtaildocs/locale/pt_PT/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtaildocs/locale/pt_PT/LC_MESSAGES/django.po b/wagtail/wagtaildocs/locale/pt_PT/LC_MESSAGES/django.po new file mode 100644 index 000000000..c80f8fa55 --- /dev/null +++ b/wagtail/wagtaildocs/locale/pt_PT/LC_MESSAGES/django.po @@ -0,0 +1,196 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Thiago Cangussu , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail 0.5.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-03 01:53+0100\n" +"Last-Translator: Jose Lourenco \n" +"Language-Team: \n" +"Language: pt_PT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: models.py:21 templates/wagtaildocs/documents/list.html:11 +#: templates/wagtaildocs/documents/list.html:14 +#: templates/wagtaildocs/documents/usage.html:16 +msgid "Title" +msgstr "Título" + +#: models.py:22 templates/wagtaildocs/documents/list.html:17 +msgid "File" +msgstr "Ficheiro" + +#: models.py:26 +msgid "Tags" +msgstr "Etiquetas" + +#: wagtail_hooks.py:26 templates/wagtaildocs/documents/index.html:16 +msgid "Documents" +msgstr "Documentos" + +#: templates/wagtaildocs/chooser/chooser.html:2 +#: templates/wagtaildocs/edit_handlers/document_chooser_panel.html:11 +msgid "Choose a document" +msgstr "Escolher um documento" + +#: templates/wagtaildocs/chooser/chooser.html:7 +#: templates/wagtaildocs/chooser/chooser.html:19 +msgid "Search" +msgstr "Procurar" + +#: templates/wagtaildocs/chooser/chooser.html:8 +msgid "Upload" +msgstr "Enviar" + +#: templates/wagtaildocs/chooser/chooser.html:34 +#: templates/wagtaildocs/documents/add.html:25 +#: templates/wagtaildocs/documents/edit.html:29 +msgid "Save" +msgstr "Guardar" + +#: templates/wagtaildocs/chooser/results.html:5 +#: templates/wagtaildocs/documents/results.html:5 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "" +"\n" +" Existe uma correspondência\n" +" " +msgstr[1] "" +"\n" +" Existem %(counter)s correspondências\n" +" " + +#: templates/wagtaildocs/chooser/results.html:12 +msgid "Latest documents" +msgstr "Últimos documentos" + +#: templates/wagtaildocs/chooser/results.html:19 +#: templates/wagtaildocs/documents/results.html:18 +#, python-format +msgid "Sorry, no documents match \"%(query_string)s\"" +msgstr "Desculpe, nenhum documento corresponde a \"%(query_string)s\"" + +#: templates/wagtaildocs/documents/_file_field.html:5 +msgid "Change document:" +msgstr "Alterar documento" + +#: templates/wagtaildocs/documents/add.html:4 +#: templates/wagtaildocs/documents/index.html:17 +msgid "Add a document" +msgstr "Adicionar um documento" + +#: templates/wagtaildocs/documents/add.html:15 +msgid "Add document" +msgstr "Adicionar documento" + +#: templates/wagtaildocs/documents/confirm_delete.html:3 +#, python-format +msgid "Delete %(title)s" +msgstr "Eliminar %(title)s" + +#: templates/wagtaildocs/documents/confirm_delete.html:6 +#: templates/wagtaildocs/documents/edit.html:29 +msgid "Delete document" +msgstr "Eliminar documento" + +#: templates/wagtaildocs/documents/confirm_delete.html:10 +msgid "Are you sure you want to delete this document?" +msgstr "Tem certeza que quer eliminar este documento?" + +#: templates/wagtaildocs/documents/confirm_delete.html:13 +msgid "Yes, delete" +msgstr "Sim, eliminar" + +#: templates/wagtaildocs/documents/edit.html:4 +#, python-format +msgid "Editing %(title)s" +msgstr "Editando %(title)s" + +#: templates/wagtaildocs/documents/edit.html:15 +msgid "Editing" +msgstr "Editando" + +#: templates/wagtaildocs/documents/list.html:21 +#: templates/wagtaildocs/documents/list.html:24 +msgid "Uploaded" +msgstr "Enviado" + +#: templates/wagtaildocs/documents/results.html:21 +#, python-format +msgid "" +"You haven't uploaded any documents. Why not upload one now?" +msgstr "" +"Ainda não enviou nenhum documento. Porque não enviar um agora?" + +#: templates/wagtaildocs/documents/usage.html:3 +#, python-format +msgid "Usage of %(title)s" +msgstr "Utilização de %(title)s" + +#: templates/wagtaildocs/documents/usage.html:5 +msgid "Usage of" +msgstr "Utilização de" + +#: templates/wagtaildocs/documents/usage.html:17 +msgid "Parent" +msgstr "Ascendente" + +#: templates/wagtaildocs/documents/usage.html:18 +msgid "Type" +msgstr "Tipo" + +#: templates/wagtaildocs/documents/usage.html:19 +msgid "Status" +msgstr "Estado" + +#: templates/wagtaildocs/documents/usage.html:26 +msgid "Edit this page" +msgstr "Editar esta ágina" + +#: templates/wagtaildocs/edit_handlers/document_chooser_panel.html:9 +msgid "Clear choice" +msgstr "Limpar escolha" + +#: templates/wagtaildocs/edit_handlers/document_chooser_panel.html:10 +msgid "Choose another document" +msgstr "Escolher outro documento" + +#: views/documents.py:38 views/documents.py:47 +msgid "Search documents" +msgstr "Procurar documentos" + +#: views/documents.py:92 +msgid "Document '{0}' added." +msgstr "Documento '{0}' adicionado." + +#: views/documents.py:95 views/documents.py:129 +msgid "The document could not be saved due to errors." +msgstr "O documento não pôde ser guardado devido a erros." + +#: views/documents.py:126 +msgid "Document '{0}' updated" +msgstr "Documento '{0}' atualizado" + +#: views/documents.py:148 +msgid "Document '{0}' deleted." +msgstr "Documento '{0}' apagado." diff --git a/wagtail/wagtaildocs/locale/ro/LC_MESSAGES/django.mo b/wagtail/wagtaildocs/locale/ro/LC_MESSAGES/django.mo index 5e8f2dfa6..a9ec19cdf 100644 Binary files a/wagtail/wagtaildocs/locale/ro/LC_MESSAGES/django.mo and b/wagtail/wagtaildocs/locale/ro/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtaildocs/locale/ro/LC_MESSAGES/django.po b/wagtail/wagtaildocs/locale/ro/LC_MESSAGES/django.po index 15b64f26e..631545a94 100644 --- a/wagtail/wagtaildocs/locale/ro/LC_MESSAGES/django.po +++ b/wagtail/wagtaildocs/locale/ro/LC_MESSAGES/django.po @@ -1,22 +1,24 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Dan Braghis, 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Romanian (http://www.transifex.com/projects/p/wagtail/language/ro/)\n" +"Language-Team: Romanian (http://www.transifex.com/projects/p/wagtail/" +"language/ro/)\n" +"Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: models.py:21 templates/wagtaildocs/documents/list.html:11 #: templates/wagtaildocs/documents/list.html:14 @@ -32,7 +34,7 @@ msgstr "Fișier" msgid "Tags" msgstr "Etichete" -#: wagtail_hooks.py:24 templates/wagtaildocs/documents/index.html:16 +#: wagtail_hooks.py:26 templates/wagtaildocs/documents/index.html:16 msgid "Documents" msgstr "Documente" @@ -67,9 +69,15 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\nExistă o potrivire" -msgstr[1] "\nSunt %(counter)s potriviri" -msgstr[2] "\nSunt %(counter)s potriviri" +msgstr[0] "" +"\n" +"Există o potrivire" +msgstr[1] "" +"\n" +"Sunt %(counter)s potriviri" +msgstr[2] "" +"\n" +"Sunt %(counter)s potriviri" #: templates/wagtaildocs/chooser/results.html:12 msgid "Latest documents" @@ -79,7 +87,9 @@ msgstr "Documente recente" #: templates/wagtaildocs/documents/results.html:18 #, python-format msgid "Sorry, no documents match \"%(query_string)s\"" -msgstr "Ne pare rău, \"%(query_string)s\" nu se potrivește cu nici un document" +msgstr "" +"Ne pare rău, \"%(query_string)s\" nu se potrivește cu nici un " +"document" #: templates/wagtaildocs/documents/_file_field.html:5 msgid "Change document:" @@ -129,9 +139,11 @@ msgstr "Încărcat" #: templates/wagtaildocs/documents/results.html:21 #, python-format msgid "" -"You haven't uploaded any documents. Why not upload one now?" -msgstr "Nu ați încărcat nici un document. De ce să nu adăugați unul?" +"You haven't uploaded any documents. Why not upload one now?" +msgstr "" +"Nu ați încărcat nici un document. De ce să nu adăugați unul?" #: templates/wagtaildocs/documents/usage.html:3 #, python-format @@ -166,22 +178,22 @@ msgstr "Curăță selecție" msgid "Choose another document" msgstr "Alege alt document" -#: views/documents.py:37 views/documents.py:46 +#: views/documents.py:38 views/documents.py:47 msgid "Search documents" msgstr "Caută documente" -#: views/documents.py:86 +#: views/documents.py:92 msgid "Document '{0}' added." msgstr "Documentul '{0}' a fost adăugat." -#: views/documents.py:89 views/documents.py:118 +#: views/documents.py:95 views/documents.py:129 msgid "The document could not be saved due to errors." msgstr "Documentul nu a fost salvat din cauza erorilor." -#: views/documents.py:115 +#: views/documents.py:126 msgid "Document '{0}' updated" msgstr "Documentul '{0}' a fost actualizat." -#: views/documents.py:137 +#: views/documents.py:148 msgid "Document '{0}' deleted." msgstr "Documentul '{0}' a fost șters." diff --git a/wagtail/wagtaildocs/locale/ru/LC_MESSAGES/django.mo b/wagtail/wagtaildocs/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 000000000..bb8e69c70 Binary files /dev/null and b/wagtail/wagtaildocs/locale/ru/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtaildocs/locale/ru/LC_MESSAGES/django.po b/wagtail/wagtaildocs/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 000000000..8a11861fa --- /dev/null +++ b/wagtail/wagtaildocs/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,187 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# HNKNTA , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-01 15:43+0000\n" +"Last-Translator: Karl Hobley \n" +"Language-Team: Russian (http://www.transifex.com/projects/p/wagtail/language/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: models.py:21 templates/wagtaildocs/documents/list.html:11 +#: templates/wagtaildocs/documents/list.html:14 +#: templates/wagtaildocs/documents/usage.html:16 +msgid "Title" +msgstr "Заголовок" + +#: models.py:22 templates/wagtaildocs/documents/list.html:17 +msgid "File" +msgstr "Файл" + +#: models.py:26 +msgid "Tags" +msgstr "Тэги" + +#: wagtail_hooks.py:26 templates/wagtaildocs/documents/index.html:16 +msgid "Documents" +msgstr "Документы" + +#: templates/wagtaildocs/chooser/chooser.html:2 +#: templates/wagtaildocs/edit_handlers/document_chooser_panel.html:11 +msgid "Choose a document" +msgstr "Выберите документ" + +#: templates/wagtaildocs/chooser/chooser.html:7 +#: templates/wagtaildocs/chooser/chooser.html:19 +msgid "Search" +msgstr "Поиск" + +#: templates/wagtaildocs/chooser/chooser.html:8 +msgid "Upload" +msgstr "Загрузка" + +#: templates/wagtaildocs/chooser/chooser.html:34 +#: templates/wagtaildocs/documents/add.html:25 +#: templates/wagtaildocs/documents/edit.html:29 +msgid "Save" +msgstr "Сохранить" + +#: templates/wagtaildocs/chooser/results.html:5 +#: templates/wagtaildocs/documents/results.html:5 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "\nНайдено одно совпадение" +msgstr[1] "\nНайдено %(counter)s совпадений" +msgstr[2] "\nНайдено %(counter)s совпадений" + +#: templates/wagtaildocs/chooser/results.html:12 +msgid "Latest documents" +msgstr "Последние документы" + +#: templates/wagtaildocs/chooser/results.html:19 +#: templates/wagtaildocs/documents/results.html:18 +#, python-format +msgid "Sorry, no documents match \"%(query_string)s\"" +msgstr "Извините, подходящих документов не найдено \"%(query_string)s\"" + +#: templates/wagtaildocs/documents/_file_field.html:5 +msgid "Change document:" +msgstr "Изменить документ" + +#: templates/wagtaildocs/documents/add.html:4 +#: templates/wagtaildocs/documents/index.html:17 +msgid "Add a document" +msgstr "Добавить документ" + +#: templates/wagtaildocs/documents/add.html:15 +msgid "Add document" +msgstr "Добавить документ" + +#: templates/wagtaildocs/documents/confirm_delete.html:3 +#, python-format +msgid "Delete %(title)s" +msgstr "Удалить %(title)s" + +#: templates/wagtaildocs/documents/confirm_delete.html:6 +#: templates/wagtaildocs/documents/edit.html:29 +msgid "Delete document" +msgstr "Удалить документ" + +#: templates/wagtaildocs/documents/confirm_delete.html:10 +msgid "Are you sure you want to delete this document?" +msgstr "Вы уверены, что хотите удалить этот документ?" + +#: templates/wagtaildocs/documents/confirm_delete.html:13 +msgid "Yes, delete" +msgstr "Да, удалить" + +#: templates/wagtaildocs/documents/edit.html:4 +#, python-format +msgid "Editing %(title)s" +msgstr "Редактирование %(title)s" + +#: templates/wagtaildocs/documents/edit.html:15 +msgid "Editing" +msgstr "Редактирование" + +#: templates/wagtaildocs/documents/list.html:21 +#: templates/wagtaildocs/documents/list.html:24 +msgid "Uploaded" +msgstr "Загружено" + +#: templates/wagtaildocs/documents/results.html:21 +#, python-format +msgid "" +"You haven't uploaded any documents. Why not upload one now?" +msgstr "Вы еще не загрузили ни одного документа. Почему бы не сделать это сейчас?" + +#: templates/wagtaildocs/documents/usage.html:3 +#, python-format +msgid "Usage of %(title)s" +msgstr "" + +#: templates/wagtaildocs/documents/usage.html:5 +msgid "Usage of" +msgstr "" + +#: templates/wagtaildocs/documents/usage.html:17 +msgid "Parent" +msgstr "" + +#: templates/wagtaildocs/documents/usage.html:18 +msgid "Type" +msgstr "" + +#: templates/wagtaildocs/documents/usage.html:19 +msgid "Status" +msgstr "" + +#: templates/wagtaildocs/documents/usage.html:26 +msgid "Edit this page" +msgstr "" + +#: templates/wagtaildocs/edit_handlers/document_chooser_panel.html:9 +msgid "Clear choice" +msgstr "Очистить выбор" + +#: templates/wagtaildocs/edit_handlers/document_chooser_panel.html:10 +msgid "Choose another document" +msgstr "Выбрать другой документ" + +#: views/documents.py:38 views/documents.py:47 +msgid "Search documents" +msgstr "Поиск документов" + +#: views/documents.py:92 +msgid "Document '{0}' added." +msgstr "Документ '{0}' добавлен." + +#: views/documents.py:95 views/documents.py:129 +msgid "The document could not be saved due to errors." +msgstr "Документ не может быть сохранен из-за ошибок." + +#: views/documents.py:126 +msgid "Document '{0}' updated" +msgstr "Документ '{0}' обновлен" + +#: views/documents.py:148 +msgid "Document '{0}' deleted." +msgstr "Документ '{0}' удален." diff --git a/wagtail/wagtaildocs/locale/vi/LC_MESSAGES/django.mo b/wagtail/wagtaildocs/locale/vi/LC_MESSAGES/django.mo new file mode 100644 index 000000000..ce5813eba Binary files /dev/null and b/wagtail/wagtaildocs/locale/vi/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtaildocs/locale/vi/LC_MESSAGES/django.po b/wagtail/wagtaildocs/locale/vi/LC_MESSAGES/django.po new file mode 100644 index 000000000..490743652 --- /dev/null +++ b/wagtail/wagtaildocs/locale/vi/LC_MESSAGES/django.po @@ -0,0 +1,184 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-01 15:43+0000\n" +"Last-Translator: Karl Hobley \n" +"Language-Team: Vietnamese (http://www.transifex.com/projects/p/wagtail/language/vi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: models.py:21 templates/wagtaildocs/documents/list.html:11 +#: templates/wagtaildocs/documents/list.html:14 +#: templates/wagtaildocs/documents/usage.html:16 +msgid "Title" +msgstr "" + +#: models.py:22 templates/wagtaildocs/documents/list.html:17 +msgid "File" +msgstr "" + +#: models.py:26 +msgid "Tags" +msgstr "" + +#: wagtail_hooks.py:26 templates/wagtaildocs/documents/index.html:16 +msgid "Documents" +msgstr "" + +#: templates/wagtaildocs/chooser/chooser.html:2 +#: templates/wagtaildocs/edit_handlers/document_chooser_panel.html:11 +msgid "Choose a document" +msgstr "" + +#: templates/wagtaildocs/chooser/chooser.html:7 +#: templates/wagtaildocs/chooser/chooser.html:19 +msgid "Search" +msgstr "" + +#: templates/wagtaildocs/chooser/chooser.html:8 +msgid "Upload" +msgstr "" + +#: templates/wagtaildocs/chooser/chooser.html:34 +#: templates/wagtaildocs/documents/add.html:25 +#: templates/wagtaildocs/documents/edit.html:29 +msgid "Save" +msgstr "" + +#: templates/wagtaildocs/chooser/results.html:5 +#: templates/wagtaildocs/documents/results.html:5 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "" + +#: templates/wagtaildocs/chooser/results.html:12 +msgid "Latest documents" +msgstr "" + +#: templates/wagtaildocs/chooser/results.html:19 +#: templates/wagtaildocs/documents/results.html:18 +#, python-format +msgid "Sorry, no documents match \"%(query_string)s\"" +msgstr "" + +#: templates/wagtaildocs/documents/_file_field.html:5 +msgid "Change document:" +msgstr "" + +#: templates/wagtaildocs/documents/add.html:4 +#: templates/wagtaildocs/documents/index.html:17 +msgid "Add a document" +msgstr "" + +#: templates/wagtaildocs/documents/add.html:15 +msgid "Add document" +msgstr "" + +#: templates/wagtaildocs/documents/confirm_delete.html:3 +#, python-format +msgid "Delete %(title)s" +msgstr "" + +#: templates/wagtaildocs/documents/confirm_delete.html:6 +#: templates/wagtaildocs/documents/edit.html:29 +msgid "Delete document" +msgstr "" + +#: templates/wagtaildocs/documents/confirm_delete.html:10 +msgid "Are you sure you want to delete this document?" +msgstr "" + +#: templates/wagtaildocs/documents/confirm_delete.html:13 +msgid "Yes, delete" +msgstr "" + +#: templates/wagtaildocs/documents/edit.html:4 +#, python-format +msgid "Editing %(title)s" +msgstr "" + +#: templates/wagtaildocs/documents/edit.html:15 +msgid "Editing" +msgstr "" + +#: templates/wagtaildocs/documents/list.html:21 +#: templates/wagtaildocs/documents/list.html:24 +msgid "Uploaded" +msgstr "" + +#: templates/wagtaildocs/documents/results.html:21 +#, python-format +msgid "" +"You haven't uploaded any documents. Why not upload one now?" +msgstr "" + +#: templates/wagtaildocs/documents/usage.html:3 +#, python-format +msgid "Usage of %(title)s" +msgstr "" + +#: templates/wagtaildocs/documents/usage.html:5 +msgid "Usage of" +msgstr "" + +#: templates/wagtaildocs/documents/usage.html:17 +msgid "Parent" +msgstr "" + +#: templates/wagtaildocs/documents/usage.html:18 +msgid "Type" +msgstr "" + +#: templates/wagtaildocs/documents/usage.html:19 +msgid "Status" +msgstr "" + +#: templates/wagtaildocs/documents/usage.html:26 +msgid "Edit this page" +msgstr "" + +#: templates/wagtaildocs/edit_handlers/document_chooser_panel.html:9 +msgid "Clear choice" +msgstr "" + +#: templates/wagtaildocs/edit_handlers/document_chooser_panel.html:10 +msgid "Choose another document" +msgstr "" + +#: views/documents.py:38 views/documents.py:47 +msgid "Search documents" +msgstr "" + +#: views/documents.py:92 +msgid "Document '{0}' added." +msgstr "" + +#: views/documents.py:95 views/documents.py:129 +msgid "The document could not be saved due to errors." +msgstr "" + +#: views/documents.py:126 +msgid "Document '{0}' updated" +msgstr "" + +#: views/documents.py:148 +msgid "Document '{0}' deleted." +msgstr "" diff --git a/wagtail/wagtaildocs/locale/zh/LC_MESSAGES/django.mo b/wagtail/wagtaildocs/locale/zh/LC_MESSAGES/django.mo index 358bef2f4..8830fea2b 100644 Binary files a/wagtail/wagtaildocs/locale/zh/LC_MESSAGES/django.mo and b/wagtail/wagtaildocs/locale/zh/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtaildocs/locale/zh/LC_MESSAGES/django.po b/wagtail/wagtaildocs/locale/zh/LC_MESSAGES/django.po index 3ad210f18..fb5109588 100644 --- a/wagtail/wagtaildocs/locale/zh/LC_MESSAGES/django.po +++ b/wagtail/wagtaildocs/locale/zh/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Chinese (http://www.transifex.com/projects/p/wagtail/language/zh/)\n" +"Language-Team: Chinese (http://www.transifex.com/projects/p/wagtail/language/" +"zh/)\n" +"Language: zh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh\n" "Plural-Forms: nplurals=1; plural=0;\n" #: models.py:21 templates/wagtaildocs/documents/list.html:11 @@ -31,7 +32,7 @@ msgstr "文件" msgid "Tags" msgstr "标签" -#: wagtail_hooks.py:24 templates/wagtaildocs/documents/index.html:16 +#: wagtail_hooks.py:26 templates/wagtaildocs/documents/index.html:16 msgid "Documents" msgstr "文档" @@ -126,9 +127,11 @@ msgstr "已上传" #: templates/wagtaildocs/documents/results.html:21 #, python-format msgid "" -"You haven't uploaded any documents. Why not upload one now?" -msgstr "你没有上传任何文档。 为什么不 上传一份?" +"You haven't uploaded any documents. Why not upload one now?" +msgstr "" +"你没有上传任何文档。 为什么不 上" +"传一份?" #: templates/wagtaildocs/documents/usage.html:3 #, python-format @@ -163,22 +166,22 @@ msgstr "清除选择" msgid "Choose another document" msgstr "选择另外一份文档" -#: views/documents.py:37 views/documents.py:46 +#: views/documents.py:38 views/documents.py:47 msgid "Search documents" msgstr "" -#: views/documents.py:86 +#: views/documents.py:92 msgid "Document '{0}' added." msgstr "文档'{0}'已添加" -#: views/documents.py:89 views/documents.py:118 +#: views/documents.py:95 views/documents.py:129 msgid "The document could not be saved due to errors." msgstr "有错,文档无法保存。" -#: views/documents.py:115 +#: views/documents.py:126 msgid "Document '{0}' updated" msgstr "文档'{0}'已更新" -#: views/documents.py:137 +#: views/documents.py:148 msgid "Document '{0}' deleted." msgstr "文档'{0}'已删除" diff --git a/wagtail/wagtaildocs/locale/zh_TW/LC_MESSAGES/django.mo b/wagtail/wagtaildocs/locale/zh_TW/LC_MESSAGES/django.mo index 45d304e3d..98ace8e95 100644 Binary files a/wagtail/wagtaildocs/locale/zh_TW/LC_MESSAGES/django.mo and b/wagtail/wagtaildocs/locale/zh_TW/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtaildocs/locale/zh_TW/LC_MESSAGES/django.po b/wagtail/wagtaildocs/locale/zh_TW/LC_MESSAGES/django.po index cb2c41a37..e4c6b7620 100644 --- a/wagtail/wagtaildocs/locale/zh_TW/LC_MESSAGES/django.po +++ b/wagtail/wagtaildocs/locale/zh_TW/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 21:12+0000\n" "Last-Translator: wdv4758h \n" "Language-Team: \n" @@ -31,7 +31,7 @@ msgstr "文件" msgid "Tags" msgstr "標籤" -#: wagtail_hooks.py:24 templates/wagtaildocs/documents/index.html:16 +#: wagtail_hooks.py:26 templates/wagtaildocs/documents/index.html:16 msgid "Documents" msgstr "文件" @@ -170,22 +170,22 @@ msgstr "清除選擇" msgid "Choose another document" msgstr "選擇另外一份文件" -#: views/documents.py:37 views/documents.py:46 +#: views/documents.py:38 views/documents.py:47 msgid "Search documents" msgstr "搜尋文件" -#: views/documents.py:86 +#: views/documents.py:92 msgid "Document '{0}' added." msgstr "文件 '{0}' 已加入" -#: views/documents.py:89 views/documents.py:118 +#: views/documents.py:95 views/documents.py:129 msgid "The document could not be saved due to errors." msgstr "這文件因有錯誤而無法建立。" -#: views/documents.py:115 +#: views/documents.py:126 msgid "Document '{0}' updated" msgstr "文件 '{0}' 已更新" -#: views/documents.py:137 +#: views/documents.py:148 msgid "Document '{0}' deleted." msgstr "文件 '{0}' 已刪除" diff --git a/wagtail/wagtaildocs/migrations/0001_initial.py b/wagtail/wagtaildocs/migrations/0001_initial.py new file mode 100644 index 000000000..dd8e4ac62 --- /dev/null +++ b/wagtail/wagtaildocs/migrations/0001_initial.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +import taggit.managers +from django.conf import settings +import wagtail.wagtailadmin.taggable + + +class Migration(migrations.Migration): + + dependencies = [ + ('taggit', '__latest__'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Document', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=255, verbose_name='Title')), + ('file', models.FileField(upload_to='documents', verbose_name='File')), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('tags', taggit.managers.TaggableManager(to='taggit.Tag', verbose_name='Tags', help_text=None, blank=True, through='taggit.TaggedItem')), + ('uploaded_by_user', models.ForeignKey(editable=False, null=True, blank=True, to=settings.AUTH_USER_MODEL)), + ], + options={ + }, + bases=(models.Model, wagtail.wagtailadmin.taggable.TagSearchable), + ), + ] diff --git a/wagtail/wagtaildocs/migrations/0002_initial_data.py b/wagtail/wagtaildocs/migrations/0002_initial_data.py new file mode 100644 index 000000000..6ca3a0fbd --- /dev/null +++ b/wagtail/wagtaildocs/migrations/0002_initial_data.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +def add_document_permissions_to_admin_groups(apps, schema_editor): + ContentType = apps.get_model('contenttypes.ContentType') + Permission = apps.get_model('auth.Permission') + Group = apps.get_model('auth.Group') + Document = apps.get_model('wagtaildocs.Document') + + # Get document permissions + document_content_type, _created = ContentType.objects.get_or_create( + model='document', + app_label='wagtaildocs', + defaults={'name': 'document'} + ) + + add_document_permission, _created = Permission.objects.get_or_create( + content_type=document_content_type, + codename='add_document', + defaults={'name': 'Can add document'} + ) + change_document_permission, _created = Permission.objects.get_or_create( + content_type=document_content_type, + codename='change_document', + defaults={'name': 'Can change document'} + ) + delete_document_permission, _created = Permission.objects.get_or_create( + content_type=document_content_type, + codename='delete_document', + defaults={'name': 'Can delete document'} + ) + + # Assign it to Editors and Moderators groups + for group in Group.objects.filter(name__in=['Editors', 'Moderators']): + group.permissions.add(add_document_permission, change_document_permission, delete_document_permission) + + +class Migration(migrations.Migration): + + dependencies = [ + ('wagtaildocs', '0001_initial'), + + # Need to run wagtailcores initial data migration to make sure the groups are created + ('wagtailcore', '0002_initial_data'), + ] + + operations = [ + migrations.RunPython(add_document_permissions_to_admin_groups), + ] diff --git a/wagtail/wagtaildocs/migrations/__init__.py b/wagtail/wagtaildocs/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/wagtail/wagtaildocs/models.py b/wagtail/wagtaildocs/models.py index f930a493c..5f9b374f2 100644 --- a/wagtail/wagtaildocs/models.py +++ b/wagtail/wagtaildocs/models.py @@ -13,7 +13,7 @@ from django.utils.encoding import python_2_unicode_compatible from wagtail.wagtailadmin.taggable import TagSearchable from wagtail.wagtailadmin.utils import get_object_usage -from wagtail.wagtailsearch import indexed +from wagtail.wagtailsearch import index @python_2_unicode_compatible @@ -26,7 +26,7 @@ class Document(models.Model, TagSearchable): tags = TaggableManager(help_text=None, blank=True, verbose_name=_('Tags')) search_fields = TagSearchable.search_fields + ( - indexed.FilterField('uploaded_by_user'), + index.FilterField('uploaded_by_user'), ) def __str__(self): diff --git a/wagtail/wagtaildocs/tests.py b/wagtail/wagtaildocs/tests.py index 5592635f2..ba4874890 100644 --- a/wagtail/wagtaildocs/tests.py +++ b/wagtail/wagtaildocs/tests.py @@ -7,7 +7,7 @@ from django.core.urlresolvers import reverse from django.core.files.base import ContentFile from django.test.utils import override_settings -from wagtail.tests.utils import WagtailTestUtils +from wagtail.tests.utils import unittest, WagtailTestUtils from wagtail.wagtailcore.models import Page from wagtail.tests.models import EventPage, EventPageRelatedLink @@ -417,3 +417,107 @@ class TestGetUsage(TestCase, WagtailTestUtils): args=(1,))) # There's no usage so there should be no table rows self.assertRegex(response.content, b'(\s|\n)*') + + +class TestIssue613(TestCase, WagtailTestUtils): + def get_elasticsearch_backend(self): + from django.conf import settings + from wagtail.wagtailsearch.backends import get_search_backend + + backend_path = 'wagtail.wagtailsearch.backends.elasticsearch.ElasticSearch' + + # Search WAGTAILSEARCH_BACKENDS for an entry that uses the given backend path + for backend_name, backend_conf in settings.WAGTAILSEARCH_BACKENDS.items(): + if backend_conf['BACKEND'] == backend_path: + return get_search_backend(backend_name) + else: + # no conf entry found - skip tests for this backend + raise unittest.SkipTest("No WAGTAILSEARCH_BACKENDS entry for the backend %s" % backend_path) + + def setUp(self): + self.search_backend = self.get_elasticsearch_backend() + self.login() + + from wagtail.wagtailsearch.signal_handlers import register_signal_handlers + register_signal_handlers() + + def add_document(self, **params): + # Build a fake file + fake_file = ContentFile(b("A boring example document")) + fake_file.name = 'test.txt' + + # Submit + post_data = { + 'title': "Test document", + 'file': fake_file, + } + post_data.update(params) + response = self.client.post(reverse('wagtaildocs_add_document'), post_data) + + # User should be redirected back to the index + self.assertRedirects(response, reverse('wagtaildocs_index')) + + # Document should be created + doc = models.Document.objects.filter(title=post_data['title']) + self.assertTrue(doc.exists()) + return doc.first() + + def edit_document(self, **params): + # Build a fake file + fake_file = ContentFile(b("A boring example document")) + fake_file.name = 'test.txt' + + # Create a document without tags to edit + document = models.Document.objects.create(title="Test document", file=fake_file) + + # Build another fake file + another_fake_file = ContentFile(b("A boring example document")) + another_fake_file.name = 'test.txt' + + # Submit + post_data = { + 'title': "Test document changed!", + 'file': another_fake_file, + } + post_data.update(params) + response = self.client.post(reverse('wagtaildocs_edit_document', args=(document.id,)), post_data) + + # User should be redirected back to the index + self.assertRedirects(response, reverse('wagtaildocs_index')) + + # Document should be changed + doc = models.Document.objects.filter(title=post_data['title']) + self.assertTrue(doc.exists()) + return doc.first() + + def test_issue_613_on_add(self): + # Reset the search index + self.search_backend.reset_index() + self.search_backend.add_type(Document) + + # Add a document with some tags + document = self.add_document(tags="hello") + self.search_backend.refresh_index() + + # Search for it by tag + results = self.search_backend.search("hello", Document) + + # Check + self.assertEqual(len(results), 1) + self.assertEqual(results[0].id, document.id) + + def test_issue_613_on_edit(self): + # Reset the search index + self.search_backend.reset_index() + self.search_backend.add_type(Document) + + # Add a document with some tags + document = self.edit_document(tags="hello") + self.search_backend.refresh_index() + + # Search for it by tag + results = self.search_backend.search("hello", Document) + + # Check + self.assertEqual(len(results), 1) + self.assertEqual(results[0].id, document.id) diff --git a/wagtail/wagtaildocs/views/chooser.py b/wagtail/wagtaildocs/views/chooser.py index 55066c9dc..bf081715d 100644 --- a/wagtail/wagtaildocs/views/chooser.py +++ b/wagtail/wagtaildocs/views/chooser.py @@ -6,6 +6,7 @@ from django.contrib.auth.decorators import permission_required from wagtail.wagtailadmin.modal_workflow import render_modal_workflow from wagtail.wagtailadmin.forms import SearchForm +from wagtail.wagtailsearch.backends import get_search_backends from wagtail.wagtaildocs.models import Document from wagtail.wagtaildocs.forms import DocumentForm @@ -96,6 +97,11 @@ def chooser_upload(request): if form.is_valid(): form.save() + + # Reindex the document to make sure all tags are indexed + for backend in get_search_backends(): + backend.add(document) + document_json = json.dumps({'id': document.id, 'title': document.title}) return render_modal_workflow( request, None, 'wagtaildocs/chooser/document_chosen.js', diff --git a/wagtail/wagtaildocs/views/documents.py b/wagtail/wagtaildocs/views/documents.py index 488e2ff9a..51a759ae4 100644 --- a/wagtail/wagtaildocs/views/documents.py +++ b/wagtail/wagtaildocs/views/documents.py @@ -8,6 +8,7 @@ from django.views.decorators.vary import vary_on_headers from django.core.urlresolvers import reverse from wagtail.wagtailadmin.forms import SearchForm +from wagtail.wagtailsearch.backends import get_search_backends from wagtail.wagtaildocs.models import Document from wagtail.wagtaildocs.forms import DocumentForm @@ -83,6 +84,11 @@ def add(request): form = DocumentForm(request.POST, request.FILES, instance=doc) if form.is_valid(): form.save() + + # Reindex the document to make sure all tags are indexed + for backend in get_search_backends(): + backend.add(doc) + messages.success(request, _("Document '{0}' added.").format(doc.title)) return redirect('wagtaildocs_index') else: @@ -112,6 +118,11 @@ def edit(request, document_id): # which definitely isn't what we want... original_file.storage.delete(original_file.name) doc = form.save() + + # Reindex the document to make sure all tags are indexed + for backend in get_search_backends(): + backend.add(doc) + messages.success(request, _("Document '{0}' updated").format(doc.title)) return redirect('wagtaildocs_index') else: diff --git a/wagtail/wagtaildocs/wagtail_hooks.py b/wagtail/wagtaildocs/wagtail_hooks.py index 3852716ac..ca3bfd07a 100644 --- a/wagtail/wagtaildocs/wagtail_hooks.py +++ b/wagtail/wagtaildocs/wagtail_hooks.py @@ -17,12 +17,13 @@ def register_admin_urls(): ] -@hooks.register('construct_main_menu') -def construct_main_menu(request, menu_items): - if request.user.has_perm('wagtaildocs.add_document'): - menu_items.append( - MenuItem(_('Documents'), urlresolvers.reverse('wagtaildocs_index'), classnames='icon icon-doc-full-inverse', order=400) - ) +class DocumentsMenuItem(MenuItem): + def is_shown(self, request): + return request.user.has_perm('wagtaildocs.add_document') + +@hooks.register('register_admin_menu_item') +def register_documents_menu_item(): + return DocumentsMenuItem(_('Documents'), urlresolvers.reverse('wagtaildocs_index'), classnames='icon icon-doc-full-inverse', order=400) @hooks.register('insert_editor_js') diff --git a/wagtail/wagtailembeds/__init__.py b/wagtail/wagtailembeds/__init__.py index e69de29bb..477890696 100644 --- a/wagtail/wagtailembeds/__init__.py +++ b/wagtail/wagtailembeds/__init__.py @@ -0,0 +1 @@ +default_app_config = 'wagtail.wagtailembeds.apps.WagtailEmbedsAppConfig' diff --git a/wagtail/wagtailembeds/apps.py b/wagtail/wagtailembeds/apps.py new file mode 100644 index 000000000..ecbaf6cb5 --- /dev/null +++ b/wagtail/wagtailembeds/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class WagtailEmbedsAppConfig(AppConfig): + name = 'wagtail.wagtailembeds' + label = 'wagtailembeds' + verbose_name = "Wagtail embeds" diff --git a/wagtail/wagtailembeds/locale/bg/LC_MESSAGES/django.mo b/wagtail/wagtailembeds/locale/bg/LC_MESSAGES/django.mo index 47f0416d2..323e908a0 100644 Binary files a/wagtail/wagtailembeds/locale/bg/LC_MESSAGES/django.mo and b/wagtail/wagtailembeds/locale/bg/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailembeds/locale/bg/LC_MESSAGES/django.po b/wagtail/wagtailembeds/locale/bg/LC_MESSAGES/django.po index c90c66ff4..a61bb2d20 100644 --- a/wagtail/wagtailembeds/locale/bg/LC_MESSAGES/django.po +++ b/wagtail/wagtailembeds/locale/bg/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-02-24 20:14+0000\n" "Last-Translator: LyuboslavPetrov \n" "Language-Team: Bulgarian (http://www.transifex.com/projects/p/wagtail/" diff --git a/wagtail/wagtailembeds/locale/ca/LC_MESSAGES/django.mo b/wagtail/wagtailembeds/locale/ca/LC_MESSAGES/django.mo index 4843837b9..d1f0473ac 100644 Binary files a/wagtail/wagtailembeds/locale/ca/LC_MESSAGES/django.mo and b/wagtail/wagtailembeds/locale/ca/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailembeds/locale/ca/LC_MESSAGES/django.po b/wagtail/wagtailembeds/locale/ca/LC_MESSAGES/django.po index f1605c473..0a5d0f9d6 100644 --- a/wagtail/wagtailembeds/locale/ca/LC_MESSAGES/django.po +++ b/wagtail/wagtailembeds/locale/ca/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-02-22 12:45+0000\n" "Last-Translator: Lloople \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/wagtail/language/" diff --git a/wagtail/wagtailembeds/locale/de/LC_MESSAGES/django.mo b/wagtail/wagtailembeds/locale/de/LC_MESSAGES/django.mo index f7d7daafc..987ad5198 100644 Binary files a/wagtail/wagtailembeds/locale/de/LC_MESSAGES/django.mo and b/wagtail/wagtailembeds/locale/de/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailembeds/locale/de/LC_MESSAGES/django.po b/wagtail/wagtailembeds/locale/de/LC_MESSAGES/django.po index d608913fb..f94c83557 100644 --- a/wagtail/wagtailembeds/locale/de/LC_MESSAGES/django.po +++ b/wagtail/wagtailembeds/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-02-25 17:30+0000\n" "Last-Translator: jspielmann \n" "Language-Team: German (http://www.transifex.com/projects/p/wagtail/language/" diff --git a/wagtail/wagtailembeds/locale/el/LC_MESSAGES/django.mo b/wagtail/wagtailembeds/locale/el/LC_MESSAGES/django.mo index 6d451a76b..f5401b8a9 100644 Binary files a/wagtail/wagtailembeds/locale/el/LC_MESSAGES/django.mo and b/wagtail/wagtailembeds/locale/el/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailembeds/locale/el/LC_MESSAGES/django.po b/wagtail/wagtailembeds/locale/el/LC_MESSAGES/django.po index cbc6c634b..155289572 100644 --- a/wagtail/wagtailembeds/locale/el/LC_MESSAGES/django.po +++ b/wagtail/wagtailembeds/locale/el/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-02-22 12:34+0000\n" "Last-Translator: serafeim \n" "Language-Team: Greek (http://www.transifex.com/projects/p/wagtail/language/" diff --git a/wagtail/wagtailembeds/locale/en/LC_MESSAGES/django.mo b/wagtail/wagtailembeds/locale/en/LC_MESSAGES/django.mo index 3b83aafe9..bc5cb1688 100644 Binary files a/wagtail/wagtailembeds/locale/en/LC_MESSAGES/django.mo and b/wagtail/wagtailembeds/locale/en/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailembeds/locale/en/LC_MESSAGES/django.po b/wagtail/wagtailembeds/locale/en/LC_MESSAGES/django.po index d656d1d63..a064306ad 100644 --- a/wagtail/wagtailembeds/locale/en/LC_MESSAGES/django.po +++ b/wagtail/wagtailembeds/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/wagtail/wagtailembeds/locale/es/LC_MESSAGES/django.mo b/wagtail/wagtailembeds/locale/es/LC_MESSAGES/django.mo index fab6575b9..477dea00e 100644 Binary files a/wagtail/wagtailembeds/locale/es/LC_MESSAGES/django.mo and b/wagtail/wagtailembeds/locale/es/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailembeds/locale/es/LC_MESSAGES/django.po b/wagtail/wagtailembeds/locale/es/LC_MESSAGES/django.po index 05e4915e1..b30e2ebd2 100644 --- a/wagtail/wagtailembeds/locale/es/LC_MESSAGES/django.po +++ b/wagtail/wagtailembeds/locale/es/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-02-27 09:34+0000\n" "Last-Translator: fooflare \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/wagtail/language/" diff --git a/wagtail/wagtailembeds/locale/eu/LC_MESSAGES/django.mo b/wagtail/wagtailembeds/locale/eu/LC_MESSAGES/django.mo index d2ae4a35f..8ae887c65 100644 Binary files a/wagtail/wagtailembeds/locale/eu/LC_MESSAGES/django.mo and b/wagtail/wagtailembeds/locale/eu/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailembeds/locale/eu/LC_MESSAGES/django.po b/wagtail/wagtailembeds/locale/eu/LC_MESSAGES/django.po index 0b62bb6eb..a28023d3e 100644 --- a/wagtail/wagtailembeds/locale/eu/LC_MESSAGES/django.po +++ b/wagtail/wagtailembeds/locale/eu/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-02-24 22:36+0000\n" "Last-Translator: tomdyson \n" "Language-Team: Basque (http://www.transifex.com/projects/p/wagtail/language/" diff --git a/wagtail/wagtailembeds/locale/fr/LC_MESSAGES/django.mo b/wagtail/wagtailembeds/locale/fr/LC_MESSAGES/django.mo index 5f756ed8c..024b7281a 100644 Binary files a/wagtail/wagtailembeds/locale/fr/LC_MESSAGES/django.mo and b/wagtail/wagtailembeds/locale/fr/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailembeds/locale/fr/LC_MESSAGES/django.po b/wagtail/wagtailembeds/locale/fr/LC_MESSAGES/django.po index dce212991..67692c8dd 100644 --- a/wagtail/wagtailembeds/locale/fr/LC_MESSAGES/django.po +++ b/wagtail/wagtailembeds/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-18 22:04+0000\n" "Last-Translator: nahuel\n" "Language-Team: French (http://www.transifex.com/projects/p/wagtail/language/" diff --git a/wagtail/wagtailembeds/locale/gl/LC_MESSAGES/django.mo b/wagtail/wagtailembeds/locale/gl/LC_MESSAGES/django.mo index 189ad2853..7b4c34bf6 100644 Binary files a/wagtail/wagtailembeds/locale/gl/LC_MESSAGES/django.mo and b/wagtail/wagtailembeds/locale/gl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailembeds/locale/gl/LC_MESSAGES/django.po b/wagtail/wagtailembeds/locale/gl/LC_MESSAGES/django.po index bc48c912b..443bb4a2c 100644 --- a/wagtail/wagtailembeds/locale/gl/LC_MESSAGES/django.po +++ b/wagtail/wagtailembeds/locale/gl/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-23 10:32+0000\n" "Last-Translator: fooflare \n" "Language-Team: Galician (http://www.transifex.com/projects/p/wagtail/" diff --git a/wagtail/wagtailembeds/locale/mn/LC_MESSAGES/django.mo b/wagtail/wagtailembeds/locale/mn/LC_MESSAGES/django.mo index 64a560793..29f607d32 100644 Binary files a/wagtail/wagtailembeds/locale/mn/LC_MESSAGES/django.mo and b/wagtail/wagtailembeds/locale/mn/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailembeds/locale/mn/LC_MESSAGES/django.po b/wagtail/wagtailembeds/locale/mn/LC_MESSAGES/django.po index a910cdb90..1a2040f53 100644 --- a/wagtail/wagtailembeds/locale/mn/LC_MESSAGES/django.po +++ b/wagtail/wagtailembeds/locale/mn/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-01 17:11+0000\n" "Last-Translator: delgermurun \n" "Language-Team: Mongolian (http://www.transifex.com/projects/p/wagtail/" diff --git a/wagtail/wagtailembeds/locale/pl/LC_MESSAGES/django.mo b/wagtail/wagtailembeds/locale/pl/LC_MESSAGES/django.mo index 3d76ba247..b28b53f9f 100644 Binary files a/wagtail/wagtailembeds/locale/pl/LC_MESSAGES/django.mo and b/wagtail/wagtailembeds/locale/pl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailembeds/locale/pl/LC_MESSAGES/django.po b/wagtail/wagtailembeds/locale/pl/LC_MESSAGES/django.po index 1b4b89999..680156801 100644 --- a/wagtail/wagtailembeds/locale/pl/LC_MESSAGES/django.po +++ b/wagtail/wagtailembeds/locale/pl/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-02-23 10:22+0000\n" "Last-Translator: utek \n" "Language-Team: Polish (http://www.transifex.com/projects/p/wagtail/language/" diff --git a/wagtail/wagtailembeds/locale/pt_BR/LC_MESSAGES/django.mo b/wagtail/wagtailembeds/locale/pt_BR/LC_MESSAGES/django.mo new file mode 100644 index 000000000..7456edcf6 Binary files /dev/null and b/wagtail/wagtailembeds/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailembeds/locale/pt_BR/LC_MESSAGES/django.po b/wagtail/wagtailembeds/locale/pt_BR/LC_MESSAGES/django.po new file mode 100644 index 000000000..65de4665f --- /dev/null +++ b/wagtail/wagtailembeds/locale/pt_BR/LC_MESSAGES/django.po @@ -0,0 +1,52 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Thiago Cangussu , 2014 +# Douglas Miranda , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-09-01 19:33+0000\n" +"Last-Translator: Douglas Miranda \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/wagtail/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: forms.py:11 +msgid "Please enter a valid URL" +msgstr "Por favor, digite uma URL válida" + +#: forms.py:15 +msgid "URL" +msgstr "URL" + +#: templates/wagtailembeds/chooser/chooser.html:3 +msgid "Insert embed" +msgstr "Inserir anexo" + +#: templates/wagtailembeds/chooser/chooser.html:14 +msgid "Insert" +msgstr "Inserir" + +#: views/chooser.py:33 +msgid "" +"There seems to be a problem with your embedly API key. Please check your " +"settings." +msgstr "Parece que há um problema com sua chave API anexada. Por favor verifique suas configurações." + +#: views/chooser.py:35 +msgid "Cannot find an embed for this URL." +msgstr "Não pode achar um anexo para esta URL." + +#: views/chooser.py:37 +msgid "" +"There seems to be an error with Embedly while trying to embed this URL. " +"Please try again later." +msgstr "Parece que houve um erro com a importação durante a tentativa de anexar esta URL. Por favor tente novamente." diff --git a/wagtail/wagtailembeds/locale/pt_PT/LC_MESSAGES/django.mo b/wagtail/wagtailembeds/locale/pt_PT/LC_MESSAGES/django.mo new file mode 100644 index 000000000..af4204b6f Binary files /dev/null and b/wagtail/wagtailembeds/locale/pt_PT/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailembeds/locale/pt_PT/LC_MESSAGES/django.po b/wagtail/wagtailembeds/locale/pt_PT/LC_MESSAGES/django.po new file mode 100644 index 000000000..2eaf0c992 --- /dev/null +++ b/wagtail/wagtailembeds/locale/pt_PT/LC_MESSAGES/django.po @@ -0,0 +1,57 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Thiago Cangussu , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail 0.5.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-03 01:53+0100\n" +"Last-Translator: Jose Lourenco \n" +"Language-Team: \n" +"Language: pt_PT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: forms.py:11 +msgid "Please enter a valid URL" +msgstr "Por favor introduza uma URL válida" + +#: forms.py:15 +msgid "URL" +msgstr "URL" + +#: templates/wagtailembeds/chooser/chooser.html:3 +msgid "Insert embed" +msgstr "Inserir embed" + +#: templates/wagtailembeds/chooser/chooser.html:14 +msgid "Insert" +msgstr "Inserir" + +#: views/chooser.py:33 +msgid "" +"There seems to be a problem with your embedly API key. Please check your " +"settings." +msgstr "" +"Parece existir um problema com a sua chave API de embedly. Por favor " +"verifique as suas configurações." + +#: views/chooser.py:35 +msgid "Cannot find an embed for this URL." +msgstr "Não consigo encontrar um embed para esta URL." + +#: views/chooser.py:37 +msgid "" +"There seems to be an error with Embedly while trying to embed this URL. " +"Please try again later." +msgstr "" +"Parece que houve um erro em Embedly durante a tentativa de embed esta URL. " +"Por favor tente novamente." diff --git a/wagtail/wagtailembeds/locale/ro/LC_MESSAGES/django.mo b/wagtail/wagtailembeds/locale/ro/LC_MESSAGES/django.mo index 1dd734c80..9499e0712 100644 Binary files a/wagtail/wagtailembeds/locale/ro/LC_MESSAGES/django.mo and b/wagtail/wagtailembeds/locale/ro/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailembeds/locale/ro/LC_MESSAGES/django.po b/wagtail/wagtailembeds/locale/ro/LC_MESSAGES/django.po index 38e848315..4d51bc382 100644 --- a/wagtail/wagtailembeds/locale/ro/LC_MESSAGES/django.po +++ b/wagtail/wagtailembeds/locale/ro/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-02-24 22:27+0000\n" "Last-Translator: zerolab\n" "Language-Team: Romanian (http://www.transifex.com/projects/p/wagtail/" diff --git a/wagtail/wagtailembeds/locale/ru/LC_MESSAGES/django.mo b/wagtail/wagtailembeds/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 000000000..11d87fda8 Binary files /dev/null and b/wagtail/wagtailembeds/locale/ru/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailembeds/locale/ru/LC_MESSAGES/django.po b/wagtail/wagtailembeds/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 000000000..47b934102 --- /dev/null +++ b/wagtail/wagtailembeds/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,51 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# HNKNTA , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-06-11 15:44+0000\n" +"Last-Translator: HNKNTA \n" +"Language-Team: Russian (http://www.transifex.com/projects/p/wagtail/language/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: forms.py:11 +msgid "Please enter a valid URL" +msgstr "" + +#: forms.py:15 +msgid "URL" +msgstr "URL" + +#: templates/wagtailembeds/chooser/chooser.html:3 +msgid "Insert embed" +msgstr "" + +#: templates/wagtailembeds/chooser/chooser.html:14 +msgid "Insert" +msgstr "Вставить" + +#: views/chooser.py:33 +msgid "" +"There seems to be a problem with your embedly API key. Please check your " +"settings." +msgstr "" + +#: views/chooser.py:35 +msgid "Cannot find an embed for this URL." +msgstr "" + +#: views/chooser.py:37 +msgid "" +"There seems to be an error with Embedly while trying to embed this URL. " +"Please try again later." +msgstr "" diff --git a/wagtail/wagtailembeds/locale/vi/LC_MESSAGES/django.mo b/wagtail/wagtailembeds/locale/vi/LC_MESSAGES/django.mo new file mode 100644 index 000000000..cbd4a74bc Binary files /dev/null and b/wagtail/wagtailembeds/locale/vi/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailembeds/locale/vi/LC_MESSAGES/django.po b/wagtail/wagtailembeds/locale/vi/LC_MESSAGES/django.po new file mode 100644 index 000000000..75810a5d8 --- /dev/null +++ b/wagtail/wagtailembeds/locale/vi/LC_MESSAGES/django.po @@ -0,0 +1,50 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-03-03 22:29+0000\n" +"Last-Translator: serafeim \n" +"Language-Team: Vietnamese (http://www.transifex.com/projects/p/wagtail/language/vi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: forms.py:11 +msgid "Please enter a valid URL" +msgstr "" + +#: forms.py:15 +msgid "URL" +msgstr "" + +#: templates/wagtailembeds/chooser/chooser.html:3 +msgid "Insert embed" +msgstr "" + +#: templates/wagtailembeds/chooser/chooser.html:14 +msgid "Insert" +msgstr "" + +#: views/chooser.py:33 +msgid "" +"There seems to be a problem with your embedly API key. Please check your " +"settings." +msgstr "" + +#: views/chooser.py:35 +msgid "Cannot find an embed for this URL." +msgstr "" + +#: views/chooser.py:37 +msgid "" +"There seems to be an error with Embedly while trying to embed this URL. " +"Please try again later." +msgstr "" diff --git a/wagtail/wagtailembeds/locale/zh/LC_MESSAGES/django.mo b/wagtail/wagtailembeds/locale/zh/LC_MESSAGES/django.mo index 321a4565c..aa7da5216 100644 Binary files a/wagtail/wagtailembeds/locale/zh/LC_MESSAGES/django.mo and b/wagtail/wagtailembeds/locale/zh/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailembeds/locale/zh/LC_MESSAGES/django.po b/wagtail/wagtailembeds/locale/zh/LC_MESSAGES/django.po index 4514379b6..e7b5a3787 100644 --- a/wagtail/wagtailembeds/locale/zh/LC_MESSAGES/django.po +++ b/wagtail/wagtailembeds/locale/zh/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-02-24 17:34+0000\n" "Last-Translator: tomdyson \n" "Language-Team: Chinese (http://www.transifex.com/projects/p/wagtail/language/" diff --git a/wagtail/wagtailembeds/locale/zh_TW/LC_MESSAGES/django.mo b/wagtail/wagtailembeds/locale/zh_TW/LC_MESSAGES/django.mo index 298bbc5de..6ee6f5f54 100644 Binary files a/wagtail/wagtailembeds/locale/zh_TW/LC_MESSAGES/django.mo and b/wagtail/wagtailembeds/locale/zh_TW/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailembeds/locale/zh_TW/LC_MESSAGES/django.po b/wagtail/wagtailembeds/locale/zh_TW/LC_MESSAGES/django.po index df6f4e891..32776be54 100644 --- a/wagtail/wagtailembeds/locale/zh_TW/LC_MESSAGES/django.po +++ b/wagtail/wagtailembeds/locale/zh_TW/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-02-24 17:34+0000\n" "Last-Translator: wdv4758h \n" "Language-Team: \n" diff --git a/wagtail/wagtailembeds/migrations/0001_initial.py b/wagtail/wagtailembeds/migrations/0001_initial.py new file mode 100644 index 000000000..86b9e8d4b --- /dev/null +++ b/wagtail/wagtailembeds/migrations/0001_initial.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Embed', + fields=[ + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True, serialize=False)), + ('url', models.URLField()), + ('max_width', models.SmallIntegerField(null=True, blank=True)), + ('type', models.CharField(max_length=10, choices=[('video', 'Video'), ('photo', 'Photo'), ('link', 'Link'), ('rich', 'Rich')])), + ('html', models.TextField(blank=True)), + ('title', models.TextField(blank=True)), + ('author_name', models.TextField(blank=True)), + ('provider_name', models.TextField(blank=True)), + ('thumbnail_url', models.URLField(null=True, blank=True)), + ('width', models.IntegerField(null=True, blank=True)), + ('height', models.IntegerField(null=True, blank=True)), + ('last_updated', models.DateTimeField(auto_now=True)), + ], + options={ + }, + bases=(models.Model,), + ), + migrations.AlterUniqueTogether( + name='embed', + unique_together=set([('url', 'max_width')]), + ), + ] diff --git a/wagtail/wagtailembeds/migrations/__init__.py b/wagtail/wagtailembeds/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/wagtail/wagtailembeds/templatetags/embed_filters.py b/wagtail/wagtailembeds/templatetags/embed_filters.py deleted file mode 100644 index 1eef037e8..000000000 --- a/wagtail/wagtailembeds/templatetags/embed_filters.py +++ /dev/null @@ -1,11 +0,0 @@ -import warnings - -from wagtail.utils.deprecation import RemovedInWagtail06Warning - - -warnings.warn( - "The embed_filters tag library has been moved to wagtailembeds_tags. " - "Use {% load wagtailembeds_tags %} instead.", RemovedInWagtail06Warning) - - -from wagtail.wagtailembeds.templatetags.wagtailembeds_tags import register, embed diff --git a/wagtail/wagtailforms/__init__.py b/wagtail/wagtailforms/__init__.py index e69de29bb..7be37b5f1 100644 --- a/wagtail/wagtailforms/__init__.py +++ b/wagtail/wagtailforms/__init__.py @@ -0,0 +1 @@ +default_app_config = 'wagtail.wagtailforms.apps.WagtailFormsAppConfig' diff --git a/wagtail/wagtailforms/apps.py b/wagtail/wagtailforms/apps.py new file mode 100644 index 000000000..7336f20e0 --- /dev/null +++ b/wagtail/wagtailforms/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class WagtailFormsAppConfig(AppConfig): + name = 'wagtail.wagtailforms' + label = 'wagtailforms' + verbose_name = "Wagtail forms" diff --git a/wagtail/wagtailforms/locale/bg/LC_MESSAGES/django.mo b/wagtail/wagtailforms/locale/bg/LC_MESSAGES/django.mo new file mode 100644 index 000000000..d615c640c Binary files /dev/null and b/wagtail/wagtailforms/locale/bg/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailforms/locale/bg/LC_MESSAGES/django.po b/wagtail/wagtailforms/locale/bg/LC_MESSAGES/django.po new file mode 100644 index 000000000..3912b8f92 --- /dev/null +++ b/wagtail/wagtailforms/locale/bg/LC_MESSAGES/django.po @@ -0,0 +1,128 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-09-11 15:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Bulgarian (http://www.transifex.com/projects/p/wagtail/language/bg/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bg\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: models.py:22 +msgid "Single line text" +msgstr "" + +#: models.py:23 +msgid "Multi-line text" +msgstr "" + +#: models.py:24 +msgid "Email" +msgstr "" + +#: models.py:25 +msgid "Number" +msgstr "" + +#: models.py:26 +msgid "URL" +msgstr "" + +#: models.py:27 +msgid "Checkbox" +msgstr "" + +#: models.py:28 +msgid "Checkboxes" +msgstr "" + +#: models.py:29 +msgid "Drop down" +msgstr "" + +#: models.py:30 +msgid "Radio buttons" +msgstr "" + +#: models.py:31 +msgid "Date" +msgstr "" + +#: models.py:32 +msgid "Date/time" +msgstr "" + +#: models.py:60 +msgid "The label of the form field" +msgstr "" + +#: models.py:67 +msgid "" +"Comma seperated list of choices. Only applicable in checkboxes, radio and " +"dropdown." +msgstr "" + +#: models.py:72 +msgid "Default value. Comma seperated values supported for checkboxes." +msgstr "" + +#: models.py:191 +msgid "Optional - form submissions will be emailed to this address" +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailforms/index.html:3 +#: templates/wagtailforms/index.html:6 +msgid "Forms" +msgstr "" + +#: templates/wagtailforms/index.html:7 +msgid "Pages" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:3 +#, python-format +msgid "Submissions of %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:36 +#, python-format +msgid "Form data %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:45 +msgid "Filter" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:51 +msgid "Download CSV" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:63 +#, python-format +msgid "There have been no submissions of the '%(title)s' form." +msgstr "" + +#: templates/wagtailforms/list_forms.html:7 +msgid "Title" +msgstr "" + +#: templates/wagtailforms/list_forms.html:8 +msgid "Origin" +msgstr "" + +#: templates/wagtailforms/list_submissions.html:9 +msgid "Submission Date" +msgstr "" + +#: templates/wagtailforms/results_forms.html:7 +msgid "No form pages have been created." +msgstr "" diff --git a/wagtail/wagtailforms/locale/ca/LC_MESSAGES/django.mo b/wagtail/wagtailforms/locale/ca/LC_MESSAGES/django.mo new file mode 100644 index 000000000..82a8f2690 Binary files /dev/null and b/wagtail/wagtailforms/locale/ca/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailforms/locale/ca/LC_MESSAGES/django.po b/wagtail/wagtailforms/locale/ca/LC_MESSAGES/django.po new file mode 100644 index 000000000..0f40d5023 --- /dev/null +++ b/wagtail/wagtailforms/locale/ca/LC_MESSAGES/django.po @@ -0,0 +1,128 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-09-11 15:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Catalan (http://www.transifex.com/projects/p/wagtail/language/ca/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ca\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: models.py:22 +msgid "Single line text" +msgstr "" + +#: models.py:23 +msgid "Multi-line text" +msgstr "" + +#: models.py:24 +msgid "Email" +msgstr "" + +#: models.py:25 +msgid "Number" +msgstr "" + +#: models.py:26 +msgid "URL" +msgstr "" + +#: models.py:27 +msgid "Checkbox" +msgstr "" + +#: models.py:28 +msgid "Checkboxes" +msgstr "" + +#: models.py:29 +msgid "Drop down" +msgstr "" + +#: models.py:30 +msgid "Radio buttons" +msgstr "" + +#: models.py:31 +msgid "Date" +msgstr "" + +#: models.py:32 +msgid "Date/time" +msgstr "" + +#: models.py:60 +msgid "The label of the form field" +msgstr "" + +#: models.py:67 +msgid "" +"Comma seperated list of choices. Only applicable in checkboxes, radio and " +"dropdown." +msgstr "" + +#: models.py:72 +msgid "Default value. Comma seperated values supported for checkboxes." +msgstr "" + +#: models.py:191 +msgid "Optional - form submissions will be emailed to this address" +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailforms/index.html:3 +#: templates/wagtailforms/index.html:6 +msgid "Forms" +msgstr "" + +#: templates/wagtailforms/index.html:7 +msgid "Pages" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:3 +#, python-format +msgid "Submissions of %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:36 +#, python-format +msgid "Form data %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:45 +msgid "Filter" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:51 +msgid "Download CSV" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:63 +#, python-format +msgid "There have been no submissions of the '%(title)s' form." +msgstr "" + +#: templates/wagtailforms/list_forms.html:7 +msgid "Title" +msgstr "" + +#: templates/wagtailforms/list_forms.html:8 +msgid "Origin" +msgstr "" + +#: templates/wagtailforms/list_submissions.html:9 +msgid "Submission Date" +msgstr "" + +#: templates/wagtailforms/results_forms.html:7 +msgid "No form pages have been created." +msgstr "" diff --git a/wagtail/wagtailforms/locale/de/LC_MESSAGES/django.mo b/wagtail/wagtailforms/locale/de/LC_MESSAGES/django.mo new file mode 100644 index 000000000..72d13d26f Binary files /dev/null and b/wagtail/wagtailforms/locale/de/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailforms/locale/de/LC_MESSAGES/django.po b/wagtail/wagtailforms/locale/de/LC_MESSAGES/django.po new file mode 100644 index 000000000..9de1997cd --- /dev/null +++ b/wagtail/wagtailforms/locale/de/LC_MESSAGES/django.po @@ -0,0 +1,128 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-09-11 15:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: German (http://www.transifex.com/projects/p/wagtail/language/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: models.py:22 +msgid "Single line text" +msgstr "" + +#: models.py:23 +msgid "Multi-line text" +msgstr "" + +#: models.py:24 +msgid "Email" +msgstr "" + +#: models.py:25 +msgid "Number" +msgstr "" + +#: models.py:26 +msgid "URL" +msgstr "" + +#: models.py:27 +msgid "Checkbox" +msgstr "" + +#: models.py:28 +msgid "Checkboxes" +msgstr "" + +#: models.py:29 +msgid "Drop down" +msgstr "" + +#: models.py:30 +msgid "Radio buttons" +msgstr "" + +#: models.py:31 +msgid "Date" +msgstr "" + +#: models.py:32 +msgid "Date/time" +msgstr "" + +#: models.py:60 +msgid "The label of the form field" +msgstr "" + +#: models.py:67 +msgid "" +"Comma seperated list of choices. Only applicable in checkboxes, radio and " +"dropdown." +msgstr "" + +#: models.py:72 +msgid "Default value. Comma seperated values supported for checkboxes." +msgstr "" + +#: models.py:191 +msgid "Optional - form submissions will be emailed to this address" +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailforms/index.html:3 +#: templates/wagtailforms/index.html:6 +msgid "Forms" +msgstr "" + +#: templates/wagtailforms/index.html:7 +msgid "Pages" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:3 +#, python-format +msgid "Submissions of %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:36 +#, python-format +msgid "Form data %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:45 +msgid "Filter" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:51 +msgid "Download CSV" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:63 +#, python-format +msgid "There have been no submissions of the '%(title)s' form." +msgstr "" + +#: templates/wagtailforms/list_forms.html:7 +msgid "Title" +msgstr "" + +#: templates/wagtailforms/list_forms.html:8 +msgid "Origin" +msgstr "" + +#: templates/wagtailforms/list_submissions.html:9 +msgid "Submission Date" +msgstr "" + +#: templates/wagtailforms/results_forms.html:7 +msgid "No form pages have been created." +msgstr "" diff --git a/wagtail/wagtailforms/locale/el/LC_MESSAGES/django.mo b/wagtail/wagtailforms/locale/el/LC_MESSAGES/django.mo new file mode 100644 index 000000000..683eef71b Binary files /dev/null and b/wagtail/wagtailforms/locale/el/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailforms/locale/el/LC_MESSAGES/django.po b/wagtail/wagtailforms/locale/el/LC_MESSAGES/django.po new file mode 100644 index 000000000..50864be02 --- /dev/null +++ b/wagtail/wagtailforms/locale/el/LC_MESSAGES/django.po @@ -0,0 +1,128 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-09-11 15:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Greek (http://www.transifex.com/projects/p/wagtail/language/el/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: el\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: models.py:22 +msgid "Single line text" +msgstr "" + +#: models.py:23 +msgid "Multi-line text" +msgstr "" + +#: models.py:24 +msgid "Email" +msgstr "" + +#: models.py:25 +msgid "Number" +msgstr "" + +#: models.py:26 +msgid "URL" +msgstr "" + +#: models.py:27 +msgid "Checkbox" +msgstr "" + +#: models.py:28 +msgid "Checkboxes" +msgstr "" + +#: models.py:29 +msgid "Drop down" +msgstr "" + +#: models.py:30 +msgid "Radio buttons" +msgstr "" + +#: models.py:31 +msgid "Date" +msgstr "" + +#: models.py:32 +msgid "Date/time" +msgstr "" + +#: models.py:60 +msgid "The label of the form field" +msgstr "" + +#: models.py:67 +msgid "" +"Comma seperated list of choices. Only applicable in checkboxes, radio and " +"dropdown." +msgstr "" + +#: models.py:72 +msgid "Default value. Comma seperated values supported for checkboxes." +msgstr "" + +#: models.py:191 +msgid "Optional - form submissions will be emailed to this address" +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailforms/index.html:3 +#: templates/wagtailforms/index.html:6 +msgid "Forms" +msgstr "" + +#: templates/wagtailforms/index.html:7 +msgid "Pages" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:3 +#, python-format +msgid "Submissions of %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:36 +#, python-format +msgid "Form data %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:45 +msgid "Filter" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:51 +msgid "Download CSV" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:63 +#, python-format +msgid "There have been no submissions of the '%(title)s' form." +msgstr "" + +#: templates/wagtailforms/list_forms.html:7 +msgid "Title" +msgstr "" + +#: templates/wagtailforms/list_forms.html:8 +msgid "Origin" +msgstr "" + +#: templates/wagtailforms/list_submissions.html:9 +msgid "Submission Date" +msgstr "" + +#: templates/wagtailforms/results_forms.html:7 +msgid "No form pages have been created." +msgstr "" diff --git a/wagtail/wagtailforms/locale/en/LC_MESSAGES/django.mo b/wagtail/wagtailforms/locale/en/LC_MESSAGES/django.mo index 3b83aafe9..bc5cb1688 100644 Binary files a/wagtail/wagtailforms/locale/en/LC_MESSAGES/django.mo and b/wagtail/wagtailforms/locale/en/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailforms/locale/en/LC_MESSAGES/django.po b/wagtail/wagtailforms/locale/en/LC_MESSAGES/django.po index 4b64a68e9..e9065b0e5 100644 --- a/wagtail/wagtailforms/locale/en/LC_MESSAGES/django.po +++ b/wagtail/wagtailforms/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:38+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -79,7 +79,7 @@ msgstr "" msgid "Optional - form submissions will be emailed to this address" msgstr "" -#: wagtail_hooks.py:23 templates/wagtailforms/index.html:3 +#: wagtail_hooks.py:25 templates/wagtailforms/index.html:3 #: templates/wagtailforms/index.html:6 msgid "Forms" msgstr "" diff --git a/wagtail/wagtailforms/locale/es/LC_MESSAGES/django.mo b/wagtail/wagtailforms/locale/es/LC_MESSAGES/django.mo new file mode 100644 index 000000000..f8ec8cf00 Binary files /dev/null and b/wagtail/wagtailforms/locale/es/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailforms/locale/es/LC_MESSAGES/django.po b/wagtail/wagtailforms/locale/es/LC_MESSAGES/django.po new file mode 100644 index 000000000..4e7381400 --- /dev/null +++ b/wagtail/wagtailforms/locale/es/LC_MESSAGES/django.po @@ -0,0 +1,128 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-09-11 15:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Spanish (http://www.transifex.com/projects/p/wagtail/language/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: models.py:22 +msgid "Single line text" +msgstr "" + +#: models.py:23 +msgid "Multi-line text" +msgstr "" + +#: models.py:24 +msgid "Email" +msgstr "" + +#: models.py:25 +msgid "Number" +msgstr "" + +#: models.py:26 +msgid "URL" +msgstr "" + +#: models.py:27 +msgid "Checkbox" +msgstr "" + +#: models.py:28 +msgid "Checkboxes" +msgstr "" + +#: models.py:29 +msgid "Drop down" +msgstr "" + +#: models.py:30 +msgid "Radio buttons" +msgstr "" + +#: models.py:31 +msgid "Date" +msgstr "" + +#: models.py:32 +msgid "Date/time" +msgstr "" + +#: models.py:60 +msgid "The label of the form field" +msgstr "" + +#: models.py:67 +msgid "" +"Comma seperated list of choices. Only applicable in checkboxes, radio and " +"dropdown." +msgstr "" + +#: models.py:72 +msgid "Default value. Comma seperated values supported for checkboxes." +msgstr "" + +#: models.py:191 +msgid "Optional - form submissions will be emailed to this address" +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailforms/index.html:3 +#: templates/wagtailforms/index.html:6 +msgid "Forms" +msgstr "" + +#: templates/wagtailforms/index.html:7 +msgid "Pages" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:3 +#, python-format +msgid "Submissions of %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:36 +#, python-format +msgid "Form data %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:45 +msgid "Filter" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:51 +msgid "Download CSV" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:63 +#, python-format +msgid "There have been no submissions of the '%(title)s' form." +msgstr "" + +#: templates/wagtailforms/list_forms.html:7 +msgid "Title" +msgstr "" + +#: templates/wagtailforms/list_forms.html:8 +msgid "Origin" +msgstr "" + +#: templates/wagtailforms/list_submissions.html:9 +msgid "Submission Date" +msgstr "" + +#: templates/wagtailforms/results_forms.html:7 +msgid "No form pages have been created." +msgstr "" diff --git a/wagtail/wagtailforms/locale/eu/LC_MESSAGES/django.mo b/wagtail/wagtailforms/locale/eu/LC_MESSAGES/django.mo new file mode 100644 index 000000000..a4b3695c3 Binary files /dev/null and b/wagtail/wagtailforms/locale/eu/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailforms/locale/eu/LC_MESSAGES/django.po b/wagtail/wagtailforms/locale/eu/LC_MESSAGES/django.po new file mode 100644 index 000000000..9554bbee9 --- /dev/null +++ b/wagtail/wagtailforms/locale/eu/LC_MESSAGES/django.po @@ -0,0 +1,128 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-09-11 15:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Basque (http://www.transifex.com/projects/p/wagtail/language/eu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: eu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: models.py:22 +msgid "Single line text" +msgstr "" + +#: models.py:23 +msgid "Multi-line text" +msgstr "" + +#: models.py:24 +msgid "Email" +msgstr "" + +#: models.py:25 +msgid "Number" +msgstr "" + +#: models.py:26 +msgid "URL" +msgstr "" + +#: models.py:27 +msgid "Checkbox" +msgstr "" + +#: models.py:28 +msgid "Checkboxes" +msgstr "" + +#: models.py:29 +msgid "Drop down" +msgstr "" + +#: models.py:30 +msgid "Radio buttons" +msgstr "" + +#: models.py:31 +msgid "Date" +msgstr "" + +#: models.py:32 +msgid "Date/time" +msgstr "" + +#: models.py:60 +msgid "The label of the form field" +msgstr "" + +#: models.py:67 +msgid "" +"Comma seperated list of choices. Only applicable in checkboxes, radio and " +"dropdown." +msgstr "" + +#: models.py:72 +msgid "Default value. Comma seperated values supported for checkboxes." +msgstr "" + +#: models.py:191 +msgid "Optional - form submissions will be emailed to this address" +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailforms/index.html:3 +#: templates/wagtailforms/index.html:6 +msgid "Forms" +msgstr "" + +#: templates/wagtailforms/index.html:7 +msgid "Pages" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:3 +#, python-format +msgid "Submissions of %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:36 +#, python-format +msgid "Form data %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:45 +msgid "Filter" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:51 +msgid "Download CSV" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:63 +#, python-format +msgid "There have been no submissions of the '%(title)s' form." +msgstr "" + +#: templates/wagtailforms/list_forms.html:7 +msgid "Title" +msgstr "" + +#: templates/wagtailforms/list_forms.html:8 +msgid "Origin" +msgstr "" + +#: templates/wagtailforms/list_submissions.html:9 +msgid "Submission Date" +msgstr "" + +#: templates/wagtailforms/results_forms.html:7 +msgid "No form pages have been created." +msgstr "" diff --git a/wagtail/wagtailforms/locale/fr/LC_MESSAGES/django.mo b/wagtail/wagtailforms/locale/fr/LC_MESSAGES/django.mo new file mode 100644 index 000000000..53ebd1325 Binary files /dev/null and b/wagtail/wagtailforms/locale/fr/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailforms/locale/fr/LC_MESSAGES/django.po b/wagtail/wagtailforms/locale/fr/LC_MESSAGES/django.po new file mode 100644 index 000000000..52671c047 --- /dev/null +++ b/wagtail/wagtailforms/locale/fr/LC_MESSAGES/django.po @@ -0,0 +1,128 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-09-11 15:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: French (http://www.transifex.com/projects/p/wagtail/language/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: models.py:22 +msgid "Single line text" +msgstr "" + +#: models.py:23 +msgid "Multi-line text" +msgstr "" + +#: models.py:24 +msgid "Email" +msgstr "" + +#: models.py:25 +msgid "Number" +msgstr "" + +#: models.py:26 +msgid "URL" +msgstr "" + +#: models.py:27 +msgid "Checkbox" +msgstr "" + +#: models.py:28 +msgid "Checkboxes" +msgstr "" + +#: models.py:29 +msgid "Drop down" +msgstr "" + +#: models.py:30 +msgid "Radio buttons" +msgstr "" + +#: models.py:31 +msgid "Date" +msgstr "" + +#: models.py:32 +msgid "Date/time" +msgstr "" + +#: models.py:60 +msgid "The label of the form field" +msgstr "" + +#: models.py:67 +msgid "" +"Comma seperated list of choices. Only applicable in checkboxes, radio and " +"dropdown." +msgstr "" + +#: models.py:72 +msgid "Default value. Comma seperated values supported for checkboxes." +msgstr "" + +#: models.py:191 +msgid "Optional - form submissions will be emailed to this address" +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailforms/index.html:3 +#: templates/wagtailforms/index.html:6 +msgid "Forms" +msgstr "" + +#: templates/wagtailforms/index.html:7 +msgid "Pages" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:3 +#, python-format +msgid "Submissions of %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:36 +#, python-format +msgid "Form data %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:45 +msgid "Filter" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:51 +msgid "Download CSV" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:63 +#, python-format +msgid "There have been no submissions of the '%(title)s' form." +msgstr "" + +#: templates/wagtailforms/list_forms.html:7 +msgid "Title" +msgstr "" + +#: templates/wagtailforms/list_forms.html:8 +msgid "Origin" +msgstr "" + +#: templates/wagtailforms/list_submissions.html:9 +msgid "Submission Date" +msgstr "" + +#: templates/wagtailforms/results_forms.html:7 +msgid "No form pages have been created." +msgstr "" diff --git a/wagtail/wagtailforms/locale/gl/LC_MESSAGES/django.mo b/wagtail/wagtailforms/locale/gl/LC_MESSAGES/django.mo new file mode 100644 index 000000000..6f4d7af3e Binary files /dev/null and b/wagtail/wagtailforms/locale/gl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailforms/locale/gl/LC_MESSAGES/django.po b/wagtail/wagtailforms/locale/gl/LC_MESSAGES/django.po new file mode 100644 index 000000000..9e2a2efb3 --- /dev/null +++ b/wagtail/wagtailforms/locale/gl/LC_MESSAGES/django.po @@ -0,0 +1,128 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-09-11 15:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Galician (http://www.transifex.com/projects/p/wagtail/language/gl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: gl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: models.py:22 +msgid "Single line text" +msgstr "" + +#: models.py:23 +msgid "Multi-line text" +msgstr "" + +#: models.py:24 +msgid "Email" +msgstr "" + +#: models.py:25 +msgid "Number" +msgstr "" + +#: models.py:26 +msgid "URL" +msgstr "" + +#: models.py:27 +msgid "Checkbox" +msgstr "" + +#: models.py:28 +msgid "Checkboxes" +msgstr "" + +#: models.py:29 +msgid "Drop down" +msgstr "" + +#: models.py:30 +msgid "Radio buttons" +msgstr "" + +#: models.py:31 +msgid "Date" +msgstr "" + +#: models.py:32 +msgid "Date/time" +msgstr "" + +#: models.py:60 +msgid "The label of the form field" +msgstr "" + +#: models.py:67 +msgid "" +"Comma seperated list of choices. Only applicable in checkboxes, radio and " +"dropdown." +msgstr "" + +#: models.py:72 +msgid "Default value. Comma seperated values supported for checkboxes." +msgstr "" + +#: models.py:191 +msgid "Optional - form submissions will be emailed to this address" +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailforms/index.html:3 +#: templates/wagtailforms/index.html:6 +msgid "Forms" +msgstr "" + +#: templates/wagtailforms/index.html:7 +msgid "Pages" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:3 +#, python-format +msgid "Submissions of %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:36 +#, python-format +msgid "Form data %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:45 +msgid "Filter" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:51 +msgid "Download CSV" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:63 +#, python-format +msgid "There have been no submissions of the '%(title)s' form." +msgstr "" + +#: templates/wagtailforms/list_forms.html:7 +msgid "Title" +msgstr "" + +#: templates/wagtailforms/list_forms.html:8 +msgid "Origin" +msgstr "" + +#: templates/wagtailforms/list_submissions.html:9 +msgid "Submission Date" +msgstr "" + +#: templates/wagtailforms/results_forms.html:7 +msgid "No form pages have been created." +msgstr "" diff --git a/wagtail/wagtailforms/locale/mn/LC_MESSAGES/django.mo b/wagtail/wagtailforms/locale/mn/LC_MESSAGES/django.mo new file mode 100644 index 000000000..f1f9b7ad8 Binary files /dev/null and b/wagtail/wagtailforms/locale/mn/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailforms/locale/mn/LC_MESSAGES/django.po b/wagtail/wagtailforms/locale/mn/LC_MESSAGES/django.po new file mode 100644 index 000000000..aaefea9c1 --- /dev/null +++ b/wagtail/wagtailforms/locale/mn/LC_MESSAGES/django.po @@ -0,0 +1,128 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-09-11 15:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Mongolian (http://www.transifex.com/projects/p/wagtail/language/mn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: mn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: models.py:22 +msgid "Single line text" +msgstr "" + +#: models.py:23 +msgid "Multi-line text" +msgstr "" + +#: models.py:24 +msgid "Email" +msgstr "" + +#: models.py:25 +msgid "Number" +msgstr "" + +#: models.py:26 +msgid "URL" +msgstr "" + +#: models.py:27 +msgid "Checkbox" +msgstr "" + +#: models.py:28 +msgid "Checkboxes" +msgstr "" + +#: models.py:29 +msgid "Drop down" +msgstr "" + +#: models.py:30 +msgid "Radio buttons" +msgstr "" + +#: models.py:31 +msgid "Date" +msgstr "" + +#: models.py:32 +msgid "Date/time" +msgstr "" + +#: models.py:60 +msgid "The label of the form field" +msgstr "" + +#: models.py:67 +msgid "" +"Comma seperated list of choices. Only applicable in checkboxes, radio and " +"dropdown." +msgstr "" + +#: models.py:72 +msgid "Default value. Comma seperated values supported for checkboxes." +msgstr "" + +#: models.py:191 +msgid "Optional - form submissions will be emailed to this address" +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailforms/index.html:3 +#: templates/wagtailforms/index.html:6 +msgid "Forms" +msgstr "" + +#: templates/wagtailforms/index.html:7 +msgid "Pages" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:3 +#, python-format +msgid "Submissions of %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:36 +#, python-format +msgid "Form data %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:45 +msgid "Filter" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:51 +msgid "Download CSV" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:63 +#, python-format +msgid "There have been no submissions of the '%(title)s' form." +msgstr "" + +#: templates/wagtailforms/list_forms.html:7 +msgid "Title" +msgstr "" + +#: templates/wagtailforms/list_forms.html:8 +msgid "Origin" +msgstr "" + +#: templates/wagtailforms/list_submissions.html:9 +msgid "Submission Date" +msgstr "" + +#: templates/wagtailforms/results_forms.html:7 +msgid "No form pages have been created." +msgstr "" diff --git a/wagtail/wagtailforms/locale/pl/LC_MESSAGES/django.mo b/wagtail/wagtailforms/locale/pl/LC_MESSAGES/django.mo new file mode 100644 index 000000000..797f5eeb1 Binary files /dev/null and b/wagtail/wagtailforms/locale/pl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailforms/locale/pl/LC_MESSAGES/django.po b/wagtail/wagtailforms/locale/pl/LC_MESSAGES/django.po new file mode 100644 index 000000000..469d2f265 --- /dev/null +++ b/wagtail/wagtailforms/locale/pl/LC_MESSAGES/django.po @@ -0,0 +1,128 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-09-11 15:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Polish (http://www.transifex.com/projects/p/wagtail/language/pl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pl\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: models.py:22 +msgid "Single line text" +msgstr "" + +#: models.py:23 +msgid "Multi-line text" +msgstr "" + +#: models.py:24 +msgid "Email" +msgstr "" + +#: models.py:25 +msgid "Number" +msgstr "" + +#: models.py:26 +msgid "URL" +msgstr "" + +#: models.py:27 +msgid "Checkbox" +msgstr "" + +#: models.py:28 +msgid "Checkboxes" +msgstr "" + +#: models.py:29 +msgid "Drop down" +msgstr "" + +#: models.py:30 +msgid "Radio buttons" +msgstr "" + +#: models.py:31 +msgid "Date" +msgstr "" + +#: models.py:32 +msgid "Date/time" +msgstr "" + +#: models.py:60 +msgid "The label of the form field" +msgstr "" + +#: models.py:67 +msgid "" +"Comma seperated list of choices. Only applicable in checkboxes, radio and " +"dropdown." +msgstr "" + +#: models.py:72 +msgid "Default value. Comma seperated values supported for checkboxes." +msgstr "" + +#: models.py:191 +msgid "Optional - form submissions will be emailed to this address" +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailforms/index.html:3 +#: templates/wagtailforms/index.html:6 +msgid "Forms" +msgstr "" + +#: templates/wagtailforms/index.html:7 +msgid "Pages" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:3 +#, python-format +msgid "Submissions of %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:36 +#, python-format +msgid "Form data %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:45 +msgid "Filter" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:51 +msgid "Download CSV" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:63 +#, python-format +msgid "There have been no submissions of the '%(title)s' form." +msgstr "" + +#: templates/wagtailforms/list_forms.html:7 +msgid "Title" +msgstr "" + +#: templates/wagtailforms/list_forms.html:8 +msgid "Origin" +msgstr "" + +#: templates/wagtailforms/list_submissions.html:9 +msgid "Submission Date" +msgstr "" + +#: templates/wagtailforms/results_forms.html:7 +msgid "No form pages have been created." +msgstr "" diff --git a/wagtail/wagtailforms/locale/pt_BR/LC_MESSAGES/django.mo b/wagtail/wagtailforms/locale/pt_BR/LC_MESSAGES/django.mo new file mode 100644 index 000000000..fb979c238 Binary files /dev/null and b/wagtail/wagtailforms/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailforms/locale/pt_BR/LC_MESSAGES/django.po b/wagtail/wagtailforms/locale/pt_BR/LC_MESSAGES/django.po new file mode 100644 index 000000000..315823038 --- /dev/null +++ b/wagtail/wagtailforms/locale/pt_BR/LC_MESSAGES/django.po @@ -0,0 +1,128 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-09-11 15:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/wagtail/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: models.py:22 +msgid "Single line text" +msgstr "" + +#: models.py:23 +msgid "Multi-line text" +msgstr "" + +#: models.py:24 +msgid "Email" +msgstr "" + +#: models.py:25 +msgid "Number" +msgstr "" + +#: models.py:26 +msgid "URL" +msgstr "" + +#: models.py:27 +msgid "Checkbox" +msgstr "" + +#: models.py:28 +msgid "Checkboxes" +msgstr "" + +#: models.py:29 +msgid "Drop down" +msgstr "" + +#: models.py:30 +msgid "Radio buttons" +msgstr "" + +#: models.py:31 +msgid "Date" +msgstr "" + +#: models.py:32 +msgid "Date/time" +msgstr "" + +#: models.py:60 +msgid "The label of the form field" +msgstr "" + +#: models.py:67 +msgid "" +"Comma seperated list of choices. Only applicable in checkboxes, radio and " +"dropdown." +msgstr "" + +#: models.py:72 +msgid "Default value. Comma seperated values supported for checkboxes." +msgstr "" + +#: models.py:191 +msgid "Optional - form submissions will be emailed to this address" +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailforms/index.html:3 +#: templates/wagtailforms/index.html:6 +msgid "Forms" +msgstr "" + +#: templates/wagtailforms/index.html:7 +msgid "Pages" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:3 +#, python-format +msgid "Submissions of %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:36 +#, python-format +msgid "Form data %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:45 +msgid "Filter" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:51 +msgid "Download CSV" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:63 +#, python-format +msgid "There have been no submissions of the '%(title)s' form." +msgstr "" + +#: templates/wagtailforms/list_forms.html:7 +msgid "Title" +msgstr "" + +#: templates/wagtailforms/list_forms.html:8 +msgid "Origin" +msgstr "" + +#: templates/wagtailforms/list_submissions.html:9 +msgid "Submission Date" +msgstr "" + +#: templates/wagtailforms/results_forms.html:7 +msgid "No form pages have been created." +msgstr "" diff --git a/wagtail/wagtailforms/locale/pt_PT/LC_MESSAGES/django.mo b/wagtail/wagtailforms/locale/pt_PT/LC_MESSAGES/django.mo new file mode 100644 index 000000000..cf3834a32 Binary files /dev/null and b/wagtail/wagtailforms/locale/pt_PT/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailforms/locale/pt_PT/LC_MESSAGES/django.po b/wagtail/wagtailforms/locale/pt_PT/LC_MESSAGES/django.po new file mode 100644 index 000000000..ad395a0a6 --- /dev/null +++ b/wagtail/wagtailforms/locale/pt_PT/LC_MESSAGES/django.po @@ -0,0 +1,136 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-09-17 17:32+0100\n" +"Last-Translator: Jose Lourenco \n" +"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/" +"wagtail/language/pt_PT/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_PT\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: models.py:22 +msgid "Single line text" +msgstr "Linha de texto" + +#: models.py:23 +msgid "Multi-line text" +msgstr "Caixa de linhas de texto" + +#: models.py:24 +msgid "Email" +msgstr "Email" + +#: models.py:25 +msgid "Number" +msgstr "Número" + +#: models.py:26 +msgid "URL" +msgstr "URL" + +#: models.py:27 +msgid "Checkbox" +msgstr "Caixa de seleção" + +#: models.py:28 +msgid "Checkboxes" +msgstr "Caixas de seleção" + +#: models.py:29 +msgid "Drop down" +msgstr "Lista pendente" + +#: models.py:30 +msgid "Radio buttons" +msgstr "Botões de seleção" + +#: models.py:31 +msgid "Date" +msgstr "Data" + +#: models.py:32 +msgid "Date/time" +msgstr "Data/hora" + +#: models.py:60 +msgid "The label of the form field" +msgstr "O nome do campo do formulário" + +#: models.py:67 +msgid "" +"Comma seperated list of choices. Only applicable in checkboxes, radio and " +"dropdown." +msgstr "" +"Lista de opções separadas por vírgula. Só utilizável nas caixas de seleção, " +"botões e listas pendentes." + +#: models.py:72 +msgid "Default value. Comma seperated values supported for checkboxes." +msgstr "" +"Valor pré-definido. Valores separados por vírgula admitidos nas caixas de " +"seleção." + +#: models.py:191 +msgid "Optional - form submissions will be emailed to this address" +msgstr "" +"Opcional - as submissões de formulários serão enviadas por email para este " +"endereço" + +#: wagtail_hooks.py:25 templates/wagtailforms/index.html:3 +#: templates/wagtailforms/index.html:6 +msgid "Forms" +msgstr "Formulários" + +#: templates/wagtailforms/index.html:7 +msgid "Pages" +msgstr "Páginas" + +#: templates/wagtailforms/index_submissions.html:3 +#, python-format +msgid "Submissions of %(form_title)s" +msgstr "Submissões de %(form_title)s" + +#: templates/wagtailforms/index_submissions.html:36 +#, python-format +msgid "Form data %(form_title)s" +msgstr "Dados do formulário %(form_title)s" + +#: templates/wagtailforms/index_submissions.html:45 +msgid "Filter" +msgstr "Filtrar" + +#: templates/wagtailforms/index_submissions.html:51 +msgid "Download CSV" +msgstr "Descarregar CSV" + +#: templates/wagtailforms/index_submissions.html:63 +#, python-format +msgid "There have been no submissions of the '%(title)s' form." +msgstr "Não houve submissões do formulário '%(title)s'." + +#: templates/wagtailforms/list_forms.html:7 +msgid "Title" +msgstr "Título" + +#: templates/wagtailforms/list_forms.html:8 +msgid "Origin" +msgstr "Origem" + +#: templates/wagtailforms/list_submissions.html:9 +msgid "Submission Date" +msgstr "Data de submissão" + +#: templates/wagtailforms/results_forms.html:7 +msgid "No form pages have been created." +msgstr "Não foram criadas páginas de formulários." diff --git a/wagtail/wagtailforms/locale/ro/LC_MESSAGES/django.mo b/wagtail/wagtailforms/locale/ro/LC_MESSAGES/django.mo new file mode 100644 index 000000000..c0b5200f9 Binary files /dev/null and b/wagtail/wagtailforms/locale/ro/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailforms/locale/ro/LC_MESSAGES/django.po b/wagtail/wagtailforms/locale/ro/LC_MESSAGES/django.po new file mode 100644 index 000000000..e9c5fafcc --- /dev/null +++ b/wagtail/wagtailforms/locale/ro/LC_MESSAGES/django.po @@ -0,0 +1,128 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-09-11 15:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Romanian (http://www.transifex.com/projects/p/wagtail/language/ro/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ro\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" + +#: models.py:22 +msgid "Single line text" +msgstr "" + +#: models.py:23 +msgid "Multi-line text" +msgstr "" + +#: models.py:24 +msgid "Email" +msgstr "" + +#: models.py:25 +msgid "Number" +msgstr "" + +#: models.py:26 +msgid "URL" +msgstr "" + +#: models.py:27 +msgid "Checkbox" +msgstr "" + +#: models.py:28 +msgid "Checkboxes" +msgstr "" + +#: models.py:29 +msgid "Drop down" +msgstr "" + +#: models.py:30 +msgid "Radio buttons" +msgstr "" + +#: models.py:31 +msgid "Date" +msgstr "" + +#: models.py:32 +msgid "Date/time" +msgstr "" + +#: models.py:60 +msgid "The label of the form field" +msgstr "" + +#: models.py:67 +msgid "" +"Comma seperated list of choices. Only applicable in checkboxes, radio and " +"dropdown." +msgstr "" + +#: models.py:72 +msgid "Default value. Comma seperated values supported for checkboxes." +msgstr "" + +#: models.py:191 +msgid "Optional - form submissions will be emailed to this address" +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailforms/index.html:3 +#: templates/wagtailforms/index.html:6 +msgid "Forms" +msgstr "" + +#: templates/wagtailforms/index.html:7 +msgid "Pages" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:3 +#, python-format +msgid "Submissions of %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:36 +#, python-format +msgid "Form data %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:45 +msgid "Filter" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:51 +msgid "Download CSV" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:63 +#, python-format +msgid "There have been no submissions of the '%(title)s' form." +msgstr "" + +#: templates/wagtailforms/list_forms.html:7 +msgid "Title" +msgstr "" + +#: templates/wagtailforms/list_forms.html:8 +msgid "Origin" +msgstr "" + +#: templates/wagtailforms/list_submissions.html:9 +msgid "Submission Date" +msgstr "" + +#: templates/wagtailforms/results_forms.html:7 +msgid "No form pages have been created." +msgstr "" diff --git a/wagtail/wagtailforms/locale/ru/LC_MESSAGES/django.mo b/wagtail/wagtailforms/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 000000000..622e7e974 Binary files /dev/null and b/wagtail/wagtailforms/locale/ru/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailforms/locale/ru/LC_MESSAGES/django.po b/wagtail/wagtailforms/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 000000000..c264a4aa0 --- /dev/null +++ b/wagtail/wagtailforms/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,128 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-09-11 15:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Russian (http://www.transifex.com/projects/p/wagtail/language/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: models.py:22 +msgid "Single line text" +msgstr "" + +#: models.py:23 +msgid "Multi-line text" +msgstr "" + +#: models.py:24 +msgid "Email" +msgstr "" + +#: models.py:25 +msgid "Number" +msgstr "" + +#: models.py:26 +msgid "URL" +msgstr "" + +#: models.py:27 +msgid "Checkbox" +msgstr "" + +#: models.py:28 +msgid "Checkboxes" +msgstr "" + +#: models.py:29 +msgid "Drop down" +msgstr "" + +#: models.py:30 +msgid "Radio buttons" +msgstr "" + +#: models.py:31 +msgid "Date" +msgstr "" + +#: models.py:32 +msgid "Date/time" +msgstr "" + +#: models.py:60 +msgid "The label of the form field" +msgstr "" + +#: models.py:67 +msgid "" +"Comma seperated list of choices. Only applicable in checkboxes, radio and " +"dropdown." +msgstr "" + +#: models.py:72 +msgid "Default value. Comma seperated values supported for checkboxes." +msgstr "" + +#: models.py:191 +msgid "Optional - form submissions will be emailed to this address" +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailforms/index.html:3 +#: templates/wagtailforms/index.html:6 +msgid "Forms" +msgstr "" + +#: templates/wagtailforms/index.html:7 +msgid "Pages" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:3 +#, python-format +msgid "Submissions of %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:36 +#, python-format +msgid "Form data %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:45 +msgid "Filter" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:51 +msgid "Download CSV" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:63 +#, python-format +msgid "There have been no submissions of the '%(title)s' form." +msgstr "" + +#: templates/wagtailforms/list_forms.html:7 +msgid "Title" +msgstr "" + +#: templates/wagtailforms/list_forms.html:8 +msgid "Origin" +msgstr "" + +#: templates/wagtailforms/list_submissions.html:9 +msgid "Submission Date" +msgstr "" + +#: templates/wagtailforms/results_forms.html:7 +msgid "No form pages have been created." +msgstr "" diff --git a/wagtail/wagtailforms/locale/vi/LC_MESSAGES/django.mo b/wagtail/wagtailforms/locale/vi/LC_MESSAGES/django.mo new file mode 100644 index 000000000..cacf3a6ac Binary files /dev/null and b/wagtail/wagtailforms/locale/vi/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailforms/locale/vi/LC_MESSAGES/django.po b/wagtail/wagtailforms/locale/vi/LC_MESSAGES/django.po new file mode 100644 index 000000000..02a3d2f09 --- /dev/null +++ b/wagtail/wagtailforms/locale/vi/LC_MESSAGES/django.po @@ -0,0 +1,128 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-09-11 15:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Vietnamese (http://www.transifex.com/projects/p/wagtail/language/vi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: models.py:22 +msgid "Single line text" +msgstr "" + +#: models.py:23 +msgid "Multi-line text" +msgstr "" + +#: models.py:24 +msgid "Email" +msgstr "" + +#: models.py:25 +msgid "Number" +msgstr "" + +#: models.py:26 +msgid "URL" +msgstr "" + +#: models.py:27 +msgid "Checkbox" +msgstr "" + +#: models.py:28 +msgid "Checkboxes" +msgstr "" + +#: models.py:29 +msgid "Drop down" +msgstr "" + +#: models.py:30 +msgid "Radio buttons" +msgstr "" + +#: models.py:31 +msgid "Date" +msgstr "" + +#: models.py:32 +msgid "Date/time" +msgstr "" + +#: models.py:60 +msgid "The label of the form field" +msgstr "" + +#: models.py:67 +msgid "" +"Comma seperated list of choices. Only applicable in checkboxes, radio and " +"dropdown." +msgstr "" + +#: models.py:72 +msgid "Default value. Comma seperated values supported for checkboxes." +msgstr "" + +#: models.py:191 +msgid "Optional - form submissions will be emailed to this address" +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailforms/index.html:3 +#: templates/wagtailforms/index.html:6 +msgid "Forms" +msgstr "" + +#: templates/wagtailforms/index.html:7 +msgid "Pages" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:3 +#, python-format +msgid "Submissions of %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:36 +#, python-format +msgid "Form data %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:45 +msgid "Filter" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:51 +msgid "Download CSV" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:63 +#, python-format +msgid "There have been no submissions of the '%(title)s' form." +msgstr "" + +#: templates/wagtailforms/list_forms.html:7 +msgid "Title" +msgstr "" + +#: templates/wagtailforms/list_forms.html:8 +msgid "Origin" +msgstr "" + +#: templates/wagtailforms/list_submissions.html:9 +msgid "Submission Date" +msgstr "" + +#: templates/wagtailforms/results_forms.html:7 +msgid "No form pages have been created." +msgstr "" diff --git a/wagtail/wagtailforms/locale/zh/LC_MESSAGES/django.mo b/wagtail/wagtailforms/locale/zh/LC_MESSAGES/django.mo new file mode 100644 index 000000000..d48cfe5e0 Binary files /dev/null and b/wagtail/wagtailforms/locale/zh/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailforms/locale/zh/LC_MESSAGES/django.po b/wagtail/wagtailforms/locale/zh/LC_MESSAGES/django.po new file mode 100644 index 000000000..a7671d429 --- /dev/null +++ b/wagtail/wagtailforms/locale/zh/LC_MESSAGES/django.po @@ -0,0 +1,128 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-09-11 15:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Chinese (http://www.transifex.com/projects/p/wagtail/language/zh/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: models.py:22 +msgid "Single line text" +msgstr "" + +#: models.py:23 +msgid "Multi-line text" +msgstr "" + +#: models.py:24 +msgid "Email" +msgstr "" + +#: models.py:25 +msgid "Number" +msgstr "" + +#: models.py:26 +msgid "URL" +msgstr "" + +#: models.py:27 +msgid "Checkbox" +msgstr "" + +#: models.py:28 +msgid "Checkboxes" +msgstr "" + +#: models.py:29 +msgid "Drop down" +msgstr "" + +#: models.py:30 +msgid "Radio buttons" +msgstr "" + +#: models.py:31 +msgid "Date" +msgstr "" + +#: models.py:32 +msgid "Date/time" +msgstr "" + +#: models.py:60 +msgid "The label of the form field" +msgstr "" + +#: models.py:67 +msgid "" +"Comma seperated list of choices. Only applicable in checkboxes, radio and " +"dropdown." +msgstr "" + +#: models.py:72 +msgid "Default value. Comma seperated values supported for checkboxes." +msgstr "" + +#: models.py:191 +msgid "Optional - form submissions will be emailed to this address" +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailforms/index.html:3 +#: templates/wagtailforms/index.html:6 +msgid "Forms" +msgstr "" + +#: templates/wagtailforms/index.html:7 +msgid "Pages" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:3 +#, python-format +msgid "Submissions of %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:36 +#, python-format +msgid "Form data %(form_title)s" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:45 +msgid "Filter" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:51 +msgid "Download CSV" +msgstr "" + +#: templates/wagtailforms/index_submissions.html:63 +#, python-format +msgid "There have been no submissions of the '%(title)s' form." +msgstr "" + +#: templates/wagtailforms/list_forms.html:7 +msgid "Title" +msgstr "" + +#: templates/wagtailforms/list_forms.html:8 +msgid "Origin" +msgstr "" + +#: templates/wagtailforms/list_submissions.html:9 +msgid "Submission Date" +msgstr "" + +#: templates/wagtailforms/results_forms.html:7 +msgid "No form pages have been created." +msgstr "" diff --git a/wagtail/wagtailforms/migrations/0001_initial.py b/wagtail/wagtailforms/migrations/0001_initial.py new file mode 100644 index 000000000..4b28f0ddf --- /dev/null +++ b/wagtail/wagtailforms/migrations/0001_initial.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('wagtailcore', '0002_initial_data'), + ] + + operations = [ + migrations.CreateModel( + name='FormSubmission', + fields=[ + ('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)), + ('form_data', models.TextField()), + ('submit_time', models.DateTimeField(auto_now_add=True)), + ('page', models.ForeignKey(to='wagtailcore.Page')), + ], + options={ + }, + bases=(models.Model,), + ), + ] diff --git a/wagtail/wagtailforms/migrations/__init__.py b/wagtail/wagtailforms/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/wagtail/wagtailforms/wagtail_hooks.py b/wagtail/wagtailforms/wagtail_hooks.py index 427c678ad..ffcf23f6a 100644 --- a/wagtail/wagtailforms/wagtail_hooks.py +++ b/wagtail/wagtailforms/wagtail_hooks.py @@ -15,13 +15,15 @@ def register_admin_urls(): url(r'^forms/', include(urls)), ] -@hooks.register('construct_main_menu') -def construct_main_menu(request, menu_items): - # show this only if the user has permission to retrieve submissions for at least one form - if get_forms_for_user(request.user).exists(): - menu_items.append( - MenuItem(_('Forms'), urlresolvers.reverse('wagtailforms_index'), classnames='icon icon-form', order=700) - ) +class FormsMenuItem(MenuItem): + def is_shown(self, request): + # show this only if the user has permission to retrieve submissions for at least one form + return get_forms_for_user(request.user).exists() + +@hooks.register('register_admin_menu_item') +def register_forms_menu_item(): + return FormsMenuItem(_('Forms'), urlresolvers.reverse('wagtailforms_index'), classnames='icon icon-form', order=700) + @hooks.register('insert_editor_js') def editor_js(): diff --git a/wagtail/wagtailimages/__init__.py b/wagtail/wagtailimages/__init__.py index e69de29bb..61397a911 100644 --- a/wagtail/wagtailimages/__init__.py +++ b/wagtail/wagtailimages/__init__.py @@ -0,0 +1 @@ +default_app_config = 'wagtail.wagtailimages.apps.WagtailImagesAppConfig' diff --git a/wagtail/wagtailimages/apps.py b/wagtail/wagtailimages/apps.py new file mode 100644 index 000000000..88cd6e3f0 --- /dev/null +++ b/wagtail/wagtailimages/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class WagtailImagesAppConfig(AppConfig): + name = 'wagtail.wagtailimages' + label = 'wagtailimages' + verbose_name = "Wagtail images" diff --git a/wagtail/wagtailimages/formats.py b/wagtail/wagtailimages/formats.py index d00b65b44..3c5644a07 100644 --- a/wagtail/wagtailimages/formats.py +++ b/wagtail/wagtailimages/formats.py @@ -1,11 +1,6 @@ -from django.conf import settings from django.utils.html import escape -try: - from importlib import import_module -except ImportError: - # for Python 2.6, fall back on django.utils.importlib (deprecated as of Django 1.7) - from django.utils.importlib import import_module +from wagtail.utils.apps import get_app_submodules class Format(object): @@ -85,12 +80,7 @@ _searched_for_image_formats = False def search_for_image_formats(): global _searched_for_image_formats if not _searched_for_image_formats: - for app_module in settings.INSTALLED_APPS: - try: - import_module('%s.image_formats' % app_module) - except ImportError: - continue - + list(get_app_submodules('image_formats')) _searched_for_image_formats = True diff --git a/wagtail/wagtailimages/forms.py b/wagtail/wagtailimages/forms.py index 5f98fd1b0..af3b3ce83 100644 --- a/wagtail/wagtailimages/forms.py +++ b/wagtail/wagtailimages/forms.py @@ -12,12 +12,23 @@ def get_image_form(): # set the 'file' widget to a FileInput rather than the default ClearableFileInput # so that when editing, we don't get the 'currently: ...' banner which is # a bit pointless here - widgets={'file': forms.FileInput()}) + widgets={ + 'file': forms.FileInput(), + 'focal_point_x': forms.HiddenInput(attrs={'class': 'focal_point_x'}), + 'focal_point_y': forms.HiddenInput(attrs={'class': 'focal_point_y'}), + 'focal_point_width': forms.HiddenInput(attrs={'class': 'focal_point_width'}), + 'focal_point_height': forms.HiddenInput(attrs={'class': 'focal_point_height'}), + }) def get_image_form_for_multi(): # exclude the file widget - return modelform_factory(get_image_model(), exclude=('file',)) + return modelform_factory(get_image_model(), exclude=('file',), widgets={ + 'focal_point_x': forms.HiddenInput(attrs={'class': 'focal_point_x'}), + 'focal_point_y': forms.HiddenInput(attrs={'class': 'focal_point_y'}), + 'focal_point_width': forms.HiddenInput(attrs={'class': 'focal_point_width'}), + 'focal_point_height': forms.HiddenInput(attrs={'class': 'focal_point_height'}), + }) class ImageInsertionForm(forms.Form): diff --git a/wagtail/wagtailimages/locale/bg/LC_MESSAGES/django.mo b/wagtail/wagtailimages/locale/bg/LC_MESSAGES/django.mo index bbfc710a9..70184a418 100644 Binary files a/wagtail/wagtailimages/locale/bg/LC_MESSAGES/django.mo and b/wagtail/wagtailimages/locale/bg/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailimages/locale/bg/LC_MESSAGES/django.po b/wagtail/wagtailimages/locale/bg/LC_MESSAGES/django.po index d065aad7e..a918ad772 100644 --- a/wagtail/wagtailimages/locale/bg/LC_MESSAGES/django.po +++ b/wagtail/wagtailimages/locale/bg/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Lyuboslav Petrov , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Bulgarian (http://www.transifex.com/projects/p/wagtail/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/projects/p/wagtail/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: forms.py:37 @@ -54,7 +55,7 @@ msgstr "" msgid "Height" msgstr "" -#: models.py:34 templates/wagtailimages/images/usage.html:16 +#: models.py:48 templates/wagtailimages/images/usage.html:16 msgid "Title" msgstr "Заглавие" @@ -66,7 +67,7 @@ msgstr "Файл" msgid "Tags" msgstr "Тагове" -#: wagtail_hooks.py:64 templates/wagtailimages/images/index.html:5 +#: wagtail_hooks.py:69 templates/wagtailimages/images/index.html:5 #: templates/wagtailimages/images/index.html:18 msgid "Images" msgstr "Изображения" @@ -101,8 +102,13 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Има едно съвпадение\n " -msgstr[1] "\nИма %(counter)s съвпадения" +msgstr[0] "" +"\n" +" Има едно съвпадение\n" +" " +msgstr[1] "" +"\n" +"Има %(counter)s съвпадения" #: templates/wagtailimages/chooser/results.html:13 #: templates/wagtailimages/images/results.html:13 @@ -175,9 +181,11 @@ msgstr "" #: templates/wagtailimages/images/results.html:34 #, python-format msgid "" -"You've not uploaded any images. Why not add one now?" -msgstr "Не сте качили никакви изображения. Защо не качите едно сега?" +"You've not uploaded any images. Why not add one now?" +msgstr "" +"Не сте качили никакви изображения. Защо не качите едно сега?" #: templates/wagtailimages/images/url_generator.html:9 msgid "Generating URL" @@ -270,26 +278,26 @@ msgid "" "file extension (*.gif, *.jpg or *.png)." msgstr "" -#: views/images.py:37 views/images.py:47 +#: views/images.py:38 views/images.py:48 msgid "Search images" msgstr "" -#: views/images.py:99 +#: views/images.py:105 msgid "Image '{0}' updated." msgstr "Изображение '{0}' обновено." -#: views/images.py:102 +#: views/images.py:108 msgid "The image could not be saved due to errors." msgstr "Изображението не можеше да бъде запазено поради грешки." -#: views/images.py:188 +#: views/images.py:194 msgid "Image '{0}' deleted." msgstr "Изображение '{0}' изтрито." -#: views/images.py:206 +#: views/images.py:217 msgid "Image '{0}' added." msgstr "Изображение '{0}' добавено." -#: views/images.py:209 +#: views/images.py:220 msgid "The image could not be created due to errors." msgstr "Изображението не можеше да бъде създадено поради грешки." diff --git a/wagtail/wagtailimages/locale/ca/LC_MESSAGES/django.mo b/wagtail/wagtailimages/locale/ca/LC_MESSAGES/django.mo index 08f5ccfdb..f4fe7e02f 100644 Binary files a/wagtail/wagtailimages/locale/ca/LC_MESSAGES/django.mo and b/wagtail/wagtailimages/locale/ca/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailimages/locale/ca/LC_MESSAGES/django.po b/wagtail/wagtailimages/locale/ca/LC_MESSAGES/django.po index d43082fd6..442ff78bf 100644 --- a/wagtail/wagtailimages/locale/ca/LC_MESSAGES/django.po +++ b/wagtail/wagtailimages/locale/ca/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # David Llop , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Catalan (http://www.transifex.com/projects/p/wagtail/language/ca/)\n" +"Language-Team: Catalan (http://www.transifex.com/projects/p/wagtail/language/" +"ca/)\n" +"Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: forms.py:37 @@ -54,7 +55,7 @@ msgstr "" msgid "Height" msgstr "" -#: models.py:34 templates/wagtailimages/images/usage.html:16 +#: models.py:48 templates/wagtailimages/images/usage.html:16 msgid "Title" msgstr "Títol" @@ -66,7 +67,7 @@ msgstr "Arxiu" msgid "Tags" msgstr "Tags" -#: wagtail_hooks.py:64 templates/wagtailimages/images/index.html:5 +#: wagtail_hooks.py:69 templates/wagtailimages/images/index.html:5 #: templates/wagtailimages/images/index.html:18 msgid "Images" msgstr "Imatges" @@ -101,8 +102,12 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\nHi ha un resultat" -msgstr[1] "\nHi han %(counter)s resultats" +msgstr[0] "" +"\n" +"Hi ha un resultat" +msgstr[1] "" +"\n" +"Hi han %(counter)s resultats" #: templates/wagtailimages/chooser/results.html:13 #: templates/wagtailimages/images/results.html:13 @@ -175,9 +180,11 @@ msgstr "Ho sentim, cap imatge coincideix amb \"%(query_string)s\"" #: templates/wagtailimages/images/results.html:34 #, python-format msgid "" -"You've not uploaded any images. Why not add one now?" -msgstr "No has pujat cap imatge. Per què no afegeixes una ara?" +"You've not uploaded any images. Why not add one now?" +msgstr "" +"No has pujat cap imatge. Per què no afegeixes una ara?" #: templates/wagtailimages/images/url_generator.html:9 msgid "Generating URL" @@ -270,26 +277,26 @@ msgid "" "file extension (*.gif, *.jpg or *.png)." msgstr "" -#: views/images.py:37 views/images.py:47 +#: views/images.py:38 views/images.py:48 msgid "Search images" msgstr "Cercar imatges" -#: views/images.py:99 +#: views/images.py:105 msgid "Image '{0}' updated." msgstr "Imatge '{0}' actualitzada." -#: views/images.py:102 +#: views/images.py:108 msgid "The image could not be saved due to errors." msgstr "No s'ha pogut desar la imatge." -#: views/images.py:188 +#: views/images.py:194 msgid "Image '{0}' deleted." msgstr "Imatge '{0}' eliminada." -#: views/images.py:206 +#: views/images.py:217 msgid "Image '{0}' added." msgstr "Imatge '{0}' afegida." -#: views/images.py:209 +#: views/images.py:220 msgid "The image could not be created due to errors." msgstr "No s'ha pogut crear la imatge." diff --git a/wagtail/wagtailimages/locale/de/LC_MESSAGES/django.mo b/wagtail/wagtailimages/locale/de/LC_MESSAGES/django.mo index 0cb48f45d..5d844d6ea 100644 Binary files a/wagtail/wagtailimages/locale/de/LC_MESSAGES/django.mo and b/wagtail/wagtailimages/locale/de/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailimages/locale/de/LC_MESSAGES/django.po b/wagtail/wagtailimages/locale/de/LC_MESSAGES/django.po index 9f186eb44..283c79506 100644 --- a/wagtail/wagtailimages/locale/de/LC_MESSAGES/django.po +++ b/wagtail/wagtailimages/locale/de/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Johannes Spielmann , 2014 # pcraston , 2014 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: German (http://www.transifex.com/projects/p/wagtail/language/de/)\n" +"Language-Team: German (http://www.transifex.com/projects/p/wagtail/language/" +"de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: forms.py:37 @@ -55,7 +56,7 @@ msgstr "" msgid "Height" msgstr "" -#: models.py:34 templates/wagtailimages/images/usage.html:16 +#: models.py:48 templates/wagtailimages/images/usage.html:16 msgid "Title" msgstr "Titel" @@ -67,7 +68,7 @@ msgstr "Datei" msgid "Tags" msgstr "Schlagwörter" -#: wagtail_hooks.py:64 templates/wagtailimages/images/index.html:5 +#: wagtail_hooks.py:69 templates/wagtailimages/images/index.html:5 #: templates/wagtailimages/images/index.html:18 msgid "Images" msgstr "Bilder" @@ -102,8 +103,14 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Es gibt ein Ergebnis\n " -msgstr[1] "\n Es gibt %(counter)s Ergebnisse\n " +msgstr[0] "" +"\n" +" Es gibt ein Ergebnis\n" +" " +msgstr[1] "" +"\n" +" Es gibt %(counter)s Ergebnisse\n" +" " #: templates/wagtailimages/chooser/results.html:13 #: templates/wagtailimages/images/results.html:13 @@ -171,14 +178,17 @@ msgstr "Bearbeiten" #: templates/wagtailimages/images/results.html:31 #, python-format msgid "Sorry, no images match \"%(query_string)s\"" -msgstr "Es gibt leider keine Bilder zum Suchbegriff \"%(query_string)s\"" +msgstr "" +"Es gibt leider keine Bilder zum Suchbegriff \"%(query_string)s\"" #: templates/wagtailimages/images/results.html:34 #, python-format msgid "" -"You've not uploaded any images. Why not add one now?" -msgstr "Sie haben noch keine Bilder hochgeladen. Laden Sie doch jetzt eins hoch!" +"You've not uploaded any images. Why not add one now?" +msgstr "" +"Sie haben noch keine Bilder hochgeladen. Laden Sie doch jetzt eins hoch!" #: templates/wagtailimages/images/url_generator.html:9 msgid "Generating URL" @@ -271,26 +281,26 @@ msgid "" "file extension (*.gif, *.jpg or *.png)." msgstr "" -#: views/images.py:37 views/images.py:47 +#: views/images.py:38 views/images.py:48 msgid "Search images" msgstr "Nach Bildern suchen" -#: views/images.py:99 +#: views/images.py:105 msgid "Image '{0}' updated." msgstr "Bild '{0}' geändert." -#: views/images.py:102 +#: views/images.py:108 msgid "The image could not be saved due to errors." msgstr "Aufgrund von Fehlern konnte das Bild nicht gespeichert werden." -#: views/images.py:188 +#: views/images.py:194 msgid "Image '{0}' deleted." msgstr "Bild '{0}' gelöscht." -#: views/images.py:206 +#: views/images.py:217 msgid "Image '{0}' added." msgstr "Bild '{0}' hinzugefügt." -#: views/images.py:209 +#: views/images.py:220 msgid "The image could not be created due to errors." msgstr "Aufgrund von Fehlern konnte das Bild nicht erstellt werden." diff --git a/wagtail/wagtailimages/locale/el/LC_MESSAGES/django.mo b/wagtail/wagtailimages/locale/el/LC_MESSAGES/django.mo index fb25dfafc..38a0c15a1 100644 Binary files a/wagtail/wagtailimages/locale/el/LC_MESSAGES/django.mo and b/wagtail/wagtailimages/locale/el/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailimages/locale/el/LC_MESSAGES/django.po b/wagtail/wagtailimages/locale/el/LC_MESSAGES/django.po index 92bb5f8af..f0b526b0d 100644 --- a/wagtail/wagtailimages/locale/el/LC_MESSAGES/django.po +++ b/wagtail/wagtailimages/locale/el/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # serafeim , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Greek (http://www.transifex.com/projects/p/wagtail/language/el/)\n" +"Language-Team: Greek (http://www.transifex.com/projects/p/wagtail/language/" +"el/)\n" +"Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: forms.py:37 @@ -54,7 +55,7 @@ msgstr "" msgid "Height" msgstr "" -#: models.py:34 templates/wagtailimages/images/usage.html:16 +#: models.py:48 templates/wagtailimages/images/usage.html:16 msgid "Title" msgstr "Τίτλος" @@ -66,7 +67,7 @@ msgstr "Αρχείο" msgid "Tags" msgstr "Ετικέτες" -#: wagtail_hooks.py:64 templates/wagtailimages/images/index.html:5 +#: wagtail_hooks.py:69 templates/wagtailimages/images/index.html:5 #: templates/wagtailimages/images/index.html:18 msgid "Images" msgstr "Εικόνες" @@ -101,8 +102,13 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\nΒρέθηκε ένα αποτέλεσμα" -msgstr[1] "\n Βρέθηκαν %(counter)s αποτελέσματα\n " +msgstr[0] "" +"\n" +"Βρέθηκε ένα αποτέλεσμα" +msgstr[1] "" +"\n" +" Βρέθηκαν %(counter)s αποτελέσματα\n" +" " #: templates/wagtailimages/chooser/results.html:13 #: templates/wagtailimages/images/results.html:13 @@ -170,14 +176,17 @@ msgstr "Διόρθωση" #: templates/wagtailimages/images/results.html:31 #, python-format msgid "Sorry, no images match \"%(query_string)s\"" -msgstr "Λυπούμαστε, καμία εικόνα δε ταιριάζει με το \"%(query_string)s\"" +msgstr "" +"Λυπούμαστε, καμία εικόνα δε ταιριάζει με το \"%(query_string)s\"" #: templates/wagtailimages/images/results.html:34 #, python-format msgid "" -"You've not uploaded any images. Why not add one now?" -msgstr "Δεν υπάρχουν εικόνες. Θέλετε να προσθέσετε μερικές;" +"You've not uploaded any images. Why not add one now?" +msgstr "" +"Δεν υπάρχουν εικόνες. Θέλετε να προσθέσετε μερικές;" #: templates/wagtailimages/images/url_generator.html:9 msgid "Generating URL" @@ -270,26 +279,26 @@ msgid "" "file extension (*.gif, *.jpg or *.png)." msgstr "" -#: views/images.py:37 views/images.py:47 +#: views/images.py:38 views/images.py:48 msgid "Search images" msgstr "Αναζήτηση εικόνων" -#: views/images.py:99 +#: views/images.py:105 msgid "Image '{0}' updated." msgstr "Η εικόνα '{0}' ενημερώθηκε." -#: views/images.py:102 +#: views/images.py:108 msgid "The image could not be saved due to errors." msgstr "Δεν ήταν δυνατή η αποθήκευση της εικόνας." -#: views/images.py:188 +#: views/images.py:194 msgid "Image '{0}' deleted." msgstr "Η εικόνα '{0}' διαγράφηκε." -#: views/images.py:206 +#: views/images.py:217 msgid "Image '{0}' added." msgstr "Η εικόνα '{0}' δημιουργήθηκε." -#: views/images.py:209 +#: views/images.py:220 msgid "The image could not be created due to errors." msgstr "Δεν ήταν δυνατή η δημιουργία της εικόνας." diff --git a/wagtail/wagtailimages/locale/en/LC_MESSAGES/django.mo b/wagtail/wagtailimages/locale/en/LC_MESSAGES/django.mo index 44e531ab0..bc5cb1688 100644 Binary files a/wagtail/wagtailimages/locale/en/LC_MESSAGES/django.mo and b/wagtail/wagtailimages/locale/en/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailimages/locale/en/LC_MESSAGES/django.po b/wagtail/wagtailimages/locale/en/LC_MESSAGES/django.po index 3fddd59f3..11f37f87d 100644 --- a/wagtail/wagtailimages/locale/en/LC_MESSAGES/django.po +++ b/wagtail/wagtailimages/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -53,7 +53,7 @@ msgstr "" msgid "Height" msgstr "" -#: models.py:34 templates/wagtailimages/images/usage.html:16 +#: models.py:48 templates/wagtailimages/images/usage.html:16 msgid "Title" msgstr "" @@ -65,7 +65,7 @@ msgstr "" msgid "Tags" msgstr "" -#: wagtail_hooks.py:64 templates/wagtailimages/images/index.html:5 +#: wagtail_hooks.py:69 templates/wagtailimages/images/index.html:5 #: templates/wagtailimages/images/index.html:18 msgid "Images" msgstr "" @@ -269,26 +269,26 @@ msgid "" "file extension (*.gif, *.jpg or *.png)." msgstr "" -#: views/images.py:37 views/images.py:47 +#: views/images.py:38 views/images.py:48 msgid "Search images" msgstr "" -#: views/images.py:99 +#: views/images.py:105 msgid "Image '{0}' updated." msgstr "" -#: views/images.py:102 +#: views/images.py:108 msgid "The image could not be saved due to errors." msgstr "" -#: views/images.py:188 +#: views/images.py:194 msgid "Image '{0}' deleted." msgstr "" -#: views/images.py:206 +#: views/images.py:217 msgid "Image '{0}' added." msgstr "" -#: views/images.py:209 +#: views/images.py:220 msgid "The image could not be created due to errors." msgstr "" diff --git a/wagtail/wagtailimages/locale/es/LC_MESSAGES/django.mo b/wagtail/wagtailimages/locale/es/LC_MESSAGES/django.mo index d57e9c728..fa88662cc 100644 Binary files a/wagtail/wagtailimages/locale/es/LC_MESSAGES/django.mo and b/wagtail/wagtailimages/locale/es/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailimages/locale/es/LC_MESSAGES/django.po b/wagtail/wagtailimages/locale/es/LC_MESSAGES/django.po index 9f8743311..fda07c66d 100644 --- a/wagtail/wagtailimages/locale/es/LC_MESSAGES/django.po +++ b/wagtail/wagtailimages/locale/es/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # fooflare , 2014 # fooflare , 2014 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/wagtail/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/projects/p/wagtail/language/" +"es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: forms.py:37 @@ -55,7 +56,7 @@ msgstr "" msgid "Height" msgstr "" -#: models.py:34 templates/wagtailimages/images/usage.html:16 +#: models.py:48 templates/wagtailimages/images/usage.html:16 msgid "Title" msgstr "Título" @@ -67,7 +68,7 @@ msgstr "Archivo" msgid "Tags" msgstr "Etiquetas" -#: wagtail_hooks.py:64 templates/wagtailimages/images/index.html:5 +#: wagtail_hooks.py:69 templates/wagtailimages/images/index.html:5 #: templates/wagtailimages/images/index.html:18 msgid "Images" msgstr "Imágenes" @@ -102,8 +103,14 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Hay una coincidencia\n " -msgstr[1] "\n Hay %(counter)s coincidencias\n " +msgstr[0] "" +"\n" +" Hay una coincidencia\n" +" " +msgstr[1] "" +"\n" +" Hay %(counter)s coincidencias\n" +" " #: templates/wagtailimages/chooser/results.html:13 #: templates/wagtailimages/images/results.html:13 @@ -171,14 +178,18 @@ msgstr "Editando" #: templates/wagtailimages/images/results.html:31 #, python-format msgid "Sorry, no images match \"%(query_string)s\"" -msgstr "Lo sentimos, no hay coincidencias en las imágenes \"%(query_string)s\"" +msgstr "" +"Lo sentimos, no hay coincidencias en las imágenes \"%(query_string)s" +"\"" #: templates/wagtailimages/images/results.html:34 #, python-format msgid "" -"You've not uploaded any images. Why not add one now?" -msgstr "No has subido imágenes. ¿Por qué no añadir una ahora?" +"You've not uploaded any images. Why not add one now?" +msgstr "" +"No has subido imágenes. ¿Por qué no añadir una ahora?" #: templates/wagtailimages/images/url_generator.html:9 msgid "Generating URL" @@ -271,26 +282,26 @@ msgid "" "file extension (*.gif, *.jpg or *.png)." msgstr "" -#: views/images.py:37 views/images.py:47 +#: views/images.py:38 views/images.py:48 msgid "Search images" msgstr "Buscar imágenes" -#: views/images.py:99 +#: views/images.py:105 msgid "Image '{0}' updated." msgstr "Imagen '{0}' actualizada." -#: views/images.py:102 +#: views/images.py:108 msgid "The image could not be saved due to errors." msgstr "La imagen no puedo ser guardada debido a errores" -#: views/images.py:188 +#: views/images.py:194 msgid "Image '{0}' deleted." msgstr "Imagen '{0}' eliminada." -#: views/images.py:206 +#: views/images.py:217 msgid "Image '{0}' added." msgstr "Imagen '{0}' añadida." -#: views/images.py:209 +#: views/images.py:220 msgid "The image could not be created due to errors." msgstr "La imagen no pudo ser creada debido a errores." diff --git a/wagtail/wagtailimages/locale/eu/LC_MESSAGES/django.mo b/wagtail/wagtailimages/locale/eu/LC_MESSAGES/django.mo index b3e5368fc..cbda75991 100644 Binary files a/wagtail/wagtailimages/locale/eu/LC_MESSAGES/django.mo and b/wagtail/wagtailimages/locale/eu/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailimages/locale/eu/LC_MESSAGES/django.po b/wagtail/wagtailimages/locale/eu/LC_MESSAGES/django.po index c07a35c6d..988a5ab0b 100644 --- a/wagtail/wagtailimages/locale/eu/LC_MESSAGES/django.po +++ b/wagtail/wagtailimages/locale/eu/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Basque (http://www.transifex.com/projects/p/wagtail/language/eu/)\n" +"Language-Team: Basque (http://www.transifex.com/projects/p/wagtail/language/" +"eu/)\n" +"Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: forms.py:37 @@ -53,7 +54,7 @@ msgstr "" msgid "Height" msgstr "" -#: models.py:34 templates/wagtailimages/images/usage.html:16 +#: models.py:48 templates/wagtailimages/images/usage.html:16 msgid "Title" msgstr "" @@ -65,7 +66,7 @@ msgstr "" msgid "Tags" msgstr "" -#: wagtail_hooks.py:64 templates/wagtailimages/images/index.html:5 +#: wagtail_hooks.py:69 templates/wagtailimages/images/index.html:5 #: templates/wagtailimages/images/index.html:18 msgid "Images" msgstr "" @@ -174,8 +175,8 @@ msgstr "" #: templates/wagtailimages/images/results.html:34 #, python-format msgid "" -"You've not uploaded any images. Why not add one now?" +"You've not uploaded any images. Why not add one now?" msgstr "" #: templates/wagtailimages/images/url_generator.html:9 @@ -269,26 +270,26 @@ msgid "" "file extension (*.gif, *.jpg or *.png)." msgstr "" -#: views/images.py:37 views/images.py:47 +#: views/images.py:38 views/images.py:48 msgid "Search images" msgstr "" -#: views/images.py:99 +#: views/images.py:105 msgid "Image '{0}' updated." msgstr "" -#: views/images.py:102 +#: views/images.py:108 msgid "The image could not be saved due to errors." msgstr "" -#: views/images.py:188 +#: views/images.py:194 msgid "Image '{0}' deleted." msgstr "" -#: views/images.py:206 +#: views/images.py:217 msgid "Image '{0}' added." msgstr "" -#: views/images.py:209 +#: views/images.py:220 msgid "The image could not be created due to errors." msgstr "" diff --git a/wagtail/wagtailimages/locale/fr/LC_MESSAGES/django.mo b/wagtail/wagtailimages/locale/fr/LC_MESSAGES/django.mo index 7655a52f3..67ad96a81 100644 Binary files a/wagtail/wagtailimages/locale/fr/LC_MESSAGES/django.mo and b/wagtail/wagtailimages/locale/fr/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailimages/locale/fr/LC_MESSAGES/django.po b/wagtail/wagtailimages/locale/fr/LC_MESSAGES/django.po index fe6d971b6..9e439ac0f 100644 --- a/wagtail/wagtailimages/locale/fr/LC_MESSAGES/django.po +++ b/wagtail/wagtailimages/locale/fr/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # nahuel, 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: French (http://www.transifex.com/projects/p/wagtail/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/projects/p/wagtail/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: forms.py:37 @@ -54,7 +55,7 @@ msgstr "" msgid "Height" msgstr "" -#: models.py:34 templates/wagtailimages/images/usage.html:16 +#: models.py:48 templates/wagtailimages/images/usage.html:16 msgid "Title" msgstr "Titre" @@ -66,7 +67,7 @@ msgstr "Fichier" msgid "Tags" msgstr "Mots-clés" -#: wagtail_hooks.py:64 templates/wagtailimages/images/index.html:5 +#: wagtail_hooks.py:69 templates/wagtailimages/images/index.html:5 #: templates/wagtailimages/images/index.html:18 msgid "Images" msgstr "Images" @@ -101,8 +102,14 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Il y a une correspondance\n " -msgstr[1] "\n Il y a %(counter)s correspondances\n " +msgstr[0] "" +"\n" +" Il y a une correspondance\n" +" " +msgstr[1] "" +"\n" +" Il y a %(counter)s correspondances\n" +" " #: templates/wagtailimages/chooser/results.html:13 #: templates/wagtailimages/images/results.html:13 @@ -175,8 +182,8 @@ msgstr "Désolé, aucune image ne correspond à \"%(query_string)s\"" #: templates/wagtailimages/images/results.html:34 #, python-format msgid "" -"You've not uploaded any images. Why not add one now?" +"You've not uploaded any images. Why not add one now?" msgstr "" #: templates/wagtailimages/images/url_generator.html:9 @@ -270,26 +277,26 @@ msgid "" "file extension (*.gif, *.jpg or *.png)." msgstr "" -#: views/images.py:37 views/images.py:47 +#: views/images.py:38 views/images.py:48 msgid "Search images" msgstr "" -#: views/images.py:99 +#: views/images.py:105 msgid "Image '{0}' updated." msgstr "Image '{0}' mise à jour." -#: views/images.py:102 +#: views/images.py:108 msgid "The image could not be saved due to errors." msgstr "" -#: views/images.py:188 +#: views/images.py:194 msgid "Image '{0}' deleted." msgstr "Image '{0}' supprimée." -#: views/images.py:206 +#: views/images.py:217 msgid "Image '{0}' added." msgstr "Image '{0}' ajoutée." -#: views/images.py:209 +#: views/images.py:220 msgid "The image could not be created due to errors." msgstr "" diff --git a/wagtail/wagtailimages/locale/gl/LC_MESSAGES/django.mo b/wagtail/wagtailimages/locale/gl/LC_MESSAGES/django.mo index 69f7ddd9d..47abdaca5 100644 Binary files a/wagtail/wagtailimages/locale/gl/LC_MESSAGES/django.mo and b/wagtail/wagtailimages/locale/gl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailimages/locale/gl/LC_MESSAGES/django.po b/wagtail/wagtailimages/locale/gl/LC_MESSAGES/django.po index 1208c799e..ff7ee9f2f 100644 --- a/wagtail/wagtailimages/locale/gl/LC_MESSAGES/django.po +++ b/wagtail/wagtailimages/locale/gl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # fooflare , 2014 # fooflare , 2014 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Galician (http://www.transifex.com/projects/p/wagtail/language/gl/)\n" +"Language-Team: Galician (http://www.transifex.com/projects/p/wagtail/" +"language/gl/)\n" +"Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: forms.py:37 @@ -55,7 +56,7 @@ msgstr "" msgid "Height" msgstr "" -#: models.py:34 templates/wagtailimages/images/usage.html:16 +#: models.py:48 templates/wagtailimages/images/usage.html:16 msgid "Title" msgstr "Título" @@ -67,7 +68,7 @@ msgstr "Arquivo" msgid "Tags" msgstr "Etiquetas" -#: wagtail_hooks.py:64 templates/wagtailimages/images/index.html:5 +#: wagtail_hooks.py:69 templates/wagtailimages/images/index.html:5 #: templates/wagtailimages/images/index.html:18 msgid "Images" msgstr "Imaxes" @@ -102,8 +103,14 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Hai unha coincidencia\n " -msgstr[1] "\n Hai %(counter)s coincidencias\n " +msgstr[0] "" +"\n" +" Hai unha coincidencia\n" +" " +msgstr[1] "" +"\n" +" Hai %(counter)s coincidencias\n" +" " #: templates/wagtailimages/chooser/results.html:13 #: templates/wagtailimages/images/results.html:13 @@ -176,9 +183,11 @@ msgstr "Sentímolo, ningunha imaxe contén \"%(query_string)s\"" #: templates/wagtailimages/images/results.html:34 #, python-format msgid "" -"You've not uploaded any images. Why not add one now?" -msgstr "No subiches imaxes. ¿Por qué non engadir unha agora?" +"You've not uploaded any images. Why not add one now?" +msgstr "" +"No subiches imaxes. ¿Por qué non engadir unha agora?" #: templates/wagtailimages/images/url_generator.html:9 msgid "Generating URL" @@ -271,26 +280,26 @@ msgid "" "file extension (*.gif, *.jpg or *.png)." msgstr "" -#: views/images.py:37 views/images.py:47 +#: views/images.py:38 views/images.py:48 msgid "Search images" msgstr "Buscar imaxes" -#: views/images.py:99 +#: views/images.py:105 msgid "Image '{0}' updated." msgstr "Imaxe '{0}' actualizada." -#: views/images.py:102 +#: views/images.py:108 msgid "The image could not be saved due to errors." msgstr "A imaxe non puido ser gardada debido a erros" -#: views/images.py:188 +#: views/images.py:194 msgid "Image '{0}' deleted." msgstr "Imaxe '{0}' eliminada." -#: views/images.py:206 +#: views/images.py:217 msgid "Image '{0}' added." msgstr "Imaxe '{0}' engadida." -#: views/images.py:209 +#: views/images.py:220 msgid "The image could not be created due to errors." msgstr "A imaxe non puido ser creada debido a erros." diff --git a/wagtail/wagtailimages/locale/mn/LC_MESSAGES/django.mo b/wagtail/wagtailimages/locale/mn/LC_MESSAGES/django.mo index 04e2a47d0..b5e2c959b 100644 Binary files a/wagtail/wagtailimages/locale/mn/LC_MESSAGES/django.mo and b/wagtail/wagtailimages/locale/mn/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailimages/locale/mn/LC_MESSAGES/django.po b/wagtail/wagtailimages/locale/mn/LC_MESSAGES/django.po index f641c1c3e..f3fb422c5 100644 --- a/wagtail/wagtailimages/locale/mn/LC_MESSAGES/django.po +++ b/wagtail/wagtailimages/locale/mn/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Delgermurun Purevkhuuu , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Mongolian (http://www.transifex.com/projects/p/wagtail/language/mn/)\n" +"Language-Team: Mongolian (http://www.transifex.com/projects/p/wagtail/" +"language/mn/)\n" +"Language: mn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: mn\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: forms.py:37 @@ -54,7 +55,7 @@ msgstr "" msgid "Height" msgstr "" -#: models.py:34 templates/wagtailimages/images/usage.html:16 +#: models.py:48 templates/wagtailimages/images/usage.html:16 msgid "Title" msgstr "Гарчиг" @@ -66,7 +67,7 @@ msgstr "Файл" msgid "Tags" msgstr "Шошго" -#: wagtail_hooks.py:64 templates/wagtailimages/images/index.html:5 +#: wagtail_hooks.py:69 templates/wagtailimages/images/index.html:5 #: templates/wagtailimages/images/index.html:18 msgid "Images" msgstr "Зургууд" @@ -101,8 +102,12 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n1 зураг олдлоо" -msgstr[1] "\n%(counter)s зураг олдлоо" +msgstr[0] "" +"\n" +"1 зураг олдлоо" +msgstr[1] "" +"\n" +"%(counter)s зураг олдлоо" #: templates/wagtailimages/chooser/results.html:13 #: templates/wagtailimages/images/results.html:13 @@ -175,9 +180,11 @@ msgstr "" #: templates/wagtailimages/images/results.html:34 #, python-format msgid "" -"You've not uploaded any images. Why not add one now?" -msgstr "Та зураг оруулаагүй байна. Яагаад одоо нэгийг оруулж болохгүй гэж?" +"You've not uploaded any images. Why not add one now?" +msgstr "" +"Та зураг оруулаагүй байна. Яагаад одоо нэгийг оруулж болохгүй гэж?" #: templates/wagtailimages/images/url_generator.html:9 msgid "Generating URL" @@ -270,26 +277,26 @@ msgid "" "file extension (*.gif, *.jpg or *.png)." msgstr "" -#: views/images.py:37 views/images.py:47 +#: views/images.py:38 views/images.py:48 msgid "Search images" msgstr "Зураг хайх" -#: views/images.py:99 +#: views/images.py:105 msgid "Image '{0}' updated." msgstr "'{0}' зураг засагдлаа." -#: views/images.py:102 +#: views/images.py:108 msgid "The image could not be saved due to errors." msgstr "Зураг энэ алдаануудаас шалтгаалан хадгалагдсангүй." -#: views/images.py:188 +#: views/images.py:194 msgid "Image '{0}' deleted." msgstr "'{0}' зураг устлаа." -#: views/images.py:206 +#: views/images.py:217 msgid "Image '{0}' added." msgstr "'{0}' зураг нэмэгдлээ." -#: views/images.py:209 +#: views/images.py:220 msgid "The image could not be created due to errors." msgstr "Зураг энэ алдаануудаас шалтгаалан хадгалагдсангүй." diff --git a/wagtail/wagtailimages/locale/pl/LC_MESSAGES/django.mo b/wagtail/wagtailimages/locale/pl/LC_MESSAGES/django.mo index c586dfedc..fba4d29c3 100644 Binary files a/wagtail/wagtailimages/locale/pl/LC_MESSAGES/django.mo and b/wagtail/wagtailimages/locale/pl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailimages/locale/pl/LC_MESSAGES/django.po b/wagtail/wagtailimages/locale/pl/LC_MESSAGES/django.po index 5cdbdd5c8..53e25c13d 100644 --- a/wagtail/wagtailimages/locale/pl/LC_MESSAGES/django.po +++ b/wagtail/wagtailimages/locale/pl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # utek , 2014 # utek , 2014 @@ -9,15 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Polish (http://www.transifex.com/projects/p/wagtail/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/projects/p/wagtail/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" #: forms.py:37 msgid "Filter" @@ -55,7 +57,7 @@ msgstr "" msgid "Height" msgstr "" -#: models.py:34 templates/wagtailimages/images/usage.html:16 +#: models.py:48 templates/wagtailimages/images/usage.html:16 msgid "Title" msgstr "Tytuł" @@ -67,7 +69,7 @@ msgstr "Plik" msgid "Tags" msgstr "Tagi" -#: wagtail_hooks.py:64 templates/wagtailimages/images/index.html:5 +#: wagtail_hooks.py:69 templates/wagtailimages/images/index.html:5 #: templates/wagtailimages/images/index.html:18 msgid "Images" msgstr "Obrazy" @@ -102,9 +104,18 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Jedno dopasowanie\n " -msgstr[1] "\n Znaleziono %(counter)s dopasowania\n " -msgstr[2] "\n Znaleziono %(counter)s dopasowań\n " +msgstr[0] "" +"\n" +" Jedno dopasowanie\n" +" " +msgstr[1] "" +"\n" +" Znaleziono %(counter)s dopasowania\n" +" " +msgstr[2] "" +"\n" +" Znaleziono %(counter)s dopasowań\n" +" " #: templates/wagtailimages/chooser/results.html:13 #: templates/wagtailimages/images/results.html:13 @@ -177,9 +188,11 @@ msgstr "Przepraszamy, żaden obraz nie pasuje do \"%(query_string)s\"" #: templates/wagtailimages/images/results.html:34 #, python-format msgid "" -"You've not uploaded any images. Why not add one now?" -msgstr "Nie przesłano żadnych obrazów. Czemu nie dodać jednego teraz?" +"You've not uploaded any images. Why not add one now?" +msgstr "" +"Nie przesłano żadnych obrazów. Czemu nie dodać jednego teraz?" #: templates/wagtailimages/images/url_generator.html:9 msgid "Generating URL" @@ -272,26 +285,26 @@ msgid "" "file extension (*.gif, *.jpg or *.png)." msgstr "" -#: views/images.py:37 views/images.py:47 +#: views/images.py:38 views/images.py:48 msgid "Search images" msgstr "Szukaj obrazów" -#: views/images.py:99 +#: views/images.py:105 msgid "Image '{0}' updated." msgstr "Uaktualniono obraz '{0}'." -#: views/images.py:102 +#: views/images.py:108 msgid "The image could not be saved due to errors." msgstr "Obraz nie mógł zostać zapisany z powodu błędów." -#: views/images.py:188 +#: views/images.py:194 msgid "Image '{0}' deleted." msgstr "Usunięto obraz '{0}'." -#: views/images.py:206 +#: views/images.py:217 msgid "Image '{0}' added." msgstr "Dodano obraz '{0}'." -#: views/images.py:209 +#: views/images.py:220 msgid "The image could not be created due to errors." msgstr "Obraz nie mógł zostać stworzony z powodu błędów." diff --git a/wagtail/wagtailimages/locale/pt_BR/LC_MESSAGES/django.mo b/wagtail/wagtailimages/locale/pt_BR/LC_MESSAGES/django.mo new file mode 100644 index 000000000..f5a148047 Binary files /dev/null and b/wagtail/wagtailimages/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailimages/locale/pt_BR/LC_MESSAGES/django.po b/wagtail/wagtailimages/locale/pt_BR/LC_MESSAGES/django.po new file mode 100644 index 000000000..16362d888 --- /dev/null +++ b/wagtail/wagtailimages/locale/pt_BR/LC_MESSAGES/django.po @@ -0,0 +1,296 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Thiago Cangussu , 2014 +# Gladson , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-12 01:50+0000\n" +"Last-Translator: Gladson \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/wagtail/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: forms.py:37 +msgid "Filter" +msgstr "Filtro" + +#: forms.py:39 +msgid "Original size" +msgstr "Tamanho original" + +#: forms.py:40 +msgid "Resize to width" +msgstr "Redimensionar a largura" + +#: forms.py:41 +msgid "Resize to height" +msgstr "Redimensionar a altura" + +#: forms.py:42 +msgid "Resize to min" +msgstr "Redimensionar o mínimo" + +#: forms.py:43 +msgid "Resize to max" +msgstr "Redimensionar o máximo" + +#: forms.py:44 +msgid "Resize to fill" +msgstr "Redimensionar para preencher" + +#: forms.py:47 +msgid "Width" +msgstr "Largura" + +#: forms.py:48 +msgid "Height" +msgstr "Altura" + +#: models.py:48 templates/wagtailimages/images/usage.html:16 +msgid "Title" +msgstr "Título" + +#: models.py:49 +msgid "File" +msgstr "Arquivo" + +#: models.py:55 +msgid "Tags" +msgstr "Etiquetas" + +#: wagtail_hooks.py:69 templates/wagtailimages/images/index.html:5 +#: templates/wagtailimages/images/index.html:18 +msgid "Images" +msgstr "Imagens" + +#: templates/wagtailimages/chooser/chooser.html:3 +#: templates/wagtailimages/edit_handlers/image_chooser_panel.html:19 +msgid "Choose an image" +msgstr "Escolha uma imagem" + +#: templates/wagtailimages/chooser/chooser.html:8 +#: templates/wagtailimages/chooser/chooser.html:20 +msgid "Search" +msgstr "Buscar" + +#: templates/wagtailimages/chooser/chooser.html:9 +#: templates/wagtailimages/chooser/chooser.html:43 +msgid "Upload" +msgstr "Enviar" + +#: templates/wagtailimages/chooser/chooser.html:23 +msgid "Popular tags" +msgstr "Gerar etiquetas" + +#: templates/wagtailimages/chooser/results.html:6 +#: templates/wagtailimages/images/results.html:6 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "\n Há um resultado\n " +msgstr[1] "\n Há %(counter)s resultados\n " + +#: templates/wagtailimages/chooser/results.html:13 +#: templates/wagtailimages/images/results.html:13 +msgid "Latest images" +msgstr "Últimas imagens" + +#: templates/wagtailimages/chooser/select_format.html:3 +msgid "Choose a format" +msgstr "Escolha um formato" + +#: templates/wagtailimages/chooser/select_format.html:17 +msgid "Insert image" +msgstr "Inserir imagem" + +#: templates/wagtailimages/edit_handlers/image_chooser_panel.html:17 +msgid "Clear image" +msgstr "Limpar imagem" + +#: templates/wagtailimages/edit_handlers/image_chooser_panel.html:18 +msgid "Choose another image" +msgstr "Escolha outra imagem" + +#: templates/wagtailimages/images/_file_field.html:6 +msgid "Change image:" +msgstr "Trocar imagem:" + +#: templates/wagtailimages/images/add.html:4 +#: templates/wagtailimages/images/index.html:19 +msgid "Add an image" +msgstr "Adicionar uma imagem" + +#: templates/wagtailimages/images/add.html:15 +msgid "Add image" +msgstr "Adicionar imagem" + +#: templates/wagtailimages/images/add.html:25 +#: templates/wagtailimages/images/edit.html:33 +msgid "Save" +msgstr "Salvar" + +#: templates/wagtailimages/images/confirm_delete.html:4 +#: templates/wagtailimages/images/confirm_delete.html:8 +#: templates/wagtailimages/images/edit.html:33 +msgid "Delete image" +msgstr "Apagar imagem" + +#: templates/wagtailimages/images/confirm_delete.html:16 +msgid "Are you sure you want to delete this image?" +msgstr "Você tem certeza que deseja apagar esta imagem?" + +#: templates/wagtailimages/images/confirm_delete.html:19 +msgid "Yes, delete" +msgstr "Sim, apagar" + +#: templates/wagtailimages/images/edit.html:4 +#: templates/wagtailimages/images/url_generator.html:4 +#, python-format +msgid "Editing image %(title)s" +msgstr "Editando imagem %(title)s" + +#: templates/wagtailimages/images/edit.html:15 +msgid "Editing" +msgstr "Editando" + +#: templates/wagtailimages/images/results.html:31 +#, python-format +msgid "Sorry, no images match \"%(query_string)s\"" +msgstr "Desculpe, não há resultados de imagens para \"%(query_string)s\"" + +#: templates/wagtailimages/images/results.html:34 +#, python-format +msgid "" +"You've not uploaded any images. Why not add one now?" +msgstr "Você não enviou nenhuma imagem. Por que não adicionar uma agora?" + +#: templates/wagtailimages/images/url_generator.html:9 +msgid "Generating URL" +msgstr "Gerando URL" + +#: templates/wagtailimages/images/url_generator.html:25 +msgid "URL" +msgstr "URL" + +#: templates/wagtailimages/images/url_generator.html:28 +msgid "Preview" +msgstr "Pré-visualizar" + +#: templates/wagtailimages/images/url_generator.html:34 +msgid "" +"Note that images generated larger than the screen will appear smaller when " +"previewed here, so they fit the screen." +msgstr "" + +#: templates/wagtailimages/images/usage.html:3 +#, python-format +msgid "Usage of %(title)s" +msgstr "" + +#: templates/wagtailimages/images/usage.html:5 +msgid "Usage of" +msgstr "" + +#: templates/wagtailimages/images/usage.html:17 +msgid "Parent" +msgstr "Pai" + +#: templates/wagtailimages/images/usage.html:18 +msgid "Type" +msgstr "Tipo" + +#: templates/wagtailimages/images/usage.html:19 +msgid "Status" +msgstr "Status" + +#: templates/wagtailimages/images/usage.html:26 +msgid "Edit this page" +msgstr "Editar essa página" + +#: templates/wagtailimages/multiple/add.html:3 +msgid "Add multiple images" +msgstr "Adicionar múltiplas imagens" + +#: templates/wagtailimages/multiple/add.html:13 +msgid "Add images" +msgstr "Adicionar imagens" + +#: templates/wagtailimages/multiple/add.html:18 +msgid "Drag and drop images into this area to upload immediately." +msgstr "Arraste e solte imagens para essa área para carregar imediatamente." + +#: templates/wagtailimages/multiple/add.html:22 +msgid "Or choose from your computer" +msgstr "Ou escolha do seu computador" + +#: templates/wagtailimages/multiple/add.html:47 +msgid "" +"Upload successful. Please update this image with a more appropriate title, " +"if necessary. You may also delete the image completely if the upload wasn't " +"required." +msgstr "Carregamento com sucesso. Por favor, atualize esta imagem com um título mais apropriado, se necessário. Você também pode apagar a imagem completamente se o upload não era necessário." + +#: templates/wagtailimages/multiple/add.html:48 +msgid "Sorry, upload failed." +msgstr "Desculpe, o carregamento falhou." + +#: templates/wagtailimages/multiple/edit_form.html:10 +msgid "Update" +msgstr "Atualizar" + +#: templates/wagtailimages/multiple/edit_form.html:11 +msgid "Delete" +msgstr "Excluir" + +#: utils/validators.py:17 utils/validators.py:28 +msgid "" +"Not a valid image. Please use a gif, jpeg or png file with the correct file " +"extension (*.gif, *.jpg or *.png)." +msgstr "Não é uma imagem válida. Por favor, use um arquivo gif, jpeg ou png com a extensão de arquivo correta (*.gif, *.jpg oiu *.png)." + +#: utils/validators.py:35 +#, python-format +msgid "" +"Not a valid %s image. Please use a gif, jpeg or png file with the correct " +"file extension (*.gif, *.jpg or *.png)." +msgstr "" + +#: views/images.py:38 views/images.py:48 +msgid "Search images" +msgstr "Buscar imagens" + +#: views/images.py:105 +msgid "Image '{0}' updated." +msgstr "Imagem '{0}' enviada." + +#: views/images.py:108 +msgid "The image could not be saved due to errors." +msgstr "A imagem não pôde ser salva devido à erros." + +#: views/images.py:194 +msgid "Image '{0}' deleted." +msgstr "Imagem '{0}' apagada." + +#: views/images.py:217 +msgid "Image '{0}' added." +msgstr "Imagem '{0}' adicionada." + +#: views/images.py:220 +msgid "The image could not be created due to errors." +msgstr "A imagem não pôde ser criada devido à erros." diff --git a/wagtail/wagtailimages/locale/pt_PT/LC_MESSAGES/django.mo b/wagtail/wagtailimages/locale/pt_PT/LC_MESSAGES/django.mo new file mode 100644 index 000000000..3d67f19d3 Binary files /dev/null and b/wagtail/wagtailimages/locale/pt_PT/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailimages/locale/pt_PT/LC_MESSAGES/django.po b/wagtail/wagtailimages/locale/pt_PT/LC_MESSAGES/django.po new file mode 100644 index 000000000..d0d314735 --- /dev/null +++ b/wagtail/wagtailimages/locale/pt_PT/LC_MESSAGES/django.po @@ -0,0 +1,314 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Thiago Cangussu , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail 0.5.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-03 01:55+0100\n" +"Last-Translator: Jose Lourenco \n" +"Language-Team: \n" +"Language: pt_PT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: forms.py:37 +msgid "Filter" +msgstr "Filtro" + +#: forms.py:39 +msgid "Original size" +msgstr "Dimensão original" + +#: forms.py:40 +msgid "Resize to width" +msgstr "Redimensionar pela largura" + +#: forms.py:41 +msgid "Resize to height" +msgstr "Redimensionar pela altura" + +#: forms.py:42 +msgid "Resize to min" +msgstr "Redimensionar pelo min" + +#: forms.py:43 +msgid "Resize to max" +msgstr "Redimensionar pelo máx" + +#: forms.py:44 +msgid "Resize to fill" +msgstr "Redimensionar para preencher" + +#: forms.py:47 +msgid "Width" +msgstr "Largura" + +#: forms.py:48 +msgid "Height" +msgstr "Altura" + +#: models.py:48 templates/wagtailimages/images/usage.html:16 +msgid "Title" +msgstr "Título" + +#: models.py:49 +msgid "File" +msgstr "Ficheiro" + +#: models.py:55 +msgid "Tags" +msgstr "Etiquetas" + +#: wagtail_hooks.py:69 templates/wagtailimages/images/index.html:5 +#: templates/wagtailimages/images/index.html:18 +msgid "Images" +msgstr "Imagens" + +#: templates/wagtailimages/chooser/chooser.html:3 +#: templates/wagtailimages/edit_handlers/image_chooser_panel.html:19 +msgid "Choose an image" +msgstr "Escolher uma imagem" + +#: templates/wagtailimages/chooser/chooser.html:8 +#: templates/wagtailimages/chooser/chooser.html:20 +msgid "Search" +msgstr "Procurar" + +#: templates/wagtailimages/chooser/chooser.html:9 +#: templates/wagtailimages/chooser/chooser.html:43 +msgid "Upload" +msgstr "Enviar" + +#: templates/wagtailimages/chooser/chooser.html:23 +msgid "Popular tags" +msgstr "Etiquetas frequentes" + +#: templates/wagtailimages/chooser/results.html:6 +#: templates/wagtailimages/images/results.html:6 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "" +"\n" +" Existe uma correspondência\n" +" " +msgstr[1] "" +"\n" +" Existem %(counter)s correspondências\n" +" " + +#: templates/wagtailimages/chooser/results.html:13 +#: templates/wagtailimages/images/results.html:13 +msgid "Latest images" +msgstr "Últimas imagens" + +#: templates/wagtailimages/chooser/select_format.html:3 +msgid "Choose a format" +msgstr "Escolher um formato" + +#: templates/wagtailimages/chooser/select_format.html:17 +msgid "Insert image" +msgstr "Inserir imagem" + +#: templates/wagtailimages/edit_handlers/image_chooser_panel.html:17 +msgid "Clear image" +msgstr "Limpar imagem" + +#: templates/wagtailimages/edit_handlers/image_chooser_panel.html:18 +msgid "Choose another image" +msgstr "Escolher outra imagem" + +#: templates/wagtailimages/images/_file_field.html:6 +msgid "Change image:" +msgstr "Alterar imagem:" + +#: templates/wagtailimages/images/add.html:4 +#: templates/wagtailimages/images/index.html:19 +msgid "Add an image" +msgstr "Adicionar uma imagem" + +#: templates/wagtailimages/images/add.html:15 +msgid "Add image" +msgstr "Adicionar imagem" + +#: templates/wagtailimages/images/add.html:25 +#: templates/wagtailimages/images/edit.html:33 +msgid "Save" +msgstr "Guardar" + +#: templates/wagtailimages/images/confirm_delete.html:4 +#: templates/wagtailimages/images/confirm_delete.html:8 +#: templates/wagtailimages/images/edit.html:33 +msgid "Delete image" +msgstr "Eliminar imagem" + +#: templates/wagtailimages/images/confirm_delete.html:16 +msgid "Are you sure you want to delete this image?" +msgstr "Tem a certeza que quer eliminar esta imagem?" + +#: templates/wagtailimages/images/confirm_delete.html:19 +msgid "Yes, delete" +msgstr "Sim, eliminar" + +#: templates/wagtailimages/images/edit.html:4 +#: templates/wagtailimages/images/url_generator.html:4 +#, python-format +msgid "Editing image %(title)s" +msgstr "Editando imagem %(title)s" + +#: templates/wagtailimages/images/edit.html:15 +msgid "Editing" +msgstr "Editando" + +#: templates/wagtailimages/images/results.html:31 +#, python-format +msgid "Sorry, no images match \"%(query_string)s\"" +msgstr "Desculpe, nenhuma imagem corresponde a \"%(query_string)s\"" + +#: templates/wagtailimages/images/results.html:34 +#, python-format +msgid "" +"You've not uploaded any images. Why not add one now?" +msgstr "" +"Ainda não enviou qualquer imagem. Porque não adicionar uma agora?" + +#: templates/wagtailimages/images/url_generator.html:9 +msgid "Generating URL" +msgstr "A gerar URL" + +#: templates/wagtailimages/images/url_generator.html:25 +msgid "URL" +msgstr "URL" + +#: templates/wagtailimages/images/url_generator.html:28 +msgid "Preview" +msgstr "Pre-visualizar" + +#: templates/wagtailimages/images/url_generator.html:34 +msgid "" +"Note that images generated larger than the screen will appear smaller when " +"previewed here, so they fit the screen." +msgstr "" +"Note que as imagens criadas com dimensões superiores às do ecrã serão pre-" +"visualizadas mais pequenas para caberem no ecrã." + +#: templates/wagtailimages/images/usage.html:3 +#, python-format +msgid "Usage of %(title)s" +msgstr "Utilização de %(title)s" + +#: templates/wagtailimages/images/usage.html:5 +msgid "Usage of" +msgstr "Utilização de" + +#: templates/wagtailimages/images/usage.html:17 +msgid "Parent" +msgstr "Ascendente" + +#: templates/wagtailimages/images/usage.html:18 +msgid "Type" +msgstr "Tipo" + +#: templates/wagtailimages/images/usage.html:19 +msgid "Status" +msgstr "Estado" + +#: templates/wagtailimages/images/usage.html:26 +msgid "Edit this page" +msgstr "Editar esta página" + +#: templates/wagtailimages/multiple/add.html:3 +msgid "Add multiple images" +msgstr "Adicionar múltiplas imagens" + +#: templates/wagtailimages/multiple/add.html:13 +msgid "Add images" +msgstr "Adicionar imagens" + +#: templates/wagtailimages/multiple/add.html:18 +msgid "Drag and drop images into this area to upload immediately." +msgstr "Arrastar e largar imagens nesta área para envio imediato." + +#: templates/wagtailimages/multiple/add.html:22 +msgid "Or choose from your computer" +msgstr "Ou escolha no seu computador" + +#: templates/wagtailimages/multiple/add.html:47 +msgid "" +"Upload successful. Please update this image with a more appropriate title, " +"if necessary. You may also delete the image completely if the upload wasn't " +"required." +msgstr "" +"Envio com sucesso. Por favor atualize esta imagem com um título mais " +"apropriado se necessário. Também pode eliminar completamente a imagem se o " +"envio não era pretendido." + +#: templates/wagtailimages/multiple/add.html:48 +msgid "Sorry, upload failed." +msgstr "Desculpe, o envio falhou." + +#: templates/wagtailimages/multiple/edit_form.html:10 +msgid "Update" +msgstr "Atualizar" + +#: templates/wagtailimages/multiple/edit_form.html:11 +msgid "Delete" +msgstr "Eliminar" + +#: utils/validators.py:17 utils/validators.py:28 +msgid "" +"Not a valid image. Please use a gif, jpeg or png file with the correct file " +"extension (*.gif, *.jpg or *.png)." +msgstr "" +"Não é uma imagem válida. Por favor use uma imagem do tipo gif, jpeg, ou " +"png, com a extensão de nome correta (*.gif, *.jpg or *.png)." + +#: utils/validators.py:35 +#, python-format +msgid "" +"Not a valid %s image. Please use a gif, jpeg or png file with the correct " +"file extension (*.gif, *.jpg or *.png)." +msgstr "" +"Não é uma imagem do tipo %s válida. Por favor use uma imagem do tipo gif, " +"jpeg, ou png, com a extensão de nome correta (*.gif, *.jpg or *.png)." + +#: views/images.py:38 views/images.py:48 +msgid "Search images" +msgstr "Procurar imagens" + +#: views/images.py:105 +msgid "Image '{0}' updated." +msgstr "Imagem '{0}' atualizada." + +#: views/images.py:108 +msgid "The image could not be saved due to errors." +msgstr "A imagem não pôde ser guardada devido a erros." + +#: views/images.py:194 +msgid "Image '{0}' deleted." +msgstr "Imagem '{0}' eliminada." + +#: views/images.py:217 +msgid "Image '{0}' added." +msgstr "Imagem '{0}' adicionada." + +#: views/images.py:220 +msgid "The image could not be created due to errors." +msgstr "A imagem não pôde ser criada devido a erros." diff --git a/wagtail/wagtailimages/locale/ro/LC_MESSAGES/django.mo b/wagtail/wagtailimages/locale/ro/LC_MESSAGES/django.mo index da519e31a..e0c687ab3 100644 Binary files a/wagtail/wagtailimages/locale/ro/LC_MESSAGES/django.mo and b/wagtail/wagtailimages/locale/ro/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailimages/locale/ro/LC_MESSAGES/django.po b/wagtail/wagtailimages/locale/ro/LC_MESSAGES/django.po index ac03909ae..6209d86ad 100644 --- a/wagtail/wagtailimages/locale/ro/LC_MESSAGES/django.po +++ b/wagtail/wagtailimages/locale/ro/LC_MESSAGES/django.po @@ -1,22 +1,24 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Dan Braghis, 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Romanian (http://www.transifex.com/projects/p/wagtail/language/ro/)\n" +"Language-Team: Romanian (http://www.transifex.com/projects/p/wagtail/" +"language/ro/)\n" +"Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: forms.py:37 msgid "Filter" @@ -54,7 +56,7 @@ msgstr "" msgid "Height" msgstr "" -#: models.py:34 templates/wagtailimages/images/usage.html:16 +#: models.py:48 templates/wagtailimages/images/usage.html:16 msgid "Title" msgstr "Titlu" @@ -66,7 +68,7 @@ msgstr "Fișier" msgid "Tags" msgstr "Etichete" -#: wagtail_hooks.py:64 templates/wagtailimages/images/index.html:5 +#: wagtail_hooks.py:69 templates/wagtailimages/images/index.html:5 #: templates/wagtailimages/images/index.html:18 msgid "Images" msgstr "Imagini" @@ -101,9 +103,15 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\nExistă o potrivire" -msgstr[1] "\nSunt %(counter)s potriviri" -msgstr[2] "\nSunt %(counter)s potriviri" +msgstr[0] "" +"\n" +"Există o potrivire" +msgstr[1] "" +"\n" +"Sunt %(counter)s potriviri" +msgstr[2] "" +"\n" +"Sunt %(counter)s potriviri" #: templates/wagtailimages/chooser/results.html:13 #: templates/wagtailimages/images/results.html:13 @@ -171,14 +179,17 @@ msgstr "Editare" #: templates/wagtailimages/images/results.html:31 #, python-format msgid "Sorry, no images match \"%(query_string)s\"" -msgstr "Ne pare rău, \"%(query_string)s\" nu se potrivește cu nici o imagine" +msgstr "" +"Ne pare rău, \"%(query_string)s\" nu se potrivește cu nici o imagine" #: templates/wagtailimages/images/results.html:34 #, python-format msgid "" -"You've not uploaded any images. Why not add one now?" -msgstr "Nu ați încărcat nici o imagine. De să nu adăugați una?" +"You've not uploaded any images. Why not add one now?" +msgstr "" +"Nu ați încărcat nici o imagine. De să nu adăugați una?" #: templates/wagtailimages/images/url_generator.html:9 msgid "Generating URL" @@ -271,26 +282,26 @@ msgid "" "file extension (*.gif, *.jpg or *.png)." msgstr "" -#: views/images.py:37 views/images.py:47 +#: views/images.py:38 views/images.py:48 msgid "Search images" msgstr "Caută imagini" -#: views/images.py:99 +#: views/images.py:105 msgid "Image '{0}' updated." msgstr "Imaginea '{0}' a fost actualizată." -#: views/images.py:102 +#: views/images.py:108 msgid "The image could not be saved due to errors." msgstr "Imaginea nu a fost salvată din cauza erorilor." -#: views/images.py:188 +#: views/images.py:194 msgid "Image '{0}' deleted." msgstr "Imaginea '{0}' a fost ștearsă." -#: views/images.py:206 +#: views/images.py:217 msgid "Image '{0}' added." msgstr "Imaginea '{0}' a fost adăugată." -#: views/images.py:209 +#: views/images.py:220 msgid "The image could not be created due to errors." msgstr "Imaginea nu a fost creată din cauza erorilor." diff --git a/wagtail/wagtailimages/locale/ru/LC_MESSAGES/django.mo b/wagtail/wagtailimages/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 000000000..1df85f54c Binary files /dev/null and b/wagtail/wagtailimages/locale/ru/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailimages/locale/ru/LC_MESSAGES/django.po b/wagtail/wagtailimages/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 000000000..aeaf7fd02 --- /dev/null +++ b/wagtail/wagtailimages/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,296 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# ajk, 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-01 15:43+0000\n" +"Last-Translator: Karl Hobley \n" +"Language-Team: Russian (http://www.transifex.com/projects/p/wagtail/language/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: forms.py:37 +msgid "Filter" +msgstr "" + +#: forms.py:39 +msgid "Original size" +msgstr "" + +#: forms.py:40 +msgid "Resize to width" +msgstr "" + +#: forms.py:41 +msgid "Resize to height" +msgstr "" + +#: forms.py:42 +msgid "Resize to min" +msgstr "" + +#: forms.py:43 +msgid "Resize to max" +msgstr "" + +#: forms.py:44 +msgid "Resize to fill" +msgstr "" + +#: forms.py:47 +msgid "Width" +msgstr "" + +#: forms.py:48 +msgid "Height" +msgstr "" + +#: models.py:48 templates/wagtailimages/images/usage.html:16 +msgid "Title" +msgstr "Заголовок" + +#: models.py:49 +msgid "File" +msgstr "Файл" + +#: models.py:55 +msgid "Tags" +msgstr "Тэги" + +#: wagtail_hooks.py:69 templates/wagtailimages/images/index.html:5 +#: templates/wagtailimages/images/index.html:18 +msgid "Images" +msgstr "Изображения" + +#: templates/wagtailimages/chooser/chooser.html:3 +#: templates/wagtailimages/edit_handlers/image_chooser_panel.html:19 +msgid "Choose an image" +msgstr "Выберите изображение" + +#: templates/wagtailimages/chooser/chooser.html:8 +#: templates/wagtailimages/chooser/chooser.html:20 +msgid "Search" +msgstr "Поиск" + +#: templates/wagtailimages/chooser/chooser.html:9 +#: templates/wagtailimages/chooser/chooser.html:43 +msgid "Upload" +msgstr "Загрузка" + +#: templates/wagtailimages/chooser/chooser.html:23 +msgid "Popular tags" +msgstr "Популярные теги" + +#: templates/wagtailimages/chooser/results.html:6 +#: templates/wagtailimages/images/results.html:6 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "\nНайдено одно совпадение" +msgstr[1] "\nНайдено %(counter)s совпадения" +msgstr[2] "\nНайдено %(counter)s совпадений" + +#: templates/wagtailimages/chooser/results.html:13 +#: templates/wagtailimages/images/results.html:13 +msgid "Latest images" +msgstr "Недавние изображения" + +#: templates/wagtailimages/chooser/select_format.html:3 +msgid "Choose a format" +msgstr "Выберите формат" + +#: templates/wagtailimages/chooser/select_format.html:17 +msgid "Insert image" +msgstr "Вставить изображение" + +#: templates/wagtailimages/edit_handlers/image_chooser_panel.html:17 +msgid "Clear image" +msgstr "Убрать изображение" + +#: templates/wagtailimages/edit_handlers/image_chooser_panel.html:18 +msgid "Choose another image" +msgstr "Выбрать другое изображение" + +#: templates/wagtailimages/images/_file_field.html:6 +msgid "Change image:" +msgstr "Изменить изображение:" + +#: templates/wagtailimages/images/add.html:4 +#: templates/wagtailimages/images/index.html:19 +msgid "Add an image" +msgstr "Добавить изображение" + +#: templates/wagtailimages/images/add.html:15 +msgid "Add image" +msgstr "Добавить изображение" + +#: templates/wagtailimages/images/add.html:25 +#: templates/wagtailimages/images/edit.html:33 +msgid "Save" +msgstr "Сохранить" + +#: templates/wagtailimages/images/confirm_delete.html:4 +#: templates/wagtailimages/images/confirm_delete.html:8 +#: templates/wagtailimages/images/edit.html:33 +msgid "Delete image" +msgstr "Удалить изображение" + +#: templates/wagtailimages/images/confirm_delete.html:16 +msgid "Are you sure you want to delete this image?" +msgstr "Вы уверены, что хотите удалить изображение?" + +#: templates/wagtailimages/images/confirm_delete.html:19 +msgid "Yes, delete" +msgstr "Да, удалить" + +#: templates/wagtailimages/images/edit.html:4 +#: templates/wagtailimages/images/url_generator.html:4 +#, python-format +msgid "Editing image %(title)s" +msgstr "Редактирование изображения %(title)s" + +#: templates/wagtailimages/images/edit.html:15 +msgid "Editing" +msgstr "Редактирование" + +#: templates/wagtailimages/images/results.html:31 +#, python-format +msgid "Sorry, no images match \"%(query_string)s\"" +msgstr "Извините, подходящих изображений не найдено \"%(query_string)s\"" + +#: templates/wagtailimages/images/results.html:34 +#, python-format +msgid "" +"You've not uploaded any images. Why not add one now?" +msgstr "Вы еще не загрузили ни одного изображения. Почему бы не сделать это сейчас?" + +#: templates/wagtailimages/images/url_generator.html:9 +msgid "Generating URL" +msgstr "" + +#: templates/wagtailimages/images/url_generator.html:25 +msgid "URL" +msgstr "" + +#: templates/wagtailimages/images/url_generator.html:28 +msgid "Preview" +msgstr "" + +#: templates/wagtailimages/images/url_generator.html:34 +msgid "" +"Note that images generated larger than the screen will appear smaller when " +"previewed here, so they fit the screen." +msgstr "" + +#: templates/wagtailimages/images/usage.html:3 +#, python-format +msgid "Usage of %(title)s" +msgstr "" + +#: templates/wagtailimages/images/usage.html:5 +msgid "Usage of" +msgstr "" + +#: templates/wagtailimages/images/usage.html:17 +msgid "Parent" +msgstr "" + +#: templates/wagtailimages/images/usage.html:18 +msgid "Type" +msgstr "" + +#: templates/wagtailimages/images/usage.html:19 +msgid "Status" +msgstr "" + +#: templates/wagtailimages/images/usage.html:26 +msgid "Edit this page" +msgstr "" + +#: templates/wagtailimages/multiple/add.html:3 +msgid "Add multiple images" +msgstr "" + +#: templates/wagtailimages/multiple/add.html:13 +msgid "Add images" +msgstr "" + +#: templates/wagtailimages/multiple/add.html:18 +msgid "Drag and drop images into this area to upload immediately." +msgstr "" + +#: templates/wagtailimages/multiple/add.html:22 +msgid "Or choose from your computer" +msgstr "" + +#: templates/wagtailimages/multiple/add.html:47 +msgid "" +"Upload successful. Please update this image with a more appropriate title, " +"if necessary. You may also delete the image completely if the upload wasn't " +"required." +msgstr "" + +#: templates/wagtailimages/multiple/add.html:48 +msgid "Sorry, upload failed." +msgstr "" + +#: templates/wagtailimages/multiple/edit_form.html:10 +msgid "Update" +msgstr "" + +#: templates/wagtailimages/multiple/edit_form.html:11 +msgid "Delete" +msgstr "" + +#: utils/validators.py:17 utils/validators.py:28 +msgid "" +"Not a valid image. Please use a gif, jpeg or png file with the correct file " +"extension (*.gif, *.jpg or *.png)." +msgstr "" + +#: utils/validators.py:35 +#, python-format +msgid "" +"Not a valid %s image. Please use a gif, jpeg or png file with the correct " +"file extension (*.gif, *.jpg or *.png)." +msgstr "" + +#: views/images.py:38 views/images.py:48 +msgid "Search images" +msgstr "Поиск изображений" + +#: views/images.py:105 +msgid "Image '{0}' updated." +msgstr "Изображение '{0}' обновлено." + +#: views/images.py:108 +msgid "The image could not be saved due to errors." +msgstr "Это изображение не может быть сохранено из-за ошибок." + +#: views/images.py:194 +msgid "Image '{0}' deleted." +msgstr "Изображение '{0}' удалено." + +#: views/images.py:217 +msgid "Image '{0}' added." +msgstr "Изображение '{0}' добавлено." + +#: views/images.py:220 +msgid "The image could not be created due to errors." +msgstr "Это изображение не может быть создано из-за ошибок." diff --git a/wagtail/wagtailimages/locale/vi/LC_MESSAGES/django.mo b/wagtail/wagtailimages/locale/vi/LC_MESSAGES/django.mo new file mode 100644 index 000000000..ce5813eba Binary files /dev/null and b/wagtail/wagtailimages/locale/vi/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailimages/locale/vi/LC_MESSAGES/django.po b/wagtail/wagtailimages/locale/vi/LC_MESSAGES/django.po new file mode 100644 index 000000000..72addd86b --- /dev/null +++ b/wagtail/wagtailimages/locale/vi/LC_MESSAGES/django.po @@ -0,0 +1,293 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-01 15:43+0000\n" +"Last-Translator: Karl Hobley \n" +"Language-Team: Vietnamese (http://www.transifex.com/projects/p/wagtail/language/vi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: forms.py:37 +msgid "Filter" +msgstr "" + +#: forms.py:39 +msgid "Original size" +msgstr "" + +#: forms.py:40 +msgid "Resize to width" +msgstr "" + +#: forms.py:41 +msgid "Resize to height" +msgstr "" + +#: forms.py:42 +msgid "Resize to min" +msgstr "" + +#: forms.py:43 +msgid "Resize to max" +msgstr "" + +#: forms.py:44 +msgid "Resize to fill" +msgstr "" + +#: forms.py:47 +msgid "Width" +msgstr "" + +#: forms.py:48 +msgid "Height" +msgstr "" + +#: models.py:48 templates/wagtailimages/images/usage.html:16 +msgid "Title" +msgstr "" + +#: models.py:49 +msgid "File" +msgstr "" + +#: models.py:55 +msgid "Tags" +msgstr "" + +#: wagtail_hooks.py:69 templates/wagtailimages/images/index.html:5 +#: templates/wagtailimages/images/index.html:18 +msgid "Images" +msgstr "" + +#: templates/wagtailimages/chooser/chooser.html:3 +#: templates/wagtailimages/edit_handlers/image_chooser_panel.html:19 +msgid "Choose an image" +msgstr "" + +#: templates/wagtailimages/chooser/chooser.html:8 +#: templates/wagtailimages/chooser/chooser.html:20 +msgid "Search" +msgstr "" + +#: templates/wagtailimages/chooser/chooser.html:9 +#: templates/wagtailimages/chooser/chooser.html:43 +msgid "Upload" +msgstr "" + +#: templates/wagtailimages/chooser/chooser.html:23 +msgid "Popular tags" +msgstr "" + +#: templates/wagtailimages/chooser/results.html:6 +#: templates/wagtailimages/images/results.html:6 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "" + +#: templates/wagtailimages/chooser/results.html:13 +#: templates/wagtailimages/images/results.html:13 +msgid "Latest images" +msgstr "" + +#: templates/wagtailimages/chooser/select_format.html:3 +msgid "Choose a format" +msgstr "" + +#: templates/wagtailimages/chooser/select_format.html:17 +msgid "Insert image" +msgstr "" + +#: templates/wagtailimages/edit_handlers/image_chooser_panel.html:17 +msgid "Clear image" +msgstr "" + +#: templates/wagtailimages/edit_handlers/image_chooser_panel.html:18 +msgid "Choose another image" +msgstr "" + +#: templates/wagtailimages/images/_file_field.html:6 +msgid "Change image:" +msgstr "" + +#: templates/wagtailimages/images/add.html:4 +#: templates/wagtailimages/images/index.html:19 +msgid "Add an image" +msgstr "" + +#: templates/wagtailimages/images/add.html:15 +msgid "Add image" +msgstr "" + +#: templates/wagtailimages/images/add.html:25 +#: templates/wagtailimages/images/edit.html:33 +msgid "Save" +msgstr "" + +#: templates/wagtailimages/images/confirm_delete.html:4 +#: templates/wagtailimages/images/confirm_delete.html:8 +#: templates/wagtailimages/images/edit.html:33 +msgid "Delete image" +msgstr "" + +#: templates/wagtailimages/images/confirm_delete.html:16 +msgid "Are you sure you want to delete this image?" +msgstr "" + +#: templates/wagtailimages/images/confirm_delete.html:19 +msgid "Yes, delete" +msgstr "" + +#: templates/wagtailimages/images/edit.html:4 +#: templates/wagtailimages/images/url_generator.html:4 +#, python-format +msgid "Editing image %(title)s" +msgstr "" + +#: templates/wagtailimages/images/edit.html:15 +msgid "Editing" +msgstr "" + +#: templates/wagtailimages/images/results.html:31 +#, python-format +msgid "Sorry, no images match \"%(query_string)s\"" +msgstr "" + +#: templates/wagtailimages/images/results.html:34 +#, python-format +msgid "" +"You've not uploaded any images. Why not add one now?" +msgstr "" + +#: templates/wagtailimages/images/url_generator.html:9 +msgid "Generating URL" +msgstr "" + +#: templates/wagtailimages/images/url_generator.html:25 +msgid "URL" +msgstr "" + +#: templates/wagtailimages/images/url_generator.html:28 +msgid "Preview" +msgstr "" + +#: templates/wagtailimages/images/url_generator.html:34 +msgid "" +"Note that images generated larger than the screen will appear smaller when " +"previewed here, so they fit the screen." +msgstr "" + +#: templates/wagtailimages/images/usage.html:3 +#, python-format +msgid "Usage of %(title)s" +msgstr "" + +#: templates/wagtailimages/images/usage.html:5 +msgid "Usage of" +msgstr "" + +#: templates/wagtailimages/images/usage.html:17 +msgid "Parent" +msgstr "" + +#: templates/wagtailimages/images/usage.html:18 +msgid "Type" +msgstr "" + +#: templates/wagtailimages/images/usage.html:19 +msgid "Status" +msgstr "" + +#: templates/wagtailimages/images/usage.html:26 +msgid "Edit this page" +msgstr "" + +#: templates/wagtailimages/multiple/add.html:3 +msgid "Add multiple images" +msgstr "" + +#: templates/wagtailimages/multiple/add.html:13 +msgid "Add images" +msgstr "" + +#: templates/wagtailimages/multiple/add.html:18 +msgid "Drag and drop images into this area to upload immediately." +msgstr "" + +#: templates/wagtailimages/multiple/add.html:22 +msgid "Or choose from your computer" +msgstr "" + +#: templates/wagtailimages/multiple/add.html:47 +msgid "" +"Upload successful. Please update this image with a more appropriate title, " +"if necessary. You may also delete the image completely if the upload wasn't " +"required." +msgstr "" + +#: templates/wagtailimages/multiple/add.html:48 +msgid "Sorry, upload failed." +msgstr "" + +#: templates/wagtailimages/multiple/edit_form.html:10 +msgid "Update" +msgstr "" + +#: templates/wagtailimages/multiple/edit_form.html:11 +msgid "Delete" +msgstr "" + +#: utils/validators.py:17 utils/validators.py:28 +msgid "" +"Not a valid image. Please use a gif, jpeg or png file with the correct file " +"extension (*.gif, *.jpg or *.png)." +msgstr "" + +#: utils/validators.py:35 +#, python-format +msgid "" +"Not a valid %s image. Please use a gif, jpeg or png file with the correct " +"file extension (*.gif, *.jpg or *.png)." +msgstr "" + +#: views/images.py:38 views/images.py:48 +msgid "Search images" +msgstr "" + +#: views/images.py:105 +msgid "Image '{0}' updated." +msgstr "" + +#: views/images.py:108 +msgid "The image could not be saved due to errors." +msgstr "" + +#: views/images.py:194 +msgid "Image '{0}' deleted." +msgstr "" + +#: views/images.py:217 +msgid "Image '{0}' added." +msgstr "" + +#: views/images.py:220 +msgid "The image could not be created due to errors." +msgstr "" diff --git a/wagtail/wagtailimages/locale/zh/LC_MESSAGES/django.mo b/wagtail/wagtailimages/locale/zh/LC_MESSAGES/django.mo index 2910f1010..06de2f357 100644 Binary files a/wagtail/wagtailimages/locale/zh/LC_MESSAGES/django.mo and b/wagtail/wagtailimages/locale/zh/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailimages/locale/zh/LC_MESSAGES/django.po b/wagtail/wagtailimages/locale/zh/LC_MESSAGES/django.po index 564fcb35c..c84544dc1 100644 --- a/wagtail/wagtailimages/locale/zh/LC_MESSAGES/django.po +++ b/wagtail/wagtailimages/locale/zh/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Chinese (http://www.transifex.com/projects/p/wagtail/language/zh/)\n" +"Language-Team: Chinese (http://www.transifex.com/projects/p/wagtail/language/" +"zh/)\n" +"Language: zh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh\n" "Plural-Forms: nplurals=1; plural=0;\n" #: forms.py:37 @@ -53,7 +54,7 @@ msgstr "" msgid "Height" msgstr "" -#: models.py:34 templates/wagtailimages/images/usage.html:16 +#: models.py:48 templates/wagtailimages/images/usage.html:16 msgid "Title" msgstr "标题" @@ -65,7 +66,7 @@ msgstr "文件" msgid "Tags" msgstr "标签" -#: wagtail_hooks.py:64 templates/wagtailimages/images/index.html:5 +#: wagtail_hooks.py:69 templates/wagtailimages/images/index.html:5 #: templates/wagtailimages/images/index.html:18 msgid "Images" msgstr "图片" @@ -173,9 +174,11 @@ msgstr "" #: templates/wagtailimages/images/results.html:34 #, python-format msgid "" -"You've not uploaded any images. Why not add one now?" -msgstr "没有任何上传的图片。为什么不 添加一个?" +"You've not uploaded any images. Why not add one now?" +msgstr "" +"没有任何上传的图片。为什么不 添加" +"一个?" #: templates/wagtailimages/images/url_generator.html:9 msgid "Generating URL" @@ -268,26 +271,26 @@ msgid "" "file extension (*.gif, *.jpg or *.png)." msgstr "" -#: views/images.py:37 views/images.py:47 +#: views/images.py:38 views/images.py:48 msgid "Search images" msgstr "" -#: views/images.py:99 +#: views/images.py:105 msgid "Image '{0}' updated." msgstr "图片 '{0}' 已更新" -#: views/images.py:102 +#: views/images.py:108 msgid "The image could not be saved due to errors." msgstr "图片 因为有错不能被保存" -#: views/images.py:188 +#: views/images.py:194 msgid "Image '{0}' deleted." msgstr "图片 '{0}' 已删除." -#: views/images.py:206 +#: views/images.py:217 msgid "Image '{0}' added." msgstr "图片 '{0}' 已添加." -#: views/images.py:209 +#: views/images.py:220 msgid "The image could not be created due to errors." msgstr "图片因为有错不能被创建" diff --git a/wagtail/wagtailimages/locale/zh_TW/LC_MESSAGES/django.mo b/wagtail/wagtailimages/locale/zh_TW/LC_MESSAGES/django.mo index 442bea2b6..b68c31909 100644 Binary files a/wagtail/wagtailimages/locale/zh_TW/LC_MESSAGES/django.mo and b/wagtail/wagtailimages/locale/zh_TW/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailimages/locale/zh_TW/LC_MESSAGES/django.po b/wagtail/wagtailimages/locale/zh_TW/LC_MESSAGES/django.po index bcde4adb6..b866a5695 100644 --- a/wagtail/wagtailimages/locale/zh_TW/LC_MESSAGES/django.po +++ b/wagtail/wagtailimages/locale/zh_TW/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 21:12+0000\n" "Last-Translator: wdv4758h \n" "Language-Team: \n" @@ -53,7 +53,7 @@ msgstr "" msgid "Height" msgstr "" -#: models.py:34 templates/wagtailimages/images/usage.html:16 +#: models.py:48 templates/wagtailimages/images/usage.html:16 msgid "Title" msgstr "標題" @@ -65,7 +65,7 @@ msgstr "文件" msgid "Tags" msgstr "標籤" -#: wagtail_hooks.py:64 templates/wagtailimages/images/index.html:5 +#: wagtail_hooks.py:69 templates/wagtailimages/images/index.html:5 #: templates/wagtailimages/images/index.html:18 msgid "Images" msgstr "圖片" @@ -279,26 +279,26 @@ msgid "" "file extension (*.gif, *.jpg or *.png)." msgstr "不是有效的圖片格式。請用 gif、jpeg 或者 png 格式的圖片" -#: views/images.py:37 views/images.py:47 +#: views/images.py:38 views/images.py:48 msgid "Search images" msgstr "搜尋圖片" -#: views/images.py:99 +#: views/images.py:105 msgid "Image '{0}' updated." msgstr "圖片 '{0}' 已更新" -#: views/images.py:102 +#: views/images.py:108 msgid "The image could not be saved due to errors." msgstr "圖片因有錯誤而無法儲存。" -#: views/images.py:188 +#: views/images.py:194 msgid "Image '{0}' deleted." msgstr "圖片 '{0}' 已刪除." -#: views/images.py:206 +#: views/images.py:217 msgid "Image '{0}' added." msgstr "圖片 '{0}' 已加入." -#: views/images.py:209 +#: views/images.py:220 msgid "The image could not be created due to errors." msgstr "圖片因有錯而不能被建立。" diff --git a/wagtail/wagtailimages/migrations/0001_initial.py b/wagtail/wagtailimages/migrations/0001_initial.py new file mode 100644 index 000000000..64bb96257 --- /dev/null +++ b/wagtail/wagtailimages/migrations/0001_initial.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +import wagtail.wagtailimages.utils.validators +import wagtail.wagtailimages.models +import taggit.managers +from django.conf import settings +import wagtail.wagtailadmin.taggable + + +class Migration(migrations.Migration): + + dependencies = [ + ('taggit', '__latest__'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Filter', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False, auto_created=True, verbose_name='ID')), + ('spec', models.CharField(db_index=True, max_length=255)), + ], + options={ + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Image', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False, auto_created=True, verbose_name='ID')), + ('title', models.CharField(verbose_name='Title', max_length=255)), + ('file', models.ImageField(width_field='width', upload_to=wagtail.wagtailimages.models.get_upload_to, verbose_name='File', height_field='height', validators=[wagtail.wagtailimages.utils.validators.validate_image_format])), + ('width', models.IntegerField(editable=False)), + ('height', models.IntegerField(editable=False)), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('focal_point_x', models.PositiveIntegerField(editable=False, null=True)), + ('focal_point_y', models.PositiveIntegerField(editable=False, null=True)), + ('focal_point_width', models.PositiveIntegerField(editable=False, null=True)), + ('focal_point_height', models.PositiveIntegerField(editable=False, null=True)), + ('tags', taggit.managers.TaggableManager(verbose_name='Tags', blank=True, help_text=None, to='taggit.Tag', through='taggit.TaggedItem')), + ('uploaded_by_user', models.ForeignKey(editable=False, blank=True, null=True, to=settings.AUTH_USER_MODEL)), + ], + options={ + 'abstract': False, + }, + bases=(models.Model, wagtail.wagtailadmin.taggable.TagSearchable), + ), + migrations.CreateModel( + name='Rendition', + fields=[ + ('id', models.AutoField(primary_key=True, serialize=False, auto_created=True, verbose_name='ID')), + ('file', models.ImageField(width_field='width', upload_to='images', height_field='height')), + ('width', models.IntegerField(editable=False)), + ('height', models.IntegerField(editable=False)), + ('focal_point_key', models.CharField(editable=False, max_length=255, null=True)), + ('filter', models.ForeignKey(related_name='+', to='wagtailimages.Filter')), + ('image', models.ForeignKey(related_name='renditions', to='wagtailimages.Image')), + ], + options={ + }, + bases=(models.Model,), + ), + migrations.AlterUniqueTogether( + name='rendition', + unique_together=set([('image', 'filter', 'focal_point_key')]), + ), + ] diff --git a/wagtail/wagtailimages/migrations/0002_initial_data.py b/wagtail/wagtailimages/migrations/0002_initial_data.py new file mode 100644 index 000000000..7451ba7d7 --- /dev/null +++ b/wagtail/wagtailimages/migrations/0002_initial_data.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +def add_image_permissions_to_admin_groups(apps, schema_editor): + ContentType = apps.get_model('contenttypes.ContentType') + Permission = apps.get_model('auth.Permission') + Group = apps.get_model('auth.Group') + Image = apps.get_model('wagtailimages.Image') + + # Get image permissions + image_content_type, _created = ContentType.objects.get_or_create( + model='image', + app_label='wagtailimages', + defaults={'name': 'image'} + ) + + add_image_permission, _created = Permission.objects.get_or_create( + content_type=image_content_type, + codename='add_image', + defaults={'name': 'Can add image'} + ) + change_image_permission, _created = Permission.objects.get_or_create( + content_type=image_content_type, + codename='change_image', + defaults={'name': 'Can change image'} + ) + delete_image_permission, _created = Permission.objects.get_or_create( + content_type=image_content_type, + codename='delete_image', + defaults={'name': 'Can delete image'} + ) + + # Assign it to Editors and Moderators groups + for group in Group.objects.filter(name__in=['Editors', 'Moderators']): + group.permissions.add(add_image_permission, change_image_permission, delete_image_permission) + + +class Migration(migrations.Migration): + + dependencies = [ + ('wagtailimages', '0001_initial'), + + # Need to run wagtailcores initial data migration to make sure the groups are created + ('wagtailcore', '0002_initial_data'), + ] + + operations = [ + migrations.RunPython(add_image_permissions_to_admin_groups), + ] diff --git a/wagtail/wagtailimages/migrations/__init__.py b/wagtail/wagtailimages/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/wagtail/wagtailimages/models.py b/wagtail/wagtailimages/models.py index b29d50e0c..abd7c06a7 100644 --- a/wagtail/wagtailimages/models.py +++ b/wagtail/wagtailimages/models.py @@ -22,30 +22,30 @@ from unidecode import unidecode from wagtail.wagtailadmin.taggable import TagSearchable from wagtail.wagtailimages.backends import get_image_backend -from wagtail.wagtailsearch import indexed +from wagtail.wagtailsearch import index from wagtail.wagtailimages.utils.validators import validate_image_format from wagtail.wagtailimages.utils.focal_point import FocalPoint from wagtail.wagtailimages.utils.feature_detection import FeatureDetector, opencv_available from wagtail.wagtailadmin.utils import get_object_usage +def get_upload_to(instance, filename): + folder_name = 'original_images' + filename = instance.file.field.storage.get_valid_name(filename) + + # do a unidecode in the filename and then + # replace non-ascii characters in filename with _ , to sidestep issues with filesystem encoding + filename = "".join((i if ord(i) < 128 else '_') for i in unidecode(filename)) + + while len(os.path.join(folder_name, filename)) >= 95: + prefix, dot, extension = filename.rpartition('.') + filename = prefix[:-1] + dot + extension + return os.path.join(folder_name, filename) + + @python_2_unicode_compatible class AbstractImage(models.Model, TagSearchable): title = models.CharField(max_length=255, verbose_name=_('Title') ) - - def get_upload_to(self, filename): - folder_name = 'original_images' - filename = self.file.field.storage.get_valid_name(filename) - - # do a unidecode in the filename and then - # replace non-ascii characters in filename with _ , to sidestep issues with filesystem encoding - filename = "".join((i if ord(i) < 128 else '_') for i in unidecode(filename)) - - while len(os.path.join(folder_name, filename)) >= 95: - prefix, dot, extension = filename.rpartition('.') - filename = prefix[:-1] + dot + extension - return os.path.join(folder_name, filename) - file = models.ImageField(verbose_name=_('File'), upload_to=get_upload_to, width_field='width', height_field='height', validators=[validate_image_format]) width = models.IntegerField(editable=False) height = models.IntegerField(editable=False) @@ -54,10 +54,10 @@ class AbstractImage(models.Model, TagSearchable): tags = TaggableManager(help_text=None, blank=True, verbose_name=_('Tags')) - focal_point_x = models.PositiveIntegerField(null=True, editable=False) - focal_point_y = models.PositiveIntegerField(null=True, editable=False) - focal_point_width = models.PositiveIntegerField(null=True, editable=False) - focal_point_height = models.PositiveIntegerField(null=True, editable=False) + focal_point_x = models.PositiveIntegerField(null=True, blank=True) + focal_point_y = models.PositiveIntegerField(null=True, blank=True) + focal_point_width = models.PositiveIntegerField(null=True, blank=True) + focal_point_height = models.PositiveIntegerField(null=True, blank=True) def get_usage(self): return get_object_usage(self) @@ -68,7 +68,7 @@ class AbstractImage(models.Model, TagSearchable): args=(self.id,)) search_fields = TagSearchable.search_fields + ( - indexed.FilterField('uploaded_by_user'), + index.FilterField('uploaded_by_user'), ) def __str__(self): @@ -161,10 +161,9 @@ class AbstractImage(models.Model, TagSearchable): input_filename_parts = os.path.basename(file_field.file.name).split('.') filename_without_extension = '.'.join(input_filename_parts[:-1]) - filename_without_extension = filename_without_extension[:60] # trim filename base so that we're well under 100 chars - output_filename_parts = [filename_without_extension, focal_point_key, filter.spec] + input_filename_parts[-1:] - output_filename = '.'.join(output_filename_parts) - + extension = '.'.join([focal_point_key, filter.spec] + input_filename_parts[-1:]) + filename_without_extension = filename_without_extension[:(59-len(extension))] # Truncate filename to prevent it going over 60 chars + output_filename = filename_without_extension + '.' + extension generated_image_file = File(generated_image, name=output_filename) if self.focal_point: diff --git a/wagtail/wagtailimages/static/wagtailimages/js/focal-point-chooser.js b/wagtail/wagtailimages/static/wagtailimages/js/focal-point-chooser.js new file mode 100644 index 000000000..c68986d11 --- /dev/null +++ b/wagtail/wagtailimages/static/wagtailimages/js/focal-point-chooser.js @@ -0,0 +1,75 @@ +var jcropapi; + +function setupJcrop(image, original, focalPointOriginal, fields){ + image.Jcrop({ + trueSize: [original.width, original.height], + onSelect: function(box) { + var x = Math.floor((box.x + box.x2) / 2); + var y = Math.floor((box.y + box.y2) / 2); + var w = Math.floor(box.w); + var h = Math.floor(box.h); + + fields.x.val(x); + fields.y.val(y); + fields.width.val(w); + fields.height.val(h); + }, + onRelease: function() { + fields.x.val(focalPointOriginal.x); + fields.y.val(focalPointOriginal.y); + fields.width.val(focalPointOriginal.width); + fields.height.val(focalPointOriginal.height); + }, + }, function(){ + jcropapi = this + }); +} + +$(function() { + var $chooser = $('div.focal-point-chooser'); + var $indicator = $('.current-focal-point-indicator', $chooser); + var $image = $('img', $chooser); + + var original = { + width: $image.data('originalWidth'), + height: $image.data('originalHeight') + } + + var focalPointOriginal = { + x: $chooser.data('focalPointX'), + y: $chooser.data('focalPointY'), + width: $chooser.data('focalPointWidth'), + height: $chooser.data('focalPointHeight') + } + + var fields = { + x: $('input.focal_point_x'), + y: $('input.focal_point_y'), + width: $('input.focal_point_width'), + height: $('input.focal_point_height') + } + + var left = focalPointOriginal.x - focalPointOriginal.width / 2 + var top = focalPointOriginal.y - focalPointOriginal.height / 2 + var width = focalPointOriginal.width; + var height = focalPointOriginal.height; + + $indicator.css('left', (left * 100 / original.width) + '%'); + $indicator.css('top', (top * 100 / original.height) + '%'); + $indicator.css('width', (width * 100 / original.width) + '%'); + $indicator.css('height', (height * 100 / original.height) + '%'); + + var params = [$image, original, focalPointOriginal, fields]; + + setupJcrop.apply(this, params) + + $(window).resize($.debounce(300, function(){ + // jcrop doesn't support responsive images so to cater for resizing the browser + // we have to destroy() it, which doesn't properly do it, + // so destory it some more, then re-apply it + jcropapi.destroy(); + $image.removeAttr('style'); + $('.jcrop-holder').remove(); + setupJcrop.apply(this, params) + })); +}); diff --git a/wagtail/wagtailimages/static/wagtailimages/js/vendor/jquery.Jcrop.min.js b/wagtail/wagtailimages/static/wagtailimages/js/vendor/jquery.Jcrop.min.js new file mode 100644 index 000000000..4c9c7adb6 --- /dev/null +++ b/wagtail/wagtailimages/static/wagtailimages/js/vendor/jquery.Jcrop.min.js @@ -0,0 +1,22 @@ +/** + * jquery.Jcrop.min.js v0.9.12 (build:20130202) + * jQuery Image Cropping Plugin - released under MIT License + * Copyright (c) 2008-2013 Tapmodo Interactive LLC + * https://github.com/tapmodo/Jcrop + */ +(function(a){a.Jcrop=function(b,c){function i(a){return Math.round(a)+"px"}function j(a){return d.baseClass+"-"+a}function k(){return a.fx.step.hasOwnProperty("backgroundColor")}function l(b){var c=a(b).offset();return[c.left,c.top]}function m(a){return[a.pageX-e[0],a.pageY-e[1]]}function n(b){typeof b!="object"&&(b={}),d=a.extend(d,b),a.each(["onChange","onSelect","onRelease","onDblClick"],function(a,b){typeof d[b]!="function"&&(d[b]=function(){})})}function o(a,b,c){e=l(D),bc.setCursor(a==="move"?a:a+"-resize");if(a==="move")return bc.activateHandlers(q(b),v,c);var d=_.getFixed(),f=r(a),g=_.getCorner(r(f));_.setPressed(_.getCorner(f)),_.setCurrent(g),bc.activateHandlers(p(a,d),v,c)}function p(a,b){return function(c){if(!d.aspectRatio)switch(a){case"e":c[1]=b.y2;break;case"w":c[1]=b.y2;break;case"n":c[0]=b.x2;break;case"s":c[0]=b.x2}else switch(a){case"e":c[1]=b.y+1;break;case"w":c[1]=b.y+1;break;case"n":c[0]=b.x+1;break;case"s":c[0]=b.x+1}_.setCurrent(c),bb.update()}}function q(a){var b=a;return bd.watchKeys +(),function(a){_.moveOffset([a[0]-b[0],a[1]-b[1]]),b=a,bb.update()}}function r(a){switch(a){case"n":return"sw";case"s":return"nw";case"e":return"nw";case"w":return"ne";case"ne":return"sw";case"nw":return"se";case"se":return"nw";case"sw":return"ne"}}function s(a){return function(b){return d.disabled?!1:a==="move"&&!d.allowMove?!1:(e=l(D),W=!0,o(a,m(b)),b.stopPropagation(),b.preventDefault(),!1)}}function t(a,b,c){var d=a.width(),e=a.height();d>b&&b>0&&(d=b,e=b/a.width()*a.height()),e>c&&c>0&&(e=c,d=c/a.height()*a.width()),T=a.width()/d,U=a.height()/e,a.width(d).height(e)}function u(a){return{x:a.x*T,y:a.y*U,x2:a.x2*T,y2:a.y2*U,w:a.w*T,h:a.h*U}}function v(a){var b=_.getFixed();b.w>d.minSelect[0]&&b.h>d.minSelect[1]?(bb.enableHandles(),bb.done()):bb.release(),bc.setCursor(d.allowSelect?"crosshair":"default")}function w(a){if(d.disabled)return!1;if(!d.allowSelect)return!1;W=!0,e=l(D),bb.disableHandles(),bc.setCursor("crosshair");var b=m(a);return _.setPressed(b),bb.update(),bc.activateHandlers(x,v,a.type.substring +(0,5)==="touch"),bd.watchKeys(),a.stopPropagation(),a.preventDefault(),!1}function x(a){_.setCurrent(a),bb.update()}function y(){var b=a("
    ").addClass(j("tracker"));return g&&b.css({opacity:0,backgroundColor:"white"}),b}function be(a){G.removeClass().addClass(j("holder")).addClass(a)}function bf(a,b){function t(){window.setTimeout(u,l)}var c=a[0]/T,e=a[1]/U,f=a[2]/T,g=a[3]/U;if(X)return;var h=_.flipCoords(c,e,f,g),i=_.getFixed(),j=[i.x,i.y,i.x2,i.y2],k=j,l=d.animationDelay,m=h[0]-j[0],n=h[1]-j[1],o=h[2]-j[2],p=h[3]-j[3],q=0,r=d.swingSpeed;c=k[0],e=k[1],f=k[2],g=k[3],bb.animMode(!0);var s,u=function(){return function(){q+=(100-q)/r,k[0]=Math.round(c+q/100*m),k[1]=Math.round(e+q/100*n),k[2]=Math.round(f+q/100*o),k[3]=Math.round(g+q/100*p),q>=99.8&&(q=100),q<100?(bh(k),t()):(bb.done(),bb.animMode(!1),typeof b=="function"&&b.call(bs))}}();t()}function bg(a){bh([a[0]/T,a[1]/U,a[2]/T,a[3]/U]),d.onSelect.call(bs,u(_.getFixed())),bb.enableHandles()}function bh(a){_.setPressed([a[0],a[1]]),_.setCurrent([a[2], +a[3]]),bb.update()}function bi(){return u(_.getFixed())}function bj(){return _.getFixed()}function bk(a){n(a),br()}function bl(){d.disabled=!0,bb.disableHandles(),bb.setCursor("default"),bc.setCursor("default")}function bm(){d.disabled=!1,br()}function bn(){bb.done(),bc.activateHandlers(null,null)}function bo(){G.remove(),A.show(),A.css("visibility","visible"),a(b).removeData("Jcrop")}function bp(a,b){bb.release(),bl();var c=new Image;c.onload=function(){var e=c.width,f=c.height,g=d.boxWidth,h=d.boxHeight;D.width(e).height(f),D.attr("src",a),H.attr("src",a),t(D,g,h),E=D.width(),F=D.height(),H.width(E).height(F),M.width(E+L*2).height(F+L*2),G.width(E).height(F),ba.resize(E,F),bm(),typeof b=="function"&&b.call(bs)},c.src=a}function bq(a,b,c){var e=b||d.bgColor;d.bgFade&&k()&&d.fadeTime&&!c?a.animate({backgroundColor:e},{queue:!1,duration:d.fadeTime}):a.css("backgroundColor",e)}function br(a){d.allowResize?a?bb.enableOnly():bb.enableHandles():bb.disableHandles(),bc.setCursor(d.allowSelect?"crosshair":"default"),bb +.setCursor(d.allowMove?"move":"default"),d.hasOwnProperty("trueSize")&&(T=d.trueSize[0]/E,U=d.trueSize[1]/F),d.hasOwnProperty("setSelect")&&(bg(d.setSelect),bb.done(),delete d.setSelect),ba.refresh(),d.bgColor!=N&&(bq(d.shade?ba.getShades():G,d.shade?d.shadeColor||d.bgColor:d.bgColor),N=d.bgColor),O!=d.bgOpacity&&(O=d.bgOpacity,d.shade?ba.refresh():bb.setBgOpacity(O)),P=d.maxSize[0]||0,Q=d.maxSize[1]||0,R=d.minSize[0]||0,S=d.minSize[1]||0,d.hasOwnProperty("outerImage")&&(D.attr("src",d.outerImage),delete d.outerImage),bb.refresh()}var d=a.extend({},a.Jcrop.defaults),e,f=navigator.userAgent.toLowerCase(),g=/msie/.test(f),h=/msie [1-6]\./.test(f);typeof b!="object"&&(b=a(b)[0]),typeof c!="object"&&(c={}),n(c);var z={border:"none",visibility:"visible",margin:0,padding:0,position:"absolute",top:0,left:0},A=a(b),B=!0;if(b.tagName=="IMG"){if(A[0].width!=0&&A[0].height!=0)A.width(A[0].width),A.height(A[0].height);else{var C=new Image;C.src=A[0].src,A.width(C.width),A.height(C.height)}var D=A.clone().removeAttr("id"). +css(z).show();D.width(A.width()),D.height(A.height()),A.after(D).hide()}else D=A.css(z).show(),B=!1,d.shade===null&&(d.shade=!0);t(D,d.boxWidth,d.boxHeight);var E=D.width(),F=D.height(),G=a("
    ").width(E).height(F).addClass(j("holder")).css({position:"relative",backgroundColor:d.bgColor}).insertAfter(A).append(D);d.addClass&&G.addClass(d.addClass);var H=a("
    "),I=a("
    ").width("100%").height("100%").css({zIndex:310,position:"absolute",overflow:"hidden"}),J=a("
    ").width("100%").height("100%").css("zIndex",320),K=a("
    ").css({position:"absolute",zIndex:600}).dblclick(function(){var a=_.getFixed();d.onDblClick.call(bs,a)}).insertBefore(D).append(I,J);B&&(H=a("").attr("src",D.attr("src")).css(z).width(E).height(F),I.append(H)),h&&K.css({overflowY:"hidden"});var L=d.boundary,M=y().width(E+L*2).height(F+L*2).css({position:"absolute",top:i(-L),left:i(-L),zIndex:290}).mousedown(w),N=d.bgColor,O=d.bgOpacity,P,Q,R,S,T,U,V=!0,W,X,Y;e=l(D);var Z=function(){function a(){var a={},b=["touchstart" +,"touchmove","touchend"],c=document.createElement("div"),d;try{for(d=0;da+f&&(f-=f+a),0>b+g&&(g-=g+b),FE&&(r=E,u=Math.abs((r-a)/f),s=k<0?b-u:u+b)):(r=c,u=l/f,s=k<0?b-u:b+u,s<0?(s=0,t=Math.abs((s-b)*f),r=j<0?a-t:t+a):s>F&&(s=F,t=Math.abs(s-b)*f,r=j<0?a-t:t+a)),r>a?(r-ah&&(r=a+h),s>b?s=b+(r-a)/f:s=b-(r-a)/f):rh&&(r=a-h),s>b?s=b+(a-r)/f:s=b-(a-r)/f),r<0?(a-=r,r=0):r>E&&(a-=r-E,r=E),s<0?(b-=s,s=0):s>F&&(b-=s-F,s=F),q(o(a,b,r,s))}function n(a){return a[0]<0&&(a[0]=0),a[1]<0&&(a[1]=0),a[0]>E&&(a[0]=E),a[1]>F&&(a[1]=F),[Math.round(a[0]),Math.round(a[1])]}function o(a,b,c,d){var e=a,f=c,g=b,h=d;return cP&&(c=d>0?a+P:a-P),Q&&Math.abs +(f)>Q&&(e=f>0?b+Q:b-Q),S/U&&Math.abs(f)0?b+S/U:b-S/U),R/T&&Math.abs(d)0?a+R/T:a-R/T),a<0&&(c-=a,a-=a),b<0&&(e-=b,b-=b),c<0&&(a-=c,c-=c),e<0&&(b-=e,e-=e),c>E&&(g=c-E,a-=g,c-=g),e>F&&(g=e-F,b-=g,e-=g),a>E&&(g=a-F,e-=g,b-=g),b>F&&(g=b-F,e-=g,b-=g),q(o(a,b,c,e))}function q(a){return{x:a[0],y:a[1],x2:a[2],y2:a[3],w:a[2]-a[0],h:a[3]-a[1]}}var a=0,b=0,c=0,e=0,f,g;return{flipCoords:o,setPressed:h,setCurrent:i,getOffset:j,moveOffset:k,getCorner:l,getFixed:m}}(),ba=function(){function f(a,b){e.left.css({height:i(b)}),e.right.css({height:i(b)})}function g(){return h(_.getFixed())}function h(a){e.top.css({left:i(a.x),width:i(a.w),height:i(a.y)}),e.bottom.css({top:i(a.y2),left:i(a.x),width:i(a.w),height:i(F-a.y2)}),e.right.css({left:i(a.x2),width:i(E-a.x2)}),e.left.css({width:i(a.x)})}function j(){return a("
    ").css({position:"absolute",backgroundColor:d.shadeColor||d.bgColor}).appendTo(c)}function k(){b||(b=!0,c.insertBefore(D),g(),bb.setBgOpacity(1,0,1),H.hide(),l(d.shadeColor||d.bgColor,1),bb. +isAwake()?n(d.bgOpacity,1):n(1,1))}function l(a,b){bq(p(),a,b)}function m(){b&&(c.remove(),H.show(),b=!1,bb.isAwake()?bb.setBgOpacity(d.bgOpacity,1,1):(bb.setBgOpacity(1,1,1),bb.disableHandles()),bq(G,0,1))}function n(a,e){b&&(d.bgFade&&!e?c.animate({opacity:1-a},{queue:!1,duration:d.fadeTime}):c.css({opacity:1-a}))}function o(){d.shade?k():m(),bb.isAwake()&&n(d.bgOpacity)}function p(){return c.children()}var b=!1,c=a("
    ").css({position:"absolute",zIndex:240,opacity:0}),e={top:j(),left:j().height(F),right:j().height(F),bottom:j()};return{update:g,updateRaw:h,getShades:p,setBgColor:l,enable:k,disable:m,resize:f,refresh:o,opacity:n}}(),bb=function(){function k(b){var c=a("
    ").css({position:"absolute",opacity:d.borderOpacity}).addClass(j(b));return I.append(c),c}function l(b,c){var d=a("
    ").mousedown(s(b)).css({cursor:b+"-resize",position:"absolute",zIndex:c}).addClass("ord-"+b);return Z.support&&d.bind("touchstart.jcrop",Z.createDragger(b)),J.append(d),d}function m(a){var b=d.handleSize,e=l(a,c++ +).css({opacity:d.handleOpacity}).addClass(j("handle"));return b&&e.width(b).height(b),e}function n(a){return l(a,c++).addClass("jcrop-dragbar")}function o(a){var b;for(b=0;b').css({position:"fixed",left:"-120px",width:"12px"}).addClass("jcrop-keymgr"),c=a("
    ").css({position:"absolute",overflow:"hidden"}).append(b);return d.keySupport&&(b.keydown(i).blur(f),h||!d.fixedSupport?(b.css({position:"absolute",left:"-20px"}),c.append(b).insertBefore(D)):b.insertBefore(D)),{watchKeys:e}}();Z.support&&M.bind("touchstart.jcrop",Z.newSelection),J.hide(),br(!0);var bs={setImage:bp,animateTo:bf,setSelect:bg,setOptions:bk,tellSelect:bi,tellScaled:bj,setClass:be,disable:bl,enable:bm,cancel:bn,release:bb.release,destroy:bo,focus:bd.watchKeys,getBounds:function(){return[E*T,F*U]},getWidgetSize:function(){return[E,F]},getScaleFactor:function(){return[T,U]},getOptions:function(){return d},ui:{holder:G,selection:K}};return g&&G.bind("selectstart",function(){return!1}),A.data("Jcrop",bs),bs},a.fn.Jcrop=function(b,c){var d;return this.each(function(){if(a(this).data("Jcrop")){if( +b==="api")return a(this).data("Jcrop");a(this).data("Jcrop").setOptions(b)}else this.tagName=="IMG"?a.Jcrop.Loader(this,function(){a(this).css({display:"block",visibility:"hidden"}),d=a.Jcrop(this,b),a.isFunction(c)&&c.call(d)}):(a(this).css({display:"block",visibility:"hidden"}),d=a.Jcrop(this,b),a.isFunction(c)&&c.call(d))}),this},a.Jcrop.Loader=function(b,c,d){function g(){f.complete?(e.unbind(".jcloader"),a.isFunction(c)&&c.call(f)):window.setTimeout(g,50)}var e=a(b),f=e[0];e.bind("load.jcloader",g).bind("error.jcloader",function(b){e.unbind(".jcloader"),a.isFunction(d)&&d.call(f)}),f.complete&&a.isFunction(c)&&(e.unbind(".jcloader"),c.call(f))},a.Jcrop.defaults={allowSelect:!0,allowMove:!0,allowResize:!0,trackDocument:!0,baseClass:"jcrop",addClass:null,bgColor:"black",bgOpacity:.6,bgFade:!1,borderOpacity:.4,handleOpacity:.5,handleSize:null,aspectRatio:0,keySupport:!0,createHandles:["n","s","e","w","nw","ne","se","sw"],createDragbars:["n","s","e","w"],createBorders:["n","s","e","w"],drawBorders:!0,dragEdges +:!0,fixedSupport:!0,touchSupport:null,shade:null,boxWidth:0,boxHeight:0,boundary:2,fadeTime:400,animationDelay:20,swingSpeed:3,minSelect:[0,0],maxSize:[0,0],minSize:[0,0],onChange:function(){},onSelect:function(){},onDblClick:function(){},onRelease:function(){}}})(jQuery); \ No newline at end of file diff --git a/wagtail/wagtailimages/static/wagtailimages/scss/add-multiple.scss b/wagtail/wagtailimages/static/wagtailimages/scss/add-multiple.scss index 36c88665b..161b9e5ef 100644 --- a/wagtail/wagtailimages/static/wagtailimages/scss/add-multiple.scss +++ b/wagtail/wagtailimages/static/wagtailimages/scss/add-multiple.scss @@ -1,6 +1,6 @@ -@import "../../wagtailadmin/static/wagtailadmin/scss/variables.scss"; -@import "../../wagtailadmin/static/wagtailadmin/scss/mixins.scss"; -@import "../../wagtailadmin/static/wagtailadmin/scss/grid.scss"; +@import "wagtailadmin/scss/variables.scss"; +@import "wagtailadmin/scss/mixins.scss"; +@import "wagtailadmin/scss/grid.scss"; .replace-file-input{ display:inline-block; diff --git a/wagtail/wagtailimages/static/wagtailimages/scss/focal-point-chooser.scss b/wagtail/wagtailimages/static/wagtailimages/scss/focal-point-chooser.scss new file mode 100644 index 000000000..2e36063df --- /dev/null +++ b/wagtail/wagtailimages/static/wagtailimages/scss/focal-point-chooser.scss @@ -0,0 +1,22 @@ +@import "wagtailadmin/scss/variables.scss"; +@import "wagtailadmin/scss/mixins.scss"; + +.focal-point-chooser { + position: relative; + + .current-focal-point-indicator { + @include transition(opacity 0.2s ease); + @include box-shadow(1px 1px 10px 0px rgba(0,0,0,1)); + position: absolute; + border: 1px solid $color-teal; + opacity: 0.5; + + .hidden { + display: none; + } + } + + &:hover .current-focal-point-indicator{ + opacity:0; + } +} \ No newline at end of file diff --git a/wagtail/wagtailimages/static/wagtailimages/scss/vendor/Jcrop.gif b/wagtail/wagtailimages/static/wagtailimages/scss/vendor/Jcrop.gif new file mode 100644 index 000000000..72ea7ccb5 Binary files /dev/null and b/wagtail/wagtailimages/static/wagtailimages/scss/vendor/Jcrop.gif differ diff --git a/wagtail/wagtailimages/static/wagtailimages/scss/vendor/jquery.Jcrop.min.css b/wagtail/wagtailimages/static/wagtailimages/scss/vendor/jquery.Jcrop.min.css new file mode 100644 index 000000000..edc76b2b3 --- /dev/null +++ b/wagtail/wagtailimages/static/wagtailimages/scss/vendor/jquery.Jcrop.min.css @@ -0,0 +1,29 @@ +/* jquery.Jcrop.min.css v0.9.12 (build:20130126) */ +.jcrop-holder{direction:ltr;text-align:left;} +.jcrop-vline,.jcrop-hline{background:#FFF url(Jcrop.gif);font-size:0;position:absolute;} +.jcrop-vline{height:100%;width:1px!important;} +.jcrop-vline.right{right:0;} +.jcrop-hline{height:1px!important;width:100%;} +.jcrop-hline.bottom{bottom:0;} +.jcrop-tracker{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;height:100%;width:100%;} +.jcrop-handle{background-color:#333;border:1px #EEE solid;font-size:1px;height:7px;width:7px;} +.jcrop-handle.ord-n{left:50%;margin-left:-4px;margin-top:-4px;top:0;} +.jcrop-handle.ord-s{bottom:0;left:50%;margin-bottom:-4px;margin-left:-4px;} +.jcrop-handle.ord-e{margin-right:-4px;margin-top:-4px;right:0;top:50%;} +.jcrop-handle.ord-w{left:0;margin-left:-4px;margin-top:-4px;top:50%;} +.jcrop-handle.ord-nw{left:0;margin-left:-4px;margin-top:-4px;top:0;} +.jcrop-handle.ord-ne{margin-right:-4px;margin-top:-4px;right:0;top:0;} +.jcrop-handle.ord-se{bottom:0;margin-bottom:-4px;margin-right:-4px;right:0;} +.jcrop-handle.ord-sw{bottom:0;left:0;margin-bottom:-4px;margin-left:-4px;} +.jcrop-dragbar.ord-n,.jcrop-dragbar.ord-s{height:7px;width:100%;} +.jcrop-dragbar.ord-e,.jcrop-dragbar.ord-w{height:100%;width:7px;} +.jcrop-dragbar.ord-n{margin-top:-4px;} +.jcrop-dragbar.ord-s{bottom:0;margin-bottom:-4px;} +.jcrop-dragbar.ord-e{margin-right:-4px;right:0;} +.jcrop-dragbar.ord-w{margin-left:-4px;} +.jcrop-light .jcrop-vline,.jcrop-light .jcrop-hline{background:#FFF;filter:alpha(opacity=70)!important;opacity:.70!important;} +.jcrop-light .jcrop-handle{-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#000;border-color:#FFF;border-radius:3px;} +.jcrop-dark .jcrop-vline,.jcrop-dark .jcrop-hline{background:#000;filter:alpha(opacity=70)!important;opacity:.7!important;} +.jcrop-dark .jcrop-handle{-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#FFF;border-color:#000;border-radius:3px;} +.solid-line .jcrop-vline,.solid-line .jcrop-hline{background:#FFF;} +.jcrop-holder img,img.jcrop-preview{max-width:none;} diff --git a/wagtail/wagtailimages/templates/wagtailimages/images/edit.html b/wagtail/wagtailimages/templates/wagtailimages/images/edit.html index e904bd426..20a00511d 100644 --- a/wagtail/wagtailimages/templates/wagtailimages/images/edit.html +++ b/wagtail/wagtailimages/templates/wagtailimages/images/edit.html @@ -1,14 +1,25 @@ {% extends "wagtailadmin/base.html" %} -{% load wagtailimages_tags %} +{% load wagtailimages_tags compress %} {% load i18n %} {% block titletag %}{% blocktrans with title=image.title %}Editing image {{ title }}{% endblocktrans %}{% endblock %} {% block bodyclass %}menu-images{% endblock %} {% block extra_css %} {% include "wagtailadmin/shared/tag_field_css.html" %} + + + + {% compress css %} + + {% endcompress %} {% endblock %} {% block extra_js %} {% include "wagtailadmin/shared/tag_field_js.html" %} + + + + + {% endblock %} {% block content %} @@ -25,6 +36,8 @@ {% if field.name == 'file' %} {% include "wagtailimages/images/_file_field.html" %} + {% elif field.is_hidden %} + {{ field }} {% else %} {% include "wagtailadmin/shared/field_as_li.html" %} {% endif %} @@ -35,10 +48,20 @@
    - {% image image max-800x600 %} +

    {% trans "Focal point (optional)" %}

    +

    {% trans "To define this image's most important region, drag a box over the image below." %} {% if image.focal_point %}({% trans "Current focal point shown" %}){% endif %}

    +
    + + {% image image max-800x600 data-original-width=image.width data-original-height=image.height %} +
    +
    {% if url_generator_enabled %} - URL Generator + {% trans "URL Generator" %} {% endif %}
    diff --git a/wagtail/wagtailimages/templates/wagtailimages/multiple/add.html b/wagtail/wagtailimages/templates/wagtailimages/multiple/add.html index 9bde36d09..066650d83 100644 --- a/wagtail/wagtailimages/templates/wagtailimages/multiple/add.html +++ b/wagtail/wagtailimages/templates/wagtailimages/multiple/add.html @@ -62,7 +62,7 @@ - + {% endcompress %} diff --git a/wagtail/wagtailimages/templates/wagtailimages/multiple/edit_form.html b/wagtail/wagtailimages/templates/wagtailimages/multiple/edit_form.html index 9fdebacc1..eb39a1bdd 100644 --- a/wagtail/wagtailimages/templates/wagtailimages/multiple/edit_form.html +++ b/wagtail/wagtailimages/templates/wagtailimages/multiple/edit_form.html @@ -4,7 +4,11 @@
      {% csrf_token %} {% for field in form %} - {% include "wagtailadmin/shared/field_as_li.html" %} + {% if field.is_hidden %} + {{ field }} + {% else %} + {% include "wagtailadmin/shared/field_as_li.html" %} + {% endif %} {% endfor %}
    • diff --git a/wagtail/wagtailimages/templatetags/image_tags.py b/wagtail/wagtailimages/templatetags/image_tags.py deleted file mode 100644 index 00e59aca0..000000000 --- a/wagtail/wagtailimages/templatetags/image_tags.py +++ /dev/null @@ -1,11 +0,0 @@ -import warnings - -from wagtail.utils.deprecation import RemovedInWagtail06Warning - - -warnings.warn( - "The image_tags tag library has been moved to wagtailimages_tags. " - "Use {% load wagtailimages_tags %} instead.", RemovedInWagtail06Warning) - - -from wagtail.wagtailimages.templatetags.wagtailimages_tags import register, image diff --git a/wagtail/wagtailimages/tests.py b/wagtail/wagtailimages/tests.py index dabd5e0e8..8326c92fc 100644 --- a/wagtail/wagtailimages/tests.py +++ b/wagtail/wagtailimages/tests.py @@ -32,7 +32,7 @@ from wagtail.tests.models import EventPage, EventPageCarouselItem from wagtail.wagtailcore.models import Page -def get_test_image_file(): +def get_test_image_file(filename='test.png'): from six import BytesIO from PIL import Image from django.core.files.images import ImageFile @@ -40,7 +40,7 @@ def get_test_image_file(): f = BytesIO() image = Image.new('RGB', (640, 480), 'white') image.save(f, 'PNG') - return ImageFile(f, name='test.png') + return ImageFile(f, name=filename) Image = get_image_model() @@ -1016,3 +1016,122 @@ class TestCropToPoint(TestCase): CropBox(125, 25, 275, 175), ) + +class TestIssue573(TestCase): + """ + This tests for a bug which causes filename limit on Renditions to be reached + when the Image has a long original filename and a big focal point key + """ + def test_issue_573(self): + # Create an image with a big filename and focal point + image = Image.objects.create( + title="Test image", + file=get_test_image_file('thisisaverylongfilename-abcdefghijklmnopqrstuvwxyz-supercalifragilisticexpialidocious.png'), + focal_point_x=1000, + focal_point_y=1000, + focal_point_width=1000, + focal_point_height=1000, + ) + + # Try creating a rendition from that image + # This would crash if the bug is present + image.get_rendition('fill-800x600') + + +class TestIssue613(TestCase, WagtailTestUtils): + def get_elasticsearch_backend(self): + from django.conf import settings + from wagtail.wagtailsearch.backends import get_search_backend + + backend_path = 'wagtail.wagtailsearch.backends.elasticsearch.ElasticSearch' + + # Search WAGTAILSEARCH_BACKENDS for an entry that uses the given backend path + for backend_name, backend_conf in settings.WAGTAILSEARCH_BACKENDS.items(): + if backend_conf['BACKEND'] == backend_path: + return get_search_backend(backend_name) + else: + # no conf entry found - skip tests for this backend + raise unittest.SkipTest("No WAGTAILSEARCH_BACKENDS entry for the backend %s" % backend_path) + + def setUp(self): + self.search_backend = self.get_elasticsearch_backend() + self.login() + + from wagtail.wagtailsearch.signal_handlers import register_signal_handlers + register_signal_handlers() + + def add_image(self, **params): + post_data = { + 'title': "Test image", + 'file': SimpleUploadedFile('test.png', get_test_image_file().file.getvalue()), + } + post_data.update(params) + response = self.client.post(reverse('wagtailimages_add_image'), post_data) + + # Should redirect back to index + self.assertRedirects(response, reverse('wagtailimages_index')) + + # Check that the image was created + images = Image.objects.filter(title="Test image") + self.assertEqual(images.count(), 1) + + # Test that size was populated correctly + image = images.first() + self.assertEqual(image.width, 640) + self.assertEqual(image.height, 480) + + return image + + def edit_image(self, **params): + # Create an image to edit + self.image = Image.objects.create( + title="Test image", + file=get_test_image_file(), + ) + + # Edit it + post_data = { + 'title': "Edited", + } + post_data.update(params) + response = self.client.post(reverse('wagtailimages_edit_image', args=(self.image.id,)), post_data) + + # Should redirect back to index + self.assertRedirects(response, reverse('wagtailimages_index')) + + # Check that the image was edited + image = Image.objects.get(id=self.image.id) + self.assertEqual(image.title, "Edited") + return image + + def test_issue_613_on_add(self): + # Reset the search index + self.search_backend.reset_index() + self.search_backend.add_type(Image) + + # Add an image with some tags + image = self.add_image(tags="hello") + self.search_backend.refresh_index() + + # Search for it by tag + results = self.search_backend.search("hello", Image) + + # Check + self.assertEqual(len(results), 1) + self.assertEqual(results[0].id, image.id) + + def test_issue_613_on_edit(self): + # Reset the search index + self.search_backend.reset_index() + self.search_backend.add_type(Image) + + # Add an image with some tags + image = self.edit_image(tags="hello") + self.search_backend.refresh_index() + + # Search for it by tag + results = self.search_backend.search("hello", Image) + + # Check + self.assertEqual(len(results), 1) + self.assertEqual(results[0].id, image.id) diff --git a/wagtail/wagtailimages/utils/feature_detection.py b/wagtail/wagtailimages/utils/feature_detection.py index 6381fabf7..6aab45c97 100644 --- a/wagtail/wagtailimages/utils/feature_detection.py +++ b/wagtail/wagtailimages/utils/feature_detection.py @@ -1,16 +1,23 @@ import os +from django.conf import settings -try: - import cv - - opencv_available = True -except ImportError: +# only try to import OpenCV if WAGTAILIMAGES_FEATURE_DETECTION_ENABLED is True - +# avoids spurious "libdc1394 error: Failed to initialize libdc1394" errors on sites that +# don't even use OpenCV +if getattr(settings, 'WAGTAILIMAGES_FEATURE_DETECTION_ENABLED', False): try: - import cv2.cv as cv + import cv opencv_available = True except ImportError: - opencv_available = False + try: + import cv2.cv as cv + + opencv_available = True + except ImportError: + opencv_available = False +else: + opencv_available = False from wagtail.wagtailimages.utils.focal_point import FocalPoint, combine_focal_points diff --git a/wagtail/wagtailimages/views/chooser.py b/wagtail/wagtailimages/views/chooser.py index 221a75581..0312b3a2e 100644 --- a/wagtail/wagtailimages/views/chooser.py +++ b/wagtail/wagtailimages/views/chooser.py @@ -6,6 +6,7 @@ from django.contrib.auth.decorators import permission_required from wagtail.wagtailadmin.modal_workflow import render_modal_workflow from wagtail.wagtailadmin.forms import SearchForm +from wagtail.wagtailsearch.backends import get_search_backends from wagtail.wagtailimages.models import get_image_model from wagtail.wagtailimages.forms import get_image_form, ImageInsertionForm @@ -121,6 +122,11 @@ def chooser_upload(request): if form.is_valid(): form.save() + + # Reindex the image to make sure all tags are indexed + for backend in get_search_backends(): + backend.add(image) + if request.GET.get('select_format'): form = ImageInsertionForm(initial={'alt_text': image.default_alt_text}) return render_modal_workflow( diff --git a/wagtail/wagtailimages/views/images.py b/wagtail/wagtailimages/views/images.py index 27ad96a47..d3713f1cf 100644 --- a/wagtail/wagtailimages/views/images.py +++ b/wagtail/wagtailimages/views/images.py @@ -12,6 +12,7 @@ from django.http import HttpResponse from wagtail.wagtailcore.models import Site from wagtail.wagtailadmin.forms import SearchForm +from wagtail.wagtailsearch.backends import get_search_backends from wagtail.wagtailimages.models import get_image_model, Filter from wagtail.wagtailimages.forms import get_image_form, URLGeneratorForm @@ -96,6 +97,11 @@ def edit(request, image_id): original_file.storage.delete(original_file.name) image.renditions.all().delete() form.save() + + # Reindex the image to make sure all tags are indexed + for backend in get_search_backends(): + backend.add(image) + messages.success(request, _("Image '{0}' updated.").format(image.title)) return redirect('wagtailimages_index') else: @@ -203,6 +209,11 @@ def add(request): form = ImageForm(request.POST, request.FILES, instance=image) if form.is_valid(): form.save() + + # Reindex the image to make sure all tags are indexed + for backend in get_search_backends(): + backend.add(image) + messages.success(request, _("Image '{0}' added.").format(image.title)) return redirect('wagtailimages_index') else: diff --git a/wagtail/wagtailimages/views/multiple.py b/wagtail/wagtailimages/views/multiple.py index 5bc76fa7c..2fcaa5f58 100644 --- a/wagtail/wagtailimages/views/multiple.py +++ b/wagtail/wagtailimages/views/multiple.py @@ -10,6 +10,8 @@ from django.template import RequestContext from django.template.loader import render_to_string from django.utils.translation import ugettext as _ +from wagtail.wagtailsearch.backends import get_search_backends + from wagtail.wagtailimages.models import get_image_model from wagtail.wagtailimages.forms import get_image_form_for_multi from wagtail.wagtailimages.utils.validators import validate_image_format @@ -79,6 +81,11 @@ def edit(request, image_id, callback=None): if form.is_valid(): form.save() + + # Reindex the image to make sure all tags are indexed + for backend in get_search_backends(): + backend.add(image) + return json_response({ 'success': True, 'image_id': int(image_id), diff --git a/wagtail/wagtailimages/wagtail_hooks.py b/wagtail/wagtailimages/wagtail_hooks.py index b4f2bac19..ee1e9cf97 100644 --- a/wagtail/wagtailimages/wagtail_hooks.py +++ b/wagtail/wagtailimages/wagtail_hooks.py @@ -59,10 +59,14 @@ def construct_main_menu(request, menu_items): if not OLD_STYLE_URLCONF_CHECK_PASSED: check_old_style_urlconf() - if request.user.has_perm('wagtailimages.add_image'): - menu_items.append( - MenuItem(_('Images'), urlresolvers.reverse('wagtailimages_index'), classnames='icon icon-image', order=300) - ) + +class ImagesMenuItem(MenuItem): + def is_shown(self, request): + return request.user.has_perm('wagtailimages.add_image') + +@hooks.register('register_admin_menu_item') +def register_images_menu_item(): + return ImagesMenuItem(_('Images'), urlresolvers.reverse('wagtailimages_index'), classnames='icon icon-image', order=300) @hooks.register('insert_editor_js') diff --git a/wagtail/wagtailredirects/__init__.py b/wagtail/wagtailredirects/__init__.py index e69de29bb..b192b1b24 100644 --- a/wagtail/wagtailredirects/__init__.py +++ b/wagtail/wagtailredirects/__init__.py @@ -0,0 +1 @@ +default_app_config = 'wagtail.wagtailredirects.apps.WagtailRedirectsAppConfig' diff --git a/wagtail/wagtailredirects/apps.py b/wagtail/wagtailredirects/apps.py new file mode 100644 index 000000000..400299f02 --- /dev/null +++ b/wagtail/wagtailredirects/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class WagtailRedirectsAppConfig(AppConfig): + name = 'wagtail.wagtailredirects' + label = 'wagtailredirects' + verbose_name = "Wagtail redirects" diff --git a/wagtail/wagtailredirects/locale/bg/LC_MESSAGES/django.mo b/wagtail/wagtailredirects/locale/bg/LC_MESSAGES/django.mo index 17da54257..ed66755d4 100644 Binary files a/wagtail/wagtailredirects/locale/bg/LC_MESSAGES/django.mo and b/wagtail/wagtailredirects/locale/bg/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailredirects/locale/bg/LC_MESSAGES/django.po b/wagtail/wagtailredirects/locale/bg/LC_MESSAGES/django.po index 11ee5d379..d71562352 100644 --- a/wagtail/wagtailredirects/locale/bg/LC_MESSAGES/django.po +++ b/wagtail/wagtailredirects/locale/bg/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 21:12+0000\n" "Last-Translator: serafeim \n" "Language-Team: Bulgarian (http://www.transifex.com/projects/p/wagtail/" @@ -69,7 +69,7 @@ msgstr "Пренасочването '{0}' добавено." msgid "The redirect could not be created due to errors." msgstr "Пренасочването не можеше да бъде създадено поради грешки." -#: wagtail_hooks.py:23 templates/wagtailredirects/index.html:3 +#: wagtail_hooks.py:25 templates/wagtailredirects/index.html:3 #: templates/wagtailredirects/index.html:17 msgid "Redirects" msgstr "Пренасочвания" diff --git a/wagtail/wagtailredirects/locale/ca/LC_MESSAGES/django.mo b/wagtail/wagtailredirects/locale/ca/LC_MESSAGES/django.mo index a9543f66d..0f1661705 100644 Binary files a/wagtail/wagtailredirects/locale/ca/LC_MESSAGES/django.mo and b/wagtail/wagtailredirects/locale/ca/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailredirects/locale/ca/LC_MESSAGES/django.po b/wagtail/wagtailredirects/locale/ca/LC_MESSAGES/django.po index 53882f99c..a8d2096c7 100644 --- a/wagtail/wagtailredirects/locale/ca/LC_MESSAGES/django.po +++ b/wagtail/wagtailredirects/locale/ca/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 21:59+0000\n" "Last-Translator: Lloople \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/wagtail/language/" @@ -69,7 +69,7 @@ msgstr "Redireccionament '{0}' afegit." msgid "The redirect could not be created due to errors." msgstr "No s'ha pogut crear el redireccionament." -#: wagtail_hooks.py:23 templates/wagtailredirects/index.html:3 +#: wagtail_hooks.py:25 templates/wagtailredirects/index.html:3 #: templates/wagtailredirects/index.html:17 msgid "Redirects" msgstr "Redireccions" diff --git a/wagtail/wagtailredirects/locale/de/LC_MESSAGES/django.mo b/wagtail/wagtailredirects/locale/de/LC_MESSAGES/django.mo index a698340c8..26f329cbd 100644 Binary files a/wagtail/wagtailredirects/locale/de/LC_MESSAGES/django.mo and b/wagtail/wagtailredirects/locale/de/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailredirects/locale/de/LC_MESSAGES/django.po b/wagtail/wagtailredirects/locale/de/LC_MESSAGES/django.po index b0937da4b..5fc9ef1f2 100644 --- a/wagtail/wagtailredirects/locale/de/LC_MESSAGES/django.po +++ b/wagtail/wagtailredirects/locale/de/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-24 19:01+0000\n" "Last-Translator: pcraston \n" "Language-Team: German (http://www.transifex.com/projects/p/wagtail/language/" @@ -71,7 +71,7 @@ msgstr "Weiterleitung '{0}' hinzugefügt." msgid "The redirect could not be created due to errors." msgstr "Aufgrund von Fehlern konnte die Weiterleitung nicht erstellt werden." -#: wagtail_hooks.py:23 templates/wagtailredirects/index.html:3 +#: wagtail_hooks.py:25 templates/wagtailredirects/index.html:3 #: templates/wagtailredirects/index.html:17 msgid "Redirects" msgstr "Weiterleitungen" diff --git a/wagtail/wagtailredirects/locale/el/LC_MESSAGES/django.mo b/wagtail/wagtailredirects/locale/el/LC_MESSAGES/django.mo index a7530f4bf..0fa55a9fc 100644 Binary files a/wagtail/wagtailredirects/locale/el/LC_MESSAGES/django.mo and b/wagtail/wagtailredirects/locale/el/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailredirects/locale/el/LC_MESSAGES/django.po b/wagtail/wagtailredirects/locale/el/LC_MESSAGES/django.po index a20fde9f9..fe30e4b65 100644 --- a/wagtail/wagtailredirects/locale/el/LC_MESSAGES/django.po +++ b/wagtail/wagtailredirects/locale/el/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 21:16+0000\n" "Last-Translator: serafeim \n" "Language-Team: Greek (http://www.transifex.com/projects/p/wagtail/language/" @@ -69,7 +69,7 @@ msgstr "Η ανακατεύθυνση '{0}' προστέθηκε." msgid "The redirect could not be created due to errors." msgstr "Δεν ήταν δυνατή η δημιουργία της ανακατεύθυνσης." -#: wagtail_hooks.py:23 templates/wagtailredirects/index.html:3 +#: wagtail_hooks.py:25 templates/wagtailredirects/index.html:3 #: templates/wagtailredirects/index.html:17 msgid "Redirects" msgstr "Ανακατευθύνει" diff --git a/wagtail/wagtailredirects/locale/en/LC_MESSAGES/django.mo b/wagtail/wagtailredirects/locale/en/LC_MESSAGES/django.mo index 44e531ab0..bc5cb1688 100644 Binary files a/wagtail/wagtailredirects/locale/en/LC_MESSAGES/django.mo and b/wagtail/wagtailredirects/locale/en/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailredirects/locale/en/LC_MESSAGES/django.po b/wagtail/wagtailredirects/locale/en/LC_MESSAGES/django.po index 6a3b4fc05..5082c09cf 100644 --- a/wagtail/wagtailredirects/locale/en/LC_MESSAGES/django.po +++ b/wagtail/wagtailredirects/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -63,7 +63,7 @@ msgstr "" msgid "The redirect could not be created due to errors." msgstr "" -#: wagtail_hooks.py:23 templates/wagtailredirects/index.html:3 +#: wagtail_hooks.py:25 templates/wagtailredirects/index.html:3 #: templates/wagtailredirects/index.html:17 msgid "Redirects" msgstr "" diff --git a/wagtail/wagtailredirects/locale/es/LC_MESSAGES/django.mo b/wagtail/wagtailredirects/locale/es/LC_MESSAGES/django.mo index ef1d3a7bf..edcc7381b 100644 Binary files a/wagtail/wagtailredirects/locale/es/LC_MESSAGES/django.mo and b/wagtail/wagtailredirects/locale/es/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailredirects/locale/es/LC_MESSAGES/django.po b/wagtail/wagtailredirects/locale/es/LC_MESSAGES/django.po index 5eae66a50..771da3bd9 100644 --- a/wagtail/wagtailredirects/locale/es/LC_MESSAGES/django.po +++ b/wagtail/wagtailredirects/locale/es/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-23 10:21+0000\n" "Last-Translator: fooflare \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/wagtail/language/" @@ -70,7 +70,7 @@ msgstr "Redirección '{0}' añadida." msgid "The redirect could not be created due to errors." msgstr "La redirección no puede ser creada debido a errores." -#: wagtail_hooks.py:23 templates/wagtailredirects/index.html:3 +#: wagtail_hooks.py:25 templates/wagtailredirects/index.html:3 #: templates/wagtailredirects/index.html:17 msgid "Redirects" msgstr "Redirecciona" diff --git a/wagtail/wagtailredirects/locale/eu/LC_MESSAGES/django.mo b/wagtail/wagtailredirects/locale/eu/LC_MESSAGES/django.mo index 059c50fbc..57d9c5ada 100644 Binary files a/wagtail/wagtailredirects/locale/eu/LC_MESSAGES/django.mo and b/wagtail/wagtailredirects/locale/eu/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailredirects/locale/eu/LC_MESSAGES/django.po b/wagtail/wagtailredirects/locale/eu/LC_MESSAGES/django.po index f2336f56b..6e33ea901 100644 --- a/wagtail/wagtailredirects/locale/eu/LC_MESSAGES/django.po +++ b/wagtail/wagtailredirects/locale/eu/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 21:12+0000\n" "Last-Translator: serafeim \n" "Language-Team: Basque (http://www.transifex.com/projects/p/wagtail/language/" @@ -64,7 +64,7 @@ msgstr "" msgid "The redirect could not be created due to errors." msgstr "" -#: wagtail_hooks.py:23 templates/wagtailredirects/index.html:3 +#: wagtail_hooks.py:25 templates/wagtailredirects/index.html:3 #: templates/wagtailredirects/index.html:17 msgid "Redirects" msgstr "" diff --git a/wagtail/wagtailredirects/locale/fr/LC_MESSAGES/django.mo b/wagtail/wagtailredirects/locale/fr/LC_MESSAGES/django.mo index 5cc019daf..83f4da26e 100644 Binary files a/wagtail/wagtailredirects/locale/fr/LC_MESSAGES/django.mo and b/wagtail/wagtailredirects/locale/fr/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailredirects/locale/fr/LC_MESSAGES/django.po b/wagtail/wagtailredirects/locale/fr/LC_MESSAGES/django.po index a88294e24..cab6b869a 100644 --- a/wagtail/wagtailredirects/locale/fr/LC_MESSAGES/django.po +++ b/wagtail/wagtailredirects/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-18 23:07+0000\n" "Last-Translator: nahuel\n" "Language-Team: French (http://www.transifex.com/projects/p/wagtail/language/" @@ -69,7 +69,7 @@ msgstr "Redirection '{0} ajoutée." msgid "The redirect could not be created due to errors." msgstr "La redirection ne peut être créé du fait d'erreurs." -#: wagtail_hooks.py:23 templates/wagtailredirects/index.html:3 +#: wagtail_hooks.py:25 templates/wagtailredirects/index.html:3 #: templates/wagtailredirects/index.html:17 msgid "Redirects" msgstr "Redirections" diff --git a/wagtail/wagtailredirects/locale/gl/LC_MESSAGES/django.mo b/wagtail/wagtailredirects/locale/gl/LC_MESSAGES/django.mo index 0417c9ae8..0715932ef 100644 Binary files a/wagtail/wagtailredirects/locale/gl/LC_MESSAGES/django.mo and b/wagtail/wagtailredirects/locale/gl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailredirects/locale/gl/LC_MESSAGES/django.po b/wagtail/wagtailredirects/locale/gl/LC_MESSAGES/django.po index a0a877ef8..4eaddaed3 100644 --- a/wagtail/wagtailredirects/locale/gl/LC_MESSAGES/django.po +++ b/wagtail/wagtailredirects/locale/gl/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-23 10:32+0000\n" "Last-Translator: fooflare \n" "Language-Team: Galician (http://www.transifex.com/projects/p/wagtail/" @@ -70,7 +70,7 @@ msgstr "Redirección '{0}' engadida." msgid "The redirect could not be created due to errors." msgstr "A redirección non pede ser creada debido a erros." -#: wagtail_hooks.py:23 templates/wagtailredirects/index.html:3 +#: wagtail_hooks.py:25 templates/wagtailredirects/index.html:3 #: templates/wagtailredirects/index.html:17 msgid "Redirects" msgstr "Redirecciona" diff --git a/wagtail/wagtailredirects/locale/mn/LC_MESSAGES/django.mo b/wagtail/wagtailredirects/locale/mn/LC_MESSAGES/django.mo index a610b6cd7..5050d16e2 100644 Binary files a/wagtail/wagtailredirects/locale/mn/LC_MESSAGES/django.mo and b/wagtail/wagtailredirects/locale/mn/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailredirects/locale/mn/LC_MESSAGES/django.po b/wagtail/wagtailredirects/locale/mn/LC_MESSAGES/django.po index 8fe2a3670..e402c7233 100644 --- a/wagtail/wagtailredirects/locale/mn/LC_MESSAGES/django.po +++ b/wagtail/wagtailredirects/locale/mn/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 21:12+0000\n" "Last-Translator: serafeim \n" "Language-Team: Mongolian (http://www.transifex.com/projects/p/wagtail/" @@ -64,7 +64,7 @@ msgstr "" msgid "The redirect could not be created due to errors." msgstr "" -#: wagtail_hooks.py:23 templates/wagtailredirects/index.html:3 +#: wagtail_hooks.py:25 templates/wagtailredirects/index.html:3 #: templates/wagtailredirects/index.html:17 msgid "Redirects" msgstr "" diff --git a/wagtail/wagtailredirects/locale/pl/LC_MESSAGES/django.mo b/wagtail/wagtailredirects/locale/pl/LC_MESSAGES/django.mo index c499702f0..99a266893 100644 Binary files a/wagtail/wagtailredirects/locale/pl/LC_MESSAGES/django.mo and b/wagtail/wagtailredirects/locale/pl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailredirects/locale/pl/LC_MESSAGES/django.po b/wagtail/wagtailredirects/locale/pl/LC_MESSAGES/django.po index 5a89ebb3f..eaa243324 100644 --- a/wagtail/wagtailredirects/locale/pl/LC_MESSAGES/django.po +++ b/wagtail/wagtailredirects/locale/pl/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 22:16+0000\n" "Last-Translator: utek \n" "Language-Team: Polish (http://www.transifex.com/projects/p/wagtail/language/" @@ -70,7 +70,7 @@ msgstr "Dodano przekierowanie '{0}'." msgid "The redirect could not be created due to errors." msgstr "Przekierowanie nie mogło zostać stworzone z powodu błędów." -#: wagtail_hooks.py:23 templates/wagtailredirects/index.html:3 +#: wagtail_hooks.py:25 templates/wagtailredirects/index.html:3 #: templates/wagtailredirects/index.html:17 msgid "Redirects" msgstr "Przekierowania" diff --git a/wagtail/wagtailredirects/locale/pt_BR/LC_MESSAGES/django.mo b/wagtail/wagtailredirects/locale/pt_BR/LC_MESSAGES/django.mo new file mode 100644 index 000000000..8c4bb89e9 Binary files /dev/null and b/wagtail/wagtailredirects/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailredirects/locale/pt_BR/LC_MESSAGES/django.po b/wagtail/wagtailredirects/locale/pt_BR/LC_MESSAGES/django.po new file mode 100644 index 000000000..8b366e7f2 --- /dev/null +++ b/wagtail/wagtailredirects/locale/pt_BR/LC_MESSAGES/django.po @@ -0,0 +1,157 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Thiago Cangussu , 2014 +# Gladson , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-17 01:17+0000\n" +"Last-Translator: Gladson \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/wagtail/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: models.py:10 +msgid "Redirect from" +msgstr "Redirecionar de" + +#: models.py:12 +msgid "Permanent" +msgstr "Permanente" + +#: models.py:12 +msgid "" +"Recommended. Permanent redirects ensure search engines forget the old page " +"(the 'Redirect from') and index the new page instead." +msgstr "Recomendado. Redirecionamento permanente garante que mecanismos de busca esqueçam a página antiga (o 'Redirecionar de') e criem um idex da página nova." + +#: models.py:13 +msgid "Redirect to a page" +msgstr "Redirecionar para a página" + +#: models.py:14 +msgid "Redirect to any URL" +msgstr "Redirecionar para qualquer URL" + +#: views.py:58 +msgid "Search redirects" +msgstr "Pesquisar redirecionamentos" + +#: views.py:71 +msgid "Redirect '{0}' updated." +msgstr "Redirecionar '{0}' atualizado." + +#: views.py:74 +msgid "The redirect could not be saved due to errors." +msgstr "O redirecionamento não pôde ser salvo devido a erros." + +#: views.py:92 +msgid "Redirect '{0}' deleted." +msgstr "Redirecionar '{0}' excluída." + +#: views.py:112 +msgid "Redirect '{0}' added." +msgstr "Redirecionar '{0}' adicionada." + +#: views.py:115 +msgid "The redirect could not be created due to errors." +msgstr "O redirecionamento não pode ser criado devido a erros." + +#: wagtail_hooks.py:25 templates/wagtailredirects/index.html:3 +#: templates/wagtailredirects/index.html:17 +msgid "Redirects" +msgstr "Redirecionamentos" + +#: templates/wagtailredirects/add.html:3 templates/wagtailredirects/add.html:6 +#: templates/wagtailredirects/index.html:18 +msgid "Add redirect" +msgstr "Add Redirecionamentos" + +#: templates/wagtailredirects/add.html:14 +#: templates/wagtailredirects/edit.html:14 +msgid "Save" +msgstr "Salvar" + +#: templates/wagtailredirects/confirm_delete.html:4 +#, python-format +msgid "Delete redirect %(title)s" +msgstr "Excluir redirecionamento %(title)s" + +#: templates/wagtailredirects/confirm_delete.html:6 +msgid "Delete" +msgstr "Excluir" + +#: templates/wagtailredirects/confirm_delete.html:10 +msgid "Are you sure you want to delete this redirect?" +msgstr "Você tem certeza que deseja excluir esse redirecionamento?" + +#: templates/wagtailredirects/confirm_delete.html:13 +msgid "Yes, delete" +msgstr "Sim, exclua" + +#: templates/wagtailredirects/edit.html:4 +#, python-format +msgid "Editing %(title)s" +msgstr "Editando %(title)s" + +#: templates/wagtailredirects/edit.html:6 +msgid "Editing" +msgstr "Editando" + +#: templates/wagtailredirects/edit.html:15 +msgid "Delete redirect" +msgstr "Excluir redirecionamento" + +#: templates/wagtailredirects/list.html:11 +#: templates/wagtailredirects/list.html:14 +msgid "From" +msgstr "De" + +#: templates/wagtailredirects/list.html:17 +msgid "To" +msgstr "Para" + +#: templates/wagtailredirects/list.html:18 +msgid "Type" +msgstr "Tipo" + +#: templates/wagtailredirects/list.html:25 +msgid "Edit this redirect" +msgstr "Edite esse redirecionamento" + +#: templates/wagtailredirects/list.html:34 +msgid "primary" +msgstr "primário" + +#: templates/wagtailredirects/results.html:5 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "\n Há um resultado\n " +msgstr[1] "\n Há %(counter)s resultados\n " + +#: templates/wagtailredirects/results.html:18 +#, python-format +msgid "Sorry, no redirects match \"%(query_string)s\"" +msgstr "Desculpe, nenhum resultado de redirecionamento \"%(query_string)s\"" + +#: templates/wagtailredirects/results.html:21 +#, python-format +msgid "" +"No redirects have been created. Why not add one?" +msgstr "Não há redirecionamentos criados. Por que não foi adicionado?" diff --git a/wagtail/wagtailredirects/locale/pt_PT/LC_MESSAGES/django.mo b/wagtail/wagtailredirects/locale/pt_PT/LC_MESSAGES/django.mo new file mode 100644 index 000000000..1a9524dbc Binary files /dev/null and b/wagtail/wagtailredirects/locale/pt_PT/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailredirects/locale/pt_PT/LC_MESSAGES/django.po b/wagtail/wagtailredirects/locale/pt_PT/LC_MESSAGES/django.po new file mode 100644 index 000000000..5b1fe5ecd --- /dev/null +++ b/wagtail/wagtailredirects/locale/pt_PT/LC_MESSAGES/django.po @@ -0,0 +1,169 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Thiago Cangussu , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail 0.5.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-03 01:56+0100\n" +"Last-Translator: Jose Lourenco \n" +"Language-Team: \n" +"Language: pt_PT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: models.py:10 +msgid "Redirect from" +msgstr "Redirecionar de" + +#: models.py:12 +msgid "Permanent" +msgstr "Permanente" + +#: models.py:12 +msgid "" +"Recommended. Permanent redirects ensure search engines forget the old page " +"(the 'Redirect from') and index the new page instead." +msgstr "" +"Recomendado. Redirecionamentos permanentes garantem que os motores de busca " +"esqueçam a página antiga (o 'Redirecionar de') e indexem a nova página." + +#: models.py:13 +msgid "Redirect to a page" +msgstr "Redirecionar para uma página" + +#: models.py:14 +msgid "Redirect to any URL" +msgstr "Redirecionar para qualquer URL" + +#: views.py:58 +msgid "Search redirects" +msgstr "Procurar redireções" + +#: views.py:71 +msgid "Redirect '{0}' updated." +msgstr "Redireção '{0}' atualizada." + +#: views.py:74 +msgid "The redirect could not be saved due to errors." +msgstr "A redireção não pôde ser guardada devido a erros." + +#: views.py:92 +msgid "Redirect '{0}' deleted." +msgstr "Redireção '{0}' eliminada." + +#: views.py:112 +msgid "Redirect '{0}' added." +msgstr "Redireção '{0}' adicionada." + +#: views.py:115 +msgid "The redirect could not be created due to errors." +msgstr "A redireção não pôde ser criada devido a erros." + +#: wagtail_hooks.py:25 templates/wagtailredirects/index.html:3 +#: templates/wagtailredirects/index.html:17 +msgid "Redirects" +msgstr "Redireções" + +#: templates/wagtailredirects/add.html:3 templates/wagtailredirects/add.html:6 +#: templates/wagtailredirects/index.html:18 +msgid "Add redirect" +msgstr "Adicionar redireção" + +#: templates/wagtailredirects/add.html:14 +#: templates/wagtailredirects/edit.html:14 +msgid "Save" +msgstr "Guardar" + +#: templates/wagtailredirects/confirm_delete.html:4 +#, python-format +msgid "Delete redirect %(title)s" +msgstr "Eliminar redireção %(title)s" + +#: templates/wagtailredirects/confirm_delete.html:6 +msgid "Delete" +msgstr "Eliminar" + +#: templates/wagtailredirects/confirm_delete.html:10 +msgid "Are you sure you want to delete this redirect?" +msgstr "Tem a certeza que pretende eliminar esta redireção?" + +#: templates/wagtailredirects/confirm_delete.html:13 +msgid "Yes, delete" +msgstr "Sim, eliminar" + +#: templates/wagtailredirects/edit.html:4 +#, python-format +msgid "Editing %(title)s" +msgstr "Editando %(title)s" + +#: templates/wagtailredirects/edit.html:6 +msgid "Editing" +msgstr "Editando" + +#: templates/wagtailredirects/edit.html:15 +msgid "Delete redirect" +msgstr "Eliminar redireção" + +#: templates/wagtailredirects/list.html:11 +#: templates/wagtailredirects/list.html:14 +msgid "From" +msgstr "De" + +#: templates/wagtailredirects/list.html:17 +msgid "To" +msgstr "Para" + +#: templates/wagtailredirects/list.html:18 +msgid "Type" +msgstr "Tipo" + +#: templates/wagtailredirects/list.html:25 +msgid "Edit this redirect" +msgstr "Editar esta redireção" + +#: templates/wagtailredirects/list.html:34 +msgid "primary" +msgstr "principal" + +#: templates/wagtailredirects/results.html:5 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "" +"\n" +" Existe uma correspondência\n" +" " +msgstr[1] "" +"\n" +" Existem %(counter)s correspondências\n" +" " + +#: templates/wagtailredirects/results.html:18 +#, python-format +msgid "Sorry, no redirects match \"%(query_string)s\"" +msgstr "" +"Desculpe, nenhuma redireção corresponde a \"%(query_string)s\"" + +#: templates/wagtailredirects/results.html:21 +#, python-format +msgid "" +"No redirects have been created. Why not add one?" +msgstr "" +"Nenhuma redireção foi criada. Porque não adicionar uma?" diff --git a/wagtail/wagtailredirects/locale/ro/LC_MESSAGES/django.mo b/wagtail/wagtailredirects/locale/ro/LC_MESSAGES/django.mo index aa780a3b0..ab6b8deb4 100644 Binary files a/wagtail/wagtailredirects/locale/ro/LC_MESSAGES/django.mo and b/wagtail/wagtailredirects/locale/ro/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailredirects/locale/ro/LC_MESSAGES/django.po b/wagtail/wagtailredirects/locale/ro/LC_MESSAGES/django.po index f248a3e8f..670eb96f2 100644 --- a/wagtail/wagtailredirects/locale/ro/LC_MESSAGES/django.po +++ b/wagtail/wagtailredirects/locale/ro/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-18 13:21+0000\n" "Last-Translator: zerolab\n" "Language-Team: Romanian (http://www.transifex.com/projects/p/wagtail/" @@ -69,7 +69,7 @@ msgstr "Redirecționarea '{0}' a fost adăugată." msgid "The redirect could not be created due to errors." msgstr "Redirecționarea nu a fost creată din cauza erorilor." -#: wagtail_hooks.py:23 templates/wagtailredirects/index.html:3 +#: wagtail_hooks.py:25 templates/wagtailredirects/index.html:3 #: templates/wagtailredirects/index.html:17 msgid "Redirects" msgstr "Redirecționări" diff --git a/wagtail/wagtailredirects/locale/ru/LC_MESSAGES/django.mo b/wagtail/wagtailredirects/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 000000000..f3506b42e Binary files /dev/null and b/wagtail/wagtailredirects/locale/ru/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailredirects/locale/ru/LC_MESSAGES/django.po b/wagtail/wagtailredirects/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 000000000..2fb79bf71 --- /dev/null +++ b/wagtail/wagtailredirects/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,157 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# HNKNTA , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-07-14 14:56+0000\n" +"Last-Translator: Karl Hobley \n" +"Language-Team: Russian (http://www.transifex.com/projects/p/wagtail/language/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: models.py:10 +msgid "Redirect from" +msgstr "Перенаправить от" + +#: models.py:12 +msgid "Permanent" +msgstr "" + +#: models.py:12 +msgid "" +"Recommended. Permanent redirects ensure search engines forget the old page " +"(the 'Redirect from') and index the new page instead." +msgstr "" + +#: models.py:13 +msgid "Redirect to a page" +msgstr "Перенаправить на страницу" + +#: models.py:14 +msgid "Redirect to any URL" +msgstr "Перенаправить к любому URL" + +#: views.py:58 +msgid "Search redirects" +msgstr "" + +#: views.py:71 +msgid "Redirect '{0}' updated." +msgstr "Перенаправление '{0}' обновлено." + +#: views.py:74 +msgid "The redirect could not be saved due to errors." +msgstr "" + +#: views.py:92 +msgid "Redirect '{0}' deleted." +msgstr "" + +#: views.py:112 +msgid "Redirect '{0}' added." +msgstr "" + +#: views.py:115 +msgid "The redirect could not be created due to errors." +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailredirects/index.html:3 +#: templates/wagtailredirects/index.html:17 +msgid "Redirects" +msgstr "Перенаправления" + +#: templates/wagtailredirects/add.html:3 templates/wagtailredirects/add.html:6 +#: templates/wagtailredirects/index.html:18 +msgid "Add redirect" +msgstr "" + +#: templates/wagtailredirects/add.html:14 +#: templates/wagtailredirects/edit.html:14 +msgid "Save" +msgstr "Сохранить" + +#: templates/wagtailredirects/confirm_delete.html:4 +#, python-format +msgid "Delete redirect %(title)s" +msgstr "" + +#: templates/wagtailredirects/confirm_delete.html:6 +msgid "Delete" +msgstr "Удалить" + +#: templates/wagtailredirects/confirm_delete.html:10 +msgid "Are you sure you want to delete this redirect?" +msgstr "" + +#: templates/wagtailredirects/confirm_delete.html:13 +msgid "Yes, delete" +msgstr "Да, удалить" + +#: templates/wagtailredirects/edit.html:4 +#, python-format +msgid "Editing %(title)s" +msgstr "" + +#: templates/wagtailredirects/edit.html:6 +msgid "Editing" +msgstr "Редактирование" + +#: templates/wagtailredirects/edit.html:15 +msgid "Delete redirect" +msgstr "" + +#: templates/wagtailredirects/list.html:11 +#: templates/wagtailredirects/list.html:14 +msgid "From" +msgstr "" + +#: templates/wagtailredirects/list.html:17 +msgid "To" +msgstr "На" + +#: templates/wagtailredirects/list.html:18 +msgid "Type" +msgstr "" + +#: templates/wagtailredirects/list.html:25 +msgid "Edit this redirect" +msgstr "Редактировать это перенаправление" + +#: templates/wagtailredirects/list.html:34 +msgid "primary" +msgstr "" + +#: templates/wagtailredirects/results.html:5 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/wagtailredirects/results.html:18 +#, python-format +msgid "Sorry, no redirects match \"%(query_string)s\"" +msgstr "" + +#: templates/wagtailredirects/results.html:21 +#, python-format +msgid "" +"No redirects have been created. Why not add one?" +msgstr "" diff --git a/wagtail/wagtailredirects/locale/vi/LC_MESSAGES/django.mo b/wagtail/wagtailredirects/locale/vi/LC_MESSAGES/django.mo new file mode 100644 index 000000000..a05ec5e9b Binary files /dev/null and b/wagtail/wagtailredirects/locale/vi/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailredirects/locale/vi/LC_MESSAGES/django.po b/wagtail/wagtailredirects/locale/vi/LC_MESSAGES/django.po new file mode 100644 index 000000000..11293136d --- /dev/null +++ b/wagtail/wagtailredirects/locale/vi/LC_MESSAGES/django.po @@ -0,0 +1,154 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-07-14 14:56+0000\n" +"Last-Translator: Karl Hobley \n" +"Language-Team: Vietnamese (http://www.transifex.com/projects/p/wagtail/language/vi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: models.py:10 +msgid "Redirect from" +msgstr "" + +#: models.py:12 +msgid "Permanent" +msgstr "" + +#: models.py:12 +msgid "" +"Recommended. Permanent redirects ensure search engines forget the old page " +"(the 'Redirect from') and index the new page instead." +msgstr "" + +#: models.py:13 +msgid "Redirect to a page" +msgstr "" + +#: models.py:14 +msgid "Redirect to any URL" +msgstr "" + +#: views.py:58 +msgid "Search redirects" +msgstr "" + +#: views.py:71 +msgid "Redirect '{0}' updated." +msgstr "" + +#: views.py:74 +msgid "The redirect could not be saved due to errors." +msgstr "" + +#: views.py:92 +msgid "Redirect '{0}' deleted." +msgstr "" + +#: views.py:112 +msgid "Redirect '{0}' added." +msgstr "" + +#: views.py:115 +msgid "The redirect could not be created due to errors." +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailredirects/index.html:3 +#: templates/wagtailredirects/index.html:17 +msgid "Redirects" +msgstr "" + +#: templates/wagtailredirects/add.html:3 templates/wagtailredirects/add.html:6 +#: templates/wagtailredirects/index.html:18 +msgid "Add redirect" +msgstr "" + +#: templates/wagtailredirects/add.html:14 +#: templates/wagtailredirects/edit.html:14 +msgid "Save" +msgstr "" + +#: templates/wagtailredirects/confirm_delete.html:4 +#, python-format +msgid "Delete redirect %(title)s" +msgstr "" + +#: templates/wagtailredirects/confirm_delete.html:6 +msgid "Delete" +msgstr "" + +#: templates/wagtailredirects/confirm_delete.html:10 +msgid "Are you sure you want to delete this redirect?" +msgstr "" + +#: templates/wagtailredirects/confirm_delete.html:13 +msgid "Yes, delete" +msgstr "" + +#: templates/wagtailredirects/edit.html:4 +#, python-format +msgid "Editing %(title)s" +msgstr "" + +#: templates/wagtailredirects/edit.html:6 +msgid "Editing" +msgstr "" + +#: templates/wagtailredirects/edit.html:15 +msgid "Delete redirect" +msgstr "" + +#: templates/wagtailredirects/list.html:11 +#: templates/wagtailredirects/list.html:14 +msgid "From" +msgstr "" + +#: templates/wagtailredirects/list.html:17 +msgid "To" +msgstr "" + +#: templates/wagtailredirects/list.html:18 +msgid "Type" +msgstr "" + +#: templates/wagtailredirects/list.html:25 +msgid "Edit this redirect" +msgstr "" + +#: templates/wagtailredirects/list.html:34 +msgid "primary" +msgstr "" + +#: templates/wagtailredirects/results.html:5 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "" + +#: templates/wagtailredirects/results.html:18 +#, python-format +msgid "Sorry, no redirects match \"%(query_string)s\"" +msgstr "" + +#: templates/wagtailredirects/results.html:21 +#, python-format +msgid "" +"No redirects have been created. Why not add one?" +msgstr "" diff --git a/wagtail/wagtailredirects/locale/zh/LC_MESSAGES/django.mo b/wagtail/wagtailredirects/locale/zh/LC_MESSAGES/django.mo index 1f4c36355..4d188c852 100644 Binary files a/wagtail/wagtailredirects/locale/zh/LC_MESSAGES/django.mo and b/wagtail/wagtailredirects/locale/zh/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailredirects/locale/zh/LC_MESSAGES/django.po b/wagtail/wagtailredirects/locale/zh/LC_MESSAGES/django.po index 7b7787add..bee6e5d6e 100644 --- a/wagtail/wagtailredirects/locale/zh/LC_MESSAGES/django.po +++ b/wagtail/wagtailredirects/locale/zh/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 21:12+0000\n" "Last-Translator: serafeim \n" "Language-Team: Chinese (http://www.transifex.com/projects/p/wagtail/language/" @@ -65,7 +65,7 @@ msgstr "转向 '{0}' 已添加" msgid "The redirect could not be created due to errors." msgstr "由于多个错误,转向设置无法创建。" -#: wagtail_hooks.py:23 templates/wagtailredirects/index.html:3 +#: wagtail_hooks.py:25 templates/wagtailredirects/index.html:3 #: templates/wagtailredirects/index.html:17 msgid "Redirects" msgstr "转向" diff --git a/wagtail/wagtailredirects/locale/zh_TW/LC_MESSAGES/django.mo b/wagtail/wagtailredirects/locale/zh_TW/LC_MESSAGES/django.mo index 22ccda07a..6c9a1c64d 100644 Binary files a/wagtail/wagtailredirects/locale/zh_TW/LC_MESSAGES/django.mo and b/wagtail/wagtailredirects/locale/zh_TW/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailredirects/locale/zh_TW/LC_MESSAGES/django.po b/wagtail/wagtailredirects/locale/zh_TW/LC_MESSAGES/django.po index 9c8175de3..7b3a0e141 100644 --- a/wagtail/wagtailredirects/locale/zh_TW/LC_MESSAGES/django.po +++ b/wagtail/wagtailredirects/locale/zh_TW/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 21:12+0000\n" "Last-Translator: wdv4758h \n" "Language-Team: \n" @@ -66,7 +66,7 @@ msgstr "重導向 '{0}' 已加入" msgid "The redirect could not be created due to errors." msgstr "重導向因有錯誤而無法建立。" -#: wagtail_hooks.py:23 templates/wagtailredirects/index.html:3 +#: wagtail_hooks.py:25 templates/wagtailredirects/index.html:3 #: templates/wagtailredirects/index.html:17 msgid "Redirects" msgstr "重導向" diff --git a/wagtail/wagtailredirects/migrations/0001_initial.py b/wagtail/wagtailredirects/migrations/0001_initial.py new file mode 100644 index 000000000..98289544d --- /dev/null +++ b/wagtail/wagtailredirects/migrations/0001_initial.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('wagtailcore', '0002_initial_data'), + ] + + operations = [ + migrations.CreateModel( + name='Redirect', + fields=[ + ('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)), + ('old_path', models.CharField(verbose_name='Redirect from', max_length=255, unique=True, db_index=True)), + ('is_permanent', models.BooleanField(verbose_name='Permanent', default=True, help_text="Recommended. Permanent redirects ensure search engines forget the old page (the 'Redirect from') and index the new page instead.")), + ('redirect_link', models.URLField(blank=True, verbose_name='Redirect to any URL')), + ('redirect_page', models.ForeignKey(blank=True, null=True, verbose_name='Redirect to a page', to='wagtailcore.Page')), + ('site', models.ForeignKey(blank=True, to='wagtailcore.Site', editable=False, null=True, related_name='redirects')), + ], + options={ + }, + bases=(models.Model,), + ), + ] diff --git a/wagtail/wagtailredirects/migrations/__init__.py b/wagtail/wagtailredirects/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/wagtail/wagtailredirects/wagtail_hooks.py b/wagtail/wagtailredirects/wagtail_hooks.py index 6da8a873a..e0f2333e3 100644 --- a/wagtail/wagtailredirects/wagtail_hooks.py +++ b/wagtail/wagtailredirects/wagtail_hooks.py @@ -15,10 +15,11 @@ def register_admin_urls(): ] -@hooks.register('construct_main_menu') -def construct_main_menu(request, menu_items): - # TEMPORARY: Only show if the user is a superuser - if request.user.is_superuser: - menu_items.append( - MenuItem(_('Redirects'), urlresolvers.reverse('wagtailredirects_index'), classnames='icon icon-redirect', order=800) - ) +class RedirectsMenuItem(MenuItem): + def is_shown(self, request): + # TEMPORARY: Only show if the user is a superuser + return request.user.is_superuser + +@hooks.register('register_admin_menu_item') +def register_redirects_menu_item(): + return RedirectsMenuItem(_('Redirects'), urlresolvers.reverse('wagtailredirects_index'), classnames='icon icon-redirect', order=800) diff --git a/wagtail/wagtailsearch/__init__.py b/wagtail/wagtailsearch/__init__.py index e69de29bb..ac4f1278a 100644 --- a/wagtail/wagtailsearch/__init__.py +++ b/wagtail/wagtailsearch/__init__.py @@ -0,0 +1 @@ +default_app_config = 'wagtail.wagtailsearch.apps.WagtailSearchAppConfig' diff --git a/wagtail/wagtailsearch/apps.py b/wagtail/wagtailsearch/apps.py new file mode 100644 index 000000000..e3b07c721 --- /dev/null +++ b/wagtail/wagtailsearch/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class WagtailSearchAppConfig(AppConfig): + name = 'wagtail.wagtailsearch' + label = 'wagtailsearch' + verbose_name = "Wagtail search" diff --git a/wagtail/wagtailsearch/backends/__init__.py b/wagtail/wagtailsearch/backends/__init__.py index cf33cf5c1..a06f7a4f8 100644 --- a/wagtail/wagtailsearch/backends/__init__.py +++ b/wagtail/wagtailsearch/backends/__init__.py @@ -80,3 +80,11 @@ def get_search_backend(backend='default', **kwargs): # Create backend return backend_cls(params) + + +def get_search_backends(): + if hasattr(settings, 'WAGTAILSEARCH_BACKENDS'): + for backend in settings.WAGTAILSEARCH_BACKENDS.keys(): + yield get_search_backend(backend) + else: + yield get_search_backend('default') diff --git a/wagtail/wagtailsearch/backends/base.py b/wagtail/wagtailsearch/backends/base.py index 82e2e8d56..1928a7bbe 100644 --- a/wagtail/wagtailsearch/backends/base.py +++ b/wagtail/wagtailsearch/backends/base.py @@ -2,7 +2,7 @@ from django.db import models from django.db.models.query import QuerySet from django.core.exceptions import ImproperlyConfigured -from wagtail.wagtailsearch.indexed import Indexed +from wagtail.wagtailsearch.index import Indexed from wagtail.wagtailsearch.utils import normalise_query_string diff --git a/wagtail/wagtailsearch/backends/db.py b/wagtail/wagtailsearch/backends/db.py index a94fe3c58..3f7e64f42 100644 --- a/wagtail/wagtailsearch/backends/db.py +++ b/wagtail/wagtailsearch/backends/db.py @@ -1,7 +1,6 @@ from django.db import models from wagtail.wagtailsearch.backends.base import BaseSearch -from wagtail.wagtailsearch.indexed import Indexed class DBSearch(BaseSearch): diff --git a/wagtail/wagtailsearch/backends/elasticsearch.py b/wagtail/wagtailsearch/backends/elasticsearch.py index 8f8a78dbb..ae2a07822 100644 --- a/wagtail/wagtailsearch/backends/elasticsearch.py +++ b/wagtail/wagtailsearch/backends/elasticsearch.py @@ -5,13 +5,19 @@ import json from six.moves.urllib.parse import urlparse from django.db import models -from django.db.models.sql.where import SubqueryConstraint +from django.db.models.sql.where import SubqueryConstraint, WhereNode + +# Django 1.7 lookups +try: + from django.db.models.lookups import Lookup +except ImportError: + Lookup = None from elasticsearch import Elasticsearch, NotFoundError, RequestError from elasticsearch.helpers import bulk from wagtail.wagtailsearch.backends.base import BaseSearch -from wagtail.wagtailsearch.indexed import Indexed, SearchField, FilterField +from wagtail.wagtailsearch.index import Indexed, SearchField, FilterField class ElasticSearchMapping(object): @@ -125,118 +131,133 @@ class ElasticSearchQuery(object): self.query_string = query_string self.fields = fields + def _process_lookup(self, field_attname, lookup, value): + # Get field + field = dict( + (field.get_attname(self.queryset.model), field) + for field in self.queryset.model.get_filterable_search_fields() + ).get(field_attname, None) + + # Give error if the field doesn't exist + if field is None: + raise FieldError('Cannot filter ElasticSearch results with field "' + field_name + '". Please add FilterField(\'' + field_name + '\') to ' + self.queryset.model.__name__ + '.search_fields.') + + # Get the name of the field in the index + field_index_name = field.get_index_name(self.queryset.model) + + if lookup == 'exact': + if value is None: + return { + 'missing': { + 'field': field_index_name, + } + } + else: + return { + 'term': { + field_index_name: value, + } + } + + if lookup == 'isnull': + if value: + return { + 'missing': { + 'field': field_index_name, + } + } + else: + return { + 'not': { + 'missing': { + 'field': field_index_name, + } + } + } + + if lookup in ['startswith', 'prefix']: + return { + 'prefix': { + field_index_name: value, + } + } + + if lookup in ['gt', 'gte', 'lt', 'lte']: + return { + 'range': { + field_index_name: { + lookup: value, + } + } + } + + if lookup == 'range': + lower, upper = value + + return { + 'range': { + field_index_name: { + 'gte': lower, + 'lte': upper, + } + } + } + + if lookup == 'in': + return { + 'terms': { + field_index_name: value, + } + } + + raise FilterError('Could not apply filter on ElasticSearch results: "' + field_name + '__' + lookup + ' = ' + unicode(value) + '". Lookup "' + lookup + '"" not recognosed.') + def _get_filters_from_where(self, where_node): # Check if this is a leaf node - if isinstance(where_node, tuple): - field_name = where_node[0].col + if isinstance(where_node, tuple): # Django 1.6 and below + field_attname = where_node[0].col lookup = where_node[1] value = where_node[3] - # Get field - field = dict( - (field.get_attname(self.queryset.model), field) - for field in self.queryset.model.get_filterable_search_fields() - ).get(field_name, None) + # Process the filter + return self._process_lookup(field_attname, lookup, value) - # Give error if the field doesn't exist - if field is None: - raise FieldError('Cannot filter ElasticSearch results with field "' + field_name + '". Please add FilterField(\'' + field_name + '\') to ' + self.queryset.model.__name__ + '.search_fields.') + elif Lookup is not None and isinstance(where_node, Lookup): # Django 1.7 and above + field_attname = where_node.lhs.target.attname + lookup = where_node.lookup_name + value = where_node.rhs - # Get the name of the field in the index - field_index_name = field.get_index_name(self.queryset.model) + # Process the filter + return self._process_lookup(field_attname, lookup, value) - # Find lookup - if lookup == 'exact': - if value is None: - return { - 'missing': { - 'field': field_index_name, - } - } - else: - return { - 'term': { - field_index_name: value, - } - } - - if lookup == 'isnull': - if value: - return { - 'missing': { - 'field': field_index_name, - } - } - else: - return { - 'not': { - 'missing': { - 'field': field_index_name, - } - } - } - - if lookup in ['startswith', 'prefix']: - return { - 'prefix': { - field_index_name: value, - } - } - - if lookup in ['gt', 'gte', 'lt', 'lte']: - return { - 'range': { - field_index_name: { - lookup: value, - } - } - } - - if lookup == 'range': - lower, upper = value - - return { - 'range': { - field_index_name: { - 'gte': lower, - 'lte': upper, - } - } - } - - if lookup == 'in': - return { - 'terms': { - field_index_name: value, - } - } - - raise FilterError('Could not apply filter on ElasticSearch results: "' + field_name + '__' + lookup + ' = ' + unicode(value) + '". Lookup "' + lookup + '"" not recognosed.') elif isinstance(where_node, SubqueryConstraint): raise FilterError('Could not apply filter on ElasticSearch results: Subqueries are not allowed.') - # Get child filters - connector = where_node.connector - child_filters = [self._get_filters_from_where(child) for child in where_node.children] - child_filters = [child_filter for child_filter in child_filters if child_filter] + elif isinstance(where_node, WhereNode): + # Get child filters + connector = where_node.connector + child_filters = [self._get_filters_from_where(child) for child in where_node.children] + child_filters = [child_filter for child_filter in child_filters if child_filter] - # Connect them - if child_filters: - if len(child_filters) == 1: - filter_out = child_filters[0] - else: - filter_out = { - connector.lower(): [ - fil for fil in child_filters if fil is not None - ] - } + # Connect them + if child_filters: + if len(child_filters) == 1: + filter_out = child_filters[0] + else: + filter_out = { + connector.lower(): [ + fil for fil in child_filters if fil is not None + ] + } - if where_node.negated: - filter_out = { - 'not': filter_out - } + if where_node.negated: + filter_out = { + 'not': filter_out + } - return filter_out + return filter_out + else: + raise FilterError('Could not apply filter on ElasticSearch results: Unknown where node: ' + str(type(where_node))) def _get_filters(self): # Filters @@ -489,12 +510,12 @@ class ElasticSearch(BaseSearch): 'ngram_analyzer': { 'type': 'custom', 'tokenizer': 'lowercase', - 'filter': ['ngram'] + 'filter': ['asciifolding', 'ngram'] }, 'edgengram_analyzer': { 'type': 'custom', 'tokenizer': 'lowercase', - 'filter': ['edgengram'] + 'filter': ['asciifolding', 'edgengram'] } }, 'tokenizer': { diff --git a/wagtail/wagtailsearch/index.py b/wagtail/wagtailsearch/index.py new file mode 100644 index 000000000..82790c580 --- /dev/null +++ b/wagtail/wagtailsearch/index.py @@ -0,0 +1,110 @@ +import warnings + +from six import string_types + +from django.db import models + + +class Indexed(object): + @classmethod + def indexed_get_parent(cls, require_model=True): + for base in cls.__bases__: + if issubclass(base, Indexed) and (issubclass(base, models.Model) or require_model is False): + return base + + @classmethod + def indexed_get_content_type(cls): + # Work out content type + content_type = (cls._meta.app_label + '_' + cls.__name__).lower() + + # Get parent content type + parent = cls.indexed_get_parent() + if parent: + parent_content_type = parent.indexed_get_content_type() + return parent_content_type + '_' + content_type + else: + return content_type + + @classmethod + def indexed_get_toplevel_content_type(cls): + # Get parent content type + parent = cls.indexed_get_parent() + if parent: + return parent.indexed_get_content_type() + else: + # At toplevel, return this content type + return (cls._meta.app_label + '_' + cls.__name__).lower() + + @classmethod + def get_search_fields(cls): + return cls.search_fields + + @classmethod + def get_searchable_search_fields(cls): + return filter(lambda field: isinstance(field, SearchField), cls.get_search_fields()) + + @classmethod + def get_filterable_search_fields(cls): + return filter(lambda field: isinstance(field, FilterField), cls.get_search_fields()) + + @classmethod + def get_indexed_objects(cls): + return cls.objects.all() + + search_fields = () + + +class BaseField(object): + suffix = '' + + def __init__(self, field_name, **kwargs): + self.field_name = field_name + self.kwargs = kwargs + + def get_field(self, cls): + return cls._meta.get_field_by_name(self.field_name)[0] + + def get_attname(self, cls): + try: + field = self.get_field(cls) + return field.attname + except models.fields.FieldDoesNotExist: + return self.field_name + + def get_index_name(self, cls): + return self.get_attname(cls) + self.suffix + + def get_type(self, cls): + if 'type' in self.kwargs: + return self.kwargs['type'] + + try: + field = self.get_field(cls) + return field.get_internal_type() + except models.fields.FieldDoesNotExist: + return 'CharField' + + def get_value(self, obj): + try: + field = self.get_field(obj.__class__) + return field._get_val_from_obj(obj) + except models.fields.FieldDoesNotExist: + value = getattr(obj, self.field_name, None) + if hasattr(value, '__call__'): + value = value() + return value + + def __repr__(self): + return '<%s: %s>' % (self.__class__.__name__, self.field_name) + + +class SearchField(BaseField): + def __init__(self, field_name, boost=None, partial_match=False, **kwargs): + super(SearchField, self).__init__(field_name, **kwargs) + self.boost = boost + self.partial_match = partial_match + + +class FilterField(BaseField): + suffix = '_filter' + diff --git a/wagtail/wagtailsearch/indexed.py b/wagtail/wagtailsearch/indexed.py index e775ff5c7..4ff8e7ba0 100644 --- a/wagtail/wagtailsearch/indexed.py +++ b/wagtail/wagtailsearch/indexed.py @@ -1,182 +1,11 @@ import warnings -from six import string_types - -from django.db import models - -from wagtail.utils.deprecation import RemovedInWagtail06Warning +from wagtail.utils.deprecation import RemovedInWagtail08Warning -class Indexed(object): - @classmethod - def indexed_get_parent(cls, require_model=True): - for base in cls.__bases__: - if issubclass(base, Indexed) and (issubclass(base, models.Model) or require_model is False): - return base - - @classmethod - def indexed_get_content_type(cls): - # Work out content type - content_type = (cls._meta.app_label + '_' + cls.__name__).lower() - - # Get parent content type - parent = cls.indexed_get_parent() - if parent: - parent_content_type = parent.indexed_get_content_type() - return parent_content_type + '_' + content_type - else: - return content_type - - @classmethod - def indexed_get_toplevel_content_type(cls): - # Get parent content type - parent = cls.indexed_get_parent() - if parent: - return parent.indexed_get_content_type() - else: - # At toplevel, return this content type - return (cls._meta.app_label + '_' + cls.__name__).lower() - - @classmethod - def indexed_get_indexed_fields(cls): - # Get indexed fields for this class as dictionary - indexed_fields = cls.indexed_fields - if isinstance(indexed_fields, dict): - # Make sure we have a copy to prevent us accidentally changing the configuration - indexed_fields = indexed_fields.copy() - else: - # Convert to dict - if isinstance(indexed_fields, tuple): - indexed_fields = list(indexed_fields) - if isinstance(indexed_fields, string_types): - indexed_fields = [indexed_fields] - if isinstance(indexed_fields, list): - indexed_fields = dict((field, dict(type='string')) for field in indexed_fields) - if not isinstance(indexed_fields, dict): - raise ValueError() - - # Get indexed fields for parent class - parent = cls.indexed_get_parent(require_model=False) - if parent: - # Add parent fields into this list - parent_indexed_fields = parent.indexed_get_indexed_fields().copy() - parent_indexed_fields.update(indexed_fields) - indexed_fields = parent_indexed_fields - return indexed_fields - - @classmethod - def get_search_fields(cls): - search_fields = [] - - if hasattr(cls, 'search_fields'): - search_fields.extend(cls.search_fields) - - # Backwards compatibility with old indexed_fields setting - - # Get indexed fields - indexed_fields = cls.indexed_get_indexed_fields() - - # Display deprecation warning if indexed_fields has been used - if indexed_fields: - warnings.warn("'indexed_fields' setting is now deprecated." - "Use 'search_fields' instead.", RemovedInWagtail06Warning) - - # Convert them into search fields - for field_name, _config in indexed_fields.items(): - # Copy the config to prevent is trashing anything accidentally - config = _config.copy() - - # Check if this is a filter field - if config.get('index', None) == 'not_analyzed': - config.pop('index') - search_fields.append(FilterField(field_name, es_extra=config)) - continue - - # Must be a search field, check for boosting and partial matching - boost = config.pop('boost', None) - - partial_match = False - if config.get('analyzer', None) == 'edgengram_analyzer': - partial_match = True - config.pop('analyzer') - - # Add the field - search_fields.append(SearchField(field_name, boost=boost, partial_match=partial_match, es_extra=config)) - - # Remove any duplicate entries into search fields - # We need to take into account that fields can be indexed as both a SearchField and as a FilterField - search_fields_dict = {} - for field in search_fields: - search_fields_dict[(field.field_name, type(field))] = field - search_fields = search_fields_dict.values() - - return search_fields - - @classmethod - def get_searchable_search_fields(cls): - return filter(lambda field: isinstance(field, SearchField), cls.get_search_fields()) - - @classmethod - def get_filterable_search_fields(cls): - return filter(lambda field: isinstance(field, FilterField), cls.get_search_fields()) - - @classmethod - def get_indexed_objects(cls): - return cls.objects.all() - - indexed_fields = () +warnings.warn( + "The wagtail.wagtailsearch.indexed module has been renamed. " + "Use wagtail.wagtailsearch.index instead.", RemovedInWagtail08Warning) -class BaseField(object): - suffix = '' - - def __init__(self, field_name, **kwargs): - self.field_name = field_name - self.kwargs = kwargs - - def get_field(self, cls): - return cls._meta.get_field_by_name(self.field_name)[0] - - def get_attname(self, cls): - try: - field = self.get_field(cls) - return field.attname - except models.fields.FieldDoesNotExist: - return self.field_name - - def get_index_name(self, cls): - return self.get_attname(cls) + self.suffix - - def get_type(self, cls): - if 'type' in self.kwargs: - return self.kwargs['type'] - - try: - field = self.get_field(cls) - return field.get_internal_type() - except models.fields.FieldDoesNotExist: - return 'CharField' - - def get_value(self, obj): - try: - field = self.get_field(obj.__class__) - return field._get_val_from_obj(obj) - except models.fields.FieldDoesNotExist: - value = getattr(obj, self.field_name, None) - if hasattr(value, '__call__'): - value = value() - return value - - def __repr__(self): - return '<%s: %s>' % (self.__class__.__name__, self.field_name) - - -class SearchField(BaseField): - def __init__(self, field_name, boost=None, partial_match=False, **kwargs): - super(SearchField, self).__init__(field_name, **kwargs) - self.boost = boost - self.partial_match = partial_match - - -class FilterField(BaseField): - suffix = '_filter' +from .index import * diff --git a/wagtail/wagtailsearch/locale/bg/LC_MESSAGES/django.mo b/wagtail/wagtailsearch/locale/bg/LC_MESSAGES/django.mo index 8631753d8..5323e31af 100644 Binary files a/wagtail/wagtailsearch/locale/bg/LC_MESSAGES/django.mo and b/wagtail/wagtailsearch/locale/bg/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsearch/locale/bg/LC_MESSAGES/django.po b/wagtail/wagtailsearch/locale/bg/LC_MESSAGES/django.po index c63ffe52b..d67508bb8 100644 --- a/wagtail/wagtailsearch/locale/bg/LC_MESSAGES/django.po +++ b/wagtail/wagtailsearch/locale/bg/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Lyuboslav Petrov , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Bulgarian (http://www.transifex.com/projects/p/wagtail/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/projects/p/wagtail/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: forms.py:9 @@ -27,13 +28,16 @@ msgid "" "Enter the full search string to match. An \n" " exact match is required for your Editors Picks to be \n" " displayed, wildcards are NOT allowed." -msgstr "Въведете целият стринг. Точно \n съвпадение е нужно за вашите \"Избрано от Редактора\" \n да бъдат показани, като wildcards НЕ са позволени." +msgstr "" +"Въведете целият стринг. Точно \n" +" съвпадение е нужно за вашите \"Избрано от Редактора\" \n" +" да бъдат показани, като wildcards НЕ са позволени." #: forms.py:36 msgid "Please specify at least one recommendation for this search term." msgstr "" -#: wagtail_hooks.py:23 templates/wagtailsearch/editorspicks/list.html:9 +#: wagtail_hooks.py:25 templates/wagtailsearch/editorspicks/list.html:9 msgid "Editors picks" msgstr "Избрано от Редактора" @@ -45,14 +49,20 @@ msgstr "Добави \"Избрано от Редактора\"" #: templates/wagtailsearch/editorspicks/add.html:10 msgid "" "\n" -"

      Editors picks are a means of recommending specific pages that might not organically come high up in search results. E.g recommending your primary donation page to a user searching with a less common term like \"giving\".

      \n" +"

      Editors picks are a means of recommending specific pages " +"that might not organically come high up in search results. E.g recommending " +"your primary donation page to a user searching with a less common term like " +"\"giving\".

      \n" " " msgstr "" #: templates/wagtailsearch/editorspicks/add.html:13 msgid "" "\n" -"

      The \"Search term(s)/phrase\" field below must contain the full and exact search for which you wish to provide recommended results, including any misspellings/user error. To help, you can choose from search terms that have been popular with users of your site.

      \n" +"

      The \"Search term(s)/phrase\" field below must contain " +"the full and exact search for which you wish to provide recommended results, " +"including any misspellings/user error. To help, you can choose from " +"search terms that have been popular with users of your site.

      \n" " " msgstr "" @@ -73,9 +83,10 @@ msgid "Delete" msgstr "Изтрий" #: templates/wagtailsearch/editorspicks/confirm_delete.html:9 -msgid "" -"Are you sure you want to delete all editors picks for this search term?" -msgstr "Сигурен ли сте, че искате да изтриете всички \"Избрано от Редактора\" за тази ключова дума?" +msgid "Are you sure you want to delete all editors picks for this search term?" +msgstr "" +"Сигурен ли сте, че искате да изтриете всички \"Избрано от Редактора\" за " +"тази ключова дума?" #: templates/wagtailsearch/editorspicks/confirm_delete.html:12 msgid "Yes, delete" @@ -129,8 +140,14 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Има едно съвпадение\n " -msgstr[1] "\n Има %(counter)s съвпадения\n " +msgstr[0] "" +"\n" +" Има едно съвпадение\n" +" " +msgstr[1] "" +"\n" +" Има %(counter)s съвпадения\n" +" " #: templates/wagtailsearch/editorspicks/results.html:18 #, python-format @@ -140,8 +157,8 @@ msgstr "" #: templates/wagtailsearch/editorspicks/results.html:21 #, python-format msgid "" -"No editor's picks have been created. Why not add one?" +"No editor's picks have been created. Why not add one?" msgstr "" #: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:4 diff --git a/wagtail/wagtailsearch/locale/ca/LC_MESSAGES/django.mo b/wagtail/wagtailsearch/locale/ca/LC_MESSAGES/django.mo index 9eeb16af9..694623228 100644 Binary files a/wagtail/wagtailsearch/locale/ca/LC_MESSAGES/django.mo and b/wagtail/wagtailsearch/locale/ca/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsearch/locale/ca/LC_MESSAGES/django.po b/wagtail/wagtailsearch/locale/ca/LC_MESSAGES/django.po index 62deec3d6..e5ba8dc70 100644 --- a/wagtail/wagtailsearch/locale/ca/LC_MESSAGES/django.po +++ b/wagtail/wagtailsearch/locale/ca/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # David Llop , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Catalan (http://www.transifex.com/projects/p/wagtail/language/ca/)\n" +"Language-Team: Catalan (http://www.transifex.com/projects/p/wagtail/language/" +"ca/)\n" +"Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: forms.py:9 @@ -27,13 +28,17 @@ msgid "" "Enter the full search string to match. An \n" " exact match is required for your Editors Picks to be \n" " displayed, wildcards are NOT allowed." -msgstr "Escriu el text a cercar. Una\ncoincidència exacta és requerida per les teves seleccions dels editors per ser\nmostrades, les wildcars NO estan permeses." +msgstr "" +"Escriu el text a cercar. Una\n" +"coincidència exacta és requerida per les teves seleccions dels editors per " +"ser\n" +"mostrades, les wildcars NO estan permeses." #: forms.py:36 msgid "Please specify at least one recommendation for this search term." msgstr "" -#: wagtail_hooks.py:23 templates/wagtailsearch/editorspicks/list.html:9 +#: wagtail_hooks.py:25 templates/wagtailsearch/editorspicks/list.html:9 msgid "Editors picks" msgstr "Selecció dels editors" @@ -45,14 +50,20 @@ msgstr "afegeix selecció dels editors" #: templates/wagtailsearch/editorspicks/add.html:10 msgid "" "\n" -"

      Editors picks are a means of recommending specific pages that might not organically come high up in search results. E.g recommending your primary donation page to a user searching with a less common term like \"giving\".

      \n" +"

      Editors picks are a means of recommending specific pages " +"that might not organically come high up in search results. E.g recommending " +"your primary donation page to a user searching with a less common term like " +"\"giving\".

      \n" " " msgstr "" #: templates/wagtailsearch/editorspicks/add.html:13 msgid "" "\n" -"

      The \"Search term(s)/phrase\" field below must contain the full and exact search for which you wish to provide recommended results, including any misspellings/user error. To help, you can choose from search terms that have been popular with users of your site.

      \n" +"

      The \"Search term(s)/phrase\" field below must contain " +"the full and exact search for which you wish to provide recommended results, " +"including any misspellings/user error. To help, you can choose from " +"search terms that have been popular with users of your site.

      \n" " " msgstr "" @@ -73,9 +84,10 @@ msgid "Delete" msgstr "Esborra" #: templates/wagtailsearch/editorspicks/confirm_delete.html:9 -msgid "" -"Are you sure you want to delete all editors picks for this search term?" -msgstr "Estàs segur que vols esborrar totes les seleccions dels editors per aquest terme de cerca?" +msgid "Are you sure you want to delete all editors picks for this search term?" +msgstr "" +"Estàs segur que vols esborrar totes les seleccions dels editors per aquest " +"terme de cerca?" #: templates/wagtailsearch/editorspicks/confirm_delete.html:12 msgid "Yes, delete" @@ -129,20 +141,27 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\nHi ha una coincidència" -msgstr[1] "\nHi han %(counter)s coincidències" +msgstr[0] "" +"\n" +"Hi ha una coincidència" +msgstr[1] "" +"\n" +"Hi han %(counter)s coincidències" #: templates/wagtailsearch/editorspicks/results.html:18 #, python-format msgid "Sorry, no editor's picks match \"%(query_string)s\"" -msgstr "Ho sentim, cap selecció d'editor coincideix amb \"%(query_string)s\"" +msgstr "" +"Ho sentim, cap selecció d'editor coincideix amb \"%(query_string)s\"" #: templates/wagtailsearch/editorspicks/results.html:21 #, python-format msgid "" -"No editor's picks have been created. Why not add one?" -msgstr "Encara no s'ha creat cap selecció d'editor. Per què no afegeixes una?" +"No editor's picks have been created. Why not add one?" +msgstr "" +"Encara no s'ha creat cap selecció d'editor. Per què no afegeixes una?" #: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:4 msgid "Move up" diff --git a/wagtail/wagtailsearch/locale/de/LC_MESSAGES/django.mo b/wagtail/wagtailsearch/locale/de/LC_MESSAGES/django.mo index 51d4574f3..10f00f4f1 100644 Binary files a/wagtail/wagtailsearch/locale/de/LC_MESSAGES/django.mo and b/wagtail/wagtailsearch/locale/de/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsearch/locale/de/LC_MESSAGES/django.po b/wagtail/wagtailsearch/locale/de/LC_MESSAGES/django.po index a5bb2346f..45bb2951a 100644 --- a/wagtail/wagtailsearch/locale/de/LC_MESSAGES/django.po +++ b/wagtail/wagtailsearch/locale/de/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Johannes Spielmann , 2014 # pcraston , 2014 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: German (http://www.transifex.com/projects/p/wagtail/language/de/)\n" +"Language-Team: German (http://www.transifex.com/projects/p/wagtail/language/" +"de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: forms.py:9 @@ -28,13 +29,16 @@ msgid "" "Enter the full search string to match. An \n" " exact match is required for your Editors Picks to be \n" " displayed, wildcards are NOT allowed." -msgstr "Geben Sie den vollständigen Suchbegriff ein! Um Ihre Redaktionsempfehlungen anzuzeigen wird eine genaue Übereinstimmung benötigt. Wildcards sind NICHT erlaubt." +msgstr "" +"Geben Sie den vollständigen Suchbegriff ein! Um Ihre Redaktionsempfehlungen " +"anzuzeigen wird eine genaue Übereinstimmung benötigt. Wildcards sind NICHT " +"erlaubt." #: forms.py:36 msgid "Please specify at least one recommendation for this search term." msgstr "" -#: wagtail_hooks.py:23 templates/wagtailsearch/editorspicks/list.html:9 +#: wagtail_hooks.py:25 templates/wagtailsearch/editorspicks/list.html:9 msgid "Editors picks" msgstr "Redaktionsempfehlungen" @@ -46,14 +50,20 @@ msgstr "Redaktionsempfehlung hinzufügen" #: templates/wagtailsearch/editorspicks/add.html:10 msgid "" "\n" -"

      Editors picks are a means of recommending specific pages that might not organically come high up in search results. E.g recommending your primary donation page to a user searching with a less common term like \"giving\".

      \n" +"

      Editors picks are a means of recommending specific pages " +"that might not organically come high up in search results. E.g recommending " +"your primary donation page to a user searching with a less common term like " +"\"giving\".

      \n" " " msgstr "" #: templates/wagtailsearch/editorspicks/add.html:13 msgid "" "\n" -"

      The \"Search term(s)/phrase\" field below must contain the full and exact search for which you wish to provide recommended results, including any misspellings/user error. To help, you can choose from search terms that have been popular with users of your site.

      \n" +"

      The \"Search term(s)/phrase\" field below must contain " +"the full and exact search for which you wish to provide recommended results, " +"including any misspellings/user error. To help, you can choose from " +"search terms that have been popular with users of your site.

      \n" " " msgstr "" @@ -74,9 +84,10 @@ msgid "Delete" msgstr "Löschen" #: templates/wagtailsearch/editorspicks/confirm_delete.html:9 -msgid "" -"Are you sure you want to delete all editors picks for this search term?" -msgstr "Sind Sie sicher, dass Sie alle Redaktionsempfehlungen für diesen Suchbegriff löschen wollen?" +msgid "Are you sure you want to delete all editors picks for this search term?" +msgstr "" +"Sind Sie sicher, dass Sie alle Redaktionsempfehlungen für diesen Suchbegriff " +"löschen wollen?" #: templates/wagtailsearch/editorspicks/confirm_delete.html:12 msgid "Yes, delete" @@ -130,20 +141,30 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Es gibt ein Ergebnis\n " -msgstr[1] "\n Es gibt %(counter)s Ergebnisse\n " +msgstr[0] "" +"\n" +" Es gibt ein Ergebnis\n" +" " +msgstr[1] "" +"\n" +" Es gibt %(counter)s Ergebnisse\n" +" " #: templates/wagtailsearch/editorspicks/results.html:18 #, python-format msgid "Sorry, no editor's picks match \"%(query_string)s\"" -msgstr "Es wurde leider keine Redaktionsempfehlung zum Suchbegriff \"%(query_string)s\" gefunden" +msgstr "" +"Es wurde leider keine Redaktionsempfehlung zum Suchbegriff \"" +"%(query_string)s\" gefunden" #: templates/wagtailsearch/editorspicks/results.html:21 #, python-format msgid "" -"No editor's picks have been created. Why not add one?" -msgstr "Sie haben noch keine Redaktionsempfehlungen erstellt. Erstellen Sie doch jetzt eine!" +"No editor's picks have been created. Why not add one?" +msgstr "" +"Sie haben noch keine Redaktionsempfehlungen erstellt. Erstellen Sie doch jetzt eine!" #: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:4 msgid "Move up" diff --git a/wagtail/wagtailsearch/locale/el/LC_MESSAGES/django.mo b/wagtail/wagtailsearch/locale/el/LC_MESSAGES/django.mo index ac1517148..7440f47bd 100644 Binary files a/wagtail/wagtailsearch/locale/el/LC_MESSAGES/django.mo and b/wagtail/wagtailsearch/locale/el/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsearch/locale/el/LC_MESSAGES/django.po b/wagtail/wagtailsearch/locale/el/LC_MESSAGES/django.po index 023235064..04eecd0f4 100644 --- a/wagtail/wagtailsearch/locale/el/LC_MESSAGES/django.po +++ b/wagtail/wagtailsearch/locale/el/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # serafeim , 2014 # serafeim , 2014 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Greek (http://www.transifex.com/projects/p/wagtail/language/el/)\n" +"Language-Team: Greek (http://www.transifex.com/projects/p/wagtail/language/" +"el/)\n" +"Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: forms.py:9 @@ -28,13 +29,17 @@ msgid "" "Enter the full search string to match. An \n" " exact match is required for your Editors Picks to be \n" " displayed, wildcards are NOT allowed." -msgstr "Συμπληρώσατε το πλήρες κείμενο προς αναζήτησης.\nΓια να εμφανιστεί η επιλογή των συντακτών σας\nαπαιτείται ακριβές ταίριασμα, δεν επιτρέπονται\nαστεράκια." +msgstr "" +"Συμπληρώσατε το πλήρες κείμενο προς αναζήτησης.\n" +"Για να εμφανιστεί η επιλογή των συντακτών σας\n" +"απαιτείται ακριβές ταίριασμα, δεν επιτρέπονται\n" +"αστεράκια." #: forms.py:36 msgid "Please specify at least one recommendation for this search term." msgstr "" -#: wagtail_hooks.py:23 templates/wagtailsearch/editorspicks/list.html:9 +#: wagtail_hooks.py:25 templates/wagtailsearch/editorspicks/list.html:9 msgid "Editors picks" msgstr "Επιλογές συντακτών" @@ -46,14 +51,20 @@ msgstr "Προσθήκη επιλογής συντακτών" #: templates/wagtailsearch/editorspicks/add.html:10 msgid "" "\n" -"

      Editors picks are a means of recommending specific pages that might not organically come high up in search results. E.g recommending your primary donation page to a user searching with a less common term like \"giving\".

      \n" +"

      Editors picks are a means of recommending specific pages " +"that might not organically come high up in search results. E.g recommending " +"your primary donation page to a user searching with a less common term like " +"\"giving\".

      \n" " " msgstr "" #: templates/wagtailsearch/editorspicks/add.html:13 msgid "" "\n" -"

      The \"Search term(s)/phrase\" field below must contain the full and exact search for which you wish to provide recommended results, including any misspellings/user error. To help, you can choose from search terms that have been popular with users of your site.

      \n" +"

      The \"Search term(s)/phrase\" field below must contain " +"the full and exact search for which you wish to provide recommended results, " +"including any misspellings/user error. To help, you can choose from " +"search terms that have been popular with users of your site.

      \n" " " msgstr "" @@ -74,9 +85,10 @@ msgid "Delete" msgstr "Διαγραφή" #: templates/wagtailsearch/editorspicks/confirm_delete.html:9 -msgid "" -"Are you sure you want to delete all editors picks for this search term?" -msgstr "Είστε σίγουρος ότι θέλετε να διαγράψετε όλες τις επιλογές συντακτών για τον εν λόγω όρο αναζήτησης;" +msgid "Are you sure you want to delete all editors picks for this search term?" +msgstr "" +"Είστε σίγουρος ότι θέλετε να διαγράψετε όλες τις επιλογές συντακτών για τον " +"εν λόγω όρο αναζήτησης;" #: templates/wagtailsearch/editorspicks/confirm_delete.html:12 msgid "Yes, delete" @@ -130,20 +142,28 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\nΒρέθηκε ένα αποτέλεσμα" -msgstr[1] "\nΒρέθηκαν %(counter)s αποτελέσματα" +msgstr[0] "" +"\n" +"Βρέθηκε ένα αποτέλεσμα" +msgstr[1] "" +"\n" +"Βρέθηκαν %(counter)s αποτελέσματα" #: templates/wagtailsearch/editorspicks/results.html:18 #, python-format msgid "Sorry, no editor's picks match \"%(query_string)s\"" -msgstr "Λυπούμαστε, δε ταιριάζουν επιλογές συντακτών με το \"%(query_string)s\"" +msgstr "" +"Λυπούμαστε, δε ταιριάζουν επιλογές συντακτών με το \"%(query_string)s\"" #: templates/wagtailsearch/editorspicks/results.html:21 #, python-format msgid "" -"No editor's picks have been created. Why not add one?" -msgstr "Δεν υπάρχουν επιλογές συντακτών. Θέλετε να προσθέσετε μία;" +"No editor's picks have been created. Why not add one?" +msgstr "" +"Δεν υπάρχουν επιλογές συντακτών. Θέλετε να προσθέσετε μία;" #: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:4 msgid "Move up" diff --git a/wagtail/wagtailsearch/locale/en/LC_MESSAGES/django.mo b/wagtail/wagtailsearch/locale/en/LC_MESSAGES/django.mo index 44e531ab0..bc5cb1688 100644 Binary files a/wagtail/wagtailsearch/locale/en/LC_MESSAGES/django.mo and b/wagtail/wagtailsearch/locale/en/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsearch/locale/en/LC_MESSAGES/django.po b/wagtail/wagtailsearch/locale/en/LC_MESSAGES/django.po index 615e18f93..938b0334b 100644 --- a/wagtail/wagtailsearch/locale/en/LC_MESSAGES/django.po +++ b/wagtail/wagtailsearch/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -32,7 +32,7 @@ msgstr "" msgid "Please specify at least one recommendation for this search term." msgstr "" -#: wagtail_hooks.py:23 templates/wagtailsearch/editorspicks/list.html:9 +#: wagtail_hooks.py:25 templates/wagtailsearch/editorspicks/list.html:9 msgid "Editors picks" msgstr "" diff --git a/wagtail/wagtailsearch/locale/es/LC_MESSAGES/django.mo b/wagtail/wagtailsearch/locale/es/LC_MESSAGES/django.mo index d1321e116..0850cb20c 100644 Binary files a/wagtail/wagtailsearch/locale/es/LC_MESSAGES/django.mo and b/wagtail/wagtailsearch/locale/es/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsearch/locale/es/LC_MESSAGES/django.po b/wagtail/wagtailsearch/locale/es/LC_MESSAGES/django.po index f619f1125..36cf67e43 100644 --- a/wagtail/wagtailsearch/locale/es/LC_MESSAGES/django.po +++ b/wagtail/wagtailsearch/locale/es/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # fooflare , 2014 # fooflare , 2014 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/wagtail/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/projects/p/wagtail/language/" +"es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: forms.py:9 @@ -28,13 +29,17 @@ msgid "" "Enter the full search string to match. An \n" " exact match is required for your Editors Picks to be \n" " displayed, wildcards are NOT allowed." -msgstr "Introduce la cadena completa de búsqueda a encontrar. Es \n necesaria una coincidencia exacta para que tus Selecciones del Editor sean \n mostradas, los comodines NO están permitidos." +msgstr "" +"Introduce la cadena completa de búsqueda a encontrar. Es \n" +" necesaria una coincidencia exacta para que tus Selecciones del " +"Editor sean \n" +" mostradas, los comodines NO están permitidos." #: forms.py:36 msgid "Please specify at least one recommendation for this search term." msgstr "" -#: wagtail_hooks.py:23 templates/wagtailsearch/editorspicks/list.html:9 +#: wagtail_hooks.py:25 templates/wagtailsearch/editorspicks/list.html:9 msgid "Editors picks" msgstr "Selecciones del editor" @@ -46,14 +51,20 @@ msgstr "Añadir selección del editor" #: templates/wagtailsearch/editorspicks/add.html:10 msgid "" "\n" -"

      Editors picks are a means of recommending specific pages that might not organically come high up in search results. E.g recommending your primary donation page to a user searching with a less common term like \"giving\".

      \n" +"

      Editors picks are a means of recommending specific pages " +"that might not organically come high up in search results. E.g recommending " +"your primary donation page to a user searching with a less common term like " +"\"giving\".

      \n" " " msgstr "" #: templates/wagtailsearch/editorspicks/add.html:13 msgid "" "\n" -"

      The \"Search term(s)/phrase\" field below must contain the full and exact search for which you wish to provide recommended results, including any misspellings/user error. To help, you can choose from search terms that have been popular with users of your site.

      \n" +"

      The \"Search term(s)/phrase\" field below must contain " +"the full and exact search for which you wish to provide recommended results, " +"including any misspellings/user error. To help, you can choose from " +"search terms that have been popular with users of your site.

      \n" " " msgstr "" @@ -74,9 +85,10 @@ msgid "Delete" msgstr "Eliminar" #: templates/wagtailsearch/editorspicks/confirm_delete.html:9 -msgid "" -"Are you sure you want to delete all editors picks for this search term?" -msgstr "¿Seguro que quieres eliminar todas las selecciones del editor para este término de búsqueda?" +msgid "Are you sure you want to delete all editors picks for this search term?" +msgstr "" +"¿Seguro que quieres eliminar todas las selecciones del editor para este " +"término de búsqueda?" #: templates/wagtailsearch/editorspicks/confirm_delete.html:12 msgid "Yes, delete" @@ -130,20 +142,30 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Hay una coincidencia\n " -msgstr[1] "\n Hay %(counter)s coincidencias\n " +msgstr[0] "" +"\n" +" Hay una coincidencia\n" +" " +msgstr[1] "" +"\n" +" Hay %(counter)s coincidencias\n" +" " #: templates/wagtailsearch/editorspicks/results.html:18 #, python-format msgid "Sorry, no editor's picks match \"%(query_string)s\"" -msgstr "Lo sentimos, no hay coincidencias en las selecciones del editor \"%(query_string)s\"" +msgstr "" +"Lo sentimos, no hay coincidencias en las selecciones del editor \"" +"%(query_string)s\"" #: templates/wagtailsearch/editorspicks/results.html:21 #, python-format msgid "" -"No editor's picks have been created. Why not add one?" -msgstr "Ninguna selección del editor ha sido creada. ¿Por qué no añadir una?" +"No editor's picks have been created. Why not add one?" +msgstr "" +"Ninguna selección del editor ha sido creada. ¿Por qué no añadir una?" #: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:4 msgid "Move up" diff --git a/wagtail/wagtailsearch/locale/eu/LC_MESSAGES/django.mo b/wagtail/wagtailsearch/locale/eu/LC_MESSAGES/django.mo index b3e5368fc..cbda75991 100644 Binary files a/wagtail/wagtailsearch/locale/eu/LC_MESSAGES/django.mo and b/wagtail/wagtailsearch/locale/eu/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsearch/locale/eu/LC_MESSAGES/django.po b/wagtail/wagtailsearch/locale/eu/LC_MESSAGES/django.po index 277720dcb..1af888cf4 100644 --- a/wagtail/wagtailsearch/locale/eu/LC_MESSAGES/django.po +++ b/wagtail/wagtailsearch/locale/eu/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Basque (http://www.transifex.com/projects/p/wagtail/language/eu/)\n" +"Language-Team: Basque (http://www.transifex.com/projects/p/wagtail/language/" +"eu/)\n" +"Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: forms.py:9 @@ -32,7 +33,7 @@ msgstr "" msgid "Please specify at least one recommendation for this search term." msgstr "" -#: wagtail_hooks.py:23 templates/wagtailsearch/editorspicks/list.html:9 +#: wagtail_hooks.py:25 templates/wagtailsearch/editorspicks/list.html:9 msgid "Editors picks" msgstr "" @@ -44,14 +45,20 @@ msgstr "" #: templates/wagtailsearch/editorspicks/add.html:10 msgid "" "\n" -"

      Editors picks are a means of recommending specific pages that might not organically come high up in search results. E.g recommending your primary donation page to a user searching with a less common term like \"giving\".

      \n" +"

      Editors picks are a means of recommending specific pages " +"that might not organically come high up in search results. E.g recommending " +"your primary donation page to a user searching with a less common term like " +"\"giving\".

      \n" " " msgstr "" #: templates/wagtailsearch/editorspicks/add.html:13 msgid "" "\n" -"

      The \"Search term(s)/phrase\" field below must contain the full and exact search for which you wish to provide recommended results, including any misspellings/user error. To help, you can choose from search terms that have been popular with users of your site.

      \n" +"

      The \"Search term(s)/phrase\" field below must contain " +"the full and exact search for which you wish to provide recommended results, " +"including any misspellings/user error. To help, you can choose from " +"search terms that have been popular with users of your site.

      \n" " " msgstr "" @@ -72,8 +79,7 @@ msgid "Delete" msgstr "" #: templates/wagtailsearch/editorspicks/confirm_delete.html:9 -msgid "" -"Are you sure you want to delete all editors picks for this search term?" +msgid "Are you sure you want to delete all editors picks for this search term?" msgstr "" #: templates/wagtailsearch/editorspicks/confirm_delete.html:12 @@ -139,8 +145,8 @@ msgstr "" #: templates/wagtailsearch/editorspicks/results.html:21 #, python-format msgid "" -"No editor's picks have been created. Why not add one?" +"No editor's picks have been created. Why not add one?" msgstr "" #: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:4 diff --git a/wagtail/wagtailsearch/locale/fr/LC_MESSAGES/django.mo b/wagtail/wagtailsearch/locale/fr/LC_MESSAGES/django.mo index f1bd1d685..d05c7ddd3 100644 Binary files a/wagtail/wagtailsearch/locale/fr/LC_MESSAGES/django.mo and b/wagtail/wagtailsearch/locale/fr/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsearch/locale/fr/LC_MESSAGES/django.po b/wagtail/wagtailsearch/locale/fr/LC_MESSAGES/django.po index c787820da..9b6d57233 100644 --- a/wagtail/wagtailsearch/locale/fr/LC_MESSAGES/django.po +++ b/wagtail/wagtailsearch/locale/fr/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # nahuel, 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: French (http://www.transifex.com/projects/p/wagtail/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/projects/p/wagtail/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: forms.py:9 @@ -33,7 +34,7 @@ msgstr "" msgid "Please specify at least one recommendation for this search term." msgstr "" -#: wagtail_hooks.py:23 templates/wagtailsearch/editorspicks/list.html:9 +#: wagtail_hooks.py:25 templates/wagtailsearch/editorspicks/list.html:9 msgid "Editors picks" msgstr "" @@ -45,14 +46,20 @@ msgstr "" #: templates/wagtailsearch/editorspicks/add.html:10 msgid "" "\n" -"

      Editors picks are a means of recommending specific pages that might not organically come high up in search results. E.g recommending your primary donation page to a user searching with a less common term like \"giving\".

      \n" +"

      Editors picks are a means of recommending specific pages " +"that might not organically come high up in search results. E.g recommending " +"your primary donation page to a user searching with a less common term like " +"\"giving\".

      \n" " " msgstr "" #: templates/wagtailsearch/editorspicks/add.html:13 msgid "" "\n" -"

      The \"Search term(s)/phrase\" field below must contain the full and exact search for which you wish to provide recommended results, including any misspellings/user error. To help, you can choose from search terms that have been popular with users of your site.

      \n" +"

      The \"Search term(s)/phrase\" field below must contain " +"the full and exact search for which you wish to provide recommended results, " +"including any misspellings/user error. To help, you can choose from " +"search terms that have been popular with users of your site.

      \n" " " msgstr "" @@ -73,8 +80,7 @@ msgid "Delete" msgstr "Supprimer" #: templates/wagtailsearch/editorspicks/confirm_delete.html:9 -msgid "" -"Are you sure you want to delete all editors picks for this search term?" +msgid "Are you sure you want to delete all editors picks for this search term?" msgstr "" #: templates/wagtailsearch/editorspicks/confirm_delete.html:12 @@ -135,13 +141,15 @@ msgstr[1] "" #: templates/wagtailsearch/editorspicks/results.html:18 #, python-format msgid "Sorry, no editor's picks match \"%(query_string)s\"" -msgstr "Désolé, aucun choix de rédacteur ne correspond avec \"%(query_string)s\"" +msgstr "" +"Désolé, aucun choix de rédacteur ne correspond avec \"%(query_string)s\"" #: templates/wagtailsearch/editorspicks/results.html:21 #, python-format msgid "" -"No editor's picks have been created. Why not add one?" +"No editor's picks have been created. Why not add one?" msgstr "" #: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:4 diff --git a/wagtail/wagtailsearch/locale/gl/LC_MESSAGES/django.mo b/wagtail/wagtailsearch/locale/gl/LC_MESSAGES/django.mo index d9ea5fd04..006c67237 100644 Binary files a/wagtail/wagtailsearch/locale/gl/LC_MESSAGES/django.mo and b/wagtail/wagtailsearch/locale/gl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsearch/locale/gl/LC_MESSAGES/django.po b/wagtail/wagtailsearch/locale/gl/LC_MESSAGES/django.po index bd63b29ba..63788a286 100644 --- a/wagtail/wagtailsearch/locale/gl/LC_MESSAGES/django.po +++ b/wagtail/wagtailsearch/locale/gl/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # fooflare , 2014 # fooflare , 2014 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Galician (http://www.transifex.com/projects/p/wagtail/language/gl/)\n" +"Language-Team: Galician (http://www.transifex.com/projects/p/wagtail/" +"language/gl/)\n" +"Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: forms.py:9 @@ -28,13 +29,17 @@ msgid "" "Enter the full search string to match. An \n" " exact match is required for your Editors Picks to be \n" " displayed, wildcards are NOT allowed." -msgstr "Introduce a cadea completa de busca a atopar. É \n necesaria unha coincidencia exacta para que as túas Seleccións do Editor sexan \n mostradas, os comodines NON están permitidos." +msgstr "" +"Introduce a cadea completa de busca a atopar. É \n" +" necesaria unha coincidencia exacta para que as túas Seleccións do " +"Editor sexan \n" +" mostradas, os comodines NON están permitidos." #: forms.py:36 msgid "Please specify at least one recommendation for this search term." msgstr "" -#: wagtail_hooks.py:23 templates/wagtailsearch/editorspicks/list.html:9 +#: wagtail_hooks.py:25 templates/wagtailsearch/editorspicks/list.html:9 msgid "Editors picks" msgstr "Seleccións do editor" @@ -46,14 +51,20 @@ msgstr "Engadir selección do editor" #: templates/wagtailsearch/editorspicks/add.html:10 msgid "" "\n" -"

      Editors picks are a means of recommending specific pages that might not organically come high up in search results. E.g recommending your primary donation page to a user searching with a less common term like \"giving\".

      \n" +"

      Editors picks are a means of recommending specific pages " +"that might not organically come high up in search results. E.g recommending " +"your primary donation page to a user searching with a less common term like " +"\"giving\".

      \n" " " msgstr "" #: templates/wagtailsearch/editorspicks/add.html:13 msgid "" "\n" -"

      The \"Search term(s)/phrase\" field below must contain the full and exact search for which you wish to provide recommended results, including any misspellings/user error. To help, you can choose from search terms that have been popular with users of your site.

      \n" +"

      The \"Search term(s)/phrase\" field below must contain " +"the full and exact search for which you wish to provide recommended results, " +"including any misspellings/user error. To help, you can choose from " +"search terms that have been popular with users of your site.

      \n" " " msgstr "" @@ -74,9 +85,10 @@ msgid "Delete" msgstr "Eliminar" #: templates/wagtailsearch/editorspicks/confirm_delete.html:9 -msgid "" -"Are you sure you want to delete all editors picks for this search term?" -msgstr "¿Seguro que queres eliminar todas as seleccións do editor para este termo de busca?" +msgid "Are you sure you want to delete all editors picks for this search term?" +msgstr "" +"¿Seguro que queres eliminar todas as seleccións do editor para este termo de " +"busca?" #: templates/wagtailsearch/editorspicks/confirm_delete.html:12 msgid "Yes, delete" @@ -130,20 +142,29 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Hai unha coincidencia\n " -msgstr[1] "\n Hai %(counter)s coincidencias\n " +msgstr[0] "" +"\n" +" Hai unha coincidencia\n" +" " +msgstr[1] "" +"\n" +" Hai %(counter)s coincidencias\n" +" " #: templates/wagtailsearch/editorspicks/results.html:18 #, python-format msgid "Sorry, no editor's picks match \"%(query_string)s\"" -msgstr "Sentímolo, ningunha selección do editor contén \"%(query_string)s\"" +msgstr "" +"Sentímolo, ningunha selección do editor contén \"%(query_string)s\"" #: templates/wagtailsearch/editorspicks/results.html:21 #, python-format msgid "" -"No editor's picks have been created. Why not add one?" -msgstr "Ningunha selección do editor foi creada. ¿Por qué non engadir unha?" +"No editor's picks have been created. Why not add one?" +msgstr "" +"Ningunha selección do editor foi creada. ¿Por qué non engadir unha?" #: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:4 msgid "Move up" diff --git a/wagtail/wagtailsearch/locale/mn/LC_MESSAGES/django.mo b/wagtail/wagtailsearch/locale/mn/LC_MESSAGES/django.mo index e5957554f..f42c4318f 100644 Binary files a/wagtail/wagtailsearch/locale/mn/LC_MESSAGES/django.mo and b/wagtail/wagtailsearch/locale/mn/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsearch/locale/mn/LC_MESSAGES/django.po b/wagtail/wagtailsearch/locale/mn/LC_MESSAGES/django.po index a0544cbc2..e220435eb 100644 --- a/wagtail/wagtailsearch/locale/mn/LC_MESSAGES/django.po +++ b/wagtail/wagtailsearch/locale/mn/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Delgermurun Purevkhuuu , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Mongolian (http://www.transifex.com/projects/p/wagtail/language/mn/)\n" +"Language-Team: Mongolian (http://www.transifex.com/projects/p/wagtail/" +"language/mn/)\n" +"Language: mn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: mn\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: forms.py:9 @@ -33,7 +34,7 @@ msgstr "" msgid "Please specify at least one recommendation for this search term." msgstr "" -#: wagtail_hooks.py:23 templates/wagtailsearch/editorspicks/list.html:9 +#: wagtail_hooks.py:25 templates/wagtailsearch/editorspicks/list.html:9 msgid "Editors picks" msgstr "" @@ -45,14 +46,20 @@ msgstr "" #: templates/wagtailsearch/editorspicks/add.html:10 msgid "" "\n" -"

      Editors picks are a means of recommending specific pages that might not organically come high up in search results. E.g recommending your primary donation page to a user searching with a less common term like \"giving\".

      \n" +"

      Editors picks are a means of recommending specific pages " +"that might not organically come high up in search results. E.g recommending " +"your primary donation page to a user searching with a less common term like " +"\"giving\".

      \n" " " msgstr "" #: templates/wagtailsearch/editorspicks/add.html:13 msgid "" "\n" -"

      The \"Search term(s)/phrase\" field below must contain the full and exact search for which you wish to provide recommended results, including any misspellings/user error. To help, you can choose from search terms that have been popular with users of your site.

      \n" +"

      The \"Search term(s)/phrase\" field below must contain " +"the full and exact search for which you wish to provide recommended results, " +"including any misspellings/user error. To help, you can choose from " +"search terms that have been popular with users of your site.

      \n" " " msgstr "" @@ -73,8 +80,7 @@ msgid "Delete" msgstr "Устгах" #: templates/wagtailsearch/editorspicks/confirm_delete.html:9 -msgid "" -"Are you sure you want to delete all editors picks for this search term?" +msgid "Are you sure you want to delete all editors picks for this search term?" msgstr "" #: templates/wagtailsearch/editorspicks/confirm_delete.html:12 @@ -140,8 +146,8 @@ msgstr "" #: templates/wagtailsearch/editorspicks/results.html:21 #, python-format msgid "" -"No editor's picks have been created. Why not add one?" +"No editor's picks have been created. Why not add one?" msgstr "" #: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:4 diff --git a/wagtail/wagtailsearch/locale/pl/LC_MESSAGES/django.mo b/wagtail/wagtailsearch/locale/pl/LC_MESSAGES/django.mo index fbb63539a..7e28b09fb 100644 Binary files a/wagtail/wagtailsearch/locale/pl/LC_MESSAGES/django.mo and b/wagtail/wagtailsearch/locale/pl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsearch/locale/pl/LC_MESSAGES/django.po b/wagtail/wagtailsearch/locale/pl/LC_MESSAGES/django.po index 430cfba84..969fd0c9b 100644 --- a/wagtail/wagtailsearch/locale/pl/LC_MESSAGES/django.po +++ b/wagtail/wagtailsearch/locale/pl/LC_MESSAGES/django.po @@ -1,22 +1,24 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # utek , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Polish (http://www.transifex.com/projects/p/wagtail/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/projects/p/wagtail/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" #: forms.py:9 msgid "Search term(s)/phrase" @@ -27,13 +29,17 @@ msgid "" "Enter the full search string to match. An \n" " exact match is required for your Editors Picks to be \n" " displayed, wildcards are NOT allowed." -msgstr "Wprowadź pełną frazę wyszukania do porównania.\n Dokładne porównanie jest wymagane żeby twoje \n wybory redakcji były wyświetlone, symbol \n wieloznaczności jest niedozwolony." +msgstr "" +"Wprowadź pełną frazę wyszukania do porównania.\n" +" Dokładne porównanie jest wymagane żeby twoje \n" +" wybory redakcji były wyświetlone, symbol \n" +" wieloznaczności jest niedozwolony." #: forms.py:36 msgid "Please specify at least one recommendation for this search term." msgstr "" -#: wagtail_hooks.py:23 templates/wagtailsearch/editorspicks/list.html:9 +#: wagtail_hooks.py:25 templates/wagtailsearch/editorspicks/list.html:9 msgid "Editors picks" msgstr "Wybór redakcji" @@ -45,14 +51,20 @@ msgstr "Dodaj wybór redakcji" #: templates/wagtailsearch/editorspicks/add.html:10 msgid "" "\n" -"

      Editors picks are a means of recommending specific pages that might not organically come high up in search results. E.g recommending your primary donation page to a user searching with a less common term like \"giving\".

      \n" +"

      Editors picks are a means of recommending specific pages " +"that might not organically come high up in search results. E.g recommending " +"your primary donation page to a user searching with a less common term like " +"\"giving\".

      \n" " " msgstr "" #: templates/wagtailsearch/editorspicks/add.html:13 msgid "" "\n" -"

      The \"Search term(s)/phrase\" field below must contain the full and exact search for which you wish to provide recommended results, including any misspellings/user error. To help, you can choose from search terms that have been popular with users of your site.

      \n" +"

      The \"Search term(s)/phrase\" field below must contain " +"the full and exact search for which you wish to provide recommended results, " +"including any misspellings/user error. To help, you can choose from " +"search terms that have been popular with users of your site.

      \n" " " msgstr "" @@ -73,9 +85,10 @@ msgid "Delete" msgstr "Usuń" #: templates/wagtailsearch/editorspicks/confirm_delete.html:9 -msgid "" -"Are you sure you want to delete all editors picks for this search term?" -msgstr "Czy na pewno chcesz usunąć wszystkie wybory redakcji dla tych fraz wyszukiwania?" +msgid "Are you sure you want to delete all editors picks for this search term?" +msgstr "" +"Czy na pewno chcesz usunąć wszystkie wybory redakcji dla tych fraz " +"wyszukiwania?" #: templates/wagtailsearch/editorspicks/confirm_delete.html:12 msgid "Yes, delete" @@ -129,21 +142,34 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\n Jedno dopasowanie\n " -msgstr[1] "\n Są %(counter)s dopasowania\n " -msgstr[2] "\n Jest %(counter)s dopasowań\n " +msgstr[0] "" +"\n" +" Jedno dopasowanie\n" +" " +msgstr[1] "" +"\n" +" Są %(counter)s dopasowania\n" +" " +msgstr[2] "" +"\n" +" Jest %(counter)s dopasowań\n" +" " #: templates/wagtailsearch/editorspicks/results.html:18 #, python-format msgid "Sorry, no editor's picks match \"%(query_string)s\"" -msgstr "Przepraszamy, żaden wybór redakcji nie pasuje do \"%(query_string)s\"" +msgstr "" +"Przepraszamy, żaden wybór redakcji nie pasuje do \"%(query_string)s" +"\"" #: templates/wagtailsearch/editorspicks/results.html:21 #, python-format msgid "" -"No editor's picks have been created. Why not add one?" -msgstr "Nie stworzono żadnego wyboru redakcji. Czemu nie dodać jakiegoś?" +"No editor's picks have been created. Why not add one?" +msgstr "" +"Nie stworzono żadnego wyboru redakcji. Czemu nie dodać jakiegoś?" #: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:4 msgid "Move up" diff --git a/wagtail/wagtailsearch/locale/pt_BR/LC_MESSAGES/django.mo b/wagtail/wagtailsearch/locale/pt_BR/LC_MESSAGES/django.mo new file mode 100644 index 000000000..4060d3af5 Binary files /dev/null and b/wagtail/wagtailsearch/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsearch/locale/pt_BR/LC_MESSAGES/django.po b/wagtail/wagtailsearch/locale/pt_BR/LC_MESSAGES/django.po new file mode 100644 index 000000000..68b6b3418 --- /dev/null +++ b/wagtail/wagtailsearch/locale/pt_BR/LC_MESSAGES/django.po @@ -0,0 +1,201 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Gladson , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-17 01:44+0000\n" +"Last-Translator: Gladson \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/wagtail/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: forms.py:9 +msgid "Search term(s)/phrase" +msgstr "" + +#: forms.py:10 +msgid "" +"Enter the full search string to match. An \n" +" exact match is required for your Editors Picks to be \n" +" displayed, wildcards are NOT allowed." +msgstr "Digite o texto completo para procurar a correspondência. Uma \n correspondência exata é necessária para que as Sugestões dos Editores, escolha a que será \n exibida, curingas NÃO serão permitidas." + +#: forms.py:36 +msgid "Please specify at least one recommendation for this search term." +msgstr "Especifique pelo menos uma recomendação para este termo de busca." + +#: wagtail_hooks.py:25 templates/wagtailsearch/editorspicks/list.html:9 +msgid "Editors picks" +msgstr "Sugestões do editor" + +#: templates/wagtailsearch/editorspicks/add.html:3 +#: templates/wagtailsearch/editorspicks/add.html:5 +msgid "Add editor's pick" +msgstr "Add sugestões do editor" + +#: templates/wagtailsearch/editorspicks/add.html:10 +msgid "" +"\n" +"

      Editors picks are a means of recommending specific pages that might not organically come high up in search results. E.g recommending your primary donation page to a user searching with a less common term like \"giving\".

      \n" +" " +msgstr "" + +#: templates/wagtailsearch/editorspicks/add.html:13 +msgid "" +"\n" +"

      The \"Search term(s)/phrase\" field below must contain the full and exact search for which you wish to provide recommended results, including any misspellings/user error. To help, you can choose from search terms that have been popular with users of your site.

      \n" +" " +msgstr "" + +#: templates/wagtailsearch/editorspicks/add.html:27 +#: templates/wagtailsearch/editorspicks/edit.html:19 +msgid "Save" +msgstr "Salvar" + +#: templates/wagtailsearch/editorspicks/confirm_delete.html:3 +#, python-format +msgid "Delete %(query)s" +msgstr "Excluir %(query)s" + +#: templates/wagtailsearch/editorspicks/confirm_delete.html:5 +#: templates/wagtailsearch/editorspicks/edit.html:20 +#: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:6 +msgid "Delete" +msgstr "Excluir" + +#: templates/wagtailsearch/editorspicks/confirm_delete.html:9 +msgid "" +"Are you sure you want to delete all editors picks for this search term?" +msgstr "Tem certeza de que deseja excluir todas as sugestões dos editores para este termo de busca?" + +#: templates/wagtailsearch/editorspicks/confirm_delete.html:12 +msgid "Yes, delete" +msgstr "Sim, apague" + +#: templates/wagtailsearch/editorspicks/edit.html:3 +#, python-format +msgid "Editing %(query)s" +msgstr "Editando %(query)s" + +#: templates/wagtailsearch/editorspicks/edit.html:5 +msgid "Editing" +msgstr "Editando" + +#: templates/wagtailsearch/editorspicks/index.html:3 +msgid "Search Terms" +msgstr "Procurar Termos" + +#: templates/wagtailsearch/editorspicks/index.html:17 +msgid "Editor's search picks" +msgstr "Buscar sugestões do editor" + +#: templates/wagtailsearch/editorspicks/index.html:18 +msgid "Add new editor's pick" +msgstr "Add nova sugestão do editor" + +#: templates/wagtailsearch/editorspicks/list.html:8 +msgid "Search term(s)" +msgstr "Procurar termo(s)" + +#: templates/wagtailsearch/editorspicks/list.html:10 +#: templates/wagtailsearch/queries/chooser/results.html:8 +msgid "Views (past week)" +msgstr "Visualizações (última semana)" + +#: templates/wagtailsearch/editorspicks/list.html:17 +msgid "Edit this pick" +msgstr "Editar sugestão do editor" + +#: templates/wagtailsearch/editorspicks/list.html:23 +msgid "None" +msgstr "Nenhum" + +#: templates/wagtailsearch/editorspicks/results.html:5 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "\n Há um resultado\n " +msgstr[1] "\n Há %(counter)s resultados\n " + +#: templates/wagtailsearch/editorspicks/results.html:18 +#, python-format +msgid "Sorry, no editor's picks match \"%(query_string)s\"" +msgstr "" + +#: templates/wagtailsearch/editorspicks/results.html:21 +#, python-format +msgid "" +"No editor's picks have been created. Why not add one?" +msgstr "" + +#: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:4 +msgid "Move up" +msgstr "Mover para cima" + +#: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:5 +msgid "Move down" +msgstr "Mover para baixo" + +#: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:10 +msgid "Editors pick" +msgstr "Sugestões do editor" + +#: templates/wagtailsearch/editorspicks/includes/editorspicks_formset.html:14 +msgid "Add recommended page" +msgstr "Add recomendação para página" + +#: templates/wagtailsearch/queries/chooser/chooser.html:2 +msgid "Popular search terms" +msgstr "Termos populares de pesquisa" + +#: templates/wagtailsearch/queries/chooser/chooser.html:11 +msgid "Search" +msgstr "Procurar" + +#: templates/wagtailsearch/queries/chooser/results.html:7 +msgid "Terms" +msgstr "Termos" + +#: templates/wagtailsearch/queries/chooser/results.html:22 +msgid "No results found" +msgstr "Nenhum resultado encontrado" + +#: views/editorspicks.py:47 +msgid "Search editor's picks" +msgstr "Procurar sugestões dos editores" + +#: views/editorspicks.py:83 +msgid "Editor's picks for '{0}' created." +msgstr "Sugestões dos editores para '{0}' criados." + +#: views/editorspicks.py:89 +msgid "Recommendations have not been created due to errors" +msgstr "As recomendações não poderiam ser criadas devido a erros" + +#: views/editorspicks.py:117 +msgid "Editor's picks for '{0}' updated." +msgstr "Sugestões do editor para '{0}' atualizado." + +#: views/editorspicks.py:123 +msgid "Recommendations have not been saved due to errors" +msgstr "As recomendações não puderam ser salvas devido a erros" + +#: views/editorspicks.py:142 +msgid "Editor's picks deleted." +msgstr "Sugestões do editor deletado." diff --git a/wagtail/wagtailsearch/locale/pt_PT/LC_MESSAGES/django.mo b/wagtail/wagtailsearch/locale/pt_PT/LC_MESSAGES/django.mo new file mode 100644 index 000000000..03e50f2bb Binary files /dev/null and b/wagtail/wagtailsearch/locale/pt_PT/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsearch/locale/pt_PT/LC_MESSAGES/django.po b/wagtail/wagtailsearch/locale/pt_PT/LC_MESSAGES/django.po new file mode 100644 index 000000000..3d859d0ed --- /dev/null +++ b/wagtail/wagtailsearch/locale/pt_PT/LC_MESSAGES/django.po @@ -0,0 +1,237 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Gladson , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail 0.5.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-03 01:58+0100\n" +"Last-Translator: Jose Lourenco \n" +"Language-Team: \n" +"Language: pt_PT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: forms.py:9 +msgid "Search term(s)/phrase" +msgstr "Procurar termo(s)/frase" + +#: forms.py:10 +msgid "" +"Enter the full search string to match. An \n" +" exact match is required for your Editors Picks to be \n" +" displayed, wildcards are NOT allowed." +msgstr "" +"introduza a frase completa a procurar. É \n" +" necessária uma coincidência exacta com os termos de procura para que " +"as suas Seleções de Editor sejam \n" +" mostradas, caracteres de substituição (wildcards) NÃO são permitidos." + +#: forms.py:36 +msgid "Please specify at least one recommendation for this search term." +msgstr "" +"Por favor especifique pelo menos uma recomendação para este termo de procura." + +#: wagtail_hooks.py:25 templates/wagtailsearch/editorspicks/list.html:9 +msgid "Editors picks" +msgstr "Escolhas do editor" + +#: templates/wagtailsearch/editorspicks/add.html:3 +#: templates/wagtailsearch/editorspicks/add.html:5 +msgid "Add editor's pick" +msgstr "Adicionar escolha de editor" + +#: templates/wagtailsearch/editorspicks/add.html:10 +msgid "" +"\n" +"

      Editors picks are a means of recommending specific pages " +"that might not organically come high up in search results. E.g recommending " +"your primary donation page to a user searching with a less common term like " +"\"giving\".

      \n" +" " +msgstr "" +"\n" +"

      Escolhas de Editores servem para recomendar páginas que " +"poderiam não ser selecionadas para aparecer em posição alta em resultados de " +"pesquisa. Por ex., recomendar a sua página principal de donativos para ser " +"pesquisada usando termos menos comuns como \"dar\".

      \n" +" " + +#: templates/wagtailsearch/editorspicks/add.html:13 +msgid "" +"\n" +"

      The \"Search term(s)/phrase\" field below must contain " +"the full and exact search for which you wish to provide recommended results, " +"including any misspellings/user error. To help, you can choose from " +"search terms that have been popular with users of your site.

      \n" +" " +msgstr "" +"\n" +"

      O campo \"Procurar termo(s)/frase\" abaixo tem de conter " +"a pesquisa completa e exata para a qual pretende indicar resultados " +"recomendados, incluindo quaisquer erros de ortografia/utilizador. " +"Para facilitar, pode escolher de entre termos de pesquisa que tenham sido " +"usados frequentemente por utilizadores do seu site.

      \n" +" " + +#: templates/wagtailsearch/editorspicks/add.html:27 +#: templates/wagtailsearch/editorspicks/edit.html:19 +msgid "Save" +msgstr "Guardar" + +#: templates/wagtailsearch/editorspicks/confirm_delete.html:3 +#, python-format +msgid "Delete %(query)s" +msgstr "Eliminar %(query)s" + +#: templates/wagtailsearch/editorspicks/confirm_delete.html:5 +#: templates/wagtailsearch/editorspicks/edit.html:20 +#: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:6 +msgid "Delete" +msgstr "Eliminar" + +#: templates/wagtailsearch/editorspicks/confirm_delete.html:9 +msgid "Are you sure you want to delete all editors picks for this search term?" +msgstr "" +"Tem a certeza que pretende eliminar todas as escolhas de editores para este " +"termo de pesquisa?" + +#: templates/wagtailsearch/editorspicks/confirm_delete.html:12 +msgid "Yes, delete" +msgstr "Sim, eliminar" + +#: templates/wagtailsearch/editorspicks/edit.html:3 +#, python-format +msgid "Editing %(query)s" +msgstr "Editando %(query)s" + +#: templates/wagtailsearch/editorspicks/edit.html:5 +msgid "Editing" +msgstr "Editando" + +#: templates/wagtailsearch/editorspicks/index.html:3 +msgid "Search Terms" +msgstr "Procurar Termos" + +#: templates/wagtailsearch/editorspicks/index.html:17 +msgid "Editor's search picks" +msgstr "Procurar escolhas de editor" + +#: templates/wagtailsearch/editorspicks/index.html:18 +msgid "Add new editor's pick" +msgstr "Adicionar nova escolha de editor" + +#: templates/wagtailsearch/editorspicks/list.html:8 +msgid "Search term(s)" +msgstr "Procurar termo(s)" + +#: templates/wagtailsearch/editorspicks/list.html:10 +#: templates/wagtailsearch/queries/chooser/results.html:8 +msgid "Views (past week)" +msgstr "Visualizações (última semana)" + +#: templates/wagtailsearch/editorspicks/list.html:17 +msgid "Edit this pick" +msgstr "Editar esta escolha" + +#: templates/wagtailsearch/editorspicks/list.html:23 +msgid "None" +msgstr "Nenhuma" + +#: templates/wagtailsearch/editorspicks/results.html:5 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "" +"\n" +" Existe uma ocorrência\n" +" " +msgstr[1] "" +"\n" +" Existem %(counter)s ocorrências\n" +" " + +#: templates/wagtailsearch/editorspicks/results.html:18 +#, python-format +msgid "Sorry, no editor's picks match \"%(query_string)s\"" +msgstr "" +"Desculpe, nenhuma escolha de editor contém \"%(query_string)s\"" + +#: templates/wagtailsearch/editorspicks/results.html:21 +#, python-format +msgid "" +"No editor's picks have been created. Why not add one?" +msgstr "" +"Nenhuma escolha de editor foi criada. Porque não adicionar uma?" + +#: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:4 +msgid "Move up" +msgstr "Mover para cima" + +#: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:5 +msgid "Move down" +msgstr "Mover para baixo" + +#: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:10 +msgid "Editors pick" +msgstr "Escolha de editor" + +#: templates/wagtailsearch/editorspicks/includes/editorspicks_formset.html:14 +msgid "Add recommended page" +msgstr "Adicionar uma página recomendada" + +#: templates/wagtailsearch/queries/chooser/chooser.html:2 +msgid "Popular search terms" +msgstr "Termos de procura populares" + +#: templates/wagtailsearch/queries/chooser/chooser.html:11 +msgid "Search" +msgstr "Procurar" + +#: templates/wagtailsearch/queries/chooser/results.html:7 +msgid "Terms" +msgstr "Termos" + +#: templates/wagtailsearch/queries/chooser/results.html:22 +msgid "No results found" +msgstr "Nenhum resultado encontrado" + +#: views/editorspicks.py:47 +msgid "Search editor's picks" +msgstr "Procurar nas escolhas de editor" + +#: views/editorspicks.py:83 +msgid "Editor's picks for '{0}' created." +msgstr "Escolhas de editor para '{0}' criadas." + +#: views/editorspicks.py:89 +msgid "Recommendations have not been created due to errors" +msgstr "Recomendações não foram criadas devido a erros." + +#: views/editorspicks.py:117 +msgid "Editor's picks for '{0}' updated." +msgstr "Escolhas de editor para '{0}' atualizadas." + +#: views/editorspicks.py:123 +msgid "Recommendations have not been saved due to errors" +msgstr "Recomendações não foram guardadas devido a erros." + +#: views/editorspicks.py:142 +msgid "Editor's picks deleted." +msgstr "Escolhas de editor eliminadas." diff --git a/wagtail/wagtailsearch/locale/ro/LC_MESSAGES/django.mo b/wagtail/wagtailsearch/locale/ro/LC_MESSAGES/django.mo index 305c7c463..5e995553e 100644 Binary files a/wagtail/wagtailsearch/locale/ro/LC_MESSAGES/django.mo and b/wagtail/wagtailsearch/locale/ro/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsearch/locale/ro/LC_MESSAGES/django.po b/wagtail/wagtailsearch/locale/ro/LC_MESSAGES/django.po index 6301dd67b..761c2305c 100644 --- a/wagtail/wagtailsearch/locale/ro/LC_MESSAGES/django.po +++ b/wagtail/wagtailsearch/locale/ro/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Dan Braghis, 2014 # Dan Braghis, 2014 @@ -9,15 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Romanian (http://www.transifex.com/projects/p/wagtail/language/ro/)\n" +"Language-Team: Romanian (http://www.transifex.com/projects/p/wagtail/" +"language/ro/)\n" +"Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: forms.py:9 msgid "Search term(s)/phrase" @@ -28,13 +30,16 @@ msgid "" "Enter the full search string to match. An \n" " exact match is required for your Editors Picks to be \n" " displayed, wildcards are NOT allowed." -msgstr "Introduceți șirul complet de căutare. \nEste nevoie de o potrivire exactă pentru a afișa selecțiile \ndvs. editoriale. Metacaractere NU sunt permise." +msgstr "" +"Introduceți șirul complet de căutare. \n" +"Este nevoie de o potrivire exactă pentru a afișa selecțiile \n" +"dvs. editoriale. Metacaractere NU sunt permise." #: forms.py:36 msgid "Please specify at least one recommendation for this search term." msgstr "" -#: wagtail_hooks.py:23 templates/wagtailsearch/editorspicks/list.html:9 +#: wagtail_hooks.py:25 templates/wagtailsearch/editorspicks/list.html:9 msgid "Editors picks" msgstr "Selecții editoriale" @@ -46,14 +51,20 @@ msgstr "Adaugă selecție editorială" #: templates/wagtailsearch/editorspicks/add.html:10 msgid "" "\n" -"

      Editors picks are a means of recommending specific pages that might not organically come high up in search results. E.g recommending your primary donation page to a user searching with a less common term like \"giving\".

      \n" +"

      Editors picks are a means of recommending specific pages " +"that might not organically come high up in search results. E.g recommending " +"your primary donation page to a user searching with a less common term like " +"\"giving\".

      \n" " " msgstr "" #: templates/wagtailsearch/editorspicks/add.html:13 msgid "" "\n" -"

      The \"Search term(s)/phrase\" field below must contain the full and exact search for which you wish to provide recommended results, including any misspellings/user error. To help, you can choose from search terms that have been popular with users of your site.

      \n" +"

      The \"Search term(s)/phrase\" field below must contain " +"the full and exact search for which you wish to provide recommended results, " +"including any misspellings/user error. To help, you can choose from " +"search terms that have been popular with users of your site.

      \n" " " msgstr "" @@ -74,9 +85,10 @@ msgid "Delete" msgstr "Șterge" #: templates/wagtailsearch/editorspicks/confirm_delete.html:9 -msgid "" -"Are you sure you want to delete all editors picks for this search term?" -msgstr "Sigur doriți să ștergeți toate selecțiile editoriale pentru acest termen de căutare?" +msgid "Are you sure you want to delete all editors picks for this search term?" +msgstr "" +"Sigur doriți să ștergeți toate selecțiile editoriale pentru acest termen de " +"căutare?" #: templates/wagtailsearch/editorspicks/confirm_delete.html:12 msgid "Yes, delete" @@ -130,21 +142,31 @@ msgid_plural "" "\n" " There are %(counter)s matches\n" " " -msgstr[0] "\nExistă o potrivire" -msgstr[1] "\nSunt %(counter)s potriviri" -msgstr[2] "\nSunt %(counter)s potriviri" +msgstr[0] "" +"\n" +"Există o potrivire" +msgstr[1] "" +"\n" +"Sunt %(counter)s potriviri" +msgstr[2] "" +"\n" +"Sunt %(counter)s potriviri" #: templates/wagtailsearch/editorspicks/results.html:18 #, python-format msgid "Sorry, no editor's picks match \"%(query_string)s\"" -msgstr "Ne pare rău, \"%(query_string)s\" nu se potrivește cu nici o selecție editorială" +msgstr "" +"Ne pare rău, \"%(query_string)s\" nu se potrivește cu nici o " +"selecție editorială" #: templates/wagtailsearch/editorspicks/results.html:21 #, python-format msgid "" -"No editor's picks have been created. Why not add one?" -msgstr "Nu a fost creată nici o selecție editorială. De ce să nu adăugați una?" +"No editor's picks have been created. Why not add one?" +msgstr "" +"Nu a fost creată nici o selecție editorială. De ce să nu adăugați una?" #: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:4 msgid "Move up" diff --git a/wagtail/wagtailsearch/locale/ru/LC_MESSAGES/django.mo b/wagtail/wagtailsearch/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 000000000..22f2cdd23 Binary files /dev/null and b/wagtail/wagtailsearch/locale/ru/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsearch/locale/ru/LC_MESSAGES/django.po b/wagtail/wagtailsearch/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 000000000..7f23048a1 --- /dev/null +++ b/wagtail/wagtailsearch/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,202 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# HNKNTA , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-01 15:43+0000\n" +"Last-Translator: Karl Hobley \n" +"Language-Team: Russian (http://www.transifex.com/projects/p/wagtail/language/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: forms.py:9 +msgid "Search term(s)/phrase" +msgstr "" + +#: forms.py:10 +msgid "" +"Enter the full search string to match. An \n" +" exact match is required for your Editors Picks to be \n" +" displayed, wildcards are NOT allowed." +msgstr "" + +#: forms.py:36 +msgid "Please specify at least one recommendation for this search term." +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailsearch/editorspicks/list.html:9 +msgid "Editors picks" +msgstr "" + +#: templates/wagtailsearch/editorspicks/add.html:3 +#: templates/wagtailsearch/editorspicks/add.html:5 +msgid "Add editor's pick" +msgstr "" + +#: templates/wagtailsearch/editorspicks/add.html:10 +msgid "" +"\n" +"

      Editors picks are a means of recommending specific pages that might not organically come high up in search results. E.g recommending your primary donation page to a user searching with a less common term like \"giving\".

      \n" +" " +msgstr "" + +#: templates/wagtailsearch/editorspicks/add.html:13 +msgid "" +"\n" +"

      The \"Search term(s)/phrase\" field below must contain the full and exact search for which you wish to provide recommended results, including any misspellings/user error. To help, you can choose from search terms that have been popular with users of your site.

      \n" +" " +msgstr "" + +#: templates/wagtailsearch/editorspicks/add.html:27 +#: templates/wagtailsearch/editorspicks/edit.html:19 +msgid "Save" +msgstr "Сохранить" + +#: templates/wagtailsearch/editorspicks/confirm_delete.html:3 +#, python-format +msgid "Delete %(query)s" +msgstr "" + +#: templates/wagtailsearch/editorspicks/confirm_delete.html:5 +#: templates/wagtailsearch/editorspicks/edit.html:20 +#: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:6 +msgid "Delete" +msgstr "Удалить" + +#: templates/wagtailsearch/editorspicks/confirm_delete.html:9 +msgid "" +"Are you sure you want to delete all editors picks for this search term?" +msgstr "" + +#: templates/wagtailsearch/editorspicks/confirm_delete.html:12 +msgid "Yes, delete" +msgstr "Да, удалить" + +#: templates/wagtailsearch/editorspicks/edit.html:3 +#, python-format +msgid "Editing %(query)s" +msgstr "" + +#: templates/wagtailsearch/editorspicks/edit.html:5 +msgid "Editing" +msgstr "Редактирование" + +#: templates/wagtailsearch/editorspicks/index.html:3 +msgid "Search Terms" +msgstr "" + +#: templates/wagtailsearch/editorspicks/index.html:17 +msgid "Editor's search picks" +msgstr "" + +#: templates/wagtailsearch/editorspicks/index.html:18 +msgid "Add new editor's pick" +msgstr "" + +#: templates/wagtailsearch/editorspicks/list.html:8 +msgid "Search term(s)" +msgstr "" + +#: templates/wagtailsearch/editorspicks/list.html:10 +#: templates/wagtailsearch/queries/chooser/results.html:8 +msgid "Views (past week)" +msgstr "" + +#: templates/wagtailsearch/editorspicks/list.html:17 +msgid "Edit this pick" +msgstr "" + +#: templates/wagtailsearch/editorspicks/list.html:23 +msgid "None" +msgstr "" + +#: templates/wagtailsearch/editorspicks/results.html:5 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/wagtailsearch/editorspicks/results.html:18 +#, python-format +msgid "Sorry, no editor's picks match \"%(query_string)s\"" +msgstr "" + +#: templates/wagtailsearch/editorspicks/results.html:21 +#, python-format +msgid "" +"No editor's picks have been created. Why not add one?" +msgstr "" + +#: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:4 +msgid "Move up" +msgstr "" + +#: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:5 +msgid "Move down" +msgstr "" + +#: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:10 +msgid "Editors pick" +msgstr "" + +#: templates/wagtailsearch/editorspicks/includes/editorspicks_formset.html:14 +msgid "Add recommended page" +msgstr "" + +#: templates/wagtailsearch/queries/chooser/chooser.html:2 +msgid "Popular search terms" +msgstr "" + +#: templates/wagtailsearch/queries/chooser/chooser.html:11 +msgid "Search" +msgstr "Поиск" + +#: templates/wagtailsearch/queries/chooser/results.html:7 +msgid "Terms" +msgstr "" + +#: templates/wagtailsearch/queries/chooser/results.html:22 +msgid "No results found" +msgstr "Ничего не найдено" + +#: views/editorspicks.py:47 +msgid "Search editor's picks" +msgstr "" + +#: views/editorspicks.py:83 +msgid "Editor's picks for '{0}' created." +msgstr "" + +#: views/editorspicks.py:89 +msgid "Recommendations have not been created due to errors" +msgstr "" + +#: views/editorspicks.py:117 +msgid "Editor's picks for '{0}' updated." +msgstr "" + +#: views/editorspicks.py:123 +msgid "Recommendations have not been saved due to errors" +msgstr "" + +#: views/editorspicks.py:142 +msgid "Editor's picks deleted." +msgstr "" diff --git a/wagtail/wagtailsearch/locale/vi/LC_MESSAGES/django.mo b/wagtail/wagtailsearch/locale/vi/LC_MESSAGES/django.mo new file mode 100644 index 000000000..ce5813eba Binary files /dev/null and b/wagtail/wagtailsearch/locale/vi/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsearch/locale/vi/LC_MESSAGES/django.po b/wagtail/wagtailsearch/locale/vi/LC_MESSAGES/django.po new file mode 100644 index 000000000..a18e2a46a --- /dev/null +++ b/wagtail/wagtailsearch/locale/vi/LC_MESSAGES/django.po @@ -0,0 +1,199 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-01 15:43+0000\n" +"Last-Translator: Karl Hobley \n" +"Language-Team: Vietnamese (http://www.transifex.com/projects/p/wagtail/language/vi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: forms.py:9 +msgid "Search term(s)/phrase" +msgstr "" + +#: forms.py:10 +msgid "" +"Enter the full search string to match. An \n" +" exact match is required for your Editors Picks to be \n" +" displayed, wildcards are NOT allowed." +msgstr "" + +#: forms.py:36 +msgid "Please specify at least one recommendation for this search term." +msgstr "" + +#: wagtail_hooks.py:25 templates/wagtailsearch/editorspicks/list.html:9 +msgid "Editors picks" +msgstr "" + +#: templates/wagtailsearch/editorspicks/add.html:3 +#: templates/wagtailsearch/editorspicks/add.html:5 +msgid "Add editor's pick" +msgstr "" + +#: templates/wagtailsearch/editorspicks/add.html:10 +msgid "" +"\n" +"

      Editors picks are a means of recommending specific pages that might not organically come high up in search results. E.g recommending your primary donation page to a user searching with a less common term like \"giving\".

      \n" +" " +msgstr "" + +#: templates/wagtailsearch/editorspicks/add.html:13 +msgid "" +"\n" +"

      The \"Search term(s)/phrase\" field below must contain the full and exact search for which you wish to provide recommended results, including any misspellings/user error. To help, you can choose from search terms that have been popular with users of your site.

      \n" +" " +msgstr "" + +#: templates/wagtailsearch/editorspicks/add.html:27 +#: templates/wagtailsearch/editorspicks/edit.html:19 +msgid "Save" +msgstr "" + +#: templates/wagtailsearch/editorspicks/confirm_delete.html:3 +#, python-format +msgid "Delete %(query)s" +msgstr "" + +#: templates/wagtailsearch/editorspicks/confirm_delete.html:5 +#: templates/wagtailsearch/editorspicks/edit.html:20 +#: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:6 +msgid "Delete" +msgstr "" + +#: templates/wagtailsearch/editorspicks/confirm_delete.html:9 +msgid "" +"Are you sure you want to delete all editors picks for this search term?" +msgstr "" + +#: templates/wagtailsearch/editorspicks/confirm_delete.html:12 +msgid "Yes, delete" +msgstr "" + +#: templates/wagtailsearch/editorspicks/edit.html:3 +#, python-format +msgid "Editing %(query)s" +msgstr "" + +#: templates/wagtailsearch/editorspicks/edit.html:5 +msgid "Editing" +msgstr "" + +#: templates/wagtailsearch/editorspicks/index.html:3 +msgid "Search Terms" +msgstr "" + +#: templates/wagtailsearch/editorspicks/index.html:17 +msgid "Editor's search picks" +msgstr "" + +#: templates/wagtailsearch/editorspicks/index.html:18 +msgid "Add new editor's pick" +msgstr "" + +#: templates/wagtailsearch/editorspicks/list.html:8 +msgid "Search term(s)" +msgstr "" + +#: templates/wagtailsearch/editorspicks/list.html:10 +#: templates/wagtailsearch/queries/chooser/results.html:8 +msgid "Views (past week)" +msgstr "" + +#: templates/wagtailsearch/editorspicks/list.html:17 +msgid "Edit this pick" +msgstr "" + +#: templates/wagtailsearch/editorspicks/list.html:23 +msgid "None" +msgstr "" + +#: templates/wagtailsearch/editorspicks/results.html:5 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "" + +#: templates/wagtailsearch/editorspicks/results.html:18 +#, python-format +msgid "Sorry, no editor's picks match \"%(query_string)s\"" +msgstr "" + +#: templates/wagtailsearch/editorspicks/results.html:21 +#, python-format +msgid "" +"No editor's picks have been created. Why not add one?" +msgstr "" + +#: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:4 +msgid "Move up" +msgstr "" + +#: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:5 +msgid "Move down" +msgstr "" + +#: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:10 +msgid "Editors pick" +msgstr "" + +#: templates/wagtailsearch/editorspicks/includes/editorspicks_formset.html:14 +msgid "Add recommended page" +msgstr "" + +#: templates/wagtailsearch/queries/chooser/chooser.html:2 +msgid "Popular search terms" +msgstr "" + +#: templates/wagtailsearch/queries/chooser/chooser.html:11 +msgid "Search" +msgstr "" + +#: templates/wagtailsearch/queries/chooser/results.html:7 +msgid "Terms" +msgstr "" + +#: templates/wagtailsearch/queries/chooser/results.html:22 +msgid "No results found" +msgstr "" + +#: views/editorspicks.py:47 +msgid "Search editor's picks" +msgstr "" + +#: views/editorspicks.py:83 +msgid "Editor's picks for '{0}' created." +msgstr "" + +#: views/editorspicks.py:89 +msgid "Recommendations have not been created due to errors" +msgstr "" + +#: views/editorspicks.py:117 +msgid "Editor's picks for '{0}' updated." +msgstr "" + +#: views/editorspicks.py:123 +msgid "Recommendations have not been saved due to errors" +msgstr "" + +#: views/editorspicks.py:142 +msgid "Editor's picks deleted." +msgstr "" diff --git a/wagtail/wagtailsearch/locale/zh/LC_MESSAGES/django.mo b/wagtail/wagtailsearch/locale/zh/LC_MESSAGES/django.mo index da1c1893d..2d132f85f 100644 Binary files a/wagtail/wagtailsearch/locale/zh/LC_MESSAGES/django.mo and b/wagtail/wagtailsearch/locale/zh/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsearch/locale/zh/LC_MESSAGES/django.po b/wagtail/wagtailsearch/locale/zh/LC_MESSAGES/django.po index 0d7561367..bf4a7cdba 100644 --- a/wagtail/wagtailsearch/locale/zh/LC_MESSAGES/django.po +++ b/wagtail/wagtailsearch/locale/zh/LC_MESSAGES/django.po @@ -1,20 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Chinese (http://www.transifex.com/projects/p/wagtail/language/zh/)\n" +"Language-Team: Chinese (http://www.transifex.com/projects/p/wagtail/language/" +"zh/)\n" +"Language: zh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh\n" "Plural-Forms: nplurals=1; plural=0;\n" #: forms.py:9 @@ -26,13 +27,16 @@ msgid "" "Enter the full search string to match. An \n" " exact match is required for your Editors Picks to be \n" " displayed, wildcards are NOT allowed." -msgstr "输入完整的字符来匹配. \n 必须输入完全一样的编辑精选进行匹配 \n 不允许匹配" +msgstr "" +"输入完整的字符来匹配. \n" +" 必须输入完全一样的编辑精选进行匹配 \n" +" 不允许匹配" #: forms.py:36 msgid "Please specify at least one recommendation for this search term." msgstr "" -#: wagtail_hooks.py:23 templates/wagtailsearch/editorspicks/list.html:9 +#: wagtail_hooks.py:25 templates/wagtailsearch/editorspicks/list.html:9 msgid "Editors picks" msgstr "编辑精选" @@ -44,14 +48,20 @@ msgstr "添加编辑精选" #: templates/wagtailsearch/editorspicks/add.html:10 msgid "" "\n" -"

      Editors picks are a means of recommending specific pages that might not organically come high up in search results. E.g recommending your primary donation page to a user searching with a less common term like \"giving\".

      \n" +"

      Editors picks are a means of recommending specific pages " +"that might not organically come high up in search results. E.g recommending " +"your primary donation page to a user searching with a less common term like " +"\"giving\".

      \n" " " msgstr "" #: templates/wagtailsearch/editorspicks/add.html:13 msgid "" "\n" -"

      The \"Search term(s)/phrase\" field below must contain the full and exact search for which you wish to provide recommended results, including any misspellings/user error. To help, you can choose from search terms that have been popular with users of your site.

      \n" +"

      The \"Search term(s)/phrase\" field below must contain " +"the full and exact search for which you wish to provide recommended results, " +"including any misspellings/user error. To help, you can choose from " +"search terms that have been popular with users of your site.

      \n" " " msgstr "" @@ -72,8 +82,7 @@ msgid "Delete" msgstr "删除" #: templates/wagtailsearch/editorspicks/confirm_delete.html:9 -msgid "" -"Are you sure you want to delete all editors picks for this search term?" +msgid "Are you sure you want to delete all editors picks for this search term?" msgstr "你确定你想要删除所有匹配这个关键词的编辑精选吗?" #: templates/wagtailsearch/editorspicks/confirm_delete.html:12 @@ -138,9 +147,11 @@ msgstr "" #: templates/wagtailsearch/editorspicks/results.html:21 #, python-format msgid "" -"No editor's picks have been created. Why not add one?" -msgstr "没有任何已保存的编辑精选. 为什么不 加入一个?" +"No editor's picks have been created. Why not add one?" +msgstr "" +"没有任何已保存的编辑精选. 为什么不 加入一个?" #: templates/wagtailsearch/editorspicks/includes/editorspicks_form.html:4 msgid "Move up" diff --git a/wagtail/wagtailsearch/locale/zh_TW/LC_MESSAGES/django.mo b/wagtail/wagtailsearch/locale/zh_TW/LC_MESSAGES/django.mo index 048f04874..411a3778b 100644 Binary files a/wagtail/wagtailsearch/locale/zh_TW/LC_MESSAGES/django.mo and b/wagtail/wagtailsearch/locale/zh_TW/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsearch/locale/zh_TW/LC_MESSAGES/django.po b/wagtail/wagtailsearch/locale/zh_TW/LC_MESSAGES/django.po index 00bc8ec1a..1a39abe58 100644 --- a/wagtail/wagtailsearch/locale/zh_TW/LC_MESSAGES/django.po +++ b/wagtail/wagtailsearch/locale/zh_TW/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 21:12+0000\n" "Last-Translator: wdv4758h \n" "Language-Team: \n" @@ -35,7 +35,7 @@ msgstr "" msgid "Please specify at least one recommendation for this search term." msgstr "" -#: wagtail_hooks.py:23 templates/wagtailsearch/editorspicks/list.html:9 +#: wagtail_hooks.py:25 templates/wagtailsearch/editorspicks/list.html:9 msgid "Editors picks" msgstr "編者精選" diff --git a/wagtail/wagtailsearch/migrations/0001_initial.py b/wagtail/wagtailsearch/migrations/0001_initial.py new file mode 100644 index 000000000..eebd11a6a --- /dev/null +++ b/wagtail/wagtailsearch/migrations/0001_initial.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('wagtailcore', '0002_initial_data'), + ] + + operations = [ + migrations.CreateModel( + name='EditorsPick', + fields=[ + ('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)), + ('sort_order', models.IntegerField(blank=True, null=True, editable=False)), + ('description', models.TextField(blank=True)), + ('page', models.ForeignKey(to='wagtailcore.Page')), + ], + options={ + 'ordering': ('sort_order',), + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Query', + fields=[ + ('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)), + ('query_string', models.CharField(unique=True, max_length=255)), + ], + options={ + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='QueryDailyHits', + fields=[ + ('id', models.AutoField(serialize=False, auto_created=True, verbose_name='ID', primary_key=True)), + ('date', models.DateField()), + ('hits', models.IntegerField(default=0)), + ('query', models.ForeignKey(to='wagtailsearch.Query', related_name='daily_hits')), + ], + options={ + }, + bases=(models.Model,), + ), + migrations.AlterUniqueTogether( + name='querydailyhits', + unique_together=set([('query', 'date')]), + ), + migrations.AddField( + model_name='editorspick', + name='query', + field=models.ForeignKey(to='wagtailsearch.Query', related_name='editors_picks'), + preserve_default=True, + ), + ] diff --git a/wagtail/wagtailsearch/migrations/__init__.py b/wagtail/wagtailsearch/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/wagtail/wagtailsearch/models.py b/wagtail/wagtailsearch/models.py index f82bb2462..a24183ad9 100644 --- a/wagtail/wagtailsearch/models.py +++ b/wagtail/wagtailsearch/models.py @@ -4,7 +4,6 @@ from django.db import models from django.utils import timezone from django.utils.encoding import python_2_unicode_compatible -from wagtail.wagtailsearch import indexed from wagtail.wagtailsearch.utils import normalise_query_string, MAX_QUERY_STRING_LENGTH diff --git a/wagtail/wagtailsearch/signal_handlers.py b/wagtail/wagtailsearch/signal_handlers.py index 3550e5175..decbfdb51 100644 --- a/wagtail/wagtailsearch/signal_handlers.py +++ b/wagtail/wagtailsearch/signal_handlers.py @@ -1,17 +1,8 @@ from django.db.models.signals import post_save, post_delete from django.db import models -from django.conf import settings -from wagtail.wagtailsearch.indexed import Indexed -from wagtail.wagtailsearch.backends import get_search_backend - - -def get_search_backends(): - if hasattr(settings, 'WAGTAILSEARCH_BACKENDS'): - for backend in settings.WAGTAILSEARCH_BACKENDS.keys(): - yield get_search_backend(backend) - else: - yield get_search_backend('default') +from wagtail.wagtailsearch.index import Indexed +from wagtail.wagtailsearch.backends import get_search_backends def post_save_signal_handler(instance, **kwargs): diff --git a/wagtail/wagtailsearch/tests/test_elasticsearch_backend.py b/wagtail/wagtailsearch/tests/test_elasticsearch_backend.py index 3ddce5618..027c686fc 100644 --- a/wagtail/wagtailsearch/tests/test_elasticsearch_backend.py +++ b/wagtail/wagtailsearch/tests/test_elasticsearch_backend.py @@ -1,3 +1,6 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + from wagtail.tests.utils import unittest import datetime import json @@ -65,6 +68,28 @@ class TestElasticSearchBackend(BackendTests, TestCase): self.assertEqual(len(results), 1) self.assertEqual(results[0].id, obj.id) + def test_ascii_folding(self): + # Reset the index + self.backend.reset_index() + self.backend.add_type(models.SearchTest) + self.backend.add_type(models.SearchTestChild) + + # Add some test data + obj = models.SearchTest() + obj.title = "Ĥéỻø" + obj.live = True + obj.save() + self.backend.add(obj) + + # Refresh the index + self.backend.refresh_index() + + # Search and check + results = self.backend.search("Hello", models.SearchTest.objects.all()) + + self.assertEqual(len(results), 1) + self.assertEqual(results[0].id, obj.id) + class TestElasticSearchQuery(TestCase): def assertDictEqual(self, a, b): diff --git a/wagtail/wagtailsearch/tests/test_indexed_class.py b/wagtail/wagtailsearch/tests/test_indexed_class.py index 983d8e0ba..61d290c39 100644 --- a/wagtail/wagtailsearch/tests/test_indexed_class.py +++ b/wagtail/wagtailsearch/tests/test_indexed_class.py @@ -2,7 +2,7 @@ import warnings from django.test import TestCase -from wagtail.wagtailsearch import indexed +from wagtail.wagtailsearch import index from wagtail.tests import models from wagtail.tests.utils import WagtailTestUtils @@ -15,39 +15,3 @@ class TestContentTypeNames(TestCase): def test_qualified_content_type_name(self): name = models.SearchTestChild.indexed_get_content_type() self.assertEqual(name, 'tests_searchtest_tests_searchtestchild') - - -class TestIndexedFieldsBackwardsCompatibility(TestCase, WagtailTestUtils): - def test_indexed_fields_backwards_compatibility(self): - # Get search fields - with self.ignore_deprecation_warnings(): - search_fields = models.SearchTestOldConfig.get_search_fields() - - search_fields_dict = dict( - ((field.field_name, type(field)), field) - for field in search_fields - ) - - # Check that the fields were found - self.assertEqual(len(search_fields_dict), 2) - self.assertIn(('title', indexed.SearchField), search_fields_dict.keys()) - self.assertIn(('live', indexed.FilterField), search_fields_dict.keys()) - - # Check that the title field has the correct settings - self.assertTrue(search_fields_dict[('title', indexed.SearchField)].partial_match) - self.assertEqual(search_fields_dict[('title', indexed.SearchField)].boost, 100) - - def test_indexed_fields_backwards_compatibility_list(self): - # Get search fields - with self.ignore_deprecation_warnings(): - search_fields = models.SearchTestOldConfigList.get_search_fields() - - search_fields_dict = dict( - ((field.field_name, type(field)), field) - for field in search_fields - ) - - # Check that the fields were found - self.assertEqual(len(search_fields_dict), 2) - self.assertIn(('title', indexed.SearchField), search_fields_dict.keys()) - self.assertIn(('content', indexed.SearchField), search_fields_dict.keys()) diff --git a/wagtail/wagtailsearch/wagtail_hooks.py b/wagtail/wagtailsearch/wagtail_hooks.py index d3d533036..4996f0284 100644 --- a/wagtail/wagtailsearch/wagtail_hooks.py +++ b/wagtail/wagtailsearch/wagtail_hooks.py @@ -15,10 +15,11 @@ def register_admin_urls(): ] -@hooks.register('construct_main_menu') -def construct_main_menu(request, menu_items): - # TEMPORARY: Only show if the user is a superuser - if request.user.is_superuser: - menu_items.append( - MenuItem(_('Editors picks'), urlresolvers.reverse('wagtailsearch_editorspicks_index'), classnames='icon icon-pick', order=900) - ) +class EditorsPicksMenuItem(MenuItem): + def is_shown(self, request): + # TEMPORARY: Only show if the user is a superuser + return request.user.is_superuser + +@hooks.register('register_admin_menu_item') +def register_editors_picks_menu_item(): + return EditorsPicksMenuItem(_('Editors picks'), urlresolvers.reverse('wagtailsearch_editorspicks_index'), classnames='icon icon-pick', order=900) diff --git a/wagtail/wagtailsnippets/__init__.py b/wagtail/wagtailsnippets/__init__.py index e69de29bb..4b8d21cd7 100644 --- a/wagtail/wagtailsnippets/__init__.py +++ b/wagtail/wagtailsnippets/__init__.py @@ -0,0 +1 @@ +default_app_config = 'wagtail.wagtailsnippets.apps.WagtailSnippetsAppConfig' diff --git a/wagtail/wagtailsnippets/apps.py b/wagtail/wagtailsnippets/apps.py new file mode 100644 index 000000000..f63d40759 --- /dev/null +++ b/wagtail/wagtailsnippets/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class WagtailSnippetsAppConfig(AppConfig): + name = 'wagtail.wagtailsnippets' + label = 'wagtailsnippets' + verbose_name = "Wagtail snippets" diff --git a/wagtail/wagtailsnippets/locale/bg/LC_MESSAGES/django.mo b/wagtail/wagtailsnippets/locale/bg/LC_MESSAGES/django.mo index a759b9953..18e6ce497 100644 Binary files a/wagtail/wagtailsnippets/locale/bg/LC_MESSAGES/django.mo and b/wagtail/wagtailsnippets/locale/bg/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsnippets/locale/bg/LC_MESSAGES/django.po b/wagtail/wagtailsnippets/locale/bg/LC_MESSAGES/django.po index 0696859b9..7063a4f03 100644 --- a/wagtail/wagtailsnippets/locale/bg/LC_MESSAGES/django.po +++ b/wagtail/wagtailsnippets/locale/bg/LC_MESSAGES/django.po @@ -1,24 +1,25 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Lyuboslav Petrov , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Bulgarian (http://www.transifex.com/projects/p/wagtail/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/projects/p/wagtail/" +"language/bg/)\n" +"Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: wagtail_hooks.py:25 templates/wagtailsnippets/snippets/index.html:3 +#: wagtail_hooks.py:27 templates/wagtailsnippets/snippets/index.html:3 msgid "Snippets" msgstr "Откъси от код" @@ -101,9 +102,11 @@ msgstr "Добави %(snippet_type_name)s" #: templates/wagtailsnippets/snippets/type_index.html:23 #, python-format msgid "" -"No %(snippet_type_name_plural)s have been created. Why not add one?" -msgstr "Няма създадени %(snippet_type_name_plural)s. Защо не добавите един сега?" +"No %(snippet_type_name_plural)s have been created. Why not add one?" +msgstr "" +"Няма създадени %(snippet_type_name_plural)s. Защо не добавите един сега?" #: templates/wagtailsnippets/snippets/usage.html:3 #, python-format diff --git a/wagtail/wagtailsnippets/locale/ca/LC_MESSAGES/django.mo b/wagtail/wagtailsnippets/locale/ca/LC_MESSAGES/django.mo index 15dec447c..91a7361dd 100644 Binary files a/wagtail/wagtailsnippets/locale/ca/LC_MESSAGES/django.mo and b/wagtail/wagtailsnippets/locale/ca/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsnippets/locale/ca/LC_MESSAGES/django.po b/wagtail/wagtailsnippets/locale/ca/LC_MESSAGES/django.po index c9f7a423e..9022d9f3d 100644 --- a/wagtail/wagtailsnippets/locale/ca/LC_MESSAGES/django.po +++ b/wagtail/wagtailsnippets/locale/ca/LC_MESSAGES/django.po @@ -1,24 +1,25 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # David Llop , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Catalan (http://www.transifex.com/projects/p/wagtail/language/ca/)\n" +"Language-Team: Catalan (http://www.transifex.com/projects/p/wagtail/language/" +"ca/)\n" +"Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: wagtail_hooks.py:25 templates/wagtailsnippets/snippets/index.html:3 +#: wagtail_hooks.py:27 templates/wagtailsnippets/snippets/index.html:3 msgid "Snippets" msgstr "Fragments" @@ -101,9 +102,11 @@ msgstr "Afegeix %(snippet_type_name)s" #: templates/wagtailsnippets/snippets/type_index.html:23 #, python-format msgid "" -"No %(snippet_type_name_plural)s have been created. Why not add one?" -msgstr "No s'ha creat cap %(snippet_type_name_plural)s. Per què no afeixes un?" +"No %(snippet_type_name_plural)s have been created. Why not add one?" +msgstr "" +"No s'ha creat cap %(snippet_type_name_plural)s. Per què no afeixes un?" #: templates/wagtailsnippets/snippets/usage.html:3 #, python-format diff --git a/wagtail/wagtailsnippets/locale/de/LC_MESSAGES/django.mo b/wagtail/wagtailsnippets/locale/de/LC_MESSAGES/django.mo index 8e1c73d7c..04a09532f 100644 Binary files a/wagtail/wagtailsnippets/locale/de/LC_MESSAGES/django.mo and b/wagtail/wagtailsnippets/locale/de/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsnippets/locale/de/LC_MESSAGES/django.po b/wagtail/wagtailsnippets/locale/de/LC_MESSAGES/django.po index f1b1aeb98..b93b539b5 100644 --- a/wagtail/wagtailsnippets/locale/de/LC_MESSAGES/django.po +++ b/wagtail/wagtailsnippets/locale/de/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Johannes Spielmann , 2014 # karlsander , 2014 @@ -9,17 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: German (http://www.transifex.com/projects/p/wagtail/language/de/)\n" +"Language-Team: German (http://www.transifex.com/projects/p/wagtail/language/" +"de/)\n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: wagtail_hooks.py:25 templates/wagtailsnippets/snippets/index.html:3 +#: wagtail_hooks.py:27 templates/wagtailsnippets/snippets/index.html:3 msgid "Snippets" msgstr "Snippets" @@ -102,9 +103,11 @@ msgstr "%(snippet_type_name)s hinzufügen" #: templates/wagtailsnippets/snippets/type_index.html:23 #, python-format msgid "" -"No %(snippet_type_name_plural)s have been created. Why not add one?" -msgstr "Sie haben noch keine %(snippet_type_name_plural)s erstellt. Erstellen Sie doch jetzt eins!" +"No %(snippet_type_name_plural)s have been created. Why not add one?" +msgstr "" +"Sie haben noch keine %(snippet_type_name_plural)s erstellt. Erstellen Sie doch jetzt eins!" #: templates/wagtailsnippets/snippets/usage.html:3 #, python-format diff --git a/wagtail/wagtailsnippets/locale/el/LC_MESSAGES/django.mo b/wagtail/wagtailsnippets/locale/el/LC_MESSAGES/django.mo index a052bc0c3..668682466 100644 Binary files a/wagtail/wagtailsnippets/locale/el/LC_MESSAGES/django.mo and b/wagtail/wagtailsnippets/locale/el/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsnippets/locale/el/LC_MESSAGES/django.po b/wagtail/wagtailsnippets/locale/el/LC_MESSAGES/django.po index c68845336..5e051b938 100644 --- a/wagtail/wagtailsnippets/locale/el/LC_MESSAGES/django.po +++ b/wagtail/wagtailsnippets/locale/el/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # serafeim , 2014 # serafeim , 2014 @@ -9,17 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Greek (http://www.transifex.com/projects/p/wagtail/language/el/)\n" +"Language-Team: Greek (http://www.transifex.com/projects/p/wagtail/language/" +"el/)\n" +"Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: wagtail_hooks.py:25 templates/wagtailsnippets/snippets/index.html:3 +#: wagtail_hooks.py:27 templates/wagtailsnippets/snippets/index.html:3 msgid "Snippets" msgstr "Snippets" @@ -102,9 +103,11 @@ msgstr "Προσθήκη %(snippet_type_name)s" #: templates/wagtailsnippets/snippets/type_index.html:23 #, python-format msgid "" -"No %(snippet_type_name_plural)s have been created. Why not add one?" -msgstr "Δεν υπάρχουν %(snippet_type_name_plural)s. Θέλετε να προσθέσετε μερικά;" +"No %(snippet_type_name_plural)s have been created. Why not add one?" +msgstr "" +"Δεν υπάρχουν %(snippet_type_name_plural)s. Θέλετε να προσθέσετε μερικά;" #: templates/wagtailsnippets/snippets/usage.html:3 #, python-format diff --git a/wagtail/wagtailsnippets/locale/en/LC_MESSAGES/django.mo b/wagtail/wagtailsnippets/locale/en/LC_MESSAGES/django.mo index 44e531ab0..bc5cb1688 100644 Binary files a/wagtail/wagtailsnippets/locale/en/LC_MESSAGES/django.mo and b/wagtail/wagtailsnippets/locale/en/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsnippets/locale/en/LC_MESSAGES/django.po b/wagtail/wagtailsnippets/locale/en/LC_MESSAGES/django.po index cc93c2812..50d8fe349 100644 --- a/wagtail/wagtailsnippets/locale/en/LC_MESSAGES/django.po +++ b/wagtail/wagtailsnippets/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: wagtail_hooks.py:25 templates/wagtailsnippets/snippets/index.html:3 +#: wagtail_hooks.py:27 templates/wagtailsnippets/snippets/index.html:3 msgid "Snippets" msgstr "" diff --git a/wagtail/wagtailsnippets/locale/es/LC_MESSAGES/django.mo b/wagtail/wagtailsnippets/locale/es/LC_MESSAGES/django.mo index 5f5980e94..09992fcf2 100644 Binary files a/wagtail/wagtailsnippets/locale/es/LC_MESSAGES/django.mo and b/wagtail/wagtailsnippets/locale/es/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsnippets/locale/es/LC_MESSAGES/django.po b/wagtail/wagtailsnippets/locale/es/LC_MESSAGES/django.po index baf1997b9..06bff3e3c 100644 --- a/wagtail/wagtailsnippets/locale/es/LC_MESSAGES/django.po +++ b/wagtail/wagtailsnippets/locale/es/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # fooflare , 2014 # fooflare , 2014 @@ -9,17 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Spanish (http://www.transifex.com/projects/p/wagtail/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/projects/p/wagtail/language/" +"es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: wagtail_hooks.py:25 templates/wagtailsnippets/snippets/index.html:3 +#: wagtail_hooks.py:27 templates/wagtailsnippets/snippets/index.html:3 msgid "Snippets" msgstr "Fragmentos" @@ -102,9 +103,11 @@ msgstr "Añadir %(snippet_type_name)s" #: templates/wagtailsnippets/snippets/type_index.html:23 #, python-format msgid "" -"No %(snippet_type_name_plural)s have been created. Why not add one?" -msgstr "Ningún %(snippet_type_name_plural)s ha sido creado. ¿Por qué no añadir uno?" +"No %(snippet_type_name_plural)s have been created. Why not add one?" +msgstr "" +"Ningún %(snippet_type_name_plural)s ha sido creado. ¿Por qué no añadir uno?" #: templates/wagtailsnippets/snippets/usage.html:3 #, python-format diff --git a/wagtail/wagtailsnippets/locale/eu/LC_MESSAGES/django.mo b/wagtail/wagtailsnippets/locale/eu/LC_MESSAGES/django.mo index b3e5368fc..cbda75991 100644 Binary files a/wagtail/wagtailsnippets/locale/eu/LC_MESSAGES/django.mo and b/wagtail/wagtailsnippets/locale/eu/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsnippets/locale/eu/LC_MESSAGES/django.po b/wagtail/wagtailsnippets/locale/eu/LC_MESSAGES/django.po index edade1ac3..6a6f0b871 100644 --- a/wagtail/wagtailsnippets/locale/eu/LC_MESSAGES/django.po +++ b/wagtail/wagtailsnippets/locale/eu/LC_MESSAGES/django.po @@ -1,23 +1,24 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Basque (http://www.transifex.com/projects/p/wagtail/language/eu/)\n" +"Language-Team: Basque (http://www.transifex.com/projects/p/wagtail/language/" +"eu/)\n" +"Language: eu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: wagtail_hooks.py:25 templates/wagtailsnippets/snippets/index.html:3 +#: wagtail_hooks.py:27 templates/wagtailsnippets/snippets/index.html:3 msgid "Snippets" msgstr "" @@ -100,8 +101,8 @@ msgstr "" #: templates/wagtailsnippets/snippets/type_index.html:23 #, python-format msgid "" -"No %(snippet_type_name_plural)s have been created. Why not add one?" +"No %(snippet_type_name_plural)s have been created. Why not add one?" msgstr "" #: templates/wagtailsnippets/snippets/usage.html:3 diff --git a/wagtail/wagtailsnippets/locale/fr/LC_MESSAGES/django.mo b/wagtail/wagtailsnippets/locale/fr/LC_MESSAGES/django.mo index 4acab4cbe..e3f0d8ae7 100644 Binary files a/wagtail/wagtailsnippets/locale/fr/LC_MESSAGES/django.mo and b/wagtail/wagtailsnippets/locale/fr/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsnippets/locale/fr/LC_MESSAGES/django.po b/wagtail/wagtailsnippets/locale/fr/LC_MESSAGES/django.po index 33517b893..9f6893ace 100644 --- a/wagtail/wagtailsnippets/locale/fr/LC_MESSAGES/django.po +++ b/wagtail/wagtailsnippets/locale/fr/LC_MESSAGES/django.po @@ -1,24 +1,25 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # nahuel, 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: French (http://www.transifex.com/projects/p/wagtail/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/projects/p/wagtail/language/" +"fr/)\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: wagtail_hooks.py:25 templates/wagtailsnippets/snippets/index.html:3 +#: wagtail_hooks.py:27 templates/wagtailsnippets/snippets/index.html:3 msgid "Snippets" msgstr "" @@ -101,9 +102,11 @@ msgstr "" #: templates/wagtailsnippets/snippets/type_index.html:23 #, python-format msgid "" -"No %(snippet_type_name_plural)s have been created. Why not add one?" -msgstr "Aucun %(snippet_type_name_plural)s n'a été créé. Pourquoi ne pas en ajouter un?" +"No %(snippet_type_name_plural)s have been created. Why not add one?" +msgstr "" +"Aucun %(snippet_type_name_plural)s n'a été créé. Pourquoi ne pas en ajouter un?" #: templates/wagtailsnippets/snippets/usage.html:3 #, python-format diff --git a/wagtail/wagtailsnippets/locale/gl/LC_MESSAGES/django.mo b/wagtail/wagtailsnippets/locale/gl/LC_MESSAGES/django.mo index 024a5263d..bd76e4b70 100644 Binary files a/wagtail/wagtailsnippets/locale/gl/LC_MESSAGES/django.mo and b/wagtail/wagtailsnippets/locale/gl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsnippets/locale/gl/LC_MESSAGES/django.po b/wagtail/wagtailsnippets/locale/gl/LC_MESSAGES/django.po index c3cdd7047..121263184 100644 --- a/wagtail/wagtailsnippets/locale/gl/LC_MESSAGES/django.po +++ b/wagtail/wagtailsnippets/locale/gl/LC_MESSAGES/django.po @@ -1,24 +1,25 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # fooflare , 2014 msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Galician (http://www.transifex.com/projects/p/wagtail/language/gl/)\n" +"Language-Team: Galician (http://www.transifex.com/projects/p/wagtail/" +"language/gl/)\n" +"Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: wagtail_hooks.py:25 templates/wagtailsnippets/snippets/index.html:3 +#: wagtail_hooks.py:27 templates/wagtailsnippets/snippets/index.html:3 msgid "Snippets" msgstr "Fragmentos" @@ -101,9 +102,11 @@ msgstr "Engadir %(snippet_type_name)s" #: templates/wagtailsnippets/snippets/type_index.html:23 #, python-format msgid "" -"No %(snippet_type_name_plural)s have been created. Why not add one?" -msgstr "Ningún %(snippet_type_name_plural)s foi creado. ¿Por qué non engadir un?" +"No %(snippet_type_name_plural)s have been created. Why not add one?" +msgstr "" +"Ningún %(snippet_type_name_plural)s foi creado. ¿Por qué non engadir un?" #: templates/wagtailsnippets/snippets/usage.html:3 #, python-format diff --git a/wagtail/wagtailsnippets/locale/mn/LC_MESSAGES/django.mo b/wagtail/wagtailsnippets/locale/mn/LC_MESSAGES/django.mo index 086afbd48..1970643be 100644 Binary files a/wagtail/wagtailsnippets/locale/mn/LC_MESSAGES/django.mo and b/wagtail/wagtailsnippets/locale/mn/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsnippets/locale/mn/LC_MESSAGES/django.po b/wagtail/wagtailsnippets/locale/mn/LC_MESSAGES/django.po index 28f2e61c2..b61edf4fc 100644 --- a/wagtail/wagtailsnippets/locale/mn/LC_MESSAGES/django.po +++ b/wagtail/wagtailsnippets/locale/mn/LC_MESSAGES/django.po @@ -1,23 +1,24 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Mongolian (http://www.transifex.com/projects/p/wagtail/language/mn/)\n" +"Language-Team: Mongolian (http://www.transifex.com/projects/p/wagtail/" +"language/mn/)\n" +"Language: mn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: mn\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: wagtail_hooks.py:25 templates/wagtailsnippets/snippets/index.html:3 +#: wagtail_hooks.py:27 templates/wagtailsnippets/snippets/index.html:3 msgid "Snippets" msgstr "" @@ -100,8 +101,8 @@ msgstr "" #: templates/wagtailsnippets/snippets/type_index.html:23 #, python-format msgid "" -"No %(snippet_type_name_plural)s have been created. Why not add one?" +"No %(snippet_type_name_plural)s have been created. Why not add one?" msgstr "" #: templates/wagtailsnippets/snippets/usage.html:3 diff --git a/wagtail/wagtailsnippets/locale/pl/LC_MESSAGES/django.mo b/wagtail/wagtailsnippets/locale/pl/LC_MESSAGES/django.mo index cc356807a..1ed48417d 100644 Binary files a/wagtail/wagtailsnippets/locale/pl/LC_MESSAGES/django.mo and b/wagtail/wagtailsnippets/locale/pl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsnippets/locale/pl/LC_MESSAGES/django.po b/wagtail/wagtailsnippets/locale/pl/LC_MESSAGES/django.po index 8958e7e1e..7b5316492 100644 --- a/wagtail/wagtailsnippets/locale/pl/LC_MESSAGES/django.po +++ b/wagtail/wagtailsnippets/locale/pl/LC_MESSAGES/django.po @@ -1,23 +1,25 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Polish (http://www.transifex.com/projects/p/wagtail/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/projects/p/wagtail/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" -#: wagtail_hooks.py:25 templates/wagtailsnippets/snippets/index.html:3 +#: wagtail_hooks.py:27 templates/wagtailsnippets/snippets/index.html:3 msgid "Snippets" msgstr "Snippety" @@ -100,9 +102,11 @@ msgstr "Dodaj %(snippet_type_name)s" #: templates/wagtailsnippets/snippets/type_index.html:23 #, python-format msgid "" -"No %(snippet_type_name_plural)s have been created. Why not add one?" -msgstr "Żaden%(snippet_type_name_plural)s nie został stworzony. Czemu nie dodać jednego?" +"No %(snippet_type_name_plural)s have been created. Why not add one?" +msgstr "" +"Żaden%(snippet_type_name_plural)s nie został stworzony. Czemu nie dodać jednego?" #: templates/wagtailsnippets/snippets/usage.html:3 #, python-format diff --git a/wagtail/wagtailsnippets/locale/pt_BR/LC_MESSAGES/django.mo b/wagtail/wagtailsnippets/locale/pt_BR/LC_MESSAGES/django.mo new file mode 100644 index 000000000..7a39d63dc Binary files /dev/null and b/wagtail/wagtailsnippets/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsnippets/locale/pt_BR/LC_MESSAGES/django.po b/wagtail/wagtailsnippets/locale/pt_BR/LC_MESSAGES/django.po new file mode 100644 index 000000000..cd871e685 --- /dev/null +++ b/wagtail/wagtailsnippets/locale/pt_BR/LC_MESSAGES/django.po @@ -0,0 +1,151 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Gladson , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-17 01:55+0000\n" +"Last-Translator: Gladson \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/wagtail/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: wagtail_hooks.py:27 templates/wagtailsnippets/snippets/index.html:3 +msgid "Snippets" +msgstr "" + +#: templates/wagtailsnippets/chooser/choose.html:2 +msgid "Choose" +msgstr "Escolha" + +#: templates/wagtailsnippets/edit_handlers/snippet_chooser_panel.html:10 +#, python-format +msgid "Choose another %(snippet_type_name)s" +msgstr "Escolha outro %(snippet_type_name)s" + +#: templates/wagtailsnippets/edit_handlers/snippet_chooser_panel.html:11 +#, python-format +msgid "Choose %(snippet_type_name)s" +msgstr "Escolha %(snippet_type_name)s" + +#: templates/wagtailsnippets/snippets/confirm_delete.html:3 +#, python-format +msgid "Delete %(snippet_type_name)s - %(instance)s" +msgstr "Excluir %(snippet_type_name)s - %(instance)s" + +#: templates/wagtailsnippets/snippets/confirm_delete.html:6 +#: templates/wagtailsnippets/snippets/edit.html:20 +msgid "Delete" +msgstr "Excluir" + +#: templates/wagtailsnippets/snippets/confirm_delete.html:10 +#, python-format +msgid "Are you sure you want to delete this %(snippet_type_name)s?" +msgstr "Você tem certeza que deseja excluir essa %(snippet_type_name)s?" + +#: templates/wagtailsnippets/snippets/confirm_delete.html:13 +msgid "Yes, delete" +msgstr "Sim, exclua" + +#: templates/wagtailsnippets/snippets/create.html:3 +#, python-format +msgid "New %(snippet_type_name)s" +msgstr "Adicionar %(snippet_type_name)s" + +#: templates/wagtailsnippets/snippets/create.html:6 +msgid "New" +msgstr "Adicionar" + +#: templates/wagtailsnippets/snippets/create.html:17 +#: templates/wagtailsnippets/snippets/edit.html:17 +msgid "Save" +msgstr "Salvar" + +#: templates/wagtailsnippets/snippets/edit.html:3 +#, python-format +msgid "Editing %(snippet_type_name)s - %(instance)s" +msgstr "Editando %(snippet_type_name)s - %(instance)s" + +#: templates/wagtailsnippets/snippets/edit.html:6 +msgid "Editing" +msgstr "Editando" + +#: templates/wagtailsnippets/snippets/list.html:8 +#: templates/wagtailsnippets/snippets/usage.html:16 +msgid "Title" +msgstr "Título" + +#: templates/wagtailsnippets/snippets/type_index.html:3 +#, python-format +msgid "Snippets %(snippet_type_name_plural)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/type_index.html:10 +#, python-format +msgid "Snippets %(snippet_type_name_plural)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/type_index.html:13 +#, python-format +msgid "Add %(snippet_type_name)s" +msgstr "Adicionar %(snippet_type_name)s" + +#: templates/wagtailsnippets/snippets/type_index.html:23 +#, python-format +msgid "" +"No %(snippet_type_name_plural)s have been created. Why not add one?" +msgstr "" + +#: templates/wagtailsnippets/snippets/usage.html:3 +#, python-format +msgid "Usage of %(title)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/usage.html:5 +msgid "Usage of" +msgstr "" + +#: templates/wagtailsnippets/snippets/usage.html:17 +msgid "Parent" +msgstr "" + +#: templates/wagtailsnippets/snippets/usage.html:18 +msgid "Type" +msgstr "Tipo" + +#: templates/wagtailsnippets/snippets/usage.html:19 +msgid "Status" +msgstr "Status" + +#: templates/wagtailsnippets/snippets/usage.html:26 +msgid "Edit this page" +msgstr "Editar essa página" + +#: views/snippets.py:129 +msgid "{snippet_type} '{instance}' created." +msgstr "" + +#: views/snippets.py:136 +msgid "The snippet could not be created due to errors." +msgstr "" + +#: views/snippets.py:170 +msgid "{snippet_type} '{instance}' updated." +msgstr "" + +#: views/snippets.py:177 +msgid "The snippet could not be saved due to errors." +msgstr "" + +#: views/snippets.py:206 +msgid "{snippet_type} '{instance}' deleted." +msgstr "" diff --git a/wagtail/wagtailsnippets/locale/pt_PT/LC_MESSAGES/django.mo b/wagtail/wagtailsnippets/locale/pt_PT/LC_MESSAGES/django.mo new file mode 100644 index 000000000..29036a4ea Binary files /dev/null and b/wagtail/wagtailsnippets/locale/pt_PT/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsnippets/locale/pt_PT/LC_MESSAGES/django.po b/wagtail/wagtailsnippets/locale/pt_PT/LC_MESSAGES/django.po new file mode 100644 index 000000000..126c03818 --- /dev/null +++ b/wagtail/wagtailsnippets/locale/pt_PT/LC_MESSAGES/django.po @@ -0,0 +1,153 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: Wagtail 0.5.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-03 01:58+0100\n" +"Last-Translator: Jose Lourenco \n" +"Language-Team: \n" +"Language: pt_PT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: wagtail_hooks.py:27 templates/wagtailsnippets/snippets/index.html:3 +msgid "Snippets" +msgstr "Snippets" + +#: templates/wagtailsnippets/chooser/choose.html:2 +msgid "Choose" +msgstr "Escolher" + +#: templates/wagtailsnippets/edit_handlers/snippet_chooser_panel.html:10 +#, python-format +msgid "Choose another %(snippet_type_name)s" +msgstr "Escolher outro %(snippet_type_name)s" + +#: templates/wagtailsnippets/edit_handlers/snippet_chooser_panel.html:11 +#, python-format +msgid "Choose %(snippet_type_name)s" +msgstr "Escolher %(snippet_type_name)s" + +#: templates/wagtailsnippets/snippets/confirm_delete.html:3 +#, python-format +msgid "Delete %(snippet_type_name)s - %(instance)s" +msgstr "Eliminar %(snippet_type_name)s - %(instance)s" + +#: templates/wagtailsnippets/snippets/confirm_delete.html:6 +#: templates/wagtailsnippets/snippets/edit.html:20 +msgid "Delete" +msgstr "Eliminar" + +#: templates/wagtailsnippets/snippets/confirm_delete.html:10 +#, python-format +msgid "Are you sure you want to delete this %(snippet_type_name)s?" +msgstr "Tem a certeza que quer eliminar este %(snippet_type_name)s?" + +#: templates/wagtailsnippets/snippets/confirm_delete.html:13 +msgid "Yes, delete" +msgstr "Sim, eliminar" + +#: templates/wagtailsnippets/snippets/create.html:3 +#, python-format +msgid "New %(snippet_type_name)s" +msgstr "Novo %(snippet_type_name)s" + +#: templates/wagtailsnippets/snippets/create.html:6 +msgid "New" +msgstr "Novo" + +#: templates/wagtailsnippets/snippets/create.html:17 +#: templates/wagtailsnippets/snippets/edit.html:17 +msgid "Save" +msgstr "Guardar" + +#: templates/wagtailsnippets/snippets/edit.html:3 +#, python-format +msgid "Editing %(snippet_type_name)s - %(instance)s" +msgstr "Editando %(snippet_type_name)s - %(instance)s" + +#: templates/wagtailsnippets/snippets/edit.html:6 +msgid "Editing" +msgstr "Editando" + +#: templates/wagtailsnippets/snippets/list.html:8 +#: templates/wagtailsnippets/snippets/usage.html:16 +msgid "Title" +msgstr "Título" + +#: templates/wagtailsnippets/snippets/type_index.html:3 +#, python-format +msgid "Snippets %(snippet_type_name_plural)s" +msgstr "Snippets %(snippet_type_name_plural)s" + +#: templates/wagtailsnippets/snippets/type_index.html:10 +#, python-format +msgid "Snippets %(snippet_type_name_plural)s" +msgstr "Snippets %(snippet_type_name_plural)s" + +#: templates/wagtailsnippets/snippets/type_index.html:13 +#, python-format +msgid "Add %(snippet_type_name)s" +msgstr "Adicionar %(snippet_type_name)s" + +#: templates/wagtailsnippets/snippets/type_index.html:23 +#, python-format +msgid "" +"No %(snippet_type_name_plural)s have been created. Why not add one?" +msgstr "" +"Nenhum %(snippet_type_name_plural)s foi criado. Porque não adicionar um?" + +#: templates/wagtailsnippets/snippets/usage.html:3 +#, python-format +msgid "Usage of %(title)s" +msgstr "Utilização de %(title)s" + +#: templates/wagtailsnippets/snippets/usage.html:5 +msgid "Usage of" +msgstr "Utilização de" + +#: templates/wagtailsnippets/snippets/usage.html:17 +msgid "Parent" +msgstr "Ascendente" + +#: templates/wagtailsnippets/snippets/usage.html:18 +msgid "Type" +msgstr "Tipo" + +#: templates/wagtailsnippets/snippets/usage.html:19 +msgid "Status" +msgstr "Estado" + +#: templates/wagtailsnippets/snippets/usage.html:26 +msgid "Edit this page" +msgstr "Editar esta página" + +#: views/snippets.py:129 +msgid "{snippet_type} '{instance}' created." +msgstr "{snippet_type} '{instance}' atualizado." + +#: views/snippets.py:136 +msgid "The snippet could not be created due to errors." +msgstr "O snippet não pôde ser criado devido a erros." + +#: views/snippets.py:170 +msgid "{snippet_type} '{instance}' updated." +msgstr "{snippet_type} '{instance}' atualizado." + +#: views/snippets.py:177 +msgid "The snippet could not be saved due to errors." +msgstr "O snippet não pôde ser guardado devido a erros." + +#: views/snippets.py:206 +msgid "{snippet_type} '{instance}' deleted." +msgstr "{snippet_type} '{instance}' eliminado." diff --git a/wagtail/wagtailsnippets/locale/ro/LC_MESSAGES/django.mo b/wagtail/wagtailsnippets/locale/ro/LC_MESSAGES/django.mo index 696d6b2db..9c0ebcc8c 100644 Binary files a/wagtail/wagtailsnippets/locale/ro/LC_MESSAGES/django.mo and b/wagtail/wagtailsnippets/locale/ro/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsnippets/locale/ro/LC_MESSAGES/django.po b/wagtail/wagtailsnippets/locale/ro/LC_MESSAGES/django.po index b80fe4bd4..a59581df7 100644 --- a/wagtail/wagtailsnippets/locale/ro/LC_MESSAGES/django.po +++ b/wagtail/wagtailsnippets/locale/ro/LC_MESSAGES/django.po @@ -1,7 +1,7 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Dan Braghis, 2014 # Dan Braghis, 2014 @@ -9,17 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Romanian (http://www.transifex.com/projects/p/wagtail/language/ro/)\n" +"Language-Team: Romanian (http://www.transifex.com/projects/p/wagtail/" +"language/ro/)\n" +"Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: wagtail_hooks.py:25 templates/wagtailsnippets/snippets/index.html:3 +#: wagtail_hooks.py:27 templates/wagtailsnippets/snippets/index.html:3 msgid "Snippets" msgstr "Fragmente" @@ -102,9 +104,11 @@ msgstr "Adaugă %(snippet_type_name)s" #: templates/wagtailsnippets/snippets/type_index.html:23 #, python-format msgid "" -"No %(snippet_type_name_plural)s have been created. Why not add one?" -msgstr "Nu au fost create %(snippet_type_name_plural)s. De să nu adăugați unul?" +"No %(snippet_type_name_plural)s have been created. Why not add one?" +msgstr "" +"Nu au fost create %(snippet_type_name_plural)s. De să nu adăugați unul?" #: templates/wagtailsnippets/snippets/usage.html:3 #, python-format diff --git a/wagtail/wagtailsnippets/locale/ru/LC_MESSAGES/django.mo b/wagtail/wagtailsnippets/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 000000000..f81d35771 Binary files /dev/null and b/wagtail/wagtailsnippets/locale/ru/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsnippets/locale/ru/LC_MESSAGES/django.po b/wagtail/wagtailsnippets/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 000000000..561a0f001 --- /dev/null +++ b/wagtail/wagtailsnippets/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,150 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-01 15:43+0000\n" +"Last-Translator: Karl Hobley \n" +"Language-Team: Russian (http://www.transifex.com/projects/p/wagtail/language/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: wagtail_hooks.py:27 templates/wagtailsnippets/snippets/index.html:3 +msgid "Snippets" +msgstr "" + +#: templates/wagtailsnippets/chooser/choose.html:2 +msgid "Choose" +msgstr "" + +#: templates/wagtailsnippets/edit_handlers/snippet_chooser_panel.html:10 +#, python-format +msgid "Choose another %(snippet_type_name)s" +msgstr "" + +#: templates/wagtailsnippets/edit_handlers/snippet_chooser_panel.html:11 +#, python-format +msgid "Choose %(snippet_type_name)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/confirm_delete.html:3 +#, python-format +msgid "Delete %(snippet_type_name)s - %(instance)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/confirm_delete.html:6 +#: templates/wagtailsnippets/snippets/edit.html:20 +msgid "Delete" +msgstr "" + +#: templates/wagtailsnippets/snippets/confirm_delete.html:10 +#, python-format +msgid "Are you sure you want to delete this %(snippet_type_name)s?" +msgstr "" + +#: templates/wagtailsnippets/snippets/confirm_delete.html:13 +msgid "Yes, delete" +msgstr "" + +#: templates/wagtailsnippets/snippets/create.html:3 +#, python-format +msgid "New %(snippet_type_name)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/create.html:6 +msgid "New" +msgstr "" + +#: templates/wagtailsnippets/snippets/create.html:17 +#: templates/wagtailsnippets/snippets/edit.html:17 +msgid "Save" +msgstr "" + +#: templates/wagtailsnippets/snippets/edit.html:3 +#, python-format +msgid "Editing %(snippet_type_name)s - %(instance)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/edit.html:6 +msgid "Editing" +msgstr "" + +#: templates/wagtailsnippets/snippets/list.html:8 +#: templates/wagtailsnippets/snippets/usage.html:16 +msgid "Title" +msgstr "" + +#: templates/wagtailsnippets/snippets/type_index.html:3 +#, python-format +msgid "Snippets %(snippet_type_name_plural)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/type_index.html:10 +#, python-format +msgid "Snippets %(snippet_type_name_plural)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/type_index.html:13 +#, python-format +msgid "Add %(snippet_type_name)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/type_index.html:23 +#, python-format +msgid "" +"No %(snippet_type_name_plural)s have been created. Why not add one?" +msgstr "" + +#: templates/wagtailsnippets/snippets/usage.html:3 +#, python-format +msgid "Usage of %(title)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/usage.html:5 +msgid "Usage of" +msgstr "" + +#: templates/wagtailsnippets/snippets/usage.html:17 +msgid "Parent" +msgstr "" + +#: templates/wagtailsnippets/snippets/usage.html:18 +msgid "Type" +msgstr "" + +#: templates/wagtailsnippets/snippets/usage.html:19 +msgid "Status" +msgstr "" + +#: templates/wagtailsnippets/snippets/usage.html:26 +msgid "Edit this page" +msgstr "" + +#: views/snippets.py:129 +msgid "{snippet_type} '{instance}' created." +msgstr "" + +#: views/snippets.py:136 +msgid "The snippet could not be created due to errors." +msgstr "" + +#: views/snippets.py:170 +msgid "{snippet_type} '{instance}' updated." +msgstr "" + +#: views/snippets.py:177 +msgid "The snippet could not be saved due to errors." +msgstr "" + +#: views/snippets.py:206 +msgid "{snippet_type} '{instance}' deleted." +msgstr "" diff --git a/wagtail/wagtailsnippets/locale/vi/LC_MESSAGES/django.mo b/wagtail/wagtailsnippets/locale/vi/LC_MESSAGES/django.mo new file mode 100644 index 000000000..ce5813eba Binary files /dev/null and b/wagtail/wagtailsnippets/locale/vi/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsnippets/locale/vi/LC_MESSAGES/django.po b/wagtail/wagtailsnippets/locale/vi/LC_MESSAGES/django.po new file mode 100644 index 000000000..4ee41fafa --- /dev/null +++ b/wagtail/wagtailsnippets/locale/vi/LC_MESSAGES/django.po @@ -0,0 +1,150 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-01 15:43+0000\n" +"Last-Translator: Karl Hobley \n" +"Language-Team: Vietnamese (http://www.transifex.com/projects/p/wagtail/language/vi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: wagtail_hooks.py:27 templates/wagtailsnippets/snippets/index.html:3 +msgid "Snippets" +msgstr "" + +#: templates/wagtailsnippets/chooser/choose.html:2 +msgid "Choose" +msgstr "" + +#: templates/wagtailsnippets/edit_handlers/snippet_chooser_panel.html:10 +#, python-format +msgid "Choose another %(snippet_type_name)s" +msgstr "" + +#: templates/wagtailsnippets/edit_handlers/snippet_chooser_panel.html:11 +#, python-format +msgid "Choose %(snippet_type_name)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/confirm_delete.html:3 +#, python-format +msgid "Delete %(snippet_type_name)s - %(instance)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/confirm_delete.html:6 +#: templates/wagtailsnippets/snippets/edit.html:20 +msgid "Delete" +msgstr "" + +#: templates/wagtailsnippets/snippets/confirm_delete.html:10 +#, python-format +msgid "Are you sure you want to delete this %(snippet_type_name)s?" +msgstr "" + +#: templates/wagtailsnippets/snippets/confirm_delete.html:13 +msgid "Yes, delete" +msgstr "" + +#: templates/wagtailsnippets/snippets/create.html:3 +#, python-format +msgid "New %(snippet_type_name)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/create.html:6 +msgid "New" +msgstr "" + +#: templates/wagtailsnippets/snippets/create.html:17 +#: templates/wagtailsnippets/snippets/edit.html:17 +msgid "Save" +msgstr "" + +#: templates/wagtailsnippets/snippets/edit.html:3 +#, python-format +msgid "Editing %(snippet_type_name)s - %(instance)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/edit.html:6 +msgid "Editing" +msgstr "" + +#: templates/wagtailsnippets/snippets/list.html:8 +#: templates/wagtailsnippets/snippets/usage.html:16 +msgid "Title" +msgstr "" + +#: templates/wagtailsnippets/snippets/type_index.html:3 +#, python-format +msgid "Snippets %(snippet_type_name_plural)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/type_index.html:10 +#, python-format +msgid "Snippets %(snippet_type_name_plural)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/type_index.html:13 +#, python-format +msgid "Add %(snippet_type_name)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/type_index.html:23 +#, python-format +msgid "" +"No %(snippet_type_name_plural)s have been created. Why not add one?" +msgstr "" + +#: templates/wagtailsnippets/snippets/usage.html:3 +#, python-format +msgid "Usage of %(title)s" +msgstr "" + +#: templates/wagtailsnippets/snippets/usage.html:5 +msgid "Usage of" +msgstr "" + +#: templates/wagtailsnippets/snippets/usage.html:17 +msgid "Parent" +msgstr "" + +#: templates/wagtailsnippets/snippets/usage.html:18 +msgid "Type" +msgstr "" + +#: templates/wagtailsnippets/snippets/usage.html:19 +msgid "Status" +msgstr "" + +#: templates/wagtailsnippets/snippets/usage.html:26 +msgid "Edit this page" +msgstr "" + +#: views/snippets.py:129 +msgid "{snippet_type} '{instance}' created." +msgstr "" + +#: views/snippets.py:136 +msgid "The snippet could not be created due to errors." +msgstr "" + +#: views/snippets.py:170 +msgid "{snippet_type} '{instance}' updated." +msgstr "" + +#: views/snippets.py:177 +msgid "The snippet could not be saved due to errors." +msgstr "" + +#: views/snippets.py:206 +msgid "{snippet_type} '{instance}' deleted." +msgstr "" diff --git a/wagtail/wagtailsnippets/locale/zh/LC_MESSAGES/django.mo b/wagtail/wagtailsnippets/locale/zh/LC_MESSAGES/django.mo index d417847cb..2397eabdf 100644 Binary files a/wagtail/wagtailsnippets/locale/zh/LC_MESSAGES/django.mo and b/wagtail/wagtailsnippets/locale/zh/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsnippets/locale/zh/LC_MESSAGES/django.po b/wagtail/wagtailsnippets/locale/zh/LC_MESSAGES/django.po index 790a8a54b..2f47fd004 100644 --- a/wagtail/wagtailsnippets/locale/zh/LC_MESSAGES/django.po +++ b/wagtail/wagtailsnippets/locale/zh/LC_MESSAGES/django.po @@ -1,23 +1,24 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-08-01 15:43+0000\n" "Last-Translator: Karl Hobley \n" -"Language-Team: Chinese (http://www.transifex.com/projects/p/wagtail/language/zh/)\n" +"Language-Team: Chinese (http://www.transifex.com/projects/p/wagtail/language/" +"zh/)\n" +"Language: zh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: zh\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: wagtail_hooks.py:25 templates/wagtailsnippets/snippets/index.html:3 +#: wagtail_hooks.py:27 templates/wagtailsnippets/snippets/index.html:3 msgid "Snippets" msgstr "片段" @@ -100,9 +101,11 @@ msgstr "添加%(snippet_type_name)s" #: templates/wagtailsnippets/snippets/type_index.html:23 #, python-format msgid "" -"No %(snippet_type_name_plural)s have been created. Why not add one?" -msgstr "没有任何%(snippet_type_name_plural)s片段。为什么不创建一个?" +"No %(snippet_type_name_plural)s have been created. Why not add one?" +msgstr "" +"没有任何%(snippet_type_name_plural)s片段。为什么不创建一个?" #: templates/wagtailsnippets/snippets/usage.html:3 #, python-format diff --git a/wagtail/wagtailsnippets/locale/zh_TW/LC_MESSAGES/django.mo b/wagtail/wagtailsnippets/locale/zh_TW/LC_MESSAGES/django.mo index ca8e15e75..5968871e4 100644 Binary files a/wagtail/wagtailsnippets/locale/zh_TW/LC_MESSAGES/django.mo and b/wagtail/wagtailsnippets/locale/zh_TW/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailsnippets/locale/zh_TW/LC_MESSAGES/django.po b/wagtail/wagtailsnippets/locale/zh_TW/LC_MESSAGES/django.po index 2dd9d1c95..620d24506 100644 --- a/wagtail/wagtailsnippets/locale/zh_TW/LC_MESSAGES/django.po +++ b/wagtail/wagtailsnippets/locale/zh_TW/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-02-28 16:07+0000\n" "Last-Translator: wdv4758h \n" "Language-Team: \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: wagtail_hooks.py:25 templates/wagtailsnippets/snippets/index.html:3 +#: wagtail_hooks.py:27 templates/wagtailsnippets/snippets/index.html:3 msgid "Snippets" msgstr "片段" diff --git a/wagtail/wagtailsnippets/models.py b/wagtail/wagtailsnippets/models.py index 3f1b9cad9..d8d701d03 100644 --- a/wagtail/wagtailsnippets/models.py +++ b/wagtail/wagtailsnippets/models.py @@ -25,6 +25,7 @@ def register_snippet(model): model.usage_url = get_snippet_usage_url SNIPPET_MODELS.append(model) SNIPPET_MODELS.sort(key=lambda x: x._meta.verbose_name) + return model def get_snippet_usage_url(self): diff --git a/wagtail/wagtailsnippets/tests.py b/wagtail/wagtailsnippets/tests.py index 1b3431730..cc0a221f1 100644 --- a/wagtail/wagtailsnippets/tests.py +++ b/wagtail/wagtailsnippets/tests.py @@ -1,5 +1,6 @@ from django.test import TestCase from django.core.urlresolvers import reverse +from django.db import models from wagtail.tests.utils import WagtailTestUtils from django.test.utils import override_settings @@ -176,6 +177,24 @@ class TestSnippetChooserPanel(TestCase): in self.snippet_chooser_panel.render_js()) +class TestSnippetRegistering(TestCase): + def test_register_function(self): + class RegisterFunction(models.Model): + pass + register_snippet(RegisterFunction) + + self.assertIn(RegisterFunction, SNIPPET_MODELS) + + def test_register_function(self): + @register_snippet + class RegisterDecorator(models.Model): + pass + + # Misbehaving decorators often return None + self.assertIsNotNone(RegisterDecorator) + self.assertIn(RegisterDecorator, SNIPPET_MODELS) + + class TestSnippetOrdering(TestCase): def setUp(self): register_snippet(ZuluSnippet) @@ -195,7 +214,7 @@ class TestUsageCount(TestCase): @override_settings(WAGTAIL_USAGE_COUNT_ENABLED=True) def test_snippet_usage_count(self): advert = Advert.objects.get(id=1) - self.assertEqual(advert.get_usage().count(), 1) + self.assertEqual(advert.get_usage().count(), 2) class TestUsedBy(TestCase): diff --git a/wagtail/wagtailsnippets/wagtail_hooks.py b/wagtail/wagtailsnippets/wagtail_hooks.py index d1ff104ff..06e0c5e56 100644 --- a/wagtail/wagtailsnippets/wagtail_hooks.py +++ b/wagtail/wagtailsnippets/wagtail_hooks.py @@ -18,12 +18,13 @@ def register_admin_urls(): ] -@hooks.register('construct_main_menu') -def construct_main_menu(request, menu_items): - if user_can_edit_snippets(request.user): - menu_items.append( - MenuItem(_('Snippets'), urlresolvers.reverse('wagtailsnippets_index'), classnames='icon icon-snippet', order=500) - ) +class SnippetsMenuItem(MenuItem): + def is_shown(self, request): + return user_can_edit_snippets(request.user) + +@hooks.register('register_admin_menu_item') +def register_snippets_menu_item(): + return SnippetsMenuItem(_('Snippets'), urlresolvers.reverse('wagtailsnippets_index'), classnames='icon icon-snippet', order=500) @hooks.register('insert_editor_js') diff --git a/wagtail/wagtailusers/__init__.py b/wagtail/wagtailusers/__init__.py index e69de29bb..088b3cb69 100644 --- a/wagtail/wagtailusers/__init__.py +++ b/wagtail/wagtailusers/__init__.py @@ -0,0 +1 @@ +default_app_config = 'wagtail.wagtailusers.apps.WagtailUsersAppConfig' diff --git a/wagtail/wagtailusers/apps.py b/wagtail/wagtailusers/apps.py new file mode 100644 index 000000000..055e18d99 --- /dev/null +++ b/wagtail/wagtailusers/apps.py @@ -0,0 +1,7 @@ +from django.apps import AppConfig + + +class WagtailUsersAppConfig(AppConfig): + name = 'wagtail.wagtailusers' + label = 'wagtailusers' + verbose_name = "Wagtail users" diff --git a/wagtail/wagtailusers/locale/bg/LC_MESSAGES/django.mo b/wagtail/wagtailusers/locale/bg/LC_MESSAGES/django.mo index 085a028ce..ee8c034d4 100644 Binary files a/wagtail/wagtailusers/locale/bg/LC_MESSAGES/django.mo and b/wagtail/wagtailusers/locale/bg/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailusers/locale/bg/LC_MESSAGES/django.po b/wagtail/wagtailusers/locale/bg/LC_MESSAGES/django.po index 0a3be5d92..f74d891bf 100644 --- a/wagtail/wagtailusers/locale/bg/LC_MESSAGES/django.po +++ b/wagtail/wagtailusers/locale/bg/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 21:12+0000\n" "Last-Translator: serafeim \n" "Language-Team: Bulgarian (http://www.transifex.com/projects/p/wagtail/" @@ -95,7 +95,7 @@ msgstr "" msgid "Receive notification when your page edit is rejected" msgstr "" -#: wagtail_hooks.py:22 templates/wagtailusers/index.html:4 +#: wagtail_hooks.py:24 templates/wagtailusers/index.html:4 #: templates/wagtailusers/index.html:17 msgid "Users" msgstr "Потребители" diff --git a/wagtail/wagtailusers/locale/ca/LC_MESSAGES/django.mo b/wagtail/wagtailusers/locale/ca/LC_MESSAGES/django.mo index 1e398be77..8337fea0a 100644 Binary files a/wagtail/wagtailusers/locale/ca/LC_MESSAGES/django.mo and b/wagtail/wagtailusers/locale/ca/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailusers/locale/ca/LC_MESSAGES/django.po b/wagtail/wagtailusers/locale/ca/LC_MESSAGES/django.po index 718365e70..912777683 100644 --- a/wagtail/wagtailusers/locale/ca/LC_MESSAGES/django.po +++ b/wagtail/wagtailusers/locale/ca/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 21:56+0000\n" "Last-Translator: Lloople \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/wagtail/language/" @@ -92,7 +92,7 @@ msgstr "" msgid "Receive notification when your page edit is rejected" msgstr "" -#: wagtail_hooks.py:22 templates/wagtailusers/index.html:4 +#: wagtail_hooks.py:24 templates/wagtailusers/index.html:4 #: templates/wagtailusers/index.html:17 msgid "Users" msgstr "Usuaris" diff --git a/wagtail/wagtailusers/locale/de/LC_MESSAGES/django.mo b/wagtail/wagtailusers/locale/de/LC_MESSAGES/django.mo index 725ce6033..460fcf5e2 100644 Binary files a/wagtail/wagtailusers/locale/de/LC_MESSAGES/django.mo and b/wagtail/wagtailusers/locale/de/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailusers/locale/de/LC_MESSAGES/django.po b/wagtail/wagtailusers/locale/de/LC_MESSAGES/django.po index d216827fe..66b88e1ca 100644 --- a/wagtail/wagtailusers/locale/de/LC_MESSAGES/django.po +++ b/wagtail/wagtailusers/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 21:12+0000\n" "Last-Translator: serafeim \n" "Language-Team: German (http://www.transifex.com/projects/p/wagtail/language/" @@ -96,7 +96,7 @@ msgstr "" msgid "Receive notification when your page edit is rejected" msgstr "" -#: wagtail_hooks.py:22 templates/wagtailusers/index.html:4 +#: wagtail_hooks.py:24 templates/wagtailusers/index.html:4 #: templates/wagtailusers/index.html:17 msgid "Users" msgstr "Benutzer" diff --git a/wagtail/wagtailusers/locale/el/LC_MESSAGES/django.mo b/wagtail/wagtailusers/locale/el/LC_MESSAGES/django.mo index 10d6a720f..791b7c09b 100644 Binary files a/wagtail/wagtailusers/locale/el/LC_MESSAGES/django.mo and b/wagtail/wagtailusers/locale/el/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailusers/locale/el/LC_MESSAGES/django.po b/wagtail/wagtailusers/locale/el/LC_MESSAGES/django.po index 0a8400b9c..195af7001 100644 --- a/wagtail/wagtailusers/locale/el/LC_MESSAGES/django.po +++ b/wagtail/wagtailusers/locale/el/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 21:15+0000\n" "Last-Translator: serafeim \n" "Language-Team: Greek (http://www.transifex.com/projects/p/wagtail/language/" @@ -99,7 +99,7 @@ msgstr "" msgid "Receive notification when your page edit is rejected" msgstr "" -#: wagtail_hooks.py:22 templates/wagtailusers/index.html:4 +#: wagtail_hooks.py:24 templates/wagtailusers/index.html:4 #: templates/wagtailusers/index.html:17 msgid "Users" msgstr "Χρήστες" diff --git a/wagtail/wagtailusers/locale/en/LC_MESSAGES/django.mo b/wagtail/wagtailusers/locale/en/LC_MESSAGES/django.mo index 44e531ab0..bc5cb1688 100644 Binary files a/wagtail/wagtailusers/locale/en/LC_MESSAGES/django.mo and b/wagtail/wagtailusers/locale/en/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailusers/locale/en/LC_MESSAGES/django.po b/wagtail/wagtailusers/locale/en/LC_MESSAGES/django.po index f2f7473d1..a67a65add 100644 --- a/wagtail/wagtailusers/locale/en/LC_MESSAGES/django.po +++ b/wagtail/wagtailusers/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -89,7 +89,7 @@ msgstr "" msgid "Receive notification when your page edit is rejected" msgstr "" -#: wagtail_hooks.py:22 templates/wagtailusers/index.html:4 +#: wagtail_hooks.py:24 templates/wagtailusers/index.html:4 #: templates/wagtailusers/index.html:17 msgid "Users" msgstr "" diff --git a/wagtail/wagtailusers/locale/es/LC_MESSAGES/django.mo b/wagtail/wagtailusers/locale/es/LC_MESSAGES/django.mo index b78a483a5..b430418f9 100644 Binary files a/wagtail/wagtailusers/locale/es/LC_MESSAGES/django.mo and b/wagtail/wagtailusers/locale/es/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailusers/locale/es/LC_MESSAGES/django.po b/wagtail/wagtailusers/locale/es/LC_MESSAGES/django.po index 7b9465fa2..7899edb6a 100644 --- a/wagtail/wagtailusers/locale/es/LC_MESSAGES/django.po +++ b/wagtail/wagtailusers/locale/es/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-23 10:19+0000\n" "Last-Translator: fooflare \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/wagtail/language/" @@ -97,7 +97,7 @@ msgstr "" msgid "Receive notification when your page edit is rejected" msgstr "" -#: wagtail_hooks.py:22 templates/wagtailusers/index.html:4 +#: wagtail_hooks.py:24 templates/wagtailusers/index.html:4 #: templates/wagtailusers/index.html:17 msgid "Users" msgstr "Usuarios" diff --git a/wagtail/wagtailusers/locale/eu/LC_MESSAGES/django.mo b/wagtail/wagtailusers/locale/eu/LC_MESSAGES/django.mo index 059c50fbc..57d9c5ada 100644 Binary files a/wagtail/wagtailusers/locale/eu/LC_MESSAGES/django.mo and b/wagtail/wagtailusers/locale/eu/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailusers/locale/eu/LC_MESSAGES/django.po b/wagtail/wagtailusers/locale/eu/LC_MESSAGES/django.po index a318cd86d..13f5b3280 100644 --- a/wagtail/wagtailusers/locale/eu/LC_MESSAGES/django.po +++ b/wagtail/wagtailusers/locale/eu/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 21:12+0000\n" "Last-Translator: serafeim \n" "Language-Team: Basque (http://www.transifex.com/projects/p/wagtail/language/" @@ -90,7 +90,7 @@ msgstr "" msgid "Receive notification when your page edit is rejected" msgstr "" -#: wagtail_hooks.py:22 templates/wagtailusers/index.html:4 +#: wagtail_hooks.py:24 templates/wagtailusers/index.html:4 #: templates/wagtailusers/index.html:17 msgid "Users" msgstr "" diff --git a/wagtail/wagtailusers/locale/fr/LC_MESSAGES/django.mo b/wagtail/wagtailusers/locale/fr/LC_MESSAGES/django.mo index 45fe41754..c025d51bc 100644 Binary files a/wagtail/wagtailusers/locale/fr/LC_MESSAGES/django.mo and b/wagtail/wagtailusers/locale/fr/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailusers/locale/fr/LC_MESSAGES/django.po b/wagtail/wagtailusers/locale/fr/LC_MESSAGES/django.po index 6f091d8c6..119ae6056 100644 --- a/wagtail/wagtailusers/locale/fr/LC_MESSAGES/django.po +++ b/wagtail/wagtailusers/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-18 23:16+0000\n" "Last-Translator: nahuel\n" "Language-Team: French (http://www.transifex.com/projects/p/wagtail/language/" @@ -94,7 +94,7 @@ msgstr "" msgid "Receive notification when your page edit is rejected" msgstr "" -#: wagtail_hooks.py:22 templates/wagtailusers/index.html:4 +#: wagtail_hooks.py:24 templates/wagtailusers/index.html:4 #: templates/wagtailusers/index.html:17 msgid "Users" msgstr "Utilisateurs" diff --git a/wagtail/wagtailusers/locale/gl/LC_MESSAGES/django.mo b/wagtail/wagtailusers/locale/gl/LC_MESSAGES/django.mo index b5aaaa895..facd05319 100644 Binary files a/wagtail/wagtailusers/locale/gl/LC_MESSAGES/django.mo and b/wagtail/wagtailusers/locale/gl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailusers/locale/gl/LC_MESSAGES/django.po b/wagtail/wagtailusers/locale/gl/LC_MESSAGES/django.po index f81b208df..9d80306f8 100644 --- a/wagtail/wagtailusers/locale/gl/LC_MESSAGES/django.po +++ b/wagtail/wagtailusers/locale/gl/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-23 10:33+0000\n" "Last-Translator: fooflare \n" "Language-Team: Galician (http://www.transifex.com/projects/p/wagtail/" @@ -95,7 +95,7 @@ msgstr "" msgid "Receive notification when your page edit is rejected" msgstr "" -#: wagtail_hooks.py:22 templates/wagtailusers/index.html:4 +#: wagtail_hooks.py:24 templates/wagtailusers/index.html:4 #: templates/wagtailusers/index.html:17 msgid "Users" msgstr "Usuarios" diff --git a/wagtail/wagtailusers/locale/mn/LC_MESSAGES/django.mo b/wagtail/wagtailusers/locale/mn/LC_MESSAGES/django.mo index a610b6cd7..5050d16e2 100644 Binary files a/wagtail/wagtailusers/locale/mn/LC_MESSAGES/django.mo and b/wagtail/wagtailusers/locale/mn/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailusers/locale/mn/LC_MESSAGES/django.po b/wagtail/wagtailusers/locale/mn/LC_MESSAGES/django.po index 0724b1d54..ae3a18e46 100644 --- a/wagtail/wagtailusers/locale/mn/LC_MESSAGES/django.po +++ b/wagtail/wagtailusers/locale/mn/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 21:12+0000\n" "Last-Translator: serafeim \n" "Language-Team: Mongolian (http://www.transifex.com/projects/p/wagtail/" @@ -90,7 +90,7 @@ msgstr "" msgid "Receive notification when your page edit is rejected" msgstr "" -#: wagtail_hooks.py:22 templates/wagtailusers/index.html:4 +#: wagtail_hooks.py:24 templates/wagtailusers/index.html:4 #: templates/wagtailusers/index.html:17 msgid "Users" msgstr "" diff --git a/wagtail/wagtailusers/locale/pl/LC_MESSAGES/django.mo b/wagtail/wagtailusers/locale/pl/LC_MESSAGES/django.mo index 04157a81f..ae0614809 100644 Binary files a/wagtail/wagtailusers/locale/pl/LC_MESSAGES/django.mo and b/wagtail/wagtailusers/locale/pl/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailusers/locale/pl/LC_MESSAGES/django.po b/wagtail/wagtailusers/locale/pl/LC_MESSAGES/django.po index e5f9b456d..0bb541c28 100644 --- a/wagtail/wagtailusers/locale/pl/LC_MESSAGES/django.po +++ b/wagtail/wagtailusers/locale/pl/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 22:16+0000\n" "Last-Translator: utek \n" "Language-Team: Polish (http://www.transifex.com/projects/p/wagtail/language/" @@ -96,7 +96,7 @@ msgstr "" msgid "Receive notification when your page edit is rejected" msgstr "" -#: wagtail_hooks.py:22 templates/wagtailusers/index.html:4 +#: wagtail_hooks.py:24 templates/wagtailusers/index.html:4 #: templates/wagtailusers/index.html:17 msgid "Users" msgstr "Użytkownicy" diff --git a/wagtail/wagtailusers/locale/pt_BR/LC_MESSAGES/django.mo b/wagtail/wagtailusers/locale/pt_BR/LC_MESSAGES/django.mo new file mode 100644 index 000000000..0eed7b448 Binary files /dev/null and b/wagtail/wagtailusers/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailusers/locale/pt_BR/LC_MESSAGES/django.po b/wagtail/wagtailusers/locale/pt_BR/LC_MESSAGES/django.po new file mode 100644 index 000000000..d8e3a6a4a --- /dev/null +++ b/wagtail/wagtailusers/locale/pt_BR/LC_MESSAGES/django.po @@ -0,0 +1,193 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Thiago Cangussu , 2014 +# Douglas Miranda , 2014 +# Gladson , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-09-01 19:30+0000\n" +"Last-Translator: Douglas Miranda \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/wagtail/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: forms.py:18 forms.py:95 +msgid "Administrator" +msgstr "Administrador" + +#: forms.py:20 +msgid "If ticked, this user has the ability to manage user accounts." +msgstr "Se marcado, este usuário terá a habilidade de gerenciar contas de usuários." + +#: forms.py:23 forms.py:80 +msgid "Email" +msgstr "Email" + +#: forms.py:24 forms.py:81 +msgid "First Name" +msgstr "Primeiro nome" + +#: forms.py:25 forms.py:82 +msgid "Last Name" +msgstr "Último nome" + +#: forms.py:68 +msgid "A user with that username already exists." +msgstr "Um usuário com este nome já existe." + +#: forms.py:69 +msgid "The two password fields didn't match." +msgstr "Os dois campos de senha não coincidem." + +#: forms.py:72 templates/wagtailusers/list.html:15 +msgid "Username" +msgstr "Nome de usuário" + +#: forms.py:75 +msgid "Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only." +msgstr "Obrigatório. 30 caracteres ou menos. Somente letras, números e @/./+/-/_." + +#: forms.py:77 +msgid "This value may contain only letters, numbers and @/./+/-/_ characters." +msgstr "Este valor pode conter somente letras, números e os caracteres @/./+/-/_." + +#: forms.py:85 +msgid "Password" +msgstr "Senha" + +#: forms.py:88 +msgid "Leave blank if not changing." +msgstr "Deixe em branco se não estiver alterando." + +#: forms.py:90 +msgid "Password confirmation" +msgstr "Confirmação de senha" + +#: forms.py:92 +msgid "Enter the same password as above, for verification." +msgstr "Digite a mesma senha como acima, para verificação." + +#: forms.py:97 +msgid "Administrators have the ability to manage user accounts." +msgstr "Administradores tem a habilidade de gerenciar contas de usuários." + +#: models.py:13 +msgid "Receive notification when a page is submitted for moderation" +msgstr "Receber uma notificação quando uma página é enviada para a moderação" + +#: models.py:18 +msgid "Receive notification when your page edit is approved" +msgstr "Receber uma notificação quando a edição da sua página for aprovada" + +#: models.py:23 +msgid "Receive notification when your page edit is rejected" +msgstr "Receber uma notificação quando a edição da sua página é rejeitada" + +#: wagtail_hooks.py:24 templates/wagtailusers/index.html:4 +#: templates/wagtailusers/index.html:17 +msgid "Users" +msgstr "Usuários" + +#: templates/wagtailusers/create.html:4 templates/wagtailusers/create.html:8 +#: templates/wagtailusers/create.html:35 +msgid "Add user" +msgstr "Adicionar usuário" + +#: templates/wagtailusers/create.html:12 templates/wagtailusers/edit.html:12 +msgid "Account" +msgstr "Conta" + +#: templates/wagtailusers/create.html:13 templates/wagtailusers/create.html:28 +#: templates/wagtailusers/edit.html:13 +msgid "Roles" +msgstr "Papéis" + +#: templates/wagtailusers/edit.html:4 templates/wagtailusers/edit.html.py:8 +msgid "Editing" +msgstr "Editando" + +#: templates/wagtailusers/edit.html:30 templates/wagtailusers/edit.html:37 +msgid "Save" +msgstr "Salvar" + +#: templates/wagtailusers/index.html:18 +msgid "Add a user" +msgstr "Adicionar um usuário" + +#: templates/wagtailusers/list.html:7 +msgid "Name" +msgstr "Nome" + +#: templates/wagtailusers/list.html:22 +msgid "Level" +msgstr "Nível" + +#: templates/wagtailusers/list.html:23 +msgid "Status" +msgstr "Status" + +#: templates/wagtailusers/list.html:36 +msgid "Admin" +msgstr "Admin" + +#: templates/wagtailusers/list.html:37 +msgid "Active" +msgstr "Ativo" + +#: templates/wagtailusers/list.html:37 +msgid "Inactive" +msgstr "Inativo" + +#: templates/wagtailusers/results.html:5 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "\n Há um resultado\n " +msgstr[1] "\n Há %(counter)s resultados\n " + +#: templates/wagtailusers/results.html:18 +#, python-format +msgid "Sorry, no users match \"%(query_string)s\"" +msgstr "Desculpe, nenhum usuário coincide com \"%(query_string)s\"" + +#: templates/wagtailusers/results.html:21 +#, python-format +msgid "" +"There are no users configured. Why not add some?" +msgstr "Não há usuários configurados. Por que não adicionar alguns?" + +#: views/users.py:30 views/users.py:37 +msgid "Search users" +msgstr "Buscar usuários" + +#: views/users.py:84 +msgid "User '{0}' created." +msgstr "Usuário '{0}' criado." + +#: views/users.py:87 +msgid "The user could not be created due to errors." +msgstr "O usuário não pôde ser criado devido à erros." + +#: views/users.py:103 +msgid "User '{0}' updated." +msgstr "Usuário '{0}' atualizado." + +#: views/users.py:106 +msgid "The user could not be saved due to errors." +msgstr "O usuário não pôde ser salvo devido à erros." diff --git a/wagtail/wagtailusers/locale/pt_PT/LC_MESSAGES/django.mo b/wagtail/wagtailusers/locale/pt_PT/LC_MESSAGES/django.mo new file mode 100644 index 000000000..bb30dd55b Binary files /dev/null and b/wagtail/wagtailusers/locale/pt_PT/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailusers/locale/pt_PT/LC_MESSAGES/django.po b/wagtail/wagtailusers/locale/pt_PT/LC_MESSAGES/django.po new file mode 100644 index 000000000..e3a5a753e --- /dev/null +++ b/wagtail/wagtailusers/locale/pt_PT/LC_MESSAGES/django.po @@ -0,0 +1,206 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# Thiago Cangussu , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail 0.5.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-08-03 01:59+0100\n" +"Last-Translator: Jose Lourenco \n" +"Language-Team: \n" +"Language: pt_PT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: forms.py:18 forms.py:95 +msgid "Administrator" +msgstr "Administrador" + +#: forms.py:20 +msgid "If ticked, this user has the ability to manage user accounts." +msgstr "" +"Se selecionado, este utilizador terá permissão para gerir contas de " +"utilizadores." + +#: forms.py:23 forms.py:80 +msgid "Email" +msgstr "Email" + +#: forms.py:24 forms.py:81 +msgid "First Name" +msgstr "Primeiro Nome" + +#: forms.py:25 forms.py:82 +msgid "Last Name" +msgstr "Último nome" + +#: forms.py:68 +msgid "A user with that username already exists." +msgstr "Um utilizador com esse nome já existe." + +#: forms.py:69 +msgid "The two password fields didn't match." +msgstr "As senhas nos dois campos não coincidem." + +#: forms.py:72 templates/wagtailusers/list.html:15 +msgid "Username" +msgstr "Nome de utilizador" + +#: forms.py:75 +msgid "Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only." +msgstr "" +"Obrigatório. 30 caracteres ou menos. Somente letras, números e @/./+/-/_." + +#: forms.py:77 +msgid "This value may contain only letters, numbers and @/./+/-/_ characters." +msgstr "" +"Este valor apenas pode conter letras, números e os caracteres @/./+/-/_." + +#: forms.py:85 +msgid "Password" +msgstr "Senha" + +#: forms.py:88 +msgid "Leave blank if not changing." +msgstr "Deixar em branco se não houver alteração" + +#: forms.py:90 +msgid "Password confirmation" +msgstr "Confirmação de senha" + +#: forms.py:92 +msgid "Enter the same password as above, for verification." +msgstr "Introduza a mesma senha anterior para verificação." + +#: forms.py:97 +msgid "Administrators have the ability to manage user accounts." +msgstr "Os administradores têm a permissão para gerir contas de utilizadores." + +#: models.py:13 +msgid "Receive notification when a page is submitted for moderation" +msgstr "Receber notificação quando uma página for enviada para moderação" + +#: models.py:18 +msgid "Receive notification when your page edit is approved" +msgstr "Receber notificação quando a edição da sua página for aprovada" + +#: models.py:23 +msgid "Receive notification when your page edit is rejected" +msgstr "Receber notificação quando a edição da sua página for rejeitada" + +#: wagtail_hooks.py:24 templates/wagtailusers/index.html:4 +#: templates/wagtailusers/index.html:17 +msgid "Users" +msgstr "Utilizadores" + +#: templates/wagtailusers/create.html:4 templates/wagtailusers/create.html:8 +#: templates/wagtailusers/create.html:35 +msgid "Add user" +msgstr "Adicionar utilizador" + +#: templates/wagtailusers/create.html:12 templates/wagtailusers/edit.html:12 +msgid "Account" +msgstr "Conta" + +#: templates/wagtailusers/create.html:13 templates/wagtailusers/create.html:28 +#: templates/wagtailusers/edit.html:13 +msgid "Roles" +msgstr "Funções (roles)" + +#: templates/wagtailusers/edit.html:4 templates/wagtailusers/edit.html.py:8 +msgid "Editing" +msgstr "Editando" + +#: templates/wagtailusers/edit.html:30 templates/wagtailusers/edit.html:37 +msgid "Save" +msgstr "Guardar" + +#: templates/wagtailusers/index.html:18 +msgid "Add a user" +msgstr "Adicionar um utilizador" + +#: templates/wagtailusers/list.html:7 +msgid "Name" +msgstr "Nome" + +#: templates/wagtailusers/list.html:22 +msgid "Level" +msgstr "Nível" + +#: templates/wagtailusers/list.html:23 +msgid "Status" +msgstr "Estado" + +#: templates/wagtailusers/list.html:36 +msgid "Admin" +msgstr "Admin" + +#: templates/wagtailusers/list.html:37 +msgid "Active" +msgstr "Ativo" + +#: templates/wagtailusers/list.html:37 +msgid "Inactive" +msgstr "Inativo" + +#: templates/wagtailusers/results.html:5 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "" +"\n" +" Existe uma correspondência\n" +" " +msgstr[1] "" +"\n" +" Existem %(counter)s correspondências\n" +" " + +#: templates/wagtailusers/results.html:18 +#, python-format +msgid "Sorry, no users match \"%(query_string)s\"" +msgstr "" +"Desculpe, nenhum utilizador corresponde a \"%(query_string)s\"" + +#: templates/wagtailusers/results.html:21 +#, python-format +msgid "" +"There are no users configured. Why not add some?" +msgstr "" +"Não existem utilizadores configurados. Por que não adicionar algum?" + +#: views/users.py:30 views/users.py:37 +msgid "Search users" +msgstr "Procurar utilizadores" + +#: views/users.py:84 +msgid "User '{0}' created." +msgstr "Utilizador '{0}' criado." + +#: views/users.py:87 +msgid "The user could not be created due to errors." +msgstr "O utilizador não pôde ser criado devido a erros." + +#: views/users.py:103 +msgid "User '{0}' updated." +msgstr "Utilizador '{0}' atualizado." + +#: views/users.py:106 +msgid "The user could not be saved due to errors." +msgstr "O utilizador não pôde ser guardado devido a erros." diff --git a/wagtail/wagtailusers/locale/ro/LC_MESSAGES/django.mo b/wagtail/wagtailusers/locale/ro/LC_MESSAGES/django.mo index 382451327..ad8590c1c 100644 Binary files a/wagtail/wagtailusers/locale/ro/LC_MESSAGES/django.mo and b/wagtail/wagtailusers/locale/ro/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailusers/locale/ro/LC_MESSAGES/django.po b/wagtail/wagtailusers/locale/ro/LC_MESSAGES/django.po index 167337849..70b0d19fd 100644 --- a/wagtail/wagtailusers/locale/ro/LC_MESSAGES/django.po +++ b/wagtail/wagtailusers/locale/ro/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-18 13:22+0000\n" "Last-Translator: zerolab\n" "Language-Team: Romanian (http://www.transifex.com/projects/p/wagtail/" @@ -93,7 +93,7 @@ msgstr "" msgid "Receive notification when your page edit is rejected" msgstr "" -#: wagtail_hooks.py:22 templates/wagtailusers/index.html:4 +#: wagtail_hooks.py:24 templates/wagtailusers/index.html:4 #: templates/wagtailusers/index.html:17 msgid "Users" msgstr "Utilizatori" diff --git a/wagtail/wagtailusers/locale/ru/LC_MESSAGES/django.mo b/wagtail/wagtailusers/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 000000000..c410dd94a Binary files /dev/null and b/wagtail/wagtailusers/locale/ru/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailusers/locale/ru/LC_MESSAGES/django.po b/wagtail/wagtailusers/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 000000000..fc255b719 --- /dev/null +++ b/wagtail/wagtailusers/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,193 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# ajk, 2014 +# HNKNTA , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-07-14 14:56+0000\n" +"Last-Translator: Karl Hobley \n" +"Language-Team: Russian (http://www.transifex.com/projects/p/wagtail/language/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: forms.py:18 forms.py:95 +msgid "Administrator" +msgstr "Администратор" + +#: forms.py:20 +msgid "If ticked, this user has the ability to manage user accounts." +msgstr "Если выбрано, этот пользователь имеет возможность управлять пользовательскими аккаунтами." + +#: forms.py:23 forms.py:80 +msgid "Email" +msgstr "Адрес электронной почты" + +#: forms.py:24 forms.py:81 +msgid "First Name" +msgstr "Имя" + +#: forms.py:25 forms.py:82 +msgid "Last Name" +msgstr "Фамилия" + +#: forms.py:68 +msgid "A user with that username already exists." +msgstr "Пользователь с таким именем уже существует. " + +#: forms.py:69 +msgid "The two password fields didn't match." +msgstr "Два поля с паролями не совпадают." + +#: forms.py:72 templates/wagtailusers/list.html:15 +msgid "Username" +msgstr "Имя пользователя" + +#: forms.py:75 +msgid "Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only." +msgstr "Обязательное. 30 символов или меньше. Только буквы, цифры и @/./+/-/_ символы." + +#: forms.py:77 +msgid "This value may contain only letters, numbers and @/./+/-/_ characters." +msgstr "Это значение может содержать только буквы, цифры и @/./+/-/_ символы." + +#: forms.py:85 +msgid "Password" +msgstr "Пароль" + +#: forms.py:88 +msgid "Leave blank if not changing." +msgstr "Оставьте пустым, если не изменяется." + +#: forms.py:90 +msgid "Password confirmation" +msgstr "Подтверждение пароля" + +#: forms.py:92 +msgid "Enter the same password as above, for verification." +msgstr "Введите такой же пароль, как выше, для подтверждения." + +#: forms.py:97 +msgid "Administrators have the ability to manage user accounts." +msgstr "Администраторы не могут управлять аккаунтами пользователей." + +#: models.py:13 +msgid "Receive notification when a page is submitted for moderation" +msgstr "" + +#: models.py:18 +msgid "Receive notification when your page edit is approved" +msgstr "" + +#: models.py:23 +msgid "Receive notification when your page edit is rejected" +msgstr "" + +#: wagtail_hooks.py:24 templates/wagtailusers/index.html:4 +#: templates/wagtailusers/index.html:17 +msgid "Users" +msgstr "Пользователи" + +#: templates/wagtailusers/create.html:4 templates/wagtailusers/create.html:8 +#: templates/wagtailusers/create.html:35 +msgid "Add user" +msgstr "Добавить пользователя" + +#: templates/wagtailusers/create.html:12 templates/wagtailusers/edit.html:12 +msgid "Account" +msgstr "Аккаунт" + +#: templates/wagtailusers/create.html:13 templates/wagtailusers/create.html:28 +#: templates/wagtailusers/edit.html:13 +msgid "Roles" +msgstr "Роли" + +#: templates/wagtailusers/edit.html:4 templates/wagtailusers/edit.html.py:8 +msgid "Editing" +msgstr "Редактирование" + +#: templates/wagtailusers/edit.html:30 templates/wagtailusers/edit.html:37 +msgid "Save" +msgstr "Сохранить" + +#: templates/wagtailusers/index.html:18 +msgid "Add a user" +msgstr "Добавить пользователя" + +#: templates/wagtailusers/list.html:7 +msgid "Name" +msgstr "Имя" + +#: templates/wagtailusers/list.html:22 +msgid "Level" +msgstr "Уровень" + +#: templates/wagtailusers/list.html:23 +msgid "Status" +msgstr "Статус" + +#: templates/wagtailusers/list.html:36 +msgid "Admin" +msgstr "Админ" + +#: templates/wagtailusers/list.html:37 +msgid "Active" +msgstr "Активный" + +#: templates/wagtailusers/list.html:37 +msgid "Inactive" +msgstr "Неактивный" + +#: templates/wagtailusers/results.html:5 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "\nНайдено одно совпадение" +msgstr[1] "\nНайдено %(counter)s совпадений" +msgstr[2] "\nНайдено %(counter)s совпадений" + +#: templates/wagtailusers/results.html:18 +#, python-format +msgid "Sorry, no users match \"%(query_string)s\"" +msgstr "Извините, подходящих пользователей не найдено \"%(query_string)s\"" + +#: templates/wagtailusers/results.html:21 +#, python-format +msgid "" +"There are no users configured. Why not add some?" +msgstr "Нету настроенных пользователей. Почему бы не добавить?" + +#: views/users.py:30 views/users.py:37 +msgid "Search users" +msgstr "Поиск пользователей" + +#: views/users.py:84 +msgid "User '{0}' created." +msgstr "Пользователь '{0}' создан." + +#: views/users.py:87 +msgid "The user could not be created due to errors." +msgstr "Пользователь не может быть создан из-за ошибок." + +#: views/users.py:103 +msgid "User '{0}' updated." +msgstr "Пользователь '{0}' обновлен." + +#: views/users.py:106 +msgid "The user could not be saved due to errors." +msgstr "Пользователь но может быть сохранен из-за ошибок." diff --git a/wagtail/wagtailusers/locale/vi/LC_MESSAGES/django.mo b/wagtail/wagtailusers/locale/vi/LC_MESSAGES/django.mo new file mode 100644 index 000000000..a05ec5e9b Binary files /dev/null and b/wagtail/wagtailusers/locale/vi/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailusers/locale/vi/LC_MESSAGES/django.po b/wagtail/wagtailusers/locale/vi/LC_MESSAGES/django.po new file mode 100644 index 000000000..92bb03766 --- /dev/null +++ b/wagtail/wagtailusers/locale/vi/LC_MESSAGES/django.po @@ -0,0 +1,189 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: Wagtail\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" +"PO-Revision-Date: 2014-07-14 14:56+0000\n" +"Last-Translator: Karl Hobley \n" +"Language-Team: Vietnamese (http://www.transifex.com/projects/p/wagtail/language/vi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: forms.py:18 forms.py:95 +msgid "Administrator" +msgstr "" + +#: forms.py:20 +msgid "If ticked, this user has the ability to manage user accounts." +msgstr "" + +#: forms.py:23 forms.py:80 +msgid "Email" +msgstr "" + +#: forms.py:24 forms.py:81 +msgid "First Name" +msgstr "" + +#: forms.py:25 forms.py:82 +msgid "Last Name" +msgstr "" + +#: forms.py:68 +msgid "A user with that username already exists." +msgstr "" + +#: forms.py:69 +msgid "The two password fields didn't match." +msgstr "" + +#: forms.py:72 templates/wagtailusers/list.html:15 +msgid "Username" +msgstr "" + +#: forms.py:75 +msgid "Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only." +msgstr "" + +#: forms.py:77 +msgid "This value may contain only letters, numbers and @/./+/-/_ characters." +msgstr "" + +#: forms.py:85 +msgid "Password" +msgstr "" + +#: forms.py:88 +msgid "Leave blank if not changing." +msgstr "" + +#: forms.py:90 +msgid "Password confirmation" +msgstr "" + +#: forms.py:92 +msgid "Enter the same password as above, for verification." +msgstr "" + +#: forms.py:97 +msgid "Administrators have the ability to manage user accounts." +msgstr "" + +#: models.py:13 +msgid "Receive notification when a page is submitted for moderation" +msgstr "" + +#: models.py:18 +msgid "Receive notification when your page edit is approved" +msgstr "" + +#: models.py:23 +msgid "Receive notification when your page edit is rejected" +msgstr "" + +#: wagtail_hooks.py:24 templates/wagtailusers/index.html:4 +#: templates/wagtailusers/index.html:17 +msgid "Users" +msgstr "" + +#: templates/wagtailusers/create.html:4 templates/wagtailusers/create.html:8 +#: templates/wagtailusers/create.html:35 +msgid "Add user" +msgstr "" + +#: templates/wagtailusers/create.html:12 templates/wagtailusers/edit.html:12 +msgid "Account" +msgstr "" + +#: templates/wagtailusers/create.html:13 templates/wagtailusers/create.html:28 +#: templates/wagtailusers/edit.html:13 +msgid "Roles" +msgstr "" + +#: templates/wagtailusers/edit.html:4 templates/wagtailusers/edit.html.py:8 +msgid "Editing" +msgstr "" + +#: templates/wagtailusers/edit.html:30 templates/wagtailusers/edit.html:37 +msgid "Save" +msgstr "" + +#: templates/wagtailusers/index.html:18 +msgid "Add a user" +msgstr "" + +#: templates/wagtailusers/list.html:7 +msgid "Name" +msgstr "" + +#: templates/wagtailusers/list.html:22 +msgid "Level" +msgstr "" + +#: templates/wagtailusers/list.html:23 +msgid "Status" +msgstr "" + +#: templates/wagtailusers/list.html:36 +msgid "Admin" +msgstr "" + +#: templates/wagtailusers/list.html:37 +msgid "Active" +msgstr "" + +#: templates/wagtailusers/list.html:37 +msgid "Inactive" +msgstr "" + +#: templates/wagtailusers/results.html:5 +#, python-format +msgid "" +"\n" +" There is one match\n" +" " +msgid_plural "" +"\n" +" There are %(counter)s matches\n" +" " +msgstr[0] "" + +#: templates/wagtailusers/results.html:18 +#, python-format +msgid "Sorry, no users match \"%(query_string)s\"" +msgstr "" + +#: templates/wagtailusers/results.html:21 +#, python-format +msgid "" +"There are no users configured. Why not add some?" +msgstr "" + +#: views/users.py:30 views/users.py:37 +msgid "Search users" +msgstr "" + +#: views/users.py:84 +msgid "User '{0}' created." +msgstr "" + +#: views/users.py:87 +msgid "The user could not be created due to errors." +msgstr "" + +#: views/users.py:103 +msgid "User '{0}' updated." +msgstr "" + +#: views/users.py:106 +msgid "The user could not be saved due to errors." +msgstr "" diff --git a/wagtail/wagtailusers/locale/zh/LC_MESSAGES/django.mo b/wagtail/wagtailusers/locale/zh/LC_MESSAGES/django.mo index 32d3fac08..0ac3e3b4e 100644 Binary files a/wagtail/wagtailusers/locale/zh/LC_MESSAGES/django.mo and b/wagtail/wagtailusers/locale/zh/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailusers/locale/zh/LC_MESSAGES/django.po b/wagtail/wagtailusers/locale/zh/LC_MESSAGES/django.po index e23076a78..f855e09ea 100644 --- a/wagtail/wagtailusers/locale/zh/LC_MESSAGES/django.po +++ b/wagtail/wagtailusers/locale/zh/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 21:12+0000\n" "Last-Translator: serafeim \n" "Language-Team: Chinese (http://www.transifex.com/projects/p/wagtail/language/" @@ -90,7 +90,7 @@ msgstr "" msgid "Receive notification when your page edit is rejected" msgstr "" -#: wagtail_hooks.py:22 templates/wagtailusers/index.html:4 +#: wagtail_hooks.py:24 templates/wagtailusers/index.html:4 #: templates/wagtailusers/index.html:17 msgid "Users" msgstr "用户" diff --git a/wagtail/wagtailusers/locale/zh_TW/LC_MESSAGES/django.mo b/wagtail/wagtailusers/locale/zh_TW/LC_MESSAGES/django.mo index da4ffeddd..2d903e694 100644 Binary files a/wagtail/wagtailusers/locale/zh_TW/LC_MESSAGES/django.mo and b/wagtail/wagtailusers/locale/zh_TW/LC_MESSAGES/django.mo differ diff --git a/wagtail/wagtailusers/locale/zh_TW/LC_MESSAGES/django.po b/wagtail/wagtailusers/locale/zh_TW/LC_MESSAGES/django.po index 849cbccb4..063acbc60 100644 --- a/wagtail/wagtailusers/locale/zh_TW/LC_MESSAGES/django.po +++ b/wagtail/wagtailusers/locale/zh_TW/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Wagtail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-08-01 16:39+0100\n" +"POT-Creation-Date: 2014-09-11 16:38+0100\n" "PO-Revision-Date: 2014-03-14 21:12+0000\n" "Last-Translator: wdv4758h \n" "Language-Team: \n" @@ -89,7 +89,7 @@ msgstr "" msgid "Receive notification when your page edit is rejected" msgstr "" -#: wagtail_hooks.py:22 templates/wagtailusers/index.html:4 +#: wagtail_hooks.py:24 templates/wagtailusers/index.html:4 #: templates/wagtailusers/index.html:17 msgid "Users" msgstr "使用者" diff --git a/wagtail/wagtailusers/migrations/0001_initial.py b/wagtail/wagtailusers/migrations/0001_initial.py new file mode 100644 index 000000000..e1968c0f1 --- /dev/null +++ b/wagtail/wagtailusers/migrations/0001_initial.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +from django.conf import settings + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='UserProfile', + fields=[ + ('id', models.AutoField(serialize=False, verbose_name='ID', auto_created=True, primary_key=True)), + ('submitted_notifications', models.BooleanField(default=True, help_text='Receive notification when a page is submitted for moderation')), + ('approved_notifications', models.BooleanField(default=True, help_text='Receive notification when your page edit is approved')), + ('rejected_notifications', models.BooleanField(default=True, help_text='Receive notification when your page edit is rejected')), + ('user', models.OneToOneField(to=settings.AUTH_USER_MODEL)), + ], + options={ + }, + bases=(models.Model,), + ), + ] diff --git a/wagtail/wagtailusers/migrations/__init__.py b/wagtail/wagtailusers/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/wagtail/wagtailusers/wagtail_hooks.py b/wagtail/wagtailusers/wagtail_hooks.py index fe048a4a0..8a22aafe9 100644 --- a/wagtail/wagtailusers/wagtail_hooks.py +++ b/wagtail/wagtailusers/wagtail_hooks.py @@ -15,9 +15,10 @@ def register_admin_urls(): ] -@hooks.register('construct_main_menu') -def construct_main_menu(request, menu_items): - if request.user.has_module_perms('auth'): - menu_items.append( - MenuItem(_('Users'), urlresolvers.reverse('wagtailusers_index'), classnames='icon icon-user', order=600) - ) +class UsersMenuItem(MenuItem): + def is_shown(self, request): + return request.user.has_module_perms('auth') + +@hooks.register('register_admin_menu_item') +def register_users_menu_item(): + return UsersMenuItem(_('Users'), urlresolvers.reverse('wagtailusers_index'), classnames='icon icon-user', order=600)