Skip to content

Latest commit

 

History

History
44 lines (34 loc) · 1.83 KB

multilang.md

File metadata and controls

44 lines (34 loc) · 1.83 KB

Multilanguage with React

Proje üzerinde çalışırken oluşturduğumuz componentlerin messages.js dosyalarına eklediğimiz defaultMessage'lar sadece çeviri olmadığında görünecek textlerdir.

Bu sebeple İngilizce ve Fransızca çevirileri ayırt edemeyeceğiz. 🙄

  // messages.js
  header: {
    id: 'app.components.CompetitionInstaPosts.header',
    defaultMessage: 'Competitions Top Instagram Posts',
  },

Normal şartlarda messages.js dosyasında değişiklik yapmanız durumunda npm run extract-intl komutunu çalıştırmanız gerekmektedir. Bu komutu çalıştırdığımız andan itibaren dil dosyaları id'lere göre maplenir. Ve otomatik olarak en.json ve fr.json dosyalarını güncellemiş olursunuz.

 // en.json
  "app.components.CompetitionInstaPosts.header": "Competitions Top Instagram Posts",
 // fr.json
 "app.components.CompetitionInstaPosts.header": "Partage Instagram des tendances des concurrents",

Daha sonra değiştirmeniz gereken kısımları json dosyaları üzerinde yapmanız yeterli olacaktır. (Id ve defaultMessage değişecekse messages.js dosyalarını da güncellemek gerekecektir)

  // index.js üzerinde kullanımı
  import { FormattedMessage } from 'react-intl';
  import messages from './messages';

  render() {
    return (
      <FormattedMessage {...messages.header} />
    );
  }

Konu ile ilgili react i18n kullanımı:

Konu ile ilgili makale ve örnekler: