make versionmodified translatable

This commit is contained in:
Nozomu Kaneko 2013-02-04 09:03:34 +09:00
parent 919ba75483
commit 81d21a7714
5 changed files with 92 additions and 1 deletions

View File

@ -194,12 +194,20 @@ class VersionChange(Directive):
if len(self.arguments) == 2:
inodes, messages = self.state.inline_text(self.arguments[1],
self.lineno+1)
node.append(nodes.paragraph('', '', *inodes))
para = nodes.paragraph(self.arguments[1], '', *inodes)
set_source_info(self, para)
node.append(para)
else:
messages = []
if self.content:
self.state.nested_parse(self.content, self.content_offset, node)
if len(node):
if isinstance(node[0], nodes.paragraph) and node[0].rawsource:
content = nodes.inline(node[0].rawsource, translatable=True)
content.source = node[0].source
content.line = node[0].line
content += node[0].children
node[0].replace_self(nodes.paragraph('', '', content))
node[0].insert(0, nodes.inline('', '%s: ' % text))
else:
para = nodes.paragraph('', '', nodes.inline('', '%s.' % text))

View File

@ -19,4 +19,5 @@ CONTENTS
role_xref
glossary_terms
glossary_terms_inconsistency
versionchange
docfields

View File

@ -0,0 +1,33 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2010, Georg Brandl & Team
# This file is distributed under the same license as the Sphinx <Tests> package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: sphinx 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-15 03:17\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "i18n with versionchange"
msgstr "I18N WITH VERSIONCHANGE"
msgid "This is the *first* paragraph of deprecated."
msgstr "THIS IS THE *FIRST* PARAGRAPH OF DEPRECATED."
msgid "This is the *second* paragraph of deprecated."
msgstr "THIS IS THE *SECOND* PARAGRAPH OF DEPRECATED."
msgid "This is the *first* paragraph of versionadded."
msgstr "THIS IS THE *FIRST* PARAGRAPH OF VERSIONADDED."
msgid "This is the *first* paragraph of versionchanged."
msgstr "THIS IS THE *FIRST* PARAGRAPH OF VERSIONCHANGED."

View File

@ -0,0 +1,16 @@
:tocdepth: 2
i18n with versionchange
============================
.. deprecated:: 1.0
This is the *first* paragraph of deprecated.
This is the *second* paragraph of deprecated.
.. versionadded:: 1.0
This is the *first* paragraph of versionadded.
.. versionchanged:: 1.0
This is the *first* paragraph of versionchanged.

View File

@ -389,6 +389,39 @@ def test_i18n_index_entries(app):
assert re.search(expr, result, re.M)
@with_intl_app(buildername='html', cleanenv=True)
def test_versionchange(app):
app.builder.build(['versionchange'])
result = (app.outdir / 'versionchange.html').text(encoding='utf-8')
def get_content(result, name):
matched = re.search(r'<div class="%s">\n*(.*?)</div>' % name,
result, re.DOTALL)
if matched:
return matched.group(1)
else:
return ''
expect1 = (
u"""<p><span>Deprecated since version 1.0: </span>"""
u"""THIS IS THE <em>FIRST</em> PARAGRAPH OF DEPRECATED.</p>\n"""
u"""<p>THIS IS THE <em>SECOND</em> PARAGRAPH OF DEPRECATED.</p>\n""")
matched_content = get_content(result, "deprecated")
assert expect1 == matched_content
expect2 = (
u"""<p><span>New in version 1.0: </span>"""
u"""THIS IS THE <em>FIRST</em> PARAGRAPH OF VERSIONADDED.</p>\n""")
matched_content = get_content(result, "versionadded")
assert expect2 == matched_content
expect3 = (
u"""<p><span>Changed in version 1.0: </span>"""
u"""THIS IS THE <em>FIRST</em> PARAGRAPH OF VERSIONCHANGED.</p>\n""")
matched_content = get_content(result, "versionchanged")
assert expect3 == matched_content
@with_intl_app(buildername='text', cleanenv=True)
def test_i18n_docfields(app):
app.builder.build(['docfields'])