wrc: Only add translations for specific fields in version blocks.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2017-04-07 11:19:08 +02:00
parent 9694aeb06d
commit 8f08aee04d
2 changed files with 23 additions and 7 deletions

View File

@ -125,14 +125,14 @@ FILESUBTYPE WINE_FILESUBTYPE
/* LANG_ENGLISH/SUBLANG_DEFAULT, WINE_CODEPAGE */
BLOCK "0409" WINE_CODEPAGE_STR
{
VALUE "CompanyName", "#msgctxt#do not translate#Microsoft Corporation" /* GameGuard depends on this */
VALUE "CompanyName", "Microsoft Corporation" /* GameGuard depends on this */
VALUE "FileDescription", WINE_FILEDESCRIPTION_STR
VALUE "FileVersion", "#msgctxt#do not translate#" WINE_FILEVERSION_STR
VALUE "InternalName", "#msgctxt#do not translate#" WINE_FILENAME
VALUE "LegalCopyright", "#msgctxt#do not translate#" WINE_LEGALCOPYRIGHT
VALUE "OriginalFilename", "#msgctxt#do not translate#" WINE_FILENAME_STR
VALUE "FileVersion", WINE_FILEVERSION_STR
VALUE "InternalName", WINE_FILENAME
VALUE "LegalCopyright", WINE_LEGALCOPYRIGHT
VALUE "OriginalFilename", WINE_FILENAME_STR
VALUE "ProductName", WINE_PRODUCTNAME_STR
VALUE "ProductVersion", "#msgctxt#do not translate#" WINE_PRODUCTVERSION_STR
VALUE "ProductVersion", WINE_PRODUCTVERSION_STR
WINE_EXTRAVALUES
}
}

View File

@ -917,6 +917,21 @@ static ver_block_t *get_version_langcharset_block( ver_block_t *block )
return NULL;
}
static int version_value_needs_translation( const ver_value_t *val )
{
int ret;
char *key;
if (val->type != val_str) return 0;
if (!(key = convert_msgid_ascii( val->key, 0 ))) return 0;
/* most values contain version numbers or file names, only translate a few specific ones */
ret = (!strcasecmp( key, "FileDescription" ) || !strcasecmp( key, "ProductName" ));
free( key );
return ret;
}
static void add_pot_versioninfo( po_file_t po, const resource_t *res )
{
ver_value_t *val;
@ -924,6 +939,7 @@ static void add_pot_versioninfo( po_file_t po, const resource_t *res )
if (!langcharset) return;
for (val = langcharset->values; val; val = val->next)
if (version_value_needs_translation( val ))
add_po_string( po, val->value.str, NULL, NULL );
}