diff --git a/openstackclient/common/availability_zone.py b/openstackclient/common/availability_zone.py
index 63c55370b0..b2385ef743 100644
--- a/openstackclient/common/availability_zone.py
+++ b/openstackclient/common/availability_zone.py
@@ -88,7 +88,7 @@ def _xform_network_availability_zone(az):
 
 
 class ListAvailabilityZone(command.Lister):
-    """List availability zones and their status"""
+    _description = _("List availability zones and their status")
 
     def get_parser(self, prog_name):
         parser = super(ListAvailabilityZone, self).get_parser(prog_name)
diff --git a/openstackclient/common/configuration.py b/openstackclient/common/configuration.py
index 016e91917f..57825bb056 100644
--- a/openstackclient/common/configuration.py
+++ b/openstackclient/common/configuration.py
@@ -23,7 +23,7 @@ REDACTED = "<redacted>"
 
 
 class ShowConfiguration(command.ShowOne):
-    """Display configuration details"""
+    _description = _("Display configuration details")
 
     def get_parser(self, prog_name):
         parser = super(ShowConfiguration, self).get_parser(prog_name)
diff --git a/openstackclient/common/extension.py b/openstackclient/common/extension.py
index de48001609..991f3afcd5 100644
--- a/openstackclient/common/extension.py
+++ b/openstackclient/common/extension.py
@@ -28,7 +28,7 @@ LOG = logging.getLogger(__name__)
 
 
 class ListExtension(command.Lister):
-    """List API extensions"""
+    _description = _("List API extensions")
 
     def get_parser(self, prog_name):
         parser = super(ListExtension, self).get_parser(prog_name)
diff --git a/openstackclient/common/limits.py b/openstackclient/common/limits.py
index f7aa82f62c..957f1d0212 100644
--- a/openstackclient/common/limits.py
+++ b/openstackclient/common/limits.py
@@ -25,7 +25,7 @@ from openstackclient.identity import common as identity_common
 
 
 class ShowLimits(command.Lister):
-    """Show compute and block storage limits"""
+    _description = _("Show compute and block storage limits")
 
     def get_parser(self, prog_name):
         parser = super(ShowLimits, self).get_parser(prog_name)
diff --git a/openstackclient/common/module.py b/openstackclient/common/module.py
index 7c5fcd55a2..15719a30e8 100644
--- a/openstackclient/common/module.py
+++ b/openstackclient/common/module.py
@@ -25,7 +25,7 @@ from openstackclient.i18n import _
 
 
 class ListCommand(command.Lister):
-    """List recognized commands by group"""
+    _description = _("List recognized commands by group")
 
     auth_required = False
 
@@ -53,7 +53,7 @@ class ListCommand(command.Lister):
 
 
 class ListModule(command.ShowOne):
-    """List module versions"""
+    _description = _("List module versions")
 
     auth_required = False
 
diff --git a/openstackclient/common/quota.py b/openstackclient/common/quota.py
index 8f099cc927..58368c5620 100644
--- a/openstackclient/common/quota.py
+++ b/openstackclient/common/quota.py
@@ -80,7 +80,7 @@ NETWORK_QUOTAS = {
 
 
 class SetQuota(command.Command):
-    """Set quotas for project or class"""
+    _description = _("Set quotas for project or class")
 
     def _build_options_list(self):
         if self.app.client_manager.is_network_endpoint_enabled():
@@ -186,7 +186,7 @@ class SetQuota(command.Command):
 
 
 class ShowQuota(command.ShowOne):
-    """Show quotas for project or class"""
+    _description = _("Show quotas for project or class")
 
     def get_parser(self, prog_name):
         parser = super(ShowQuota, self).get_parser(prog_name)
diff --git a/openstackclient/compute/v2/agent.py b/openstackclient/compute/v2/agent.py
index 76c1b3b756..151dcc1e82 100644
--- a/openstackclient/compute/v2/agent.py
+++ b/openstackclient/compute/v2/agent.py
@@ -29,7 +29,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateAgent(command.ShowOne):
-    """Create compute agent"""
+    _description = _("Create compute agent")
 
     def get_parser(self, prog_name):
         parser = super(CreateAgent, self).get_parser(prog_name)
@@ -81,7 +81,7 @@ class CreateAgent(command.ShowOne):
 
 
 class DeleteAgent(command.Command):
-    """Delete compute agent(s)"""
+    _description = _("Delete compute agent(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteAgent, self).get_parser(prog_name)
@@ -112,7 +112,7 @@ class DeleteAgent(command.Command):
 
 
 class ListAgent(command.Lister):
-    """List compute agents"""
+    _description = _("List compute agents")
 
     def get_parser(self, prog_name):
         parser = super(ListAgent, self).get_parser(prog_name)
@@ -142,7 +142,7 @@ class ListAgent(command.Lister):
 
 
 class SetAgent(command.Command):
-    """Set compute agent properties"""
+    _description = _("Set compute agent properties")
 
     def get_parser(self, prog_name):
         parser = super(SetAgent, self).get_parser(prog_name)
diff --git a/openstackclient/compute/v2/aggregate.py b/openstackclient/compute/v2/aggregate.py
index 58d529e9f8..76ba5cc662 100644
--- a/openstackclient/compute/v2/aggregate.py
+++ b/openstackclient/compute/v2/aggregate.py
@@ -31,7 +31,7 @@ LOG = logging.getLogger(__name__)
 
 
 class AddAggregateHost(command.ShowOne):
-    """Add host to aggregate"""
+    _description = _("Add host to aggregate")
 
     def get_parser(self, prog_name):
         parser = super(AddAggregateHost, self).get_parser(prog_name)
@@ -62,7 +62,7 @@ class AddAggregateHost(command.ShowOne):
 
 
 class CreateAggregate(command.ShowOne):
-    """Create a new aggregate"""
+    _description = _("Create a new aggregate")
 
     def get_parser(self, prog_name):
         parser = super(CreateAggregate, self).get_parser(prog_name)
@@ -105,7 +105,7 @@ class CreateAggregate(command.ShowOne):
 
 
 class DeleteAggregate(command.Command):
-    """Delete existing aggregate(s)"""
+    _description = _("Delete existing aggregate(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteAggregate, self).get_parser(prog_name)
@@ -139,7 +139,7 @@ class DeleteAggregate(command.Command):
 
 
 class ListAggregate(command.Lister):
-    """List all aggregates"""
+    _description = _("List all aggregates")
 
     def get_parser(self, prog_name):
         parser = super(ListAggregate, self).get_parser(prog_name)
@@ -188,7 +188,7 @@ class ListAggregate(command.Lister):
 
 
 class RemoveAggregateHost(command.ShowOne):
-    """Remove host from aggregate"""
+    _description = _("Remove host from aggregate")
 
     def get_parser(self, prog_name):
         parser = super(RemoveAggregateHost, self).get_parser(prog_name)
@@ -222,7 +222,7 @@ class RemoveAggregateHost(command.ShowOne):
 
 
 class SetAggregate(command.Command):
-    """Set aggregate properties"""
+    _description = _("Set aggregate properties")
 
     def get_parser(self, prog_name):
         parser = super(SetAggregate, self).get_parser(prog_name)
@@ -298,7 +298,7 @@ class SetAggregate(command.Command):
 
 
 class ShowAggregate(command.ShowOne):
-    """Display aggregate details"""
+    _description = _("Display aggregate details")
 
     def get_parser(self, prog_name):
         parser = super(ShowAggregate, self).get_parser(prog_name)
@@ -334,7 +334,7 @@ class ShowAggregate(command.ShowOne):
 
 
 class UnsetAggregate(command.Command):
-    """Unset aggregate properties"""
+    _description = _("Unset aggregate properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetAggregate, self).get_parser(prog_name)
diff --git a/openstackclient/compute/v2/console.py b/openstackclient/compute/v2/console.py
index 02be99d527..358df50182 100644
--- a/openstackclient/compute/v2/console.py
+++ b/openstackclient/compute/v2/console.py
@@ -26,7 +26,7 @@ from openstackclient.i18n import _
 
 
 class ShowConsoleLog(command.Command):
-    """Show server's console output"""
+    _description = _("Show server's console output")
 
     def get_parser(self, prog_name):
         parser = super(ShowConsoleLog, self).get_parser(prog_name)
@@ -64,7 +64,7 @@ class ShowConsoleLog(command.Command):
 
 
 class ShowConsoleURL(command.ShowOne):
-    """Show server's remote console URL"""
+    _description = _("Show server's remote console URL")
 
     def get_parser(self, prog_name):
         parser = super(ShowConsoleURL, self).get_parser(prog_name)
diff --git a/openstackclient/compute/v2/fixedip.py b/openstackclient/compute/v2/fixedip.py
index c14d29fa96..0c0b619e8e 100644
--- a/openstackclient/compute/v2/fixedip.py
+++ b/openstackclient/compute/v2/fixedip.py
@@ -24,7 +24,7 @@ from openstackclient.i18n import _
 
 
 class AddFixedIP(command.Command):
-    """Add fixed IP address to server"""
+    _description = _("Add fixed IP address to server")
 
     # TODO(tangchen): Remove this class and ``ip fixed add`` command
     #                 two cycles after Mitaka.
@@ -64,7 +64,7 @@ class AddFixedIP(command.Command):
 
 
 class RemoveFixedIP(command.Command):
-    """Remove fixed IP address from server"""
+    _description = _("Remove fixed IP address from server")
 
     # TODO(tangchen): Remove this class and ``ip fixed remove`` command
     #                 two cycles after Mitaka.
diff --git a/openstackclient/compute/v2/flavor.py b/openstackclient/compute/v2/flavor.py
index b3f09ce586..f20d154b27 100644
--- a/openstackclient/compute/v2/flavor.py
+++ b/openstackclient/compute/v2/flavor.py
@@ -49,7 +49,7 @@ def _find_flavor(compute_client, flavor):
 
 
 class CreateFlavor(command.ShowOne):
-    """Create new flavor"""
+    _description = _("Create new flavor")
 
     def get_parser(self, prog_name):
         parser = super(CreateFlavor, self).get_parser(prog_name)
@@ -186,7 +186,7 @@ class CreateFlavor(command.ShowOne):
 
 
 class DeleteFlavor(command.Command):
-    """Delete flavor(s)"""
+    _description = _("Delete flavor(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteFlavor, self).get_parser(prog_name)
@@ -219,7 +219,7 @@ class DeleteFlavor(command.Command):
 
 
 class ListFlavor(command.Lister):
-    """List flavors"""
+    _description = _("List flavors")
 
     def get_parser(self, prog_name):
         parser = super(ListFlavor, self).get_parser(prog_name)
@@ -303,7 +303,7 @@ class ListFlavor(command.Lister):
 
 
 class SetFlavor(command.Command):
-    """Set flavor properties"""
+    _description = _("Set flavor properties")
 
     def get_parser(self, prog_name):
         parser = super(SetFlavor, self).get_parser(prog_name)
@@ -366,7 +366,7 @@ class SetFlavor(command.Command):
 
 
 class ShowFlavor(command.ShowOne):
-    """Display flavor details"""
+    _description = _("Display flavor details")
 
     def get_parser(self, prog_name):
         parser = super(ShowFlavor, self).get_parser(prog_name)
@@ -409,7 +409,7 @@ class ShowFlavor(command.ShowOne):
 
 
 class UnsetFlavor(command.Command):
-    """Unset flavor properties"""
+    _description = _("Unset flavor properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetFlavor, self).get_parser(prog_name)
diff --git a/openstackclient/compute/v2/floatingip.py b/openstackclient/compute/v2/floatingip.py
index 8398ea57db..69595bed2f 100644
--- a/openstackclient/compute/v2/floatingip.py
+++ b/openstackclient/compute/v2/floatingip.py
@@ -24,7 +24,7 @@ from openstackclient.i18n import _
 
 
 class AddFloatingIP(command.Command):
-    """Add floating IP address to server"""
+    _description = _("Add floating IP address to server")
 
     # TODO(tangchen): Remove this class and ``ip floating add`` command
     #                 two cycles after Mitaka.
@@ -61,7 +61,7 @@ class AddFloatingIP(command.Command):
 
 
 class RemoveFloatingIP(command.Command):
-    """Remove floating IP address from server"""
+    _description = _("Remove floating IP address from server")
 
     # TODO(tangchen): Remove this class and ``ip floating remove`` command
     #                 two cycles after Mitaka.
diff --git a/openstackclient/compute/v2/host.py b/openstackclient/compute/v2/host.py
index 4785377e27..a495b367aa 100644
--- a/openstackclient/compute/v2/host.py
+++ b/openstackclient/compute/v2/host.py
@@ -22,7 +22,7 @@ from openstackclient.i18n import _
 
 
 class ListHost(command.Lister):
-    """List hosts"""
+    _description = _("List hosts")
 
     def get_parser(self, prog_name):
         parser = super(ListHost, self).get_parser(prog_name)
@@ -48,7 +48,8 @@ class ListHost(command.Lister):
 
 
 class SetHost(command.Command):
-    """Set host properties"""
+    _description = _("Set host properties")
+
     def get_parser(self, prog_name):
         parser = super(SetHost, self).get_parser(prog_name)
         parser.add_argument(
@@ -107,7 +108,7 @@ class SetHost(command.Command):
 
 
 class ShowHost(command.Lister):
-    """Display host details"""
+    _description = _("Display host details")
 
     def get_parser(self, prog_name):
         parser = super(ShowHost, self).get_parser(prog_name)
diff --git a/openstackclient/compute/v2/hypervisor.py b/openstackclient/compute/v2/hypervisor.py
index 69b5d1370b..406aa9175b 100644
--- a/openstackclient/compute/v2/hypervisor.py
+++ b/openstackclient/compute/v2/hypervisor.py
@@ -26,7 +26,7 @@ from openstackclient.i18n import _
 
 
 class ListHypervisor(command.Lister):
-    """List hypervisors"""
+    _description = _("List hypervisors")
 
     def get_parser(self, prog_name):
         parser = super(ListHypervisor, self).get_parser(prog_name)
@@ -66,7 +66,7 @@ class ListHypervisor(command.Lister):
 
 
 class ShowHypervisor(command.ShowOne):
-    """Display hypervisor details"""
+    _description = _("Display hypervisor details")
 
     def get_parser(self, prog_name):
         parser = super(ShowHypervisor, self).get_parser(prog_name)
diff --git a/openstackclient/compute/v2/hypervisor_stats.py b/openstackclient/compute/v2/hypervisor_stats.py
index c6fd2992c5..b0413005b6 100644
--- a/openstackclient/compute/v2/hypervisor_stats.py
+++ b/openstackclient/compute/v2/hypervisor_stats.py
@@ -17,9 +17,11 @@
 from osc_lib.command import command
 import six
 
+from openstackclient.i18n import _
+
 
 class ShowHypervisorStats(command.ShowOne):
-    """Display hypervisor stats details"""
+    _description = _("Display hypervisor stats details")
 
     def take_action(self, parsed_args):
         compute_client = self.app.client_manager.compute
diff --git a/openstackclient/compute/v2/keypair.py b/openstackclient/compute/v2/keypair.py
index d5c682f455..a63cbfecc0 100644
--- a/openstackclient/compute/v2/keypair.py
+++ b/openstackclient/compute/v2/keypair.py
@@ -32,7 +32,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateKeypair(command.ShowOne):
-    """Create new public or private key for server ssh access"""
+    _description = _("Create new public or private key for server ssh access")
 
     def get_parser(self, prog_name):
         parser = super(CreateKeypair, self).get_parser(prog_name)
@@ -83,7 +83,7 @@ class CreateKeypair(command.ShowOne):
 
 
 class DeleteKeypair(command.Command):
-    """Delete public or private key(s)"""
+    _description = _("Delete public or private key(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteKeypair, self).get_parser(prog_name)
@@ -117,7 +117,7 @@ class DeleteKeypair(command.Command):
 
 
 class ListKeypair(command.Lister):
-    """List key fingerprints"""
+    _description = _("List key fingerprints")
 
     def take_action(self, parsed_args):
         compute_client = self.app.client_manager.compute
@@ -134,7 +134,7 @@ class ListKeypair(command.Lister):
 
 
 class ShowKeypair(command.ShowOne):
-    """Display key details"""
+    _description = _("Display key details")
 
     def get_parser(self, prog_name):
         parser = super(ShowKeypair, self).get_parser(prog_name)
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py
index df46c7df64..48d8b2d0d9 100644
--- a/openstackclient/compute/v2/server.py
+++ b/openstackclient/compute/v2/server.py
@@ -175,7 +175,7 @@ def _show_progress(progress):
 
 
 class AddFixedIP(command.Command):
-    """Add fixed IP address to server"""
+    _description = _("Add fixed IP address to server")
 
     def get_parser(self, prog_name):
         parser = super(AddFixedIP, self).get_parser(prog_name)
@@ -205,7 +205,7 @@ class AddFixedIP(command.Command):
 
 
 class AddFloatingIP(command.Command):
-    """Add floating IP address to server"""
+    _description = _("Add floating IP address to server")
 
     def get_parser(self, prog_name):
         parser = super(AddFloatingIP, self).get_parser(prog_name)
@@ -232,7 +232,7 @@ class AddFloatingIP(command.Command):
 
 
 class AddServerSecurityGroup(command.Command):
-    """Add security group to server"""
+    _description = _("Add security group to server")
 
     def get_parser(self, prog_name):
         parser = super(AddServerSecurityGroup, self).get_parser(prog_name)
@@ -264,7 +264,7 @@ class AddServerSecurityGroup(command.Command):
 
 
 class AddServerVolume(command.Command):
-    """Add volume to server"""
+    _description = _("Add volume to server")
 
     def get_parser(self, prog_name):
         parser = super(AddServerVolume, self).get_parser(prog_name)
@@ -306,7 +306,7 @@ class AddServerVolume(command.Command):
 
 
 class CreateServer(command.ShowOne):
-    """Create a new server"""
+    _description = _("Create a new server")
 
     def get_parser(self, prog_name):
         parser = super(CreateServer, self).get_parser(prog_name)
@@ -642,7 +642,7 @@ class CreateServerDump(command.Command):
 
 
 class DeleteServer(command.Command):
-    """Delete server(s)"""
+    _description = _("Delete server(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteServer, self).get_parser(prog_name)
@@ -680,7 +680,7 @@ class DeleteServer(command.Command):
 
 
 class ListServer(command.Lister):
-    """List servers"""
+    _description = _("List servers")
 
     def get_parser(self, prog_name):
         parser = super(ListServer, self).get_parser(prog_name)
@@ -923,7 +923,8 @@ class ListServer(command.Lister):
 
 class LockServer(command.Command):
 
-    """Lock server(s). A non-admin user will not be able to execute actions"""
+    _description = _("Lock server(s). A non-admin user will not be able to "
+                     "execute actions")
 
     def get_parser(self, prog_name):
         parser = super(LockServer, self).get_parser(prog_name)
@@ -956,7 +957,7 @@ class LockServer(command.Command):
 # then adding the groups doesn't seem to work
 
 class MigrateServer(command.Command):
-    """Migrate server to different host"""
+    _description = _("Migrate server to different host")
 
     def get_parser(self, prog_name):
         parser = super(MigrateServer, self).get_parser(prog_name)
@@ -1038,7 +1039,7 @@ class MigrateServer(command.Command):
 
 
 class PauseServer(command.Command):
-    """Pause server(s)"""
+    _description = _("Pause server(s)")
 
     def get_parser(self, prog_name):
         parser = super(PauseServer, self).get_parser(prog_name)
@@ -1060,7 +1061,7 @@ class PauseServer(command.Command):
 
 
 class RebootServer(command.Command):
-    """Perform a hard or soft server reboot"""
+    _description = _("Perform a hard or soft server reboot")
 
     def get_parser(self, prog_name):
         parser = super(RebootServer, self).get_parser(prog_name)
@@ -1114,7 +1115,7 @@ class RebootServer(command.Command):
 
 
 class RebuildServer(command.ShowOne):
-    """Rebuild server"""
+    _description = _("Rebuild server")
 
     def get_parser(self, prog_name):
         parser = super(RebuildServer, self).get_parser(prog_name)
@@ -1170,7 +1171,7 @@ class RebuildServer(command.ShowOne):
 
 
 class RemoveFixedIP(command.Command):
-    """Remove fixed IP address from server"""
+    _description = _("Remove fixed IP address from server")
 
     def get_parser(self, prog_name):
         parser = super(RemoveFixedIP, self).get_parser(prog_name)
@@ -1197,7 +1198,7 @@ class RemoveFixedIP(command.Command):
 
 
 class RemoveFloatingIP(command.Command):
-    """Remove floating IP address from server"""
+    _description = _("Remove floating IP address from server")
 
     def get_parser(self, prog_name):
         parser = super(RemoveFloatingIP, self).get_parser(prog_name)
@@ -1225,7 +1226,7 @@ class RemoveFloatingIP(command.Command):
 
 
 class RemoveServerSecurityGroup(command.Command):
-    """Remove security group from server"""
+    _description = _("Remove security group from server")
 
     def get_parser(self, prog_name):
         parser = super(RemoveServerSecurityGroup, self).get_parser(prog_name)
@@ -1257,7 +1258,7 @@ class RemoveServerSecurityGroup(command.Command):
 
 
 class RemoveServerVolume(command.Command):
-    """Remove volume from server"""
+    _description = _("Remove volume from server")
 
     def get_parser(self, prog_name):
         parser = super(RemoveServerVolume, self).get_parser(prog_name)
@@ -1293,7 +1294,7 @@ class RemoveServerVolume(command.Command):
 
 
 class RescueServer(command.ShowOne):
-    """Put server in rescue mode"""
+    _description = _("Put server in rescue mode")
 
     def get_parser(self, prog_name):
         parser = super(RescueServer, self).get_parser(prog_name)
@@ -1315,7 +1316,7 @@ class RescueServer(command.ShowOne):
 
 
 class ResizeServer(command.Command):
-    """Scale server to a new flavor"""
+    _description = _("Scale server to a new flavor")
 
     def get_parser(self, prog_name):
         parser = super(ResizeServer, self).get_parser(prog_name)
@@ -1380,7 +1381,7 @@ class ResizeServer(command.Command):
 
 
 class RestoreServer(command.Command):
-    """Restore server(s)"""
+    _description = _("Restore server(s)")
 
     def get_parser(self, prog_name):
         parser = super(RestoreServer, self).get_parser(prog_name)
@@ -1402,7 +1403,7 @@ class RestoreServer(command.Command):
 
 
 class ResumeServer(command.Command):
-    """Resume server(s)"""
+    _description = _("Resume server(s)")
 
     def get_parser(self, prog_name):
         parser = super(ResumeServer, self).get_parser(prog_name)
@@ -1425,7 +1426,7 @@ class ResumeServer(command.Command):
 
 
 class SetServer(command.Command):
-    """Set server properties"""
+    _description = _("Set server properties")
 
     def get_parser(self, prog_name):
         parser = super(SetServer, self).get_parser(prog_name)
@@ -1490,7 +1491,7 @@ class SetServer(command.Command):
 
 
 class ShelveServer(command.Command):
-    """Shelve server(s)"""
+    _description = _("Shelve server(s)")
 
     def get_parser(self, prog_name):
         parser = super(ShelveServer, self).get_parser(prog_name)
@@ -1512,7 +1513,7 @@ class ShelveServer(command.Command):
 
 
 class ShowServer(command.ShowOne):
-    """Show server details"""
+    _description = _("Show server details")
 
     def get_parser(self, prog_name):
         parser = super(ShowServer, self).get_parser(prog_name)
@@ -1546,7 +1547,7 @@ class ShowServer(command.ShowOne):
 
 
 class SshServer(command.Command):
-    """SSH to server"""
+    _description = _("SSH to server")
 
     def get_parser(self, prog_name):
         parser = super(SshServer, self).get_parser(prog_name)
@@ -1690,7 +1691,7 @@ class SshServer(command.Command):
 
 
 class StartServer(command.Command):
-    """Start server(s)."""
+    _description = _("Start server(s).")
 
     def get_parser(self, prog_name):
         parser = super(StartServer, self).get_parser(prog_name)
@@ -1712,7 +1713,7 @@ class StartServer(command.Command):
 
 
 class StopServer(command.Command):
-    """Stop server(s)."""
+    _description = _("Stop server(s).")
 
     def get_parser(self, prog_name):
         parser = super(StopServer, self).get_parser(prog_name)
@@ -1734,7 +1735,7 @@ class StopServer(command.Command):
 
 
 class SuspendServer(command.Command):
-    """Suspend server(s)"""
+    _description = _("Suspend server(s)")
 
     def get_parser(self, prog_name):
         parser = super(SuspendServer, self).get_parser(prog_name)
@@ -1757,7 +1758,7 @@ class SuspendServer(command.Command):
 
 
 class UnlockServer(command.Command):
-    """Unlock server(s)"""
+    _description = _("Unlock server(s)")
 
     def get_parser(self, prog_name):
         parser = super(UnlockServer, self).get_parser(prog_name)
@@ -1780,7 +1781,7 @@ class UnlockServer(command.Command):
 
 
 class UnpauseServer(command.Command):
-    """Unpause server(s)"""
+    _description = _("Unpause server(s)")
 
     def get_parser(self, prog_name):
         parser = super(UnpauseServer, self).get_parser(prog_name)
@@ -1803,7 +1804,7 @@ class UnpauseServer(command.Command):
 
 
 class UnrescueServer(command.Command):
-    """Restore server from rescue mode"""
+    _description = _("Restore server from rescue mode")
 
     def get_parser(self, prog_name):
         parser = super(UnrescueServer, self).get_parser(prog_name)
@@ -1824,7 +1825,7 @@ class UnrescueServer(command.Command):
 
 
 class UnsetServer(command.Command):
-    """Unset server properties"""
+    _description = _("Unset server properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetServer, self).get_parser(prog_name)
@@ -1858,7 +1859,7 @@ class UnsetServer(command.Command):
 
 
 class UnshelveServer(command.Command):
-    """Unshelve server(s)"""
+    _description = _("Unshelve server(s)")
 
     def get_parser(self, prog_name):
         parser = super(UnshelveServer, self).get_parser(prog_name)
diff --git a/openstackclient/compute/v2/server_backup.py b/openstackclient/compute/v2/server_backup.py
index c0e2e5ee4c..ddcf91010e 100644
--- a/openstackclient/compute/v2/server_backup.py
+++ b/openstackclient/compute/v2/server_backup.py
@@ -33,7 +33,7 @@ def _show_progress(progress):
 
 
 class CreateServerBackup(command.ShowOne):
-    """Create a server backup image"""
+    _description = _("Create a server backup image")
 
     IMAGE_API_VERSIONS = {
         "1": "openstackclient.image.v1.image",
diff --git a/openstackclient/compute/v2/server_group.py b/openstackclient/compute/v2/server_group.py
index d51b1ec23e..6bcfc6aef7 100644
--- a/openstackclient/compute/v2/server_group.py
+++ b/openstackclient/compute/v2/server_group.py
@@ -43,7 +43,7 @@ def _get_columns(info):
 
 
 class CreateServerGroup(command.ShowOne):
-    """Create a new server group."""
+    _description = _("Create a new server group.")
 
     def get_parser(self, prog_name):
         parser = super(CreateServerGroup, self).get_parser(prog_name)
@@ -77,7 +77,7 @@ class CreateServerGroup(command.ShowOne):
 
 
 class DeleteServerGroup(command.Command):
-    """Delete existing server group(s)."""
+    _description = _("Delete existing server group(s).")
 
     def get_parser(self, prog_name):
         parser = super(DeleteServerGroup, self).get_parser(prog_name)
@@ -112,7 +112,7 @@ class DeleteServerGroup(command.Command):
 
 
 class ListServerGroup(command.Lister):
-    """List all server groups."""
+    _description = _("List all server groups.")
 
     def get_parser(self, prog_name):
         parser = super(ListServerGroup, self).get_parser(prog_name)
@@ -161,7 +161,7 @@ class ListServerGroup(command.Lister):
 
 
 class ShowServerGroup(command.ShowOne):
-    """Display server group details."""
+    _description = _("Display server group details.")
 
     def get_parser(self, prog_name):
         parser = super(ShowServerGroup, self).get_parser(prog_name)
diff --git a/openstackclient/compute/v2/server_image.py b/openstackclient/compute/v2/server_image.py
index 285c7fd21d..c66e06747f 100644
--- a/openstackclient/compute/v2/server_image.py
+++ b/openstackclient/compute/v2/server_image.py
@@ -37,7 +37,7 @@ def _show_progress(progress):
 
 
 class CreateServerImage(command.ShowOne):
-    """Create a new server disk image from an existing server"""
+    _description = _("Create a new server disk image from an existing server")
 
     IMAGE_API_VERSIONS = {
         "1": "openstackclient.image.v1.image",
diff --git a/openstackclient/compute/v2/service.py b/openstackclient/compute/v2/service.py
index 53624f5571..9c384f0589 100644
--- a/openstackclient/compute/v2/service.py
+++ b/openstackclient/compute/v2/service.py
@@ -29,7 +29,7 @@ LOG = logging.getLogger(__name__)
 
 
 class DeleteService(command.Command):
-    """Delete compute service(s)"""
+    _description = _("Delete compute service(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteService, self).get_parser(prog_name)
@@ -61,7 +61,7 @@ class DeleteService(command.Command):
 
 
 class ListService(command.Lister):
-    """List compute services"""
+    _description = _("List compute services")
 
     def get_parser(self, prog_name):
         parser = super(ListService, self).get_parser(prog_name)
@@ -115,7 +115,7 @@ class ListService(command.Lister):
 
 
 class SetService(command.Command):
-    """Set compute service properties"""
+    _description = _("Set compute service properties")
 
     def get_parser(self, prog_name):
         parser = super(SetService, self).get_parser(prog_name)
diff --git a/openstackclient/compute/v2/usage.py b/openstackclient/compute/v2/usage.py
index 2f35b01b13..89601ae341 100644
--- a/openstackclient/compute/v2/usage.py
+++ b/openstackclient/compute/v2/usage.py
@@ -26,7 +26,7 @@ from openstackclient.i18n import _
 
 
 class ListUsage(command.Lister):
-    """List resource usage per project"""
+    _description = _("List resource usage per project")
 
     def get_parser(self, prog_name):
         parser = super(ListUsage, self).get_parser(prog_name)
@@ -115,7 +115,7 @@ class ListUsage(command.Lister):
 
 
 class ShowUsage(command.ShowOne):
-    """Show resource usage for a single project"""
+    _description = _("Show resource usage for a single project")
 
     def get_parser(self, prog_name):
         parser = super(ShowUsage, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v2_0/catalog.py b/openstackclient/identity/v2_0/catalog.py
index 7a15cf3a58..993bdd5343 100644
--- a/openstackclient/identity/v2_0/catalog.py
+++ b/openstackclient/identity/v2_0/catalog.py
@@ -43,7 +43,7 @@ def _format_endpoints(eps=None):
 
 
 class ListCatalog(command.Lister):
-    """List services in the service catalog"""
+    _description = _("List services in the service catalog")
 
     def take_action(self, parsed_args):
 
@@ -66,7 +66,7 @@ class ListCatalog(command.Lister):
 
 
 class ShowCatalog(command.ShowOne):
-    """Display service catalog details"""
+    _description = _("Display service catalog details")
 
     def get_parser(self, prog_name):
         parser = super(ShowCatalog, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v2_0/ec2creds.py b/openstackclient/identity/v2_0/ec2creds.py
index 4873cd55fd..2572c4f0bd 100644
--- a/openstackclient/identity/v2_0/ec2creds.py
+++ b/openstackclient/identity/v2_0/ec2creds.py
@@ -30,7 +30,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateEC2Creds(command.ShowOne):
-    """Create EC2 credentials"""
+    _description = _("Create EC2 credentials")
 
     def get_parser(self, prog_name):
         parser = super(CreateEC2Creds, self).get_parser(prog_name)
@@ -86,7 +86,7 @@ class CreateEC2Creds(command.ShowOne):
 
 
 class DeleteEC2Creds(command.Command):
-    """Delete EC2 credentials"""
+    _description = _("Delete EC2 credentials")
 
     def get_parser(self, prog_name):
         parser = super(DeleteEC2Creds, self).get_parser(prog_name)
@@ -133,7 +133,7 @@ class DeleteEC2Creds(command.Command):
 
 
 class ListEC2Creds(command.Lister):
-    """List EC2 credentials"""
+    _description = _("List EC2 credentials")
 
     def get_parser(self, prog_name):
         parser = super(ListEC2Creds, self).get_parser(prog_name)
@@ -168,7 +168,7 @@ class ListEC2Creds(command.Lister):
 
 
 class ShowEC2Creds(command.ShowOne):
-    """Display EC2 credentials details"""
+    _description = _("Display EC2 credentials details")
 
     def get_parser(self, prog_name):
         parser = super(ShowEC2Creds, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v2_0/endpoint.py b/openstackclient/identity/v2_0/endpoint.py
index 5a3b3186fb..7e0751a7ef 100644
--- a/openstackclient/identity/v2_0/endpoint.py
+++ b/openstackclient/identity/v2_0/endpoint.py
@@ -30,7 +30,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateEndpoint(command.ShowOne):
-    """Create new endpoint"""
+    _description = _("Create new endpoint")
 
     def get_parser(self, prog_name):
         parser = super(CreateEndpoint, self).get_parser(prog_name)
@@ -80,7 +80,7 @@ class CreateEndpoint(command.ShowOne):
 
 
 class DeleteEndpoint(command.Command):
-    """Delete endpoint(s)"""
+    _description = _("Delete endpoint(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteEndpoint, self).get_parser(prog_name)
@@ -113,7 +113,7 @@ class DeleteEndpoint(command.Command):
 
 
 class ListEndpoint(command.Lister):
-    """List endpoints"""
+    _description = _("List endpoints")
 
     def get_parser(self, prog_name):
         parser = super(ListEndpoint, self).get_parser(prog_name)
@@ -146,7 +146,7 @@ class ListEndpoint(command.Lister):
 
 
 class ShowEndpoint(command.ShowOne):
-    """Display endpoint details"""
+    _description = _("Display endpoint details")
 
     def get_parser(self, prog_name):
         parser = super(ShowEndpoint, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v2_0/project.py b/openstackclient/identity/v2_0/project.py
index fc5c920175..8526d6bdf6 100644
--- a/openstackclient/identity/v2_0/project.py
+++ b/openstackclient/identity/v2_0/project.py
@@ -30,7 +30,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateProject(command.ShowOne):
-    """Create new project"""
+    _description = _("Create new project")
 
     def get_parser(self, prog_name):
         parser = super(CreateProject, self).get_parser(prog_name)
@@ -102,7 +102,7 @@ class CreateProject(command.ShowOne):
 
 
 class DeleteProject(command.Command):
-    """Delete project(s)"""
+    _description = _("Delete project(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteProject, self).get_parser(prog_name)
@@ -126,7 +126,7 @@ class DeleteProject(command.Command):
 
 
 class ListProject(command.Lister):
-    """List projects"""
+    _description = _("List projects")
 
     def get_parser(self, prog_name):
         parser = super(ListProject, self).get_parser(prog_name)
@@ -152,7 +152,7 @@ class ListProject(command.Lister):
 
 
 class SetProject(command.Command):
-    """Set project properties"""
+    _description = _("Set project properties")
 
     def get_parser(self, prog_name):
         parser = super(SetProject, self).get_parser(prog_name)
@@ -221,7 +221,7 @@ class SetProject(command.Command):
 
 
 class ShowProject(command.ShowOne):
-    """Display project details"""
+    _description = _("Display project details")
 
     def get_parser(self, prog_name):
         parser = super(ShowProject, self).get_parser(prog_name)
@@ -279,7 +279,7 @@ class ShowProject(command.ShowOne):
 
 
 class UnsetProject(command.Command):
-    """Unset project properties"""
+    _description = _("Unset project properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetProject, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v2_0/role.py b/openstackclient/identity/v2_0/role.py
index b4b67bad29..0a28a70a8f 100644
--- a/openstackclient/identity/v2_0/role.py
+++ b/openstackclient/identity/v2_0/role.py
@@ -30,7 +30,7 @@ LOG = logging.getLogger(__name__)
 
 
 class AddRole(command.ShowOne):
-    """Add role to project:user"""
+    _description = _("Add role to project:user")
 
     def get_parser(self, prog_name):
         parser = super(AddRole, self).get_parser(prog_name)
@@ -73,7 +73,7 @@ class AddRole(command.ShowOne):
 
 
 class CreateRole(command.ShowOne):
-    """Create new role"""
+    _description = _("Create new role")
 
     def get_parser(self, prog_name):
         parser = super(CreateRole, self).get_parser(prog_name)
@@ -109,7 +109,7 @@ class CreateRole(command.ShowOne):
 
 
 class DeleteRole(command.Command):
-    """Delete role(s)"""
+    _description = _("Delete role(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteRole, self).get_parser(prog_name)
@@ -133,7 +133,7 @@ class DeleteRole(command.Command):
 
 
 class ListRole(command.Lister):
-    """List roles"""
+    _description = _("List roles")
 
     def get_parser(self, prog_name):
         parser = super(ListRole, self).get_parser(prog_name)
@@ -223,7 +223,7 @@ class ListRole(command.Lister):
 
 
 class ListUserRole(command.Lister):
-    """List user-role assignments"""
+    _description = _("List user-role assignments")
 
     def get_parser(self, prog_name):
         parser = super(ListUserRole, self).get_parser(prog_name)
@@ -293,7 +293,7 @@ class ListUserRole(command.Lister):
 
 
 class RemoveRole(command.Command):
-    """Remove role from project : user"""
+    _description = _("Remove role from project : user")
 
     def get_parser(self, prog_name):
         parser = super(RemoveRole, self).get_parser(prog_name)
@@ -331,7 +331,7 @@ class RemoveRole(command.Command):
 
 
 class ShowRole(command.ShowOne):
-    """Display role details"""
+    _description = _("Display role details")
 
     def get_parser(self, prog_name):
         parser = super(ShowRole, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v2_0/role_assignment.py b/openstackclient/identity/v2_0/role_assignment.py
index 44f55c3b7a..8236bbfc68 100644
--- a/openstackclient/identity/v2_0/role_assignment.py
+++ b/openstackclient/identity/v2_0/role_assignment.py
@@ -21,7 +21,7 @@ from openstackclient.i18n import _  # noqa
 
 
 class ListRoleAssignment(command.Lister):
-    """List role assignments"""
+    _description = _("List role assignments")
 
     def get_parser(self, prog_name):
         parser = super(ListRoleAssignment, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v2_0/service.py b/openstackclient/identity/v2_0/service.py
index e318643c17..f70f0fa9db 100644
--- a/openstackclient/identity/v2_0/service.py
+++ b/openstackclient/identity/v2_0/service.py
@@ -31,7 +31,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateService(command.ShowOne):
-    """Create new service"""
+    _description = _("Create new service")
 
     def get_parser(self, prog_name):
         parser = super(CreateService, self).get_parser(prog_name)
@@ -91,7 +91,7 @@ class CreateService(command.ShowOne):
 
 
 class DeleteService(command.Command):
-    """Delete service(s)"""
+    _description = _("Delete service(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteService, self).get_parser(prog_name)
@@ -125,7 +125,7 @@ class DeleteService(command.Command):
 
 
 class ListService(command.Lister):
-    """List services"""
+    _description = _("List services")
 
     def get_parser(self, prog_name):
         parser = super(ListService, self).get_parser(prog_name)
@@ -151,7 +151,7 @@ class ListService(command.Lister):
 
 
 class ShowService(command.ShowOne):
-    """Display service details"""
+    _description = _("Display service details")
 
     def get_parser(self, prog_name):
         parser = super(ShowService, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v2_0/token.py b/openstackclient/identity/v2_0/token.py
index 4b7e988b6e..3b08b4750d 100644
--- a/openstackclient/identity/v2_0/token.py
+++ b/openstackclient/identity/v2_0/token.py
@@ -23,7 +23,7 @@ from openstackclient.i18n import _
 
 
 class IssueToken(command.ShowOne):
-    """Issue new token"""
+    _description = _("Issue new token")
 
     # scoped token is optional
     required_scope = False
@@ -53,7 +53,7 @@ class IssueToken(command.ShowOne):
 
 
 class RevokeToken(command.Command):
-    """Revoke existing token"""
+    _description = _("Revoke existing token")
 
     def get_parser(self, prog_name):
         parser = super(RevokeToken, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v2_0/user.py b/openstackclient/identity/v2_0/user.py
index bc091ce7a3..ddd5b981e0 100644
--- a/openstackclient/identity/v2_0/user.py
+++ b/openstackclient/identity/v2_0/user.py
@@ -29,7 +29,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateUser(command.ShowOne):
-    """Create new user"""
+    _description = _("Create new user")
 
     def get_parser(self, prog_name):
         parser = super(CreateUser, self).get_parser(prog_name)
@@ -130,7 +130,7 @@ class CreateUser(command.ShowOne):
 
 
 class DeleteUser(command.Command):
-    """Delete user(s)"""
+    _description = _("Delete user(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteUser, self).get_parser(prog_name)
@@ -154,7 +154,7 @@ class DeleteUser(command.Command):
 
 
 class ListUser(command.Lister):
-    """List users"""
+    _description = _("List users")
 
     def get_parser(self, prog_name):
         parser = super(ListUser, self).get_parser(prog_name)
@@ -242,7 +242,7 @@ class ListUser(command.Lister):
 
 
 class SetUser(command.Command):
-    """Set user properties"""
+    _description = _("Set user properties")
 
     def get_parser(self, prog_name):
         parser = super(SetUser, self).get_parser(prog_name)
@@ -336,7 +336,7 @@ class SetUser(command.Command):
 
 
 class ShowUser(command.ShowOne):
-    """Display user details"""
+    _description = _("Display user details")
 
     def get_parser(self, prog_name):
         parser = super(ShowUser, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/catalog.py b/openstackclient/identity/v3/catalog.py
index a62d0a930d..28f4fadad5 100644
--- a/openstackclient/identity/v3/catalog.py
+++ b/openstackclient/identity/v3/catalog.py
@@ -38,7 +38,7 @@ def _format_endpoints(eps=None):
 
 
 class ListCatalog(command.Lister):
-    """List services in the service catalog"""
+    _description = _("List services in the service catalog")
 
     def take_action(self, parsed_args):
 
@@ -61,7 +61,7 @@ class ListCatalog(command.Lister):
 
 
 class ShowCatalog(command.ShowOne):
-    """Display service catalog details"""
+    _description = _("Display service catalog details")
 
     def get_parser(self, prog_name):
         parser = super(ShowCatalog, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/consumer.py b/openstackclient/identity/v3/consumer.py
index b41a37ca2c..bcb29db4dc 100644
--- a/openstackclient/identity/v3/consumer.py
+++ b/openstackclient/identity/v3/consumer.py
@@ -29,7 +29,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateConsumer(command.ShowOne):
-    """Create new consumer"""
+    _description = _("Create new consumer")
 
     def get_parser(self, prog_name):
         parser = super(CreateConsumer, self).get_parser(prog_name)
@@ -50,7 +50,7 @@ class CreateConsumer(command.ShowOne):
 
 
 class DeleteConsumer(command.Command):
-    """Delete consumer(s)"""
+    _description = _("Delete consumer(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteConsumer, self).get_parser(prog_name)
@@ -84,7 +84,7 @@ class DeleteConsumer(command.Command):
 
 
 class ListConsumer(command.Lister):
-    """List consumers"""
+    _description = _("List consumers")
 
     def take_action(self, parsed_args):
         columns = ('ID', 'Description')
@@ -97,7 +97,7 @@ class ListConsumer(command.Lister):
 
 
 class SetConsumer(command.Command):
-    """Set consumer properties"""
+    _description = _("Set consumer properties")
 
     def get_parser(self, prog_name):
         parser = super(SetConsumer, self).get_parser(prog_name)
@@ -126,7 +126,7 @@ class SetConsumer(command.Command):
 
 
 class ShowConsumer(command.ShowOne):
-    """Display consumer details"""
+    _description = _("Display consumer details")
 
     def get_parser(self, prog_name):
         parser = super(ShowConsumer, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/credential.py b/openstackclient/identity/v3/credential.py
index 0ef94cf40f..68287f2a39 100644
--- a/openstackclient/identity/v3/credential.py
+++ b/openstackclient/identity/v3/credential.py
@@ -29,7 +29,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateCredential(command.ShowOne):
-    """Create new credential"""
+    _description = _("Create new credential")
 
     def get_parser(self, prog_name):
         parser = super(CreateCredential, self).get_parser(prog_name)
@@ -78,7 +78,7 @@ class CreateCredential(command.ShowOne):
 
 
 class DeleteCredential(command.Command):
-    """Delete credential(s)"""
+    _description = _("Delete credential(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteCredential, self).get_parser(prog_name)
@@ -110,7 +110,7 @@ class DeleteCredential(command.Command):
 
 
 class ListCredential(command.Lister):
-    """List credentials"""
+    _description = _("List credentials")
 
     def take_action(self, parsed_args):
         columns = ('ID', 'Type', 'User ID', 'Blob', 'Project ID')
@@ -124,7 +124,7 @@ class ListCredential(command.Lister):
 
 
 class SetCredential(command.Command):
-    """Set credential properties"""
+    _description = _("Set credential properties")
 
     def get_parser(self, prog_name):
         parser = super(SetCredential, self).get_parser(prog_name)
@@ -180,7 +180,7 @@ class SetCredential(command.Command):
 
 
 class ShowCredential(command.ShowOne):
-    """Display credential details"""
+    _description = _("Display credential details")
 
     def get_parser(self, prog_name):
         parser = super(ShowCredential, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/domain.py b/openstackclient/identity/v3/domain.py
index 76e47d32e1..59ab0f0772 100644
--- a/openstackclient/identity/v3/domain.py
+++ b/openstackclient/identity/v3/domain.py
@@ -31,7 +31,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateDomain(command.ShowOne):
-    """Create new domain"""
+    _description = _("Create new domain")
 
     def get_parser(self, prog_name):
         parser = super(CreateDomain, self).get_parser(prog_name)
@@ -89,7 +89,7 @@ class CreateDomain(command.ShowOne):
 
 
 class DeleteDomain(command.Command):
-    """Delete domain(s)"""
+    _description = _("Delete domain(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteDomain, self).get_parser(prog_name)
@@ -122,7 +122,7 @@ class DeleteDomain(command.Command):
 
 
 class ListDomain(command.Lister):
-    """List domains"""
+    _description = _("List domains")
 
     def take_action(self, parsed_args):
         columns = ('ID', 'Name', 'Enabled', 'Description')
@@ -135,7 +135,7 @@ class ListDomain(command.Lister):
 
 
 class SetDomain(command.Command):
-    """Set domain properties"""
+    _description = _("Set domain properties")
 
     def get_parser(self, prog_name):
         parser = super(SetDomain, self).get_parser(prog_name)
@@ -186,7 +186,7 @@ class SetDomain(command.Command):
 
 
 class ShowDomain(command.ShowOne):
-    """Display domain details"""
+    _description = _("Display domain details")
 
     def get_parser(self, prog_name):
         parser = super(ShowDomain, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/ec2creds.py b/openstackclient/identity/v3/ec2creds.py
index 7ad0171906..9854efda70 100644
--- a/openstackclient/identity/v3/ec2creds.py
+++ b/openstackclient/identity/v3/ec2creds.py
@@ -55,7 +55,7 @@ def _determine_ec2_user(parsed_args, client_manager):
 
 
 class CreateEC2Creds(command.ShowOne):
-    """Create EC2 credentials"""
+    _description = _("Create EC2 credentials")
 
     def get_parser(self, prog_name):
         parser = super(CreateEC2Creds, self).get_parser(prog_name)
@@ -112,7 +112,7 @@ class CreateEC2Creds(command.ShowOne):
 
 
 class DeleteEC2Creds(command.Command):
-    """Delete EC2 credentials"""
+    _description = _("Delete EC2 credentials")
 
     def get_parser(self, prog_name):
         parser = super(DeleteEC2Creds, self).get_parser(prog_name)
@@ -151,7 +151,7 @@ class DeleteEC2Creds(command.Command):
 
 
 class ListEC2Creds(command.Lister):
-    """List EC2 credentials"""
+    _description = _("List EC2 credentials")
 
     def get_parser(self, prog_name):
         parser = super(ListEC2Creds, self).get_parser(prog_name)
@@ -179,7 +179,7 @@ class ListEC2Creds(command.Lister):
 
 
 class ShowEC2Creds(command.ShowOne):
-    """Display EC2 credentials details"""
+    _description = _("Display EC2 credentials details")
 
     def get_parser(self, prog_name):
         parser = super(ShowEC2Creds, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/endpoint.py b/openstackclient/identity/v3/endpoint.py
index 73b37a436c..39fd49efd1 100644
--- a/openstackclient/identity/v3/endpoint.py
+++ b/openstackclient/identity/v3/endpoint.py
@@ -37,7 +37,7 @@ def get_service_name(service):
 
 
 class CreateEndpoint(command.ShowOne):
-    """Create new endpoint"""
+    _description = _("Create new endpoint")
 
     def get_parser(self, prog_name):
         parser = super(CreateEndpoint, self).get_parser(prog_name)
@@ -99,7 +99,7 @@ class CreateEndpoint(command.ShowOne):
 
 
 class DeleteEndpoint(command.Command):
-    """Delete endpoint(s)"""
+    _description = _("Delete endpoint(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteEndpoint, self).get_parser(prog_name)
@@ -133,7 +133,7 @@ class DeleteEndpoint(command.Command):
 
 
 class ListEndpoint(command.Lister):
-    """List endpoints"""
+    _description = _("List endpoints")
 
     def get_parser(self, prog_name):
         parser = super(ListEndpoint, self).get_parser(prog_name)
@@ -181,7 +181,7 @@ class ListEndpoint(command.Lister):
 
 
 class SetEndpoint(command.Command):
-    """Set endpoint properties"""
+    _description = _("Set endpoint properties")
 
     def get_parser(self, prog_name):
         parser = super(SetEndpoint, self).get_parser(prog_name)
@@ -252,7 +252,7 @@ class SetEndpoint(command.Command):
 
 
 class ShowEndpoint(command.ShowOne):
-    """Display endpoint details"""
+    _description = _("Display endpoint details")
 
     def get_parser(self, prog_name):
         parser = super(ShowEndpoint, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/federation_protocol.py b/openstackclient/identity/v3/federation_protocol.py
index 3fde9027e7..0752e8f6f2 100644
--- a/openstackclient/identity/v3/federation_protocol.py
+++ b/openstackclient/identity/v3/federation_protocol.py
@@ -28,7 +28,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateProtocol(command.ShowOne):
-    """Create new federation protocol"""
+    _description = _("Create new federation protocol")
 
     def get_parser(self, prog_name):
         parser = super(CreateProtocol, self).get_parser(prog_name)
@@ -72,7 +72,7 @@ class CreateProtocol(command.ShowOne):
 
 
 class DeleteProtocol(command.Command):
-    """Delete federation protocol(s)"""
+    _description = _("Delete federation protocol(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteProtocol, self).get_parser(prog_name)
@@ -113,7 +113,7 @@ class DeleteProtocol(command.Command):
 
 
 class ListProtocols(command.Lister):
-    """List federation protocols"""
+    _description = _("List federation protocols")
 
     def get_parser(self, prog_name):
         parser = super(ListProtocols, self).get_parser(prog_name)
@@ -139,7 +139,7 @@ class ListProtocols(command.Lister):
 
 
 class SetProtocol(command.Command):
-    """Set federation protocol properties"""
+    _description = _("Set federation protocol properties")
 
     def get_parser(self, prog_name):
         parser = super(SetProtocol, self).get_parser(prog_name)
@@ -179,7 +179,7 @@ class SetProtocol(command.Command):
 
 
 class ShowProtocol(command.ShowOne):
-    """Display federation protocol details"""
+    _description = _("Display federation protocol details")
 
     def get_parser(self, prog_name):
         parser = super(ShowProtocol, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/group.py b/openstackclient/identity/v3/group.py
index f780810afa..df684c129b 100644
--- a/openstackclient/identity/v3/group.py
+++ b/openstackclient/identity/v3/group.py
@@ -31,7 +31,7 @@ LOG = logging.getLogger(__name__)
 
 
 class AddUserToGroup(command.Command):
-    """Add user to group"""
+    _description = _("Add user to group")
 
     def get_parser(self, prog_name):
         parser = super(AddUserToGroup, self).get_parser(prog_name)
@@ -76,7 +76,7 @@ class AddUserToGroup(command.Command):
 
 
 class CheckUserInGroup(command.Command):
-    """Check user membership in group"""
+    _description = _("Check user membership in group")
 
     def get_parser(self, prog_name):
         parser = super(CheckUserInGroup, self).get_parser(prog_name)
@@ -121,7 +121,7 @@ class CheckUserInGroup(command.Command):
 
 
 class CreateGroup(command.ShowOne):
-    """Create new group"""
+    _description = _("Create new group")
 
     def get_parser(self, prog_name):
         parser = super(CreateGroup, self).get_parser(prog_name)
@@ -174,7 +174,7 @@ class CreateGroup(command.ShowOne):
 
 
 class DeleteGroup(command.Command):
-    """Delete group(s)"""
+    _description = _("Delete group(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteGroup, self).get_parser(prog_name)
@@ -202,7 +202,7 @@ class DeleteGroup(command.Command):
 
 
 class ListGroup(command.Lister):
-    """List groups"""
+    _description = _("List groups")
 
     def get_parser(self, prog_name):
         parser = super(ListGroup, self).get_parser(prog_name)
@@ -262,7 +262,7 @@ class ListGroup(command.Lister):
 
 
 class RemoveUserFromGroup(command.Command):
-    """Remove user from group"""
+    _description = _("Remove user from group")
 
     def get_parser(self, prog_name):
         parser = super(RemoveUserFromGroup, self).get_parser(prog_name)
@@ -307,7 +307,7 @@ class RemoveUserFromGroup(command.Command):
 
 
 class SetGroup(command.Command):
-    """Set group properties"""
+    _description = _("Set group properties")
 
     def get_parser(self, prog_name):
         parser = super(SetGroup, self).get_parser(prog_name)
@@ -347,7 +347,7 @@ class SetGroup(command.Command):
 
 
 class ShowGroup(command.ShowOne):
-    """Display group details"""
+    _description = _("Display group details")
 
     def get_parser(self, prog_name):
         parser = super(ShowGroup, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/identity_provider.py b/openstackclient/identity/v3/identity_provider.py
index b6b0318870..163dcb5f07 100644
--- a/openstackclient/identity/v3/identity_provider.py
+++ b/openstackclient/identity/v3/identity_provider.py
@@ -27,7 +27,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateIdentityProvider(command.ShowOne):
-    """Create new identity provider"""
+    _description = _("Create new identity provider")
 
     def get_parser(self, prog_name):
         parser = super(CreateIdentityProvider, self).get_parser(prog_name)
@@ -94,7 +94,7 @@ class CreateIdentityProvider(command.ShowOne):
 
 
 class DeleteIdentityProvider(command.Command):
-    """Delete identity provider(s)"""
+    _description = _("Delete identity provider(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteIdentityProvider, self).get_parser(prog_name)
@@ -126,7 +126,7 @@ class DeleteIdentityProvider(command.Command):
 
 
 class ListIdentityProvider(command.Lister):
-    """List identity providers"""
+    _description = _("List identity providers")
 
     def take_action(self, parsed_args):
         columns = ('ID', 'Enabled', 'Description')
@@ -140,7 +140,7 @@ class ListIdentityProvider(command.Lister):
 
 
 class SetIdentityProvider(command.Command):
-    """Set identity provider properties"""
+    _description = _("Set identity provider properties")
 
     def get_parser(self, prog_name):
         parser = super(SetIdentityProvider, self).get_parser(prog_name)
@@ -211,7 +211,7 @@ class SetIdentityProvider(command.Command):
 
 
 class ShowIdentityProvider(command.ShowOne):
-    """Display identity provider details"""
+    _description = _("Display identity provider details")
 
     def get_parser(self, prog_name):
         parser = super(ShowIdentityProvider, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/mapping.py b/openstackclient/identity/v3/mapping.py
index 09181a0bad..dbb1b06870 100644
--- a/openstackclient/identity/v3/mapping.py
+++ b/openstackclient/identity/v3/mapping.py
@@ -30,7 +30,7 @@ LOG = logging.getLogger(__name__)
 
 
 class _RulesReader(object):
-    """Helper class capable of reading rules from files"""
+    _description = _("Helper class capable of reading rules from files")
 
     def _read_rules(self, path):
         """Read and parse rules from path
@@ -82,7 +82,7 @@ class _RulesReader(object):
 
 
 class CreateMapping(command.ShowOne, _RulesReader):
-    """Create new mapping"""
+    _description = _("Create new mapping")
 
     def get_parser(self, prog_name):
         parser = super(CreateMapping, self).get_parser(prog_name)
@@ -111,7 +111,7 @@ class CreateMapping(command.ShowOne, _RulesReader):
 
 
 class DeleteMapping(command.Command):
-    """Delete mapping(s)"""
+    _description = _("Delete mapping(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteMapping, self).get_parser(prog_name)
@@ -143,7 +143,7 @@ class DeleteMapping(command.Command):
 
 
 class ListMapping(command.Lister):
-    """List mappings"""
+    _description = _("List mappings")
 
     def take_action(self, parsed_args):
         # NOTE(marek-denis): Since rules can be long and tedious I have decided
@@ -157,7 +157,7 @@ class ListMapping(command.Lister):
 
 
 class SetMapping(command.Command, _RulesReader):
-    """Set mapping properties"""
+    _description = _("Set mapping properties")
 
     def get_parser(self, prog_name):
         parser = super(SetMapping, self).get_parser(prog_name)
@@ -187,7 +187,7 @@ class SetMapping(command.Command, _RulesReader):
 
 
 class ShowMapping(command.ShowOne):
-    """Display mapping details"""
+    _description = _("Display mapping details")
 
     def get_parser(self, prog_name):
         parser = super(ShowMapping, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/policy.py b/openstackclient/identity/v3/policy.py
index 596eae018a..c511652ede 100644
--- a/openstackclient/identity/v3/policy.py
+++ b/openstackclient/identity/v3/policy.py
@@ -29,7 +29,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreatePolicy(command.ShowOne):
-    """Create new policy"""
+    _description = _("Create new policy")
 
     def get_parser(self, prog_name):
         parser = super(CreatePolicy, self).get_parser(prog_name)
@@ -61,7 +61,7 @@ class CreatePolicy(command.ShowOne):
 
 
 class DeletePolicy(command.Command):
-    """Delete policy(s)"""
+    _description = _("Delete policy(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeletePolicy, self).get_parser(prog_name)
@@ -93,7 +93,7 @@ class DeletePolicy(command.Command):
 
 
 class ListPolicy(command.Lister):
-    """List policies"""
+    _description = _("List policies")
 
     def get_parser(self, prog_name):
         parser = super(ListPolicy, self).get_parser(prog_name)
@@ -121,7 +121,7 @@ class ListPolicy(command.Lister):
 
 
 class SetPolicy(command.Command):
-    """Set policy properties"""
+    _description = _("Set policy properties")
 
     def get_parser(self, prog_name):
         parser = super(SetPolicy, self).get_parser(prog_name)
@@ -159,7 +159,7 @@ class SetPolicy(command.Command):
 
 
 class ShowPolicy(command.ShowOne):
-    """Display policy details"""
+    _description = _("Display policy details")
 
     def get_parser(self, prog_name):
         parser = super(ShowPolicy, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/project.py b/openstackclient/identity/v3/project.py
index 56c4fbc8b2..a634865911 100644
--- a/openstackclient/identity/v3/project.py
+++ b/openstackclient/identity/v3/project.py
@@ -31,7 +31,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateProject(command.ShowOne):
-    """Create new project"""
+    _description = _("Create new project")
 
     def get_parser(self, prog_name):
         parser = super(CreateProject, self).get_parser(prog_name)
@@ -125,7 +125,7 @@ class CreateProject(command.ShowOne):
 
 
 class DeleteProject(command.Command):
-    """Delete project(s)"""
+    _description = _("Delete project(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteProject, self).get_parser(prog_name)
@@ -160,7 +160,7 @@ class DeleteProject(command.Command):
 
 
 class ListProject(command.Lister):
-    """List projects"""
+    _description = _("List projects")
 
     def get_parser(self, prog_name):
         parser = super(ListProject, self).get_parser(prog_name)
@@ -216,7 +216,7 @@ class ListProject(command.Lister):
 
 
 class SetProject(command.Command):
-    """Set project properties"""
+    _description = _("Set project properties")
 
     def get_parser(self, prog_name):
         parser = super(SetProject, self).get_parser(prog_name)
@@ -283,7 +283,7 @@ class SetProject(command.Command):
 
 
 class ShowProject(command.ShowOne):
-    """Display project details"""
+    _description = _("Display project details")
 
     def get_parser(self, prog_name):
         parser = super(ShowProject, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/region.py b/openstackclient/identity/v3/region.py
index b7c51f9314..d3e712e375 100644
--- a/openstackclient/identity/v3/region.py
+++ b/openstackclient/identity/v3/region.py
@@ -27,7 +27,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateRegion(command.ShowOne):
-    """Create new region"""
+    _description = _("Create new region")
 
     def get_parser(self, prog_name):
         parser = super(CreateRegion, self).get_parser(prog_name)
@@ -66,7 +66,7 @@ class CreateRegion(command.ShowOne):
 
 
 class DeleteRegion(command.Command):
-    """Delete region(s)"""
+    _description = _("Delete region(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteRegion, self).get_parser(prog_name)
@@ -98,7 +98,7 @@ class DeleteRegion(command.Command):
 
 
 class ListRegion(command.Lister):
-    """List regions"""
+    _description = _("List regions")
 
     def get_parser(self, prog_name):
         parser = super(ListRegion, self).get_parser(prog_name)
@@ -128,7 +128,7 @@ class ListRegion(command.Lister):
 
 
 class SetRegion(command.Command):
-    """Set region properties"""
+    _description = _("Set region properties")
 
     def get_parser(self, prog_name):
         parser = super(SetRegion, self).get_parser(prog_name)
@@ -162,7 +162,7 @@ class SetRegion(command.Command):
 
 
 class ShowRegion(command.ShowOne):
-    """Display region details"""
+    _description = _("Display region details")
 
     def get_parser(self, prog_name):
         parser = super(ShowRegion, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/role.py b/openstackclient/identity/v3/role.py
index 8b91174626..c9d0fbf305 100644
--- a/openstackclient/identity/v3/role.py
+++ b/openstackclient/identity/v3/role.py
@@ -109,7 +109,8 @@ def _process_identity_and_resource_options(parsed_args,
 
 
 class AddRole(command.Command):
-    """Adds a role assignment to a user or group on a domain or project"""
+    _description = _("Adds a role assignment to a user or group on a domain "
+                     "or project")
 
     def get_parser(self, prog_name):
         parser = super(AddRole, self).get_parser(prog_name)
@@ -151,7 +152,7 @@ class AddRole(command.Command):
 
 
 class CreateRole(command.ShowOne):
-    """Create new role"""
+    _description = _("Create new role")
 
     def get_parser(self, prog_name):
         parser = super(CreateRole, self).get_parser(prog_name)
@@ -198,7 +199,7 @@ class CreateRole(command.ShowOne):
 
 
 class DeleteRole(command.Command):
-    """Delete role(s)"""
+    _description = _("Delete role(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteRole, self).get_parser(prog_name)
@@ -233,7 +234,7 @@ class DeleteRole(command.Command):
 
 
 class ListRole(command.Lister):
-    """List roles"""
+    _description = _("List roles")
 
     def get_parser(self, prog_name):
         parser = super(ListRole, self).get_parser(prog_name)
@@ -371,7 +372,8 @@ class ListRole(command.Lister):
 
 
 class RemoveRole(command.Command):
-    """Removes a role assignment from domain/project : user/group"""
+    _description = _("Removes a role assignment from domain/project : "
+                     "user/group")
 
     def get_parser(self, prog_name):
         parser = super(RemoveRole, self).get_parser(prog_name)
@@ -415,7 +417,7 @@ class RemoveRole(command.Command):
 
 
 class SetRole(command.Command):
-    """Set role properties"""
+    _description = _("Set role properties")
 
     def get_parser(self, prog_name):
         parser = super(SetRole, self).get_parser(prog_name)
@@ -452,7 +454,7 @@ class SetRole(command.Command):
 
 
 class ShowRole(command.ShowOne):
-    """Display role details"""
+    _description = _("Display role details")
 
     def get_parser(self, prog_name):
         parser = super(ShowRole, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/role_assignment.py b/openstackclient/identity/v3/role_assignment.py
index d25cc6ce3d..9da050ded2 100644
--- a/openstackclient/identity/v3/role_assignment.py
+++ b/openstackclient/identity/v3/role_assignment.py
@@ -11,7 +11,7 @@
 #   under the License.
 #
 
-"""Identity v3 Assignment action implementations """
+"""Identity v3 Assignment action implementations"""
 
 from osc_lib.command import command
 from osc_lib import utils
@@ -21,7 +21,7 @@ from openstackclient.identity import common
 
 
 class ListRoleAssignment(command.Lister):
-    """List role assignments"""
+    _description = _("List role assignments")
 
     def get_parser(self, prog_name):
         parser = super(ListRoleAssignment, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/service.py b/openstackclient/identity/v3/service.py
index 97e64dc601..7daf8919d3 100644
--- a/openstackclient/identity/v3/service.py
+++ b/openstackclient/identity/v3/service.py
@@ -30,7 +30,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateService(command.ShowOne):
-    """Create new service"""
+    _description = _("Create new service")
 
     def get_parser(self, prog_name):
         parser = super(CreateService, self).get_parser(prog_name)
@@ -81,7 +81,7 @@ class CreateService(command.ShowOne):
 
 
 class DeleteService(command.Command):
-    """Delete service(s)"""
+    _description = _("Delete service(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteService, self).get_parser(prog_name)
@@ -114,7 +114,7 @@ class DeleteService(command.Command):
 
 
 class ListService(command.Lister):
-    """List services"""
+    _description = _("List services")
 
     def get_parser(self, prog_name):
         parser = super(ListService, self).get_parser(prog_name)
@@ -140,7 +140,7 @@ class ListService(command.Lister):
 
 
 class SetService(command.Command):
-    """Set service properties"""
+    _description = _("Set service properties")
 
     def get_parser(self, prog_name):
         parser = super(SetService, self).get_parser(prog_name)
@@ -201,7 +201,7 @@ class SetService(command.Command):
 
 
 class ShowService(command.ShowOne):
-    """Display service details"""
+    _description = _("Display service details")
 
     def get_parser(self, prog_name):
         parser = super(ShowService, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/service_provider.py b/openstackclient/identity/v3/service_provider.py
index 8548ae1fbd..459dc00b03 100644
--- a/openstackclient/identity/v3/service_provider.py
+++ b/openstackclient/identity/v3/service_provider.py
@@ -27,7 +27,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateServiceProvider(command.ShowOne):
-    """Create new service provider"""
+    _description = _("Create new service provider")
 
     def get_parser(self, prog_name):
         parser = super(CreateServiceProvider, self).get_parser(prog_name)
@@ -87,7 +87,7 @@ class CreateServiceProvider(command.ShowOne):
 
 
 class DeleteServiceProvider(command.Command):
-    """Delete service provider(s)"""
+    _description = _("Delete service provider(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteServiceProvider, self).get_parser(prog_name)
@@ -119,7 +119,7 @@ class DeleteServiceProvider(command.Command):
 
 
 class ListServiceProvider(command.Lister):
-    """List service providers"""
+    _description = _("List service providers")
 
     def take_action(self, parsed_args):
         service_client = self.app.client_manager.identity
@@ -134,7 +134,7 @@ class ListServiceProvider(command.Lister):
 
 
 class SetServiceProvider(command.Command):
-    """Set service provider properties"""
+    _description = _("Set service provider properties")
 
     def get_parser(self, prog_name):
         parser = super(SetServiceProvider, self).get_parser(prog_name)
@@ -192,7 +192,7 @@ class SetServiceProvider(command.Command):
 
 
 class ShowServiceProvider(command.ShowOne):
-    """Display service provider details"""
+    _description = _("Display service provider details")
 
     def get_parser(self, prog_name):
         parser = super(ShowServiceProvider, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/token.py b/openstackclient/identity/v3/token.py
index 2cd304e601..7a66f23b75 100644
--- a/openstackclient/identity/v3/token.py
+++ b/openstackclient/identity/v3/token.py
@@ -25,7 +25,7 @@ from openstackclient.identity import common
 
 
 class AuthorizeRequestToken(command.ShowOne):
-    """Authorize a request token"""
+    _description = _("Authorize a request token")
 
     def get_parser(self, prog_name):
         parser = super(AuthorizeRequestToken, self).get_parser(prog_name)
@@ -66,7 +66,7 @@ class AuthorizeRequestToken(command.ShowOne):
 
 
 class CreateAccessToken(command.ShowOne):
-    """Create an access token"""
+    _description = _("Create an access token")
 
     def get_parser(self, prog_name):
         parser = super(CreateAccessToken, self).get_parser(prog_name)
@@ -112,7 +112,7 @@ class CreateAccessToken(command.ShowOne):
 
 
 class CreateRequestToken(command.ShowOne):
-    """Create a request token"""
+    _description = _("Create a request token")
 
     def get_parser(self, prog_name):
         parser = super(CreateRequestToken, self).get_parser(prog_name)
@@ -164,7 +164,7 @@ class CreateRequestToken(command.ShowOne):
 
 
 class IssueToken(command.ShowOne):
-    """Issue new token"""
+    _description = _("Issue new token")
 
     # scoped token is optional
     required_scope = False
@@ -196,7 +196,7 @@ class IssueToken(command.ShowOne):
 
 
 class RevokeToken(command.Command):
-    """Revoke existing token"""
+    _description = _("Revoke existing token")
 
     def get_parser(self, prog_name):
         parser = super(RevokeToken, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/trust.py b/openstackclient/identity/v3/trust.py
index bbc86adb90..62d72ea142 100644
--- a/openstackclient/identity/v3/trust.py
+++ b/openstackclient/identity/v3/trust.py
@@ -24,7 +24,7 @@ from openstackclient.identity import common
 
 
 class CreateTrust(command.ShowOne):
-    """Create new trust"""
+    _description = _("Create new trust")
 
     def get_parser(self, prog_name):
         parser = super(CreateTrust, self).get_parser(prog_name)
@@ -131,7 +131,7 @@ class CreateTrust(command.ShowOne):
 
 
 class DeleteTrust(command.Command):
-    """Delete trust(s)"""
+    _description = _("Delete trust(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteTrust, self).get_parser(prog_name)
@@ -151,7 +151,7 @@ class DeleteTrust(command.Command):
 
 
 class ListTrust(command.Lister):
-    """List trusts"""
+    _description = _("List trusts")
 
     def take_action(self, parsed_args):
         columns = ('ID', 'Expires At', 'Impersonation', 'Project ID',
@@ -165,7 +165,7 @@ class ListTrust(command.Lister):
 
 
 class ShowTrust(command.ShowOne):
-    """Display trust details"""
+    _description = _("Display trust details")
 
     def get_parser(self, prog_name):
         parser = super(ShowTrust, self).get_parser(prog_name)
diff --git a/openstackclient/identity/v3/unscoped_saml.py b/openstackclient/identity/v3/unscoped_saml.py
index f116174b32..5940534a0a 100644
--- a/openstackclient/identity/v3/unscoped_saml.py
+++ b/openstackclient/identity/v3/unscoped_saml.py
@@ -44,7 +44,7 @@ def auth_with_unscoped_saml(func):
 
 
 class ListAccessibleDomains(command.Lister):
-    """List accessible domains"""
+    _description = _("List accessible domains")
 
     @auth_with_unscoped_saml
     def take_action(self, parsed_args):
@@ -59,7 +59,7 @@ class ListAccessibleDomains(command.Lister):
 
 
 class ListAccessibleProjects(command.Lister):
-    """List accessible projects"""
+    _description = _("List accessible projects")
 
     @auth_with_unscoped_saml
     def take_action(self, parsed_args):
diff --git a/openstackclient/identity/v3/user.py b/openstackclient/identity/v3/user.py
index 1e086fb6aa..796cf28c22 100644
--- a/openstackclient/identity/v3/user.py
+++ b/openstackclient/identity/v3/user.py
@@ -31,7 +31,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateUser(command.ShowOne):
-    """Create new user"""
+    _description = _("Create new user")
 
     def get_parser(self, prog_name):
         parser = super(CreateUser, self).get_parser(prog_name)
@@ -138,7 +138,7 @@ class CreateUser(command.ShowOne):
 
 
 class DeleteUser(command.Command):
-    """Delete user(s)"""
+    _description = _("Delete user(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteUser, self).get_parser(prog_name)
@@ -173,7 +173,7 @@ class DeleteUser(command.Command):
 
 
 class ListUser(command.Lister):
-    """List users"""
+    _description = _("List users")
 
     def get_parser(self, prog_name):
         parser = super(ListUser, self).get_parser(prog_name)
@@ -273,7 +273,7 @@ class ListUser(command.Lister):
 
 
 class SetUser(command.Command):
-    """Set user properties"""
+    _description = _("Set user properties")
 
     def get_parser(self, prog_name):
         parser = super(SetUser, self).get_parser(prog_name)
@@ -365,7 +365,7 @@ class SetUser(command.Command):
 
 
 class SetPasswordUser(command.Command):
-    """Change current user password"""
+    _description = _("Change current user password")
 
     required_scope = False
 
@@ -424,7 +424,7 @@ class SetPasswordUser(command.Command):
 
 
 class ShowUser(command.ShowOne):
-    """Display user details"""
+    _description = _("Display user details")
 
     def get_parser(self, prog_name):
         parser = super(ShowUser, self).get_parser(prog_name)
diff --git a/openstackclient/image/v1/image.py b/openstackclient/image/v1/image.py
index 5f669c6412..d9ac8c08aa 100644
--- a/openstackclient/image/v1/image.py
+++ b/openstackclient/image/v1/image.py
@@ -59,7 +59,7 @@ def _format_visibility(data):
 
 
 class CreateImage(command.ShowOne):
-    """Create/upload an image"""
+    _description = _("Create/upload an image")
 
     def get_parser(self, prog_name):
         parser = super(CreateImage, self).get_parser(prog_name)
@@ -277,7 +277,7 @@ class CreateImage(command.ShowOne):
 
 
 class DeleteImage(command.Command):
-    """Delete image(s)"""
+    _description = _("Delete image(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteImage, self).get_parser(prog_name)
@@ -300,7 +300,7 @@ class DeleteImage(command.Command):
 
 
 class ListImage(command.Lister):
-    """List available images"""
+    _description = _("List available images")
 
     def get_parser(self, prog_name):
         parser = super(ListImage, self).get_parser(prog_name)
@@ -440,7 +440,7 @@ class ListImage(command.Lister):
 
 
 class SaveImage(command.Command):
-    """Save an image locally"""
+    _description = _("Save an image locally")
 
     def get_parser(self, prog_name):
         parser = super(SaveImage, self).get_parser(prog_name)
@@ -468,7 +468,7 @@ class SaveImage(command.Command):
 
 
 class SetImage(command.Command):
-    """Set image properties"""
+    _description = _("Set image properties")
 
     def get_parser(self, prog_name):
         parser = super(SetImage, self).get_parser(prog_name)
@@ -702,7 +702,7 @@ class SetImage(command.Command):
 
 
 class ShowImage(command.ShowOne):
-    """Display image details"""
+    _description = _("Display image details")
 
     def get_parser(self, prog_name):
         parser = super(ShowImage, self).get_parser(prog_name)
diff --git a/openstackclient/image/v2/image.py b/openstackclient/image/v2/image.py
index 0712e09c07..657277c0dc 100644
--- a/openstackclient/image/v2/image.py
+++ b/openstackclient/image/v2/image.py
@@ -38,7 +38,7 @@ LOG = logging.getLogger(__name__)
 
 
 def _format_image(image):
-    """Format an image to make it more consistent with OSC operations. """
+    """Format an image to make it more consistent with OSC operations."""
 
     info = {}
     properties = {}
@@ -69,7 +69,7 @@ def _format_image(image):
 
 
 class AddProjectToImage(command.ShowOne):
-    """Associate project with image"""
+    _description = _("Associate project with image")
 
     def get_parser(self, prog_name):
         parser = super(AddProjectToImage, self).get_parser(prog_name)
@@ -107,7 +107,7 @@ class AddProjectToImage(command.ShowOne):
 
 
 class CreateImage(command.ShowOne):
-    """Create/upload an image"""
+    _description = _("Create/upload an image")
 
     deadopts = ('size', 'location', 'copy-from', 'checksum', 'store')
 
@@ -361,7 +361,7 @@ class CreateImage(command.ShowOne):
 
 
 class DeleteImage(command.Command):
-    """Delete image(s)"""
+    _description = _("Delete image(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteImage, self).get_parser(prog_name)
@@ -398,7 +398,7 @@ class DeleteImage(command.Command):
 
 
 class ListImage(command.Lister):
-    """List available images"""
+    _description = _("List available images")
 
     def get_parser(self, prog_name):
         parser = super(ListImage, self).get_parser(prog_name)
@@ -542,7 +542,7 @@ class ListImage(command.Lister):
 
 
 class RemoveProjectImage(command.Command):
-    """Disassociate project with image"""
+    _description = _("Disassociate project with image")
 
     def get_parser(self, prog_name):
         parser = super(RemoveProjectImage, self).get_parser(prog_name)
@@ -575,7 +575,7 @@ class RemoveProjectImage(command.Command):
 
 
 class SaveImage(command.Command):
-    """Save an image locally"""
+    _description = _("Save an image locally")
 
     def get_parser(self, prog_name):
         parser = super(SaveImage, self).get_parser(prog_name)
@@ -603,7 +603,7 @@ class SaveImage(command.Command):
 
 
 class SetImage(command.Command):
-    """Set image properties"""
+    _description = _("Set image properties")
 
     deadopts = ('visibility',)
 
@@ -844,7 +844,7 @@ class SetImage(command.Command):
 
 
 class ShowImage(command.ShowOne):
-    """Display image details"""
+    _description = _("Display image details")
 
     def get_parser(self, prog_name):
         parser = super(ShowImage, self).get_parser(prog_name)
@@ -867,7 +867,7 @@ class ShowImage(command.ShowOne):
 
 
 class UnsetImage(command.Command):
-    """Unset image tags and properties"""
+    _description = _("Unset image tags and properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetImage, self).get_parser(prog_name)
diff --git a/openstackclient/network/v2/address_scope.py b/openstackclient/network/v2/address_scope.py
index 95f6c94702..0d8f80d025 100644
--- a/openstackclient/network/v2/address_scope.py
+++ b/openstackclient/network/v2/address_scope.py
@@ -58,7 +58,7 @@ def _get_attrs(client_manager, parsed_args):
 # TODO(rtheis): Use the SDK resource mapped attribute names once the
 # OSC minimum requirements include SDK 1.0.
 class CreateAddressScope(command.ShowOne):
-    """Create a new Address Scope"""
+    _description = _("Create a new Address Scope")
 
     def get_parser(self, prog_name):
         parser = super(CreateAddressScope, self).get_parser(prog_name)
@@ -106,7 +106,7 @@ class CreateAddressScope(command.ShowOne):
 
 
 class DeleteAddressScope(command.Command):
-    """Delete address scope(s)"""
+    _description = _("Delete address scope(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteAddressScope, self).get_parser(prog_name)
@@ -141,7 +141,7 @@ class DeleteAddressScope(command.Command):
 
 
 class ListAddressScope(command.Lister):
-    """List address scopes"""
+    _description = _("List address scopes")
 
     def take_action(self, parsed_args):
         client = self.app.client_manager.network
@@ -170,7 +170,7 @@ class ListAddressScope(command.Lister):
 # TODO(rtheis): Use the SDK resource mapped attribute names once the
 # OSC minimum requirements include SDK 1.0.
 class SetAddressScope(command.Command):
-    """Set address scope properties"""
+    _description = _("Set address scope properties")
 
     def get_parser(self, prog_name):
         parser = super(SetAddressScope, self).get_parser(prog_name)
@@ -214,7 +214,7 @@ class SetAddressScope(command.Command):
 
 
 class ShowAddressScope(command.ShowOne):
-    """Display address scope details"""
+    _description = _("Display address scope details")
 
     def get_parser(self, prog_name):
         parser = super(ShowAddressScope, self).get_parser(prog_name)
diff --git a/openstackclient/network/v2/floating_ip.py b/openstackclient/network/v2/floating_ip.py
index 7ae5d44816..9b9c38bcfc 100644
--- a/openstackclient/network/v2/floating_ip.py
+++ b/openstackclient/network/v2/floating_ip.py
@@ -70,7 +70,7 @@ def _get_attrs(client_manager, parsed_args):
 
 
 class CreateFloatingIP(common.NetworkAndComputeShowOne):
-    """Create floating IP"""
+    _description = _("Create floating IP")
 
     def update_parser_common(self, parser):
         # In Compute v2 network, floating IPs could be allocated from floating
@@ -130,7 +130,7 @@ class CreateFloatingIP(common.NetworkAndComputeShowOne):
 
 
 class CreateIPFloating(CreateFloatingIP):
-    """Create floating IP"""
+    _description = _("Create floating IP")
 
     # TODO(tangchen): Remove this class and ``ip floating create`` command
     #                 two cycles after Mitaka.
@@ -154,7 +154,7 @@ class CreateIPFloating(CreateFloatingIP):
 
 
 class DeleteFloatingIP(common.NetworkAndComputeDelete):
-    """Delete floating IP(s)"""
+    _description = _("Delete floating IP(s)")
 
     # Used by base class to find resources in parsed_args.
     resource = 'floating_ip'
@@ -179,7 +179,7 @@ class DeleteFloatingIP(common.NetworkAndComputeDelete):
 
 
 class DeleteIPFloating(DeleteFloatingIP):
-    """Delete floating IP(s)"""
+    _description = _("Delete floating IP(s)")
 
     # TODO(tangchen): Remove this class and ``ip floating delete`` command
     #                 two cycles after Mitaka.
@@ -203,7 +203,7 @@ class DeleteIPFloating(DeleteFloatingIP):
 
 
 class ListFloatingIP(common.NetworkAndComputeLister):
-    """List floating IP(s)"""
+    _description = _("List floating IP(s)")
 
     def take_action_network(self, client, parsed_args):
         columns = (
@@ -258,7 +258,7 @@ class ListFloatingIP(common.NetworkAndComputeLister):
 
 
 class ListIPFloating(ListFloatingIP):
-    """List floating IP(s)"""
+    _description = _("List floating IP(s)")
 
     # TODO(tangchen): Remove this class and ``ip floating list`` command
     #                 two cycles after Mitaka.
@@ -282,7 +282,7 @@ class ListIPFloating(ListFloatingIP):
 
 
 class ShowFloatingIP(common.NetworkAndComputeShowOne):
-    """Display floating IP details"""
+    _description = _("Display floating IP details")
 
     def update_parser_common(self, parser):
         parser.add_argument(
@@ -309,7 +309,7 @@ class ShowFloatingIP(common.NetworkAndComputeShowOne):
 
 
 class ShowIPFloating(ShowFloatingIP):
-    """Display floating IP details"""
+    _description = _("Display floating IP details")
 
     # TODO(tangchen): Remove this class and ``ip floating show`` command
     #                 two cycles after Mitaka.
diff --git a/openstackclient/network/v2/floating_ip_pool.py b/openstackclient/network/v2/floating_ip_pool.py
index c78ca06a91..73e94ead8b 100644
--- a/openstackclient/network/v2/floating_ip_pool.py
+++ b/openstackclient/network/v2/floating_ip_pool.py
@@ -23,7 +23,7 @@ from openstackclient.network import common
 
 
 class ListFloatingIPPool(common.NetworkAndComputeLister):
-    """List pools of floating IP addresses"""
+    _description = _("List pools of floating IP addresses")
 
     def take_action_network(self, client, parsed_args):
         msg = _("Floating ip pool operations are only available for "
@@ -43,7 +43,7 @@ class ListFloatingIPPool(common.NetworkAndComputeLister):
 
 
 class ListIPFloatingPool(ListFloatingIPPool):
-    """List pools of floating IP addresses"""
+    _description = _("List pools of floating IP addresses")
 
     # TODO(tangchen): Remove this class and ``ip floating pool list`` command
     #                 two cycles after Mitaka.
diff --git a/openstackclient/network/v2/ip_availability.py b/openstackclient/network/v2/ip_availability.py
index 1d7b2aed87..5960e2faee 100644
--- a/openstackclient/network/v2/ip_availability.py
+++ b/openstackclient/network/v2/ip_availability.py
@@ -34,7 +34,7 @@ def _get_columns(item):
 
 
 class ListIPAvailability(command.Lister):
-    """List IP availability for network"""
+    _description = _("List IP availability for network")
 
     def get_parser(self, prog_name):
         parser = super(ListIPAvailability, self).get_parser(prog_name)
@@ -92,7 +92,7 @@ class ListIPAvailability(command.Lister):
 
 
 class ShowIPAvailability(command.ShowOne):
-    """Show network IP availability details"""
+    _description = _("Show network IP availability details")
 
     def get_parser(self, prog_name):
         parser = super(ShowIPAvailability, self).get_parser(prog_name)
diff --git a/openstackclient/network/v2/network.py b/openstackclient/network/v2/network.py
index 397139e20a..37775e6ced 100644
--- a/openstackclient/network/v2/network.py
+++ b/openstackclient/network/v2/network.py
@@ -156,7 +156,7 @@ def _get_attrs_compute(client_manager, parsed_args):
 
 
 class CreateNetwork(common.NetworkAndComputeShowOne):
-    """Create new network"""
+    _description = _("Create new network")
 
     def update_parser_common(self, parser):
         parser.add_argument(
@@ -276,7 +276,7 @@ class CreateNetwork(common.NetworkAndComputeShowOne):
 
 
 class DeleteNetwork(common.NetworkAndComputeDelete):
-    """Delete network(s)"""
+    _description = _("Delete network(s)")
 
     # Used by base class to find resources in parsed_args.
     resource = 'network'
@@ -302,7 +302,7 @@ class DeleteNetwork(common.NetworkAndComputeDelete):
 
 
 class ListNetwork(common.NetworkAndComputeLister):
-    """List networks"""
+    _description = _("List networks")
 
     def update_parser_network(self, parser):
         router_ext_group = parser.add_mutually_exclusive_group()
@@ -493,7 +493,7 @@ class ListNetwork(common.NetworkAndComputeLister):
 
 
 class SetNetwork(command.Command):
-    """Set network properties"""
+    _description = _("Set network properties")
 
     def get_parser(self, prog_name):
         parser = super(SetNetwork, self).get_parser(prog_name)
@@ -584,7 +584,7 @@ class SetNetwork(command.Command):
 
 
 class ShowNetwork(common.NetworkAndComputeShowOne):
-    """Show network details"""
+    _description = _("Show network details")
 
     def update_parser_common(self, parser):
         parser.add_argument(
diff --git a/openstackclient/network/v2/network_agent.py b/openstackclient/network/v2/network_agent.py
index fdb34bb79b..6570849962 100644
--- a/openstackclient/network/v2/network_agent.py
+++ b/openstackclient/network/v2/network_agent.py
@@ -36,7 +36,7 @@ _formatters = {
 
 
 class DeleteNetworkAgent(command.Command):
-    """Delete network agent(s)"""
+    _description = _("Delete network agent(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteNetworkAgent, self).get_parser(prog_name)
@@ -70,7 +70,7 @@ class DeleteNetworkAgent(command.Command):
 
 
 class ListNetworkAgent(command.Lister):
-    """List network agents"""
+    _description = _("List network agents")
 
     def take_action(self, parsed_args):
         client = self.app.client_manager.network
@@ -100,7 +100,7 @@ class ListNetworkAgent(command.Lister):
 
 
 class SetNetworkAgent(command.Command):
-    """Set network agent properties"""
+    _description = _("Set network agent properties")
 
     def get_parser(self, prog_name):
         parser = super(SetNetworkAgent, self).get_parser(prog_name)
@@ -141,7 +141,7 @@ class SetNetworkAgent(command.Command):
 
 
 class ShowNetworkAgent(command.ShowOne):
-    """Display network agent details"""
+    _description = _("Display network agent details")
 
     def get_parser(self, prog_name):
         parser = super(ShowNetworkAgent, self).get_parser(prog_name)
diff --git a/openstackclient/network/v2/network_qos_policy.py b/openstackclient/network/v2/network_qos_policy.py
index a8fcfc592a..75cb1d9155 100644
--- a/openstackclient/network/v2/network_qos_policy.py
+++ b/openstackclient/network/v2/network_qos_policy.py
@@ -57,7 +57,7 @@ def _get_attrs(client_manager, parsed_args):
 
 
 class CreateNetworkQosPolicy(command.ShowOne):
-    """Create a QoS policy"""
+    _description = _("Create a QoS policy")
 
     def get_parser(self, prog_name):
         parser = super(CreateNetworkQosPolicy, self).get_parser(prog_name)
@@ -102,7 +102,7 @@ class CreateNetworkQosPolicy(command.ShowOne):
 
 
 class DeleteNetworkQosPolicy(command.Command):
-    """Delete Qos Policy(s)"""
+    _description = _("Delete Qos Policy(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteNetworkQosPolicy, self).get_parser(prog_name)
@@ -136,7 +136,7 @@ class DeleteNetworkQosPolicy(command.Command):
 
 
 class ListNetworkQosPolicy(command.Lister):
-    """List QoS policies"""
+    _description = _("List QoS policies")
 
     def take_action(self, parsed_args):
         client = self.app.client_manager.network
@@ -161,7 +161,7 @@ class ListNetworkQosPolicy(command.Lister):
 
 
 class SetNetworkQosPolicy(command.Command):
-    """Set QoS policy properties"""
+    _description = _("Set QoS policy properties")
 
     def get_parser(self, prog_name):
         parser = super(SetNetworkQosPolicy, self).get_parser(prog_name)
@@ -211,7 +211,7 @@ class SetNetworkQosPolicy(command.Command):
 
 
 class ShowNetworkQosPolicy(command.ShowOne):
-    """Display QoS policy details"""
+    _description = _("Display QoS policy details")
 
     def get_parser(self, prog_name):
         parser = super(ShowNetworkQosPolicy, self).get_parser(prog_name)
diff --git a/openstackclient/network/v2/network_rbac.py b/openstackclient/network/v2/network_rbac.py
index b1e0413f71..2bcdd811b0 100644
--- a/openstackclient/network/v2/network_rbac.py
+++ b/openstackclient/network/v2/network_rbac.py
@@ -71,7 +71,7 @@ def _get_attrs(client_manager, parsed_args):
 
 
 class CreateNetworkRBAC(command.ShowOne):
-    """Create network RBAC policy"""
+    _description = _("Create network RBAC policy")
 
     def get_parser(self, prog_name):
         parser = super(CreateNetworkRBAC, self).get_parser(prog_name)
@@ -128,7 +128,7 @@ class CreateNetworkRBAC(command.ShowOne):
 
 
 class DeleteNetworkRBAC(command.Command):
-    """Delete network RBAC policy(s)"""
+    _description = _("Delete network RBAC policy(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteNetworkRBAC, self).get_parser(prog_name)
@@ -162,7 +162,7 @@ class DeleteNetworkRBAC(command.Command):
 
 
 class ListNetworkRBAC(command.Lister):
-    """List network RBAC policies"""
+    _description = _("List network RBAC policies")
 
     def take_action(self, parsed_args):
         client = self.app.client_manager.network
@@ -186,7 +186,7 @@ class ListNetworkRBAC(command.Lister):
 
 
 class SetNetworkRBAC(command.Command):
-    """Set network RBAC policy properties"""
+    _description = _("Set network RBAC policy properties")
 
     def get_parser(self, prog_name):
         parser = super(SetNetworkRBAC, self).get_parser(prog_name)
@@ -227,7 +227,7 @@ class SetNetworkRBAC(command.Command):
 
 
 class ShowNetworkRBAC(command.ShowOne):
-    """Display network RBAC policy details"""
+    _description = _("Display network RBAC policy details")
 
     def get_parser(self, prog_name):
         parser = super(ShowNetworkRBAC, self).get_parser(prog_name)
diff --git a/openstackclient/network/v2/network_segment.py b/openstackclient/network/v2/network_segment.py
index ce1350028f..709dc2965a 100644
--- a/openstackclient/network/v2/network_segment.py
+++ b/openstackclient/network/v2/network_segment.py
@@ -31,7 +31,7 @@ def _get_columns(item):
 
 
 class CreateNetworkSegment(command.ShowOne):
-    """Create new network segment"""
+    _description = _("Create new network segment")
 
     def get_parser(self, prog_name):
         parser = super(CreateNetworkSegment, self).get_parser(prog_name)
@@ -95,7 +95,7 @@ class CreateNetworkSegment(command.ShowOne):
 
 
 class DeleteNetworkSegment(command.Command):
-    """Delete network segment(s)"""
+    _description = _("Delete network segment(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteNetworkSegment, self).get_parser(prog_name)
@@ -130,7 +130,7 @@ class DeleteNetworkSegment(command.Command):
 
 
 class ListNetworkSegment(command.Lister):
-    """List network segments"""
+    _description = _("List network segments")
 
     def get_parser(self, prog_name):
         parser = super(ListNetworkSegment, self).get_parser(prog_name)
@@ -190,7 +190,7 @@ class ListNetworkSegment(command.Lister):
 
 
 class SetNetworkSegment(command.Command):
-    """Set network segment properties"""
+    _description = _("Set network segment properties")
 
     def get_parser(self, prog_name):
         parser = super(SetNetworkSegment, self).get_parser(prog_name)
@@ -224,7 +224,7 @@ class SetNetworkSegment(command.Command):
 
 
 class ShowNetworkSegment(command.ShowOne):
-    """Display network segment details"""
+    _description = _("Display network segment details")
 
     def get_parser(self, prog_name):
         parser = super(ShowNetworkSegment, self).get_parser(prog_name)
diff --git a/openstackclient/network/v2/port.py b/openstackclient/network/v2/port.py
index b0d41d2bd1..64b30c7c1c 100644
--- a/openstackclient/network/v2/port.py
+++ b/openstackclient/network/v2/port.py
@@ -230,7 +230,7 @@ def _add_updatable_args(parser):
 
 
 class CreatePort(command.ShowOne):
-    """Create a new port"""
+    _description = _("Create a new port")
 
     def get_parser(self, prog_name):
         parser = super(CreatePort, self).get_parser(prog_name)
@@ -330,7 +330,7 @@ class CreatePort(command.ShowOne):
 
 
 class DeletePort(command.Command):
-    """Delete port(s)"""
+    _description = _("Delete port(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeletePort, self).get_parser(prog_name)
@@ -364,7 +364,7 @@ class DeletePort(command.Command):
 
 
 class ListPort(command.Lister):
-    """List ports"""
+    _description = _("List ports")
 
     def get_parser(self, prog_name):
         parser = super(ListPort, self).get_parser(prog_name)
@@ -454,7 +454,7 @@ class ListPort(command.Lister):
 
 
 class SetPort(command.Command):
-    """Set port properties"""
+    _description = _("Set port properties")
 
     def get_parser(self, prog_name):
         parser = super(SetPort, self).get_parser(prog_name)
@@ -570,7 +570,7 @@ class SetPort(command.Command):
 
 
 class ShowPort(command.ShowOne):
-    """Display port details"""
+    _description = _("Display port details")
 
     def get_parser(self, prog_name):
         parser = super(ShowPort, self).get_parser(prog_name)
@@ -590,7 +590,7 @@ class ShowPort(command.ShowOne):
 
 
 class UnsetPort(command.Command):
-    """Unset port properties"""
+    _description = _("Unset port properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetPort, self).get_parser(prog_name)
diff --git a/openstackclient/network/v2/router.py b/openstackclient/network/v2/router.py
index d96c314a9f..cbd412b585 100644
--- a/openstackclient/network/v2/router.py
+++ b/openstackclient/network/v2/router.py
@@ -100,7 +100,7 @@ def _get_attrs(client_manager, parsed_args):
 
 
 class AddPortToRouter(command.Command):
-    """Add a port to a router"""
+    _description = _("Add a port to a router")
 
     def get_parser(self, prog_name):
         parser = super(AddPortToRouter, self).get_parser(prog_name)
@@ -124,7 +124,7 @@ class AddPortToRouter(command.Command):
 
 
 class AddSubnetToRouter(command.Command):
-    """Add a subnet to a router"""
+    _description = _("Add a subnet to a router")
 
     def get_parser(self, prog_name):
         parser = super(AddSubnetToRouter, self).get_parser(prog_name)
@@ -151,7 +151,7 @@ class AddSubnetToRouter(command.Command):
 
 
 class CreateRouter(command.ShowOne):
-    """Create a new router"""
+    _description = _("Create a new router")
 
     def get_parser(self, prog_name):
         parser = super(CreateRouter, self).get_parser(prog_name)
@@ -222,7 +222,7 @@ class CreateRouter(command.ShowOne):
 
 
 class DeleteRouter(command.Command):
-    """Delete router(s)"""
+    _description = _("Delete router(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteRouter, self).get_parser(prog_name)
@@ -256,7 +256,7 @@ class DeleteRouter(command.Command):
 
 
 class ListRouter(command.Lister):
-    """List routers"""
+    _description = _("List routers")
 
     def get_parser(self, prog_name):
         parser = super(ListRouter, self).get_parser(prog_name)
@@ -344,7 +344,7 @@ class ListRouter(command.Lister):
 
 
 class RemovePortFromRouter(command.Command):
-    """Remove a port from a router"""
+    _description = _("Remove a port from a router")
 
     def get_parser(self, prog_name):
         parser = super(RemovePortFromRouter, self).get_parser(prog_name)
@@ -368,7 +368,7 @@ class RemovePortFromRouter(command.Command):
 
 
 class RemoveSubnetFromRouter(command.Command):
-    """Remove a subnet from a router"""
+    _description = _("Remove a subnet from a router")
 
     def get_parser(self, prog_name):
         parser = super(RemoveSubnetFromRouter, self).get_parser(prog_name)
@@ -395,7 +395,7 @@ class RemoveSubnetFromRouter(command.Command):
 
 
 class SetRouter(command.Command):
-    """Set router properties"""
+    _description = _("Set router properties")
 
     def get_parser(self, prog_name):
         parser = super(SetRouter, self).get_parser(prog_name)
@@ -509,7 +509,7 @@ class SetRouter(command.Command):
 
 
 class ShowRouter(command.ShowOne):
-    """Display router details"""
+    _description = _("Display router details")
 
     def get_parser(self, prog_name):
         parser = super(ShowRouter, self).get_parser(prog_name)
@@ -529,7 +529,7 @@ class ShowRouter(command.ShowOne):
 
 
 class UnsetRouter(command.Command):
-    """Unset router properties"""
+    _description = _("Unset router properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetRouter, self).get_parser(prog_name)
diff --git a/openstackclient/network/v2/security_group.py b/openstackclient/network/v2/security_group.py
index f832f721ef..554dd61d6f 100644
--- a/openstackclient/network/v2/security_group.py
+++ b/openstackclient/network/v2/security_group.py
@@ -95,7 +95,7 @@ def _get_columns(item):
 
 
 class CreateSecurityGroup(common.NetworkAndComputeShowOne):
-    """Create a new security group"""
+    _description = _("Create a new security group")
 
     def update_parser_common(self, parser):
         parser.add_argument(
@@ -165,7 +165,7 @@ class CreateSecurityGroup(common.NetworkAndComputeShowOne):
 
 
 class DeleteSecurityGroup(common.NetworkAndComputeDelete):
-    """Delete security group(s)"""
+    _description = _("Delete security group(s)")
 
     # Used by base class to find resources in parsed_args.
     resource = 'group'
@@ -190,7 +190,7 @@ class DeleteSecurityGroup(common.NetworkAndComputeDelete):
 
 
 class ListSecurityGroup(common.NetworkAndComputeLister):
-    """List security groups"""
+    _description = _("List security groups")
 
     def update_parser_network(self, parser):
         # Maintain and hide the argument for backwards compatibility.
@@ -238,7 +238,7 @@ class ListSecurityGroup(common.NetworkAndComputeLister):
 
 
 class SetSecurityGroup(common.NetworkAndComputeCommand):
-    """Set security group properties"""
+    _description = _("Set security group properties")
 
     def update_parser_common(self, parser):
         parser.add_argument(
@@ -293,7 +293,7 @@ class SetSecurityGroup(common.NetworkAndComputeCommand):
 
 
 class ShowSecurityGroup(common.NetworkAndComputeShowOne):
-    """Display security group details"""
+    _description = _("Display security group details")
 
     def update_parser_common(self, parser):
         parser.add_argument(
diff --git a/openstackclient/network/v2/security_group_rule.py b/openstackclient/network/v2/security_group_rule.py
index b7ca0eafec..05fafc0de8 100644
--- a/openstackclient/network/v2/security_group_rule.py
+++ b/openstackclient/network/v2/security_group_rule.py
@@ -90,7 +90,7 @@ def _is_icmp_protocol(protocol):
 
 
 class CreateSecurityGroupRule(common.NetworkAndComputeShowOne):
-    """Create a new security group rule"""
+    _description = _("Create a new security group rule")
 
     def update_parser_common(self, parser):
         parser.add_argument(
@@ -394,7 +394,7 @@ class CreateSecurityGroupRule(common.NetworkAndComputeShowOne):
 
 
 class DeleteSecurityGroupRule(common.NetworkAndComputeDelete):
-    """Delete security group rule(s)"""
+    _description = _("Delete security group rule(s)")
 
     # Used by base class to find resources in parsed_args.
     resource = 'rule'
@@ -419,7 +419,7 @@ class DeleteSecurityGroupRule(common.NetworkAndComputeDelete):
 
 
 class ListSecurityGroupRule(common.NetworkAndComputeLister):
-    """List security group rules"""
+    _description = _("List security group rules")
 
     def update_parser_common(self, parser):
         parser.add_argument(
@@ -584,7 +584,7 @@ class ListSecurityGroupRule(common.NetworkAndComputeLister):
 
 
 class ShowSecurityGroupRule(common.NetworkAndComputeShowOne):
-    """Display security group rule details"""
+    _description = _("Display security group rule details")
 
     def update_parser_common(self, parser):
         parser.add_argument(
diff --git a/openstackclient/network/v2/subnet.py b/openstackclient/network/v2/subnet.py
index f1ecb5a727..eda9294809 100644
--- a/openstackclient/network/v2/subnet.py
+++ b/openstackclient/network/v2/subnet.py
@@ -218,7 +218,7 @@ def _get_attrs(client_manager, parsed_args, is_create=True):
 
 
 class CreateSubnet(command.ShowOne):
-    """Create a subnet"""
+    _description = _("Create a subnet")
 
     def get_parser(self, prog_name):
         parser = super(CreateSubnet, self).get_parser(prog_name)
@@ -329,7 +329,7 @@ class CreateSubnet(command.ShowOne):
 
 
 class DeleteSubnet(command.Command):
-    """Delete subnet(s)"""
+    _description = _("Delete subnet(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteSubnet, self).get_parser(prog_name)
@@ -363,7 +363,7 @@ class DeleteSubnet(command.Command):
 
 
 class ListSubnet(command.Lister):
-    """List subnets"""
+    _description = _("List subnets")
 
     def get_parser(self, prog_name):
         parser = super(ListSubnet, self).get_parser(prog_name)
@@ -484,7 +484,7 @@ class ListSubnet(command.Lister):
 
 
 class SetSubnet(command.Command):
-    """Set subnet properties"""
+    _description = _("Set subnet properties")
 
     def get_parser(self, prog_name):
         parser = super(SetSubnet, self).get_parser(prog_name)
@@ -550,7 +550,7 @@ class SetSubnet(command.Command):
 
 
 class ShowSubnet(command.ShowOne):
-    """Display subnet details"""
+    _description = _("Display subnet details")
 
     def get_parser(self, prog_name):
         parser = super(ShowSubnet, self).get_parser(prog_name)
@@ -570,7 +570,7 @@ class ShowSubnet(command.ShowOne):
 
 
 class UnsetSubnet(command.Command):
-    """Unset subnet properties"""
+    _description = _("Unset subnet properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetSubnet, self).get_parser(prog_name)
diff --git a/openstackclient/network/v2/subnet_pool.py b/openstackclient/network/v2/subnet_pool.py
index 5ebdea024e..a5a244240e 100644
--- a/openstackclient/network/v2/subnet_pool.py
+++ b/openstackclient/network/v2/subnet_pool.py
@@ -12,6 +12,7 @@
 #
 
 """Subnet pool action implementations"""
+
 import copy
 import logging
 
@@ -141,7 +142,7 @@ def _add_default_options(parser):
 # TODO(rtheis): Use the SDK resource mapped attribute names once the
 # OSC minimum requirements include SDK 1.0.
 class CreateSubnetPool(command.ShowOne):
-    """Create subnet pool"""
+    _description = _("Create subnet pool")
 
     def get_parser(self, prog_name):
         parser = super(CreateSubnetPool, self).get_parser(prog_name)
@@ -196,7 +197,7 @@ class CreateSubnetPool(command.ShowOne):
 
 
 class DeleteSubnetPool(command.Command):
-    """Delete subnet pool(s)"""
+    _description = _("Delete subnet pool(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteSubnetPool, self).get_parser(prog_name)
@@ -232,7 +233,7 @@ class DeleteSubnetPool(command.Command):
 # TODO(rtheis): Use only the SDK resource mapped attribute names once the
 # OSC minimum requirements include SDK 1.0.
 class ListSubnetPool(command.Lister):
-    """List subnet pools"""
+    _description = _("List subnet pools")
 
     def get_parser(self, prog_name):
         parser = super(ListSubnetPool, self).get_parser(prog_name)
@@ -334,7 +335,7 @@ class ListSubnetPool(command.Lister):
 # TODO(rtheis): Use the SDK resource mapped attribute names once the
 # OSC minimum requirements include SDK 1.0.
 class SetSubnetPool(command.Command):
-    """Set subnet pool properties"""
+    _description = _("Set subnet pool properties")
 
     def get_parser(self, prog_name):
         parser = super(SetSubnetPool, self).get_parser(prog_name)
@@ -386,7 +387,7 @@ class SetSubnetPool(command.Command):
 
 
 class ShowSubnetPool(command.ShowOne):
-    """Display subnet pool details"""
+    _description = _("Display subnet pool details")
 
     def get_parser(self, prog_name):
         parser = super(ShowSubnetPool, self).get_parser(prog_name)
@@ -409,7 +410,7 @@ class ShowSubnetPool(command.ShowOne):
 
 
 class UnsetSubnetPool(command.Command):
-    """Unset subnet pool properties"""
+    _description = _("Unset subnet pool properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetSubnetPool, self).get_parser(prog_name)
diff --git a/openstackclient/object/v1/account.py b/openstackclient/object/v1/account.py
index 2fe00ecbc3..4847f8bbc2 100644
--- a/openstackclient/object/v1/account.py
+++ b/openstackclient/object/v1/account.py
@@ -22,7 +22,7 @@ from openstackclient.i18n import _
 
 
 class SetAccount(command.Command):
-    """Set account properties"""
+    _description = _("Set account properties")
 
     def get_parser(self, prog_name):
         parser = super(SetAccount, self).get_parser(prog_name)
@@ -43,7 +43,7 @@ class SetAccount(command.Command):
 
 
 class ShowAccount(command.ShowOne):
-    """Display account details"""
+    _description = _("Display account details")
 
     def take_action(self, parsed_args):
         data = self.app.client_manager.object_store.account_show()
@@ -53,7 +53,7 @@ class ShowAccount(command.ShowOne):
 
 
 class UnsetAccount(command.Command):
-    """Unset account properties"""
+    _description = _("Unset account properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetAccount, self).get_parser(prog_name)
diff --git a/openstackclient/object/v1/container.py b/openstackclient/object/v1/container.py
index 01964d0c0b..88fb860244 100644
--- a/openstackclient/object/v1/container.py
+++ b/openstackclient/object/v1/container.py
@@ -29,7 +29,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateContainer(command.Lister):
-    """Create new container"""
+    _description = _("Create new container")
 
     def get_parser(self, prog_name):
         parser = super(CreateContainer, self).get_parser(prog_name)
@@ -63,7 +63,7 @@ class CreateContainer(command.Lister):
 
 
 class DeleteContainer(command.Command):
-    """Delete container"""
+    _description = _("Delete container")
 
     def get_parser(self, prog_name):
         parser = super(DeleteContainer, self).get_parser(prog_name)
@@ -98,7 +98,7 @@ class DeleteContainer(command.Command):
 
 
 class ListContainer(command.Lister):
-    """List containers"""
+    _description = _("List containers")
 
     def get_parser(self, prog_name):
         parser = super(ListContainer, self).get_parser(prog_name)
@@ -168,7 +168,7 @@ class ListContainer(command.Lister):
 
 
 class SaveContainer(command.Command):
-    """Save container contents locally"""
+    _description = _("Save container contents locally")
 
     def get_parser(self, prog_name):
         parser = super(SaveContainer, self).get_parser(prog_name)
@@ -186,7 +186,7 @@ class SaveContainer(command.Command):
 
 
 class SetContainer(command.Command):
-    """Set container properties"""
+    _description = _("Set container properties")
 
     def get_parser(self, prog_name):
         parser = super(SetContainer, self).get_parser(prog_name)
@@ -213,7 +213,7 @@ class SetContainer(command.Command):
 
 
 class ShowContainer(command.ShowOne):
-    """Display container details"""
+    _description = _("Display container details")
 
     def get_parser(self, prog_name):
         parser = super(ShowContainer, self).get_parser(prog_name)
@@ -236,7 +236,7 @@ class ShowContainer(command.ShowOne):
 
 
 class UnsetContainer(command.Command):
-    """Unset container properties"""
+    _description = _("Unset container properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetContainer, self).get_parser(prog_name)
diff --git a/openstackclient/object/v1/object.py b/openstackclient/object/v1/object.py
index 3c47ee0428..71b6f52015 100644
--- a/openstackclient/object/v1/object.py
+++ b/openstackclient/object/v1/object.py
@@ -30,7 +30,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateObject(command.Lister):
-    """Upload object to container"""
+    _description = _("Upload object to container")
 
     def get_parser(self, prog_name):
         parser = super(CreateObject, self).get_parser(prog_name)
@@ -81,7 +81,7 @@ class CreateObject(command.Lister):
 
 
 class DeleteObject(command.Command):
-    """Delete object from container"""
+    _description = _("Delete object from container")
 
     def get_parser(self, prog_name):
         parser = super(DeleteObject, self).get_parser(prog_name)
@@ -108,7 +108,7 @@ class DeleteObject(command.Command):
 
 
 class ListObject(command.Lister):
-    """List objects"""
+    _description = _("List objects")
 
     def get_parser(self, prog_name):
         parser = super(ListObject, self).get_parser(prog_name)
@@ -197,7 +197,7 @@ class ListObject(command.Lister):
 
 
 class SaveObject(command.Command):
-    """Save object locally"""
+    _description = _("Save object locally")
 
     def get_parser(self, prog_name):
         parser = super(SaveObject, self).get_parser(prog_name)
@@ -227,7 +227,7 @@ class SaveObject(command.Command):
 
 
 class SetObject(command.Command):
-    """Set object properties"""
+    _description = _("Set object properties")
 
     def get_parser(self, prog_name):
         parser = super(SetObject, self).get_parser(prog_name)
@@ -260,7 +260,7 @@ class SetObject(command.Command):
 
 
 class ShowObject(command.ShowOne):
-    """Display object details"""
+    _description = _("Display object details")
 
     def get_parser(self, prog_name):
         parser = super(ShowObject, self).get_parser(prog_name)
@@ -289,7 +289,7 @@ class ShowObject(command.ShowOne):
 
 
 class UnsetObject(command.Command):
-    """Unset object properties"""
+    _description = _("Unset object properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetObject, self).get_parser(prog_name)
diff --git a/openstackclient/volume/v1/backup.py b/openstackclient/volume/v1/backup.py
index a02cdccb22..9ac1302a55 100644
--- a/openstackclient/volume/v1/backup.py
+++ b/openstackclient/volume/v1/backup.py
@@ -30,7 +30,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateVolumeBackup(command.ShowOne):
-    """Create new volume backup"""
+    _description = _("Create new volume backup")
 
     def get_parser(self, prog_name):
         parser = super(CreateVolumeBackup, self).get_parser(prog_name)
@@ -73,7 +73,7 @@ class CreateVolumeBackup(command.ShowOne):
 
 
 class CreateBackup(CreateVolumeBackup):
-    """Create new backup"""
+    _description = _("Create new backup")
 
     # TODO(Huanxuan Ao): Remove this class and ``backup create`` command
     #                    two cycles after Newton.
@@ -90,7 +90,7 @@ class CreateBackup(CreateVolumeBackup):
 
 
 class DeleteVolumeBackup(command.Command):
-    """Delete volume backup(s)"""
+    _description = _("Delete volume backup(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteVolumeBackup, self).get_parser(prog_name)
@@ -125,7 +125,7 @@ class DeleteVolumeBackup(command.Command):
 
 
 class DeleteBackup(DeleteVolumeBackup):
-    """Delete backup(s)"""
+    _description = _("Delete backup(s)")
 
     # TODO(Huanxuan Ao): Remove this class and ``backup delete`` command
     #                    two cycles after Newton.
@@ -142,7 +142,7 @@ class DeleteBackup(DeleteVolumeBackup):
 
 
 class ListVolumeBackup(command.Lister):
-    """List volume backups"""
+    _description = _("List volume backups")
 
     def get_parser(self, prog_name):
         parser = super(ListVolumeBackup, self).get_parser(prog_name)
@@ -235,7 +235,7 @@ class ListVolumeBackup(command.Lister):
 
 
 class ListBackup(ListVolumeBackup):
-    """List backups"""
+    _description = _("List backups")
 
     # TODO(Huanxuan Ao): Remove this class and ``backup list`` command
     #                    two cycles after Newton.
@@ -252,7 +252,7 @@ class ListBackup(ListVolumeBackup):
 
 
 class RestoreVolumeBackup(command.Command):
-    """Restore volume backup"""
+    _description = _("Restore volume backup")
 
     def get_parser(self, prog_name):
         parser = super(RestoreVolumeBackup, self).get_parser(prog_name)
@@ -279,7 +279,7 @@ class RestoreVolumeBackup(command.Command):
 
 
 class RestoreBackup(RestoreVolumeBackup):
-    """Restore backup"""
+    _description = _("Restore backup")
 
     # TODO(Huanxuan Ao): Remove this class and ``backup restore`` command
     #                    two cycles after Newton.
@@ -296,7 +296,7 @@ class RestoreBackup(RestoreVolumeBackup):
 
 
 class ShowVolumeBackup(command.ShowOne):
-    """Display volume backup details"""
+    _description = _("Display volume backup details")
 
     def get_parser(self, prog_name):
         parser = super(ShowVolumeBackup, self).get_parser(prog_name)
@@ -316,7 +316,7 @@ class ShowVolumeBackup(command.ShowOne):
 
 
 class ShowBackup(ShowVolumeBackup):
-    """Display backup details"""
+    _description = _("Display backup details")
 
     # TODO(Huanxuan Ao): Remove this class and ``backup show`` command
     #                    two cycles after Newton.
diff --git a/openstackclient/volume/v1/qos_specs.py b/openstackclient/volume/v1/qos_specs.py
index 93c24a212a..b824b35179 100644
--- a/openstackclient/volume/v1/qos_specs.py
+++ b/openstackclient/volume/v1/qos_specs.py
@@ -30,7 +30,7 @@ LOG = logging.getLogger(__name__)
 
 
 class AssociateQos(command.Command):
-    """Associate a QoS specification to a volume type"""
+    _description = _("Associate a QoS specification to a volume type")
 
     def get_parser(self, prog_name):
         parser = super(AssociateQos, self).get_parser(prog_name)
@@ -57,7 +57,7 @@ class AssociateQos(command.Command):
 
 
 class CreateQos(command.ShowOne):
-    """Create new QoS specification"""
+    _description = _("Create new QoS specification")
 
     def get_parser(self, prog_name):
         parser = super(CreateQos, self).get_parser(prog_name)
@@ -99,7 +99,7 @@ class CreateQos(command.ShowOne):
 
 
 class DeleteQos(command.Command):
-    """Delete QoS specification"""
+    _description = _("Delete QoS specification")
 
     def get_parser(self, prog_name):
         parser = super(DeleteQos, self).get_parser(prog_name)
@@ -139,7 +139,7 @@ class DeleteQos(command.Command):
 
 
 class DisassociateQos(command.Command):
-    """Disassociate a QoS specification from a volume type"""
+    _description = _("Disassociate a QoS specification from a volume type")
 
     def get_parser(self, prog_name):
         parser = super(DisassociateQos, self).get_parser(prog_name)
@@ -177,7 +177,7 @@ class DisassociateQos(command.Command):
 
 
 class ListQos(command.Lister):
-    """List QoS specifications"""
+    _description = _("List QoS specifications")
 
     def take_action(self, parsed_args):
         volume_client = self.app.client_manager.volume
@@ -202,7 +202,7 @@ class ListQos(command.Lister):
 
 
 class SetQos(command.Command):
-    """Set QoS specification properties"""
+    _description = _("Set QoS specification properties")
 
     def get_parser(self, prog_name):
         parser = super(SetQos, self).get_parser(prog_name)
@@ -231,7 +231,7 @@ class SetQos(command.Command):
 
 
 class ShowQos(command.ShowOne):
-    """Display QoS specification details"""
+    _description = _("Display QoS specification details")
 
     def get_parser(self, prog_name):
         parser = super(ShowQos, self).get_parser(prog_name)
@@ -260,7 +260,7 @@ class ShowQos(command.ShowOne):
 
 
 class UnsetQos(command.Command):
-    """Unset QoS specification properties"""
+    _description = _("Unset QoS specification properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetQos, self).get_parser(prog_name)
diff --git a/openstackclient/volume/v1/service.py b/openstackclient/volume/v1/service.py
index 867c4b9c7f..d468c6ff1e 100644
--- a/openstackclient/volume/v1/service.py
+++ b/openstackclient/volume/v1/service.py
@@ -22,7 +22,7 @@ from openstackclient.i18n import _
 
 
 class ListService(command.Lister):
-    """List service command"""
+    _description = _("List service command")
 
     def get_parser(self, prog_name):
         parser = super(ListService, self).get_parser(prog_name)
@@ -76,7 +76,7 @@ class ListService(command.Lister):
 
 
 class SetService(command.Command):
-    """Set volume service properties"""
+    _description = _("Set volume service properties")
 
     def get_parser(self, prog_name):
         parser = super(SetService, self).get_parser(prog_name)
diff --git a/openstackclient/volume/v1/snapshot.py b/openstackclient/volume/v1/snapshot.py
index bc92c0f56d..0f91ee7251 100644
--- a/openstackclient/volume/v1/snapshot.py
+++ b/openstackclient/volume/v1/snapshot.py
@@ -31,7 +31,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateSnapshot(command.ShowOne):
-    """Create new snapshot"""
+    _description = _("Create new snapshot")
 
     def get_parser(self, prog_name):
         parser = super(CreateSnapshot, self).get_parser(prog_name)
@@ -79,7 +79,7 @@ class CreateSnapshot(command.ShowOne):
 
 
 class DeleteSnapshot(command.Command):
-    """Delete snapshot(s)"""
+    _description = _("Delete snapshot(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteSnapshot, self).get_parser(prog_name)
@@ -114,7 +114,7 @@ class DeleteSnapshot(command.Command):
 
 
 class ListSnapshot(command.Lister):
-    """List snapshots"""
+    _description = _("List snapshots")
 
     def get_parser(self, prog_name):
         parser = super(ListSnapshot, self).get_parser(prog_name)
@@ -185,7 +185,7 @@ class ListSnapshot(command.Lister):
 
 
 class SetSnapshot(command.Command):
-    """Set snapshot properties"""
+    _description = _("Set snapshot properties")
 
     def get_parser(self, prog_name):
         parser = super(SetSnapshot, self).get_parser(prog_name)
@@ -246,7 +246,7 @@ class SetSnapshot(command.Command):
 
 
 class ShowSnapshot(command.ShowOne):
-    """Display snapshot details"""
+    _description = _("Display snapshot details")
 
     def get_parser(self, prog_name):
         parser = super(ShowSnapshot, self).get_parser(prog_name)
@@ -270,7 +270,7 @@ class ShowSnapshot(command.ShowOne):
 
 
 class UnsetSnapshot(command.Command):
-    """Unset snapshot properties"""
+    _description = _("Unset snapshot properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetSnapshot, self).get_parser(prog_name)
diff --git a/openstackclient/volume/v1/volume.py b/openstackclient/volume/v1/volume.py
index bfdc9d806f..0087bad480 100644
--- a/openstackclient/volume/v1/volume.py
+++ b/openstackclient/volume/v1/volume.py
@@ -45,7 +45,7 @@ def _check_size_arg(args):
 
 
 class CreateVolume(command.ShowOne):
-    """Create new volume"""
+    _description = _("Create new volume")
 
     def get_parser(self, prog_name):
         parser = super(CreateVolume, self).get_parser(prog_name)
@@ -178,7 +178,7 @@ class CreateVolume(command.ShowOne):
 
 
 class DeleteVolume(command.Command):
-    """Delete volume(s)"""
+    _description = _("Delete volume(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteVolume, self).get_parser(prog_name)
@@ -223,7 +223,7 @@ class DeleteVolume(command.Command):
 
 
 class ListVolume(command.Lister):
-    """List volumes"""
+    _description = _("List volumes")
 
     def get_parser(self, prog_name):
         parser = super(ListVolume, self).get_parser(prog_name)
@@ -345,7 +345,7 @@ class ListVolume(command.Lister):
 
 
 class MigrateVolume(command.Command):
-    """Migrate volume to a new host"""
+    _description = _("Migrate volume to a new host")
 
     def get_parser(self, prog_name):
         parser = super(MigrateVolume, self).get_parser(prog_name)
@@ -376,7 +376,7 @@ class MigrateVolume(command.Command):
 
 
 class SetVolume(command.Command):
-    """Set volume properties"""
+    _description = _("Set volume properties")
 
     def get_parser(self, prog_name):
         parser = super(SetVolume, self).get_parser(prog_name)
@@ -494,7 +494,7 @@ class SetVolume(command.Command):
 
 
 class ShowVolume(command.ShowOne):
-    """Show volume details"""
+    _description = _("Show volume details")
 
     def get_parser(self, prog_name):
         parser = super(ShowVolume, self).get_parser(prog_name)
@@ -524,7 +524,7 @@ class ShowVolume(command.ShowOne):
 
 
 class UnsetVolume(command.Command):
-    """Unset volume properties"""
+    _description = _("Unset volume properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetVolume, self).get_parser(prog_name)
diff --git a/openstackclient/volume/v1/volume_transfer_request.py b/openstackclient/volume/v1/volume_transfer_request.py
index 4d6f216132..f24d5a5667 100644
--- a/openstackclient/volume/v1/volume_transfer_request.py
+++ b/openstackclient/volume/v1/volume_transfer_request.py
@@ -28,7 +28,7 @@ LOG = logging.getLogger(__name__)
 
 
 class AcceptTransferRequest(command.ShowOne):
-    """Accept volume transfer request."""
+    _description = _("Accept volume transfer request.")
 
     def get_parser(self, prog_name):
         parser = super(AcceptTransferRequest, self).get_parser(prog_name)
@@ -56,7 +56,7 @@ class AcceptTransferRequest(command.ShowOne):
 
 
 class CreateTransferRequest(command.ShowOne):
-    """Create volume transfer request."""
+    _description = _("Create volume transfer request.")
 
     def get_parser(self, prog_name):
         parser = super(CreateTransferRequest, self).get_parser(prog_name)
@@ -85,7 +85,7 @@ class CreateTransferRequest(command.ShowOne):
 
 
 class DeleteTransferRequest(command.Command):
-    """Delete volume transfer request(s)."""
+    _description = _("Delete volume transfer request(s).")
 
     def get_parser(self, prog_name):
         parser = super(DeleteTransferRequest, self).get_parser(prog_name)
@@ -120,7 +120,7 @@ class DeleteTransferRequest(command.Command):
 
 
 class ListTransferRequest(command.Lister):
-    """Lists all volume transfer requests."""
+    _description = _("Lists all volume transfer requests.")
 
     def get_parser(self, prog_name):
         parser = super(ListTransferRequest, self).get_parser(prog_name)
@@ -151,7 +151,7 @@ class ListTransferRequest(command.Lister):
 
 
 class ShowTransferRequest(command.ShowOne):
-    """Show volume transfer request details."""
+    _description = _("Show volume transfer request details.")
 
     def get_parser(self, prog_name):
         parser = super(ShowTransferRequest, self).get_parser(prog_name)
diff --git a/openstackclient/volume/v1/volume_type.py b/openstackclient/volume/v1/volume_type.py
index 61e9f7fca1..4f159239b5 100644
--- a/openstackclient/volume/v1/volume_type.py
+++ b/openstackclient/volume/v1/volume_type.py
@@ -30,7 +30,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateVolumeType(command.ShowOne):
-    """Create new volume type"""
+    _description = _("Create new volume type")
 
     def get_parser(self, prog_name):
         parser = super(CreateVolumeType, self).get_parser(prog_name)
@@ -61,7 +61,7 @@ class CreateVolumeType(command.ShowOne):
 
 
 class DeleteVolumeType(command.Command):
-    """Delete volume type(s)"""
+    _description = _("Delete volume type(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteVolumeType, self).get_parser(prog_name)
@@ -97,7 +97,7 @@ class DeleteVolumeType(command.Command):
 
 
 class ListVolumeType(command.Lister):
-    """List volume types"""
+    _description = _("List volume types")
 
     def get_parser(self, prog_name):
         parser = super(ListVolumeType, self).get_parser(prog_name)
@@ -125,7 +125,7 @@ class ListVolumeType(command.Lister):
 
 
 class SetVolumeType(command.Command):
-    """Set volume type properties"""
+    _description = _("Set volume type properties")
 
     def get_parser(self, prog_name):
         parser = super(SetVolumeType, self).get_parser(prog_name)
@@ -153,7 +153,7 @@ class SetVolumeType(command.Command):
 
 
 class ShowVolumeType(command.ShowOne):
-    """Display volume type details"""
+    _description = _("Display volume type details")
 
     def get_parser(self, prog_name):
         parser = super(ShowVolumeType, self).get_parser(prog_name)
@@ -175,7 +175,7 @@ class ShowVolumeType(command.ShowOne):
 
 
 class UnsetVolumeType(command.Command):
-    """Unset volume type properties"""
+    _description = _("Unset volume type properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetVolumeType, self).get_parser(prog_name)
diff --git a/openstackclient/volume/v2/backup.py b/openstackclient/volume/v2/backup.py
index c41cffda38..00389fcb86 100644
--- a/openstackclient/volume/v2/backup.py
+++ b/openstackclient/volume/v2/backup.py
@@ -30,7 +30,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateVolumeBackup(command.ShowOne):
-    """Create new volume backup"""
+    _description = _("Create new volume backup")
 
     def get_parser(self, prog_name):
         parser = super(CreateVolumeBackup, self).get_parser(prog_name)
@@ -95,7 +95,7 @@ class CreateVolumeBackup(command.ShowOne):
 
 
 class CreateBackup(CreateVolumeBackup):
-    """Create new backup"""
+    _description = _("Create new backup")
 
     # TODO(Huanxuan Ao): Remove this class and ``backup create`` command
     #                    two cycles after Newton.
@@ -112,7 +112,7 @@ class CreateBackup(CreateVolumeBackup):
 
 
 class DeleteVolumeBackup(command.Command):
-    """Delete volume backup(s)"""
+    _description = _("Delete volume backup(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteVolumeBackup, self).get_parser(prog_name)
@@ -153,7 +153,7 @@ class DeleteVolumeBackup(command.Command):
 
 
 class DeleteBackup(DeleteVolumeBackup):
-    """Delete backup(s)"""
+    _description = _("Delete backup(s)")
 
     # TODO(Huanxuan Ao): Remove this class and ``backup delete`` command
     #                    two cycles after Newton.
@@ -170,7 +170,7 @@ class DeleteBackup(DeleteVolumeBackup):
 
 
 class ListVolumeBackup(command.Lister):
-    """List volume backups"""
+    _description = _("List volume backups")
 
     def get_parser(self, prog_name):
         parser = super(ListVolumeBackup, self).get_parser(prog_name)
@@ -281,7 +281,7 @@ class ListVolumeBackup(command.Lister):
 
 
 class ListBackup(ListVolumeBackup):
-    """List backups"""
+    _description = _("List backups")
 
     # TODO(Huanxuan Ao): Remove this class and ``backup list`` command
     #                    two cycles after Newton.
@@ -298,7 +298,7 @@ class ListBackup(ListVolumeBackup):
 
 
 class RestoreVolumeBackup(command.ShowOne):
-    """Restore volume backup"""
+    _description = _("Restore volume backup")
 
     def get_parser(self, prog_name):
         parser = super(RestoreVolumeBackup, self).get_parser(prog_name)
@@ -323,7 +323,7 @@ class RestoreVolumeBackup(command.ShowOne):
 
 
 class RestoreBackup(RestoreVolumeBackup):
-    """Restore backup"""
+    _description = _("Restore backup")
 
     # TODO(Huanxuan Ao): Remove this class and ``backup restore`` command
     #                    two cycles after Newton.
@@ -340,7 +340,7 @@ class RestoreBackup(RestoreVolumeBackup):
 
 
 class SetVolumeBackup(command.Command):
-    """Set volume backup properties"""
+    _description = _("Set volume backup properties")
 
     def get_parser(self, prog_name):
         parser = super(SetVolumeBackup, self).get_parser(prog_name)
@@ -402,7 +402,7 @@ class SetVolumeBackup(command.Command):
 
 
 class ShowVolumeBackup(command.ShowOne):
-    """Display volume backup details"""
+    _description = _("Display volume backup details")
 
     def get_parser(self, prog_name):
         parser = super(ShowVolumeBackup, self).get_parser(prog_name)
@@ -422,7 +422,7 @@ class ShowVolumeBackup(command.ShowOne):
 
 
 class ShowBackup(ShowVolumeBackup):
-    """Display backup details"""
+    _description = _("Display backup details")
 
     # TODO(Huanxuan Ao): Remove this class and ``backup show`` command
     #                    two cycles after Newton.
diff --git a/openstackclient/volume/v2/consistency_group.py b/openstackclient/volume/v2/consistency_group.py
index 39f2d57726..0754fdc705 100644
--- a/openstackclient/volume/v2/consistency_group.py
+++ b/openstackclient/volume/v2/consistency_group.py
@@ -21,7 +21,7 @@ from openstackclient.i18n import _
 
 
 class ListConsistencyGroup(command.Lister):
-    """List consistency groups."""
+    _description = _("List consistency groups.")
 
     def get_parser(self, prog_name):
         parser = super(ListConsistencyGroup, self).get_parser(prog_name)
diff --git a/openstackclient/volume/v2/qos_specs.py b/openstackclient/volume/v2/qos_specs.py
index 9797f1a69d..b7f49eca14 100644
--- a/openstackclient/volume/v2/qos_specs.py
+++ b/openstackclient/volume/v2/qos_specs.py
@@ -30,7 +30,7 @@ LOG = logging.getLogger(__name__)
 
 
 class AssociateQos(command.Command):
-    """Associate a QoS specification to a volume type"""
+    _description = _("Associate a QoS specification to a volume type")
 
     def get_parser(self, prog_name):
         parser = super(AssociateQos, self).get_parser(prog_name)
@@ -57,7 +57,7 @@ class AssociateQos(command.Command):
 
 
 class CreateQos(command.ShowOne):
-    """Create new QoS specification"""
+    _description = _("Create new QoS specification")
 
     def get_parser(self, prog_name):
         parser = super(CreateQos, self).get_parser(prog_name)
@@ -99,7 +99,7 @@ class CreateQos(command.ShowOne):
 
 
 class DeleteQos(command.Command):
-    """Delete QoS specification"""
+    _description = _("Delete QoS specification")
 
     def get_parser(self, prog_name):
         parser = super(DeleteQos, self).get_parser(prog_name)
@@ -139,7 +139,7 @@ class DeleteQos(command.Command):
 
 
 class DisassociateQos(command.Command):
-    """Disassociate a QoS specification from a volume type"""
+    _description = _("Disassociate a QoS specification from a volume type")
 
     def get_parser(self, prog_name):
         parser = super(DisassociateQos, self).get_parser(prog_name)
@@ -177,7 +177,7 @@ class DisassociateQos(command.Command):
 
 
 class ListQos(command.Lister):
-    """List QoS specifications"""
+    _description = _("List QoS specifications")
 
     def take_action(self, parsed_args):
         volume_client = self.app.client_manager.volume
@@ -202,7 +202,7 @@ class ListQos(command.Lister):
 
 
 class SetQos(command.Command):
-    """Set QoS specification properties"""
+    _description = _("Set QoS specification properties")
 
     def get_parser(self, prog_name):
         parser = super(SetQos, self).get_parser(prog_name)
@@ -231,7 +231,7 @@ class SetQos(command.Command):
 
 
 class ShowQos(command.ShowOne):
-    """Display QoS specification details"""
+    _description = _("Display QoS specification details")
 
     def get_parser(self, prog_name):
         parser = super(ShowQos, self).get_parser(prog_name)
@@ -260,7 +260,7 @@ class ShowQos(command.ShowOne):
 
 
 class UnsetQos(command.Command):
-    """Unset QoS specification properties"""
+    _description = _("Unset QoS specification properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetQos, self).get_parser(prog_name)
diff --git a/openstackclient/volume/v2/service.py b/openstackclient/volume/v2/service.py
index 867c4b9c7f..d468c6ff1e 100644
--- a/openstackclient/volume/v2/service.py
+++ b/openstackclient/volume/v2/service.py
@@ -22,7 +22,7 @@ from openstackclient.i18n import _
 
 
 class ListService(command.Lister):
-    """List service command"""
+    _description = _("List service command")
 
     def get_parser(self, prog_name):
         parser = super(ListService, self).get_parser(prog_name)
@@ -76,7 +76,7 @@ class ListService(command.Lister):
 
 
 class SetService(command.Command):
-    """Set volume service properties"""
+    _description = _("Set volume service properties")
 
     def get_parser(self, prog_name):
         parser = super(SetService, self).get_parser(prog_name)
diff --git a/openstackclient/volume/v2/snapshot.py b/openstackclient/volume/v2/snapshot.py
index 4994e0da3c..8cda112ac0 100644
--- a/openstackclient/volume/v2/snapshot.py
+++ b/openstackclient/volume/v2/snapshot.py
@@ -30,7 +30,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateSnapshot(command.ShowOne):
-    """Create new snapshot"""
+    _description = _("Create new snapshot")
 
     def get_parser(self, prog_name):
         parser = super(CreateSnapshot, self).get_parser(prog_name)
@@ -83,7 +83,7 @@ class CreateSnapshot(command.ShowOne):
 
 
 class DeleteSnapshot(command.Command):
-    """Delete volume snapshot(s)"""
+    _description = _("Delete volume snapshot(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteSnapshot, self).get_parser(prog_name)
@@ -118,7 +118,7 @@ class DeleteSnapshot(command.Command):
 
 
 class ListSnapshot(command.Lister):
-    """List snapshots"""
+    _description = _("List snapshots")
 
     def get_parser(self, prog_name):
         parser = super(ListSnapshot, self).get_parser(prog_name)
@@ -199,7 +199,7 @@ class ListSnapshot(command.Lister):
 
 
 class SetSnapshot(command.Command):
-    """Set snapshot properties"""
+    _description = _("Set snapshot properties")
 
     def get_parser(self, prog_name):
         parser = super(SetSnapshot, self).get_parser(prog_name)
@@ -280,7 +280,7 @@ class SetSnapshot(command.Command):
 
 
 class ShowSnapshot(command.ShowOne):
-    """Display snapshot details"""
+    _description = _("Display snapshot details")
 
     def get_parser(self, prog_name):
         parser = super(ShowSnapshot, self).get_parser(prog_name)
@@ -302,7 +302,7 @@ class ShowSnapshot(command.ShowOne):
 
 
 class UnsetSnapshot(command.Command):
-    """Unset snapshot properties"""
+    _description = _("Unset snapshot properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetSnapshot, self).get_parser(prog_name)
diff --git a/openstackclient/volume/v2/volume.py b/openstackclient/volume/v2/volume.py
index 4a9192a0c4..0531e0aa08 100644
--- a/openstackclient/volume/v2/volume.py
+++ b/openstackclient/volume/v2/volume.py
@@ -45,7 +45,7 @@ def _check_size_arg(args):
 
 
 class CreateVolume(command.ShowOne):
-    """Create new volume"""
+    _description = _("Create new volume")
 
     def get_parser(self, prog_name):
         parser = super(CreateVolume, self).get_parser(prog_name)
@@ -211,7 +211,7 @@ class CreateVolume(command.ShowOne):
 
 
 class DeleteVolume(command.Command):
-    """Delete volume(s)"""
+    _description = _("Delete volume(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteVolume, self).get_parser(prog_name)
@@ -263,7 +263,7 @@ class DeleteVolume(command.Command):
 
 
 class ListVolume(command.Lister):
-    """List volumes"""
+    _description = _("List volumes")
 
     def get_parser(self, prog_name):
         parser = super(ListVolume, self).get_parser(prog_name)
@@ -410,7 +410,7 @@ class ListVolume(command.Lister):
 
 
 class MigrateVolume(command.Command):
-    """Migrate volume to a new host"""
+    _description = _("Migrate volume to a new host")
 
     def get_parser(self, prog_name):
         parser = super(MigrateVolume, self).get_parser(prog_name)
@@ -457,7 +457,7 @@ class MigrateVolume(command.Command):
 
 
 class SetVolume(command.Command):
-    """Set volume properties"""
+    _description = _("Set volume properties")
 
     def get_parser(self, prog_name):
         parser = super(SetVolume, self).get_parser(prog_name)
@@ -610,7 +610,7 @@ class SetVolume(command.Command):
 
 
 class ShowVolume(command.ShowOne):
-    """Display volume details"""
+    _description = _("Display volume details")
 
     def get_parser(self, prog_name):
         parser = super(ShowVolume, self).get_parser(prog_name)
@@ -641,7 +641,7 @@ class ShowVolume(command.ShowOne):
 
 
 class UnsetVolume(command.Command):
-    """Unset volume properties"""
+    _description = _("Unset volume properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetVolume, self).get_parser(prog_name)
diff --git a/openstackclient/volume/v2/volume_transfer_request.py b/openstackclient/volume/v2/volume_transfer_request.py
index 9008fe3c24..aefe594a31 100644
--- a/openstackclient/volume/v2/volume_transfer_request.py
+++ b/openstackclient/volume/v2/volume_transfer_request.py
@@ -28,7 +28,7 @@ LOG = logging.getLogger(__name__)
 
 
 class AcceptTransferRequest(command.ShowOne):
-    """Accept volume transfer request."""
+    _description = _("Accept volume transfer request.")
 
     def get_parser(self, prog_name):
         parser = super(AcceptTransferRequest, self).get_parser(prog_name)
@@ -56,7 +56,7 @@ class AcceptTransferRequest(command.ShowOne):
 
 
 class CreateTransferRequest(command.ShowOne):
-    """Create volume transfer request."""
+    _description = _("Create volume transfer request.")
 
     def get_parser(self, prog_name):
         parser = super(CreateTransferRequest, self).get_parser(prog_name)
@@ -85,7 +85,7 @@ class CreateTransferRequest(command.ShowOne):
 
 
 class DeleteTransferRequest(command.Command):
-    """Delete volume transfer request(s)."""
+    _description = _("Delete volume transfer request(s).")
 
     def get_parser(self, prog_name):
         parser = super(DeleteTransferRequest, self).get_parser(prog_name)
@@ -120,7 +120,7 @@ class DeleteTransferRequest(command.Command):
 
 
 class ListTransferRequest(command.Lister):
-    """Lists all volume transfer requests."""
+    _description = _("Lists all volume transfer requests.")
 
     def get_parser(self, prog_name):
         parser = super(ListTransferRequest, self).get_parser(prog_name)
@@ -151,7 +151,7 @@ class ListTransferRequest(command.Lister):
 
 
 class ShowTransferRequest(command.ShowOne):
-    """Show volume transfer request details."""
+    _description = _("Show volume transfer request details.")
 
     def get_parser(self, prog_name):
         parser = super(ShowTransferRequest, self).get_parser(prog_name)
diff --git a/openstackclient/volume/v2/volume_type.py b/openstackclient/volume/v2/volume_type.py
index 80a1f21b11..0fcfaf7e8d 100644
--- a/openstackclient/volume/v2/volume_type.py
+++ b/openstackclient/volume/v2/volume_type.py
@@ -30,7 +30,7 @@ LOG = logging.getLogger(__name__)
 
 
 class CreateVolumeType(command.ShowOne):
-    """Create new volume type"""
+    _description = _("Create new volume type")
 
     def get_parser(self, prog_name):
         parser = super(CreateVolumeType, self).get_parser(prog_name)
@@ -116,7 +116,7 @@ class CreateVolumeType(command.ShowOne):
 
 
 class DeleteVolumeType(command.Command):
-    """Delete volume type(s)"""
+    _description = _("Delete volume type(s)")
 
     def get_parser(self, prog_name):
         parser = super(DeleteVolumeType, self).get_parser(prog_name)
@@ -152,7 +152,7 @@ class DeleteVolumeType(command.Command):
 
 
 class ListVolumeType(command.Lister):
-    """List volume types"""
+    _description = _("List volume types")
 
     def get_parser(self, prog_name):
         parser = super(ListVolumeType, self).get_parser(prog_name)
@@ -197,7 +197,7 @@ class ListVolumeType(command.Lister):
 
 
 class SetVolumeType(command.Command):
-    """Set volume type properties"""
+    _description = _("Set volume type properties")
 
     def get_parser(self, prog_name):
         parser = super(SetVolumeType, self).get_parser(prog_name)
@@ -286,7 +286,7 @@ class SetVolumeType(command.Command):
 
 
 class ShowVolumeType(command.ShowOne):
-    """Display volume type details"""
+    _description = _("Display volume type details")
 
     def get_parser(self, prog_name):
         parser = super(ShowVolumeType, self).get_parser(prog_name)
@@ -324,7 +324,7 @@ class ShowVolumeType(command.ShowOne):
 
 
 class UnsetVolumeType(command.Command):
-    """Unset volume type properties"""
+    _description = _("Unset volume type properties")
 
     def get_parser(self, prog_name):
         parser = super(UnsetVolumeType, self).get_parser(prog_name)