diff -r da74ed639346 docs/i18n.txt
a
|
b
|
take a string as their first argument an
|
338 | 338 | take a string as their first argument and do something to that string. These |
339 | 339 | functions are used by template filters as well as directly in other code. |
340 | 340 | |
341 | | If you write your own similar functions and deal with translations, you'll |
| 341 | If you write your own similar functions and deal with translations, you'll |
342 | 342 | face the problem of what to do when the first argument is a lazy translation |
343 | 343 | object. You don't want to convert it to a string immediately, because you might |
344 | 344 | be using this function outside of a view (and hence the current thread's locale |
… |
… |
You can make the view dynamic by putting
|
789 | 789 | You can make the view dynamic by putting the packages into the URL pattern:: |
790 | 790 | |
791 | 791 | urlpatterns = patterns('', |
792 | | (r'^jsi18n/(?P<packages>\S+?)/$, 'django.views.i18n.javascript_catalog'), |
| 792 | (r'^jsi18n/(?P<packages>\S+?)/$', 'django.views.i18n.javascript_catalog'), |
793 | 793 | ) |
794 | 794 | |
795 | 795 | With this, you specify the packages as a list of package names delimited by '+' |
… |
… |
interface to access it::
|
811 | 811 | |
812 | 812 | document.write(gettext('this is to be translated')); |
813 | 813 | |
814 | | There even is a ``ungettext`` interface and a string interpolation function:: |
| 814 | There even is a ``ngettext`` interface and a string interpolation function:: |
815 | 815 | |
816 | 816 | d = { |
817 | 817 | count: 10 |
818 | 818 | }; |
819 | | s = interpolate(ungettext('this is %(count)s object', 'this are %(count)s objects', d.count), d); |
| 819 | s = interpolate(ngettext('this is %(count)s object', 'this are %(count)s objects', d.count), d); |
820 | 820 | |
821 | 821 | The ``interpolate`` function supports both positional interpolation and named |
822 | 822 | interpolation. So the above could have been written as:: |
823 | 823 | |
824 | | s = interpolate(ungettext('this is %s object', 'this are %s objects', 11), [11]); |
| 824 | s = interpolate(ngettext('this is %s object', 'this are %s objects', 11), [11]); |
825 | 825 | |
826 | 826 | The interpolation syntax is borrowed from Python. You shouldn't go over the top |
827 | 827 | with string interpolation, though: this is still JavaScript, so the code will |
828 | 828 | have to do repeated regular-expression substitutions. This isn't as fast as |
829 | 829 | string interpolation in Python, so keep it to those cases where you really |
830 | | need it (for example, in conjunction with ``ungettext`` to produce proper |
| 830 | need it (for example, in conjunction with ``ngettext`` to produce proper |
831 | 831 | pluralizations). |
832 | 832 | |
833 | 833 | Creating JavaScript translation catalogs |