diff --git a/scripts/i18n-onesky.js b/scripts/i18n-onesky.js index 700148e..89b6cc7 100644 --- a/scripts/i18n-onesky.js +++ b/scripts/i18n-onesky.js @@ -113,6 +113,7 @@ async function pull() { mapFileContent[elem.locale] = { name: elem.local_name.match(/^([^\(]+)/)[0].trim(), // Обрезаем значения в скобках progress: parseFloat(elem.translation_progress), + isReleased: elem.is_ready_to_publish, }; }); fs.writeFileSync(`${LANG_DIR}/${INDEX_FILE_NAME}`, formatTranslates(mapFileContent)); diff --git a/src/components/langMenu/LangMenu.jsx b/src/components/langMenu/LangMenu.jsx index a113d30..b5ddf7f 100644 --- a/src/components/langMenu/LangMenu.jsx +++ b/src/components/langMenu/LangMenu.jsx @@ -37,7 +37,7 @@ class LangMenu extends Component { } render() { - const {userLang, showCurrentLang} = this.props; + const {userLang: userLocale, showCurrentLang} = this.props; const {isActive} = this.state; return ( @@ -50,10 +50,10 @@ class LangMenu extends Component { })}> {Object.keys(LANGS).map((locale) => (
  • - {this.renderLangLabel(locale)} + {this.renderLangLabel(locale, LANGS[locale])}
  • ))}
  • @@ -67,7 +67,7 @@ class LangMenu extends Component {
    {showCurrentLang - ? this.renderLangLabel(userLang) : ( + ? this.renderLangLabel(userLocale, LANGS[userLocale]) : ( {' '} @@ -82,17 +82,41 @@ class LangMenu extends Component { ); } - renderLangLabel(locale) { - const langLabel = LANGS[locale].name; + renderLangLabel(locale, localeData) { + const {name, progress, isReleased} = localeData; + let progressLabel; + if (progress !== 100) { + progressLabel = ( + + {`(${progress}%)`} + + ); + } else if (!isReleased) { + progressLabel = ( + + {'*'} + + ); + } return ( - {langLabel} + {this.formatLocaleName(locale) || name} + {progressLabel} ); } + formatLocaleName(locale) { + switch (locale) { + case 'pt': + return 'Português (Br)'; + default: + return null; + } + } + onChangeLang(lang) { return (event) => { event.preventDefault(); diff --git a/src/components/langMenu/langMenu.scss b/src/components/langMenu/langMenu.scss index 24c43ca..acbd8d3 100644 --- a/src/components/langMenu/langMenu.scss +++ b/src/components/langMenu/langMenu.scss @@ -26,11 +26,12 @@ border-left: 0; border-right: 0; text-align: left; + box-shadow: 0 0 1px rgba(#000, .2); visibility: hidden; opacity: 0; transition: .3s cubic-bezier(0.075, 0.82, 0.165, 1); // easeOutCirc - transform: translateY(10px) rotateX(-22deg); + transform: translateY(10px) rotateX(-17deg); } .menuActive { @@ -45,11 +46,12 @@ } .menuContainer { - margin-left: 0; + justify-content: flex-start; } } .menuItem { + position: relative; padding: 10px; font-size: 13px; border-bottom: 1px solid #eee; @@ -73,6 +75,7 @@ } .langIco { + position: relative; display: inline-block; margin-right: 5px; width: 20px; @@ -83,6 +86,26 @@ background-size: cover; } +.langTranslateProgress { + font-size: 9px; + position: relative; + font-family: $font-family-base; + color: #ccc; +} + +.langTranslateUnfinished { + composes: langTranslateProgress; + + top: -1px; + padding-left: 3px; +} + +.langTranslateUnreviewed { + composes: langTranslateProgress; + + top: -4px; +} + .langBe { composes: langIco; diff --git a/src/i18n/index.json b/src/i18n/index.json index 3c36804..d6c5ee0 100644 --- a/src/i18n/index.json +++ b/src/i18n/index.json @@ -1,42 +1,52 @@ { "be": { "name": "Беларуская", - "progress": 100 + "progress": 100, + "isReleased": true }, "en": { "name": "English", - "progress": 100 + "progress": 100, + "isReleased": true }, "id": { "name": "Bahasa Indonesia", - "progress": 100 + "progress": 100, + "isReleased": false }, "pl": { "name": "Polski", - "progress": 99.5 + "progress": 99.5, + "isReleased": false }, "pt": { "name": "Português", - "progress": 100 + "progress": 100, + "isReleased": true }, "ro": { "name": "Română", - "progress": 99.5 + "progress": 99.5, + "isReleased": false }, "ru": { "name": "Русский", - "progress": 100 + "progress": 100, + "isReleased": true }, "sl": { "name": "Slovenščina", - "progress": 100 + "progress": 100, + "isReleased": false }, "uk": { "name": "Українська", - "progress": 100 + "progress": 100, + "isReleased": true }, "vi": { "name": "Tiếng Việt", - "progress": 100 + "progress": 100, + "isReleased": true } }