xmpp.chapril.org-conversejs/trans/managers.py

42 lines
1.2 KiB
Python
Raw Normal View History

2012-02-27 16:09:31 +01:00
from django.db import models
from lang.models import Language
2012-02-27 17:54:42 +01:00
from util import is_plural, split_plural, join_plural
2012-02-27 16:09:31 +01:00
class TranslationManager(models.Manager):
def update_from_blob(self, subproject, code, path, blob):
'''
Parses translation meta info and creates/updates translation object.
'''
lang = Language.objects.get(code = code)
trans, created = self.get_or_create(
language = lang,
subproject = subproject,
filename = path)
trans.update_from_blob(blob)
2012-02-27 16:09:31 +01:00
class UnitManager(models.Manager):
def update_from_unit(self, translation, unit):
'''
Process translation toolkit unit and stores/updates database entry.
'''
2012-02-27 17:54:42 +01:00
src = join_plural(unit.source.strings)
ctx = unit.getcontext()
import trans.models
try:
dbunit = self.get(
translation = translation,
source = src,
context = ctx)
force = False
except:
dbunit = trans.models.Unit(
translation = translation,
source = src,
context = ctx)
force = True
dbunit.update_from_unit(unit, force)
return dbunit