Teniendo un menú hecho por defecto en español en este caso. (Cuando todo esté acabado tiene que estar en Inglés por defecto).
Quiero crear menús que sea capaz de elegir el idioma, en al cual hoy en día no hay problema porque está este traductor para escapar.
Mi idea para tener un orden de cada idioma a introducir, por ejemplo, español, inglés, alemán, francés, italiano y portugués.
En este ejemplo hay 6 lenguas. No se si la mejor opción es crear una carpeta de idiomas y ahí meto cada lengua en el cual es llamado.
Código de ejemplo para.
Código
using System; namespace Idiomas_consola_01_cs { class Program { static void Main(string[] args) { // Título de la ventana. Console.Title = "Menú - C# 2017"; // Tamaño ventana consola. // X anchura. Console.WindowWidth = 80; // Y altura. Console.WindowHeight = 40; // Oculto el cursor. Console.CursorVisible = false; // Almacena la tecla pulsada en la variable. ConsoleKey teclaInicial; // Fondo verde. Console.BackgroundColor = ConsoleColor.Green; // Letras negras. Console.ForegroundColor = ConsoleColor.Black; do { // Limpiar pantalla. Console.Clear(); // Formato numérico dd/MM/yyyy. Console.WriteLine(DateTime.Now.ToString("ddd dd MMM")); // Almacena en la variable una tecla pulsada. teclaInicial = Console.ReadKey(true).Key; // ¿Haz pulsado la tecla Enter? if (teclaInicial == ConsoleKey.Enter) { // Sí. Se ejecuta esta función. menuPrincipal(); } } while (teclaInicial != ConsoleKey.Escape); } #region Menú Principal. public static void menuPrincipal() { // Contador de teclas y navegador. int opcion = 0; bool salir = false; // Capturar tecla para luego validar. ConsoleKey tecla; do { // Limpiar pantalla. Console.Clear(); switch (opcion) { case 0: Console.SetCursorPosition(0, 0); Console.Write("Language"); break; case 1: Console.SetCursorPosition(0, 0); Console.WriteLine("Opción 1."); break; case 2: Console.SetCursorPosition(0, 0); Console.WriteLine("Opción 2."); break; case 3: Console.SetCursorPosition(0, 0); Console.WriteLine("Opción 3."); break; case 4: Console.SetCursorPosition(0, 0); Console.WriteLine("Opción 4."); break; case 5: Console.SetCursorPosition(0, 0); Console.WriteLine("Opción 5."); break; case 6: Console.SetCursorPosition(0, 0); Console.WriteLine("Opción 6."); break; case 7: Console.SetCursorPosition(0, 0); Console.WriteLine("Salir menú"); break; default: break; } // Fin de pintar el menú. //****************************************************************** // Leer tecla ingresada por el usuario. tecla = Console.ReadKey(true).Key; // Validar el tipo de tecla. if (tecla == ConsoleKey.Enter) { switch (opcion) { case 1: // Instrucciones. break; case 2: // Instrucciones. break; case 3: // Instrucciones. break; case 4: // Instrucciones. break; case 6: // Instrucciones. break; case 7: salir = true; break; default: break; } } if (tecla == ConsoleKey.DownArrow) { opcion += 1; // Equivalente ++. } if (tecla == ConsoleKey.UpArrow) { opcion -= 1; // --. } // Si está en la última opción, salta a la primera. if (opcion > 7) { opcion = 0; } // Si está en la primera posición, salta a la última. if (opcion < 0) { opcion = 7; } // Uso la tecla escape como salida. } while (salir == false); } #endregion } }
En el menú Languaje, si pulsas Enter, tiene que verse en Inglés, todos los idiomas que vayamos incorporando. El usuario elige el idioma y se queda seleccionado.
¿Alguna idea?
Saludos.