2016-09-08 13 views
5

Chcę programowo zmienić wzór formatu waluty, symbol waluty i pozycję symbolu waluty. Znalazłem dane w folderze sprzedawca \ magento \ zendframework1 \ library \ Zend \ Locale \ Data.Magento 2 Jak dostosować symbol i format waluty na podstawie lokalizacji

Na przykład, jeśli zmienię format w fr_FR.xml przez następujący kod, który odzwierciedla się w interfejsie użytkownika.

<numbers> 
     <currencyFormats numberSystem="latn"> 
      <currencyFormatLength> 
       <currencyFormat type="standard"> 
        <pattern>¤ #,##0.00</pattern> 
       </currencyFormat> 
       <currencyFormat type="accounting"> 
        <pattern>¤ #,##0.00;(¤ #,##0.00)</pattern> 
       </currencyFormat> 
      </currencyFormatLength> 
      <unitPattern count="one">{0} {1}</unitPattern> 
      <unitPattern count="other">{0} {1}</unitPattern> 
     </currencyFormats> 
     <currencies> 
      <currency type="GBP"> 
       <displayName>livre sterling</displayName> 
       <displayName count="one">livre sterling</displayName> 
       <displayName count="other">livres sterling</displayName> 
       <symbol>£</symbol> 
      </currency> 
     </currencies> 
</numbers> 

Ale chcę wiedzieć, jak zastąpić domyślny fr_FR.xml (sprzedawca \ Magento \ zendframework1 \ library \ Zend \ Locale \ data \ fr_FR.xml)

Prosimy daj mi znać, jeśli ktoś wie sposób zrobić.

+0

gdzie chcesz je zmienić, na całej stronie internetowej lub tylko w jakimś widoku lub module? i do jakiej konkretnej lokalizacji? –

+0

Bardzo dziękuję za odpowiedź. Potrzebuję całej witryny dla tego konkretnego ustawienia regionalnego fr_FR. – Shan13

+0

sprawdź tę odpowiedź https://magento.stackexchange.com/questions/61337/how-to-use-locale-files –

Odpowiedz

3

Może nie być kompletnym rozwiązaniem, ale musi to być dobry początek. Poniżej znajduje się kolejność przepływu kodu.

  • public function formatTxt na module-katalogu/Model/Currency.php. Funkcja ta zwraca toCurrency co z kolei wywołuje do
  • public function toCurrency na zendframework1/library/Zend/Currency.php

gdy znajdziesz funkcję, widać tablicy $ options zmienną, która zawiera wszystkie niezbędne informacje dla formatowania wartości cen. Poniżej znajduje się var_dump opcji $. array(12) { ["position"]=> int(16) ["script"]=> NULL ["format"]=> NULL ["display"]=> int(2) ["precision"]=> int(2) ["name"]=> string(9) "US Dollar" ["currency"]=> string(3) "USD" ["symbol"]=> string(1) "$" ["locale"]=> string(5) "en_GB" ["value"]=> int(0) ["service"]=> NULL ["tag"]=> string(11) "Zend_Locale" }

Więc do przemieszczania symboli waluty można zastąpić

public function formatPrecision z DI.xml <preference for="Magento\Directory\Model\Currency" type="Yourpack\Custom\Model\Currency" />

i przekazać tablicę opcji z niezbędnymi wartościami.

Na przykład: $options['position'] = 16 will move the currency symbol to the right of the currency value (16.24$) Podaj również niezbędne opcje tablicy, aby zastąpić.

+0

Wielkie dzięki Franc.Helted mnie dużo.Jak uczynić symbol waluty jako unikalny niezależny od lokalizacji? – Shan13

Powiązane problemy