i18next.com
Version:
i18next website
90 lines (81 loc) • 2.45 kB
JSX
import React from 'react';
import DocumentTitle from 'react-document-title';
import Interactive from '../_i18nextInteractive';
import Markdown from 'react-remarkable';
module.exports = React.createClass({
statics: {
metadata: function() {
return {
order: 0,
title: "Basics"
};
}
},
render: function() {
let options = {
debug: true,
lng: 'de-DE',
fallbackLng: 'en',
backend: {
loadPath: 'locales/{{lng}}/{{ns}}.json'
}
};
let samples = [
{
title: 'Basic translation',
run: [
{ fc: 't', args: ['key1'] },
{ fc: 't', args: ['key2'] },
{ fc: 't', args: ['key3'] },
{ fc: 't', args: ['key4'], comment: '(fallback to show key)' }
]
},
{
title: 'Multiple keys',
run: [
{ fc: 't', args: [['key4', 'key3']], comment: '(returns first found)' }
]
},
{
title: 'Deeper keys',
run: [
{ fc: 't', args: ['key.with.sub'] }
]
},
{
title: 'Override options',
run: [
{ fc: 't', args: ['key1', {lng: 'en'}] },
{ fc: 't', args: ['key1', {lngs: ['de', 'en']}] },
{ fc: 't', args: ['key#with#sub', {keySeparator: '#'}] },
{ fc: 't', args: ['notExisting', {defaultValue: 'fallback from defaultValue'}] }
]
}
]
const md = `
The lookup order for keys is always:
1) \`en-US\` language + region
2) \`en\` language only
3) \`fallback\` thats defined in options.fallbackLng (string or array of fallback language)
You can change this behaviour by:
- setting a whitelist on init \`whitelist: ['en', 'fr']\`
- setting \`fallbackLng: false\` (encouraged only if you set the language by your user information without detection)
- setting load options on init
- \`load: 'all'\` will load _en-US, en, fallback_ for _en-US_
- \`load: 'currentOnly'\` will load _en-US_ for _en-US_
- \`load: 'languageOnly'\` will load _en_ for _en-US_
`
return (
<DocumentTitle title={`${module.exports.metadata().title} | ${this.props.config.siteTitle}`}>
<div>
<a name="resolve"></a>
<h2><a href='#resolve'>Resolve resources</a></h2>
<Markdown>
{md}
</Markdown>
<Interactive options={options} samples={samples} />
</div>
</DocumentTitle>
);
}
});