增加多语言支持

sh_branch
liangliangyy 2 years ago
parent 0221ee317a
commit 2ee27969cd

@ -1,8 +1,6 @@
bin/data/
# virtualenv
venv/
migrations/
!migrations/__init__.py
collectedstatic/
djangoblog/whoosh_index/
uploads/

@ -3,7 +3,7 @@ ENV PYTHONUNBUFFERED 1
WORKDIR /code/djangoblog/
RUN apt-get update && \
apt-get install default-libmysqlclient-dev gettext -y && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
rm -rf /var/lib/apt/lists/*
ADD requirements.txt requirements.txt
RUN pip install --upgrade pip && \
pip install --no-cache-dir -r requirements.txt && \

@ -1,28 +1,25 @@
#!/usr/bin/env bash
NAME="djangoblog" # Name of the application
DJANGODIR=/code/djangoblog # Django project directory
USER=root # the user to run as
GROUP=root # the group to run as
NUM_WORKERS=1 # how many worker processes should Gunicorn spawn
#DJANGO_SETTINGS_MODULE=djangoblog.settings # which settings file should Django use
DJANGO_WSGI_MODULE=djangoblog.wsgi # WSGI module name
NAME="djangoblog"
DJANGODIR=/code/djangoblog
USER=root
GROUP=root
NUM_WORKERS=1
DJANGO_WSGI_MODULE=djangoblog.wsgi
echo "Starting $NAME as `whoami`"
# Activate the virtual environment
cd $DJANGODIR
export PYTHONPATH=$DJANGODIR:$PYTHONPATH
#pip install -Ur requirements.txt -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com && \
# pip install gunicorn -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
python manage.py makemigrations && \
python manage.py migrate && \
python manage.py collectstatic --noinput && \
python manage.py compress --force && \
python manage.py build_index
# Start your Django Unicorn
# Programs meant to be run under supervisor should not daemonize themselves (do not use --daemon)
python manage.py build_index && \
python manage.py compilemessages
exec gunicorn ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $NUM_WORKERS \

@ -30,42 +30,51 @@ $(document).ready(function () {
});
/** 侧边栏回到顶部 */
var rocket = $('#rocket');
$(window).on('scroll', debounce(slideTopSet, 300));
function debounce(func, wait) {
var timeout;
return function() {
clearTimeout(timeout);
timeout = setTimeout(func, wait);
};
var timeout;
return function () {
clearTimeout(timeout);
timeout = setTimeout(func, wait);
};
}
function slideTopSet() {
var top = $(document).scrollTop();
var top = $(document).scrollTop();
if (top > 200) {
rocket.addClass('show');
} else {
rocket.removeClass('show');
}
if (top > 200) {
rocket.addClass('show');
} else {
rocket.removeClass('show');
}
}
$(document).on('click', '#rocket', function(event) {
rocket.addClass('move');
$('body, html').animate({
scrollTop: 0
}, 800);
$(document).on('click', '#rocket', function (event) {
rocket.addClass('move');
$('body, html').animate({
scrollTop: 0
}, 800);
});
$(document).on('animationEnd', function() {
setTimeout(function() {
rocket.removeClass('move');
}, 400);
$(document).on('animationEnd', function () {
setTimeout(function () {
rocket.removeClass('move');
}, 400);
});
$(document).on('webkitAnimationEnd', function() {
setTimeout(function() {
rocket.removeClass('move');
}, 400);
$(document).on('webkitAnimationEnd', function () {
setTimeout(function () {
rocket.removeClass('move');
}, 400);
});
// $(document).ready(function () {
// var form = $('#i18n-form');
// var selector = $('.i18n-select');
// selector.on('change', function () {
// form.submit();
// });
// });

@ -567,7 +567,7 @@ msgstr "发布于"
#: .\templates\blog\tags\article_meta_info.html:14
msgid "and tagged"
msgstr "标签"
msgstr "并标记为"
#: .\templates\blog\tags\article_meta_info.html:25
msgid "by "

@ -568,7 +568,7 @@ msgstr "發布於"
#: .\templates\blog\tags\article_meta_info.html:14
msgid "and tagged"
msgstr "標簽"
msgstr "並標記為"
#: .\templates\blog\tags\article_meta_info.html:25
msgid "by "

@ -1,4 +1,4 @@
coverage==7.3.0
coverage==7.3.1
bleach==6.0.0
Django==4.2.5
django-compressor==4.4
@ -8,7 +8,7 @@ django-mdeditor==0.1.20
django-uuslug==2.0.0
elasticsearch==7.16.1
elasticsearch-dsl==7.4.0
gevent==23.9.0.post1
gevent==23.9.1
jieba==0.42.1
jsonpickle==3.0.2
Markdown==3.4.4
@ -17,7 +17,7 @@ Pillow==10.0.0
Pygments==2.16.1
python-logstash==0.4.8
python-slugify==8.0.1
pytz==2023.3
pytz==2023.3.post1
requests==2.31.0
WeRoBot==1.13.1
Whoosh==2.7.4

@ -61,20 +61,22 @@
{% load i18n %}
<form action="{% url 'set_language' %}" method="post">{% csrf_token %}
<input name="next" type="hidden" value="{{ redirect_to }}">
<select name="language">
{% get_current_language as LANGUAGE_CODE %}
{% get_available_languages as LANGUAGES %}
{% get_language_info_list for LANGUAGES as languages %}
{% for language in languages %}
<option value="{{ language.code }}"{% if language.code == LANGUAGE_CODE %} selected{% endif %}>
{{ language.name_local }} ({{ language.code }})
</option>
{% endfor %}
</select>
<input type="submit" value="Go">
</form>
{# <div class="i18n-selector">#}
{# <form action="{% url 'set_language' %}" method="post" id="i18n-form">{% csrf_token %}#}
{# <input name="next" type="hidden" value="{{ redirect_to }}">#}
{# <select name="language" class="i18n-select" >#}
{# {% get_current_language as LANGUAGE_CODE %}#}
{# {% get_available_languages as LANGUAGES %}#}
{# {% get_language_info_list for LANGUAGES as languages %}#}
{# {% for language in languages %}#}
{# <option value="{{ language.code }}"{% if language.code == LANGUAGE_CODE %} selected{% endif %}>#}
{# {{ language.name_local }} ({{ language.code }})#}
{# </option>#}
{# {% endfor %}#}
{# </select>#}
{# <input type="submit" value="Go">#}
{# </form>#}
{# </div>#}
{% include 'share_layout/nav.html' %}

Loading…
Cancel
Save