##// END OF EJS Templates
log: translate column labels at once (issue5750)...
Yuya Nishihara -
r35213:c7b45db8 default
parent child Browse files
Show More
@@ -9744,86 +9744,9 b' msgstr "(erw\xc3\xa4ge die Option --after)\\n"'
9744 msgid "child process failed to start"
9744 msgid "child process failed to start"
9745 msgstr ""
9745 msgstr ""
9746
9746
9747 #. i18n: column positioning for "hg log"
9748 #, python-format
9749 msgid "changeset: %s\n"
9750 msgstr "Γ„nderung: %s\n"
9751
9752 #. i18n: column positioning for "hg log"
9753 #, python-format
9754 msgid "branch: %s\n"
9755 msgstr "Zweig: %s\n"
9756
9757 #. i18n: column positioning for "hg log"
9758 #, python-format
9759 msgid "bookmark: %s\n"
9760 msgstr "Lesezeichen: %s\n"
9761
9762 #. i18n: column positioning for "hg log"
9763 #, python-format
9764 msgid "tag: %s\n"
9765 msgstr "Marke: %s\n"
9766
9767 #. i18n: column positioning for "hg log"
9768 #, python-format
9769 msgid "phase: %s\n"
9770 msgstr "Phase: %s\n"
9771
9772 #. i18n: column positioning for "hg log"
9773 #, python-format
9774 msgid "parent: %s\n"
9775 msgstr "VorgΓ€nger: %s\n"
9776
9777 #. i18n: column positioning for "hg log"
9778 #, python-format
9779 msgid "manifest: %d:%s\n"
9780 msgstr "Manifest: %d:%s\n"
9781
9782 #. i18n: column positioning for "hg log"
9783 #, python-format
9784 msgid "user: %s\n"
9785 msgstr "Nutzer: %s\n"
9786
9787 #. i18n: column positioning for "hg log"
9788 #, python-format
9789 msgid "date: %s\n"
9790 msgstr "Datum: %s\n"
9791
9792 #. i18n: column positioning for "hg log"
9793 msgid "files:"
9794 msgstr "Dateien:"
9795
9796 #. i18n: column positioning for "hg log"
9797 msgid "files+:"
9798 msgstr "Dateien+:"
9799
9800 #. i18n: column positioning for "hg log"
9801 msgid "files-:"
9802 msgstr "Dateien-:"
9803
9804 #. i18n: column positioning for "hg log"
9805 #, python-format
9806 msgid "files: %s\n"
9807 msgstr "Dateien: %s\n"
9808
9809 #. i18n: column positioning for "hg log"
9810 #, python-format
9811 msgid "copies: %s\n"
9812 msgstr "Kopien: %s\n"
9813
9814 #. i18n: column positioning for "hg log"
9815 #, python-format
9816 msgid "extra: %s=%s\n"
9817 msgstr "Extra: %s=%s\n"
9818
9819 msgid "description:\n"
9747 msgid "description:\n"
9820 msgstr "Beschreibung:\n"
9748 msgstr "Beschreibung:\n"
9821
9749
9822 #. i18n: column positioning for "hg log"
9823 #, python-format
9824 msgid "summary: %s\n"
9825 msgstr "Zusammenfassung: %s\n"
9826
9827 #, python-format
9750 #, python-format
9828 msgid "%s: no key named '%s'"
9751 msgid "%s: no key named '%s'"
9829 msgstr "%s: kein SchlΓΌsselwort '%s'"
9752 msgstr "%s: kein SchlΓΌsselwort '%s'"
@@ -23194,6 +23117,45 b' msgstr ""'
23194 ":emailuser: Beliebiger Text. Gibt den Nutzerteil einer E-Mail-Adresse\n"
23117 ":emailuser: Beliebiger Text. Gibt den Nutzerteil einer E-Mail-Adresse\n"
23195 " (vor dem @-Zeichen) zurΓΌck."
23118 " (vor dem @-Zeichen) zurΓΌck."
23196
23119
23120 #. i18n: column positioning for "hg log"
23121 #, python-format
23122 msgid ""
23123 "bookmark: %s\n"
23124 "branch: %s\n"
23125 "changeset: %s\n"
23126 "copies: %s\n"
23127 "date: %s\n"
23128 "extra: %s=%s\n"
23129 "files+: %s\n"
23130 "files-: %s\n"
23131 "files: %s\n"
23132 "instability: %s\n"
23133 "manifest: %s\n"
23134 "obsolete: %s\n"
23135 "parent: %s\n"
23136 "phase: %s\n"
23137 "summary: %s\n"
23138 "tag: %s\n"
23139 "user: %s\n"
23140 msgstr ""
23141 "Lesezeichen: %s\n"
23142 "Zweig: %s\n"
23143 "Γ„nderung: %s\n"
23144 "Kopien: %s\n"
23145 "Datum: %s\n"
23146 "Extra: %s=%s\n"
23147 "Dateien+: %s\n"
23148 "Dateien-: %s\n"
23149 "Dateien: %s\n"
23150 "instability: %s\n"
23151 "Manifest: %s\n"
23152 "obsolete: %s\n"
23153 "VorgΓ€nger: %s\n"
23154 "Phase: %s\n"
23155 "Zusammenfassung: %s\n"
23156 "Marke: %s\n"
23157 "Nutzer: %s\n"
23158
23197 msgid ":author: String. The unmodified author of the changeset."
23159 msgid ":author: String. The unmodified author of the changeset."
23198 msgstr ":author: Zeichenkette. Der unverΓ€nderte Autor eines Γ„nderungssatzes."
23160 msgstr ":author: Zeichenkette. Der unverΓ€nderte Autor eines Γ„nderungssatzes."
23199
23161
@@ -1571,6 +1571,7 b' class changeset_printer(object):'
1571 self.hunk = {}
1571 self.hunk = {}
1572 self.lastheader = None
1572 self.lastheader = None
1573 self.footer = None
1573 self.footer = None
1574 self._columns = templatekw.getlogcolumns()
1574
1575
1575 def flush(self, ctx):
1576 def flush(self, ctx):
1576 rev = ctx.rev()
1577 rev = ctx.rev()
@@ -1610,8 +1611,8 b' class changeset_printer(object):'
1610 label='log.node')
1611 label='log.node')
1611 return
1612 return
1612
1613
1613 # i18n: column positioning for "hg log"
1614 columns = self._columns
1614 self.ui.write(_("changeset: %s\n") % scmutil.formatchangeid(ctx),
1615 self.ui.write(columns['changeset'] % scmutil.formatchangeid(ctx),
1615 label=_changesetlabels(ctx))
1616 label=_changesetlabels(ctx))
1616
1617
1617 # branches are shown first before any other names due to backwards
1618 # branches are shown first before any other names due to backwards
@@ -1619,9 +1620,7 b' class changeset_printer(object):'
1619 branch = ctx.branch()
1620 branch = ctx.branch()
1620 # don't show the default branch name
1621 # don't show the default branch name
1621 if branch != 'default':
1622 if branch != 'default':
1622 # i18n: column positioning for "hg log"
1623 self.ui.write(columns['branch'] % branch, label='log.branch')
1623 self.ui.write(_("branch: %s\n") % branch,
1624 label='log.branch')
1625
1624
1626 for nsname, ns in self.repo.names.iteritems():
1625 for nsname, ns in self.repo.names.iteritems():
1627 # branches has special logic already handled above, so here we just
1626 # branches has special logic already handled above, so here we just
@@ -1634,33 +1633,25 b' class changeset_printer(object):'
1634 self.ui.write(ns.logfmt % name,
1633 self.ui.write(ns.logfmt % name,
1635 label='log.%s' % ns.colorname)
1634 label='log.%s' % ns.colorname)
1636 if self.ui.debugflag:
1635 if self.ui.debugflag:
1637 # i18n: column positioning for "hg log"
1636 self.ui.write(columns['phase'] % ctx.phasestr(), label='log.phase')
1638 self.ui.write(_("phase: %s\n") % ctx.phasestr(),
1639 label='log.phase')
1640 for pctx in scmutil.meaningfulparents(self.repo, ctx):
1637 for pctx in scmutil.meaningfulparents(self.repo, ctx):
1641 label = 'log.parent changeset.%s' % pctx.phasestr()
1638 label = 'log.parent changeset.%s' % pctx.phasestr()
1642 # i18n: column positioning for "hg log"
1639 self.ui.write(columns['parent'] % scmutil.formatchangeid(pctx),
1643 self.ui.write(_("parent: %s\n") % scmutil.formatchangeid(pctx),
1644 label=label)
1640 label=label)
1645
1641
1646 if self.ui.debugflag and rev is not None:
1642 if self.ui.debugflag and rev is not None:
1647 mnode = ctx.manifestnode()
1643 mnode = ctx.manifestnode()
1648 mrev = self.repo.manifestlog._revlog.rev(mnode)
1644 mrev = self.repo.manifestlog._revlog.rev(mnode)
1649 # i18n: column positioning for "hg log"
1645 self.ui.write(columns['manifest']
1650 self.ui.write(_("manifest: %s\n")
1651 % scmutil.formatrevnode(self.ui, mrev, mnode),
1646 % scmutil.formatrevnode(self.ui, mrev, mnode),
1652 label='ui.debug log.manifest')
1647 label='ui.debug log.manifest')
1653 # i18n: column positioning for "hg log"
1648 self.ui.write(columns['user'] % ctx.user(), label='log.user')
1654 self.ui.write(_("user: %s\n") % ctx.user(),
1649 self.ui.write(columns['date'] % util.datestr(ctx.date()),
1655 label='log.user')
1656 # i18n: column positioning for "hg log"
1657 self.ui.write(_("date: %s\n") % util.datestr(ctx.date()),
1658 label='log.date')
1650 label='log.date')
1659
1651
1660 if ctx.isunstable():
1652 if ctx.isunstable():
1661 # i18n: column positioning for "hg log"
1662 instabilities = ctx.instabilities()
1653 instabilities = ctx.instabilities()
1663 self.ui.write(_("instability: %s\n") % ', '.join(instabilities),
1654 self.ui.write(columns['instability'] % ', '.join(instabilities),
1664 label='log.instability')
1655 label='log.instability')
1665
1656
1666 elif ctx.obsolete():
1657 elif ctx.obsolete():
@@ -1670,31 +1661,22 b' class changeset_printer(object):'
1670
1661
1671 if self.ui.debugflag:
1662 if self.ui.debugflag:
1672 files = ctx.p1().status(ctx)[:3]
1663 files = ctx.p1().status(ctx)[:3]
1673 for key, value in zip([# i18n: column positioning for "hg log"
1664 for key, value in zip(['files', 'files+', 'files-'], files):
1674 _("files:"),
1675 # i18n: column positioning for "hg log"
1676 _("files+:"),
1677 # i18n: column positioning for "hg log"
1678 _("files-:")], files):
1679 if value:
1665 if value:
1680 self.ui.write("%-12s %s\n" % (key, " ".join(value)),
1666 self.ui.write(columns[key] % " ".join(value),
1681 label='ui.debug log.files')
1667 label='ui.debug log.files')
1682 elif ctx.files() and self.ui.verbose:
1668 elif ctx.files() and self.ui.verbose:
1683 # i18n: column positioning for "hg log"
1669 self.ui.write(columns['files'] % " ".join(ctx.files()),
1684 self.ui.write(_("files: %s\n") % " ".join(ctx.files()),
1685 label='ui.note log.files')
1670 label='ui.note log.files')
1686 if copies and self.ui.verbose:
1671 if copies and self.ui.verbose:
1687 copies = ['%s (%s)' % c for c in copies]
1672 copies = ['%s (%s)' % c for c in copies]
1688 # i18n: column positioning for "hg log"
1673 self.ui.write(columns['copies'] % ' '.join(copies),
1689 self.ui.write(_("copies: %s\n") % ' '.join(copies),
1690 label='ui.note log.copies')
1674 label='ui.note log.copies')
1691
1675
1692 extra = ctx.extra()
1676 extra = ctx.extra()
1693 if extra and self.ui.debugflag:
1677 if extra and self.ui.debugflag:
1694 for key, value in sorted(extra.items()):
1678 for key, value in sorted(extra.items()):
1695 # i18n: column positioning for "hg log"
1679 self.ui.write(columns['extra'] % (key, util.escapestr(value)),
1696 self.ui.write(_("extra: %s=%s\n")
1697 % (key, util.escapestr(value)),
1698 label='ui.debug log.extra')
1680 label='ui.debug log.extra')
1699
1681
1700 description = ctx.description().strip()
1682 description = ctx.description().strip()
@@ -1706,9 +1688,7 b' class changeset_printer(object):'
1706 label='ui.note log.description')
1688 label='ui.note log.description')
1707 self.ui.write("\n\n")
1689 self.ui.write("\n\n")
1708 else:
1690 else:
1709 # i18n: column positioning for "hg log"
1691 self.ui.write(columns['summary'] % description.splitlines()[0],
1710 self.ui.write(_("summary: %s\n") %
1711 description.splitlines()[0],
1712 label='log.summary')
1692 label='log.summary')
1713 self.ui.write("\n")
1693 self.ui.write("\n")
1714
1694
@@ -1719,8 +1699,7 b' class changeset_printer(object):'
1719
1699
1720 if obsfate:
1700 if obsfate:
1721 for obsfateline in obsfate:
1701 for obsfateline in obsfate:
1722 # i18n: column positioning for "hg log"
1702 self.ui.write(self._columns['obsolete'] % obsfateline,
1723 self.ui.write(_("obsolete: %s\n") % obsfateline,
1724 label='log.obsfate')
1703 label='log.obsfate')
1725
1704
1726 def _exthook(self, ctx):
1705 def _exthook(self, ctx):
@@ -25,6 +25,7 b' class namespaces(object):'
25
25
26 def __init__(self):
26 def __init__(self):
27 self._names = util.sortdict()
27 self._names = util.sortdict()
28 columns = templatekw.getlogcolumns()
28
29
29 # we need current mercurial named objects (bookmarks, tags, and
30 # we need current mercurial named objects (bookmarks, tags, and
30 # branches) to be initialized somewhere, so that place is here
31 # branches) to be initialized somewhere, so that place is here
@@ -32,8 +33,7 b' class namespaces(object):'
32 bmknamemap = lambda repo, name: tolist(repo._bookmarks.get(name))
33 bmknamemap = lambda repo, name: tolist(repo._bookmarks.get(name))
33 bmknodemap = lambda repo, node: repo.nodebookmarks(node)
34 bmknodemap = lambda repo, node: repo.nodebookmarks(node)
34 n = namespace("bookmarks", templatename="bookmark",
35 n = namespace("bookmarks", templatename="bookmark",
35 # i18n: column positioning for "hg log"
36 logfmt=columns['bookmark'],
36 logfmt=_("bookmark: %s\n"),
37 listnames=bmknames,
37 listnames=bmknames,
38 namemap=bmknamemap, nodemap=bmknodemap,
38 namemap=bmknamemap, nodemap=bmknodemap,
39 builtin=True)
39 builtin=True)
@@ -43,8 +43,7 b' class namespaces(object):'
43 tagnamemap = lambda repo, name: tolist(repo._tagscache.tags.get(name))
43 tagnamemap = lambda repo, name: tolist(repo._tagscache.tags.get(name))
44 tagnodemap = lambda repo, node: repo.nodetags(node)
44 tagnodemap = lambda repo, node: repo.nodetags(node)
45 n = namespace("tags", templatename="tag",
45 n = namespace("tags", templatename="tag",
46 # i18n: column positioning for "hg log"
46 logfmt=columns['tag'],
47 logfmt=_("tag: %s\n"),
48 listnames=tagnames,
47 listnames=tagnames,
49 namemap=tagnamemap, nodemap=tagnodemap,
48 namemap=tagnamemap, nodemap=tagnodemap,
50 deprecated={'tip'},
49 deprecated={'tip'},
@@ -55,8 +54,7 b' class namespaces(object):'
55 bnamemap = lambda repo, name: tolist(repo.branchtip(name, True))
54 bnamemap = lambda repo, name: tolist(repo.branchtip(name, True))
56 bnodemap = lambda repo, node: [repo[node].branch()]
55 bnodemap = lambda repo, node: [repo[node].branch()]
57 n = namespace("branches", templatename="branch",
56 n = namespace("branches", templatename="branch",
58 # i18n: column positioning for "hg log"
57 logfmt=columns['branch'],
59 logfmt=_("branch: %s\n"),
60 listnames=bnames,
58 listnames=bnames,
61 namemap=bnamemap, nodemap=bnodemap,
59 namemap=bnamemap, nodemap=bnodemap,
62 builtin=True)
60 builtin=True)
@@ -17,6 +17,7 b' from . import ('
17 encoding,
17 encoding,
18 error,
18 error,
19 hbisect,
19 hbisect,
20 i18n,
20 obsutil,
21 obsutil,
21 patch,
22 patch,
22 pycompat,
23 pycompat,
@@ -301,6 +302,30 b' def getrenamedfn(repo, endrev=None):'
301
302
302 return getrenamed
303 return getrenamed
303
304
305 def getlogcolumns():
306 """Return a dict of log column labels"""
307 _ = pycompat.identity # temporarily disable gettext
308 # i18n: column positioning for "hg log"
309 columns = _('bookmark: %s\n'
310 'branch: %s\n'
311 'changeset: %s\n'
312 'copies: %s\n'
313 'date: %s\n'
314 'extra: %s=%s\n'
315 'files+: %s\n'
316 'files-: %s\n'
317 'files: %s\n'
318 'instability: %s\n'
319 'manifest: %s\n'
320 'obsolete: %s\n'
321 'parent: %s\n'
322 'phase: %s\n'
323 'summary: %s\n'
324 'tag: %s\n'
325 'user: %s\n')
326 return dict(zip([s.split(':', 1)[0] for s in columns.splitlines()],
327 i18n._(columns).splitlines(True)))
328
304 # default templates internally used for rendering of lists
329 # default templates internally used for rendering of lists
305 defaulttempl = {
330 defaulttempl = {
306 'parent': '{rev}:{node|formatnode} ',
331 'parent': '{rev}:{node|formatnode} ',
General Comments 0
You need to be logged in to leave comments. Login now