2016-09-08 18 views
5

Tôi muốn thay đổi mẫu định dạng tiền tệ, ký hiệu tiền tệ và vị trí ký hiệu tiền tệ theo lập trình. Tôi tìm thấy một số dữ liệu trong thư mục vendor \ magento \ zendframework1 \ library \ Zend \ Locale \ Data.Magento 2 Cách tùy chỉnh biểu tượng tiền tệ và định dạng dựa trên ngôn ngữ

Ví dụ: nếu tôi thay đổi định dạng trong fr_FR.xml bằng mã sau, nó sẽ phản ánh trong giao diện người dùng.

<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> 

Nhưng tôi muốn biết làm thế nào để ghi đè mặc định fr_FR.xml (nhà cung cấp \ magento \ zendframework1 \ library \ Zend \ Locale \ Data \ fr_FR.xml)

Vui lòng cho tôi biết nếu có ai biết cách để làm.

+0

nơi bạn muốn thay đổi chúng, trên toàn bộ trang web hoặc chỉ ở một số chế độ xem hoặc mô-đun? và với cái gì, đến một miền địa phương cụ thể? –

+0

Cảm ơn rất nhiều phản hồi của bạn .. Tôi cần tất cả các trang web cho miền địa phương cụ thể đó fr_FR. – Shan13

+0

kiểm tra câu trả lời này https://magento.stackexchange.com/questions/61337/how-to-use-locale-files –

Trả lời

3

Có thể không phải là giải pháp hoàn chỉnh, nhưng đây phải là một khởi đầu tốt. Dưới đây là thứ tự của dòng mã.

  • public function formatTxt trên mô-đun thư mục/Model/Currency.php. Chức năng này gọi toCurrency mà lần lượt các cuộc gọi đến
  • public function toCurrency trên zendframework1/thư viện/Zend/Currency.php

khi bạn tìm thấy những chức năng, bạn sẽ thấy tùy chọn $ mảng biến có chứa tất cả các thông tin cần thiết là để định dạng giá trị giá. Dưới đây là các tùy chọn var_dump của $. 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" }

Vì vậy, để di chuyển các ký hiệu tiền tệ, bạn có thể ghi đè lên

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

và vượt qua các mảng tùy chọn với các giá trị cần thiết.

Ví dụ: $options['position'] = 16 will move the currency symbol to the right of the currency value (16.24$) Tương tự, vượt qua các tùy chọn mảng cần thiết để ghi đè.

+0

Cảm ơn rất nhiều Franc. Đã giúp tôi rất nhiều. Làm thế nào để biểu tượng tiền tệ là độc lập độc lập với ngôn ngữ? – Shan13

Các vấn đề liên quan