mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 03:18:24 +00:00 
			
		
		
		
	Refactor locale number (#24134)
Before, the `GiteaLocaleNumber.js` was just written as a a drop-in replacement for old `js-pretty-number`. Actually, we can use Golang's `text` package to format. This PR partially completes the TODOs in `GiteaLocaleNumber.js`: > if we have complete backend locale support (eg: Golang "x/text" package), we can drop this component. > tooltip: only 2 usages of this, we can replace it with Golang's "x/text/number" package in the future. This PR also helps #24131 Screenshots: <details>   </details>
This commit is contained in:
		| @@ -1,20 +0,0 @@ | ||||
| // Convert a number to a locale string by data-number attribute. | ||||
| // Or add a tooltip by data-number-in-tooltip attribute. JSON: {message: "count: %s", number: 123} | ||||
| window.customElements.define('gitea-locale-number', class extends HTMLElement { | ||||
|   connectedCallback() { | ||||
|     // ideally, the number locale formatting and plural processing should be done by backend with translation strings. | ||||
|     // if we have complete backend locale support (eg: Golang "x/text" package), we can drop this component. | ||||
|     const number = this.getAttribute('data-number'); | ||||
|     if (number) { | ||||
|       this.attachShadow({mode: 'open'}); | ||||
|       this.shadowRoot.textContent = new Intl.NumberFormat().format(Number(number)); | ||||
|     } | ||||
|     const numberInTooltip = this.getAttribute('data-number-in-tooltip'); | ||||
|     if (numberInTooltip) { | ||||
|       // TODO: only 2 usages of this, we can replace it with Golang's "x/text/number" package in the future | ||||
|       const {message, number} = JSON.parse(numberInTooltip); | ||||
|       const tooltipContent = message.replace(/%[ds]/, new Intl.NumberFormat().format(Number(number))); | ||||
|       this.setAttribute('data-tooltip-content', tooltipContent); | ||||
|     } | ||||
|   } | ||||
| }); | ||||
| @@ -1,4 +1,3 @@ | ||||
| import '@webcomponents/custom-elements'; // polyfill for some browsers like Pale Moon | ||||
| import '@github/relative-time-element'; | ||||
| import './GiteaLocaleNumber.js'; | ||||
| import './GiteaOriginUrl.js'; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user