File indexing completed on 2024-04-28 17:02:23

0001 #!/usr/bin/ruby18
0002 
0003 $dict = []
0004 
0005 def concat_pairs(a, b)
0006         if a.is_a?(String)
0007                 a = [a]
0008         end
0009 
0010         res = []
0011         a.each do |a_word|
0012                 b.each do |b_word|
0013                         res << a_word + b_word
0014                 end
0015         end
0016 
0017         res
0018 end
0019 
0020 def add_metric(name, suffix)
0021         metrix_prefix = [
0022                 'йокто', 'зепто', 'атто', 'фемто', 'пико',
0023                 'нано', 'микро', 'милли', 'санти', 'деци',
0024                 'дека', 'гекто', 'кило', 'мега', 'гига',
0025                 'тера', 'пета', 'экса', 'зетта', 'йотта']
0026 
0027         $dict += concat_pairs(metrix_prefix, concat_pairs(name, suffix))
0028 end
0029 
0030 def add_metric_ab(name)
0031         metrix_prefix = [
0032                 'и', 'з', 'а', 'ф', 'п',
0033                 'н', 'мк', 'м', 'с', 'д',
0034                 'да', 'г', 'к', 'М', 'Г',
0035                 'Т', 'П', 'Э', 'З', 'Й']
0036 
0037         $dict += concat_pairs(metrix_prefix, name)
0038 end
0039 
0040 def add_generic(name, suffix)
0041         $dict += concat_pairs(name, suffix)
0042 end
0043 
0044 suffix_1 = ['ы', '', 'а', 'ов', 'ах']
0045 
0046 add_generic('лат', suffix_1)
0047 add_generic('лит', suffix_1)
0048 add_generic('ринггит', suffix_1)
0049 add_generic('толар', suffix_1)
0050 add_generic('бат', suffix_1)
0051 add_generic('ранд', suffix_1)
0052 add_generic('вон', ['а', '', 'ы', 'ах'])
0053 add_generic('паундал', ['ь', 'и', 'ей', 'ях'])
0054 add_generic('кун', ['а', '', 'ы', 'ах'])
0055 
0056 add_metric('метр', suffix_1)
0057 add_metric('литр', suffix_1)
0058 add_metric('ньютон', suffix_1)
0059 add_metric('джоул', ['ь', 'я', 'ей', 'и', 'ях'])
0060 add_metric('герц', ['ы', 'а', '', 'ах'])
0061 add_metric('грамм', suffix_1)
0062 add_metric('паскал', ['ь', 'я', 'ей', 'ях', 'и'])
0063 add_metric('секунд', ['ы', '', 'а', 'ах'])
0064 add_metric('ватт', ['', 'а', 'ах', 'ы']) # не "ваттов"
0065 add_metric('бар', ['', 'а', 'ы', 'ах']) # не "баров"
0066 
0067 add_metric_ab('Дж')
0068 add_metric_ab('Н') # Newton
0069 add_metric_ab('Гц')
0070 add_metric_ab('м')
0071 add_metric_ab('г')
0072 add_metric_ab('Па')
0073 add_metric_ab('Вт')
0074 add_metric_ab('л')
0075 add_metric_ab('с')
0076 add_metric_ab('бар')
0077 
0078 # Write the dictionary
0079 File.open('units-generated.aspell', 'w') do |f|
0080         f.puts "personal_ws-1.1 ru 0 UTF-8"
0081 
0082         $dict.each do |s|
0083                 f.puts s
0084         end
0085 end
0086