diff --git a/src/configuration/ArcanistSettings.php b/src/configuration/ArcanistSettings.php
--- a/src/configuration/ArcanistSettings.php
+++ b/src/configuration/ArcanistSettings.php
@@ -6,38 +6,40 @@
     return array(
       'default' => array(
         'type' => 'string',
-        'help' =>
+        'help' => pht(
           'The URI of a Phabricator install to connect to by default, if '.
-          'arc is run in a project without a Phabricator URI or run outside '.
+          '%s is run in a project without a Phabricator URI or run outside '.
           'of a project.',
+          'arc'),
         'example' => '"http://phabricator.example.com/"',
       ),
       'base' => array(
         'type' => 'string',
-        'help' =>
+        'help' => pht(
           'Base commit ruleset to invoke when determining the start of a '.
           'commit range. See "Arcanist User Guide: Commit Ranges" for '.
-          'details.',
+          'details.'),
         'example' => '"arc:amended, arc:prompt"',
       ),
       'load' => array(
         'type' => 'list',
         'legacy' => 'phutil_libraries',
-        'help' =>
+        'help' => pht(
           'A list of paths to phutil libraries that should be loaded at '.
-          'startup. This can be used to make classes available, like lint or '.
-          'unit test engines.',
-        'example' => '["/var/arc/customlib/src"]',
+          'startup. This can be used to make classes available, like lint '.
+          'or unit test engines.'),
         'default' => array(),
+        'example' => '["/var/arc/customlib/src"]',
       ),
       'repository.callsign' => array(
         'type' => 'string',
         'example' => '"X"',
         'help' => pht(
           'Associate the working copy with a specific Phabricator repository. '.
-          'Normally, arc can figure this association out on its own, but if '.
+          'Normally, %s can figure this association out on its own, but if '.
           'your setup is unusual you can use this option to tell it what the '.
-          'desired value is.'),
+          'desired value is.',
+          'arc'),
       ),
       'phabricator.uri' => array(
         'type' => 'string',
@@ -59,116 +61,122 @@
       'lint.engine' => array(
         'type' => 'string',
         'legacy' => 'lint_engine',
-        'help' =>
+        'help' => pht(
           'The name of a default lint engine to use, if no lint engine is '.
-          'specified by the current project.',
+          'specified by the current project.'),
         'example' => '"ExampleLintEngine"',
       ),
       'unit.engine' => array(
         'type' => 'string',
         'legacy' => 'unit_engine',
-        'help' =>
+        'help' => pht(
           'The name of a default unit test engine to use, if no unit test '.
-          'engine is specified by the current project.',
+          'engine is specified by the current project.'),
         'example' => '"ExampleUnitTestEngine"',
       ),
       'arc.feature.start.default' => array(
         'type' => 'string',
-        'help' =>
+        'help' => pht(
           'The name of the default branch to create the new feature branch '.
-          'off of.',
+          'off of.'),
         'example' => '"develop"',
       ),
       'arc.land.onto.default' => array(
         'type' => 'string',
-        'help' =>
+        'help' => pht(
           'The name of the default branch to land changes onto when '.
-          '`arc land` is run.',
+          '`%s` is run.',
+            'arc land'),
         'example' => '"develop"',
       ),
       'arc.land.update.default' => array(
         'type' => 'string',
-        'help' =>
+        'help' => pht(
           'The default strategy to use when arc land updates the feature '.
-          'branch. Supports \'rebase\' and \'merge\' strategies.',
+          'branch. Supports "rebase" and "merge" strategies.'),
         'example' => '"rebase"',
       ),
       'arc.lint.cache' => array(
         'type' => 'bool',
-        'help' =>
-          "Enable the lint cache by default. When enabled, 'arc lint' ".
-          "attempts to use cached results if possible. Currently, the cache ".
-          "is not always invalidated correctly and may cause 'arc lint' to ".
-          "report incorrect results, particularly while developing linters. ".
-          "This is probably worth enabling only if your linters are very slow.",
-        'example' => 'false',
+        'help' => pht(
+          'Enable the lint cache by default. When enabled, `%s` attempts to '.
+          'use cached results if possible. Currently, the cache is not always '.
+          'invalidated correctly and may cause `%s` to report incorrect '.
+          'results, particularly while developing linters. This is probably '.
+          'worth enabling only if your linters are very slow.',
+          'arc lint',
+          'arc lint'),
         'default' => false,
+        'example' => 'false',
       ),
       'history.immutable' => array(
         'type' => 'bool',
         'legacy' => 'immutable_history',
-        'help' =>
-          'If true, arc will never change repository history (e.g., through '.
+        'help' => pht(
+          'If true, %s will never change repository history (e.g., through '.
           'amending or rebasing). Defaults to true in Mercurial and false in '.
           'Git. This setting has no effect in Subversion.',
+          'arc'),
         'example' => 'false',
       ),
       'editor' => array(
         'type' => 'string',
-        'help' =>
-          "Command to use to invoke an interactive editor, like 'nano' or ".
-          "'vim'. This setting overrides the EDITOR environmental variable.",
+        'help' => pht(
+          'Command to use to invoke an interactive editor, like `%s` or `%s`. '.
+          'This setting overrides the %s environmental variable.',
+          'nano',
+          'vim',
+          'EDITOR'),
         'example' => '"nano"',
       ),
       'https.cabundle' => array(
         'type' => 'string',
-        'help' =>
+        'help' => pht(
           "Path to a custom CA bundle file to be used for arcanist's cURL ".
           "calls. This is used primarily when your conduit endpoint is ".
-          "behind https signed by your organization's internal CA.",
+          "behind HTTPS signed by your organization's internal CA."),
         'example' => 'support/yourca.pem',
       ),
       'https.blindly-trust-domains' => array(
         'type' => 'list',
-        'help' => 'List of domains to blindly trust SSL certificates for. '.
-                  'Disables peer verification.',
-        'example' => '["secure.mycompany.com"]',
+        'help' => pht(
+          'List of domains to blindly trust SSL certificates for. '.
+          'Disables peer verification.'),
         'default' => array(),
+        'example' => '["secure.mycompany.com"]',
       ),
       'browser' => array(
         'type' => 'string',
-        'help' =>
-          'Command to use to invoke a web browser.',
+        'help' => pht('Command to use to invoke a web browser.'),
         'example' => '"gnome-www-browser"',
       ),
       'events.listeners' => array(
         'type' => 'list',
-        'help' => 'List of event listener classes to install at startup.',
-        'example' => '["ExampleEventListener"]',
+        'help' => pht('List of event listener classes to install at startup.'),
         'default' => array(),
+        'example' => '["ExampleEventListener"]',
       ),
       'http.basicauth.user' => array(
         'type' => 'string',
-        'help' =>
-          'Username to use for basic auth over http transports',
+        'help' => pht('Username to use for basic auth over HTTP transports.'),
         'example' => '"bob"',
       ),
       'http.basicauth.pass' => array(
         'type' => 'string',
-        'help' =>
-          'Password to use for basic auth over http transports',
+        'help' => pht('Password to use for basic auth over HTTP transports.'),
         'example' => '"bobhasasecret"',
       ),
       'arc.autostash' => array(
         'type' => 'bool',
-        'help' =>
-          'Whether arc should permit the automatic stashing of changes in '.
-          'the working directory when requiring a clean working copy. '.
-          'This option should only be used when users understand how '.
-          'to restore their working directory from the local stash if '.
-          'an Arcanist operation causes an unrecoverable error.',
-        'example' => 'false',
+        'help' => pht(
+          'Whether %s should permit the automatic stashing of changes in the '.
+          'working directory when requiring a clean working copy. This option '.
+          'should only be used when users understand how to restore their '.
+          'working directory from the local stash if an Arcanist operation '.
+          'causes an unrecoverable error.',
+          'arc'),
         'default' => false,
+        'example' => 'false',
       ),
     );
   }
@@ -228,8 +236,9 @@
           $value = true;
         } else {
           throw new ArcanistUsageException(
-            "Type of setting '{$key}' must be boolean, like 'true' or ".
-            "'false'.");
+            pht(
+              "Type of setting '%s' must be boolean, like 'true' or 'false'.",
+              $key));
         }
         break;
       case 'list':
@@ -245,15 +254,19 @@
           }
         }
 
-        $list_example = '["apple", "banana", "cherry"]';
         throw new ArcanistUsageException(
-          "Type of setting '{$key}' must be list. You can specify a list ".
-          "in JSON, like: {$list_example}");
+          pht(
+            "Type of setting '%s' must be list. You can specify a list ".
+            "in JSON, like: %s",
+            $key,
+            '["apple", "banana", "cherry"]'));
 
       case 'string':
         if (!is_scalar($value)) {
           throw new ArcanistUsageException(
-            "Type of setting '{$key}' must be string.");
+            pht(
+              "Type of setting '%s' must be string.",
+              $key));
         }
         $value = (string)$value;
         break;
@@ -270,19 +283,25 @@
       case 'string':
         if (!is_string($value)) {
           throw new ArcanistUsageException(
-            "Type of setting '{$key}' must be string.");
+            pht(
+              "Type of setting '%s' must be string.",
+              $key));
         }
         break;
       case 'bool':
         if ($value !== true && $value !== false) {
           throw new ArcanistUsageException(
-            "Type of setting '{$key}' must be boolean.");
+            pht(
+              "Type of setting '%s' must be boolean.",
+              $key));
         }
         break;
       case 'list':
         if (!is_array($value)) {
           throw new ArcanistUsageException(
-            "Type of setting '{$key}' must be list.");
+            pht(
+              "Type of setting '%s' must be list.",
+              $key));
         }
         break;
       case 'wild':