changing the currency

Help
2007-03-16
2016-08-02
  • Nobody/Anonymous

    Hello, how do i change the currency for the payments, charges, fines for late books..i want to change the dollar sign $ to our currency which is philippine peso (Php).

     
    • Hans van der Weij

      Quick answer, not sure if the following will work for you.

      Second subparagraph from
      http://obiblio.sourceforge.net/index.php/Main/TranslatingOpenBiblio
      says:
      First, you need to copy all of the files under locale/en to a new directory called locale/xx, where 'xx' is the code you want to use for your locale. There is no current standard for choosing these codes. In the future, we will probably use a lowercase language code followed by an underscore and an uppercase country code, e.g en_US, en_UK, de_DE. But right now most translations just use a lowercase, 2-letter county code.

      OpenBiblio passes the code (based on directory name) to PHP and this sets the locale for the server OpenBiblio is running on.

      This answer does not tell you: 
      - If philippine peso currency is supported by PHP locale
      - What code should be used for the server operating system where your OpenBiblio is installed.

       
    • Nobody/Anonymous

      Thanks for the help.. ^_^ i really appreciate it. :)

       
    • Nobody/Anonymous

      This doesnt solve my problem, but thanks a lot ive learned many things.. so that means that i cant change the currency to PHP? coz theirs no current standard for these codes? am i right?

       
      • Nobody/Anonymous

        I don't have a clue, perhaps you can try:

        Windows:
        php
        eng_php
        usa_php
        philippines

        Linux / unix:
        en_PH

        H.

         
    • Nobody/Anonymous

      nothing happens.. hehe.. just "L"

       
    • Nobody/Anonymous

      i have an idea.. how about if i will delete the dollar sign?  but cant find the code where to delete the code.. can you help me?

       
      • Micah Stetson

        Micah Stetson - 2007-03-21

        That particular code is rather convoluted because it tries to use PHP's locale functions.  It's in functions/formatFuncs.php and the functions is called moneyFormat().  Depending on your setup, you might be able just to change the line that says "$currencySymbol = '$';".  That sets a default for when the locale data isn't loaded correctly.  If that doesn't work, you'd best rewrite the function, probably with something like this, but adapted to your locale:

        function moneyFormat($amount, $decimals){
          $str = "";
          if ($amount < 0.0) {
            $str .= "-";
          }
          $str .= "$";
          $str .= number_format(abs($amount),$decimals,".",",");
          return $str;
        }

        That code is completely untested and meant only as an example.  Use at your own risk.

        Micah

         
    • Nobody/Anonymous

      yay..the currency is now Php..i change the  "$currencySymbol = 'Php';" and change the locale/en to locale/oo, so that it wont load to its default.. thanks a lot.. ^_^

       
    • succinctus

      succinctus - 2007-04-03

      Changing the locale to nonsense is not possible with translated localizations. I have had the problem with €.
      Will it prepare problems to change in /funtions/formatFuncs.php:
      $currencySymbol = $localeInfo["currency_symbol"];
        if ($currencySymbol) {
          $currencySymbol = '€';
        }
      ? Not so professional, but it also seems to work.

       
      • nelsonmhjr

        nelsonmhjr - 2007-05-17

        The OpenBiblio uses localeconv() function from PHP to set local definitions about currency and other things, searching what this functions does I found another function, setlocale() that set the local definitions to your country.

        http://www.php.net/manual/en/function.setlocale.php

        In my case I put the:

        setlocale (LC_ALL, 'ptb', 'pt_BR');

        in /shared/common.php and it worked to change to Brazilian definitions.

        The two parameters is to work in Windows PHP Servers and Linux PHP Servers respectively.

        In Linux (Slackware 11 is my distribution) there is a "locale -a" command that writes names of all available locales
        For Windows http://msdn2.microsoft.com/en-us/library/cdax410z\(VS.71).aspx

        Hope that help.

         
    • nelsonmhjr

      nelsonmhjr - 2007-05-21

      Maybe it's better put the setlocale in /functions/formatFuncs.php the moneyformat function is there too.

       
    • nelsonmhjr

      nelsonmhjr - 2007-05-22

      Other Sollution: most "pro"

      Openbiblio sets the setlocale() phpfunction in share/readsettings.php. Uses getLocale() function from Setting class. It gets the locale code from the locale column from settings table in DB, that is the directory name where your locales are. Like Hans van der Weij posted on the second post.

      The problems is that are different codes for windows and unix servers. So you need to rename to the code for your OS.

      In share/readsettings.php there is this code:

      if ($set->getLocale()=="de") {
          setlocale(LC_MONETARY, 'de_DE', 'de_DE@euro', 'de', 'ge', 'deu_deu', 'deu', 'Germany', 'de_DE.ISO8859-1');
          setlocale(LC_NUMERIC, 'de_DE', 'de_DE@euro', 'de', 'ge', 'deu_deu', 'deu', 'Germany', 'de_DE.ISO8859-1');
        } elseif ($set->getLocale()=="en") {
          setlocale(LC_MONETARY,'en_US.iso885915', 'en', 'en_US', 'eng');
          setlocale(LC_NUMERIC,'en_US.iso885915', 'en', 'en_US', 'eng');
        } else {
          setlocale(LC_MONETARY,$set->getLocale());
          setlocale(LC_NUMERIC,$set->getLocale());
        }

      It's sets for all possibilities for "de" and "en" locale only, so add your locale directory there too if you need full compatibility.

       
  • Nobody/Anonymous

    OK guys so I've been working with everything and could not make anything work. I was getting the GBP as my default currency no matter what I did. So i made the following changes :

    1) Go to Functions/formatFuncs

    2)   if ($localeInfo == 0) {
        if ($localeInfo) {
          $result = "(".$currencySymbol.$sep.$result.")";
        } else {
          $result = "(".$result.$sep.$currencySymbol.")";
        }
      }elseif ($localeInfo == 1) {
        if ($localeInfo) {
          $result = $sign.$currencySymbol.$sep.$result;
        } else {
          $result = $sign.$result.$sep.$currencySymbol;
        }
      }elseif ($localeInfo == 2) {
        if ($localeInfo) {
          $result = $currencySymbol.$sep.$result.$sign;
        } else {
          $result = $result.$sep.$currencySymbol.$sign;
        }
      }elseif ($localeInfo == 3) {
        if ($localeInfo) {
          $result = $sign.$currencySymbol.$sep.$result;
        } else {
          $result = $result.$sep.$sign.$currencySymbol;
        }
      }elseif ($localeInfo == 4) {
        if ($localeInfo) {
          $result = $currencySymbol.$sign.$sep.$result;
        } else {
          $result = $result.$sep.$currencySymbol.$sign;
        }
      } else {
        # American-style default
        $result = $currencySymbol.$sep.$sign.$result;
      }

    3. I replaced the $currencySymbol in everyone of this to my currency symbol.

    4. Save this file and you are done. I found that this is one of the easiest ways to change the currency if you do not want to deal with locale.

     
  • Comment has been marked as spam. 
    Undo

    You can see all pending comments posted by this user  here

    Anonymous - 2016-07-08

    I am an India user. I am using the openbiblio installed in linux shared hosting server of hostripples.in. In order to change the currency to our Indian Rupees (Rs.) , I changed the formatfuncs.php $currencySymbol= '$'; to 'Rs.'. But it did not work. Even I tried by deleting the symbol $ , still not worked. I am getting the default currency symbol $ always, when I access openbiblio through google chrome from my local computer. I think something locale function is disturbing. What is the true and effective solution. Please donot answer the unconfirmed solution.

     
    • Hans van der Weij

      Additionally to changing $currencySymbol= '$'; to 'Rs.', you should also disable the following line by preceding it with a double slash //

      https://bitbucket.org/mstetson/obiblio/src/babf99e9469d7f0be0eaff11cbadf92badb0a6f3/functions/formatFuncs.php?at=default&fileviewer=file-view-default#formatFuncs.php-29

       
    • Comment has been marked as spam. 
      Undo

      You can see all pending comments posted by this user  here

      Anonymous - 2016-07-28

      When I changed the symbol in formatFuncs.php in Functions folder it worked. It is not dependent on locale, as the folder is in root. Check again after changing the locale though.

       


Anonymous

Cancel  Add attachments





Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks