Skip to content

Commit

Permalink
#77 Merge branch 'feature/add_lithuanian_language' into development
Browse files Browse the repository at this point in the history
  • Loading branch information
kslazarev committed Jul 3, 2013
2 parents 0c9aaeb + ecfbf54 commit b86264b
Show file tree
Hide file tree
Showing 10 changed files with 219 additions and 2 deletions.
11 changes: 11 additions & 0 deletions README.rdoc
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ Számok betűvel írva az I18n könyvtár segítségével.
* Українська [ua]
* Magyar [hu]
* Latviešu [lv]
* Lietuvių [lt]
* Türkçe** [tr]
* Deutsch** [de]
* Italiano** [it]
Expand Down Expand Up @@ -60,6 +61,9 @@ Számok betűvel írva az I18n könyvtár segítségével.
I18n.with_locale(:lv) { 42.to_words }
=> "četrdesmit divi"

I18n.with_locale(:lt) { 42.to_words }
=> "keturiasdešimt du"

21.to_words
=> "twenty-one"
=> "veintiuno"
Expand All @@ -73,6 +77,7 @@ Számok betűvel írva az I18n könyvtár segítségével.
=> "éénentwintig"
=> "tjugo-en"
=> "divdesmit viens"
=> "dvidešimt vienas"

231.to_words
=> "two hundred thirty-one"
Expand All @@ -87,6 +92,7 @@ Számok betűvel írva az I18n könyvtár segítségével.
=> "tweehonderdéénendertig"
=> "två hundra trettio-en"
=> "divi simti trīsdesmit viens"
=> "du šimtai trisdešimt vienas"

4030.to_words
=> "four thousand thirty"
Expand All @@ -101,6 +107,7 @@ Számok betűvel írva az I18n könyvtár segítségével.
=> "vierthousanddertig"
=> "fyra tusen trettio"
=> "četri tūkstoši simts trīsdesmit"
=> "keturi tūkstančiai trisdešimt"

1000100.to_words
=> "one million one hundred"
Expand All @@ -115,6 +122,7 @@ Számok betűvel írva az I18n könyvtár segítségével.
=> "één miljoen honderd"
=> "en miljoner en hundra"
=> "viens miljons simts"
=> "milijonas šimtas"

1000000000000000000000000000000000.to_words
=> "one decillion"
Expand All @@ -129,6 +137,7 @@ Számok betűvel írva az I18n könyvtár segítségével.
=> "één decillion"
=> "en decillion"
=> "viens deciljons"
=> "vienas decilijonas"

[1, 2, 3].to_words
=> ["one", "two", "three"]
Expand All @@ -137,6 +146,7 @@ Számok betűvel írva az I18n könyvtár segítségével.
=> ["un", "deux", "trois"]
=> ["egy", "kettő", "három"]
=> ["viens", "divi", "trīs"]
=> ["vienas", "du", "trys"]

[11, 22, 133].to_words
=> ["eleven", "twenty-two", "one hundred thirty-three"]
Expand All @@ -151,6 +161,7 @@ Számok betűvel írva az I18n könyvtár segítségével.
=> ["elf", "tweeentwintig", "honderddrieendertig"]
=> ["elva", "tjugo-två", "en hundra trettio-tre"]
=> ["vienpadsmit", "divdesmit divi", "simts trīsdesmit trīs"]
=> ["vienuolika", "dvidešimt du", "šimtas trisdešimt trys"]

21.77.to_words
=> "twenty-one and seventy-seven hundredths"
Expand Down
52 changes: 52 additions & 0 deletions lib/numbers_and_words/i18n/locales/numbers.lt.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
lt:
numbers:
ones: [nulis, vienas, du, trys, keturi, penki, šeši, septyni, aštuoni, devyni]
teens: [dešimt, vienuolika, dvylika, trylika, keturiolika, penkiolika, šešiolika, septyniolika, aštuoniolika, devyniolika]
tens: [nulis, dešimt, dvidešimt, trisdešimt, keturiasdešimt, penkiasdešimt, šešiasdešimt, septyniasdešimt, aštuoniasdešimt, devyniasdešimt]
mega: [ones, thousands, millions, billions, trillions, quadrillions, quintillion, sextillions, septillions, octillions, nonillions, decillions]
hundreds: [šimtas, du šimtai, trys šimtai, keturi šimtai, penki šimtai, šeši šimtai, septyni šimtai, aštuoni šimtai, devyni šimtai]
one_hundred: šimtas
thousands:
one: tūkstantis
ones: tūkstančiai
other: tūkstančių
millions:
one: milijonas
ones: milijonai
other: milijonø
billions:
one: bilijonas
ones: bilijonai
other: bilijonø
trillions:
one: trilijonas
ones: trilijonai
other: trilijonø
quadrillions:
one: kvadrilijonas
ones: kvadrilijonai
other: kvadrilijonø
quintillions:
one: kvintilijonas
ones: kvadrilijonai
other: kvadrilijonø
sextillions:
one: sekstilijonas
ones: sekstilijonai
other: sekstilijonø
septillions:
one: septilijonas
ones: septilijonai
other: septilijonø
octillions:
one: oktilijonas
ones: oktilijonai
other: oktilijonø
nonillions:
one: nonilijonas
ones: nonilijonai
other: nonilijonø
decillions:
one: decilijonas
ones: decilijonai
other: decilijonø
1 change: 1 addition & 0 deletions lib/numbers_and_words/i18n/pluralization.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
require 'numbers_and_words/i18n/plurals/fr'
require 'numbers_and_words/i18n/plurals/es'
require 'numbers_and_words/i18n/plurals/lv'
require 'numbers_and_words/i18n/plurals/lt'

module NumbersAndWords
module I18n
Expand Down
24 changes: 24 additions & 0 deletions lib/numbers_and_words/i18n/plurals/lt.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
module NumbersAndWords
module I18n
module Plurals
module Lt
RULE = lambda do |n|
one_conditions(n) ?
:one : ones_conditions(n) ?
:ones : :other
end

extend self

def one_conditions n
n % 10 == 1 && n % 100 != 11
end

def ones_conditions n
[2, 3, 4, 5, 6, 7, 8, 9].include?(n % 10) && ![12, 13, 14, 15, 16, 17, 18, 19].include?(n % 100)
end
end
end
end
end

Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
require 'numbers_and_words/strategies/figures_converter/languages/tr'
require 'numbers_and_words/strategies/figures_converter/languages/es'
require 'numbers_and_words/strategies/figures_converter/languages/lv'
require 'numbers_and_words/strategies/figures_converter/languages/lt'
require 'numbers_and_words/strategies/figures_converter/languages/de'

require 'numbers_and_words/strategies/figures_converter/languages/families/cyrillic'
Expand All @@ -35,4 +36,4 @@ def factory strategy
end
end
end
end
end
37 changes: 37 additions & 0 deletions lib/numbers_and_words/strategies/figures_converter/languages/lt.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
module NumbersAndWords
module Strategies
module FiguresConverter
module Languages
class Lt < Base
include Families::Latin

private

def capacity_iteration
words = []
capacity_words = words_in_capacity(@current_capacity)
words.push(megs) unless capacity_words.empty?
words += capacity_words unless is_a_thousand? and is_a_one?
words
end

def is_a_one?
[translations.ones(1)] == words_in_capacity(@current_capacity)
end

def is_a_thousand?
FiguresArray::THOUSAND_CAPACITY == @current_capacity
end

def hundreds
super({:is_hundred => (figures[1,2] == [0,1] && simple_number_to_words.empty?)})
end

def megs
super({:number => @figures.number_in_capacity(@current_capacity)})
end
end
end
end
end
end
3 changes: 2 additions & 1 deletion lib/numbers_and_words/translations.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
require 'numbers_and_words/translations/se'
require 'numbers_and_words/translations/es'
require 'numbers_and_words/translations/lv'
require 'numbers_and_words/translations/lt'
require 'numbers_and_words/translations/de'

module NumbersAndWords
Expand All @@ -25,4 +26,4 @@ def factory
end
end
end
end
end
21 changes: 21 additions & 0 deletions lib/numbers_and_words/translations/lt.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
module NumbersAndWords
module Translations
class Lt < Base
include NumbersAndWords::Translations::Families::Latin

def tens number, options = {}
super(number)
end

def tens_with_ones numbers, options = {}
[tens(numbers[1], :alone => false), ones(numbers[0])].join ' '
end


def hundreds number, options = {}
options[:is_hundred] = false if options[:is_hundred].nil?
options[:is_hundred] ? t(:one_hundred) : t(:hundreds)[number - 1]
end
end
end
end
19 changes: 19 additions & 0 deletions spec/numbers_and_words/array/fixture_examples/lt.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
to_words:
simple_example:
?
- 1
- 2
- 3
:
- vienas
- du
- trys
complex_example:
?
- 101
- 21
- 13
:
- šimtas vienas
- dvidešimt vienas
- trylika
50 changes: 50 additions & 0 deletions spec/numbers_and_words/integer/fixture_examples/lt.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
to_words:
ones:
0: nulis
1: vienas
9: devyni
teens:
10: dešimt
11: vienuolika
19: devyniolika
20: dvidešimt
21: dvidešimt vienas
90: devyniasdešimt
99: devyniasdešimt devyni
hundreds:
100: šimtas
101: šimtas vienas
111: šimtas vienuolika
120: šimtas dvidešimt
121: šimtas dvidešimt vienas
900: devyni šimtai
909: devyni šimtai devyni
919: devyni šimtai devyniolika
990: devyni šimtai devyniasdešimt
999: devyni šimtai devyniasdešimt devyni
thousands:
1000: tūkstantis
2000: du tūkstančiai
4000: keturi tūkstančiai
5000: penki tūkstančiai
11000: vienuolika tūkstančių
21000: dvidešimt vienas tūkstantis
999000: devyni šimtai devyniasdešimt devyni tūkstančiai
999999: devyni šimtai devyniasdešimt devyni tūkstančiai devyni šimtai devyniasdešimt devyni
millions:
1000000: vienas milijonas
2000000: du milijonai
4000000: keturi milijonai
5000000: penki milijonai
999000000: devyni šimtai devyniasdešimt devyni milijonai
999000999: devyni šimtai devyniasdešimt devyni milijonai devyni šimtai devyniasdešimt devyni
999999000: devyni šimtai devyniasdešimt devyni milijonai devyni šimtai devyniasdešimt devyni tūkstančiai
999999999: devyni šimtai devyniasdešimt devyni milijonai devyni šimtai devyniasdešimt devyni tūkstančiai devyni šimtai devyniasdešimt devyni
billions:
1174315110: vienas bilijonas šimtas septyniasdešimt keturi milijonai trys šimtai penkiolika tūkstančių šimtas dešimt
1174315119: vienas bilijonas šimtas septyniasdešimt keturi milijonai trys šimtai penkiolika tūkstančių šimtas devyniolika
15174315110: penkiolika bilijonø šimtas septyniasdešimt keturi milijonai trys šimtai penkiolika tūkstančių šimtas dešimt
35174315119: trisdešimt penki bilijonai šimtas septyniasdešimt keturi milijonai trys šimtai penkiolika tūkstančių šimtas devyniolika
935174315119: devyni šimtai trisdešimt penki bilijonai šimtas septyniasdešimt keturi milijonai trys šimtai penkiolika tūkstančių šimtas devyniolika
trillions:
2935174315119: du trilijonai devyni šimtai trisdešimt penki bilijonai šimtas septyniasdešimt keturi milijonai trys šimtai penkiolika tūkstančių šimtas devyniolika

0 comments on commit b86264b

Please sign in to comment.