patch 8.0.0411: menu translations don't match when case is changed.

Problem:    We can't change the case in menu entries, it breaks translations.
Solution:   Ignore case when looking up a menu translation.
diff --git a/src/menu.c b/src/menu.c
index d4ee45b..05a229b 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -2455,7 +2455,7 @@
     char_u		*dname;
 
     for (i = 0; i < menutrans_ga.ga_len; ++i)
-	if (STRNCMP(name, tp[i].from, len) == 0 && tp[i].from[len] == NUL)
+	if (STRNICMP(name, tp[i].from, len) == 0 && tp[i].from[len] == NUL)
 	    return tp[i].to;
 
     /* Now try again while ignoring '&' characters. */
@@ -2466,7 +2466,7 @@
     if (dname != NULL)
     {
 	for (i = 0; i < menutrans_ga.ga_len; ++i)
-	    if (STRCMP(dname, tp[i].from_noamp) == 0)
+	    if (STRICMP(dname, tp[i].from_noamp) == 0)
 	    {
 		vim_free(dname);
 		return tp[i].to;
diff --git a/src/testdir/test_menu.vim b/src/testdir/test_menu.vim
index be55946..8fdaa1f 100644
--- a/src/testdir/test_menu.vim
+++ b/src/testdir/test_menu.vim
@@ -1,9 +1,29 @@
 " Test that the system menu can be loaded.
 
+if !has('menu')
+  finish
+endif
+
 func Test_load_menu()
   try
     source $VIMRUNTIME/menu.vim
   catch
     call assert_false(1, 'error while loading menus: ' . v:exception)
   endtry
+  source $VIMRUNTIME/delmenu.vim
+endfunc
+
+func Test_translate_menu()
+  if !has('multi_lang')
+    return
+  endif
+  if !filereadable($VIMRUNTIME . '/lang/menu_de_de.latin1.vim')
+    throw 'Skipped: translated menu not found'
+  endif
+
+  set langmenu=de_de
+  source $VIMRUNTIME/menu.vim
+  call assert_match(':browse tabnew', execute(':menu File.In\ neuem\ Tab\ öffnen\.\.\.'))
+
+  source $VIMRUNTIME/delmenu.vim
 endfunc
diff --git a/src/version.c b/src/version.c
index 1020bf9..5db9f66 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    411,
+/**/
     410,
 /**/
     409,