2013-03-27 2 views
4

Lorsque vous utilisez xgettext pour générer un fichier .pot, en haut du fichier généré je reçois ceci:Que signifie #, flou en haut d'un fichier .pot généré par xgettext?

# SOME DESCRIPTIVE TITLE. 
... 
#, fuzzy 
... 

Qu'est-ce que le #, fuzzy signifie?

Je sais ce que cela signifie si une traduction est floue (c'est de mauvaise qualité), mais qu'est-ce que cela signifie à la top d'un fichier .pot?

+0

S'il y a une réponse, je pense qu'elle est enterrée quelque part ici: https://www.gnu.org/software/gettext/manual/gettext.html –

Répondre

0

De gettext on Fuzzy-Entries:

entrées floues, même si elles représentent les entrées traduites pour la plupart des autres fins, généralement appel à la révision par le traducteur. Ceux-ci peuvent être produits en appliquant le programme msgmerge pour mettre à jour un ancien fichier PO traduit en fonction d'un nouveau fichier modèle PO, quand cet outil émet l'hypothèse qu'un nouveau msgid a été modifié seulement légèrement d'un ancien, et choisit de coupler ce qu'il pense être l'ancienne traduction de la nouvelle entrée modifiée. La légère modification de la chaîne d'origine (la chaîne msgid) devrait souvent se refléter dans la chaîne traduite, ce qui nécessite l'intervention du traducteur. Pour cette raison, msgmerge peut marquer certaines entrées comme floues.

J'ai vu #, fuzzy apparaissent lorsque la génération d'un fichier de message (.po) en utilisant Django, et où le texte original (msgid) a été modifié, auquel cas le traducteur doit être conscient que devrait être modifié le texte traduit ainsi que.

0

xgettext ajoute l'entrée #, fuzzy en haut lorsqu'il génère automatiquement un en-tête de projet dans le fichier de messages. Le commentaire n'a pas de signification particulière en soi: il suffit de noter qu'un humain doit venir et combler les lacunes.

Faisons un peu plus attention à la source.

Lorsque vous créez un fichier de message, xgettext ajoute des informations de projet au début du fichier de message généré (sauf si vous passez --omit-header):

$ cat hello.c 
int main() { 
    printf(gettext("Hello World\n")); 
    return 0; 
} 

$ xgettext -o- hello.c 
# SOME DESCRIPTIVE TITLE. 
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 
# This file is distributed under the same license as the PACKAGE package. 
# FIRST AUTHOR <[email protected]>, YEAR. 
# 
#, fuzzy 
msgid "" 
msgstr "" 
"Project-Id-Version: PACKAGE VERSION\n" 
"Report-Msgid-Bugs-To: \n" 
"POT-Creation-Date: 2017-06-08 11:51-0400\n" 
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 
"Last-Translator: FULL NAME <[email protected]>\n" 
"Language-Team: LANGUAGE <[email protected]>\n" 
"Language: \n" 
"MIME-Version: 1.0\n" 
"Content-Type: text/plain; charset=CHARSET\n" 
"Content-Transfer-Encoding: 8bit\n" 

#: hello.c:3 
#, c-format 
msgid "Hello World\n" 
msgstr "" 

Le support logique cela se trouve dans xgettext.c:construct_header(). Chemin vers le bas au fond de cette fonction, les informations d'en-tête nouvellement généré est marquée floue:

mp->is_fuzzy = true; 

Depuis ce texte a été marqué comme floue, l'étiquette #, fuzzy commentaire est ajouté au texte. L'intention ici est de sensibiliser: un programme informatique a ajouté du texte au fichier de message, et un humain doit agir. En particulier, un humain doit venir compléter les blancs: date de révision, nom du traducteur, langue, etc.

Utilisation du "#, floue" annotation est logique dans ce contexte, selon les docs:

[entrées Fuzzy] généralement appel à la révision par le traducteur.