Jason H (15 May 2017 23:52):
> Having worked with Python's format(), I much prefer the alterative {}
> syntax, where {} defers to the next paramter.
> '{}{}{}'.format('a', 'b', 'c) == 'abc'
> Which makes maintence much easier,

However, it can be problematic for translation; some languages shall
change word order, which is why it's desirable to provide *some* way for
the order of substitutions to depart from the order of appearance in the
format string.

> partocuclarly when adding a parameter to the beginning. Otherwose your
> statements get all out of whack:
> '{3}{1}{2}'.format('b', 'c', 'a') == 'abc'

where, I take it, the real-world example has lots of text between the
formatters, 'the {3} brown {1} jumped over the lazy {2}' % ('fox',
'dog', 'quick') and renumbering the formatters to 'the {1} brown {2}
jumped over the lazy {3}' % ('quick', 'fox', 'dog') gets to be tedious
and susceptible to errors, particularly when the renumbering has to be
propagated to every translation.  None the less, it's a small price to
pay for being translatable.

> I's like the named formatter to take a QVariantMap (JS Object):
> QVariantMap object;
> object["name"]="World"; or object= {"name: 'World'} // from QML
> QStringFormatter("Hello, {name}").arg(object);
>
> I'd also like to see QML get fomr formatting love as well.

The named approach is, indeed, the best of both worlds; translation
adapts naturally and additions don't require re-indexing.  I suspect C++
programmers shall find it a bit heavy-weight (needing a hash, of some
variety, to do simple formatting) but it likely feels much more natural
at the QML level (just as it does in python).

        Eddy.
_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to