Frage

Wenn Sie eine Vorlage in Mako zu schaffen, würde ich schreiben müssen, um Dinge wie: ${_('Hello, %(fname)s %(lname)s') % {'fname':'John','lname':'Doe'}}

Ich erhalte SyntaxException: (Syntaxerror) unerwartet EOF beim Parsen , wenn das Schreiben. Gibt es wny Möglichkeit, das gleiche?

zu tun

${_('Hello, %s %s') % ('John', 'Doe')} funktioniert, aber es ist nicht die Reihenfolge des Ersatzes zu ändern, wenn die Sprache zu ändern, falls erforderlich.

Danke.

War es hilfreich?

Lösung

Versuchen Sie, die neue Python-String Formatierung:

>>> "{foo} {bar}".format(foo="foo", bar="bar")
'foo bar'
>>> "{foo} {bar}".format(**{"foo": "Hello", "bar": "World!"})
'Hello World!'

Es sieht schöner und ist zukunftssicher.

Andere Tipps

Mit {} innerhalb Makos ${} ist kompliziert; offenbar stoppt Mako die Ausdrucksanalyse nach dem ersten } zu finden. Eine mögliche Abhilfe ist dict() statt {} zu verwenden:

${_('Hello, %(fname)s %(lname)s') % dict(fname='John', lname='Doe')}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top