React Intl - Создание ввода, для которого требуется перевод атрибута-заполнителя.
const Input = props => (
<InputWrapper
skew={props.skew}
>
<InputElement
skew={props.skew}
placeholder={props.placeholder}
type={props.type}
/>
</InputWrapper>
);
Я пытаюсь найти пример в Интернете, объясняющий, как я использую <FormattedMessage id="" defaultMessage="" />
компонент для заполнителей. У нас есть файлы JSON, в которых мы устанавливаем разные языки, на которые он указывает. Так что в качестве примера, который у меня есть над идентификатором, будет указываться на файл json, а затем на этот объект, чтобы выбрать правильное значение для языка. Таким образом, у нас будет несколько файлов JSON для каждого языка.
Как мы будем делать это для атрибута-заполнителя, так как вместо этого мне нужно вернуть строку.
1 ответ
Если я правильно это предполагаю:
- У вас есть переводы в
JSON
файл. id
указывает перевод- Вы хотите использовать переведенное сообщение как
defaultMessage
свойствоFormattedMessage
составная часть
Если это неправильно, пожалуйста, прокомментируйте. Если это правильно, я бы:
- Создайте функцию в каком-нибудь файле утилит, который получит мне перевод
- Создайте пользовательский компонент, который оборачивает
FormattedMessage
составная часть
В некоторых util.jsx
файл:
const getTranslationFromId(id) = (id) => {
// Get translation from JSON file here!
const translatedMessage = ...;
return translatedMessage;
}
В FormattedTranslatedMessage.jsx
:
import React from "react";
import {getTranslationFromId} from "../some/path/to/utils";
const FormattedTranslatedMessage = ({id, ...restProps}) => (
<FormattedMessage defaultMessage={getTranslationFromId(id)} {...restProps} />
);
export default FormattedTranslatedMessage;
Пожалуйста, прокомментируйте, если мои предложения неверны, или я мог бы улучшить ответ...