From ea27bf9e0fde68c98fa3dc31067ced94e2ab7d08 Mon Sep 17 00:00:00 2001
From: Martin Mahner
Date: Tue, 28 Oct 2014 11:22:43 +0100
Subject: [PATCH] Language support!
---
dpaste/locale/de/LC_MESSAGES/django.mo | Bin 3559 -> 3559 bytes
dpaste/locale/de/LC_MESSAGES/django.po | 4 +-
dpaste/locale/en/LC_MESSAGES/django.mo | Bin 0 -> 378 bytes
dpaste/locale/es/LC_MESSAGES/django.mo | Bin 0 -> 3600 bytes
dpaste/locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 3549 bytes
dpaste/settings/__init__.py | 46 +++++++++++++---------
dpaste/templates/dpaste/about.html | 15 +++++++
dpaste/urls/__init__.py | 2 +
8 files changed, 47 insertions(+), 20 deletions(-)
create mode 100644 dpaste/locale/en/LC_MESSAGES/django.mo
create mode 100644 dpaste/locale/es/LC_MESSAGES/django.mo
create mode 100644 dpaste/locale/pt_BR/LC_MESSAGES/django.mo
diff --git a/dpaste/locale/de/LC_MESSAGES/django.mo b/dpaste/locale/de/LC_MESSAGES/django.mo
index 1a64a30824e4a75fb96bf46d750308132f8f3dbc..1f283bfaec42efe591bbfe9b1b5082cffb74ba8e 100644
GIT binary patch
delta 50
zcmaDZ{akuODhIoTf}x?6k-_F1j&sZs#hH023W+&6sR}8nnR%%S!Fibl1*s*)n}c|!
GG6DdxA`v|R
delta 50
zcmaDZ{akuODhIo%f}xR>f%)bfj&sZsi8(o`3Mr|Xd8rD)d6@+TsU^h<#hH02n}c|!
GG6DdyA`w6U
diff --git a/dpaste/locale/de/LC_MESSAGES/django.po b/dpaste/locale/de/LC_MESSAGES/django.po
index 7dda8b3..d6ecd36 100644
--- a/dpaste/locale/de/LC_MESSAGES/django.po
+++ b/dpaste/locale/de/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: dpaste\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-10-25 10:06+0000\n"
-"PO-Revision-Date: 2014-10-25 12:07+0100\n"
+"PO-Revision-Date: 2014-10-28 11:20+0100\n"
"Last-Translator: Martin Mahner \n"
"Language-Team: DE \n"
"Language: de\n"
@@ -219,7 +219,7 @@ msgid ""
"No snippets saved. Either all your snippets are expired or your cookie has "
"changed."
msgstr ""
-"Keine Snippets gespeichert. Entweder alle deine Snippets sind erloschen oder "
+"Keine Snippets gespeichert. Entweder sind alle deine Snippets erloschen oder "
"dein Cookie hat sich geƤndert."
#, fuzzy
diff --git a/dpaste/locale/en/LC_MESSAGES/django.mo b/dpaste/locale/en/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000000000000000000000000000000000..4f240ad8a32d7be24cda7d5df9a0e67ea40495e1
GIT binary patch
literal 378
zcmYL^u};G<6h(_*%E-*%fvvofR3HUYP)*~O2s^3Lv=VHlH6f_jk>eux5Ppwu;YC99
zN=F`io_*iX@zHk=bAX&6r^q34hIEOMF9A(v!Kw8bsl6})f>3mRV|d3l3<>fFmYOW9D+o7P028fE+7hFcuAs=hH*c{pa_Nj
zsJqAiyhqLokU1ob+~-uL{ii(Rfl#f7(kat!mA8(P=~4)iG0Dk@OO}c;OOk>w7PqLH
zYNsjFCn`JqLc<*(!UbF*l)^<~yijw%b_CfC#P2^@f
literal 0
HcmV?d00001
diff --git a/dpaste/locale/es/LC_MESSAGES/django.mo b/dpaste/locale/es/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000000000000000000000000000000000..ccbacb4f0beec12b94cfa76d809bd42d89566870
GIT binary patch
literal 3600
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
WvI-wj?9+#i;9F9LdjDO>xX%FX^0&+Y
literal 0
HcmV?d00001
diff --git a/dpaste/settings/__init__.py b/dpaste/settings/__init__.py
index f02423a..3787708 100644
--- a/dpaste/settings/__init__.py
+++ b/dpaste/settings/__init__.py
@@ -1,6 +1,25 @@
# Import global settings to make it easier to extend settings.
from django.conf.global_settings import *
+
+#==============================================================================
+# Calculation of directories relative to the module location
+#==============================================================================
+import os
+import sys
+import dpaste
+
+PROJECT_DIR, PROJECT_MODULE_NAME = os.path.split(
+ os.path.dirname(os.path.realpath(dpaste.__file__))
+)
+
+# Set the variable root to $VIRTUALENV/var.
+PYTHON_BIN = os.path.dirname(sys.executable)
+
+VAR_ROOT = os.path.join(os.path.dirname(PYTHON_BIN), 'var')
+if not os.path.exists(VAR_ROOT):
+ os.mkdir(VAR_ROOT)
+
#==============================================================================
# Generic Django project settings
#==============================================================================
@@ -30,32 +49,21 @@ SECRET_KEY = 'CHANGE_ME'
# I18N
#==============================================================================
-USE_I18N = False
+USE_I18N = True
USE_L10N = False
LANGUAGE_CODE = 'en'
LANGUAGES = (
('en', 'English'),
+ ('de', 'German'),
+ ('es', 'Spanish'),
+ ('pt-br', 'Portugese (Brasil)'),
)
-#==============================================================================
-# Calculation of directories relative to the module location
-#==============================================================================
-import os
-import sys
-import dpaste
-
-PROJECT_DIR, PROJECT_MODULE_NAME = os.path.split(
- os.path.dirname(os.path.realpath(dpaste.__file__))
+LOCALE_PATHS = (
+ os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'locale')),
)
-# Set the variable root to $VIRTUALENV/var.
-PYTHON_BIN = os.path.dirname(sys.executable)
-
-VAR_ROOT = os.path.join(os.path.dirname(PYTHON_BIN), 'var')
-if not os.path.exists(VAR_ROOT):
- os.mkdir(VAR_ROOT)
-
#==============================================================================
# Static files
#==============================================================================
@@ -84,13 +92,15 @@ LOGIN_REDIRECT_URL = '/'
MIDDLEWARE_CLASSES = (
'django.middleware.csrf.CsrfViewMiddleware',
- 'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
+ 'django.middleware.common.CommonMiddleware',
+ 'django.middleware.locale.LocaleMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
TEMPLATE_CONTEXT_PROCESSORS += (
'django.core.context_processors.request',
+ 'django.core.context_processors.i18n',
)
INSTALLED_APPS = (
diff --git a/dpaste/templates/dpaste/about.html b/dpaste/templates/dpaste/about.html
index afb2b37..b245d7b 100644
--- a/dpaste/templates/dpaste/about.html
+++ b/dpaste/templates/dpaste/about.html
@@ -17,6 +17,21 @@
github.com/bartTC/dpaste
+
+
API
dpaste provides a simple API documented in detail
diff --git a/dpaste/urls/__init__.py b/dpaste/urls/__init__.py
index 0a324a4..4ae40ff 100644
--- a/dpaste/urls/__init__.py
+++ b/dpaste/urls/__init__.py
@@ -4,6 +4,8 @@ urlpatterns = patterns(
'',
url(r'^', include('dpaste.urls.dpaste_api')),
url(r'^', include('dpaste.urls.dpaste')),
+
+ (r'^i18n/', include('django.conf.urls.i18n')),
)
# Custom error handlers which load `dpaste/.html` instead of `.html`