##// END OF EJS Templates
Added proper russian translation of the template code. The form validation messages are not yet translated. This refs #36
neko259 -
r83:597e046e default
parent child Browse files
Show More
1 NO CONTENT: new file 100644, binary diff hidden
@@ -1,72 +1,141 b''
1 1 # SOME DESCRIPTIVE TITLE.
2 2 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3 3 # This file is distributed under the same license as the PACKAGE package.
4 4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 5 #
6 6 msgid ""
7 7 msgstr ""
8 8 "Project-Id-Version: PACKAGE VERSION\n"
9 9 "Report-Msgid-Bugs-To: \n"
10 "POT-Creation-Date: 2013-04-13 22:07+0300\n"
10 "POT-Creation-Date: 2013-06-09 17:35+0300\n"
11 11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12 12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 13 "Language-Team: LANGUAGE <LL@li.org>\n"
14 14 "Language: ru\n"
15 15 "MIME-Version: 1.0\n"
16 16 "Content-Type: text/plain; charset=UTF-8\n"
17 17 "Content-Transfer-Encoding: 8bit\n"
18 18 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
19 19 "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
20 20
21 #: templates/base.html:22
21 #: templates/base.html:27
22 22 msgid "All threads"
23 msgstr "ВсС Π½ΠΈΠΊΠΈ"
23 msgstr "ВсС Ρ‚Π΅ΠΌΡ‹"
24
25 #: templates/base.html:33
26 msgid "Settings"
27 msgstr "Настройки"
28
29 #: templates/base.html:40
30 msgid "Up"
31 msgstr "Π’Π²Π΅Ρ€Ρ…"
24 32
25 #: templates/posting_general.html:26
26 msgid "View"
27 msgstr "ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€"
33 #: templates/posting_general.html:18
34 msgid "Tag: "
35 msgstr "Π’Π΅Π³: "
28 36
29 #: templates/posting_general.html:31
37 #: templates/posting_general.html:35 templates/posting_general.html.py:79
38 #: templates/thread.html:27
39 #, fuzzy
40 msgid "Post image"
41 msgstr "Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ сообщСния"
42
43 #: templates/posting_general.html:46
44 msgid "Reply"
45 msgstr "ΠžΡ‚Π²Π΅Ρ‚"
46
47 #: templates/posting_general.html:53 templates/thread.html:107
30 48 msgid "replies"
31 49 msgstr "ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²"
32 50
33 #: templates/posting_general.html:32
51 #: templates/posting_general.html:54 templates/thread.html:108
34 52 msgid "images"
35 53 msgstr "ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ"
36 54
37 #: templates/posting_general.html:33
38 msgid "gets"
39 msgstr "Π³Π΅Ρ‚Ρ‹"
40
41 #: templates/posting_general.html:35 templates/posting_general.html.py:67
42 #: templates/thread.html:31
55 #: templates/posting_general.html:56 templates/posting_general.html.py:127
56 #: templates/thread.html:49
43 57 msgid "Tags"
44 58 msgstr "Π’Π΅Π³ΠΈ"
45 59
46 #: templates/posting_general.html:52
60 #: templates/posting_general.html:109
47 61 msgid "Create new thread"
48 msgstr "Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π½ΠΈΡ‚ΡŒ"
62 msgstr "Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ"
49 63
50 #: templates/posting_general.html:55 templates/thread.html:50
64 #: templates/posting_general.html:112 templates/thread.html:71
51 65 msgid "Title"
52 66 msgstr "Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ"
53 67
54 #: templates/posting_general.html:59 templates/thread.html:54
68 #: templates/posting_general.html:117 templates/thread.html:76
55 69 msgid "Text"
56 70 msgstr "ВСкст"
57 71
58 #: templates/posting_general.html:63 templates/thread.html:58
72 #: templates/posting_general.html:122 templates/thread.html:81
59 73 msgid "Image"
60 msgstr "ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°"
74 msgstr "Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅"
61 75
62 #: templates/posting_general.html:70 templates/thread.html:61
76 #: templates/posting_general.html:136 templates/thread.html:91
63 77 msgid "Post"
64 78 msgstr "ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ"
65 79
66 #: templates/posting_general.html:72
67 msgid "Tags must be delimited by spaces. Text or image is required."
68 msgstr "Π’Π΅Π³ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ. ВСкст ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹."
80 #: templates/posting_general.html:152
81 #, fuzzy
82 msgid "Pages:"
83 msgstr "Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Ρ‹: "
84
85 #: templates/settings.html:13
86 msgid "Theme"
87 msgstr "Π’Π΅ΠΌΠ°"
88
89 #: templates/settings.html:29
90 msgid "Save"
91 msgstr "Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ"
92
93 #: templates/tags.html:7
94 msgid "tags"
95 msgstr "Ρ‚Π΅Π³ΠΎΠ²"
96
97 #: templates/thread.html:39
98 msgid "Get!"
99 msgstr "Π“Π΅Ρ‚!"
100
101 #: templates/thread.html:68
102 msgid "Reply to thread"
103 msgstr "ΠžΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π² Ρ‚Π΅ΠΌΡƒ"
104
105 #: templates/thread.html:93
106 msgid "Basic markdown syntax."
107 msgstr "Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис markdown."
69 108
70 #: templates/thread.html:47
71 msgid "Reply to the thread"
72 msgstr "ΠžΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π² Π½ΠΈΡ‚ΡŒ"
109 #: templates/thread.html:94
110 msgid "Example: "
111 msgstr "ΠŸΡ€ΠΈΠΌΠ΅Ρ€: "
112
113 #: templates/thread.html:94
114 msgid "italic"
115 msgstr "курсив"
116
117 #: templates/thread.html:95
118 msgid "bold"
119 msgstr "ΠΏΠΎΠ»ΡƒΠΆΠΈΡ€Π½Ρ‹ΠΉ"
120
121 #: templates/thread.html:96
122 msgid "Quotes can be inserted with"
123 msgstr "Π¦ΠΈΡ‚Π°Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ вставлСны ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ"
124
125 #: templates/thread.html:97
126 msgid "Links to answers can be inserted with"
127 msgstr "Бсылки Π½Π° ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ вставлСны с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ"
128
129 #: templates/thread.html:109
130 msgid "Last update: "
131 msgstr "ПослСднСС обновлСниС: "
132
133 #~ msgid "View"
134 #~ msgstr "ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€"
135
136 #~ msgid "gets"
137 #~ msgstr "Π³Π΅Ρ‚ΠΎΠ²"
138
139 #~ msgid "Tags must be delimited by spaces. Text or image is required."
140 #~ msgstr ""
141 #~ "Π’Π΅Π³ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ. ВСкст ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹."
1 NO CONTENT: file renamed from templates/base.html to boards/templates/base.html
1 NO CONTENT: file renamed from templates/login.html to boards/templates/login.html
1 NO CONTENT: file renamed from templates/posting_general.html to boards/templates/posting_general.html
1 NO CONTENT: file renamed from templates/settings.html to boards/templates/settings.html
1 NO CONTENT: file renamed from templates/tags.html to boards/templates/tags.html
@@ -1,110 +1,112 b''
1 1 {% extends "base.html" %}
2 2
3 3 {% load i18n %}
4 4 {% load markup %}
5 5
6 6 {% block head %}
7 7 <title>Neboard - {{ posts.0.title }}</title>
8 8 {% endblock %}
9 9
10 10 {% block content %}
11 11 <script src="{{ STATIC_URL }}js/thread.js"></script>
12 12
13 13 {% if posts %}
14 14 <div id="posts">
15 15 {% for post in posts %}
16 16 {% if posts.0.can_bump %}
17 17 <div class="post" id="{{ post.id }}">
18 18 {% else %}
19 19 <div class="post dead_post" id="{{ post.id }}">
20 20 {% endif %}
21 21 {% if post.image %}
22 22 <div class="image">
23 23 <a
24 24 class="fancy"
25 25 href="{{ post.image.url }}"><img
26 26 src="{{ post.image.url_200x150 }}"
27 27 alt="{% trans 'Post image' %}" />
28 28 </a>
29 29 </div>
30 30 {% endif %}
31 31 <div class="message">
32 32 <div class="post-info">
33 33 <span class="title">{{ post.title }}</span>
34 34 <a class="post_id" href="#{{ post.id }}">
35 35 (#{{ post.id }})</a>
36 36 [{{ post.pub_time }}]
37 37 {% if post.is_get %}
38 38 <span class="get">
39 39 {% trans "Get!" %}
40 40 </span>
41 41 {% endif %}
42 42 </div>
43 43 {% autoescape off %}
44 44 {{ post.text.rendered }}
45 45 {% endautoescape %}
46 46 </div>
47 47 {% if post.tags.all %}
48 48 <div class="metadata">
49 49 <span class="tags">{% trans 'Tags' %}:
50 50 {% for tag in post.tags.all %}
51 51 <a class="tag" href="{% url 'tag' tag.name %}">
52 52 {{ tag.name }}</a>
53 53 {% endfor %}
54 54 </span>
55 55 </div>
56 56 {% endif %}
57 57 </div>
58 58 {% endfor %}
59 59 </div>
60 60 {% else %}
61 61 No thread found.
62 62 <hr />
63 63 {% endif %}
64 64
65 65 <form id="form" enctype="multipart/form-data" method="post"
66 66 >{% csrf_token %}
67 67 <div class="post-form-w">
68 68 <div class="form-title">{% trans "Reply to thread" %}</div>
69 69 <div class="post-form">
70 70 <div class="form-row">
71 71 <div class="form-label">{% trans 'Title' %}</div>
72 72 <div class="form-input">{{ form.title }}</div>
73 73 <div class="form-errors">{{ form.title.errors }}</div>
74 74 </div>
75 75 <div class="form-row">
76 76 <div class="form-label">{% trans 'Text' %}</div>
77 77 <div class="form-input">{{ form.text }}</div>
78 78 <div class="form-errors">{{ form.text.errors }}</div>
79 79 </div>
80 80 <div class="form-row">
81 81 <div class="form-label">{% trans 'Image' %}</div>
82 82 <div class="form-input">{{ form.image }}</div>
83 83 <div class="form-errors">{{ form.image.errors }}</div>
84 84 </div>
85 85 <div class="form-row">
86 86 {{ form.captcha }}
87 87 </div>
88 88 </div>
89 89
90 90 <div class="form-submit"><input type="submit"
91 91 value="{% trans "Post" %}"/></div>
92 <div>Use <a
93 href="http://daringfireball.net/projects/markdown/basics">
94 markdown</a> syntax for posting.</div>
95 <div>Example: *<i>italic</i>*, **<b>bold</b>**</div>
96 <div>Insert quotes with "&gt;"</div>
92 <div><a href="http://daringfireball.net/projects/markdown/basics">
93 {% trans 'Basic markdown syntax.' %}</a></div>
94 <div>{% trans 'Example: ' %}*<i>{% trans 'italic' %}</i>*,
95 **<b>{% trans 'bold' %}</b>**</div>
96 <div>{% trans 'Quotes can be inserted with' %} "&gt;"</div>
97 <div>{% trans 'Links to answers can be inserted with' %} "&gt;&gt;
98 123"</div>
97 99 </div>
98 100 </form>
99 101
100 102 {% endblock %}
101 103
102 104 {% block metapanel %}
103 105
104 106 <span class="metapanel">
105 107 {{ posts.0.get_reply_count }} {% trans 'replies' %},
106 108 {{ posts.0.get_images_count }} {% trans 'images' %}.
107 109 {% trans 'Last update: ' %}{{ posts.0.last_edit_time }}
108 110 </span>
109 111
110 112 {% endblock %} No newline at end of file
@@ -1,195 +1,195 b''
1 1 # Django settings for neboard project.
2 2 import os
3 3 import markdown
4 4 from boards.mdx_neboard import markdown_extended
5 5
6 6 DEBUG = True
7 7 TEMPLATE_DEBUG = DEBUG
8 8
9 9 ADMINS = (
10 10 # ('Your Name', 'your_email@example.com'),
11 11 ('admin', 'admin@example.com')
12 12 )
13 13
14 14 MANAGERS = ADMINS
15 15
16 16 DATABASES = {
17 17 'default': {
18 18 'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
19 19 'NAME': 'database.db', # Or path to database file if using sqlite3.
20 20 'USER': '', # Not used with sqlite3.
21 21 'PASSWORD': '', # Not used with sqlite3.
22 22 'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
23 23 'PORT': '', # Set to empty string for default. Not used with sqlite3.
24 24 }
25 25 }
26 26
27 27 # Local time zone for this installation. Choices can be found here:
28 28 # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
29 29 # although not all choices may be available on all operating systems.
30 30 # In a Windows environment this must be set to your system time zone.
31 31 TIME_ZONE = 'Europe/Kiev'
32 32
33 33 # Language code for this installation. All choices can be found here:
34 34 # http://www.i18nguy.com/unicode/language-identifiers.html
35 LANGUAGE_CODE = 'ru'
35 LANGUAGE_CODE = 'ru-RU'
36 36
37 37 SITE_ID = 1
38 38
39 39 # If you set this to False, Django will make some optimizations so as not
40 40 # to load the internationalization machinery.
41 41 USE_I18N = True
42 42
43 43 # If you set this to False, Django will not format dates, numbers and
44 44 # calendars according to the current locale.
45 45 USE_L10N = True
46 46
47 47 # If you set this to False, Django will not use timezone-aware datetimes.
48 48 USE_TZ = True
49 49
50 50 # Absolute filesystem path to the directory that will hold user-uploaded files.
51 51 # Example: "/home/media/media.lawrence.com/media/"
52 52 MEDIA_ROOT = './media/'
53 53
54 54 # URL that handles the media served from MEDIA_ROOT. Make sure to use a
55 55 # trailing slash.
56 56 # Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
57 57 MEDIA_URL = '/media/'
58 58
59 59 # Absolute path to the directory static files should be collected to.
60 60 # Don't put anything in this directory yourself; store your static files
61 61 # in apps' "static/" subdirectories and in STATICFILES_DIRS.
62 62 # Example: "/home/media/media.lawrence.com/static/"
63 63 STATIC_ROOT = ''
64 64
65 65 # URL prefix for static files.
66 66 # Example: "http://media.lawrence.com/static/"
67 67 STATIC_URL = '/static/'
68 68
69 69 # Additional locations of static files
70 70 # It is really a hack, put real paths, not related
71 71 STATICFILES_DIRS = (
72 72 os.path.dirname(__file__) + '/boards/static',
73 73
74 74 # '/d/work/python/django/neboard/neboard/boards/static',
75 75 # Put strings here, like "/home/html/static" or "C:/www/django/static".
76 76 # Always use forward slashes, even on Windows.
77 77 # Don't forget to use absolute paths, not relative paths.
78 78 )
79 79
80 80 # List of finder classes that know how to find static files in
81 81 # various locations.
82 82 STATICFILES_FINDERS = (
83 83 'django.contrib.staticfiles.finders.FileSystemFinder',
84 84 'django.contrib.staticfiles.finders.AppDirectoriesFinder',
85 85 # 'django.contrib.staticfiles.finders.DefaultStorageFinder',
86 86 )
87 87
88 88 # Make this unique, and don't share it with anybody.
89 89 SECRET_KEY = '@1rc$o(7=tt#kd+4s$u6wchm**z^)4x90)7f6z(i&amp;55@o11*8o'
90 90
91 91 # List of callables that know how to import templates from various sources.
92 92 TEMPLATE_LOADERS = (
93 93 'django.template.loaders.filesystem.Loader',
94 94 'django.template.loaders.app_directories.Loader',
95 95 # 'django.template.loaders.eggs.Loader',
96 96 )
97 97
98 98 TEMPLATE_CONTEXT_PROCESSORS = (
99 99 'django.core.context_processors.media',
100 100 'django.core.context_processors.static',
101 101 'django.core.context_processors.request',
102 102 'django.contrib.auth.context_processors.auth',
103 103 )
104 104
105 105 MIDDLEWARE_CLASSES = (
106 106 'django.middleware.common.CommonMiddleware',
107 107 'django.contrib.sessions.middleware.SessionMiddleware',
108 108 # 'django.middleware.csrf.CsrfViewMiddleware',
109 109 'django.contrib.auth.middleware.AuthenticationMiddleware',
110 110 'django.contrib.messages.middleware.MessageMiddleware',
111 111 # Uncomment the next line for simple clickjacking protection:
112 112 # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
113 113 )
114 114
115 115 ROOT_URLCONF = 'neboard.urls'
116 116
117 117 # Python dotted path to the WSGI application used by Django's runserver.
118 118 WSGI_APPLICATION = 'neboard.wsgi.application'
119 119
120 120 TEMPLATE_DIRS = (
121 121 # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
122 122 # Always use forward slashes, even on Windows.
123 123 # Don't forget to use absolute paths, not relative paths.
124 124 'templates',
125 125 )
126 126
127 127 INSTALLED_APPS = (
128 128 'django.contrib.auth',
129 129 'django.contrib.contenttypes',
130 130 'django.contrib.sessions',
131 131 'django.contrib.sites',
132 132 'django.contrib.messages',
133 133 'django.contrib.staticfiles',
134 134 # Uncomment the next line to enable the admin:
135 135 'django.contrib.admin',
136 136 # Uncomment the next line to enable admin documentation:
137 137 # 'django.contrib.admindocs',
138 138 'django.contrib.markup',
139 139 'django_cleanup',
140 140 'boards',
141 141 'captcha',
142 142 )
143 143
144 144 # TODO: NEED DESIGN FIXES
145 145 CAPTCHA_OUTPUT_FORMAT = (u' %(hidden_field)s '
146 146 u'<div class="form-label">%(image)s</div>'
147 147 u'<div class="form-text">%(text_field)s</div>')
148 148
149 149 # A sample logging configuration. The only tangible logging
150 150 # performed by this configuration is to send an email to
151 151 # the site admins on every HTTP 500 error when DEBUG=False.
152 152 # See http://docs.djangoproject.com/en/dev/topics/logging for
153 153 # more details on how to customize your logging configuration.
154 154 LOGGING = {
155 155 'version': 1,
156 156 'disable_existing_loggers': False,
157 157 'filters': {
158 158 'require_debug_false': {
159 159 '()': 'django.utils.log.RequireDebugFalse'
160 160 }
161 161 },
162 162 'handlers': {
163 163 'mail_admins': {
164 164 'level': 'ERROR',
165 165 'filters': ['require_debug_false'],
166 166 'class': 'django.utils.log.AdminEmailHandler'
167 167 }
168 168 },
169 169 'loggers': {
170 170 'django.request': {
171 171 'handlers': ['mail_admins'],
172 172 'level': 'ERROR',
173 173 'propagate': True,
174 174 },
175 175 }
176 176 }
177 177
178 178 MARKUP_FIELD_TYPES = (
179 179 ('markdown', markdown_extended),
180 180 )
181 181 # Custom imageboard settings
182 182 MAX_POSTS_PER_THREAD = 10 # Thread bumplimit
183 183 MAX_THREAD_COUNT = 500 # Old threads will be deleted to preserve this count
184 184 THREADS_PER_PAGE = 10
185 185 SITE_NAME = 'Neboard'
186 186
187 187 THEMES = [
188 188 ('md', 'Mystic Dark'),
189 189 ('sw', 'Snow White') ]
190 190 DEFAULT_THEME = 'md'
191 191
192 192 POPULAR_TAGS = 10
193 193 LAST_REPLIES_COUNT = 3
194 194
195 195 ENABLE_CAPTCHA = True No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now