Commit Graph

52 Commits

Author SHA1 Message Date
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
d58a88196a fix: use noto sans for text insertion on pdfs
Use Noto Sans to gracefully handle inserting custom text
on PDF's. Previously we were using Helvetica which is a
standard PDF font but that would fail for any character
that couldn't be encoded in WinANSI.

Noto Sans was chosen as it has support for a large number
of languages and glyphs with challenges now being adding
support for CJK glyphs.
2024-05-23 13:07:37 +10:00
4d4dfd3c5f fix: implement review feedback, resolve build errors 2024-04-10 17:39:16 +07:00
d1ffcb00f3 feat: add axiom web vitals (#1071)
## Description

Added support for Axiom web vitals

https://axiom.co/docs/apps/vercel#web-vitals
2024-04-03 14:32:34 +07:00
8859b2779f chore: use rust based cms signing 2024-03-15 22:29:15 +11:00
8dad3607cf fix: add @node-rs/bcrypt to server component externals 2024-03-07 18:48:06 +11:00
39c01f4e8d fix: remove server actions (#684) 2023-12-02 09:38:24 +11:00
1d79ebbda3 fix: body exeeded undefined limit (#679)
* fixed bodySizeLimit

* fix: update marketing config

---------

Co-authored-by: Lucas Smith <me@lucasjamessmith.me>
2023-11-30 09:46:33 +02:00
8230349114 fix: unable to load font for signing 2023-11-24 16:17:54 +11:00
608a4eaaa6 feat: refactor og image generation (#639) 2023-11-14 13:08:14 +11:00
d6ae0b44e6 feat: use nextjs.js standalone output for improvised docker image (#338) 2023-11-12 13:15:42 +11:00
7fa61c6bb6 chore: upgrade to next 14.0.0 2023-11-06 13:02:20 +11:00
2ac0d79051 fix: support multi env 2023-11-06 13:02:19 +11:00
5445b85aae fix: invalid url on main page in self host 2023-11-06 13:02:19 +11:00
04fc9eb187 chore: upgrade to latest next.js version (#553)
* chore: upgrade next.js
* fix: canvas not found error
* chore: upgrade package for marketing
* feat: add isServer conditional
* fix: inverse isServer condition
* fix: normalize packages
* fix: upgrade ee package
* fix: depdency nightmares
* fix: failing seed script
2023-11-06 13:02:19 +11:00
f75f191a9a fix: add redirects for v0.9 requests 2023-11-06 13:02:19 +11:00
7ec8ce2a56 feat: add posthog reverse proxy (#449) 2023-11-06 13:01:45 +11:00
34232c79e5 feat: add single player mode 2023-11-06 13:01:43 +11:00
f700016440 chore: tidy unused code 2023-11-06 13:01:13 +11:00
771042c9ce feat: add vercel build script 2023-11-06 13:01:13 +11:00
3afc35c40c feat: universal upload
Implementation of a universal upload allowing for multiple storage backends
starting with `database` and `s3`.

Allows clients to put and retrieve files from either client or server using
a blend of client and server actions.
2023-11-06 13:01:13 +11:00
e752c0c60b chore: fix version in nextjs config 2023-11-06 13:01:12 +11:00
31ae6591dd chore: added app version 2023-11-06 13:01:12 +11:00
12d8cebd4c feat: use server-actions for authoring flow
This change actually makes the authoring flow work for
the most part by tying in emailing and more.

We have also done a number of quality of life updates to
simplify the codebase overall making it easier to continue
work on the refresh.
2023-11-06 13:01:07 +11:00
159bcade7b wip: refresh design 2023-11-06 13:01:06 +11:00
2f3be1cfe5 Add turborepo to monorepo. 2023-05-29 10:38:24 -05:00
ed3e4d22ef feat: scaffhold subscription table and ui 2023-05-05 19:29:42 +10:00
84b57d715c Apply prettier config to all files 2023-04-04 22:02:32 +00:00
8387179cbf 🚧 signDocument using node signpdf and custom placeholder insert 2023-03-01 19:54:22 +01:00
f5f16c8cbc ⚗️ https://github.com/agilgur5/react-signature-canvas/issues/95 2023-02-18 21:42:05 +01:00
788bb27275 ⚗️ 2023-02-18 17:28:24 +01:00
017a76ef5d 🚧 📑 pdf helpers, todos for signign 2023-02-18 14:37:26 +01:00
a5c6f657b8 move document upload to feature 2023-01-25 10:50:58 +01:00
a401b28e30 build fix 2023-01-23 21:37:23 +01:00
49b49dbae6 build fix 2023-01-23 21:29:45 +01:00
674b9072bd qoc 2023-01-19 17:59:41 +01:00
ed94dfa16d vercel test 2 2023-01-14 13:41:04 +01:00
56153e12dd local build dir 2023-01-14 13:31:33 +01:00
79c150a378 vercel test 2023-01-14 13:22:07 +01:00
a845984b03 login logout toast 2023-01-12 15:59:21 +01:00
79670b4ab4 api architecture 2023-01-09 17:10:36 +01:00
4cde95304a deploy prep 2023-01-09 09:46:08 +01:00
dc4f1c5fac monorepo deploy settings prep 2023-01-09 09:43:58 +01:00
e64f40f1fd @documenso/prisma works 2023-01-07 18:38:44 +01:00
a78f8c8761 stuff 2023-01-07 17:52:46 +01:00
1c6c5a8cc1 somehow working without transpile 2023-01-07 15:45:03 +01:00
1101251276 github auth 2022-12-08 22:42:19 +01:00
ca6fb819c8 pages and menus 2022-12-08 16:04:22 +01:00
08b6957b27 sm, qoc 2022-12-07 13:17:39 +01:00
241ef9760f remove redirect 2022-12-06 21:40:06 +01:00