mirror of
https://github.com/documenso/documenso.git
synced 2025-11-09 20:12:31 +10:00
## 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>
1 line
9.1 KiB
JavaScript
1 line
9.1 KiB
JavaScript
/*eslint-disable*/module.exports={messages:JSON.parse("{\"J/hVSQ\":[[\"0\"]],\"u0zktA\":\"5 documente standard pe lună\",\"rKtmiD\":\"5 Utilizatori Incluși\",\"vaHmll\":\"O experiență de semnare de 10 ori mai bună.\",\"gBefbz\":[\"Adaugă Mai Mulți Utilizatori pentru \",[\"0\"]],\"XkF8tv\":\"Toate metricile, finanțele și învățămintele noastre sunt publice. Credem în transparență și dorim să împărtășim călătoria noastră cu tine. Poți citi mai multe despre asta aici: <0>Anunțând Metriile Deschise</0>\",\"tkQ/WI\":\"Suma Strânsă\",\"qOMroC\":\"Acces API\",\"FNv8t7\":\"Frumos.\",\"W/TUoX\":\"Pentru că semnarea trebuie să fie sărbătorită. De aceea ne pasă de cel mai mic detaliu din produsul nostru.\",\"astDB+\":\"Blog\",\"7zGun7\":\"Construiește pe baza.\",\"fxgcNV\":\"Pot folosi Documenso comercial?\",\"V+D/YP\":\"Cariere\",\"CWe7wB\":\"Istoric de Modificări\",\"JZbmjL\":\"Alegeți un șablon din magazinul de aplicații al comunității. Sau trimiteți propriul șablon pentru ca alții să îl folosească.\",\"chL5IG\":\"Comunitate\",\"p5+XQN\":\"Documente Finalizate\",\"NApCXa\":\"Documente Finalizate pe Lună\",\"z5kV0h\":\"Conexiuni\",\"YcfUZ9\":\"Contactați-ne\",\"1NJjIG\":\"Creați conexiuni și automatizări cu Zapier și altele pentru a integra cu instrumentele dvs. preferate.\",\"rr83qK\":\"Creați-vă contul și începeți să utilizați semnarea documentelor de ultimă generație. Semnarea deschisă și frumoasă este la îndemâna dvs.\",\"75ojt0\":\"Clienți cu Abonamente Active.\",\"pF9qTh\":\"Personalizează și extinde.\",\"f8fH8W\":\"Design\",\"W6qD1T\":\"Proiectat pentru fiecare etapă a călătoriei tale.\",\"K6KbY4\":\"Link Direct\",\"aLD+Td\":\"Documenso este un efort al comunității de a crea un ecosistem deschis și vibrant în jurul unui instrument, pe care toți îl pot folosi și adapta gratuit. Fiind cu adevărat deschiși, dorim să creăm o infrastructură de încredere pentru viitorul internetului.\",\"32yG8y\":\"Documenso pe X\",\"+1xAO7\":\"Semnare de documente,<0/>în sfârșit open source.\",\"TvY/XA\":\"Documentație\",\"tSS7hj\":\"Incorporați ușor Documenso în produsul dvs. Pur și simplu copiați și lipiți widget-ul nostru react în aplicația dvs.\",\"BWMGM4\":\"Partajare ușoară (Curând).\",\"V6EY8B\":\"Suport prin Email și Discord\",\"C0/bri\":\"Implicare\",\"8Zy3YU\":\"Conformitate Enterprise, Licență sau Nevoi Tehnice?\",\"ZSW8id\":\"Tot ce ai nevoie pentru o experiență excelentă de semnare.\",\"sXswT6\":\"Rapid.\",\"cT9Z9e\":\"Mai rapid, mai inteligent și mai frumos.\",\"k/ANik\":\"Finanțe\",\"I7Exsw\":\"Urmărește-ne pe X\",\"f3Botn\":\"Pentru companiile care doresc să se extindă pe mai multe echipe.\",\"y2DcZj\":\"Pentru echipe mici și indivizi cu nevoi de bază.\",\"2POOFK\":\"Gratuit\",\"OdieZe\":\"Din blog\",\"IPgkVQ\":\"Normă întreagă\",\"aSWzT9\":\"Primește plata (Curând).\",\"ZDIydz\":\"Începe\",\"c3b0B0\":\"Începe\",\"pS8wej\":\"Începe astăzi.\",\"7FPIvI\":\"Primește cele mai recente știri de la Documenso, inclusiv actualizări de produse, anunțuri ale echipei și multe altele!\",\"kV0qBq\":\"GitHub: Total PR-uri Fuzionate\",\"652R6j\":\"GitHub: Total Probleme Deschise\",\"R1aJ0W\":\"GitHub: Total Stele\",\"P1ovAc\":\"Benzile Salariale Globale\",\"IAq/yr\":\"Creștere\",\"Xi7f+z\":\"Cum pot contribui?\",\"9VGuMA\":\"Cum vă ocupați de datele mele?\",\"fByw/g\":\"Individ\",\"Csm+TN\":\"Plăți integrate cu Stripe astfel încât să nu trebuiască să te îngrijorezi de a primi banii.\",\"phSPy7\":\"Se integrează cu toate uneltele tale preferate.\",\"pfjrI2\":\"Mai e ceva?\",\"LOyqaC\":\"Depinde de tine. Fie clonezi depozitul nostru, fie te bazezi pe soluția noastră ușor de utilizat de găzduire.\",\"PCgMVa\":\"Data alăturării\",\"TgL4dH\":\"Alăturați-vă Mișcării de Semnare Deschisă\",\"wJijgU\":\"Locație\",\"OIowgO\":\"Personalizează-l cu ajutorul personalizării avansate și al ajustabilității.\",\"GHelWd\":\"PR-uri fuzionate\",\"vXBVQZ\":\"PR-uri fuzionate\",\"+8Nek/\":\"Lunar\",\"6YtxFj\":\"Nume\",\"CtgXe4\":\"Utilizatori noi\",\"OpNhRn\":\"Nu este necesar cardul de credit\",\"6C9AxJ\":\"Nu este necesar cardul de credit\",\"igwAqT\":\"Niciuna dintre acestea nu funcționează pentru tine? Încearcă auto-găzduirea!\",\"jjAtjQ\":\"Probleme deschise\",\"b76QYo\":\"Open Source sau găzduit.\",\"OWsQIe\":\"Startup deschis\",\"Un80BR\":\"Prieteni OSS\",\"6zNyfI\":\"Șabloanele noastre personalizate vin cu reguli inteligente care te pot ajuta să economisești timp și energie.\",\"eK0veR\":\"Licența noastră Enterprise este excelentă pentru organizațiile mari care doresc să treacă la Documenso pentru toate nevoile lor de semnare. Este disponibilă pentru oferta noastră în cloud, precum și pentru configurațiile auto-găzduite și oferă o gamă largă de caracteristici de conformitate și administrare.\",\"I2ufwS\":\"Opțiunea noastră auto-găzduită este grozavă pentru echipe mici și persoane care au nevoie de o soluție simplă. Poți folosi configurarea noastră bazată pe Docker pentru a începe în câteva minute. Ia controlul cu personalizare completă și deținerea datelor.\",\"F9564X\":\"Part-Time\",\"qJVkX+\":\"Nume profil premium\",\"aHCEmh\":\"Prețuri\",\"rjGI/Q\":\"Confidențialitate\",\"vERlcd\":\"Profil\",\"77/8W2\":\"React Widget (Curând).\",\"OYoVNk\":\"Primește linkul tău personal pentru a-l partaja cu toți cei dragi.\",\"GDvlUT\":\"Rol\",\"bUqwb8\":\"Salariu\",\"GNfoAO\":\"Economisește 60$ sau 120$\",\"StoBff\":\"Caută limbi...\",\"dhi4w4\":\"În siguranță. Centrele noastre de date sunt situate în Frankfurt (Germania), oferindu-ne cele mai bune legi locale privind confidențialitatea. Suntem foarte conștienți de natura sensibilă a datelor noastre și urmăm cele mai bune practici pentru a asigura securitatea și integritatea datelor încredințate nouă.\",\"kZBxnz\":\"Trimite, conectează, primește și încorporează peste tot.\",\"eSfS30\":\"Senioritate\",\"aoDa18\":\"Magazin\",\"5lWFkC\":\"Autentificare\",\"e+RpCP\":\"Înregistrare\",\"4yiZOB\":\"Proces de înregistrare\",\"RkUXMm\":\"Înregistrează-te acum\",\"omz3DH\":\"Deștept.\",\"AvYbUL\":\"Adaugă un stea pe GitHub\",\"y2dGtU\":\"Stele\",\"uAQUqI\":\"Stare\",\"XYLcNv\":\"Suport\",\"KM6m8p\":\"Echipă\",\"lm5v+6\":\"Inbox pentru echipă\",\"CAL6E9\":\"Echipe\",\"w4nM1s\":\"Magazin de Șabloane (În curând).\",\"yFoQ27\":\"Este grozav. Poți arunca o privire la <0>Problemele</0> actuale și să te alături <1>Comunității noastre Discord</1> pentru a rămâne la curent cu prioritățile actuale. În orice caz, suntem o comunitate deschisă și primim cu bucurie toată contribuția, tehnică și non-tehnică ❤️\",\"GE1BlA\":\"Această pagină evoluează pe măsură ce învățăm ce face o companie de semnături excelentă. O vom actualiza când avem mai multe de împărtășit.\",\"MHrjPM\":\"Titlu\",\"2YvdxE\":\"Total Documente Finalizate\",\"8e4lIo\":\"Total Clienți\",\"bPpoCb\":\"Total Finanțare Strânsă\",\"vb0Q0/\":\"Total Utilizatori\",\"mgQhDS\":\"Cu adevărat al tău.\",\"4McJfQ\":\"Încearcă Planul nostru Gratuit\",\"9mkNAn\":\"Statistici Twitter\",\"CHzOWB\":\"Documente Nelimitate pe Lună\",\"BOV7DD\":\"Până la 10 destinatari pe document\",\"vdAd7c\":\"Utilizarea versiunii noastre găzduite este cea mai simplă modalitate de a începe, te poți abona pur și simplu și începe să semnezi documentele tale. Ne ocupăm de infrastructură, astfel încât tu să te poți concentra pe afacerea ta. În plus, atunci când utilizezi versiunea noastră găzduită beneficiezi de certificatele noastre de semnătură de încredere care te ajută să construiești încredere cu clienții tăi.\",\"W2nDs0\":\"Vezi toate statisticile\",\"WMfAK8\":\"Suntem bucuroși să vă asistăm la <0>support@documenso.com</0> sau <1>în canalul nostru de suport Discord</1>, te rugăm să-i trimiți un mesaj fie lui Lucas, fie lui Timur pentru a fi adăugat în canal dacă nu ești deja membru.\",\"ZaMyxU\":\"Care este diferența între planuri?\",\"8GpyFt\":\"Când vine vorba de trimiterea sau primirea unui contract, poți conta pe viteze fulgerătoare.\",\"HEDnID\":\"Unde pot obține suport?\",\"sib3h3\":\"De ce ar trebui să prefer Documenso în locul DocuSign sau altui instrument de semnare?\",\"cVPDPt\":\"De ce ar trebui să folosesc serviciul vostru de găzduire?\",\"zkWmBh\":\"Anual\",\"8AKApo\":\"Da! Documenso este oferit sub licența open source GNU AGPL V3. Aceasta înseamnă că îl poți folosi gratuit și chiar modifica pentru a se potrivi nevoilor tale, atâta timp cât publici modificările sub aceeași licență.\",\"rzQpex\":\"Poți găzdui Documenso pe cont propriu gratuit sau să folosești versiunea noastră găzduită gata de utilizare. Versiunea găzduită vine cu suport suplimentar, scalabilitate fără dureri și multe altele. Utilizatorii timpurii vor avea acces la toate funcțiile pe care le construim în acest an, fără costuri suplimentare! Pentru totdeauna! Da, aceasta include utilizatori multipli pe cont mai târziu. Dacă dorești Documenso pentru întreprinderea ta, suntem bucuroși să discutăm despre nevoile tale.\",\"1j9aoC\":\"Browserul tău nu suportă eticheta video.\"}")}; |