~anybox/aeroo/openerp6

« back to all changes in this revision

Viewing changes to report_aeroo/ctt_languages/lv_LV/__init__.py

  • Committer: root
  • Date: 2013-05-16 15:46:46 UTC
  • Revision ID: root@erp.kndati.lv-20130516154646-5lesr8tyzl1vdc0k
1.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/python
 
2
# -*- coding: utf8 -*-
 
3
# lv_LV
 
4
 
 
5
from report_aeroo.ctt_objects import ctt_language
 
6
 
 
7
class lv_LV(ctt_language):
 
8
    def _init_lang(self):
 
9
        self.name = 'lv_LV'
 
10
        # digits - masculine, singular
 
11
        self.number_sng_msc = [u'nulle', u'viens', u'divi',
 
12
                               u'trīs', u'četri', u'pieci',
 
13
                               u'seši', u'septiņi', u'astoņi',
 
14
                               u'deviņi']
 
15
        # digits - feminine, singular
 
16
        self.number_sng_fem = [u'nulle', u'viena', u'divas',
 
17
                               u'trīs', u'četras', u'piecas',
 
18
                               u'sešas', u'septiņas', u'astoņas',
 
19
                               u'deviņas']
 
20
        # tens - masculine, singular
 
21
        self.tens_sng_msc = [u'nulle', u'vien', u'div',
 
22
                             u'trīs', u'četr', u'piec',
 
23
                             u'seš', u'septiņ', u'astoņ',
 
24
                             u'deviņ']
 
25
        # teens - masculine
 
26
        self.teens = [u'desmit', u'vienpadsmit', u'divpadsmit',
 
27
                      u'trīspadsmit', u'četrpadsmit', u'piecpadsmit',
 
28
                      u'sešpadsmit', u'septiņpadsmit', u'astoņpadsmit',
 
29
                      u'deviņpadsmit']
 
30
        # multiplier - masculine, singular                      
 
31
        self.multi_sng_msc = [u'simts', u' tūkstotis', u' miljons',
 
32
                              u' miljards']
 
33
        # multiplier - masculine, plural
 
34
        self.multi_plr_msc = [u' simti', u' tūkstoši', u' miljoni',
 
35
                              u' miljardi']
 
36
        
 
37
        # next line is needed for correct loading of currencies 
 
38
        import currencies
 
39
        return currencies
 
40
 
 
41
 
 
42
    def wordify(self, chunk, chunknr, gender):
 
43
        if gender == 'm':
 
44
            number = self.number_sng_msc
 
45
        elif gender == 'f':
 
46
            number = self.number_sng_fem
 
47
        elif gender == 'n':
 
48
            number = self.number_sng_neu
 
49
        words = u''
 
50
        digit1 = u''
 
51
        digit2 = u''
 
52
        digit3 = u''
 
53
        chunklength = len(chunk)
 
54
        # placing digits in right places
 
55
        if chunklength == 1:
 
56
            digit3 = chunk[0 : 1]
 
57
        if chunklength == 2:
 
58
            digit2 = chunk[0 : 1]
 
59
            digit3 = chunk[1 : 2]
 
60
        if chunklength == 3:
 
61
            digit1 = chunk[0 : 1]
 
62
            digit2 = chunk[1 : 2]
 
63
            digit3 = chunk[-1]
 
64
        # processing zero
 
65
        if chunklength == 1 and digit3  == '0' :
 
66
            return number[0]
 
67
        # processing hundreds
 
68
        if chunklength == 3 :
 
69
            if digit1 == '1' :
 
70
                words += self.multi_sng_msc[0]
 
71
            else :
 
72
                if int(digit1) > 1 : words += number[int(digit1)] + \
 
73
                                                self.multi_plr_msc[0]
 
74
        # processing tens
 
75
        if chunklength > 1:
 
76
            spacer = ''
 
77
            if len(words) > 0 : spacer = ' '
 
78
            if digit2 == '1':
 
79
                words += spacer + self.teens[int(digit3)]
 
80
            else:
 
81
                if int(digit2) > 1 and int(digit2) > 0:
 
82
                    words += spacer + self.tens_sng_msc[int(digit2)] + u'desmit'
 
83
 
 
84
        # processing ones
 
85
        if chunklength > 0 and digit2 != '1' :
 
86
            spacer = ''
 
87
            if len(words) > 0: spacer = u' '
 
88
            if int(digit3) > 0:
 
89
                words += spacer + number[int(digit3)]
 
90
        # end processing
 
91
        if len(words) > 0 :
 
92
            if digit3 == '1' and chunknr > 0:
 
93
                return words + self.multi_sng_msc[chunknr]
 
94
            elif digit3 != '1' and chunknr > 0:
 
95
                return words + self.multi_plr_msc[chunknr]
 
96
            else:
 
97
                return words
 
98
        else:
 
99
            return ''
 
100
 
 
101
lv_LV()