Vai al contenuto principale

Installazione

Traduzione Beta Non Ufficiale

Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →

formatjs è un insieme di librerie che ti aiutano a configurare l'internazionalizzazione in qualsiasi progetto, che utilizzi React o meno.

Installazione

npm i -S react react-intl

Applicazione Minima

Dopo aver seguito i passaggi precedenti, dovresti essere in grado di far funzionare un'applicazione minima come questa:

import * as React from 'react'
import {IntlProvider, FormattedMessage, FormattedNumber} from 'react-intl'

// Translated messages in French with matching IDs to what you declared
const messagesInFrench = {
myMessage: "Aujourd'hui, nous sommes le {ts, date, ::yyyyMMdd}",
}

export default function App() {
return (
<IntlProvider messages={messagesInFrench} locale="fr" defaultLocale="en">
<p>
<FormattedMessage
id="myMessage"
defaultMessage="Today is {ts, date, ::yyyyMMdd}"
values={{ts: Date.now()}}
/>
<br />
<FormattedNumber value={19} style="currency" currency="EUR" />
</p>
</IntlProvider>
)
}

Output

<p>
Aujourd'hui, nous sommes le 23/07/2020
<br />
19,00 €
</p>

Aggiunta del nostro babel-plugin/TypeScript Transformer per la compilazione

I nostri strumenti supportano babel, ts-loader, ts-jest, rollup-plugin-typescript2 e ts-patch per la compilazione dei messaggi:

Babel

Se stai utilizzando babel, aggiungi babel-plugin-formatjs alle tue dipendenze:

npm i -D babel-plugin-formatjs

e aggiungilo al tuo babel.config.js o .babelrc:

{
"plugins": [
[
"formatjs",
{
"idInterpolationPattern": "[sha512:contenthash:base64:6]",
"ast": true
}
]
]
}

ts-loader

npm i -D @formatjs/ts-transformer
import {transform} from '@formatjs/ts-transformer'

module.exports = {
...otherConfigs,
module: {
rules: [
{
test: /\.tsx?$/,
use: [
{
loader: 'ts-loader',
options: {
getCustomTransformers() {
return {
before: [
transform({
overrideIdFn: '[sha512:contenthash:base64:6]',
}),
],
}
},
},
},
],
},
],
},
}

ts-jest nel jest.config.js

npm i -D @formatjs/ts-transformer

Consulta la guida di ts-jest per incorporare trasformatori AST personalizzati.

ts-patch

npm i -D @formatjs/ts-transformer
{
"compilerOptions": {
"plugins": [
{
"transform": "@formatjs/ts-transformer",
"import": "transform",
"type": "config",
"overrideIdFn": "[sha512:contenthash:base64:6]",
"ast": true
}
]
}
}

rollup-plugin-typescript2

npm i -D @formatjs/ts-transformer
// rollup.config.js
import typescript from 'rollup-plugin-typescript2'
import {transform} from '@formatjs/ts-transformer'

export default {
input: './main.ts',

plugins: [
typescript({
transformers: () => ({
before: [
transform({
overrideIdFn: '[sha512:contenthash:base64:6]',
ast: true,
}),
],
}),
}),
],
}