Skip to content

Instantly share code, notes, and snippets.

@egebilican
egebilican / InjectedGreeter.js
Created March 28, 2019 08:33
INTL-injected
import React from "react";
import { messages } from "./messages";
import { injectIntl } from "react-intl";
class InjectedGreeter extends React.Component {
constructor(props) {
super(props);
this.state = {};
}
render() {
@egebilican
egebilican / index.js
Created March 28, 2019 08:25
INTL-dummy
import React from "react";
import { DummySubComponent } from "./DummySubComponent";
import { FormattedMessage } from "react-intl";
import { messages } from "./messages";
const DummyComponent = () => (
<div>
<FormattedMessage {...messages.title}>
{title => (
<FormattedMessage {...messages.subTitle}>
@egebilican
egebilican / en.json
Created March 27, 2019 15:07
INTL-translation
{
"greeter.simpleExample": "Hi, {name}",
"greeter.complexExample": "Hello, {name}! {status, select, busy {you have {taskCount, plural,=0 {no tasks} one {# task} other {# tasks}}.} idle {You are free today!}}",
"greeter.lastUpdated": "Last updated:",
"greeter.simpleInjectedExample": "Text only!",
"dummyComponent.title": "English Title",
"dummyComponent.subTitle": "English subtitle",
"dummyComponent.text": "English text"
}
@egebilican
egebilican / messages.js
Last active March 28, 2019 08:41
INTL-messages
import { defineMessages } from "react-intl";
export const messages = defineMessages({
simpleExample: {
id: "greeter.simpleExample",
description: "Hello",
defaultMessage: "Hello, {name}!"
},
simpleInjectedExample: {
id: "greeter.simpleInjectedExample",
@egebilican
egebilican / index.js
Last active March 27, 2019 15:03
INTL-Greeter
import React from "react";
import { messages } from "./messages";
import { FormattedMessage, FormattedRelative } from "react-intl";
const Greeter = ({ name }) => {
const message1 = { name: name };
const message2 = { name: "Developer A", status: "busy", taskCount: 5 };
const message3 = { name: "Developer B", status: "busy", taskCount: 1 };
const message4 = { name: "Developer C", status: "busy", taskCount: 0 };
const message5 = { name: "Developer E", status: "idle" };
@egebilican
egebilican / index.js
Created March 27, 2019 14:49
INTL-IntlProviderComponent
import React, { PureComponent } from "react";
import { IntlProvider, addLocaleData } from "react-intl";
import trLocaleData from "react-intl/locale-data/tr";
const trTranslationMessages = require("../translations/tr.json");
const enTranslationMessages = require("../translations/en.json");
addLocaleData(trLocaleData);
const messages = {
@egebilican
egebilican / index.js
Last active March 27, 2019 14:52
INTL-index.js
import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
import IntlProviderComponent from "./IntlProviderComponent";
ReactDOM.render(
<IntlProviderComponent>
<App />
</IntlProviderComponent>,