* feat: improve i18n support as a whole
- Remove dayjs in favor of /helpers/datetime.ts, which uses
Intl.DateTimeFormat and Date. Dayjs is not exactly i18n friendly
and has several locale related opened issues.
- Move/refactor date/time code from /helpers/utils.ts to
/helpers/datetime.ts.
- Fix Daily Review weekday not changing according to selected date.
- Localize Daily review weekday and month.
- Load i18n listed strings from /locales/{locale}.json in a dynamic way.
This makes much easier to add new locales, by just adding a properly
named json file and listing it only in /web/src/i18n.ts and
/api/user_setting.go.
- Fallback languages are now set in /web/src/i18n.ts.
- Full language codes are now preffered, but they fallback to 2-letter
codes when not available.
- The locale dropdown is now populated dynamically from the available
locales. Locale names are populated by the browser via
Intl.DisplayNames(locale).
- /web/src/i18n.ts now exports a type TLocale from availableLocales
array. This is used only by findNearestLanguageMatch(). As I was unable
to use this type in ".d.ts" files, I switched the Locale type from
/web/src/types/i18n.d.ts to string.
- Move pretty much all hardcoded text strings to i18n strings.
- Add pt-BR translation.
- Remove site.ts and move its content to a i18n string.
- Rename zh.json to zh-Hans.json to get the correct language name on
selector dropdown.
- Remove pt_BR.json and replace with pt-BR.json.
- Some minor layout spacing fixes to accommodate larger texts.
- Improve some error messages.
* Delete .yarnrc.yml
* Delete package-lock.json
* fix: 158:28 error Insert `⏎` prettier/prettier
* add i18n
* add base e2e test
* add multiple test for e2e
* extract the funciton of write memo
* change test sturct
* deteled unused dir
* use fixture
* add fixture
* restruced the project
* feat: add workflow
* feat: change playwright test position
* feat: change playwright test position
* using yarn intead of npm
* change install method
* only enable sign in test
* adjust the order of test
* change report pos
* fix style of e2e workflow
* add review test
* unify locale
* randome write content
* change report pos
* reduce unused wait time
* reduce unused folder
* stash
* merge upstream locale
* change test name
* add test item
* change action name
* add lanuage setting
* add shotscreen
* change name of test
* fix the error of import dep
* fix the error of import dep
* fix the error of filename
* fix the format of workflow
* fix the name error of test case
* feat: change the describe of test case
* feat: remove unused test
* feat: change the fixtures name
* feat: remove unused config
* feat: change docker action
* feat: change the generate method
* feat: extrace screenshot
* feat: change extra path
* feat: change extra path
* feat: screenshot and upload
* feat: change upload filename
* feat: change login method
* feat: change e2e method
* feat: change e2e test
* feat: add wait for login
---------
Co-authored-by: CorrectRoadH <a778917369@gmail.comå>
* feat: automatically change language to browser language on first launch(#1238)
* Update web/src/store/module/global.ts
* chroe: rename languageCodeCovert to convertLanguageCodeToLocale
---------
Co-authored-by: boojack <stevenlgtm@gmail.com>