Commit Graph

28 Commits

Author SHA1 Message Date
David Nguyen
1028184cf2 feat: initial i18n marketing implementation (#1223)
## Description

This PR introduces an initial i18n implementation using
[Lingui](https://lingui.dev).

We plan to combine it with Crowdin which will provide AI translations
when PRs are merged into main.

We plan to rollout i18n to only marketing for now, and will review how
everything goes before continuing to introduce it into the main
application.

## Reasoning

Why not use i18n-next or other alternatives?

To hopefully provide the best DX we chose Lingui because it allows us to
simply wrap text that we want to translate in tags, instead of forcing
users to do things such as:

- Update the text to `t('some-text')`
- Extract it to the file
- The text becomes a bit unreadable unless done correctly

Yes, plugins such as i18n-ally and Sherlock exist to simplify these
chores, but these require the user to be correctly setup in vscode, and
it also does not seem to provide the required configurations for our
multi app and multi UI package setup.

## Super simple demo

```html
// Before
<p>Text to update</p>

// After
<p>
  <Trans>Text to update</Trans>
</p>
```

## Related Issue

Relates to #885 but is only for marketing for now.

Another branch is slowly being prepared for the changes required for the
web application while we wait to see how this goes for marketing.

## Changes Made

Our configuration does not follow the general standard since we have
translations that cross:
- Web app
- Marketing app
- Constants package
- UI package

This means we want to separate translations into:
1. Marketing - Only translations extracted from `apps/marketing`
2. Web - Only translations extracted from `apps/web`
3. Common - Translations from `packages/constants` and `packages/ui`

Then we bundle, compile and minify the translations for production as
follows:
1. Marketing = Marketing + Common
2. Web = Web + Common

This allows us to only load the required translations when running each
application.

Overall general changes: 
- Add i18n to marketing
- Add core i18n setup to web
- Add pre-commit hook and GH action to extract any new <Trans> tags into
the translation files

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit


- **New Features**
- Added Romanian localization for marketing messages to improve
accessibility for Romanian-speaking users.
- Introduced German and English translation modules and PO files to
enhance the application's internationalization capabilities.
- Integrated internationalization support in the RootLayout component
for dynamic language settings based on server-side configurations.
- Enhanced the Enterprise component with translation support to adapt to
user language preferences.
- Added a `<meta>` tag to prevent Google from translating the page
content, supporting internationalization efforts.

- **Bug Fixes**
- Resolved minor issues related to the structure and accessibility of
translation files.

- **Chores**
- Updated project dependencies to support the new localization features
and ensure stability.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Lucas Smith <me@lucasjamessmith.me>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: github-actions <github-actions@documenso.com>
2024-07-26 14:56:42 +10:00
Catalin Pit
7b5c57e8af chore: add more field types (#1141)
Adds a number of new field types and capabilities to existing fields.

A massive change with far too many moving pieces to document in a single commit.
2024-07-18 23:45:44 +10:00
Ephraim Atta-Duncan
f363dee761 fix: downloaded files should have _signed 2024-05-07 10:19:09 +00:00
Lucas Smith
927cb1a934 fix: incorrect download filename logic 2024-03-05 23:05:32 +00:00
Mythie
73aae6f1e3 feat: improve admin panel 2024-03-03 01:55:33 +11:00
Lucas Smith
df132a51ab feat: ability to download all the 2FA recovery codes (#944)
fixes #938 



https://github.com/documenso/documenso/assets/81948346/8bf807ae-41b0-417b-9f55-d96584e71acb
2024-02-21 13:39:08 +11:00
Lucas Smith
aba6b58c14 fix: simplify download api 2024-02-21 02:19:35 +00:00
Lucas Smith
d83769b410 chore: use unsafe effect 2024-02-16 11:56:02 +00:00
Hani
7ece6ef239 feat: add recipient roles (#716)
Fixes #705

---------

Co-authored-by: Lucas Smith <me@lucasjamessmith.me>
Co-authored-by: David Nguyen <davidngu28@gmail.com>
2024-02-02 10:45:02 +11:00
Lucas Smith
0d977e783e refactor: download function to be reusable (#740) 2024-01-18 15:24:36 +11:00
Lucas Smith
0d15b80c2d fix: simplify code 2024-01-18 04:23:22 +00:00
Ephraim Atta-Duncan
b76d2cea3b fix: changes from code review 2024-01-02 04:38:35 +00:00
hallidayo
32633f96d2 feat: dateformat and timezone customization (#506) 2023-12-27 14:05:49 +11:00
Ephraim Atta-Duncan
38ad3a1922 refactor: download function to be reusable 2023-12-07 14:52:12 +00:00
David Nguyen
1d291e8e03 feat: add safari clipboard copy support (#486) 2023-11-06 13:02:19 +11:00
David Nguyen
38960c459b feat: add document share button to marketing (#422) 2023-11-06 13:02:19 +11:00
David Nguyen
6d0e8f6dd8 feat: single-player-mode-polish (#435) 2023-11-06 13:02:19 +11:00
David Nguyen
34232c79e5 feat: add single player mode 2023-11-06 13:01:43 +11:00
David Nguyen
a72248e871 refactor: organise recipient utils 2023-11-06 13:01:12 +11:00
David Nguyen
48e58d4675 feat: add avatar email fallback 2023-11-06 13:01:12 +11:00
David Nguyen
41d46c82d1 feat: update document table layout (#371)
* feat: update document table layout

- Removed dashboard page
- Removed redundant ID column
- Moved date to first column
- Added estimated locales for SSR dates
2023-11-06 13:01:12 +11:00
David Nguyen
215eaebc1a feat: update document flow
- Fixed z-index when dragging pre-existing fields
- Refactored document flow
- Added button spinner
- Added animation for document flow slider
- Updated drag and drop fields
- Updated document flow so it adjusts to the height of the PDF
- Updated claim plan dialog
2023-11-06 13:01:10 +11:00
David Nguyen
a0abf56833 refactor: extract common components into UI package 2023-11-06 13:01:10 +11:00
Mythie
7a705e3b81 feat: document authoring 2023-11-06 13:01:09 +11:00
Ephraim Atta-Duncan
0da6e93a6a chore: format date 2023-11-06 13:01:08 +11:00
Ephraim Atta-Duncan
0de4fe5883 fix: update types from code review 2023-11-06 13:01:07 +11:00
Ephraim Atta-Duncan
71c689eae8 chore: refactor stacked avatars into component 2023-11-06 13:01:07 +11:00
Mythie
159bcade7b wip: refresh design 2023-11-06 13:01:06 +11:00