turkish_numeric 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 29df8a76d18edcf7da4ba05ffb469626b89146760c7618aae45d517da61ebab5
4
- data.tar.gz: b3907fe5ab989fc6899c3ed0211070ebfa591836c466a889fcb6b0795901d1be
3
+ metadata.gz: 271ea6e0a9ca641c53d182ea49ce3511a5815eb21d424c7cad97f538e2744e4c
4
+ data.tar.gz: 681cae2db83a633cd474c81d22d38473a0b0588a93d5fecf34ee2bd521123248
5
5
  SHA512:
6
- metadata.gz: 2562228d34a67fa9dcff088ba07a3f7c6ccdf103e0d37516f19f2bc2c7e93fc6fac1437c4d6790d02d8d1d0f22025f75dc05e5a66ae7ee017c1683e1ed60508d
7
- data.tar.gz: 45d6147d125729765de105534711d3fa3be3369e62246e263b3013e5cd6fa50b3314e76529d16d85950e57d18ef7c2df68228664ce11e26fa0fe8317576698f1
6
+ metadata.gz: 0e618195377ce4199f55020de3977e9e8170435c469dc57fb7093373e62538c751a9974d587dea20e46762caa5cebf3c21930bd9c38fa4b4d9d7fb271afa8091
7
+ data.tar.gz: c9f2553ec242b3494c745701f4aec6512be7b27b57c24fa1e60ab3b493929ccdd57b16f2f526c2f673fb527a40b9f9b56d7d5bfd9c1c6a261b7febedfce5e85b
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ *.gem
1
2
  /.bundle/
2
3
  /.yardoc
3
4
  /_yardoc/
data/.rubocop.yml CHANGED
@@ -1,5 +1,6 @@
1
1
  AllCops:
2
2
  TargetRubyVersion: 2.7.0
3
+ NewCops: enable
3
4
 
4
5
  Style/StringLiterals:
5
6
  Enabled: true
@@ -21,3 +22,4 @@ Style/MixinUsage:
21
22
  Metrics/BlockLength:
22
23
  Exclude:
23
24
  - 'spec/*'
25
+
data/.travis.yml CHANGED
@@ -3,4 +3,4 @@ language: ruby
3
3
  cache: bundler
4
4
  rvm:
5
5
  - 2.7.0
6
- before_install: gem install bundler -v 2.2.5
6
+ before_install: gem install bundler -v 2.2.8
data/Gemfile CHANGED
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  source 'https://rubygems.org'
4
-
5
- # Specify your gem's dependencies in turkish_numeric.gemspec
6
4
  gemspec
7
5
 
8
6
  gem 'rake', '~> 13.0'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- turkish_numeric (0.0.1)
4
+ turkish_numeric (0.1.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -49,6 +49,7 @@ GEM
49
49
 
50
50
  PLATFORMS
51
51
  x86_64-darwin-19
52
+ x86_64-linux
52
53
 
53
54
  DEPENDENCIES
54
55
  rake (~> 13.0)
@@ -59,4 +60,4 @@ DEPENDENCIES
59
60
  turkish_numeric!
60
61
 
61
62
  BUNDLED WITH
62
- 2.2.5
63
+ 2.2.8
data/README.md CHANGED
@@ -1,11 +1,6 @@
1
- # TurkishNumeric
1
+ # TurkishNumeric [![Gem Version](https://badge.fury.io/rb/turkish_numeric.svg)](https://badge.fury.io/rb/turkish_numeric) [![Build Status](https://travis-ci.com/sbagdat/turkish_numeric.svg?branch=main)](https://travis-ci.com/sbagdat/turkish_numeric) [![Code Climate](https://codeclimate.com/github/sbagdat/turkish_numeric/badges/gpa.svg)](https://codeclimate.com/github/sbagdat/turkish_numeric) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/turkish_numeric.svg)](https://badge.fury.io/rb/turkish_numeric)
4
- [![Build Status](https://travis-ci.com/sbagdat/turkish_numeric.svg?branch=main)](https://travis-ci.com/sbagdat/turkish_numeric)
5
- [![Code Climate](https://codeclimate.com/github/sbagdat/turkish_numeric/badges/gpa.svg)](https://codeclimate.com/github/sbagdat/turkish_numeric)
6
- [![Coverage Status](https://coveralls.io/repos/github/sbagdat/turkish_numeric/badge.svg?branch=main)](https://coveralls.io/github/sbagdat/turkish_numeric?branch=main)
7
-
8
- Translate any numeric value into Turkish text.
3
+ Translate any numeric value into Turkish text, currency notation and text representation of money.
9
4
 
10
5
  ## Installation
11
6
 
@@ -25,21 +20,75 @@ Or install it yourself as:
25
20
 
26
21
  ## Usage
27
22
 
28
- After the installation of the gem, you can use it as shown below:
23
+ First, you should require the gem (if you are using rails you don't need to require).
29
24
 
30
25
  ```ruby
31
26
  require 'turkish_numeric'
27
+ ```
32
28
 
29
+ If you like shorter code lines you can include the module and can use `TrNum(numeric_value)` utility method.
30
+ Otherwise you should use `TurkishNumeric::TrNum.new(numeric_value)` or `TurkishNumeric.TrNum(numeric_value)`.
31
+ At the examples below, shorter version is used.
32
+
33
+ ```ruby
33
34
  include TurkishNumeric
35
+ ```
36
+
37
+ ### Translating integer numbers
34
38
 
35
- # Translating integers
39
+ ```ruby
40
+ TrNum(0).to_text # => "sıfır"
36
41
  TrNum(34_430_002).to_text # => "otuz dört milyon dört yüz otuz bin iki"
42
+ TrNum(-999999).to_text # => "eksi dokuz yüz doksan dokuz bin dokuz yüz doksan dokuz"
43
+ ```
44
+
45
+ You can translate any integer value from **-999 * 10<sup>63</sup>** to **999 * 10<sup>63</sup>**.
46
+
47
+ ```ruby
48
+ TrNum(999_000_000_999_000_000_000_000_000_000_000_000_000_000_009_900_000_000_000_000_000_000).to_text
49
+ # => "dokuz yüz doksan dokuz vigintilyon dokuz yüz doksan dokuz septendesilyon dokuz sekstilyon dokuz yüz kentilyon"
50
+ ```
51
+
52
+ ### Translating floating point numbers
53
+
54
+ ```ruby
55
+ TrNum(1234.00001).to_text # => "bin iki yüz otuz dört tam yüz binde bir"
56
+ TrNum(34_430_002.45).to_text # => "otuz dört milyon dört yüz otuz bin iki yüzde kırk beş"
57
+ TrNum(12.00120012).to_text # => "on iki tam yüz milyonda yüz yirmi bin on iki"
58
+ TrNum(0.9999999999999999).to_text
59
+ # => "sıfır tam on katrilyonda dokuz katrilyon dokuz yüz doksan dokuz trilyon dokuz yüz doksan dokuz
60
+ # milyar dokuz yüz doksan dokuz milyon dokuz yüz doksan dokuz bin dokuz yüz doksan dokuz"
61
+ ```
62
+
63
+ ### Translating as money
64
+
65
+ ```ruby
66
+ TrNum(12.34).to_money # => "₺12,34"
67
+ TrNum(120.34).to_money # => "₺0,34"
68
+ TrNum(343_211_122_332.45).to_money # => "₺343.211.122.332,45"
69
+ ```
70
+
71
+ Custom currency symbol, thousand seperator, and penny seperator are also supported.
37
72
 
38
- # Translating floats
39
- TrNum(1234.00001).to_text # => "bin iki yüz otuz dört tam yüz binde bir"
73
+ ```ruby
74
+ TrNum(12_332.45).to_money(symbol: '€',
75
+ thousand_sep: ',',
76
+ penny_sep: '.')
77
+ # => "€12,332.45"
40
78
  ```
41
79
 
42
- For more examples look at teh test files [here](spec/tr_num_spec.rb)
80
+ ### Translating as money text
81
+
82
+ ```ruby
83
+ TrNum(234.05).to_money_text # => "ikiyüzotuzdörtTL,beşkr"
84
+ TrNum(600_000.125).to_money_text # => "altıyüzbinTL,onikikr"
85
+ ```
86
+
87
+ Custom currency and sub currency are also supported.
88
+ ```ruby
89
+ TrNum(234.45).to_money_text(currency: 'USD', sub_currency: 'sent')
90
+ # => 'ikiyüzotuzdörtUSD,kırkbeşsent'
91
+ ```
43
92
 
44
93
  ## Development
45
94
 
@@ -1,10 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'turkish_numeric/version'
4
+ require_relative 'turkish_numeric/number_presenter'
4
5
  require_relative 'turkish_numeric/tr_num'
5
6
 
7
+ # Responsible for converting numerical values into Turkish texts,
8
+ # currency nototaion, or text representation of money.
6
9
  module TurkishNumeric
7
- def TrNum(num)
10
+ # Helper to create TrNum objects quickly
11
+ #
12
+ # @param [Integer, Float] num
13
+ # @return [TurkishNumeric::TrNum]
14
+ def TrNum(num) # rubocop:disable Naming/MethodName
8
15
  TrNum.new(num)
9
16
  end
10
17
  end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TurkishNumeric
4
+ # Responsible for providing helper methods to present numbers as text
5
+ module NumberPresenter
6
+ # Create thousand seperated representaion of numeric value
7
+ #
8
+ # @param [Integer] numeric
9
+ # @param [String] sep
10
+ # @return [String]
11
+ def thousands_separated(numeric, sep: '.')
12
+ numeric.digits.each_slice(3).map(&:join).join(sep).reverse
13
+ end
14
+
15
+ # Creates single spaced string representation of the argument
16
+ #
17
+ # @param [Array] parts
18
+ # @return [String]
19
+ def text_spaced(*parts)
20
+ parts.flatten.compact.join(' ')
21
+ end
22
+
23
+ # Creates non-spaced string representation of the argument
24
+ #
25
+ # @param [Array] parts
26
+ # @return [String]
27
+ def text_non_spaced(*parts)
28
+ parts.join
29
+ end
30
+
31
+ # Extracts pennies from the argument
32
+ #
33
+ # @param [Integer] numeric
34
+ # @return [Integer]
35
+ def to_pennies(numeric)
36
+ return numeric if numeric < 100
37
+
38
+ numeric.to_s[0, 2].to_i
39
+ end
40
+ end
41
+ end
@@ -5,40 +5,64 @@ module TurkishNumeric
5
5
  %w[_ bir iki üç dört beş altı yedi sekiz dokuz].freeze,
6
6
  %w[_ on yirmi otuz kırk elli altmış yetmiş seksen doksan].freeze
7
7
  ].freeze
8
-
9
8
  SUBFIX = %w[yüz bin milyon milyar trilyon katrilyon kentilyon sekstilyon septilyon oktilyon
10
- nonilyon desilyon undesilyon dodesilyon trodesilyon katordesilyon kendesilyon seksdesilyon
11
- septendesilyon oktodesilyon novemdesilyon vigintilyon].freeze
9
+ nonilyon desilyon undesilyon dodesilyon trodesilyon katordesilyon kendesilyon
10
+ seksdesilyon septendesilyon oktodesilyon novemdesilyon vigintilyon].freeze
12
11
 
12
+ # Represents a number in Turkish language
13
13
  class TrNum
14
+ include NumberPresenter
15
+
16
+ # A new instance of TrNum
17
+ #
18
+ # @param [Integer, Float] number
19
+ # @return [TurkishNumeric::TrNum]
14
20
  def initialize(number)
15
- parse_sign(number)
16
- parse_number_parts(number)
21
+ @sign = 'eksi' if number.negative?
22
+ @decimal = Integer(number.abs)
23
+ fraction_str = number.to_s.split('.')[1] || '0'
24
+ @fraction_size = fraction_str.size
25
+ @fraction = Integer(fraction_str, 10)
17
26
  end
18
27
 
19
- def to_text(spaces: true)
20
- text = translate_decimal_part
21
- text += [fractional_prefix] + translate_fractional_part unless fraction.zero?
22
- clean_text(text, spaces)
28
+ # Translate numeric value into Turkish text
29
+ #
30
+ # @return [String]
31
+ def to_text
32
+ decimal_part = translate_partition(decimal)
33
+ fractional_part = fraction.zero? ? nil : [fractional_prefix, translate_partition(fraction)]
34
+ text_spaced(sign, decimal_part, fractional_part)
23
35
  end
24
36
 
25
- private
26
-
27
- attr_accessor :sign, :decimal, :fraction, :fraction_size, :current_processing_part
28
-
29
- def clean_text(text, spaces)
30
- text = text.flatten.delete_if(&:empty?).join(' ').strip
31
- spaces ? text.gsub(/\s+/, ' ') : text.gsub(' ', '').gsub('eksi', 'eksi ')
32
- # TODO: Add test for non-spaced representation
37
+ # Translate numeric value into currency notation
38
+ #
39
+ # @param [String] symbol
40
+ # @param [String] thousand_sep
41
+ # @param [String] penny_sep
42
+ # @return [String]
43
+ def to_money(symbol: '', thousand_sep: '.', penny_sep: ',')
44
+ [symbol,
45
+ thousands_separated(decimal, sep: thousand_sep),
46
+ penny_sep,
47
+ to_pennies(fraction)].join
33
48
  end
34
49
 
35
- def translate_fractional_part
36
- translate_partition(fraction)
50
+ # Translate numeric value into text representaion of money
51
+ #
52
+ # @param [String] currency
53
+ # @param [String] sub_currency
54
+ # @return [String]
55
+ def to_money_text(currency: 'TL', sub_currency: 'kr')
56
+ pennies = to_pennies(fraction)
57
+ decimal_part = decimal.zero? ? nil : [translate_partition(decimal), currency, ',']
58
+ fractional_part = pennies&.zero? ? nil : [translate_partition(pennies), sub_currency]
59
+ text_non_spaced(sign, decimal_part, fractional_part)
37
60
  end
38
61
 
39
- def translate_decimal_part
40
- [sign] + translate_partition(decimal)
41
- end
62
+ private
63
+
64
+ attr_reader :sign, :decimal, :fraction_size, :fraction
65
+ attr_accessor :current_processing_part
42
66
 
43
67
  def translate_partition(partition)
44
68
  self.current_processing_part = partition
@@ -47,29 +71,14 @@ module TurkishNumeric
47
71
  end.reverse
48
72
  end
49
73
 
50
- def fractional_prefix
51
- prefix = self.class.new(10**fraction_size).to_text
52
- "tam #{prefix}#{prefix.end_with?('yüz', 'bin') ? 'de' : 'da'}".gsub('bir', '')
53
- end
54
-
55
- def parse_sign(number)
56
- self.sign = number.negative? ? 'eksi' : ''
57
- end
58
-
59
74
  def translate_triplet(triplet, tri_idx)
60
75
  triplet.map.with_index do |num, idx|
61
76
  digit = translate_digit(num, idx, triplet)
62
- "#{digit}#{subfix(num, tri_idx * 3 + idx) unless triplet.all?(&:zero?)}"
77
+ subfix = triplet.all?(&:zero?) ? nil : subfix(num, tri_idx * 3 + idx)
78
+ [digit, subfix]
63
79
  end.reverse
64
80
  end
65
81
 
66
- def parse_number_parts(number)
67
- self.decimal = Integer(number.abs)
68
- fraction_str = number.to_s.split('.')[1] || '0'
69
- self.fraction_size = fraction_str.size
70
- self.fraction = Integer(fraction_str)
71
- end
72
-
73
82
  def translate_digit(digit, pos, triplet)
74
83
  case digit
75
84
  when 0 then translate_zero
@@ -78,21 +87,26 @@ module TurkishNumeric
78
87
  end
79
88
  end
80
89
 
90
+ def fractional_prefix
91
+ prefix = self.class.new(10**fraction_size).to_text.gsub('bir', '').lstrip
92
+ "tam #{prefix}#{prefix.end_with?('yüz', 'bin') ? 'de' : 'da'}"
93
+ end
94
+
81
95
  def translate_zero
82
- current_processing_part.to_s.size == 1 ? 'sıfır' : ''
96
+ current_processing_part.to_s.size == 1 ? 'sıfır' : nil
83
97
  end
84
98
 
85
99
  def translate_one(digit, pos, triplet)
86
- return '' if triplet.size == 1 && current_processing_part.to_s.size == 4
100
+ return nil if triplet.size == 1 && current_processing_part.to_s.size == 4
87
101
 
88
- 0.step(66, 3).include?(pos) || pos % 3 == 1 ? MAPPINGS[pos % 2][digit] : ''
102
+ 0.step(66, 3).include?(pos) || pos % 3 == 1 ? MAPPINGS[pos % 2][digit] : nil
89
103
  end
90
104
 
91
105
  def subfix(digit, pos)
92
106
  sub_pos = pos % 3
93
- return " #{SUBFIX[0]}" if sub_pos == 2 && !digit.zero?
107
+ return SUBFIX[0] if sub_pos == 2 && !digit.zero?
94
108
 
95
- pos >= 3 && sub_pos.zero? ? " #{SUBFIX[pos / 3]}" : ''
109
+ pos >= 3 && sub_pos.zero? ? SUBFIX[pos / 3] : nil
96
110
  end
97
111
  end
98
112
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TurkishNumeric
4
- VERSION = '0.0.1'
4
+ VERSION = '0.1.0'
5
5
  end
data/spec/tr_num_spec.rb CHANGED
@@ -49,8 +49,10 @@ RSpec.describe TurkishNumeric do
49
49
  { 0.5 => 'sıfır tam onda beş',
50
50
  0.555 => 'sıfır tam binde beş yüz elli beş',
51
51
  3.14 => 'üç tam yüzde on dört',
52
+ 12.0012 => 'on iki tam on binde on iki',
52
53
  1234.00001 => 'bin iki yüz otuz dört tam yüz binde bir',
53
- 213_321_323.321232 => 'iki yüz on üç milyon üç yüz yirmi bir bin üç yüz yirmi üç tam milyonda üç yüz yirmi bir bin iki yüz otuz iki' }.freeze
54
+ 213_321_323.321232 => 'iki yüz on üç milyon üç yüz yirmi bir bin üç yüz yirmi üç tam milyonda üç yüz yirmi bir bin iki yüz otuz iki',
55
+ 0.9999999999999999 => 'sıfır tam on katrilyonda dokuz katrilyon dokuz yüz doksan dokuz trilyon dokuz yüz doksan dokuz milyar dokuz yüz doksan dokuz milyon dokuz yüz doksan dokuz bin dokuz yüz doksan dokuz' }.freeze
54
56
  end
55
57
 
56
58
  context 'parsing parts' do
@@ -70,19 +72,50 @@ RSpec.describe TurkishNumeric do
70
72
  end
71
73
  end
72
74
 
73
- context 'translates integer numbers into text' do
74
- it 'works for samples' do
75
- sample_integers.each do |num, text|
76
- expect(TrNum.new(num).to_text).to eq text
75
+ context '#to_text' do
76
+ context 'translates integer numbers into text' do
77
+ it 'works for samples' do
78
+ sample_integers.each do |num, text|
79
+ expect(TrNum.new(num).to_text).to eq text
80
+ end
77
81
  end
78
82
  end
79
- end
80
83
 
81
- context 'translates floating point numbers into text' do
82
- it 'works for samples' do
83
- sample_floats.each do |num, text|
84
- expect(TrNum.new(num).to_text).to eq text
84
+ context 'translates floating point numbers into text' do
85
+ it 'works for samples' do
86
+ sample_floats.each do |num, text|
87
+ expect(TrNum.new(num).to_text).to eq text
88
+ end
85
89
  end
86
90
  end
87
91
  end
92
+
93
+ context '#to_money' do
94
+ it 'converts numerical format as currency' do
95
+ expect(TrNum(234.45).to_money).to eq '₺234,45'
96
+ expect(TrNum(0.115).to_money).to eq '₺0,11'
97
+ end
98
+
99
+ it 'uses thousand seperators' do
100
+ expect(TrNum(12_332.45).to_money).to eq '₺12.332,45'
101
+ expect(TrNum(343_211_122_332.45).to_money).to eq '₺343.211.122.332,45'
102
+ end
103
+
104
+ it 'works with custom symbol and seperators' do
105
+ expect(TrNum(12_332.45).to_money(symbol: '€', thousand_sep: ',', penny_sep: '.')).to eq '€12,332.45'
106
+ end
107
+ end
108
+
109
+ context '#to_money_text' do
110
+ it 'translates money to turkish lira' do
111
+ expect(TrNum(234.45).to_money_text).to eq 'ikiyüzotuzdörtTL,kırkbeşkr'
112
+ expect(TrNum(234.05).to_money_text).to eq 'ikiyüzotuzdörtTL,beşkr'
113
+ expect(TrNum(600_000.125).to_money_text).to eq 'altıyüzbinTL,onikikr'
114
+ expect(TrNum(0.15).to_money_text).to eq 'onbeşkr'
115
+ end
116
+
117
+ it 'translates money to custom currency' do
118
+ expect(TrNum(234.45).to_money_text(currency: 'USD', sub_currency: 'sent')).to eq 'ikiyüzotuzdörtUSD,kırkbeşsent'
119
+ end
120
+ end
88
121
  end
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.email = ['sbagdat@gmail.com']
10
10
 
11
11
  spec.summary = 'Translate any numeric value into Turkish text.'
12
- spec.description = 'Translate any numeric value into Turkish text.'
12
+ spec.description = 'Translate any numeric value into Turkish text, currency notation, or text representation of money.'
13
13
  spec.homepage = 'https://github.com/sbagdat/turkish_numeric'
14
14
  spec.license = 'MIT'
15
15
 
metadata CHANGED
@@ -1,16 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turkish_numeric
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sıtkı Bağdat
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-05 00:00:00.000000000 Z
11
+ date: 2021-02-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: Translate any numeric value into Turkish text.
13
+ description: Translate any numeric value into Turkish text, currency notation, or
14
+ text representation of money.
14
15
  email:
15
16
  - sbagdat@gmail.com
16
17
  executables:
@@ -20,12 +21,6 @@ extensions: []
20
21
  extra_rdoc_files: []
21
22
  files:
22
23
  - ".gitignore"
23
- - ".idea/.gitignore"
24
- - ".idea/inspectionProfiles/Project_Default.xml"
25
- - ".idea/modules.xml"
26
- - ".idea/redis-manager-config.xml"
27
- - ".idea/turkish_numeric.iml"
28
- - ".idea/vcs.xml"
29
24
  - ".rspec"
30
25
  - ".rubocop.yml"
31
26
  - ".travis.yml"
@@ -39,6 +34,7 @@ files:
39
34
  - bin/console
40
35
  - bin/setup
41
36
  - lib/turkish_numeric.rb
37
+ - lib/turkish_numeric/number_presenter.rb
42
38
  - lib/turkish_numeric/tr_num.rb
43
39
  - lib/turkish_numeric/version.rb
44
40
  - spec/spec_helper.rb
@@ -64,7 +60,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
64
60
  - !ruby/object:Gem::Version
65
61
  version: '0'
66
62
  requirements: []
67
- rubygems_version: 3.2.5
63
+ rubygems_version: 3.2.8
68
64
  signing_key:
69
65
  specification_version: 4
70
66
  summary: Translate any numeric value into Turkish text.