Saltar al contenido principal

Instalación

Traducción Beta No Oficial

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

formatjs es un conjunto de bibliotecas que te ayudan a configurar la internacionalización en cualquier proyecto, ya sea con React o sin él.

Instalación

npm i -S react react-intl

Aplicación mínima

Después de seguir el paso anterior, deberías poder tener una aplicación mínima como esta en funcionamiento:

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>

Agregando nuestro plugin de Babel/Transformer de TypeScript para compilación

Nuestras herramientas admiten babel, ts-loader, ts-jest, rollup-plugin-typescript2 y ts-patch para la compilación de mensajes:

Babel

Si estás usando babel, añade babel-plugin-formatjs a tus dependencias:

npm i -D babel-plugin-formatjs

y agrégalo a tu 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 en jest.config.js

npm i -D @formatjs/ts-transformer

Consulta la guía de ts-jest para ver cómo incorporar transformadores AST personalizados.

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