Ævar Arnfjörð Bjarmason [off-list ref] writes:
+ - _()
+
+ Mark and translate a string. E.g.:
+
+ printf(_("HEAD is now at %s"), hex);
+
+ - N_()
+
+ A no-op pass-through macro for marking strings inside static
+ initializations, e.g.:
+
+ static const char *reset_type_names[] = {
+ N_("mixed"), N_("soft"), N_("hard"), N_("merge"), N_("keep"), NULL
+ };
+
+ And then, later:
+
+ die(_("%s reset is not allowed in a bare repository"),
+ _(reset_type_names[reset_type]));
I do not think this is a very good example. Unless we are doing l10n of
option names, a Portuguese won't be typing "git reset --misto", so there
is no point in invoking _(reset_type_names[]) to begin with, and there is
no need to mark mixed/soft/hard/... for translation.
And we won't be doing l10n of option names or subcommand names, I hope ;-).