2012-09-23 11 views
8

No puedo obtener una traducción básica para trabajar en Flask Babel.Flask Babel - 'translations/de/LC_MESSAGES/messagess.po' está marcado como borroso, omitiendo

Estos son mis pasos.

  1. que tienen esto en una página {{_("Hello")}}

  2. corro este comando.

    pybabel extract -F babel.cfg -o messages.pot . 
    
  3. A continuación, ejecuto este comando para alemán.

    pybabel init -i messages.pot -d translations -l de 
    
  4. Aquí está el archivo de mo alemán en /app/translations/de/LC_MESSAGES/messages.po

    # German translations for PROJECT. 
    # Copyright (C) 2012 ORGANIZATION 
    # This file is distributed under the same license as the PROJECT project. 
    # FIRST AUTHOR <[email protected]>, 2012. 
    # 
    #, fuzzy 
    msgid "" 
    msgstr "" 
    "Project-Id-Version: PROJECT VERSION\n" 
    "Report-Msgid-Bugs-To: [email protected]\n" 
    "POT-Creation-Date: 2012-09-24 03:36+0800\n" 
    "PO-Revision-Date: 2012-09-24 03:37+0800\n" 
    "Last-Translator: FULL NAME <[email protected]>\n" 
    "Language-Team: de <[email protected]>\n" 
    "Plural-Forms: nplurals=2; plural=(n != 1)\n" 
    "MIME-Version: 1.0\n" 
    "Content-Type: text/plain; charset=utf-8\n" 
    "Content-Transfer-Encoding: 8bit\n" 
    "Generated-By: Babel 0.9.6\n" 
    
    #: templates/baseh5.html:129 
    msgid "Hello" 
    msgstr "Guten Tag" 
    
  5. corro este comando.

    pybabel compile -d translations 
    

    Esto es lo que obtengo.

    catalog 'translations/de/LC_MESSAGES/messages.po' is marked as fuzzy, skipping 
    
  6. conjunto se trata frasco

    app.config['BABEL_DEFAULT_LOCALE'] = 'de' 
    

¿Qué consigo? Obtengo Hello. ¿Por qué Flask Babel no funcionó? ¿Cómo trato con Fuzzy? Esto debería haber sido básico.

+0

¿Estás seguro de que no hay líneas 'difusas' en tu archivo .po? Aparte de la línea en la parte superior, eso es. Puedes obligar a Babel a compilarlo de todos modos con la bandera '-f'. –

+0

¿dónde coloco esa bandera? ¿Cómo se ve la línea de comando? ¿Puedes publicar una respuesta? – Tampa

+0

Funcionó !!!!!!!!!! gracias – Tampa

Respuesta

8

Puede forzar pybabel compile para compilar los mensajes marcados como difusa con el modificador de línea -f (o --use-fuzzy) comando:

pybabel compile -f -d translations 

mensajes 'Fuzzy' están marcados con una línea #, fuzzy encima de la línea msgid, y son la resultado de una combinación donde se considera que un mensaje ha cambiado ligeramente de la versión anterior. Un humano debe ver un mensaje marcado como fuzzy para asegurarse de que la traducción no necesita actualización, luego de lo cual el traductor humano elimina esa marca.

+2

No creo que la respuesta se ajuste muy bien. Claramente forzar la compilación es la solución equivocada; en cambio, una explicación de por qué hay un mensaje difuso "extraño" (vacío) sería más útil. Por ejemplo, no tengo idea de si debería marcarlo como no difuso o simplemente eliminarlo por completo. – ThiefMaster

+0

@ThiefMaster: Mi respuesta * ya * toca eso. Quitarás la línea '#, fuzzy'; las herramientas de traducción se encargan de esa bandera, por lo general. –

3

Como dijo pybabel: El catálogo en sí estaba marcado como "borroso" (6ª línea). Si elimina esa línea, no necesita la opción 'forzar'.

Cuestiones relacionadas