Papla Build Status

Papla is a Ruby gem that allows you to convert numbers into Polish and English words (e.g. 153 into "Sto pięćdziesiąt trzy" or 44 into "Forty four"), including the decimal part as cents and currency symbol. Its primary use case are invoices, where the total amount has to be displayed as words at the bottom line.


To install Papla, run

gem install papla

or add

gem 'papla'

to your Gemfile.


Basic examples

I18n.locale = :pl
Papla[158] # => "Sto pięćdziesiąt osiem"
Papla[1_234] # => "Tysiąc dwieście trzydzieści cztery"
Papla[987_654_321] # => "Dziewięćset osiemdziesiąt siedem milionów sześćset pięćdziesiąt cztery tysiące trzysta dwadzieścia jeden"

I18n.locale = :en
Papla[1_234] # => "One thousand two hundred thirty four"


When given a Float, Papla will assume that the decimal part represents cents. It will then round the number using Float#round to two decimal places, and append the number of cents divided by hundred to the resulting string.


Papla[1.0] # => "Jeden 00/100"
Papla[87.654321] # => "Osiemdziesiąt siedem 65/100"
Papla[2.999] # => "Trzy 00/100"


If you're using the money gem, you can pass in an instance of Money to Papla. The returned string will contain the dollars part as words, the cents part as 'xx/100' and the currency string (e.g. EUR).


eleven_and_a_half_pounds =, 'GBP')
Papla[eleven_and_a_half_pounds] # => "Jedenaście 50/100 GBP"

I18n.locale = :en
discounted_price =, 'PLN')
Papla[discounted_price] # => "Ninety nine 99/100 PLN"


Localization is provided by I18n. See lib/papla/backend.rb for details of keys used. Currently :pl and :en locales are supported.

Note: English support is not fully correct, e.g. 123 becomes "One hundred twenty three" and not "One hundred and twenty three".


Documentation is available at