I tried to follow the guide but it's not clear enough.
I added this to my urls.py
urlpatterns = patterns('',
(r'^jsi18n/(?P<packages>\S+?)/$', 'django.views.i18n.javascript_catalog'),
)
Generated the lang files using this command:
django-admin.py makemessages -d djangojs -l fr
root_folder/locale/fr/LC_MESSAGES
now contain django.po
& djangojs.po
and alert(gettext('this is to be translated'));
in one of my js files was picked up in djangojs.po
.
I ran django-admin.py compilemessages
and restarted the server.
Added this to my base.html:
<script type="text/javascript" src="{% url 'django.views.i18n.javascript_catalog' 'locale' %}" >< /script >
Note that I added 'locale' to avoid the exception of not passing the package name when dynamically loading translations.
Visited /jsi18n/locale/
from my browser and all I get is Django translation functions:
/* gettext library */
var catalog = new Array();
function pluralidx(count) { return (count == 1) ? 0 : 1; }
function gettext(msgid) {
....
Why 'this is to be translated' is not showing and on which basis it will show a specific language without passing it with the URL?
I don't know exactly how to solve your problem, but I can tell you, how things work for me:
The locale
folder is inside my tickets
app.
urls.py
js_info_dict = {
'domain': 'djangojs',
'packages': ('tickets',),
}
urlpatterns = patterns('',
(r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),
...
base.html
<script type="text/javascript" src="{% url django.views.i18n.javascript_catalog %}"></script>
and to create message file:
python -m django-admin makemessages -d djangojs -l fr
python -m django-admin compilemessages
Hopefully you can pick something up from this.
For others with my particular case, js messages are generated and compiled OK but not rendered in templates or pages when you use i18n language urls.
This is because javascript catalog should be added to i18n urls patterns, not to normal patterns.
urlpatterns += patterns('', (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), )
=>
urlpatterns += i18n_patterns('', (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict), )
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With