Repository: sphinx-doc/sphinx (Python)

Issue:
Change wording of `versionadded` to "Added in..."
The wording of `versionadded` is currently "New in ...".  However, the predicate "new" rots with time, and it is awkward to read "New in version 1.5" when this version was released 12 years ago.

I suggest to change the wording to the neutral "Added in ...". 

This also reflects better the intention that is embedded in the name of the pragma: `versionadded`.



Discussion:

Patch:
diff --git a/CHANGES.rst b/CHANGES.rst
index 3becdc1db2d..a02119c1e7e 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -57,6 +57,11 @@ Features added
   .. _OSC 8: https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
   .. _groff: https://lists.gnu.org/archive/html/groff/2021-10/msg00000.html
 
+* #11015: :rst:dir:`versionadded` wording changes from ``New in [...]``
+  to ``Added in [...]``.
+  Patch by Bénédikt Tran.
+
+
 Bugs fixed
 ----------
 
diff --git a/sphinx/domains/changeset.py b/sphinx/domains/changeset.py
index c0550f5b478..5ffabcf5044 100644
--- a/sphinx/domains/changeset.py
+++ b/sphinx/domains/changeset.py
@@ -20,7 +20,7 @@
 
 
 versionlabels = {
-    'versionadded':   _('New in version %s'),
+    'versionadded':   _('Added in version %s'),
     'versionchanged': _('Changed in version %s'),
     'deprecated':     _('Deprecated since version %s'),
     'versionremoved': _('Removed in version %s'),
diff --git a/sphinx/util/nodes.py b/sphinx/util/nodes.py
index 3cf199a8f7f..bbc1f64e481 100644
--- a/sphinx/util/nodes.py
+++ b/sphinx/util/nodes.py
@@ -110,7 +110,7 @@ def get_full_module_name(node: Node) -> str:
 def repr_domxml(node: Node, length: int = 80) -> str:
     """
     return DOM XML representation of the specified node like:
-    '<paragraph translatable="False"><inline classes="versionmodified">New in version...'
+    '<paragraph translatable="False"><inline classes="versionadded">Added in version...'
 
     :param nodes.Node node: target node
     :param int length:


Test patch:
diff --git a/tests/test_builders/test_build_changes.py b/tests/test_builders/test_build_changes.py
index b340c8d54ec..b537b8751ae 100644
--- a/tests/test_builders/test_build_changes.py
+++ b/tests/test_builders/test_build_changes.py
@@ -9,7 +9,7 @@ def test_build(app):
 
     # TODO: Use better checking of html content
     htmltext = (app.outdir / 'changes.html').read_text(encoding='utf8')
-    assert 'New in version 0.6: Some funny stuff.' in htmltext
+    assert 'Added in version 0.6: Some funny stuff.' in htmltext
     assert 'Changed in version 0.6: Even more funny stuff.' in htmltext
     assert 'Deprecated since version 0.6: Boring stuff.' in htmltext
 
diff --git a/tests/test_builders/test_build_html_5_output.py b/tests/test_builders/test_build_html_5_output.py
index 0350efd67b7..ece6f495a95 100644
--- a/tests/test_builders/test_build_html_5_output.py
+++ b/tests/test_builders/test_build_html_5_output.py
@@ -113,7 +113,7 @@ def checker(nodes):
     # abbreviations
     ('markup.html', ".//abbr[@title='abbreviation']", '^abbr$'),
     # version stuff
-    ('markup.html', ".//div[@class='versionadded']/p/span", 'New in version 0.6: '),
+    ('markup.html', ".//div[@class='versionadded']/p/span", 'Added in version 0.6: '),
     ('markup.html', ".//div[@class='versionadded']/p/span",
      tail_check('First paragraph of versionadded')),
     ('markup.html', ".//div[@class='versionchanged']/p/span",
diff --git a/tests/test_intl/test_intl.py b/tests/test_intl/test_intl.py
index e54339c1220..6b1e9bae046 100644
--- a/tests/test_intl/test_intl.py
+++ b/tests/test_intl/test_intl.py
@@ -967,7 +967,7 @@ def get_content(result, name):
     assert expect1 == matched_content
 
     expect2 = (
-        """<p><span class="versionmodified added">New in version 1.0: </span>"""
+        """<p><span class="versionmodified added">Added in version 1.0: </span>"""
         """THIS IS THE <em>FIRST</em> PARAGRAPH OF VERSIONADDED.</p>\n""")
     matched_content = get_content(result, "versionadded")
     assert expect2 == matched_content