> Internacionalización (I18N) se refiere a un software que admite extensiones en varios idiomas en la estructura y el mecanismo del diseño. Su diseño de función y código no es específico de un idioma y región específicos. > > Uno: Pasos básicos de implementación > 1 Editar programa de origen > Editar el programa de origen con el editor vim. Nota: para implementar con éxito la internacionalización del programa, el programa de origen debe contener el archivo de encabezado estándar correspondiente. La función principal debe llamar a funciones relacionadas, como la biblioteca libintl, la función setlocale (), bindtextdomain (), textdomain (), etc. > El siguiente programa es un ejemplo simple: > > # incluye < stdio.h > > # include < locale.h > > # include < libintl.h > > # include < stdlib.h > g &g;; #define _ (String) gettext (String) > int main (int argc, char ** argv) > {> setlocale (LC_ALL, "); > bindtextdomain (" gettext ", " . "); > textdomain (" gettext "); > printf ("% s \\ n ", _ (¡un mundo, un sueño! ")); > return 0; >} > > > 2 Compile el programa fuente > Compile el programa fuente con el comando gcc para generar un archivo ejecutable. Después de la ejecución, se pueden mostrar los caracteres de la función de entrada en el programa fuente. Ejemplo de comando: > gcc -o gettext gettext.c > > 3 Crear pot de plantilla de archivo de traducción> Utilice el comando xggetxt para extraer información de traducción del programa fuente y crear un archivo de pot de plantilla de archivo de traducción (plantilla de objeto portátil). Ejemplo de comando: > xgettext --keyword = _ gettext.c -o gettext.pot > > 4 Generar archivos po de objetos portátiles desde pot> Cada idioma tiene su propio archivo de objetos portátil, es decir, po (Portable Objeto) archivo. El archivo se compone de un par de msgid y msgstr, donde msgid representa la información extraída del programa y msgstr representa la traducción. Ejemplo de comando: > cp gettext.pot gettext.po > > 5 Edite los caracteres traducidos en el archivo po, modifique la codificación de los caracteres > edite el archivo po con el editor gedit o vim, traduzca la información relevante y cambie el conjunto de caracteres a UTF -8, de lo contrario no puede ser codificado. Cuando hayas terminado, guarda el archivo. Nota: Si desea implementar varios idiomas, debe copiar los archivos multi-po y traducirlos por separado. Ejemplo de comando: > gedit gettext.po o vim gettext.po > > > > > > > > > > > > > >, gt; Use el comando msgfmt para convertir el archivo po en un archivo binario (MachineObject) para la lectura de la computadora. Ejemplo de comando: > msgfmt gettext.po -o gettext.mo > > > 7 Colocar el archivo mo en la estructura de directorio correcta > mo ubicación de almacenamiento del archivo es la clave para la internacionalización del programa. En general, se debe colocar en el subdirectorio correspondiente bajo la configuración regional de la región correspondiente. Por lo general, la estructura de directorio predeterminada es /usr /locale /share /local, por lo que el mo generado en este ejemplo debe ubicarse en el subdirectorio correspondiente bajo este directorio. Sin embargo, dado que la función setlocale () en el programa está configurada para buscar información de traducción bajo la estructura de directorio actual, solo es necesario crear un directorio local correspondiente en el directorio actual (es decir, el directorio donde se ubica el programa fuente). En este ejemplo, puede crear la siguiente estructura de directorio: > zh_CN /LC_MESSAGES /y en_US /LC_MESSAGES /> Después de crear el directorio, coloque dos archivos mo diferentes en estos dos directorios respectivamente > > 8 Configuración del entorno Variables> Este programa de ejemplo lee la información de LAN de la configuración de LANG del entorno actual, por lo que necesita configurar LANG de la siguiente manera. Nota: Solo se puede establecer una región a la vez. > LANG = zh_CN.UTF-8 > LANG = en_US.UTF-8 > > 9 Ejecute el programa y obtenga el resultado > Ejecute ./gettext en la interfaz del terminal para obtener el resultado que se mostrará. > > 2: Actualización del programa de internacionalización > En el proceso de depuración del programa, es inevitable modificar el programa fuente en consecuencia. ¿Cómo mostrar correctamente la traducción recién modificada después de que se modifique el programa fuente, y usar efectivamente la información de traducción original para mejorar la eficiencia, es decir, cómo "actualizar" el programa de internacionalización? > Utiliza los siguientes pasos para resolver este problema. > > 1 Modificar (agregar, eliminar) el programa fuente > > 2 Ejecute xgettext para generar un nuevo archivo de maceta > Ejemplo de comando: > xgettext --keyword = _ gettext.c -o gettext.pot > > 3 Cambie el nombre del archivo po del programa original para distinguir el archivo po que generará el nuevo archivo pot. ≫ Ejemplo de comando: > mv gettext.po old_gettext.po > > 4 Ejecute msgmerge para comparar y fusionar los archivos pot nuevos y antiguos. Versión de actualización del archivo po > comando ejemplo: > msgmerge old_gettext.po gettext.pot --output-file gettext.po > > 5 Para registrar la diferencia entre los potes antiguos y nuevos, puede usar el comando diff para registrar los dos archivos de potes. Similitudes y diferencias. > Ejemplo de comando: > diff -u old_gettext.po gettext.po > old_gettext.diff > > 6 Después de generar un nuevo archivo po en el paso 4, puede eliminar el archivo po original para evitar interferencias. > Ejemplo de comando: > rm -f old_gettext.po > > 7 Genere un nuevo archivo a partir del archivo po recién generado. > Ejemplo de comando: > msgfmt gettext.po -o gettext.mo > > > 8 se generará nuevamente El archivo mo se coloca bajo la estructura de directorio correcta > > 9Set variable de entorno > > 10 Ejecute el programa para obtener el nuevo resultado > > Tres: Atención a algunos problemas > 1 La función setlocale () en el programa de origen La estructura del directorio del archivo mo debe ser consistente, de lo contrario no se obtendrá el resultado correcto. > > 2 Al editar un archivo po, tenga cuidado de ajustar los caracteres a una codificación portátil UTF-8 para obtener el resultado correcto. De lo contrario, aparecerá una advertencia: > (gettext.po: warning: conjunto de caracteres <quo; CHARSET " no es un nombre de codificación portátil. La conversión de un mensaje a un conjunto de caracteres del usuario puede no funcionar.) ≫ > 3 Configuración de múltiples variables de entorno (Región), copie varias copias de po y edítelas por separado, y coloque los archivos mo generados en el directorio correcto. > > 4 Después de modificar el programa fuente para actualizarlo internacionalmente, se debe eliminar el archivo ejecutable del programa original (antes de la modificación); de lo contrario, no se podrá obtener el resultado del programa modificado> > 4: Parte del programa fuente Explique > > # include < stdio.h > > # include < locale.h > //Defina la función de localización. > # include < libintl.h > //Incluye la biblioteca gettext, que es un conjunto de herramientas y bibliotecas desarrolladas específicamente por GUN para resolver el problema de la internacionalización del programa.
Con el uso cada vez mayor de Linux, hay un gran número de servidores web que utilizan el sistema ope
La descarga, la compilación y la instalación son muy sencillas. Primero deben instalarse varias de
Informática Noticias de la tienda: primeros sistemas Linux para la puesta en marcha de panel plano
Nginx se ha usado ampliamente en entornos de producción en comparación con el alto rendimiento de
Ejecutar junit en la línea de comando
Interserver VPS ovz architecture asume que VPN
Cómo hacer que CentOS ban ping (anti-PING)
Dos formas de instalar el sistema SUSE Linux10 desde el disco duro
Accesos directos comunes bajo la línea de comando de Linux
Tutorial de instalación y desinstalación de paquetes de Linux
Usando la documentación de Windows en el escritorio de Linux
Awk expresión regular, detalles del operador regular
Operación simple de diez "rápidos"
conmutación de la instalación de Linux entre el modo de modo de texto y gráficos
Método de recuperación del historial de actualización del sistema de Windows 10
Enseñarle a construir un sistema de Microsoft altamente seguro
¿Qué debo hacer si el sistema Win7 se reinstala y se atasca en la interfaz de inicio?
Win10 TH2 versión casi oficial versión 10586: problema solucionado + resumen del problema conocido
Microsoft proporcionará a Win10 actualizaciones "rápidas" y "estables".
Win10 versión comercial de la unidad flash USB fuera de línea: el diseño de metal es muy refinado
Las fuentes predeterminadas de Windows 7 son fáciles de restaurar
Consejos para cambiar las cuentas locales del sistema Windows 10 a las cuentas en línea de Microsoft
u disco doble clic no puede abrir cómo hacerlo
Desinstale el método de entrada "Microsoft Pinyin Simple" de Win8