Ticket #6859: js-i18n-doc.diff
| File js-i18n-doc.diff, 2.5 kB (added by ramiro, 8 months ago) |
|---|
-
a/docs/i18n.txt
old new 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 … … 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 '+' … … 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 proper830 need it (for example, in conjunction with ``ngettext`` to produce proper 831 831 pluralizations). 832 832 833 833 Creating JavaScript translation catalogs
