我想获得的起始位置2nd发生ABC像这样的东西:
var string = "XYZ 123 ABC 456 ABC 789 ABC";
getPosition(string, 'ABC', 2) // --> 16
Run Code Online (Sandbox Code Playgroud)
你会怎么做?
我在 settings.py 中有可用的语言
LANGUAGE_CODE = 'en'
LANGUAGES = (
('fr', _('French')),
('en', _('English')),
)
Run Code Online (Sandbox Code Playgroud)
当我在模板中循环时,我认为 django 通过 {{ lang.1 }} 为我提供翻译名称是预期的行为。但我不想翻译语言名称,所以我更改了我的settings.py,如下所示:
LANGUAGES = (
('fr', 'Francais'),
('en', 'English'),
)
Run Code Online (Sandbox Code Playgroud)
我仍然得到翻译后的语言名称。你有好主意吗?{% get_available_languages as languages %} 模板标签是否会自动翻译列表项?如果是这样,我如何在可用语言循环时使用未翻译的语言名称?
- - 编辑 - -
我检查了django的get_available_languages模板标签的代码。我想这里翻译的是:
class GetAvailableLanguagesNode(Node):
def __init__(self, variable):
self.variable = variable
def render(self, context):
context[self.variable] = [(k, translation.ugettext(v)) for k, v in settings.LANGUAGES]
return ''
Run Code Online (Sandbox Code Playgroud)
也许我必须编写自己的模板标签......
我正在使用 Django 并开发一个支持多种语言的 i18n 站点。我想制作一个停留在 base.html 中的模态,以便用户可以随时随地切换语言。
我设法做这样的事情。
<div class="modal-body">
{% get_available_languages as languages %}
{% for lang_code, lang_name in languages %}
{% language lang_code %}
<a href="{% url 'home' %}" class="btn lang-btn {% ifequal request.LANGUAGE_CODE lang_code %}selected{% endifequal %}">{{lang_code|lang_name}}</a>
{% endlanguage %}
{% endfor %}
</div>
Run Code Online (Sandbox Code Playgroud)
果然像网址:/ja/,/en/,/fr/等。但这种做法的链接只有主网页。
使用{{request.path}}或 时{{request.get_full_path}},网址如下:
<a href="{{ request.path }}" class="btn lang-btn {% ifequal request.LANGUAGE_CODE lang_code %}selected{% endifequal %}">{{lang_code|lang_name}}</a>
Run Code Online (Sandbox Code Playgroud)
它不包括 i18n url 模式..
有没有办法用 request.path 引导当前的 …
python django django-templates django-template-filters django-i18n