mirror of
https://github.com/Hopiu/django-rosetta.git
synced 2026-03-16 21:30:24 +00:00
Merge commit '4146da3287f71ccec5a6713e7e75cb346e805bce' into reflang
There was a conflict with rosetta/views.py, but it was easily resolved.
This commit is contained in:
commit
7a200ece7c
15 changed files with 1340 additions and 235 deletions
6
CHANGES
6
CHANGES
|
|
@ -1,3 +1,9 @@
|
|||
Version 0.6.8
|
||||
-------------
|
||||
* Switched to a pluggable storage backend model to increase compatibility with Django 1.4. Cache and Session-based storages are provided.
|
||||
|
||||
Version 0.6.7
|
||||
-------------
|
||||
* Added a testproject to run tests
|
||||
* Updated french translation. Thanks, @BertrandBordage
|
||||
* Merged @sleepyjames' PR that fixes an error when pofile save path contains '.po' in the path
|
||||
|
|
|
|||
13
README.rst
13
README.rst
|
|
@ -60,6 +60,19 @@ Rosetta can be configured via the following parameters, to be defined in your pr
|
|||
* ``ROSETTA_EXCLUDED_APPLICATIONS``: Exclude applications defined in this list from being translated. Defaults to ``()``.
|
||||
* ``ROSETTA_REQUIRES_AUTH``: Require authentication for all Rosetta views. Defaults to ``True``.
|
||||
* ``ROSETTA_POFILE_WRAP_WIDTH``: Sets the line-length of the edited PO file. Set this to ``0`` to mimic ``makemessage``'s ``--no-wrap`` option. Defaults to ``78``.
|
||||
* ``ROSETTA_STORAGE_CLASS``: See the note below on Storages. Defaults to ``rosetta.storage.CacheRosettaStorage``
|
||||
|
||||
********
|
||||
Storages
|
||||
********
|
||||
|
||||
To prevent re-reading and parsing the PO file catalogs over and over again, Rosetta stores them in a volatile location. This can be either the HTTP session or the Django cache.
|
||||
|
||||
Django 1.4 has introduced a signed cookie session backend, which stores the whole content of the session in an encrypted cookie. Unfortunately this doesn't work with large PO files, as the limit of 4096 chars that can be stored in a cookie are easily exceeded.
|
||||
|
||||
In this case the Cache-based backend should be used (by setting ``ROSETTA_STORAGE_CLASS = 'rosetta.storage.CacheRosettaStorage'``). Please make sure that a proper CACHES backend is configured in your Django settings.
|
||||
|
||||
Alternatively you can switch back to using the Session based storage by setting ``ROSETTA_STORAGE_CLASS = 'rosetta.storage.SessionRosettaStorage`` in your settings. This is perfectly safe on Django 1.3. On Django 1.4 or higher make sure you have DON'T use the `signed_cookies <https://docs.djangoproject.com/en/dev/topics/http/sessions/#using-cookie-based-sessions>`_ ``SESSION_BACKEND`` with this Rosetta storage backend or funky things might happen.
|
||||
|
||||
********
|
||||
Security
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
VERSION = (0, 6, 7)
|
||||
VERSION = (0, 6, 8)
|
||||
|
||||
|
||||
def get_version(svn=False, limit=3):
|
||||
|
|
|
|||
|
|
@ -48,3 +48,6 @@ EXCLUDED_APPLICATIONS = getattr(settings, 'ROSETTA_EXCLUDED_APPLICATIONS', ())
|
|||
|
||||
# Line length of the updated PO file
|
||||
POFILE_WRAP_WIDTH = getattr(settings, 'ROSETTA_POFILE_WRAP_WIDTH', 78)
|
||||
|
||||
# Storage class to handle temporary data storage
|
||||
STORAGE_CLASS = getattr(settings, 'ROSETTA_STORAGE_CLASS', 'rosetta.storage.CacheRosettaStorage')
|
||||
|
|
|
|||
|
|
@ -1310,7 +1310,7 @@ class _POFileParser(object):
|
|||
if action():
|
||||
self.current_state = state
|
||||
except Exception:
|
||||
raise IOError('Syntax error in po file (line %s)' % linenum)
|
||||
raise IOError('Syntax error in po file: %s (line %s)' % (self.instance.fpath, linenum))
|
||||
|
||||
# state handlers
|
||||
|
||||
|
|
|
|||
86
rosetta/storage.py
Normal file
86
rosetta/storage.py
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
from django.core.cache import cache
|
||||
from django.utils import importlib
|
||||
import hashlib
|
||||
import time
|
||||
|
||||
|
||||
class BaseRosettaStorage(object):
|
||||
def __init__(self, request):
|
||||
self.request = request
|
||||
|
||||
def get(self, key, default=None):
|
||||
raise NotImplementedError
|
||||
|
||||
def set(self, key, val):
|
||||
raise NotImplementedError
|
||||
|
||||
def has(self, key):
|
||||
raise NotImplementedError
|
||||
|
||||
def delete(self, key):
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
class DummyRosettaStorage(BaseRosettaStorage):
|
||||
def get(self, key, default=None):
|
||||
return default
|
||||
|
||||
def set(self, key, val):
|
||||
pass
|
||||
|
||||
def has(self, key):
|
||||
return False
|
||||
|
||||
def delete(self, key):
|
||||
pass
|
||||
|
||||
|
||||
class SessionRosettaStorage(BaseRosettaStorage):
|
||||
def get(self, key, default=None):
|
||||
if key in self.request.session:
|
||||
return self.request.session[key]
|
||||
return default
|
||||
|
||||
def set(self, key, val):
|
||||
self.request.session[key] = val
|
||||
|
||||
def has(self, key):
|
||||
return key in self.request.session
|
||||
|
||||
def delete(self, key):
|
||||
del(self.request.session[key])
|
||||
|
||||
|
||||
class CacheRosettaStorage(BaseRosettaStorage):
|
||||
# unlike the session storage backend, cache is shared among all users
|
||||
# so we need to per-user key prefix, which we store in the session
|
||||
def __init__(self, request):
|
||||
super(CacheRosettaStorage, self).__init__(request)
|
||||
if 'rosetta_cache_storage_key_prefix' in self.request.session:
|
||||
self._key_prefix = self.request.session['rosetta_cache_storage_key_prefix']
|
||||
else:
|
||||
self._key_prefix = hashlib.new('sha1', str(time.time())).hexdigest()
|
||||
self.request.session['rosetta_cache_storage_key_prefix'] = self._key_prefix
|
||||
|
||||
def get(self, key, default=None):
|
||||
#print ('get', self._key_prefix + key)
|
||||
return cache.get(self._key_prefix + key, default)
|
||||
|
||||
def set(self, key, val):
|
||||
#print ('set', self._key_prefix + key)
|
||||
cache.set(self._key_prefix + key, val)
|
||||
|
||||
def has(self, key):
|
||||
#print ('has', self._key_prefix + key)
|
||||
return (self._key_prefix + key) in cache
|
||||
|
||||
def delete(self, key):
|
||||
#print ('del', self._key_prefix + key)
|
||||
cache.delete(self._key_prefix + key)
|
||||
|
||||
|
||||
def get_storage(request):
|
||||
from rosetta.conf import settings
|
||||
storage_module, storage_class = settings.STORAGE_CLASS.rsplit('.', 1)
|
||||
storage_module = importlib.import_module(storage_module)
|
||||
return getattr(storage_module, storage_class)(request)
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
{% block main %}{% endblock %}
|
||||
</div>
|
||||
<div id="footer" class="breadcumbs">
|
||||
<a href="http://code.google.com/p/django-rosetta">Rosetta</a> <span class="version">{{version}}</span>
|
||||
<a href="https://github.com/mbi/django-rosetta">Rosetta</a> <span class="version">{{version}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,10 @@
|
|||
|
||||
{% block pagetitle %}{{block.super}} - {% trans "Language selection" %}{% endblock %}
|
||||
|
||||
{% block breadcumbs %}<a href="{% url rosetta-pick-file %}">{% trans "Home" %}</a> › {% trans "Language selection" %}{% endblock %}
|
||||
{% block breadcumbs %}
|
||||
<div><a href="{% url rosetta-pick-file %}">{% trans "Home" %}</a> › {% trans "Language selection" %}</div>
|
||||
{% if do_session_warn %}<p class="errornote session-warn">{% trans "Couldn't load the specified language file. This usually happens when using the Encrypted Cookies Session Storage backend on Django 1.4 or higher.<br/>Setting ROSETTA_STORAGE_CLASS = 'rosetta.storage.CacheRosettaStorage' in your settings file should fix this." %}</p>{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
<h1> </h1>
|
||||
|
|
|
|||
|
|
@ -33,123 +33,114 @@ class RosettaTestCase(TestCase):
|
|||
self.django_version_major, self.django_version_minor = django.VERSION[0], django.VERSION[1]
|
||||
|
||||
def setUp(self):
|
||||
user = User.objects.create_user('test_admin', 'test@test.com', 'test_password')
|
||||
user2 = User.objects.create_user('test_admin2', 'test@test2.com', 'test_password')
|
||||
user3 = User.objects.create_user('test_admin3', 'test@test2.com', 'test_password')
|
||||
|
||||
user.is_superuser, user2.is_superuser, user3.is_superuser = True,True, True
|
||||
user.is_staff, user2.is_staff, user3.is_staff = True,True, False
|
||||
|
||||
user = User.objects.create_user('test_admin', 'test@test.com', 'test_password')
|
||||
user2 = User.objects.create_user('test_admin2', 'test@test2.com', 'test_password')
|
||||
user3 = User.objects.create_user('test_admin3', 'test@test2.com', 'test_password')
|
||||
|
||||
user.is_superuser, user2.is_superuser, user3.is_superuser = True, True, True
|
||||
user.is_staff, user2.is_staff, user3.is_staff = True, True, False
|
||||
|
||||
user.save()
|
||||
user2.save()
|
||||
user3.save()
|
||||
|
||||
|
||||
self.client2 = Client()
|
||||
|
||||
self.client.login(username='test_admin',password='test_password')
|
||||
self.client2.login(username='test_admin2',password='test_password')
|
||||
|
||||
settings.LANGUAGES = (('xx','dummy language'),)
|
||||
|
||||
|
||||
|
||||
self.client.login(username='test_admin', password='test_password')
|
||||
self.client2.login(username='test_admin2', password='test_password')
|
||||
|
||||
settings.LANGUAGES = (('xx', 'dummy language'),)
|
||||
|
||||
shutil.copy(self.dest_file, self.dest_file + '.orig')
|
||||
|
||||
def tearDown(self):
|
||||
shutil.move(self.dest_file + '.orig', self.dest_file)
|
||||
|
||||
def test_1_ListLoading(self):
|
||||
r = self.client.get(reverse('rosetta-pick-file') +'?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-pick-file'))
|
||||
self.assertTrue(os.path.normpath('rosetta/locale/xx/LC_MESSAGES/django.po') in r.content)
|
||||
|
||||
|
||||
|
||||
def test_2_PickFile(self):
|
||||
r = self.client.get(reverse('rosetta-pick-file') +'?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx',0,), kwargs=dict() ) +'?rosetta')
|
||||
r = self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx', 0,), kwargs=dict()) + '?rosetta')
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
|
||||
|
||||
self.assertTrue('dummy language' in r.content)
|
||||
|
||||
|
||||
def test_3_DownloadZIP(self):
|
||||
r = self.client.get(reverse('rosetta-pick-file') +'?filter=third-party')
|
||||
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx',0,), kwargs=dict() ) +'?rosetta')
|
||||
r = self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx', 0), kwargs=dict()) + '?rosetta')
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
r = self.client.get(reverse('rosetta-download-file' ) +'?rosetta')
|
||||
self.assertTrue ('content-type' in r._headers.keys() )
|
||||
self.assertTrue ('application/x-zip' in r._headers.get('content-type'))
|
||||
|
||||
r = self.client.get(reverse('rosetta-download-file') + '?rosetta')
|
||||
self.assertTrue('content-type' in r._headers.keys())
|
||||
self.assertTrue('application/x-zip' in r._headers.get('content-type'))
|
||||
|
||||
def test_4_DoChanges(self):
|
||||
|
||||
# copy the template file
|
||||
shutil.copy(self.dest_file, self.dest_file + '.orig')
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir,'./django.po.template')), self.dest_file)
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir, './django.po.template')), self.dest_file)
|
||||
|
||||
# Load the template file
|
||||
r = self.client.get(reverse('rosetta-pick-file') +'?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx',0,), kwargs=dict() ))
|
||||
r = self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx', 0), kwargs=dict()))
|
||||
r = self.client.get(reverse('rosetta-home') + '?filter=untranslated')
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
|
||||
# make sure both strings are untranslated
|
||||
self.assertTrue('dummy language' in r.content)
|
||||
self.assertTrue('String 1' in r.content)
|
||||
self.assertTrue('String 2' in r.content)
|
||||
self.assertTrue('m_e48f149a8b2e8baa81b816c0edf93890' in r.content)
|
||||
|
||||
|
||||
# post a translation
|
||||
r = self.client.post(reverse('rosetta-home'), dict(m_e48f149a8b2e8baa81b816c0edf93890='Hello, world', _next='_next'))
|
||||
|
||||
|
||||
# reload all untranslated strings
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx',0,), kwargs=dict() ) +'?rosetta')
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx', 0), kwargs=dict()) + '?rosetta')
|
||||
r = self.client.get(reverse('rosetta-home') + '?filter=untranslated')
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
|
||||
|
||||
# the translated string no longer is up for translation
|
||||
self.assertTrue('String 1' in r.content)
|
||||
self.assertTrue('String 2' not in r.content)
|
||||
|
||||
|
||||
# display only translated strings
|
||||
r = self.client.get(reverse('rosetta-home') + '?filter=translated')
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
|
||||
|
||||
# The tranlsation was persisted
|
||||
self.assertTrue('String 1' not in r.content)
|
||||
self.assertTrue('String 2' in r.content)
|
||||
self.assertTrue('Hello, world' in r.content)
|
||||
|
||||
# reset the original file
|
||||
shutil.move(self.dest_file+'.orig', self.dest_file)
|
||||
|
||||
|
||||
def test_5_TestIssue67(self):
|
||||
# testcase for issue 67: http://code.google.com/p/django-rosetta/issues/detail?id=67
|
||||
# copy the template file
|
||||
shutil.copy(self.dest_file, self.dest_file + '.orig')
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir,'./django.po.issue67.template')), self.dest_file)
|
||||
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir, './django.po.issue67.template')), self.dest_file)
|
||||
# Make sure the plurals string is valid
|
||||
f_ = open(self.dest_file,'rb')
|
||||
f_ = open(self.dest_file, 'rb')
|
||||
content = f_.read()
|
||||
f_.close()
|
||||
self.assertTrue(u'Hello, world' not in content)
|
||||
self.assertTrue(u'|| n%100>=20) ? 1 : 2)' in content)
|
||||
del(content)
|
||||
|
||||
|
||||
# Load the template file
|
||||
r = self.client.get(reverse('rosetta-pick-file') +'?filter=third-party')
|
||||
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx',0,), kwargs=dict() ) +'?rosetta')
|
||||
r = self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx', 0), kwargs=dict()) + '?rosetta')
|
||||
r = self.client.get(reverse('rosetta-home') + '?filter=untranslated')
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
|
||||
|
||||
# make sure all strings are untranslated
|
||||
self.assertTrue('dummy language' in r.content)
|
||||
self.assertTrue('String 1' in r.content)
|
||||
self.assertTrue('String 2' in r.content)
|
||||
self.assertTrue('m_e48f149a8b2e8baa81b816c0edf93890' in r.content)
|
||||
|
||||
|
||||
# post a translation
|
||||
r = self.client.post(reverse('rosetta-home'), dict(m_e48f149a8b2e8baa81b816c0edf93890='Hello, world', _next='_next'))
|
||||
|
||||
|
||||
# Make sure the plurals string is still valid
|
||||
f_ = open(self.dest_file,'rb')
|
||||
f_ = open(self.dest_file, 'rb')
|
||||
content = f_.read()
|
||||
f_.close()
|
||||
self.assertTrue(u'Hello, world' in content)
|
||||
|
|
@ -157,24 +148,21 @@ class RosettaTestCase(TestCase):
|
|||
self.assertTrue(u'or n%100>=20) ? 1 : 2)' not in content)
|
||||
del(content)
|
||||
|
||||
shutil.move(self.dest_file + '.orig', self.dest_file)
|
||||
|
||||
|
||||
def test_6_ExcludedApps(self):
|
||||
|
||||
|
||||
rosetta_settings.EXCLUDED_APPLICATIONS = ('rosetta',)
|
||||
|
||||
r = self.client.get(reverse('rosetta-pick-file') +'?filter=third-party')
|
||||
|
||||
r = self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-pick-file'))
|
||||
self.assertTrue('rosetta/locale/xx/LC_MESSAGES/django.po' not in r.content)
|
||||
|
||||
|
||||
rosetta_settings.EXCLUDED_APPLICATIONS = ()
|
||||
|
||||
r = self.client.get(reverse('rosetta-pick-file') +'?rosetta')
|
||||
|
||||
r = self.client.get(reverse('rosetta-pick-file') + '?rosetta')
|
||||
self.assertTrue('rosetta/locale/xx/LC_MESSAGES/django.po' in r.content)
|
||||
|
||||
def test_7_selfInApplist(self):
|
||||
self.client.get(reverse('rosetta-pick-file') +'?filter=third-party')
|
||||
|
||||
def test_7_selfInApplist(self):
|
||||
self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-pick-file'))
|
||||
self.assertTrue('rosetta/locale/xx/LC_MESSAGES/django.po' in r.content)
|
||||
|
||||
|
|
@ -182,107 +170,88 @@ class RosettaTestCase(TestCase):
|
|||
r = self.client.get(reverse('rosetta-pick-file'))
|
||||
self.assertTrue('rosetta/locale/xx/LC_MESSAGES/django.po' not in r.content)
|
||||
|
||||
|
||||
def test_8_hideObsoletes(self):
|
||||
r = self.client.get(reverse('rosetta-pick-file') +'?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-pick-file'))
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx',0,), kwargs=dict() ))
|
||||
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx', 0), kwargs=dict()))
|
||||
|
||||
# not in listing
|
||||
for p in range(1,5):
|
||||
r = self.client.get(reverse('rosetta-home') + '?page=%d'%p)
|
||||
for p in range(1, 5):
|
||||
r = self.client.get(reverse('rosetta-home') + '?page=%d' % p)
|
||||
self.assertTrue('dummy language' in r.content)
|
||||
self.assertTrue('Les deux' not in r.content)
|
||||
|
||||
|
||||
r = self.client.get(reverse('rosetta-home') + '?query=Les%20Deux')
|
||||
self.assertTrue('dummy language' in r.content)
|
||||
self.assertTrue('Les deux' not in r.content)
|
||||
|
||||
|
||||
def test_9_concurrency(self):
|
||||
shutil.copy(self.dest_file, self.dest_file + '.orig')
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir,'./django.po.template')), self.dest_file)
|
||||
|
||||
r = self.client.get(reverse('rosetta-pick-file') +'?filter=third-party')
|
||||
r = self.client2.get(reverse('rosetta-pick-file') +'?filter=third-party')
|
||||
|
||||
self.client.get(reverse('rosetta-language-selection', args=('xx',0,), kwargs=dict() ) )
|
||||
self.client2.get(reverse('rosetta-language-selection', args=('xx',0,), kwargs=dict() ))
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir, './django.po.template')), self.dest_file)
|
||||
|
||||
r = self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
r = self.client2.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
|
||||
self.client.get(reverse('rosetta-language-selection', args=('xx', 0), kwargs=dict()))
|
||||
self.client2.get(reverse('rosetta-language-selection', args=('xx', 0), kwargs=dict()))
|
||||
|
||||
# Load the template file
|
||||
r = self.client.get(reverse('rosetta-home') + '?filter=untranslated')
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
r2 = self.client2.get(reverse('rosetta-home') + '?filter=untranslated')
|
||||
r2 = self.client2.get(reverse('rosetta-home'))
|
||||
|
||||
r = self.client.get(reverse('rosetta-home') + '?filter=untranslated')
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
r2 = self.client2.get(reverse('rosetta-home') + '?filter=untranslated')
|
||||
r2 = self.client2.get(reverse('rosetta-home'))
|
||||
|
||||
self.assertTrue('String 1' in r.content)
|
||||
self.assertTrue('String 1' in r2.content)
|
||||
self.assertTrue('m_08e4e11e2243d764fc45a5a4fba5d0f2' in r.content)
|
||||
|
||||
|
||||
r = self.client.post(reverse('rosetta-home'), dict(m_08e4e11e2243d764fc45a5a4fba5d0f2='Hello, world', _next='_next'))
|
||||
r2 = self.client2.get(reverse('rosetta-home'))
|
||||
|
||||
# Client 2 reloads the home, forces a reload of the catalog,
|
||||
r2 = self.client2.get(reverse('rosetta-home'))
|
||||
|
||||
# Client 2 reloads the home, forces a reload of the catalog,
|
||||
# the untranslated string1 is now translated
|
||||
self.assertTrue('String 1' not in r2.content)
|
||||
self.assertTrue('String 2' in r2.content)
|
||||
|
||||
|
||||
r = self.client.get(reverse('rosetta-home') + '?filter=untranslated')
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
r2 = self.client2.get(reverse('rosetta-home') + '?filter=untranslated')
|
||||
r2 = self.client2.get(reverse('rosetta-home'))
|
||||
|
||||
r = self.client.get(reverse('rosetta-home') + '?filter=untranslated')
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
r2 = self.client2.get(reverse('rosetta-home') + '?filter=untranslated')
|
||||
r2 = self.client2.get(reverse('rosetta-home'))
|
||||
|
||||
self.assertTrue('String 2' in r2.content and 'm_e48f149a8b2e8baa81b816c0edf93890' in r2.content)
|
||||
self.assertTrue('String 2' in r.content and 'm_e48f149a8b2e8baa81b816c0edf93890' in r.content)
|
||||
|
||||
|
||||
# client 2 posts!
|
||||
r2 = self.client2.post(reverse('rosetta-home'), dict(m_e48f149a8b2e8baa81b816c0edf93890='Hello, world, from client two!', _next='_next'))
|
||||
self.assertTrue('save-conflict' not in r2.content)
|
||||
|
||||
|
||||
|
||||
# uh-oh here comes client 1
|
||||
r = self.client.post(reverse('rosetta-home'), dict(m_e48f149a8b2e8baa81b816c0edf93890='Hello, world, from client one!', _next='_next'))
|
||||
# An error message is displayed
|
||||
self.assertTrue('save-conflict' in r.content)
|
||||
|
||||
|
||||
# Both clients show all strings, error messages are gone
|
||||
r = self.client.get(reverse('rosetta-home') +'?filter=translated')
|
||||
r = self.client.get(reverse('rosetta-home') + '?filter=translated')
|
||||
self.assertTrue('save-conflict' not in r.content)
|
||||
r2 = self.client2.get(reverse('rosetta-home') +'?filter=translated')
|
||||
r2 = self.client2.get(reverse('rosetta-home') + '?filter=translated')
|
||||
self.assertTrue('save-conflict' not in r2.content)
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
self.assertTrue('save-conflict' not in r.content)
|
||||
r2 = self.client2.get(reverse('rosetta-home'))
|
||||
r2 = self.client2.get(reverse('rosetta-home'))
|
||||
self.assertTrue('save-conflict' not in r2.content)
|
||||
|
||||
|
||||
# Both have client's two version
|
||||
self.assertTrue('Hello, world, from client two!' in r.content)
|
||||
self.assertTrue('Hello, world, from client two!' in r2.content)
|
||||
self.assertTrue('save-conflict' not in r2.content)
|
||||
self.assertTrue('save-conflict' not in r.content)
|
||||
|
||||
|
||||
|
||||
# reset the original file
|
||||
shutil.move(self.dest_file+'.orig', self.dest_file)
|
||||
|
||||
|
||||
def test_10_issue_79_num_entries(self):
|
||||
shutil.copy(self.dest_file, self.dest_file + '.orig')
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir,'./django.po.issue79.template')), self.dest_file)
|
||||
|
||||
self.client.get(reverse('rosetta-pick-file') +'?filter=third-party')
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir, './django.po.issue79.template')), self.dest_file)
|
||||
self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-pick-file'))
|
||||
|
||||
|
||||
self.assertTrue('<td class="ch-messages r">1</td>' in r.content)
|
||||
self.assertTrue('<td class="ch-progress r">%s%%</td>' % str(floatformat(0.0, 2)) in r.content)
|
||||
self.assertTrue('<td class="ch-obsolete r">1</td>' in r.content)
|
||||
|
||||
# reset the original file
|
||||
shutil.move(self.dest_file+'.orig', self.dest_file)
|
||||
|
||||
def test_11_issue_80_tab_indexes(self):
|
||||
self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
|
|
@ -290,130 +259,105 @@ class RosettaTestCase(TestCase):
|
|||
r = self.client.get(reverse('rosetta-home'))
|
||||
self.assertTrue('tabindex="3"' in r.content)
|
||||
|
||||
|
||||
def test_12_issue_82_staff_user(self):
|
||||
settings.ROSETTA_REQUIRES_AUTH = True
|
||||
|
||||
self.client3 = Client()
|
||||
self.client3.login(username='test_admin3',password='test_password')
|
||||
self.client3.login(username='test_admin3', password='test_password')
|
||||
|
||||
self.client3.get(reverse('rosetta-pick-file')+'?filter=third-party')
|
||||
r = self.client3.get(reverse('rosetta-language-selection', args=('xx',0,), kwargs=dict() ))
|
||||
self.client3.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
r = self.client3.get(reverse('rosetta-language-selection', args=('xx', 0), kwargs=dict()))
|
||||
r = self.client3.get(reverse('rosetta-home'))
|
||||
self.assertTrue(not r.content)
|
||||
|
||||
settings.ROSETTA_REQUIRES_AUTH = False
|
||||
|
||||
self.client3.get(reverse('rosetta-pick-file')+'?filter=third-party')
|
||||
r = self.client3.get(reverse('rosetta-language-selection', args=('xx',0,), kwargs=dict() ))
|
||||
self.client3.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
r = self.client3.get(reverse('rosetta-language-selection', args=('xx', 0,), kwargs=dict()))
|
||||
r = self.client3.get(reverse('rosetta-home'))
|
||||
self.assertFalse(not r.content)
|
||||
|
||||
|
||||
def test_13_catalog_filters(self):
|
||||
settings.LANGUAGES = (('fr','French'),('xx','Dummy Language'),)
|
||||
|
||||
|
||||
|
||||
self.client.get(reverse('rosetta-pick-file')+'?filter=third-party')
|
||||
settings.LANGUAGES = (('fr', 'French'), ('xx', 'Dummy Language'),)
|
||||
self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-pick-file'))
|
||||
self.assertTrue(os.path.normpath('rosetta/locale/xx/LC_MESSAGES/django.po') in r.content)
|
||||
self.assertTrue(('contrib') not in r.content)
|
||||
|
||||
self.client.get(reverse('rosetta-pick-file')+'?filter=django')
|
||||
|
||||
self.client.get(reverse('rosetta-pick-file') + '?filter=django')
|
||||
r = self.client.get(reverse('rosetta-pick-file'))
|
||||
self.assertTrue(os.path.normpath('rosetta/locale/xx/LC_MESSAGES/django.po') not in r.content)
|
||||
|
||||
if self.django_version_major >=1 and self.django_version_minor >=3:
|
||||
|
||||
if self.django_version_major >= 1 and self.django_version_minor >= 3:
|
||||
self.assertTrue(('contrib') in r.content)
|
||||
|
||||
self.client.get(reverse('rosetta-pick-file')+'?filter=all')
|
||||
|
||||
self.client.get(reverse('rosetta-pick-file') + '?filter=all')
|
||||
r = self.client.get(reverse('rosetta-pick-file'))
|
||||
self.assertTrue(os.path.normpath('rosetta/locale/xx/LC_MESSAGES/django.po') in r.content)
|
||||
|
||||
if self.django_version_major >=1 and self.django_version_minor >=3:
|
||||
|
||||
if self.django_version_major >= 1 and self.django_version_minor >= 3:
|
||||
self.assertTrue(('contrib') in r.content)
|
||||
|
||||
self.client.get(reverse('rosetta-pick-file')+'?filter=project')
|
||||
|
||||
self.client.get(reverse('rosetta-pick-file') + '?filter=project')
|
||||
r = self.client.get(reverse('rosetta-pick-file'))
|
||||
self.assertTrue(os.path.normpath('rosetta/locale/xx/LC_MESSAGES/django.po') not in r.content)
|
||||
|
||||
if self.django_version_major >=1 and self.django_version_minor >=3:
|
||||
if self.django_version_major >= 1 and self.django_version_minor >= 3:
|
||||
self.assertTrue(('contrib') not in r.content)
|
||||
|
||||
|
||||
def test_14_issue_99_context_and_comments(self):
|
||||
self.client.get(reverse('rosetta-pick-file')+'?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx',0,), kwargs=dict() ))
|
||||
self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx', 0), kwargs=dict()))
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
self.assertTrue('This is a text of the base template' in r.content)
|
||||
self.assertTrue('Context hint' in r.content)
|
||||
|
||||
|
||||
def test_14_issue_87_entry_changed_signal(self):
|
||||
# copy the template file
|
||||
shutil.copy(self.dest_file, self.dest_file + '.orig')
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir,'./django.po.template')), self.dest_file)
|
||||
|
||||
|
||||
self.client.get(reverse('rosetta-pick-file')+'?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx',0,), kwargs=dict() ))
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir, './django.po.template')), self.dest_file)
|
||||
|
||||
self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx', 0,), kwargs=dict()))
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
|
||||
|
||||
@receiver(entry_changed)
|
||||
def test_receiver(sender, **kwargs):
|
||||
self.test_old_msgstr = kwargs.get('old_msgstr')
|
||||
self.test_new_msgstr = sender.msgstr
|
||||
self.test_msg_id = sender.msgid
|
||||
|
||||
|
||||
self.assertTrue('m_e48f149a8b2e8baa81b816c0edf93890' in r.content)
|
||||
|
||||
# post a translation
|
||||
r = self.client.post(reverse('rosetta-home'), dict(m_e48f149a8b2e8baa81b816c0edf93890='Hello, world', _next='_next'))
|
||||
|
||||
|
||||
self.assertTrue(self.test_old_msgstr == '')
|
||||
self.assertTrue(self.test_new_msgstr == 'Hello, world')
|
||||
self.assertTrue(self.test_msg_id == 'String 2')
|
||||
|
||||
|
||||
del(self.test_old_msgstr, self.test_new_msgstr, self.test_msg_id)
|
||||
|
||||
# reset the original file
|
||||
shutil.move(self.dest_file+'.orig', self.dest_file)
|
||||
|
||||
def test_15_issue_101_post_save_signal(self):
|
||||
# copy the template file
|
||||
shutil.copy(self.dest_file, self.dest_file + '.orig')
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir,'./django.po.template')), self.dest_file)
|
||||
|
||||
|
||||
self.client.get(reverse('rosetta-pick-file')+'?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx',0,), kwargs=dict() ))
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir, './django.po.template')), self.dest_file)
|
||||
self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx', 0), kwargs=dict()))
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
|
||||
|
||||
@receiver(post_save)
|
||||
def test_receiver(sender, **kwargs):
|
||||
self.test_sig_lang = kwargs.get('language_code')
|
||||
|
||||
|
||||
self.assertTrue('m_e48f149a8b2e8baa81b816c0edf93890' in r.content)
|
||||
|
||||
# post a translation
|
||||
r = self.client.post(reverse('rosetta-home'), dict(m_e48f149a8b2e8baa81b816c0edf93890='Hello, world', _next='_next'))
|
||||
|
||||
|
||||
self.assertTrue(self.test_sig_lang == 'xx')
|
||||
del(self.test_sig_lang)
|
||||
# reset the original file
|
||||
shutil.move(self.dest_file+'.orig', self.dest_file)
|
||||
|
||||
|
||||
def test_16_issue_103_post_save_signal_has_request(self):
|
||||
# copy the template file
|
||||
shutil.copy(self.dest_file, self.dest_file + '.orig')
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir,'./django.po.template')), self.dest_file)
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir, './django.po.template')), self.dest_file)
|
||||
|
||||
|
||||
self.client.get(reverse('rosetta-pick-file')+'?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx',0,), kwargs=dict() ))
|
||||
self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
r = self.client.get(reverse('rosetta-language-selection', args=('xx', 0), kwargs=dict()))
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
|
||||
@receiver(post_save)
|
||||
|
|
@ -428,10 +372,8 @@ class RosettaTestCase(TestCase):
|
|||
self.assertTrue(self.test_16_has_request)
|
||||
del(self.test_16_has_request)
|
||||
# reset the original file
|
||||
shutil.move(self.dest_file + '.orig', self.dest_file)
|
||||
|
||||
def test_17_Test_Issue_gh24(self):
|
||||
shutil.copy(self.dest_file, self.dest_file + '.orig')
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir, './django.po.issue24gh.template')), self.dest_file)
|
||||
|
||||
self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
|
|
@ -456,10 +398,7 @@ class RosettaTestCase(TestCase):
|
|||
pofile_content = open(self.dest_file, 'r').read()
|
||||
self.assertTrue('felis eu pede mollis pretium."' in pofile_content)
|
||||
|
||||
shutil.move(self.dest_file + '.orig', self.dest_file)
|
||||
|
||||
def test_18_Test_Issue_gh34(self):
|
||||
shutil.copy(self.dest_file, self.dest_file + '.orig')
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir, './django.po.issue34gh.template')), self.dest_file)
|
||||
|
||||
self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
|
|
@ -471,12 +410,65 @@ class RosettaTestCase(TestCase):
|
|||
|
||||
# post a translation, it should have properly wrapped lines
|
||||
r = self.client.post(reverse('rosetta-home'), dict(
|
||||
m_ff7060c1a9aae9c42af4d54ac8551f67_0='Foo %s',
|
||||
m_ff7060c1a9aae9c42af4d54ac8551f67_1='Bar %s',
|
||||
m_09f7e02f1290be211da707a266f153b3='Salut', _next='_next'))
|
||||
m_ff7060c1a9aae9c42af4d54ac8551f67_0='Foo %s',
|
||||
m_ff7060c1a9aae9c42af4d54ac8551f67_1='Bar %s',
|
||||
m_09f7e02f1290be211da707a266f153b3='Salut', _next='_next'))
|
||||
pofile_content = open(self.dest_file, 'r').read()
|
||||
self.assertTrue('msgstr "Salut\\n"' in pofile_content)
|
||||
self.assertTrue('msgstr[0] ""\n"\\n"\n"Foo %s\\n"' in pofile_content)
|
||||
self.assertTrue('msgstr[1] ""\n"\\n"\n"Bar %s\\n"' in pofile_content)
|
||||
|
||||
shutil.move(self.dest_file + '.orig', self.dest_file)
|
||||
def test_19_Test_Issue_gh38(self):
|
||||
if self.django_version_minor >= 4 and self.django_version_major >= 1:
|
||||
self.assertTrue('django.contrib.sessions.middleware.SessionMiddleware' in settings.MIDDLEWARE_CLASSES)
|
||||
|
||||
settings.SESSION_ENGINE = "django.contrib.sessions.backends.signed_cookies"
|
||||
|
||||
# One: cache backend
|
||||
rosetta_settings.STORAGE_CLASS = 'rosetta.storage.CacheRosettaStorage'
|
||||
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir, './django.po.issue38gh.template')), self.dest_file)
|
||||
|
||||
self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
self.client.get(reverse('rosetta-language-selection', args=('xx', 0, ), kwargs=dict()))
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
self.assertFalse(len(str(self.client.cookies.get('sessionid'))) > 4096)
|
||||
self.assertTrue('m_9efd113f7919952523f06e0d88da9c54' in r.content)
|
||||
r = self.client.post(reverse('rosetta-home'), dict(
|
||||
m_9efd113f7919952523f06e0d88da9c54='Testing cookie length',
|
||||
_next='_next'
|
||||
))
|
||||
pofile_content = open(self.dest_file, 'r').read()
|
||||
self.assertTrue('Testing cookie length' in pofile_content)
|
||||
|
||||
self.client.get(reverse('rosetta-home') + '?filter=translated')
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
self.assertTrue('Testing cookie length' in r.content)
|
||||
self.assertTrue('m_9f6c442c6d579707440ba9dada0fb373' in r.content)
|
||||
|
||||
# Two, the cookie backend
|
||||
rosetta_settings.STORAGE_CLASS = 'rosetta.storage.SessionRosettaStorage'
|
||||
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir, './django.po.issue38gh.template')), self.dest_file)
|
||||
|
||||
self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
self.client.get(reverse('rosetta-language-selection', args=('xx', 0, ), kwargs=dict()))
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
self.assertTrue(len(str(self.client.cookies.get('sessionid'))) > 4096)
|
||||
# boom: be a good browser, truncate the cookie
|
||||
self.client.cookies['sessionid'] = unicode(self.client.cookies.get('sessionid'))[:4096]
|
||||
r = self.client.get(reverse('rosetta-home'))
|
||||
|
||||
self.assertFalse('m_9efd113f7919952523f06e0d88da9c54' in r.content)
|
||||
|
||||
def test_20_concurrency_of_cache_backend(self):
|
||||
rosetta_settings.STORAGE_CLASS = 'rosetta.storage.CacheRosettaStorage'
|
||||
shutil.copy(os.path.normpath(os.path.join(self.curdir, './django.po.issue38gh.template')), self.dest_file)
|
||||
|
||||
self.client.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
self.client.get(reverse('rosetta-language-selection', args=('xx', 0, ), kwargs=dict()))
|
||||
|
||||
self.client2.get(reverse('rosetta-pick-file') + '?filter=third-party')
|
||||
self.client2.get(reverse('rosetta-language-selection', args=('xx', 0, ), kwargs=dict()))
|
||||
|
||||
self.assertTrue(self.client.session.get('rosetta_cache_storage_key_prefix') != self.client2.session.get('rosetta_cache_storage_key_prefix'))
|
||||
|
|
|
|||
371
rosetta/tests/django.po.issue38gh.template
Normal file
371
rosetta/tests/django.po.issue38gh.template
Normal file
|
|
@ -0,0 +1,371 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Rosetta\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-10-21 12:21+0200\n"
|
||||
"PO-Revision-Date: 2008-09-22 11:02\n"
|
||||
"Last-Translator: Admin Admin <admin@admin.com>\n"
|
||||
"Language-Team: French <LL@li.org>\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||
"|| n%100>=20) ? 1 : 2)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Translated-Using: django-rosetta 0.4.RC2\n"
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 1"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 2"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 3"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 4"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 5"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 6"
|
||||
msgstr ""
|
||||
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 7"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 8"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 9"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 10"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 11"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 12"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 13"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 14"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 15"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 16"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 17"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 18"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 19"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 20"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 21"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 22"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 23"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 24"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 25"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 26"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 27"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 28"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 29"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 30"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 31"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 32"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 33"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 34"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 35"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 36"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 37"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 38"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 39"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 40"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 41"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 42"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 43"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 44"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 45"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 46"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 47"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 48"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 49"
|
||||
msgstr ""
|
||||
|
||||
msgid "0_81EhfRiLPoxAH5j3f1D2P33S_-Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 50"
|
||||
msgstr ""
|
||||
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 1"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 2"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 3"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 4"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 5"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 6"
|
||||
msgstr ""
|
||||
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 7"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 8"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 9"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 10"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 11"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 12"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 13"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 14"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 15"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 16"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 17"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 18"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 19"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 20"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 21"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 22"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 23"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 24"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 25"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 26"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 27"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 28"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 29"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 30"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 31"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 32"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 33"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 34"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 35"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 36"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 37"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 38"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 39"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 40"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 41"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 42"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 43"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 44"
|
||||
msgstr ""
|
||||
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 45"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 46"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 47"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 48"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 49"
|
||||
msgstr ""
|
||||
|
||||
msgid "xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 50"
|
||||
msgstr ""
|
||||
|
||||
|
||||
|
||||
|
|
@ -12,6 +12,7 @@ from rosetta.conf import settings as rosetta_settings
|
|||
from rosetta.polib import pofile
|
||||
from rosetta.poutil import find_pos, pagination_range
|
||||
from rosetta.signals import entry_changed, post_save
|
||||
from rosetta.storage import get_storage
|
||||
import re
|
||||
import rosetta
|
||||
import datetime
|
||||
|
|
@ -45,10 +46,10 @@ def home(request):
|
|||
out_ = out_.rstrip()
|
||||
return out_
|
||||
|
||||
|
||||
storage = get_storage(request)
|
||||
version = rosetta.get_version(True)
|
||||
if 'rosetta_i18n_fn' in request.session:
|
||||
rosetta_i18n_fn = request.session.get('rosetta_i18n_fn')
|
||||
if storage.has('rosetta_i18n_fn'):
|
||||
rosetta_i18n_fn = storage.get('rosetta_i18n_fn')
|
||||
|
||||
ref_lang = request.session.get('rosetta_i18n_ref_lang_code', 'fr')
|
||||
ref_pofile = None
|
||||
|
|
@ -58,24 +59,24 @@ def home(request):
|
|||
|
||||
|
||||
rosetta_i18n_app = get_app_name(rosetta_i18n_fn)
|
||||
rosetta_i18n_lang_code = request.session['rosetta_i18n_lang_code']
|
||||
rosetta_i18n_lang_code = storage.get('rosetta_i18n_lang_code')
|
||||
rosetta_i18n_lang_bidi = rosetta_i18n_lang_code.split('-')[0] in settings.LANGUAGES_BIDI
|
||||
rosetta_i18n_write = request.session.get('rosetta_i18n_write', True)
|
||||
rosetta_i18n_write = storage.get('rosetta_i18n_write', True)
|
||||
if rosetta_i18n_write:
|
||||
rosetta_i18n_pofile = pofile(rosetta_i18n_fn, wrapwidth=rosetta_settings.POFILE_WRAP_WIDTH)
|
||||
for entry in rosetta_i18n_pofile:
|
||||
entry.md5hash = hashlib.md5(entry.msgid.encode("utf8") + entry.msgstr.encode("utf8")).hexdigest()
|
||||
|
||||
else:
|
||||
rosetta_i18n_pofile = request.session.get('rosetta_i18n_pofile')
|
||||
rosetta_i18n_pofile = storage.get('rosetta_i18n_pofile')
|
||||
|
||||
if 'filter' in request.GET:
|
||||
if request.GET.get('filter') in ('untranslated', 'translated', 'fuzzy', 'all'):
|
||||
filter_ = request.GET.get('filter')
|
||||
request.session['rosetta_i18n_filter'] = filter_
|
||||
storage.set('rosetta_i18n_filter', filter_)
|
||||
return HttpResponseRedirect(reverse('rosetta-home'))
|
||||
|
||||
rosetta_i18n_filter = request.session.get('rosetta_i18n_filter', 'all')
|
||||
rosetta_i18n_filter = storage.get('rosetta_i18n_filter', 'all')
|
||||
|
||||
if '_next' in request.POST:
|
||||
rx = re.compile(r'^m_([0-9a-f]+)')
|
||||
|
|
@ -128,7 +129,7 @@ def home(request):
|
|||
)
|
||||
|
||||
else:
|
||||
request.session['rosetta_last_save_error'] = True
|
||||
storage.set('rosetta_last_save_error', True)
|
||||
|
||||
if file_change and rosetta_i18n_write:
|
||||
try:
|
||||
|
|
@ -171,9 +172,8 @@ def home(request):
|
|||
pass
|
||||
|
||||
except:
|
||||
request.session['rosetta_i18n_write'] = False
|
||||
|
||||
request.session['rosetta_i18n_pofile'] = rosetta_i18n_pofile
|
||||
storage.set('rosetta_i18n_write', False)
|
||||
storage.set('rosetta_i18n_pofile', rosetta_i18n_pofile)
|
||||
|
||||
# Retain query arguments
|
||||
query_arg = ''
|
||||
|
|
@ -186,8 +186,8 @@ def home(request):
|
|||
query_arg = '?'
|
||||
query_arg = query_arg + 'page=%d' % int(request.GET.get('page'))
|
||||
return HttpResponseRedirect(reverse('rosetta-home') + iri_to_uri(query_arg))
|
||||
rosetta_i18n_lang_name = _(request.session.get('rosetta_i18n_lang_name'))
|
||||
rosetta_i18n_lang_code = request.session.get('rosetta_i18n_lang_code')
|
||||
rosetta_i18n_lang_name = _(storage.get('rosetta_i18n_lang_name'))
|
||||
rosetta_i18n_lang_code = storage.get('rosetta_i18n_lang_code')
|
||||
|
||||
if 'query' in request.REQUEST and request.REQUEST.get('query', '').strip():
|
||||
query = request.REQUEST.get('query').strip()
|
||||
|
|
@ -247,8 +247,8 @@ def home(request):
|
|||
BING_APP_ID = rosetta_settings.BING_APP_ID
|
||||
MESSAGES_SOURCE_LANGUAGE_NAME = rosetta_settings.MESSAGES_SOURCE_LANGUAGE_NAME
|
||||
MESSAGES_SOURCE_LANGUAGE_CODE = rosetta_settings.MESSAGES_SOURCE_LANGUAGE_CODE
|
||||
if 'rosetta_last_save_error' in request.session:
|
||||
del(request.session['rosetta_last_save_error'])
|
||||
if storage.has('rosetta_last_save_error'):
|
||||
storage.delete('rosetta_last_save_error')
|
||||
rosetta_last_save_error = True
|
||||
|
||||
LANGUAGES = [ (langid, _(langname)) for langid,langname in settings.LANGUAGES]
|
||||
|
|
@ -256,7 +256,7 @@ def home(request):
|
|||
|
||||
return render_to_response('rosetta/pofile.html', locals(), context_instance=RequestContext(request))
|
||||
else:
|
||||
return list_languages(request)
|
||||
return list_languages(request, do_session_warn=True)
|
||||
home = never_cache(home)
|
||||
home = user_passes_test(lambda user: can_translate(user), settings.LOGIN_URL)(home)
|
||||
|
||||
|
|
@ -264,12 +264,13 @@ home = user_passes_test(lambda user: can_translate(user), settings.LOGIN_URL)(ho
|
|||
def download_file(request):
|
||||
import zipfile
|
||||
from StringIO import StringIO
|
||||
storage = get_storage(request)
|
||||
# original filename
|
||||
rosetta_i18n_fn = request.session.get('rosetta_i18n_fn', None)
|
||||
rosetta_i18n_fn = storage.get('rosetta_i18n_fn', None)
|
||||
# in-session modified catalog
|
||||
rosetta_i18n_pofile = request.session.get('rosetta_i18n_pofile', None)
|
||||
rosetta_i18n_pofile = storage.get('rosetta_i18n_pofile', None)
|
||||
# language code
|
||||
rosetta_i18n_lang_code = request.session.get('rosetta_i18n_lang_code', None)
|
||||
rosetta_i18n_lang_code = storage.get('rosetta_i18n_lang_code', None)
|
||||
|
||||
if not rosetta_i18n_lang_code or not rosetta_i18n_pofile or not rosetta_i18n_fn:
|
||||
return HttpResponseRedirect(reverse('rosetta-home'))
|
||||
|
|
@ -298,20 +299,21 @@ download_file = never_cache(download_file)
|
|||
download_file = user_passes_test(lambda user: can_translate(user), settings.LOGIN_URL)(download_file)
|
||||
|
||||
|
||||
def list_languages(request):
|
||||
def list_languages(request, do_session_warn=False):
|
||||
"""
|
||||
Lists the languages for the current project, the gettext catalog files
|
||||
that can be translated and their translation progress
|
||||
"""
|
||||
storage = get_storage(request)
|
||||
languages = []
|
||||
|
||||
if 'filter' in request.GET:
|
||||
if request.GET.get('filter') in ('project', 'third-party', 'django', 'all'):
|
||||
filter_ = request.GET.get('filter')
|
||||
request.session['rosetta_i18n_catalog_filter'] = filter_
|
||||
storage.set('rosetta_i18n_catalog_filter', filter_)
|
||||
return HttpResponseRedirect(reverse('rosetta-pick-file'))
|
||||
|
||||
rosetta_i18n_catalog_filter = request.session.get('rosetta_i18n_catalog_filter', 'project')
|
||||
rosetta_i18n_catalog_filter = storage.get('rosetta_i18n_catalog_filter', 'project')
|
||||
|
||||
third_party_apps = rosetta_i18n_catalog_filter in ('all', 'third-party')
|
||||
django_apps = rosetta_i18n_catalog_filter in ('all', 'django')
|
||||
|
|
@ -333,6 +335,7 @@ def list_languages(request):
|
|||
ADMIN_MEDIA_PREFIX = settings.STATIC_URL + 'admin/'
|
||||
|
||||
version = rosetta.get_version(True)
|
||||
do_session_warn = do_session_warn and 'SessionRosettaStorage' in rosetta_settings.STORAGE_CLASS and 'signed_cookies' in settings.SESSION_ENGINE
|
||||
return render_to_response('rosetta/languages.html', locals(), context_instance=RequestContext(request))
|
||||
list_languages = never_cache(list_languages)
|
||||
list_languages = user_passes_test(lambda user: can_translate(user), settings.LOGIN_URL)(list_languages)
|
||||
|
|
@ -347,30 +350,31 @@ def lang_sel(request, langid, idx):
|
|||
"""
|
||||
Selects a file to be translated
|
||||
"""
|
||||
storage = get_storage(request)
|
||||
if langid not in [l[0] for l in settings.LANGUAGES]:
|
||||
raise Http404
|
||||
else:
|
||||
|
||||
rosetta_i18n_catalog_filter = request.session.get('rosetta_i18n_catalog_filter', 'project')
|
||||
rosetta_i18n_catalog_filter = storage.get('rosetta_i18n_catalog_filter', 'project')
|
||||
|
||||
third_party_apps = rosetta_i18n_catalog_filter in ('all', 'third-party')
|
||||
django_apps = rosetta_i18n_catalog_filter in ('all', 'django')
|
||||
project_apps = rosetta_i18n_catalog_filter in ('all', 'project')
|
||||
file_ = find_pos(langid, project_apps=project_apps, django_apps=django_apps, third_party_apps=third_party_apps)[int(idx)]
|
||||
|
||||
request.session['rosetta_i18n_lang_code'] = langid
|
||||
request.session['rosetta_i18n_lang_name'] = unicode([l[1] for l in settings.LANGUAGES if l[0] == langid][0])
|
||||
request.session['rosetta_i18n_fn'] = file_
|
||||
storage.set('rosetta_i18n_lang_code', langid)
|
||||
storage.set('rosetta_i18n_lang_name', unicode([l[1] for l in settings.LANGUAGES if l[0] == langid][0]))
|
||||
storage.set('rosetta_i18n_fn', file_)
|
||||
po = pofile(file_)
|
||||
for entry in po:
|
||||
entry.md5hash = hashlib.md5(entry.msgid.encode("utf8") + entry.msgstr.encode("utf8")).hexdigest()
|
||||
|
||||
request.session['rosetta_i18n_pofile'] = po
|
||||
storage.set('rosetta_i18n_pofile', po)
|
||||
try:
|
||||
os.utime(file_, None)
|
||||
request.session['rosetta_i18n_write'] = True
|
||||
storage.set('rosetta_i18n_write', True)
|
||||
except OSError:
|
||||
request.session['rosetta_i18n_write'] = False
|
||||
storage.set('rosetta_i18n_write', False)
|
||||
|
||||
return HttpResponseRedirect(reverse('rosetta-home'))
|
||||
lang_sel = never_cache(lang_sel)
|
||||
|
|
|
|||
BIN
testproject/locale/xx/LC_MESSAGES/django.mo
Normal file
BIN
testproject/locale/xx/LC_MESSAGES/django.mo
Normal file
Binary file not shown.
618
testproject/locale/xx/LC_MESSAGES/django.po
Normal file
618
testproject/locale/xx/LC_MESSAGES/django.po
Normal file
|
|
@ -0,0 +1,618 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Rosetta\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-10-21 12:21+0200\n"
|
||||
"PO-Revision-Date: 2012-05-27 14:59\n"
|
||||
"Last-Translator: <admin@admin.com>\n"
|
||||
"Language-Team: French <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
|
||||
"X-Translated-Using: django-rosetta 0.6.7\n"
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 1"
|
||||
msgstr "aaa"
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 2"
|
||||
msgstr "111"
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 3"
|
||||
msgstr "asdasd"
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 4"
|
||||
msgstr "aa"
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 5"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 6"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 7"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 8"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 9"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 10"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 11"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 12"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 13"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 14"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 15"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 16"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 17"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 18"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 19"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 20"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 21"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 22"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 23"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 24"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 25"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 26"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 27"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 28"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 29"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 30"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 31"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 32"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 33"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 34"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 35"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 36"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 37"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 38"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 39"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 40"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 41"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 42"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 43"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 44"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 45"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 46"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 47"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 48"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 49"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"0_81EhfRiLPoxAH5j3f1D2P33S_-"
|
||||
"Fe_7Mn_R_t9V8Bysr01xWAgvVEyyA190oYYTnzJCBucLBWKiqaAIjWAvQ3ZfrbCkDRe02iESoGhHEIBmmDI49SY6cQQk0AxGoB-"
|
||||
"kmZfloBiMsQraFOWetVEF4SRTHlxhNEPA-kCYB4LUCfl-l String 50"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 1"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 2"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 3"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 4"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 5"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 6"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 7"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 8"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 9"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 10"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 11"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 12"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 13"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 14"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 15"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 16"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 17"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 18"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 19"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 20"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 21"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 22"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 23"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 24"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 25"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 26"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 27"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 28"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 29"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 30"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 31"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 32"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 33"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 34"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 35"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 36"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 37"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 38"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 39"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 40"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 41"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 42"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 43"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 44"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 45"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 46"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 47"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 48"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 49"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"xeXu5ur6xtXV69d2-7u7Fz5eD6TpYXyNVcFd28vjsZ7fnYIrzTTMEn__E_5ykGYGm-"
|
||||
"aY_7JXpx9_fXD9K-75dlH1vTvOv2w2HsZPL9zu7MdvupP-"
|
||||
"qNh5xo8PjfCLkR1kO4QUmB8CZHeW2BcGw2nYTjt7I7NcBLDuNM9PpbvPQt3le1Pex String 50"
|
||||
msgstr "aaa2"
|
||||
|
|
@ -31,7 +31,6 @@ INSTALLED_APPS = [
|
|||
|
||||
'rosetta',
|
||||
]
|
||||
|
||||
LANGUAGE_CODE = "en"
|
||||
|
||||
LANGUAGES = (
|
||||
|
|
@ -45,8 +44,17 @@ SOUTH_TESTS_MIGRATE = False
|
|||
FIXTURE_DIRS = (
|
||||
os.path.join(PROJECT_PATH, 'fixtures'),
|
||||
)
|
||||
|
||||
STATIC_URL = '/static/'
|
||||
ROOT_URLCONF = 'testproject.urls'
|
||||
|
||||
DEBUG = True
|
||||
TEMPLATE_DEBUG = True
|
||||
#SESSION_ENGINE = "django.contrib.sessions.backends.signed_cookies"
|
||||
#ROSETTA_STORAGE_CLASS = 'rosetta.storage.SessionRosettaStorage'
|
||||
ROSETTA_STORAGE_CLASS = 'rosetta.storage.CacheRosettaStorage'
|
||||
CACHES = {
|
||||
'default': {
|
||||
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
|
||||
'LOCATION': '127.0.0.1:11212',
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
from django.conf.urls.defaults import patterns, include, url
|
||||
|
||||
# Uncomment the next two lines to enable the admin:
|
||||
# from django.contrib import admin
|
||||
# admin.autodiscover()
|
||||
from django.contrib import admin
|
||||
admin.autodiscover()
|
||||
|
||||
urlpatterns = patterns('',
|
||||
# Examples:
|
||||
|
|
@ -13,5 +13,6 @@ urlpatterns = patterns('',
|
|||
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
|
||||
|
||||
# Uncomment the next line to enable the admin:
|
||||
# url(r'^admin/', include(admin.site.urls)),
|
||||
url(r'^admin/', include(admin.site.urls)),
|
||||
url(r'^rosetta/', include('rosetta.urls'))
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in a new issue