es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Programa C++ multilingüe.

¿Cómo puedo agregar soporte multilingüe a un programa de C++? Quiero permitirle al usuario elegir entre 2 idiomas al abrir la aplicación. ¿Cuál es la manera más sencilla sin utilizar bibliotecas externas?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una forma sencilla de agregar soporte multilingüe a un programa en C++ sin utilizar bibliotecas externas es utilizar un mapa global que asocia cada constante de cadena utilizada en el programa con su versión traducida en cada idioma.

    Aquí hay un ejemplo de cómo podría implementarse este enfoque:

    1. Defina un mapa que asocie constantes de cadena con sus traducciones en cada idioma:
    #include <map>
    #include <string>
    
    std::map<std::string,></std::string,><int, std::string="">> g_language_map = {
        {"Hello", {{0, "Hello"}, {1, "Bonjour"}}},
        {"Goodbye", {{0, "Goodbye"}, {1, "Au revoir"}}},
        // Agregue más constantes de cadena y traducciones para cada idioma aquí
    };
    

    En este ejemplo, estamos utilizando un mapa de mapas para asociar cada constante de cadena con sus traducciones en cada idioma. El mapa exterior utiliza claves de cadena para identificar cada constante de cadena, y los mapas interiores utilizan claves enteras para identificar cada idioma (en este caso, estamos utilizando 0 para inglés y 1 para francés).

    1. Cuando necesite mostrar una cadena al usuario, recupere la traducción correspondiente del mapa en función de la preferencia de idioma del usuario:
    #include <iostream>
    
    int main() {
        // Supongamos que el usuario ha seleccionado el idioma 0 (inglés)
        int idioma = 0;
        // Muestre la cadena "Hola" en el idioma del usuario
        std::cout << g_language_map["Hola"][idioma] << std::endl;
        // Muestre la cadena "Adiós" en el idioma del usuario
        std::cout << g_language_map["Adiós"][idioma] << std::endl;
        return 0;
    }
    

    En este ejemplo, estamos recuperando la traducción correspondiente para cada constante de cadena en función de la preferencia de idioma del usuario (en este caso, estamos asumiendo que han seleccionado el idioma 0, que corresponde al inglés).

    Este enfoque tiene algunas limitaciones (por ejemplo, no maneja la pluralización o el género gramatical), pero es una forma sencilla de agregar soporte multilingüe a un programa en C++ sin utilizar bibliotecas externas.</int,>

Comments are closed.