import sql-ledger 2.4.4
[freeside.git] / sql-ledger / sql-ledger / locale / hu / Num2text
diff --git a/sql-ledger/sql-ledger/locale/hu/Num2text b/sql-ledger/sql-ledger/locale/hu/Num2text
new file mode 100644 (file)
index 0000000..82b1c70
--- /dev/null
@@ -0,0 +1,232 @@
+#=====================================================================\r
+# SQL-Ledger Accounting\r
+# Copyright (C) 2001\r
+#\r
+#  Author: Dieter Simader\r
+#   Email: dsimader@sql-ledger.org\r
+#     Web: http://www.sql-ledger.org\r
+#  Modified by: Medgyesi Aniko\r
+#  **********************************\r
+#  *#MEA1 * Hungarian version       *\r
+#  **********************************\r
+#  Contributors:\r
+#\r
+# This program is free software; you can redistribute it and/or modify\r
+# it under the terms of the GNU General Public License as published by\r
+# the Free Software Foundation; either version 2 of the License, or\r
+# (at your option) any later version.\r
+#\r
+# This program is distributed in the hope that it will be useful,\r
+# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+# GNU General Public License for more details.\r
+# You should have received a copy of the GNU General Public License\r
+# along with this program; if not, write to the Free Software\r
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r
+#=====================================================================\r
+#\r
+# this is the default code for the Check package\r
+#\r
+#=====================================================================\r
+\r
+sub init {\r
+  my $self = shift;\r
+#MEA1 English number ignored\r
+#   %{ $self->{numbername} } =\r
+#      (0 => 'Zero',\r
+#       1 => 'One',\r
+#       2 => 'Two',\r
+#            3 => 'Three',\r
+#                  4 => 'Four',\r
+#                  5 => 'Five',\r
+#                  6 => 'Six',\r
+#                  7 => 'Seven',\r
+#                  8 => 'Eight',\r
+#                  9 => 'Nine',\r
+#                 10 => 'Ten',\r
+#                 11 => 'Eleven',\r
+#                 12 => 'Twelve',\r
+#                 13 => 'Thirteen',\r
+#                 14 => 'Fourteen',\r
+#                 15 => 'Fifteen',\r
+#                 16 => 'Sixteen',\r
+#                 17 => 'Seventeen',\r
+#                 18 => 'Eighteen',\r
+#                 19 => 'Nineteen',\r
+#                 20 => 'Twenty',\r
+#                 30 => 'Thirty',\r
+#                 40 => 'Forty',\r
+#                 50 => 'Fifty',\r
+#                 60 => 'Sixty',\r
+#                 70 => 'Seventy',\r
+#                 80 => 'Eighty',\r
+#                 90 => 'Ninety',\r
+#   10**2 => 'Hundred',\r
+#   10**3 => 'Thousand',\r
+#              10**6 => 'Million',\r
+#              10**9 => 'Billion',\r
+#   10**12 => 'Trillion',\r
+# );\r
+#MEA1BEG Hungarian numbers\r
+  %{ $self->{numbername} } =\r
+           (0 => 'Nulla',\r
+            1 => 'egy',\r
+            2 => 'kettõ',\r
+               3 => 'három',\r
+                   4 => 'négy',\r
+                   5 => 'öt',\r
+                   6 => 'hat',\r
+                   7 => 'hét',\r
+                   8 => 'nyolc',\r
+                   9 => 'kilenc',\r
+                  10 => 'tíz',\r
+                  11 => 'tizenegy',\r
+                  12 => 'tizenkettõ',\r
+                  13 => 'tizenhárom',\r
+                  14 => 'tizennégy',\r
+                  15 => 'tizenöt',\r
+                  16 => 'tizenhat',\r
+                  17 => 'tizenhét',\r
+                  18 => 'tizennyolc',\r
+                  19 => 'tizenkilenc',\r
+                  20 => 'húsz',\r
+                  21 => 'huszonegy',\r
+                  22 => 'huszonkettõ',\r
+                  23 => 'huszonhárom',\r
+                  24 => 'huszonnégy',\r
+                  25 => 'huszonöt',\r
+                  26 => 'huszonhat',\r
+                  27 => 'huszonhét',\r
+                  28 => 'huszonnyolc',\r
+                  29 => 'huszonkilenc',\r
+                  30 => 'harminc',\r
+                  40 => 'negyven',\r
+                  50 => 'ötven',\r
+                  60 => 'hatvan',\r
+                  70 => 'hetven',\r
+                  80 => 'nyolcvan',\r
+                  90 => 'kilencven',\r
+        10**2 => 'száz',\r
+        10**3 => 'ezer',\r
+               10**6 => 'millió',\r
+               10**9 => 'milliárd',\r
+           10**12 => 'billió',\r
+               );\r
+#MEA1END\r
+\r
+}\r
+\r
+\r
+sub num2text {\r
+  my ($self, $amount) = @_;\r
+\r
+  return $self->{numbername}{0} unless $amount;\r
+\r
+  my @textnumber = ();\r
+\r
+  # split amount into chunks of 3\r
+  my @num = reverse split //, abs($amount);\r
+  my @numblock = ();\r
+  my @a;\r
+  my $i;\r
+#MEA1BEG\r
+  my $res;\r
+#MEA1END\r
+  while (@num) {\r
+    @a = ();\r
+    for (1 .. 3) {\r
+      push @a, shift @num;\r
+    }\r
+    push @numblock, join / /, reverse @a;\r
+  }\r
+  while (@numblock) {\r
+    $i = $#numblock;\r
+    @num = split //, $numblock[$i];\r
+\r
+    if ($numblock[$i] == 0) {\r
+      pop @numblock;\r
+      next;\r
+    }\r
+    if ($numblock[$i] > 99) {\r
+      push @textnumber, $self->{numbername}{$num[0]};\r
+\r
+      # add hundred designation\r
+      push @textnumber, $self->{numbername}{10**2};\r
+\r
+      # reduce numblock\r
+      $numblock[$i] -= $num[0] * 100;\r
+\r
+    }\r
+\r
+    $numblock[$i] *= 1;\r
+    if ($numblock[$i] > 9) {\r
+      # tens\r
+      push @textnumber, $self->format_ten($numblock[$i]);\r
+    } elsif ($numblock[$i] > 0) {\r
+      # ones\r
+      push @textnumber, $self->{numbername}{$numblock[$i]};\r
+    }\r
+\r
+    # add thousand, million\r
+    if ($i) {\r
+#MEA1BEG above 2000 need hyphen between treegroups\r
+#    if ($numblock[$i] > 9) {\r
+#       push @textnumber, $self->format_ten($numblock[$i]);\r
+#     } elsif ($numblock[$i] > 0) {\r
+#       push @textnumber, $self->{numbername}{$numblock[$i]};\r
+#     }\r
+      if ($i==1 && $amount < 2000){\r
+\r
+        $num = 10**($i * 3);\r
+        push @textnumber, $self->{numbername}{$num};\r
+      } else  {\r
+\r
+          $num = 10**($i * 3);\r
+          push @textnumber, $self->{numbername}{$num}."-";\r
+      }\r
+#MEA1END\r
+    }\r
+\r
+    pop @numblock;\r
+\r
+  }\r
+#MEA1BEG First charachter is uppercase\r
+# join '', @textnumber;\r
+  $res=ucfirst join '', @textnumber;\r
+#MEA1END\r
+#MEA1BEG  remove last hyphen\r
+  $res=~s/(\-)$//;\r
+  return $res;\r
+#MEA1END\r
+\r
+\r
+}\r
+\r
+\r
+sub format_ten {\r
+  my ($self, $amount) = @_;\r
+\r
+  my $textnumber = "";\r
+  my @num = split //, $amount;\r
+#MEA1BEG above 30 not above 20\r
+# if ($amount > 30) {\r
+  if ($amount > 30) {\r
+#MEA1END\r
+    $textnumber = $self->{numbername}{$num[0]*10};\r
+    $amount = $num[1];\r
+  } else {\r
+    $textnumber = $self->{numbername}{$amount};\r
+    $amount = 0;\r
+  }\r
+\r
+  $textnumber .= "".$self->{numbername}{$amount} if $amount;\r
+\r
+  $textnumber;\r
+\r
+}\r
+\r
+\r
+1;\r
+\r
+\r
+\r