start-repo
start-repo copied to clipboard
🪲 Easily create default issues for your next project on GitHub or GitLab
🪲 Start REPO
The purpose of Start REPO is to easily create default issues on a new GitHub or GitLab repository. It is a simple way to get started with your projects. We do have a lot of clients at BearStudio and we need to create a bunch of default issues when bootstrapping a new project. This is where Start REPO comes.
Scopes are here to easily target the kind of project you are starting: web,
mobile, desktop, server, game, are some example of scopes you can
create.
Installation
yarn install
yarn build
Development
yarn dev
Storybook
yarn storybook
Show hint on development environments
Setup the NEXT_PUBLIC_DEV_ENV_NAME env variable with the name of the environment.
NEXT_PUBLIC_DEV_ENV_NAME=staging
NEXT_PUBLIC_DEV_ENV_COLOR_SCHEME=teal
Translations
Setup the i18n Ally extension
We recommended using the i18n Ally plugin for VS Code for translations management.
Create or edit the .vscode/settings.json file with the following settings:
{
"i18n-ally.localesPaths": ["src/locales"],
"i18n-ally.keystyle": "nested",
"i18n-ally.enabledFrameworks": ["general", "react", "i18next"],
"i18n-ally.namespace": true,
"i18n-ally.defaultNamespace": "common",
"i18n-ally.extract.autoDetect": true,
"i18n-ally.keysInUse": ["common.languages.*"]
}
Guidelines for translations
- Use namespaces
t('namespace:translationKey')and nestingt('namespace:this.is.nested').
// Example for translations available in account.json
t('account:data.firstname.label')
- For fields and data translations use a
dataobject.
// account.json
{
"data": {
"firstname": {
"label": "First Name",
"required": "First Name is required",
},
}
}
// React
t('account:data.firstname.label')
t('account:data.firstname.required')
- For user feedbacks, use a
feedbacksobject withactionSuccess&actionErrorkeys containing eachtitleanddescription(optional).
// account.json
{
"resetPassword": {
"feedbacks": {
"confirmSuccess": {
"title": "Your password has been reset",
"description": "You can now login"
},
"confirmError": {
"title": "Reset password failed"
}
}
}
}
// React
t('account:resetPassword.feedbacks.updateSuccess.title')
t('account:resetPassword.feedbacks.updateSuccess.description')
t('account:resetPassword.feedbacks.updateError.title')
- For user actions, use an
actionsobject.
// account.json
{
"resetPassword": {
"actions": {
"send": "Send Email",
"reset": "Reset Password"
}
}
}
// React
t('account:resetPassword.actions.send')
t('account:resetPassword.actions.reset')
- Use the common workspace only for VERY generic translations. By default, use specific namespaces to allow easy update on large code base without unwanted side-effects.
Production
yarn storybook:build # Optional: Will expose the Storybook at `/storybook`
yarn build
yarn start