/** * Copyright (c) 2017-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ const CWD = process.cwd(); const React = require('react'); const fs = require('fs'); const classNames = require('classnames'); const siteConfig = require(CWD + '/siteConfig.js'); const translation = require('../../server/translation.js'); const env = require('../../server/env.js'); const translate = require('../../server/translate.js').translate; const setLanguage = require('../../server/translate.js').setLanguage; const readMetadata = require('../../server/readMetadata.js'); readMetadata.generateMetadataDocs(); const Metadata = require('../metadata.js'); const utils = require('../utils.js'); // language dropdown nav item for when translations are enabled class LanguageDropDown extends React.Component { render() { setLanguage(this.props.language || 'en'); let helpTranslateString = translate( 'Help Translate|recruit community translators for your project' ); // add all enabled languages to dropdown const enabledLanguages = env.translation .enabledLanguages() .filter(lang => lang.tag !== this.props.language) .map(lang => (
  • {lang.name}
  • )); // if no languages are enabled besides English, return null if (enabledLanguages.length < 1) { return null; } // Get the current language full name for display in the header nav const currentLanguage = env.translation .enabledLanguages() .filter(lang => lang.tag === this.props.language) .map(lang => lang.name); // add Crowdin project recruiting link if (siteConfig.translationRecruitingLink) { enabledLanguages.push(
  • {helpTranslateString}
  • ); } return (
  • {currentLanguage}
      {enabledLanguages}