bpo-33924: Change IDLE mainmenu.menudefs key 'windows' to 'window' (GH-7836)

Every other menudef key is the lowercase version of the
corresponding main menu entry (in this case, 'Window').
diff --git a/Lib/idlelib/autocomplete_w.py b/Lib/idlelib/autocomplete_w.py
index 66211d4..9e0d336 100644
--- a/Lib/idlelib/autocomplete_w.py
+++ b/Lib/idlelib/autocomplete_w.py
@@ -246,7 +246,7 @@
         acw.wm_geometry("+%d+%d" % (new_x, new_y))
 
         if platform.system().startswith('Windows'):
-            # See issue 15786. When on windows platform, Tk will misbehave
+            # See issue 15786. When on Windows platform, Tk will misbehave
             # to call winconfig_event multiple times, we need to prevent this,
             # otherwise mouse button double click will not be able to used.
             acw.unbind(WINCONFIG_SEQUENCE, self.winconfigid)
@@ -269,7 +269,7 @@
         # mouse click on widget / text area.
         if self.is_active():
             if event.type == EventType.FocusOut:
-                # On windows platform, it will need to delay the check for
+                # On Windows platform, it will need to delay the check for
                 # acw.focus_get() when click on acw, otherwise it will return
                 # None and close the window
                 self.widget.after(1, self._hide_event_check)
diff --git a/Lib/idlelib/editor.py b/Lib/idlelib/editor.py
index 3f034f8..1a16389 100644
--- a/Lib/idlelib/editor.py
+++ b/Lib/idlelib/editor.py
@@ -267,7 +267,7 @@
         self.saved_change_hook()
         self.update_recent_files_list()
         self.load_extensions()
-        menu = self.menudict.get('windows')
+        menu = self.menudict.get('window')
         if menu:
             end = menu.index("end")
             if end is None:
@@ -410,7 +410,7 @@
         ("format", "F_ormat"),
         ("run", "_Run"),
         ("options", "_Options"),
-        ("windows", "_Window"),
+        ("window", "_Window"),
         ("help", "_Help"),
     ]
 
@@ -437,7 +437,7 @@
 
     def postwindowsmenu(self):
         # Only called when Window menu exists
-        menu = self.menudict['windows']
+        menu = self.menudict['window']
         end = menu.index("end")
         if end is None:
             end = -1
diff --git a/Lib/idlelib/idle_test/test_mainmenu.py b/Lib/idlelib/idle_test/test_mainmenu.py
index 0471128..7ec0368 100644
--- a/Lib/idlelib/idle_test/test_mainmenu.py
+++ b/Lib/idlelib/idle_test/test_mainmenu.py
@@ -10,7 +10,7 @@
     def test_menudefs(self):
         actual = [item[0] for item in mainmenu.menudefs]
         expect = ['file', 'edit', 'format', 'run', 'shell',
-                  'debug', 'options', 'windows', 'help']
+                  'debug', 'options', 'window', 'help']
         self.assertEqual(actual, expect)
 
     def test_default_keydefs(self):
diff --git a/Lib/idlelib/macosx.py b/Lib/idlelib/macosx.py
index 3d29612..a2260af 100644
--- a/Lib/idlelib/macosx.py
+++ b/Lib/idlelib/macosx.py
@@ -148,7 +148,7 @@
     root.configure(menu=menubar)
     menudict = {}
 
-    menudict['windows'] = menu = Menu(menubar, name='windows', tearoff=0)
+    menudict['window'] = menu = Menu(menubar, name='window', tearoff=0)
     menubar.add_cascade(label='Window', menu=menu, underline=0)
 
     def postwindowsmenu(menu=menu):
diff --git a/Lib/idlelib/mainmenu.py b/Lib/idlelib/mainmenu.py
index 04acaed..9fe6b52 100644
--- a/Lib/idlelib/mainmenu.py
+++ b/Lib/idlelib/mainmenu.py
@@ -97,7 +97,7 @@
    ('_Code Context', '<<toggle-code-context>>'),
    ]),
 
- ('windows', [
+ ('window', [
    ('Zoom Height', '<<zoom-height>>'),
    ]),
 
diff --git a/Lib/idlelib/pyshell.py b/Lib/idlelib/pyshell.py
index 6746489..52c11e3 100755
--- a/Lib/idlelib/pyshell.py
+++ b/Lib/idlelib/pyshell.py
@@ -852,7 +852,7 @@
         ("edit", "_Edit"),
         ("debug", "_Debug"),
         ("options", "_Options"),
-        ("windows", "_Window"),
+        ("window", "_Window"),
         ("help", "_Help"),
     ]