WOW-777 fix(lang): one and one

This commit is contained in:
bakhirev 2023-12-01 00:38:27 +03:00
parent 41be2b4fd7
commit 27ab1b0900
9 changed files with 268 additions and 93 deletions

View file

@ -1,4 +1,5 @@
import IHashMap from 'ts/interfaces/HashMap';
import localization from 'ts/helpers/Localization';
function getParametersFromString(text: string): IHashMap<string> {
return Object.fromEntries((text || '')
@ -50,6 +51,11 @@ export default function applyUrlCommands(callback: Function) {
applicationHasCustom.title = true;
}
const language = parameters.lang || parameters.language;
if (language) {
localization.language = language;
}
const jsUrl = parameters.dump || parameters.log;
if (jsUrl) {
loadJsDump(jsUrl, callback);

View file

@ -12,6 +12,7 @@ import Team from '../../Team/index';
import Person from '../../Person/index';
import Welcome from '../../Welcome/index';
import Settings from '../../Settings/index';
import DebugPage from '../../Debug/index';
const Success = observer((): React.ReactElement => {
const [showSplashScreen, setShowSplashScreen] = useState<boolean>(true);
@ -46,6 +47,14 @@ const Success = observer((): React.ReactElement => {
</PageWrapper>
)}
/>
<Route
path="/debug"
element={(
<PageWrapper>
<DebugPage />
</PageWrapper>
)}
/>
<Route
path="/:type/:page"
element={(

View file

@ -0,0 +1,45 @@
import React from 'react';
import localization from 'ts/helpers/Localization';
import Description from 'ts/components/Description';
function getFlatRecommendations(translations: any, list: any[] = []) {
if (!translations) return list;
for (let key in translations) {
const item = translations[key];
if (item?.title) {
list.push(item);
} else if (typeof item === 'string') {
list.push({ title: item });
} else {
getFlatRecommendations(item, list);
}
}
return list;
}
function DebugPage() {
const translations = localization.translations[localization.language];
const recommendations = getFlatRecommendations(translations.recommendations)
.map((item: any) => (
<div key={`${item.title}`}>
<Description
text={`
# ${localization.get(item.title)}
${localization.get(item.description)}
`}
/>
</div>
));
console.dir(recommendations);
return (
<section>
{recommendations}
</section>
);
}
export default DebugPage;

View file

@ -0,0 +1,115 @@
@import '../../../../styles/variables';
.welcome {
position: relative;
display: flex;
align-items: center;
justify-content: center;
width: calc(100vw - 20px);
height: calc(100vh - 60px);
padding: 0;
margin: 0;
box-sizing: border-box;
text-align: center;
&_console {
max-width: 700px;
}
&_row {
width: auto;
}
&_warning {
font-weight: 100;
font-size: var(--font-s);
width: 100%;
margin: 0 auto;
padding: 6px;
box-sizing: border-box;
line-height: 1.5;
text-align: center;
border-bottom: 3px solid red;
background-color: #FCDADA;
&_bold {
font-weight: bold;
color: red;
}
&_link {
text-decoration: underline;
color: var(--color-button);
&:hover {
text-decoration: none;
}
}
}
&_link,
&_description {
font-size: var(--font-xs);
display: inline-block;
width: 100%;
max-width: 700px;
padding: 0;
margin: 16px auto 0;
line-height: 1.3;
text-align: center;
text-decoration: none;
color: #878FA1;
}
&_link {
display: inline;
margin: 16px 4px 0 4px;
text-decoration: underline;
}
&_first_title,
&_last_title {
font-size: 42px;
font-weight: 100;
margin: 46px auto;
padding: 0;
}
&_first_title {
margin-top: 0;
}
&_last_title {
margin-bottom: 0;
}
&_title_link {
margin: 0 12px;
text-decoration: underline;
cursor: pointer;
}
}
@media (max-width: 800px) {
.welcome {
display: block;
width: 100%;
height: auto;
padding: 32px 0 0 0;
&_first_title,
&_last_title {
width: 90%;
font-size: var(--font-l);
}
&_description {
width: 90%;
}
}
}

View file

@ -1,85 +1,85 @@
export default `
§ achievements.commitsAfter1500.title: Night Owl
§ achievements.commitsAfter1500.title: Owl
§ achievements.commitsAfter1500.description: 70% of commits after 3:00 PM
§ achievements.commitsBefore1500.title: Early Bird
§ achievements.commitsBefore1500.title: Early bird
§ achievements.commitsBefore1500.description: 70% of commits before noon
§ achievements.workEveryTime.title: Devoted Worker
§ achievements.workEveryTime.title: Devoted worker
§ achievements.workEveryTime.description: a commit for every hour of the day
§ achievements.workNotWork.title: Shooting Blanks
§ achievements.workNotWork.title: Shooting blanks
§ achievements.workNotWork.description: commits are there, but no tasks are closed
§ achievements.userNotWork.title: Fly-By
§ achievements.userNotWork.title: Fly-by
§ achievements.userNotWork.description: this is not their main project
§ achievements.userIsDied.title: Dead Soul
§ achievements.userIsDied.title: Dead soul
§ achievements.userIsDied.description: worked, but resigned
§ achievements.lessTasks.title: Came and Went
§ achievements.lessTasks.title: Came and went
§ achievements.lessTasks.description: least closed tasks
§ achievements.moreTasks.title: Father Says Well Done
§ achievements.moreTasks.title: Father says well done
§ achievements.moreTasks.description: most closed tasks
§ achievements.everyMessageLong.title: Master of Eloquence
§ achievements.everyMessageLong.title: Master of eloquence
§ achievements.everyMessageLong.description: consistently the longest commit messages
§ achievements.everyMessageShort.title: Talkative, A Spy's Dream
§ achievements.everyMessageShort.title: Talkative, a spy's dream
§ achievements.everyMessageShort.description: consistently, the shortest commit messages
§ achievements.shortestName.title: Size Doesn't Matter
§ achievements.shortestName.title: Size doesn't matter
§ achievements.shortestName.description: shortest name
§ achievements.longestName.title: Azim Aziz Il Am Kadir Imran II
§ achievements.longestName.description: longest name
§ achievements.moreCommits.title: Backup Master
§ achievements.moreCommits.title: Backup master
§ achievements.moreCommits.description: most commits
§ achievements.lessCommits.title: Rare but Precise
§ achievements.lessCommits.description: least commits
§ achievements.oneCommitOneTask.title: Right on Target
§ achievements.oneCommitOneTask.title: Right on target
§ achievements.oneCommitOneTask.description: on average one commit per task
§ achievements.moreLazyDays.title: With You in Spirit
§ achievements.moreLazyDays.title: With you in spirit
§ achievements.moreLazyDays.description: most days without commits
§ achievements.lessLazyDays.title: Papa Carlo
§ achievements.lessLazyDays.title: Papa carlo
§ achievements.lessLazyDays.description: least days without commits
§ achievements.zeroLazyDays.title: Not a Single Break
§ achievements.zeroLazyDays.title: Not a single break
§ achievements.zeroLazyDays.description: not a single day without commits
§ achievements.moreWorkDays.title: Valuable Employee
§ achievements.moreWorkDays.title: Valuable employee
§ achievements.moreWorkDays.description: most working days
§ achievements.moreScopes.title: Startuper
§ achievements.moreScopes.description: completed the most features
§ achievements.lessScopes.title: Dandy
§ achievements.lessScopes.description: completed the fewest features
§ achievements.moreDaysForTask.title: Snail on the Slope
§ achievements.moreDaysForTask.title: Snail on the slope
§ achievements.moreDaysForTask.description: tasks take longer than others
§ achievements.more2DaysForTask.title: Slow and Steady
§ achievements.more2DaysForTask.title: Slow and steady
§ achievements.more2DaysForTask.description: more than two days per task
§ achievements.moreDaysInProject.title: Old-Timer
§ achievements.moreDaysInProject.title: Old-timer
§ achievements.moreDaysInProject.description: most days in the project
§ achievements.lessDaysInProject.title: And Who Is This?
§ achievements.lessDaysInProject.title: And who is this?
§ achievements.lessDaysInProject.description: least days in the project
§ achievements.more90DaysInProject.title: Welcome Aboard
§ achievements.more90DaysInProject.title: Welcome aboard
§ achievements.more90DaysInProject.description: not fired during the probation period
§ achievements.lessDaysForTask.title: Quick Draw
§ achievements.lessDaysForTask.title: Quick draw
§ achievements.lessDaysForTask.description: a task takes less than a day
§ achievements.adam.title: Adam
§ achievements.adam.description: the first stable employee on the project
§ achievements.more666DaysInProject.title: Devil
§ achievements.more666DaysInProject.description: worked 666 days on the project
§ achievements.more777DaysInProject.title: Azino Three Axes
§ achievements.more777DaysInProject.title: Azino three axes
§ achievements.more777DaysInProject.description: worked 777 days on the project
§ achievements.moreRefactoring.title: Executive Editor
§ achievements.moreRefactoring.title: Executive editor
§ achievements.moreRefactoring.description: made the most 'refactoring' tags
§ achievements.longestMessage.title: So Many Conversations...
§ achievements.longestMessage.title: So many conversations...
§ achievements.longestMessage.description: the longest commit message of all time
§ achievements.moreTasksInDay.title: Speed Racer
§ achievements.moreTasksInDay.title: Speed racer
§ achievements.moreTasksInDay.description: record for the number of tasks closed in a day
§ achievements.hasCommitFrom0to7.title: Night Watch
§ achievements.hasCommitFrom0to7.title: Night watch
§ achievements.hasCommitFrom0to7.description: a commit for every hour of the night
§ achievements.noCommitOnDay.title: Technical Break
§ achievements.noCommitOnDay.title: Technical break
§ achievements.noCommitOnDay.description: there is a certain hour and day in working time when never commits
§ achievements.hasCommitEveryTime.title: Died at Work
§ achievements.hasCommitEveryTime.title: Died at work
§ achievements.hasCommitEveryTime.description: a commit for every hour of each day (including weekends)
§ achievements.commitsAfter1800.title: Business Time
§ achievements.commitsAfter1800.description: no commits after 6:00 PM
§ achievements.more1488DaysInProject.title: Named After Maxim Martsinkevich
§ achievements.more1488DaysInProject.title: Named after Maxim Martsinkevich
§ achievements.more1488DaysInProject.description: worked 1488 days on the project
§ achievements.taskNumber300.title: Knows the Tractor Driver
§ achievements.taskNumber300.description: first to take on task number 300
§ achievements.moreFix.title: Bug Hunter
§ achievements.moreFix.title: Bug hunter
§ achievements.moreFix.description: most closed bugs
§ achievements.lessWorkDays.title: Count Me Out
§ achievements.lessWorkDays.title: Count me out
§ achievements.lessWorkDays.description: least working days
§ achievements.moreCreateCode.title: Creator
§ achievements.moreCreateCode.description: tends to add code more than others
@ -87,8 +87,8 @@ export default `
§ achievements.moreRemoveCode.description: tends to remove code more than others
§ achievements.moreChangeCode.title: Reformer
§ achievements.moreChangeCode.description: tends to change code more than others
§ achievements.moreStyle.title: Fashion Police
§ achievements.moreStyle.title: Fashion police
§ achievements.moreStyle.description: tends to change CSS more than others
§ achievements.moreOnHoliday.title: No Life
§ achievements.moreOnHoliday.title: No life
§ achievements.moreOnHoliday.description: relatively many commits in non-working hours
`;

View file

@ -1,17 +1,17 @@
export default `
§ uiKit.console: Copy
§ uiKit.dataLoader.page: Page
§ uiKit.dataLoader.size: Displaying by
§ uiKit.dataLoader.from: from
§ uiKit.dataLoader.size: Displayed
§ uiKit.dataLoader.from: out of
§ uiKit.dataLoader.all: Show all
§ uiKit.hoursChart.work: Standard working hours (weekdays, from 07:00 to 20:00)
§ uiKit.hoursChart.weekend: Weekends or time before/after working day
§ uiKit.hoursChart.days: Total number of commits at any specific day and hour over time
§ uiKit.hoursChart.work: standard working hours (weekdays, 07:00 to 20:00)
§ uiKit.hoursChart.weekend: weekend days or time before/after working hours
§ uiKit.hoursChart.days: total number of commits in all time on a specific day and hour
§ uiKit.page.remove: Remove
§ uiKit.races.go: Let's go
§ uiKit.nothingFound.common.title: No or Insufficient Data for Display
§ uiKit.nothingFound.common.description: The system will process more data if commits are formatted according to the [Git commit message convention|https://www.conventionalcommits.org/en/v1.0.0/]. Template:
§ uiKit.nothingFound.common.console: Task_Number type(feature): explanation
§ uiKit.nothingFound.common.title: No or insufficient data to display
§ uiKit.nothingFound.common.description: The system will process more data if commits are signed in the format [Git commit message convention|https://www.conventionalcommits.org/en/v1.0.0/]. Template:
§ uiKit.nothingFound.common.console: Task_number type(feature): description
§ uiKit.nothingFound.common.example: For example:
§ uiKit.nothingFound.staff.title: No data for this employee
§ uiKit.nothingFound.staff.description1:
@ -19,10 +19,10 @@ They made edits not every working day and received the "Assistant" status.
The work of employees with such status on this project can be neglected as their contribution is insignificant in the general context.
§ uiKit.nothingFound.staff.description2:
Therefore, the system does not calculate certain metrics for them.
If this is an error and the employee should be treated as regular, go to the "Settings" section and change their type.
Therefore, the system does not calculate a number of indicators for him.
If this is an error and this employee needs to be calculated as usual, go to the Settings section and change his type.
§ common.filters: Filters
§ common.notifications.save: Changes saved
§ common.notifications.setting: Settings saved
§ common.notifications.save: The changes have been saved
§ common.notifications.setting: The settings have been saved
`;

View file

@ -17,7 +17,7 @@ export default `
§ sidebar.team.week: By week
§ sidebar.team.month: By month
§ sidebar.team.tree: Files
§ sidebar.team.hours: Schedule
§ sidebar.team.hours: Work schedule
§ sidebar.team.commits: All commits
§ sidebar.team.changes: All changes
§ sidebar.team.words: Popular words
@ -29,7 +29,7 @@ export default `
§ sidebar.person.day: By day
§ sidebar.person.week: By week
§ sidebar.person.month: By month
§ sidebar.person.hours: Schedule
§ sidebar.person.hours: Work schedule
§ sidebar.person.commits: All commits
§ sidebar.person.changes: All changes
§ sidebar.person.words: Popular words

View file

@ -18,10 +18,10 @@ export default `
§ page.print.modal.type: Current section
§ page.print.modal.all: All statistics
§ page.print.modal.cancel: Cancel
§ page.print.tableOfContents: Table of Contents
§ page.print.title: Git Repository Report «$1»
§ page.print.tableOfContents: Table of contents
§ page.print.title: Git repository report «$1»
§ page.print.description: The data for the report was obtained from the commit history.
§ page.team.author.title: Employee Statistics
§ page.team.author.title: Employee statistics
§ page.team.author.description1: *Part of the statistics* (work speed, costs, etc.) *for employees with the 'Assistant' type is not counted*, as it is an episodic role in the project. It is assumed that they do not affect the project, and their edits can be disregarded in the context of the overall volume of work.
§ page.team.author.description2: *Default sorting* is by the number of tasks and groups (current, fired, assisting employees).
§ page.team.author.types: Types of work
@ -39,28 +39,28 @@ export default `
§ page.team.author.moneyWorked: Worked for
§ page.team.author.moneyLosses: Overpayment
§ page.team.hours.title: Distribution of commits during each day of the week
§ page.team.month.title: Project Work Calendar
§ page.team.scope.title: Feature Statistics
§ page.team.month.title: Project work calendar
§ page.team.scope.title: Feature statistics
§ page.team.scope.scope: Feature
§ page.team.scope.days: Working Days
§ page.team.scope.authorsDays: Person-Days
§ page.team.scope.tasks: Tasks
§ page.team.scope.commits: Commits
§ page.team.scope.commitsSmall: commits
§ page.team.scope.types: Types of Work
§ page.team.scope.authors: Personal Contribution
§ page.team.scope.types: Types of work
§ page.team.scope.authors: Personal contribution
§ page.team.scope.cost: Cost
§ page.team.type.title: Task Type Statistics
§ page.team.type.title: Task type statistics
§ page.team.type.description: *Personal contribution* is counted by the number of commits, not the volume of changed lines or files. Therefore, the "File Analysis" section should also be consulted to assess the scale of changes.
§ page.team.type.type: Type of Work
§ page.team.type.type: Type of work
§ page.team.type.tasks: Tasks
§ page.team.type.tasksSmall: tasks
§ page.team.type.days: Days
§ page.team.type.daysSmall: days
§ page.team.type.authorsDays: Person-Days
§ page.team.type.authorsDays: Person-days
§ page.team.type.commits: Commits
§ page.team.type.authors: Personal Contribution
§ page.team.total.titleA: Volume of Work
§ page.team.type.authors: Personal contribution
§ page.team.total.titleA: Volume of work
§ page.team.total.titleB: Cost
§ page.team.total.daysWorked.title: person-days
§ page.team.total.daysWorked.description: Only days with commits are counted
@ -89,19 +89,19 @@ export default `
§ page.team.total.description5: *Weekend work* is calculated at a rate of x2 the payment of a regular day. The displayed amount is specifically the overpayment (x1), as the fact of overtime in this context is not of interest. We focus on overpayment when increasing work speed.
§ page.team.tree.title: Project Tree Considering Selected Filters
§ page.team.tree.filters.author: Employee
§ page.team.tree.filters.commits: Number of Commits
§ page.team.tree.filters.commits: Number of commits
§ page.team.tree.filters.help: The minimum number of commits an employee has made in a file
§ page.team.tree.filters.all: All Employees
§ page.team.tree.filters.all: All employees
§ page.team.tree.add: Who added
§ page.team.tree.change: Who changed
§ page.team.tree.remove: Who removed
§ page.team.tree.line: lines
§ page.team.tree.lineAdd: added
§ page.team.tree.lineRemove: changed
§ page.team.week.title: Weekly Statistics
§ page.team.week.title: Weekly statistics
§ page.team.week.date: Date
§ page.team.week.numberTasks: Number of Tasks
§ page.team.week.people: Number of People
§ page.team.week.numberTasks: Number of tasks
§ page.team.week.people: Number of people
§ page.team.week.line: Line Changes
§ page.team.week.days: Days with and without commits
§ page.team.week.lossesDetails: Who did not commit
@ -114,27 +114,27 @@ export default `
§ page.team.week.tasks: tasks
§ page.team.pr.task: Task
§ page.team.pr.tasks: tasks
§ page.team.pr.firstCommitTime: First Commit
§ page.team.pr.firstCommitTime: First commit
§ page.team.pr.lastCommitTime: Last
§ page.team.pr.workDays: Development Days
§ page.team.pr.delayDays: Days Waiting for Merge
§ page.team.pr.workDays: Development days
§ page.team.pr.delayDays: Days waiting for merge
§ page.team.pr.commits: Commits
§ page.team.pr.date: Merge Date
§ page.team.pr.mergeAuthor: Merged by
§ page.team.pr.author: Employee
§ page.team.pr.middleTimeRelease: Average Delivery Time (days)
§ page.team.pr.middleTimeRelease: Average delivery time (days)
§ page.team.pr.work: development
§ page.team.pr.delay: waiting
§ page.team.pr.days: days
§ page.team.pr.oneTaskDays: Time Spent on One Task
§ page.team.pr.oneTaskDays: Time spent on one task
§ page.team.pr.description1: *Development time* is the time difference from the first to the last commit on a task. It does not matter if there were breaks of several days between commits or not. Any commit increases the time.
§ page.team.pr.description2: *Waiting time* is the time between the last commit and the code merge. It shows the actual downtime while waiting for something.
§ page.team.pr.description3: *Why display development time* without splitting into coding and code review? To show the business the actual delivery time of the code. Waiting for testing, review comments, DevOps problems, and other process imperfections are already included in this term.
§ page.team.pr.statByAuthors: Statistics by Employees
§ page.team.pr.longDelay: Prolonged Waiting for Merge
§ page.team.pr.statByAuthors: Statistics by employees
§ page.team.pr.longDelay: Prolonged Waiting for merge
§ page.person.print.photo.title: Photo
§ page.person.print.photo.description: space for a photo
§ page.person.total.title: Main Characteristics
§ page.person.total.title: Main characteristics
§ page.person.total.daysWorked.title: days of work
§ page.person.total.daysWorked.description: Only days with commits are counted
§ page.person.total.tasks.title: tasks
@ -194,9 +194,9 @@ will be marked as a jump in "deleted" and "added" lines.
§ page.person.speed.maxCommits.description: A task may not be completed, but work should be done on it
§ page.person.hours.title: Distribution of commits during each day of the week
§ page.person.week.date: Date
§ page.person.week.tasks: Number of Tasks
§ page.person.week.workDays: Days with Commits
§ page.person.week.taskInDay: Tasks per Day
§ page.person.week.tasks: Number of tasks
§ page.person.week.workDays: Days with commits
§ page.person.week.taskInDay: Tasks per day
§ page.person.week.days: days
§ page.person.week.workDay: weekdays
§ page.person.week.weekends: weekends

View file

@ -1,27 +1,27 @@
export default `
§ page.settings.document.title: Display Settings
§ page.settings.document.name: Page Title
§ page.settings.document.language: Interface Language
§ page.settings.links.title: Link Prefixes
§ page.settings.links.task: For Task Numbers
§ page.settings.document.title: Display settings
§ page.settings.document.name: Page title
§ page.settings.document.language: Interface language
§ page.settings.links.title: Link prefixes
§ page.settings.links.task: For task numbers
§ page.settings.links.pr: For PR
§ page.settings.user.title: Individual Settings
§ page.settings.user.title: Individual settings
§ page.settings.user.notFound: No individual settings. Data for all employees are calculated based on common parameters.
§ page.settings.user.subTitle: Addendum to employment contract $1
§ page.settings.user.from: Start date
§ page.settings.mailmap: .mailmap Settings
§ page.settings.common.title: General Salary Data
§ page.settings.common.type.title: Type of Work on the Project
§ page.settings.common.type.full: Full-time
§ page.settings.common.type.part: Project Work
§ page.settings.common.salary: Monthly Salary
§ page.settings.mailmap: .mailmap example
§ page.settings.common.title: General salary data
§ page.settings.common.type.title: Project work type
§ page.settings.common.type.full: Full-time employment
§ page.settings.common.type.part: Project work
§ page.settings.common.salary: Monthly salary
§ page.settings.common.currency: Currency
§ page.settings.common.workDaysInYear: Number of Working Days in a Year
§ page.settings.common.vacationDaysInYear: Number of Vacation Days in a Year
§ page.settings.common.workDaysInYear: Number of working days in a year
§ page.settings.common.vacationDaysInYear: Number of vacation days in a year
§ page.settings.common.workDaysInWeek: Workdays
§ page.settings.form.save: Save
§ page.settings.form.cancel: Cancel
§ page.settings.form.remove: Remove
§ page.settings.form.addEmployee: Add Employee
§ page.settings.form.addContract: Add Employment Contract
§ page.settings.form.addEmployee: Add an employee
§ page.settings.form.addContract: Add an employment contract
`;