Encode UTF-8 strings to hex escapes in header files

This commit is contained in:
Martin von Gagern 2016-01-26 15:31:07 +01:00 committed by Jim Derry
parent bf70824cc2
commit 17e50f2642
5 changed files with 45 additions and 38 deletions

View file

@ -783,6 +783,13 @@ msgstr ""
po_content.items.each do |key, value| po_content.items.each do |key, value|
longest_key = key.length if key.length > longest_key longest_key = key.length if key.length > longest_key
value.each_value do |value_inner| value.each_value do |value_inner|
value_inner[:string].gsub!(/[^\u0000-\u007e][0-9a-fA-F]?/) do |c|
esc = c[0].bytes.map{ |b| '\\x' + b.to_s(16) }.join('')
if c[1]
esc += '""' + c[1]
end
esc
end
length = value_inner[:string].length length = value_inner[:string].length
longest_value = length if length > longest_value && !value_inner[:string].start_with?("\n") longest_value = length if length > longest_value && !value_inner[:string].start_with?("\n")
end end
@ -868,7 +875,7 @@ msgstr ""
File.rename(output_file, safe_backup_name(output_file)) File.rename(output_file, safe_backup_name(output_file))
end end
File.open(output_file, 'w') do |f| File.open(output_file, 'w') do |f|
f.write "\uFEFF" # MSVC requires a BOM. #f.write "\uFEFF" # MSVC requires a BOM.
f.write(report) f.write(report)
end end
@@log.info "#{__method__}: Results written to #{output_file}" @@log.info "#{__method__}: Results written to #{output_file}"

View file

@ -1,4 +1,4 @@
#ifndef language_en_gb_h #ifndef language_en_gb_h
#define language_en_gb_h #define language_en_gb_h
/* /*
* language_en_gb.h * language_en_gb.h

View file

@ -1,4 +1,4 @@
#ifndef language_es_h #ifndef language_es_h
#define language_es_h #define language_es_h
/* /*
* language_es.h * language_es.h
@ -61,26 +61,26 @@ static languageDefinition language_es = { whichPluralForm_es, {
- The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */ - The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */
TEXT_GENERAL_INFO_PLEA, 0, TEXT_GENERAL_INFO_PLEA, 0,
"\n" "\n"
"¿Le gustaría ver Tidy en un español correcto? Por favor considere \n" "\xc2\xbfLe gustar\xc3\xad""a ver Tidy en un espa\xc3\xb1ol correcto? Por favor considere \n"
"ayudarnos a localizar HTML Tidy. Para más detalles consulte \n" "ayudarnos a localizar HTML Tidy. Para m\xc3\xa1s detalles consulte \n"
"https://github.com/htacg/tidy-html5/blob/master/README/LOCALIZE.md \n" "https://github.com/htacg/tidy-html5/blob/master/README/LOCALIZE.md \n"
}, },
{/* Please use _only_ <code></code>, <em></em>, <strong></strong>, and <br/>. {/* Please use _only_ <code></code>, <em></em>, <strong></strong>, and <br/>.
It's very important that <br/> be self-closing in this manner! It's very important that <br/> be self-closing in this manner!
- The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */ - The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */
TidyMakeClean, 0, TidyMakeClean, 0,
"Esta opción especifica si Tidy debe realizar la limpieza de algún legado etiquetas de " "Esta opci\xc3\xb3n especifica si Tidy debe realizar la limpieza de alg\xc3\xban legado etiquetas de "
"presentación (actualmente <code>&lt;i&gt;</code>, <code>&lt;b&gt;</code>, <code>&lt;center&gt;</" "presentaci\xc3\xb3n (actualmente <code>&lt;i&gt;</code>, <code>&lt;b&gt;</code>, <code>&lt;center&gt;</"
"code> cuando encerrados dentro de las etiquetas apropiadas en línea y <code>&lt;font&gt;</" "code> cuando encerrados dentro de las etiquetas apropiadas en l\xc3\xadnea y <code>&lt;font&gt;</"
"code>). Si se establece en <code>yes</code>, entonces etiquetas existentes serán reemplazados " "code>). Si se establece en <code>yes</code>, entonces etiquetas existentes ser\xc3\xa1n reemplazados "
"con CSS <code>&lt;style&gt;</code> y estructural markup según corresponda. " "con CSS <code>&lt;style&gt;</code> y estructural markup seg\xc3\xban corresponda. "
}, },
#if SUPPORT_ASIAN_ENCODINGS #if SUPPORT_ASIAN_ENCODINGS
{/* Please use _only_ <code></code>, <em></em>, <strong></strong>, and <br/>. {/* Please use _only_ <code></code>, <em></em>, <strong></strong>, and <br/>.
It's very important that <br/> be self-closing in this manner! It's very important that <br/> be self-closing in this manner!
- The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */ - The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */
TidyNCR, 0, "Esta opción especifica si Tidy debe permitir referencias de caracteres numéricos. " TidyNCR, 0, "Esta opci\xc3\xb3n especifica si Tidy debe permitir referencias de caracteres num\xc3\xa9ricos. "
}, },
#endif /* SUPPORT_ASIAN_ENCODINGS */ #endif /* SUPPORT_ASIAN_ENCODINGS */
@ -88,22 +88,22 @@ static languageDefinition language_es = { whichPluralForm_es, {
- The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */ - The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */
TC_TXT_HELP_LANG_1, 0, TC_TXT_HELP_LANG_1, 0,
"\n" "\n"
"La opción --language (o --lang) indica el lenguaje Tidy debe \n" "La opci\xc3\xb3n --language (o --lang) indica el lenguaje Tidy debe \n"
"utilizar para comunicar su salida. Tenga en cuenta que esto no es \n" "utilizar para comunicar su salida. Tenga en cuenta que esto no es \n"
"un servicio de traducción de documentos, y sólo afecta a los mensajes \n" "un servicio de traducci\xc3\xb3n de documentos, y s\xc3\xb3lo afecta a los mensajes \n"
"que Tidy comunica a usted. \n" "que Tidy comunica a usted. \n"
"\n" "\n"
"Cuando se utiliza la línea de comandos el argumento --language debe \n" "Cuando se utiliza la l\xc3\xadnea de comandos el argumento --language debe \n"
"utilizarse antes de cualquier argumento que dan lugar a la producción, \n" "utilizarse antes de cualquier argumento que dan lugar a la producci\xc3\xb3n, \n"
"de lo contrario Tidy producirá la salida antes de que se conozca el \n" "de lo contrario Tidy producir\xc3\xa1 la salida antes de que se conozca el \n"
"idioma a utilizar. \n" "idioma a utilizar. \n"
"\n" "\n"
"Además de los códigos de idioma estándar POSIX, Tidy es capaz de \n" "Adem\xc3\xa1s de los c\xc3\xb3""digos de idioma est\xc3\xa1ndar POSIX, Tidy es capaz de \n"
"entender códigos de idioma legados de Windows. Tenga en cuenta que \n" "entender c\xc3\xb3""digos de idioma legados de Windows. Tenga en cuenta que \n"
"este lista indica los códigos Tidy entiende, y no indica que \n" "este lista indica los c\xc3\xb3""digos Tidy entiende, y no indica que \n"
"actualmente el idioma está instalado. \n" "actualmente el idioma est\xc3\xa1 instalado. \n"
"\n" "\n"
"La columna más a la derecha indica cómo Tidy comprenderá el \n" "La columna m\xc3\xa1s a la derecha indica c\xc3\xb3mo Tidy comprender\xc3\xa1 el \n"
"legado nombre de Windows.\n" "legado nombre de Windows.\n"
"\n" "\n"
}, },
@ -111,23 +111,23 @@ static languageDefinition language_es = { whichPluralForm_es, {
- The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */ - The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */
TC_TXT_HELP_LANG_2, 0, TC_TXT_HELP_LANG_2, 0,
"\n" "\n"
"Los siguientes idiomas están instalados actualmente en Tidy. Tenga \n" "Los siguientes idiomas est\xc3\xa1n instalados actualmente en Tidy. Tenga \n"
"en cuenta que no hay garantía de que están completos; sólo quiere decir \n" "en cuenta que no hay garant\xc3\xad""a de que est\xc3\xa1n completos; s\xc3\xb3lo quiere decir \n"
"que un desarrollador u otro comenzaron a añadir el idioma indicado. \n" "que un desarrollador u otro comenzaron a a\xc3\xb1""adir el idioma indicado. \n"
"\n" "\n"
"Localizaciones incompletas por defecto se usan \"en\" cuando sea \n" "Localizaciones incompletas por defecto se usan \"en\" cuando sea \n"
"necesario. ¡Favor de informar los desarrolladores de estes casos! \n" "necesario. \xc2\xa1""Favor de informar los desarrolladores de estes casos! \n"
"\n" "\n"
}, },
{/* This console output should be limited to 78 characters per line. {/* This console output should be limited to 78 characters per line.
- The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */ - The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */
TC_TXT_HELP_LANG_3, 0, TC_TXT_HELP_LANG_3, 0,
"\n" "\n"
"Si Tidy es capaz de determinar la configuración regional entonces \n" "Si Tidy es capaz de determinar la configuraci\xc3\xb3n regional entonces \n"
"Tidy utilizará el lenguaje de forma automática de la configuración \n" "Tidy utilizar\xc3\xa1 el lenguaje de forma autom\xc3\xa1tica de la configuraci\xc3\xb3n \n"
"regional. Por ejemplo los sistemas de tipo Unix utilizan los variables \n" "regional. Por ejemplo los sistemas de tipo Unix utilizan los variables \n"
"$LANG y/o $LC_ALL. Consulte a su documentación del sistema para \n" "$LANG y/o $LC_ALL. Consulte a su documentaci\xc3\xb3n del sistema para \n"
"obtener más información.\n" "obtener m\xc3\xa1s informaci\xc3\xb3n.\n"
"\n" "\n"
}, },

View file

@ -1,4 +1,4 @@
#ifndef language_es_mx_h #ifndef language_es_mx_h
#define language_es_mx_h #define language_es_mx_h
/* /*
* language_es_mx.h * language_es_mx.h
@ -61,8 +61,8 @@ static languageDefinition language_es_mx = { whichPluralForm_es_mx, {
- The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */ - The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */
TEXT_GENERAL_INFO_PLEA, 0, TEXT_GENERAL_INFO_PLEA, 0,
"\n" "\n"
"¿Le gustaría ver Tidy en adecuada, español mexicano? Por favor considere \n" "\xc2\xbfLe gustar\xc3\xad""a ver Tidy en adecuada, espa\xc3\xb1ol mexicano? Por favor considere \n"
"ayudarnos a localizar HTML Tidy. Para más detalles consulte \n" "ayudarnos a localizar HTML Tidy. Para m\xc3\xa1s detalles consulte \n"
"https://github.com/htacg/tidy-html5/blob/master/README/LOCALIZE.md \n" "https://github.com/htacg/tidy-html5/blob/master/README/LOCALIZE.md \n"
}, },

View file

@ -1,4 +1,4 @@
#ifndef language_zh_cn_h #ifndef language_zh_cn_h
#define language_zh_cn_h #define language_zh_cn_h
/* /*
* language_zh_cn.h * language_zh_cn.h
@ -57,14 +57,14 @@ static languageDefinition language_zh_cn = { whichPluralForm_zh_cn, {
{/* Specify the ll or ll_cc language code here. */ {/* Specify the ll or ll_cc language code here. */
TIDY_LANGUAGE, 0, "zh_cn" TIDY_LANGUAGE, 0, "zh_cn"
}, },
{ FILE_CANT_OPEN, 0, "无法打开”%1$s”\n" }, { FILE_CANT_OPEN, 0, "\xe6\x97\xa0\xe6\xb3\x95\xe6\x89\x93\xe5\xbc\x80\xe2\x80\x9d%1$s\xe2\x80\x9d\n" },
{ LINE_COLUMN_STRING, 0, "行 %1$d 列 %2$d - " }, { LINE_COLUMN_STRING, 0, "\xe8\xa1\x8c %1$d \xe5\x88\x97 %2$d - " },
{ STRING_CONTENT_LOOKS, 0, "文档内容看起来像 %1$s" }, { STRING_CONTENT_LOOKS, 0, "\xe6\x96\x87\xe6\xa1\xa3\xe5\x86\x85\xe5\xae\xb9\xe7\x9c\x8b\xe8\xb5\xb7\xe6\x9d\xa5\xe5\x83\x8f %1$s" },
{/* The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */ {/* The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */
TC_STRING_VERS_A, 0, "HTML Tidy 版本 %2$s 用于 %1$s" TC_STRING_VERS_A, 0, "HTML Tidy \xe7\x89\x88\xe6\x9c\xac %2$s \xe7\x94\xa8\xe4\xba\x8e %1$s"
}, },
{/* The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */ {/* The strings "Tidy" and "HTML Tidy" are the program name and must not be translated. */
TC_STRING_VERS_B, 0, "HTML Tidy 版本 %1$s" TC_STRING_VERS_B, 0, "HTML Tidy \xe7\x89\x88\xe6\x9c\xac %1$s"
}, },
{/* This MUST be present and last. */ {/* This MUST be present and last. */