我有一个Django网站,我正在努力使其国际化。图像文件全部用两个字母的语言代码编码。因此,当用户切换语言时,将使用模板中的语言代码来更新对图像文件的引用,如下所示:
<img src="{% static 'website/images/contact_us_{{ LANGUAGE_CODE }}.png' %}">
问题是,我还必须为静态内容的路径添加一个标签。有什么优雅的方法可以解决这个问题?
根据@MarAja的建议,我在这里遵循了他/她的问题和解决方案,与我的几乎相同。我要发布我的工作,因此无论登陆此页面的人都有解决方案。在研究期间,我没有偶然发现@MarAja的帖子。
代码是精确的副本,选择不使用add
标签是因为根据Django文档,它试图将参数强制转换为int,即不打算用于字符串。
完整代码:
# Custom Template tag file named "custom_app_tags.py"
from django import template
register = template.Library()
@register.filter
def addstr(s1, s2):
return str(s1) + str(s2)
最后,用法:
{% load staticfiles %}
{% load i18n %}
{% get_current_language as LANGUAGE_CODE %}
{% load custom_app_tags %}
<img src="{% static 'website/images/contact_us_'|addstr:LANGUAGE_CODE|addstr:'.png' %}">
请注意,我包括了所有内容,以便以后再有人到来时,都可以对发生的事情有完整的了解。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句