# Andi Chandler , 2018. #zanata # Andi Chandler , 2019. #zanata # Andi Chandler , 2020. #zanata # Andi Chandler , 2021. #zanata # Andi Chandler , 2022. #zanata # Andi Chandler , 2023. #zanata # Andi Chandler , 2024. #zanata msgid "" msgstr "" "Project-Id-Version: horizon 24.0.1.dev26\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-02-25 19:11+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "PO-Revision-Date: 2024-04-18 12:49+0000\n" "Last-Translator: Andi Chandler \n" "Language-Team: English (United Kingdom)\n" "Language: en_GB\n" "X-Generator: Zanata 4.3.3\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" #: ../../../docstring of openstack_auth.utils.LOG:5 msgid "" "Calling \"patch_middleware_get_user\" is done in our custom middleware at " "\"openstack_auth.middleware\" to monkeypatch the code in before it is needed." "" msgstr "" "Calling \"patch_middleware_get_user\" is done in our custom middleware at " "\"openstack_auth.middleware\" to monkeypatch the code in before it is needed." "" #: ../../../docstring of openstack_auth.utils.LOG:1 msgid "" "We need the request object to get the user, so we'll slightly modify the " "existing django.contrib.auth.get_user method. To do so we update the auth " "middleware to point to our overridden method." msgstr "" "We need the request object to get the user, so we'll slightly modify the " "existing django.contrib.auth.get_user method. To do so we update the auth " "middleware to point to our overridden method." #: ../../../horizon/base.py:docstring horizon.base.Panel:1 of msgid "A base class for defining Horizon dashboard panels." msgstr "A base class for defining Horizon dashboard panels." #: ../../../horizon/base.py:docstring horizon.base.Dashboard:1 of msgid "A base class for defining Horizon dashboards." msgstr "A base class for defining Horizon dashboards." #: ../../../horizon/base.py:docstring horizon.base.PanelGroup:1 of msgid "A container for a set of :class:`~horizon.Panel` classes." msgstr "A container for a set of :class:`~horizon.Panel` classes." #: ../../../horizon/base.py:docstring horizon.base.PanelGroup:17 of msgid "" "A list of panel module names which should be contained within this grouping." msgstr "" "A list of panel module names which should be contained within this grouping." #: ../../../horizon/base.py:docstring horizon.base.Dashboard:60 of msgid "" "A list of permission names, all of which a user must possess in order to " "access any panel registered with this dashboard. This attribute is combined " "cumulatively with any permissions required on individual :class:`~horizon." "Panel` classes." msgstr "" "A list of permission names, all of which a user must possess in order to " "access any panel registered with this dashboard. This attribute is combined " "cumulatively with any permissions required on individual :class:`~horizon." "Panel` classes." #: ../../../horizon/base.py:docstring horizon.base.Panel:20 of msgid "" "A list of permission names, all of which a user must possess in order to " "access any view associated with this panel. This attribute is combined " "cumulatively with any permissions required on the ``Dashboard`` class with " "which it is registered." msgstr "" "A list of permission names, all of which a user must possess in order to " "access any view associated with this panel. This attribute is combined " "cumulatively with any permissions required on the ``Dashboard`` class with " "which it is registered." #: ../../../horizon/base.py:docstring horizon.base.Dashboard:16 of msgid "" "A unique \"short name\" for the dashboard. The slug is used as a component " "of the URL path for the dashboard. Default: ``''``." msgstr "" "A unique \"short name\" for the dashboard. The slug is used as a component " "of the URL path for the dashboard. Default: ``''``." #: ../../../horizon/base.py:docstring horizon.base.Panel:15 of msgid "" "A unique \"short name\" for the panel. The slug is used as a component of " "the URL path for the panel. Default: ``''``." msgstr "" "A unique \"short name\" for the panel. The slug is used as a component of " "the URL path for the panel. Default: ``''``." #: ../../../horizon/base.py:docstring horizon.base.PanelGroup:8 of msgid "A unique string to identify this panel group. Required." msgstr "A unique string to identify this panel group. Required." #: ../../../horizon/base.py:docstring horizon.base.PanelGroup:12 of msgid "" "A user-friendly name which will be used as the group heading in places such " "as the navigation. Default: ``None``." msgstr "" "A user-friendly name which will be used as the group heading in places such " "as the navigation. Default: ``None``." #: ../../../horizon/base.py:docstring horizon.base.Panel:3 of msgid "" "All Horizon dashboard panels should extend from this class. It provides the " "appropriate hooks for automatically constructing URLconfs, and providing " "permission-based access control." msgstr "" "All Horizon dashboard panels should extend from this class. It provides the " "appropriate hooks for automatically constructing URLconfs, and providing " "permission-based access control." #: ../../../horizon/base.py:docstring horizon.base.Dashboard:3 of msgid "" "All Horizon dashboards should extend from this base class. It provides the " "appropriate hooks for automatic discovery of :class:`~horizon.Panel` " "modules, automatically constructing URLconfs, and providing permission-based " "access control." msgstr "" "All Horizon dashboards should extend from this base class. It provides the " "appropriate hooks for automatic discovery of :class:`~horizon.Panel` " "modules, automatically constructing URLconfs, and providing permission-based " "access control." #: ../../../horizon/base.py:docstring horizon.base.Site.get_user_home:7 of msgid "" "An alternative function can be supplied to customize this behavior by " "specifying a either a URL or a function which returns a URL via the " "``\"user_home\"`` key in ``HORIZON_CONFIG``. Each of these would be valid::" msgstr "" "An alternative function can be supplied to customise this behaviour by " "specifying a either a URL or a function which returns a URL via the " "``\"user_home\"`` key in ``HORIZON_CONFIG``. Each of these would be valid::" #: ../../../horizon/base.py:docstring horizon.base.Site.get_dashboards:7 of msgid "" "Any remaining :class:`~horizon.Dashboard` classes registered with Horizon " "but not listed in ``HORIZON_CONFIG['dashboards']`` will be appended to the " "end of the list alphabetically." msgstr "" "Any remaining :class:`~horizon.Dashboard` classes registered with Horizon " "but not listed in ``HORIZON_CONFIG['dashboards']`` will be appended to the " "end of the list alphabetically." #: ../../../horizon/base.py:docstring horizon.base.Dashboard:34 of msgid "" "Automatically generated navigation will use the order of the modules in this " "attribute." msgstr "" "Automatically generated navigation will use the order of the modules in this " "attribute." #: ../../../horizon/base.py:docstring horizon.base.Dashboard:79 of msgid "" "Boolean value to determine whether this dashboard can be viewed without " "being logged in. Defaults to ``False``." msgstr "" "Boolean value to determine whether this dashboard can be viewed without " "being logged in. Defaults to ``False``." #: ../../../horizon/base.py:docstring horizon.base.Dashboard.allowed:3 of msgid "" "Checks for access to any panels in the dashboard and of the dashboard itself." "" msgstr "" "Checks for access to any panels in the dashboard and of the dashboard itself." "" #: ../../../horizon/base.py:docstring horizon.base.Dashboard.allowed:1 of msgid "Checks for role based access for this dashboard." msgstr "Checks for role based access for this dashboard." #: ../../../horizon/base.py:docstring horizon.base.Dashboard:37 of msgid "Default: ``[]``." msgstr "Default: ``[]``." #: ../../../horizon/base.py:docstring horizon.base.Site.get_default_dashboard:3 #: of msgid "" "If ``\"default_dashboard\"`` is specified in ``HORIZON_CONFIG`` then that " "dashboard will be returned. If not, the first dashboard returned by :func:" "`~horizon.get_dashboards` will be returned." msgstr "" "If ``\"default_dashboard\"`` is specified in ``HORIZON_CONFIG`` then that " "dashboard will be returned. If not, the first dashboard returned by :func:" "`~horizon.get_dashboards` will be returned." #: ../../../horizon/base.py:docstring horizon.base.Dashboard:67 of msgid "" "Optional path to a URLconf of additional views for this dashboard which are " "not connected to specific panels. Default: ``None``." msgstr "" "Optional path to a URLconf of additional views for this dashboard which are " "not connected to specific panels. Default: ``None``." #: ../../../horizon/base.py:docstring horizon.base.Site.get_dashboards:3 of msgid "" "Orders dashboards according to the ``\"dashboards\"`` key in " "``HORIZON_CONFIG`` or else returns all registered dashboards in alphabetical " "order." msgstr "" "Orders dashboards according to the ``\"dashboards\"`` key in " "``HORIZON_CONFIG`` or else returns all registered dashboards in alphabetical " "order." #: ../../../horizon/base.py:docstring horizon.base.Dashboard.get_panels:3 of msgid "Panel grouping information is not included." msgstr "Panel grouping information is not included." #: ../../../horizon/base.py:docstring horizon.base.Dashboard:48 of msgid "" "Panel modules must be listed in ``panels`` in order to be discovered by the " "automatic registration mechanism." msgstr "" "Panel modules must be listed in ``panels`` in order to be discovered by the " "automatic registration mechanism." #: ../../../horizon/base.py:docstring horizon.base.Panel:27 of msgid "" "Path to a URLconf of views for this panel using dotted Python notation. If " "no value is specified, a file called ``urls.py`` living in the same package " "as the ``panel.py`` file is used. Default: ``None``." msgstr "" "Path to a URLconf of views for this panel using dotted Python notation. If " "no value is specified, a file called ``urls.py`` living in the same package " "as the ``panel.py`` file is used. Default: ``None``." #: ../../../horizon/base.py:docstring horizon.base.Site.register:1 of msgid "Registers a :class:`~horizon.Dashboard` with Horizon." msgstr "Registers a :class:`~horizon.Dashboard` with Horizon." #: ../../../horizon/base.py:docstring horizon.base.Dashboard.register:1 of msgid "Registers a :class:`~horizon.Panel` with this dashboard." msgstr "Registers a :class:`~horizon.Panel` with this dashboard." #: ../../../horizon/base.py:docstring horizon.base.Dashboard.get_panel_group:3 #: of msgid "Returns None if not registered." msgstr "Returns None if not registered." #: ../../../horizon/base.py:docstring horizon.base.Site.get_dashboards:1 of msgid "Returns an ordered tuple of :class:`~horizon.Dashboard` modules." msgstr "Returns an ordered tuple of :class:`~horizon.Dashboard` modules." #: ../../../horizon/base.py:docstring horizon.base.Dashboard.get_panel:1 of msgid "Returns the Panel instance registered with this dashboard." msgstr "Returns the Panel instance registered with this dashboard." #: ../../../horizon/base.py:docstring horizon.base.Dashboard.get_panels:1 of msgid "Returns the Panel instances registered with this dashboard in order." msgstr "Returns the Panel instances registered with this dashboard in order." #: ../../../horizon/base.py:docstring horizon.base.Site.get_default_dashboard:1 #: of msgid "Returns the default :class:`~horizon.Dashboard` instance." msgstr "Returns the default :class:`~horizon.Dashboard` instance." #: ../../../horizon/base.py:docstring horizon.base.Site.get_absolute_url:1 of msgid "Returns the default URL for Horizon's URLconf." msgstr "Returns the default URL for Horizon's URLconf." #: ../../../horizon/base.py:docstring horizon.base.Site.get_user_home:1 of msgid "Returns the default URL for a particular user." msgstr "Returns the default URL for a particular user." #: ../../../horizon/base.py:docstring horizon.base.Dashboard.get_absolute_url:1 #: of msgid "Returns the default URL for this dashboard." msgstr "Returns the default URL for this dashboard." #: ../../../horizon/base.py:docstring horizon.base.Panel.get_absolute_url:1 of msgid "Returns the default URL for this panel." msgstr "Returns the default URL for this panel." #: ../../../horizon/base.py:docstring horizon.base.Site.get_dashboard:1 of msgid "Returns the specified :class:`~horizon.Dashboard` instance." msgstr "Returns the specified :class:`~horizon.Dashboard` instance." #: ../../../horizon/base.py:docstring horizon.base.Dashboard.get_panel_group:1 #: of msgid "Returns the specified :class:~horizon.PanelGroup." msgstr "Returns the specified :class:~horizon.PanelGroup." #: ../../../horizon/base.py:docstring horizon.base.Panel:41 of msgid "" "The ``name`` argument for the URL pattern which corresponds to the index " "view for this ``Panel``. This is the view that :meth:`.Panel." "get_absolute_url` will attempt to reverse." msgstr "" "The ``name`` argument for the URL pattern which corresponds to the index " "view for this ``Panel``. This is the view that :meth:`.Panel." "get_absolute_url` will attempt to reverse." #: ../../../horizon/base.py:docstring horizon.base.Dashboard:72 of msgid "" "The ``nav`` attribute can be either a boolean value or a callable which " "accepts a ``RequestContext`` object as a single argument to control whether " "or not this dashboard should appear in automatically-generated navigation. " "Default: ``True``." msgstr "" "The ``nav`` attribute can be either a boolean value or a callable which " "accepts a ``RequestContext`` object as a single argument to control whether " "or not this dashboard should appear in automatically-generated navigation. " "Default: ``True``." #: ../../../horizon/base.py:docstring horizon.base.Panel:34 of msgid "" "The ``nav`` attribute can be either a boolean value or a callable which " "accepts a ``RequestContext`` object as a single argument to control whether " "or not this panel should appear in automatically-generated navigation. " "Default: ``True``." msgstr "" "The ``nav`` attribute can be either a boolean value or a callable which " "accepts a ``RequestContext`` object as a single argument to control whether " "or not this panel should appear in automatically-generated navigation. " "Default: ``True``." #: ../../../horizon/base.py:docstring horizon.base.Dashboard:21 of msgid "" "The ``panels`` attribute can be either a flat list containing the name of " "each panel **module** which should be loaded as part of this dashboard, or " "a list of :class:`~horizon.PanelGroup` classes which define groups of panels " "as in the following example::" msgstr "" "The ``panels`` attribute can be either a flat list containing the name of " "each panel **module** which should be loaded as part of this dashboard, or " "a list of :class:`~horizon.PanelGroup` classes which define groups of panels " "as in the following example::" #: ../../../horizon/base.py:docstring horizon.base.Dashboard.get_absolute_url:3 #: of msgid "" "The default URL is defined as the URL pattern with ``name=\"index\"`` in the " "URLconf for the :class:`~horizon.Panel` specified by :attr:`~horizon." "Dashboard.default_panel`." msgstr "" "The default URL is defined as the URL pattern with ``name=\"index\"`` in the " "URLconf for the :class:`~horizon.Panel` specified by :attr:`~horizon." "Dashboard.default_panel`." #: ../../../horizon/base.py:docstring horizon.base.Panel.get_absolute_url:3 of msgid "" "The default URL is defined as the URL pattern with ``name=\"index\"`` in the " "URLconf for this panel." msgstr "" "The default URL is defined as the URL pattern with ``name=\"index\"`` in the " "URLconf for this panel." #: ../../../horizon/base.py:docstring horizon.base.Site.get_absolute_url:3 of msgid "" "The default URL is determined by calling :meth:`~horizon.Dashboard." "get_absolute_url` on the :class:`~horizon.Dashboard` instance returned by :" "meth:`~horizon.get_default_dashboard`." msgstr "" "The default URL is determined by calling :meth:`~horizon.Dashboard." "get_absolute_url` on the :class:`~horizon.Dashboard` instance returned by :" "meth:`~horizon.get_default_dashboard`." #: ../../../horizon/base.py:docstring horizon.base.Dashboard:10 of msgid "" "The name of the dashboard. This will be displayed in the auto-generated " "navigation and various other places. Default: ``''``." msgstr "" "The name of the dashboard. This will be displayed in the auto-generated " "navigation and various other places. Default: ``''``." #: ../../../horizon/base.py:docstring horizon.base.Dashboard:53 of msgid "" "The name of the panel which should be treated as the default panel for the " "dashboard, i.e. when you visit the root URL for this dashboard, that's the " "panel that is displayed. Default: ``None``." msgstr "" "The name of the panel which should be treated as the default panel for the " "dashboard, i.e. when you visit the root URL for this dashboard, that's the " "panel that is displayed. Default: ``None``." #: ../../../horizon/base.py:docstring horizon.base.Panel:9 of msgid "" "The name of the panel. This will be displayed in the auto-generated " "navigation and various other places. Default: ``''``." msgstr "" "The name of the panel. This will be displayed in the auto-generated " "navigation and various other places. Default: ``''``." #: ../../../horizon/base.py:docstring horizon.base.Dashboard:41 of msgid "" "The values for this attribute should not correspond to the :attr:`~.Panel." "name` attributes of the ``Panel`` classes. They should be the names of the " "Python modules in which the ``panel.py`` files live. This is used for the " "automatic loading and registration of ``Panel`` classes much like Django's " "``ModelAdmin`` machinery." msgstr "" "The values for this attribute should not correspond to the :attr:`~.Panel." "name` attributes of the ``Panel`` classes. They should be the names of the " "Python modules in which the ``panel.py`` files live. This is used for the " "automatic loading and registration of ``Panel`` classes much like Django's " "``ModelAdmin`` machinery." #: ../../../horizon/base.py:docstring horizon.base.Site.get_user_home:17 of msgid "" "This can be useful if the default dashboard may not be accessible to all " "users. When user_home is missing from HORIZON_CONFIG, it will default to the " "settings.LOGIN_REDIRECT_URL value." msgstr "" "This can be useful if the default dashboard may not be accessible to all " "users. When user_home is missing from HORIZON_CONFIG, it will default to the " "settings.LOGIN_REDIRECT_URL value." #: ../../../horizon/base.py:docstring horizon.base.Site.get_user_home:3 of msgid "" "This method can be used to customize where a user is sent when they log in, " "etc. By default it returns the value of :meth:`get_absolute_url`." msgstr "" "This method can be used to customise where a user is sent when they log in, " "etc. By default it returns the value of :meth:`get_absolute_url`." #: ../../../horizon/base.py:docstring horizon.base.Dashboard.allowed:6 of msgid "" "This method should be overridden to return the result of any policy checks " "required for the user to access this dashboard when more complex checks are " "required." msgstr "" "This method should be overridden to return the result of any policy checks " "required for the user to access this dashboard when more complex checks are " "required." #: ../../../horizon/base.py:docstring horizon.base.Panel:47 of msgid "" "This optional static method can be used to specify conditions that need to " "be satisfied to load this panel. Unlike ``permissions`` and ``allowed`` this " "method is intended to handle settings based conditions rather than user " "based permission and policy checks. The return value is boolean. If the " "method returns ``True``, then the panel will be registered and available to " "user (if ``permissions`` and ``allowed`` runtime checks are also satisfied). " "If the method returns ``False``, then the panel will not be registered and " "will not be available via normal navigation or direct URL access." msgstr "" "This optional static method can be used to specify conditions that need to " "be satisfied to load this panel. Unlike ``permissions`` and ``allowed`` this " "method is intended to handle settings based conditions rather than user " "based permission and policy checks. The return value is boolean. If the " "method returns ``True``, then the panel will be registered and available to " "user (if ``permissions`` and ``allowed`` runtime checks are also satisfied). " "If the method returns ``False``, then the panel will not be registered and " "will not be available via normal navigation or direct URL access." #: ../../../horizon/base.py:docstring horizon.base.Site.unregister:1 of msgid "Unregisters a :class:`~horizon.Dashboard` from Horizon." msgstr "Unregisters a :class:`~horizon.Dashboard` from Horizon." #: ../../../horizon/base.py:docstring horizon.base.Dashboard.unregister:1 of msgid "Unregisters a :class:`~horizon.Panel` from this dashboard." msgstr "Unregisters a :class:`~horizon.Panel` from this dashboard." #: ../../../horizon/base.py:docstring horizon.base.PanelGroup:3 of msgid "" "When iterated, it will yield each of the ``Panel`` instances it contains." msgstr "" "When iterated, it will yield each of the ``Panel`` instances it contains." #: ../../../horizon/context_processors.py:docstring #: horizon.context_processors:1 of msgid "Context processors used by Horizon." msgstr "Context processors used by Horizon." #: ../../../horizon/context_processors.py:docstring #: horizon.context_processors.horizon:9 of msgid "" "Don't put API calls in context processors; they will be called once for each " "template/template fragment which takes context that is used to render the " "complete output." msgstr "" "Don't put API calls in context processors; they will be called once for each " "template/template fragment which takes context that is used to render the " "complete output." #: ../../../horizon/context_processors.py:docstring #: horizon.context_processors.horizon:3 of msgid "" "It adds the Horizon config to the context as well as setting the names " "``True`` and ``False`` in the context to their boolean equivalents for " "convenience." msgstr "" "It adds the Horizon config to the context as well as setting the names " "``True`` and ``False`` in the context to their boolean equivalents for " "convenience." #: ../../../horizon/context_processors.py:docstring #: horizon.context_processors.horizon:1 of msgid "The main Horizon context processor. Required for Horizon to function." msgstr "The main Horizon context processor. Required for Horizon to function." #: ../../../horizon/decorators.py:docstring #: horizon.decorators.require_component_access:3 of msgid ":param component containing the view (panel or dashboard)." msgstr ":param component containing the view (panel or dashboard)." #: ../../../horizon/decorators.py:docstring horizon.decorators.require_perms:3 #: of msgid "" "A tuple of permission names, all of which the request user must possess in " "order access the decorated view." msgstr "" "A tuple of permission names, all of which the request user must possess in " "order access the decorated view." #: ../../../horizon/decorators.py:docstring horizon.decorators.require_perms:1 #: of msgid "Enforces permission-based access controls." msgstr "Enforces permission-based access controls." #: ../../../horizon/decorators.py:docstring horizon.decorators.require_perms:6 #: of msgid "Example usage::" msgstr "Example usage::" #: ../../../horizon/decorators.py:docstring horizon.decorators:1 of msgid "General-purpose decorators for use with Horizon." msgstr "General-purpose decorators for use with Horizon." #: ../../../horizon/decorators.py:docstring #: ../../../openstack_auth/forms.py:docstring #: ../../../openstack_auth/user.py:docstring #: ../../../openstack_auth/utils.py:docstring #: ../../../openstack_auth/views.py:docstring #: horizon.decorators.require_perms:0 of #: openstack_auth.forms.DummyAuth.get_headers:0 #: openstack_auth.user.User.is_token_expired:0 #: openstack_auth.utils.get_client_ip:0 openstack_auth.utils.get_websso_url:0 #: openstack_auth.utils.is_token_valid:0 #: openstack_auth.utils.store_initial_k2k_session:0 #: openstack_auth.views.logout:0 msgid "Parameters" msgstr "Parameters" #: ../../../horizon/decorators.py:docstring #: horizon.decorators.require_component_access:1 of msgid "Perform component can_access check to access the view." msgstr "Perform component can_access check to access the view." #: ../../../horizon/decorators.py:docstring horizon.decorators.require_auth:1 #: of msgid "Performs user authentication check." msgstr "Performs user authentication check." #: ../../../horizon/decorators.py:docstring horizon.decorators.require_perms:15 #: of msgid "" "Raises a :exc:`~horizon.exceptions.NotAuthorized` exception if the " "requirements are not met." msgstr "" "Raises a :exc:`~horizon.exceptions.NotAuthorized` exception if the " "requirements are not met." #: ../../../horizon/decorators.py:docstring #: horizon.decorators.require_component_access:5 of msgid "" "Raises a :exc:`~horizon.exceptions.NotAuthorized` exception if the user " "cannot access the component containing the view. By example the check of " "component policy rules will be applied to its views." msgstr "" "Raises a :exc:`~horizon.exceptions.NotAuthorized` exception if the user " "cannot access the component containing the view. By example the check of " "component policy rules will be applied to its views." #: ../../../horizon/decorators.py:docstring horizon.decorators.require_auth:3 #: of msgid "" "Similar to Django's `login_required` decorator, except that this throws :exc:" "`~horizon.exceptions.NotAuthenticated` exception if the user is not signed-" "in." msgstr "" "Similar to Django's `login_required` decorator, except that this throws :exc:" "`~horizon.exceptions.NotAuthenticated` exception if the user is not signed-" "in." #: ../../../horizon/exceptions.py:docstring #: horizon.exceptions.ServiceCatalogException:1 of msgid "A requested service is not available in the ``ServiceCatalog``." msgstr "A requested service is not available in the ``ServiceCatalog``." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.AlreadyExists:1 #: of msgid "API resources tried to create already exists." msgstr "API resources tried to create already exists." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.handle:20 of msgid "" "All other exceptions bubble the stack as normal unless the ``ignore`` " "argument is passed in as ``True``, in which case only unrecognized errors " "are bubbled." msgstr "" "All other exceptions bubble the stack as normal unless the ``ignore`` " "argument is passed in as ``True``, in which case only unrecognised errors " "are bubbled." #: ../../../horizon/exceptions.py:docstring #: horizon.exceptions.HorizonException:1 of msgid "Base exception class for distinguishing our own exception classes." msgstr "Base exception class for distinguishing our own exception classes." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.handle:3 of msgid "" "Because Horizon consumes so many different APIs with completely different " "``Exception`` types, it's necessary to have a centralized place for handling " "exceptions which may be raised." msgstr "" "Because Horizon consumes so many different APIs with completely different " "``Exception`` types, it's necessary to have a centralised place for handling " "exceptions which may be raised." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.handle:1 of msgid "Centralized error handling for Horizon." msgstr "Centralised error handling for Horizon." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.check_message:1 #: of msgid "Checks an exception for given keywords and raises an error if found." msgstr "Checks an exception for given keywords and raises an error if found." #: ../../../horizon/exceptions.py:docstring #: horizon.exceptions.HorizonReporterFilter:1 of msgid "Error report filter that's always active, even in DEBUG mode." msgstr "Error report filter that's always active, even in DEBUG mode." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.MessageFailure:1 #: of msgid "Exception raised during message notification." msgstr "Exception raised during message notification." #: ../../../horizon/exceptions.py:docstring #: horizon.exceptions.WorkflowValidationError:1 of msgid "Exception raised during workflow validation." msgstr "Exception raised during workflow validation." #: ../../../horizon/exceptions.py:docstring #: horizon.exceptions.ConfigurationError:1 of msgid "Exception to be raised when invalid settings have been provided." msgstr "Exception to be raised when invalid settings have been provided." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.WorkflowError:1 #: of msgid "Exception to be raised when something goes wrong in a workflow." msgstr "Exception to be raised when something goes wrong in a workflow." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.NotAvailable:1 #: of msgid "Exception to be raised when something is not available." msgstr "Exception to be raised when something is not available." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.GetFileError:1 #: of msgid "Exception to be raised when the value of get_file is not expected." msgstr "Exception to be raised when the value of get_file is not expected." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.Http302:1 of msgid "Exception used to redirect at the middleware level." msgstr "Exception used to redirect at the middleware level." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.handle:7 of msgid "Exceptions are roughly divided into 3 types:" msgstr "Exceptions are roughly divided into 3 types:" #: ../../../horizon/exceptions.py:docstring horizon.exceptions:1 of msgid "" "Exceptions raised by the Horizon code and the machinery for handling them." msgstr "" "Exceptions raised by the Horizon code and the machinery for handling them." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.BadRequest:1 of msgid "Generic error to replace all \"BadRequest\"-type API errors." msgstr "Generic error to replace all \"BadRequest\"-type API errors." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.Conflict:1 of msgid "Generic error to replace all \"Conflict\"-type API errors." msgstr "Generic error to replace all \"Conflict\"-type API errors." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.NotFound:1 of msgid "Generic error to replace all \"Not Found\"-type API errors." msgstr "Generic error to replace all \"Not Found\"-type API errors." #: ../../../horizon/exceptions.py:docstring #: horizon.exceptions.RecoverableError:1 of msgid "Generic error to replace any \"Recoverable\"-type API errors." msgstr "Generic error to replace any \"Recoverable\"-type API errors." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.handle:24 of msgid "" "If the exception is not re-raised, an appropriate wrapper exception class " "indicating the type of exception that was encountered will be returned. If " "details is None (default), take it from exception sys.exc_info. If details " "is other string, then use that string explicitly or if details is empty then " "suppress it." msgstr "" "If the exception is not re-raised, an appropriate wrapper exception class " "indicating the type of exception that was encountered will be returned. If " "details is None (default), take it from exception sys.exc_info. If details " "is other string, then use that string explicitly or if details is empty then " "suppress it." #: ../../../horizon/exceptions.py:docstring #: horizon.exceptions.WorkflowValidationError:3 of msgid "" "It is raised if required data is missing, or existing data is not valid." msgstr "" "It is raised if required data is missing, or existing data is not valid." #: ../../../horizon/exceptions.py:docstring #: horizon.exceptions.HandledException:3 of msgid "" "It is used to track exceptions that have gone through :func:`horizon." "exceptions.handle` more than once." msgstr "" "It is used to track exceptions that have gone through :func:`horizon." "exceptions.handle` more than once." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.check_message:3 #: of msgid "" "It raises a new ``ActionError`` with the desired message if the keywords are " "found. This allows selective control over API error messages." msgstr "" "It raises a new ``ActionError`` with the desired message if the keywords are " "found. This allows selective control over API error messages." #: ../../../horizon/exceptions.py:docstring #: horizon.exceptions.NotAuthenticated:1 of msgid "" "Raised when a user is trying to make requests and they are not logged in." msgstr "" "Raised when a user is trying to make requests and they are not logged in." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.NotAuthorized:3 #: of msgid "" "Raised whenever a user attempts to access a resource which they do not have " "permission-based access to (such as when failing the :func:`~horizon." "decorators.require_perms` decorator)." msgstr "" "Raised whenever a user attempts to access a resource which they do not have " "permission-based access to (such as when failing the :func:`~horizon." "decorators.require_perms` decorator)." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.GetFileError:3 #: of msgid "" "The expected values start with https:// or http://. Otherwise this exception " "will be raised." msgstr "" "The expected values start with https:// or http://. Otherwise this exception " "will be raised." #: ../../../horizon/exceptions.py:docstring #: horizon.exceptions.NotAuthenticated:3 of msgid "" "The included :class:`~horizon.middleware.HorizonMiddleware` catches " "``NotAuthenticated`` and handles it gracefully by displaying an error " "message and redirecting the user to a login page." msgstr "" "The included :class:`~horizon.middleware.HorizonMiddleware` catches " "``NotAuthenticated`` and handles it gracefully by displaying an error " "message and redirecting the user to a login page." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.NotAuthorized:7 #: of msgid "" "The included :class:`~horizon.middleware.HorizonMiddleware` catches " "``NotAuthorized`` and handles it gracefully by displaying an error message " "and redirecting the user to a login page." msgstr "" "The included :class:`~horizon.middleware.HorizonMiddleware` catches " "``NotAuthorized`` and handles it gracefully by displaying an error message " "and redirecting the user to a login page." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.Http302:3 of msgid "" "This error class which can be raised from within a handler to cause an early " "bailout and redirect at the middleware level." msgstr "" "This error class which can be raised from within a handler to cause an early " "bailout and redirect at the middleware level." #: ../../../horizon/exceptions.py:docstring #: horizon.exceptions.HorizonReporterFilter.is_active:1 of msgid "" "This filter is to add safety in production environments (i.e. DEBUG is " "False). If DEBUG is True then your site is not safe anyway. This hook is " "provided as a convenience to easily activate or deactivate the filter on a " "per request basis." msgstr "" "This filter is to add safety in production environments (i.e. DEBUG is " "False). If DEBUG is True then your site is not safe anyway. This hook is " "provided as a convenience to easily activate or deactivate the filter on a " "per request basis." #: ../../../horizon/exceptions.py:docstring #: horizon.exceptions.HandledException:1 of msgid "Used internally to track exceptions that are already handled." msgstr "Used internally to track exceptions that are already handled." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.NotAuthorized:1 #: of msgid "User tries to access a resource without sufficient permissions." msgstr "User tries to access a resource without sufficient permissions." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.handle:11 of msgid "" "``NOT_FOUND``: Errors resulting from objects which could not be located via " "the API. These generally result in a user-facing error message, but are " "otherwise returned to the normal code flow. Optionally a redirect value may " "be passed to the error handler so users are returned to a different view " "than the one requested in addition to the error message." msgstr "" "``NOT_FOUND``: Errors resulting from objects which could not be located via " "the API. These generally result in a user-facing error message, but are " "otherwise returned to the normal code flow. Optionally a redirect value may " "be passed to the error handler so users are returned to a different view " "than the one requested in addition to the error message." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.handle:17 of msgid "" "``RECOVERABLE``: Generic API errors which generate a user-facing message but " "drop directly back to the regular code flow." msgstr "" "``RECOVERABLE``: Generic API errors which generate a user-facing message but " "drop directly back to the regular code flow." #: ../../../horizon/exceptions.py:docstring #: horizon.exceptions.ServiceCatalogException:3 of msgid "``ServiceCatalog`` is fetched from Keystone." msgstr "``ServiceCatalogue`` is fetched from Keystone." #: ../../../horizon/exceptions.py:docstring horizon.exceptions.handle:9 of msgid "" "``UNAUTHORIZED``: Errors resulting from authentication or authorization " "problems. These result in being logged out and sent to the login screen." msgstr "" "``UNAUTHORISED``: Errors resulting from authentication or authorisation " "problems. These result in being logged out and sent to the login screen." #: ../../../horizon/forms/base.py:docstring #: horizon.forms.base.SelfHandlingForm:1 of msgid "A base Form class which includes processing logic in its subclasses." msgstr "A base Form class which includes processing logic in its subclasses." #: ../../../horizon/forms/base.py:docstring horizon.forms.base.DateForm:1 of msgid "A simple form for selecting a range of time." msgstr "A simple form for selecting a range of time." #: ../../../horizon/forms/base.py:docstring #: horizon.forms.base.SelfHandlingForm.api_error:1 of msgid "Adds an error to the form's error dictionary." msgstr "Adds an error to the form's error dictionary." #: ../../../horizon/forms/base.py:docstring #: horizon.forms.base.SelfHandlingForm.api_error:3 of msgid "" "It can be used after validation based on problems reported via the API. This " "is useful when you wish for API errors to appear as errors on the form " "rather than using the messages framework." msgstr "" "It can be used after validation based on problems reported via the API. This " "is useful when you wish for API errors to appear as errors on the form " "rather than using the messages framework." #: ../../../horizon/forms/base.py:docstring #: ../../../horizon/workflows/base.py:docstring #: ../../../openstack_auth/forms.py:docstring #: horizon.forms.base.DateForm.media:1 #: horizon.forms.base.SelfHandlingForm.media:1 horizon.workflows.Action.media:1 #: of openstack_auth.forms.Login.media:1 openstack_auth.forms.Password.media:1 #: openstack_auth.forms.TimeBasedOneTimePassword.media:1 msgid "Return all media required to render the widgets on this form." msgstr "Return all media required to render the widgets on this form." #: ../../../horizon/forms/base.py:docstring #: horizon.forms.base.SelfHandlingForm.set_warning:1 of msgid "Sets a warning on the form." msgstr "Sets a warning on the form." #: ../../../horizon/forms/base.py:docstring #: horizon.forms.base.SelfHandlingForm.set_warning:3 of msgid "Unlike NON_FIELD_ERRORS, this doesn't fail form validation." msgstr "Unlike NON_FIELD_ERRORS, this doesn't fail form validation." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.SelectWidget:22 of msgid "" "A callable used to render additional HTML attributes for the option object. " "It returns a dictionary containing the html attributes and their values. For " "example, to define a title attribute for the choices::" msgstr "" "A callable used to render additional HTML attributes for the option object. " "It returns a dictionary containing the html attributes and their values. For " "example, to define a title attribute for the choices::" #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.SelectWidget:17 of msgid "A callable used to render the display value from the option object." msgstr "A callable used to render the display value from the option object." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.DynamicSelectWidget:3 of msgid "" "A subclass of the ``Select`` widget which renders extra attributes for use " "in callbacks to handle dynamic changes to the available choices." msgstr "" "A subclass of the ``Select`` widget which renders extra attributes for use " "in callbacks to handle dynamic changes to the available choices." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.ChoiceInput:3 of msgid "" "An object used by ChoiceFieldRenderer that represents a single ." msgstr "" "An object used by ChoiceFieldRenderer that represents a single ." #: ../../../horizon/forms/fields.py:docstring horizon.forms.fields.IPField:22 #: of msgid "" "Boolean flag to validate subnet masks along with IP address. E.g: 10.0.0.1/" "32" msgstr "" "Boolean flag to validate subnet masks along with IP address. E.g: 10.0.0.1/" "32" #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.ThemableSelectWidget:1 of msgid "Bootstrap base select field widget." msgstr "Bootstrap base select field widget." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.ThemableChoiceField:1 of msgid "Bootstrap based select field." msgstr "Bootstrap based select field." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.ThemableCheckboxInput:1 of msgid "Checkbox widget which renders extra markup." msgstr "Checkbox widget which renders extra markup." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.DynamicChoiceField:1 of msgid "ChoiceField that make dynamically updating its elements easier." msgstr "ChoiceField that make dynamically updating its elements easier." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.ChoiceInput:1 of msgid "ChoiceInput class from django 1.10.7 codebase" msgstr "ChoiceInput class from Django 1.10.7 codebase" #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.SelectWidget:1 of msgid "Custom select widget." msgstr "Custom select widget." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.MultiIPField:1 of msgid "Extends IPField to allow comma-separated lists of addresses." msgstr "Extends IPField to allow comma-separated lists of addresses." #: ../../../horizon/forms/fields.py:docstring horizon.forms.fields.IPField:1 of msgid "Form field for entering IP/range values, with validation." msgstr "Form field for entering IP/range values, with validation." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.MACAddressField:1 of msgid "Form field for entering a MAC address with validation." msgstr "Form field for entering a MAC address with validation." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.SelectWidget.build_attrs:1 of msgid "Helper function for building an attribute dictionary." msgstr "Helper function for building an attribute dictionary." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.SelectWidget:3 of msgid "" "It allows to render data-xxx attributes from choices. This widget also " "allows user to specify additional html attributes for choices." msgstr "" "It allows to render data-xxx attributes from choices. This widget also " "allows user to specify additional html attributes for choices." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.ThemableCheckboxInput:3 of msgid "It is used to allow a custom checkbox experience." msgstr "It is used to allow a custom checkbox experience." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.ExternalUploadMeta:1 of msgid "Metaclass to process ExternalFileField fields in a specific way." msgstr "Metaclass to process ExternalFileField fields in a specific way." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.DynamicChoiceField:3 of msgid "" "Notably, the field declaration takes an extra argument, ``add_item_link`` " "which may be a string or callable defining the URL that should be used for " "the \"add\" link associated with the field." msgstr "" "Notably, the field declaration takes an extra argument, ``add_item_link`` " "which may be a string or callable defining the URL that should be used for " "the \"add\" link associated with the field." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.DynamicSelectWidget.render:1 #: horizon.forms.fields.SelectWidget.render:1 #: horizon.forms.fields.ThemableCheckboxInput.render:1 #: horizon.forms.fields.ThemableSelectWidget.render:1 of msgid "Render the widget as an HTML string." msgstr "Render the widget as an HTML string." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.ExternalUploadMeta:3 of msgid "" "Set this class as the metaclass of a form that contains ExternalFileField in " "order to process ExternalFileField fields in a specific way. A hidden " "CharField twin of FieldField is created which contains just the filename (if " "any file was selected on browser side) and a special `clean` method for " "FileField is defined which extracts just file name. This allows to avoid " "actual file upload to Django server, yet process form clean() phase as usual." " Actual file upload happens entirely on client-side." msgstr "" "Set this class as the metaclass of a form that contains ExternalFileField in " "order to process ExternalFileField fields in a specific way. A hidden " "CharField twin of FieldField is created which contains just the filename (if " "any file was selected on browser side) and a special `clean` method for " "FileField is defined which extracts just file name. This allows to avoid " "actual file upload to Django server, yet process form clean() phase as usual." " Actual file upload happens entirely on client-side." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.DynamicTypedChoiceField:1 of msgid "Simple mix of ``DynamicChoiceField`` and ``TypedChoiceField``." msgstr "Simple mix of ``DynamicChoiceField`` and ``TypedChoiceField``." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.ThemableDynamicTypedChoiceField:1 of msgid "Simple mix of ``ThemableDynamicChoiceField`` & ``TypedChoiceField``." msgstr "Simple mix of ``ThemableDynamicChoiceField`` & ``TypedChoiceField``." #: ../../../horizon/forms/fields.py:docstring horizon.forms.fields.SubWidget:3 #: of msgid "" "Some widgets are made of multiple HTML elements -- namely, RadioSelect. This " "is a class that represents the \"inner\" HTML element of a widget." msgstr "" "Some widgets are made of multiple HTML elements -- namely, RadioSelect. This " "is a class that represents the \"inner\" HTML element of a widget." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.ExternalFileField:1 of msgid "Special FileField to upload file to some external location." msgstr "Special FileField to upload file to some external location." #: ../../../horizon/forms/fields.py:docstring #: horizon.forms.fields.SelectWidget:9 of msgid "" "Specifies object properties to serialize as data-xxx attribute. If passed " "('id', ), this will be rendered as: