Aller au contenu principal

Installation

Traduction Bêta Non Officielle

Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →

formatjs est un ensemble de bibliothèques qui vous aide à configurer l'internationalisation dans n'importe quel projet, qu'il utilise React ou non.

Installation

npm i -S react react-intl

Application minimale

Après avoir suivi l'étape ci-dessus, vous devriez être en mesure de faire fonctionner une application minimale comme celle-ci :

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>

Ajout de notre babel-plugin/TypeScript Transformer pour la compilation

Notre outillage prend en charge babel, ts-loader, ts-jest, rollup-plugin-typescript2 et ts-patch pour la compilation des messages :

Babel

Si vous utilisez babel, ajoutez babel-plugin-formatjs à vos dépendances :

npm i -D babel-plugin-formatjs

et ajoutez-le à votre babel.config.js ou .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 dans jest.config.js

npm i -D @formatjs/ts-transformer

Consultez le guide ts-jest pour savoir comment incorporer des transformeurs AST personnalisés.

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,
}),
],
}),
}),
],
}