Progress on translations (#9703)
Start adding a few translations on setting pages, introduce pseudo-locale, switch to dynamic import, add eslint rule
This commit is contained in:
@ -1,7 +1,10 @@
|
||||
module.exports = {
|
||||
root: true,
|
||||
extends: ['plugin:prettier/recommended'],
|
||||
plugins: ['@nx', 'prefer-arrow', 'import', 'unused-imports', 'unicorn'],
|
||||
extends: [
|
||||
'plugin:prettier/recommended',
|
||||
'plugin:lingui/recommended',
|
||||
],
|
||||
plugins: ['@nx', 'prefer-arrow', 'import', 'unused-imports', 'unicorn', 'lingui'],
|
||||
rules: {
|
||||
'func-style': ['error', 'declaration', { allowArrowFunctions: true }],
|
||||
'no-console': ['warn', { allow: ['group', 'groupCollapsed', 'groupEnd'] }],
|
||||
|
||||
@ -302,6 +302,7 @@
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-import": "2.29.1",
|
||||
"eslint-plugin-jsx-a11y": "^6.8.0",
|
||||
"eslint-plugin-lingui": "^0.9.0",
|
||||
"eslint-plugin-prefer-arrow": "^1.2.3",
|
||||
"eslint-plugin-prettier": "^5.1.2",
|
||||
"eslint-plugin-project-structure": "^3.9.1",
|
||||
|
||||
@ -25,10 +25,10 @@ module.exports = {
|
||||
},
|
||||
plugins: ['project-structure'],
|
||||
settings: {
|
||||
'project-structure/folder-structure-config-path':path.resolve(
|
||||
'project-structure/folder-structure-config-path': path.join(
|
||||
__dirname,
|
||||
'folderStructure.json'
|
||||
)
|
||||
'folderStructure.json',
|
||||
),
|
||||
},
|
||||
rules: {
|
||||
'project-structure/folder-structure': 'error',
|
||||
|
||||
@ -2,11 +2,17 @@ import { defineConfig } from '@lingui/cli';
|
||||
|
||||
export default defineConfig({
|
||||
sourceLocale: 'en',
|
||||
locales: ['fr', 'en', 'pt', 'de', 'it', 'es', 'zh'],
|
||||
locales: ['en', 'fr', 'pt', 'de', 'it', 'es', 'zh', 'pseudo-en'],
|
||||
pseudoLocale: 'pseudo-en',
|
||||
fallbackLocales: {
|
||||
'pseudo-en': 'en',
|
||||
},
|
||||
catalogs: [
|
||||
{
|
||||
path: '<rootDir>/src/locales/{locale}/messages',
|
||||
path: '<rootDir>/src/locales/{locale}',
|
||||
include: ['src'],
|
||||
},
|
||||
],
|
||||
catalogsMergePath: '<rootDir>/src/locales/dist/{locale}',
|
||||
compileNamespace: 'ts',
|
||||
});
|
||||
|
||||
326
packages/twenty-front/src/locales/de.po
Normal file
326
packages/twenty-front/src/locales/de.po
Normal file
@ -0,0 +1,326 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"POT-Creation-Date: 2025-01-16 21:57+0100\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: @lingui/cli\n"
|
||||
"Language: de\n"
|
||||
|
||||
#. placeholder {0}: settingsObjectsTableMetadataField.fieldLabel
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:180
|
||||
msgid "{0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:84
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:190
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:50
|
||||
msgid "Active APIs keys created by you or your team."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:144
|
||||
msgid "Add object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:49
|
||||
msgid "API keys"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {5}: switchingInfo.impact
|
||||
#: src/pages/settings/SettingsBilling.tsx:190
|
||||
msgid "Are you sure that you want to change your billing interval? {5}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:63
|
||||
msgid "Authentication"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:128
|
||||
#: src/pages/settings/SettingsBilling.tsx:134
|
||||
msgid "Billing"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:174
|
||||
msgid "Cancel Plan"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:169
|
||||
msgid "Cancel your subscription"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {6}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:194
|
||||
msgid "Change {6}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:48
|
||||
msgid "Configure an SSO connection"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:56
|
||||
msgid "Create API key"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:72
|
||||
msgid "Create Webhook"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:56
|
||||
msgid "Customize Domain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:64
|
||||
msgid "Customize your workspace security"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:139
|
||||
msgid "Data model"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:85
|
||||
msgid "Define the name and description of your object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:35
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:42
|
||||
msgid "Developers"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:51
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:135
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:150
|
||||
msgid "Domain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:156
|
||||
msgid "Edit billing interval"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:144
|
||||
msgid "Edit payment method, see your invoices and more"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:52
|
||||
msgid "Edit your subdomain name or set a custom domain."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:42
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:51
|
||||
msgid "Enterprise"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {1}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:118
|
||||
msgid "Error while switching subscription {1}."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:66
|
||||
msgid "Establish Webhook endpoints for notifications on asynchronous events."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:164
|
||||
msgid "Existing objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:56
|
||||
msgid "Failed to create object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:45
|
||||
msgid "from monthly to yearly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:52
|
||||
msgid "from yearly to monthly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:29
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:35
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:125
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:132
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:65
|
||||
msgid "Grant Twenty support temporary access to your workspace so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:214
|
||||
msgid "Inactive"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:87
|
||||
msgid "Invalid form values"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:52
|
||||
msgid "Invalid object data"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:51
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:143
|
||||
msgid "Manage your subscription"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:44
|
||||
#: src/pages/settings/SettingsProfile.tsx:35
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:44
|
||||
msgid "Name of your workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:76
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:66
|
||||
msgid "New Object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:108
|
||||
msgid "not allowed"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:45
|
||||
msgid "Object created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:156
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:73
|
||||
msgid "Objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:40
|
||||
#: src/pages/settings/SettingsProfile.tsx:30
|
||||
msgid "Picture"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:19
|
||||
#: src/pages/settings/SettingsProfile.tsx:25
|
||||
msgid "Profile"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:168
|
||||
msgid "Search an object..."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:33
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:40
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:52
|
||||
msgid "Select your preferred language"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:151
|
||||
msgid "Set the name of your subdomain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:47
|
||||
msgid "SSO"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:107
|
||||
msgid "Subdomain already taken"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:49
|
||||
msgid "Subdomain can not be longer than 30 characters"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:48
|
||||
msgid "Subdomain can not be shorter than 3 characters"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {0}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:113
|
||||
msgid "Subscription has been switched {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:63
|
||||
msgid "Support"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {2}: switchingInfo.from
|
||||
#: src/pages/settings/SettingsBilling.tsx:157
|
||||
msgid "Switch {2}"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {3}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:161
|
||||
msgid "Switch {3}"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {4}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:187
|
||||
msgid "Switch billing {4}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:43
|
||||
msgid "The email associated to your account"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:51
|
||||
msgid "to monthly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:44
|
||||
msgid "to yearly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:51
|
||||
msgid "Use letter, number and dash only. Start and finish with a letter or a number"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:22
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:148
|
||||
msgid "View billing details"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:65
|
||||
msgid "Webhooks"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:32
|
||||
#: src/pages/settings/SettingsBilling.tsx:131
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:128
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:37
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:39
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:152
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:69
|
||||
msgid "Workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:46
|
||||
msgid "You will be charged immediately for the full year."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:53
|
||||
msgid "Your credit balance will be used to pay the monthly bills."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:36
|
||||
msgid "Your name as it will be displayed"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:170
|
||||
msgid "Your workspace will be disabled"
|
||||
msgstr ""
|
||||
@ -1 +0,0 @@
|
||||
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"vXIe7J\":[\"Language\"],\"AXTJAW\":[\"Select your preferred language\"]}")as Messages;
|
||||
326
packages/twenty-front/src/locales/en.po
Normal file
326
packages/twenty-front/src/locales/en.po
Normal file
@ -0,0 +1,326 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"POT-Creation-Date: 2025-01-16 21:57+0100\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: @lingui/cli\n"
|
||||
"Language: en\n"
|
||||
|
||||
#. placeholder {0}: settingsObjectsTableMetadataField.fieldLabel
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:180
|
||||
msgid "{0}"
|
||||
msgstr "{0}"
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:84
|
||||
msgid "About"
|
||||
msgstr "About"
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:190
|
||||
msgid "Active"
|
||||
msgstr "Active"
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:50
|
||||
msgid "Active APIs keys created by you or your team."
|
||||
msgstr "Active APIs keys created by you or your team."
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:144
|
||||
msgid "Add object"
|
||||
msgstr "Add object"
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:49
|
||||
msgid "API keys"
|
||||
msgstr "API keys"
|
||||
|
||||
#. placeholder {5}: switchingInfo.impact
|
||||
#: src/pages/settings/SettingsBilling.tsx:190
|
||||
msgid "Are you sure that you want to change your billing interval? {5}"
|
||||
msgstr "Are you sure that you want to change your billing interval? {5}"
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:63
|
||||
msgid "Authentication"
|
||||
msgstr "Authentication"
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:128
|
||||
#: src/pages/settings/SettingsBilling.tsx:134
|
||||
msgid "Billing"
|
||||
msgstr "Billing"
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:174
|
||||
msgid "Cancel Plan"
|
||||
msgstr "Cancel Plan"
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:169
|
||||
msgid "Cancel your subscription"
|
||||
msgstr "Cancel your subscription"
|
||||
|
||||
#. placeholder {6}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:194
|
||||
msgid "Change {6}"
|
||||
msgstr "Change {6}"
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:48
|
||||
msgid "Configure an SSO connection"
|
||||
msgstr "Configure an SSO connection"
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:56
|
||||
msgid "Create API key"
|
||||
msgstr "Create API key"
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:72
|
||||
msgid "Create Webhook"
|
||||
msgstr "Create Webhook"
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:56
|
||||
msgid "Customize Domain"
|
||||
msgstr "Customize Domain"
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:64
|
||||
msgid "Customize your workspace security"
|
||||
msgstr "Customize your workspace security"
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:139
|
||||
msgid "Data model"
|
||||
msgstr "Data model"
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:85
|
||||
msgid "Define the name and description of your object"
|
||||
msgstr "Define the name and description of your object"
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:35
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:42
|
||||
msgid "Developers"
|
||||
msgstr "Developers"
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:51
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:135
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:150
|
||||
msgid "Domain"
|
||||
msgstr "Domain"
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:156
|
||||
msgid "Edit billing interval"
|
||||
msgstr "Edit billing interval"
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:144
|
||||
msgid "Edit payment method, see your invoices and more"
|
||||
msgstr "Edit payment method, see your invoices and more"
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:52
|
||||
msgid "Edit your subdomain name or set a custom domain."
|
||||
msgstr "Edit your subdomain name or set a custom domain."
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:42
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:51
|
||||
msgid "Enterprise"
|
||||
msgstr "Enterprise"
|
||||
|
||||
#. placeholder {1}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:118
|
||||
msgid "Error while switching subscription {1}."
|
||||
msgstr "Error while switching subscription {1}."
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:66
|
||||
msgid "Establish Webhook endpoints for notifications on asynchronous events."
|
||||
msgstr "Establish Webhook endpoints for notifications on asynchronous events."
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:164
|
||||
msgid "Existing objects"
|
||||
msgstr "Existing objects"
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:56
|
||||
msgid "Failed to create object"
|
||||
msgstr "Failed to create object"
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:45
|
||||
msgid "from monthly to yearly"
|
||||
msgstr "from monthly to yearly"
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:52
|
||||
msgid "from yearly to monthly"
|
||||
msgstr "from yearly to monthly"
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:29
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:35
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:125
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:132
|
||||
msgid "General"
|
||||
msgstr "General"
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:65
|
||||
msgid "Grant Twenty support temporary access to your workspace so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time."
|
||||
msgstr "Grant Twenty support temporary access to your workspace so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time."
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:214
|
||||
msgid "Inactive"
|
||||
msgstr "Inactive"
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:87
|
||||
msgid "Invalid form values"
|
||||
msgstr "Invalid form values"
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:52
|
||||
msgid "Invalid object data"
|
||||
msgstr "Invalid object data"
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:51
|
||||
msgid "Language"
|
||||
msgstr "Language"
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:143
|
||||
msgid "Manage your subscription"
|
||||
msgstr "Manage your subscription"
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:44
|
||||
#: src/pages/settings/SettingsProfile.tsx:35
|
||||
msgid "Name"
|
||||
msgstr "Name"
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:44
|
||||
msgid "Name of your workspace"
|
||||
msgstr "Name of your workspace"
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:76
|
||||
msgid "New"
|
||||
msgstr "New"
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:66
|
||||
msgid "New Object"
|
||||
msgstr "New Object"
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:108
|
||||
msgid "not allowed"
|
||||
msgstr "not allowed"
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:45
|
||||
msgid "Object created successfully"
|
||||
msgstr "Object created successfully"
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:156
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:73
|
||||
msgid "Objects"
|
||||
msgstr "Objects"
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:40
|
||||
#: src/pages/settings/SettingsProfile.tsx:30
|
||||
msgid "Picture"
|
||||
msgstr "Picture"
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:19
|
||||
#: src/pages/settings/SettingsProfile.tsx:25
|
||||
msgid "Profile"
|
||||
msgstr "Profile"
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:168
|
||||
msgid "Search an object..."
|
||||
msgstr "Search an object..."
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:33
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:40
|
||||
msgid "Security"
|
||||
msgstr "Security"
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:52
|
||||
msgid "Select your preferred language"
|
||||
msgstr "Select your preferred language"
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:151
|
||||
msgid "Set the name of your subdomain"
|
||||
msgstr "Set the name of your subdomain"
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:47
|
||||
msgid "SSO"
|
||||
msgstr "SSO"
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:107
|
||||
msgid "Subdomain already taken"
|
||||
msgstr "Subdomain already taken"
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:49
|
||||
msgid "Subdomain can not be longer than 30 characters"
|
||||
msgstr "Subdomain can not be longer than 30 characters"
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:48
|
||||
msgid "Subdomain can not be shorter than 3 characters"
|
||||
msgstr "Subdomain can not be shorter than 3 characters"
|
||||
|
||||
#. placeholder {0}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:113
|
||||
msgid "Subscription has been switched {0}"
|
||||
msgstr "Subscription has been switched {0}"
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:63
|
||||
msgid "Support"
|
||||
msgstr "Support"
|
||||
|
||||
#. placeholder {2}: switchingInfo.from
|
||||
#: src/pages/settings/SettingsBilling.tsx:157
|
||||
msgid "Switch {2}"
|
||||
msgstr "Switch {2}"
|
||||
|
||||
#. placeholder {3}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:161
|
||||
msgid "Switch {3}"
|
||||
msgstr "Switch {3}"
|
||||
|
||||
#. placeholder {4}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:187
|
||||
msgid "Switch billing {4}"
|
||||
msgstr "Switch billing {4}"
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:43
|
||||
msgid "The email associated to your account"
|
||||
msgstr "The email associated to your account"
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:51
|
||||
msgid "to monthly"
|
||||
msgstr "to monthly"
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:44
|
||||
msgid "to yearly"
|
||||
msgstr "to yearly"
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:51
|
||||
msgid "Use letter, number and dash only. Start and finish with a letter or a number"
|
||||
msgstr "Use letter, number and dash only. Start and finish with a letter or a number"
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:22
|
||||
msgid "User"
|
||||
msgstr "User"
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:148
|
||||
msgid "View billing details"
|
||||
msgstr "View billing details"
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:65
|
||||
msgid "Webhooks"
|
||||
msgstr "Webhooks"
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:32
|
||||
#: src/pages/settings/SettingsBilling.tsx:131
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:128
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:37
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:39
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:152
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:69
|
||||
msgid "Workspace"
|
||||
msgstr "Workspace"
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:46
|
||||
msgid "You will be charged immediately for the full year."
|
||||
msgstr "You will be charged immediately for the full year."
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:53
|
||||
msgid "Your credit balance will be used to pay the monthly bills."
|
||||
msgstr "Your credit balance will be used to pay the monthly bills."
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:36
|
||||
msgid "Your name as it will be displayed"
|
||||
msgstr "Your name as it will be displayed"
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:170
|
||||
msgid "Your workspace will be disabled"
|
||||
msgstr "Your workspace will be disabled"
|
||||
@ -1,16 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"POT-Creation-Date: 2025-01-16 16:50+0100\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: @lingui/cli\n"
|
||||
"Language: en\n"
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:51
|
||||
msgid "Language"
|
||||
msgstr "Language"
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:52
|
||||
msgid "Select your preferred language"
|
||||
msgstr "Select your preferred language"
|
||||
@ -1 +0,0 @@
|
||||
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"vXIe7J\":[\"Language\"],\"AXTJAW\":[\"Select your preferred language\"]}")as Messages;
|
||||
326
packages/twenty-front/src/locales/es.po
Normal file
326
packages/twenty-front/src/locales/es.po
Normal file
@ -0,0 +1,326 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"POT-Creation-Date: 2025-01-16 21:57+0100\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: @lingui/cli\n"
|
||||
"Language: es\n"
|
||||
|
||||
#. placeholder {0}: settingsObjectsTableMetadataField.fieldLabel
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:180
|
||||
msgid "{0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:84
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:190
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:50
|
||||
msgid "Active APIs keys created by you or your team."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:144
|
||||
msgid "Add object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:49
|
||||
msgid "API keys"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {5}: switchingInfo.impact
|
||||
#: src/pages/settings/SettingsBilling.tsx:190
|
||||
msgid "Are you sure that you want to change your billing interval? {5}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:63
|
||||
msgid "Authentication"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:128
|
||||
#: src/pages/settings/SettingsBilling.tsx:134
|
||||
msgid "Billing"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:174
|
||||
msgid "Cancel Plan"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:169
|
||||
msgid "Cancel your subscription"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {6}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:194
|
||||
msgid "Change {6}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:48
|
||||
msgid "Configure an SSO connection"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:56
|
||||
msgid "Create API key"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:72
|
||||
msgid "Create Webhook"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:56
|
||||
msgid "Customize Domain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:64
|
||||
msgid "Customize your workspace security"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:139
|
||||
msgid "Data model"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:85
|
||||
msgid "Define the name and description of your object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:35
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:42
|
||||
msgid "Developers"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:51
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:135
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:150
|
||||
msgid "Domain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:156
|
||||
msgid "Edit billing interval"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:144
|
||||
msgid "Edit payment method, see your invoices and more"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:52
|
||||
msgid "Edit your subdomain name or set a custom domain."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:42
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:51
|
||||
msgid "Enterprise"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {1}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:118
|
||||
msgid "Error while switching subscription {1}."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:66
|
||||
msgid "Establish Webhook endpoints for notifications on asynchronous events."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:164
|
||||
msgid "Existing objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:56
|
||||
msgid "Failed to create object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:45
|
||||
msgid "from monthly to yearly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:52
|
||||
msgid "from yearly to monthly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:29
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:35
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:125
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:132
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:65
|
||||
msgid "Grant Twenty support temporary access to your workspace so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:214
|
||||
msgid "Inactive"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:87
|
||||
msgid "Invalid form values"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:52
|
||||
msgid "Invalid object data"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:51
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:143
|
||||
msgid "Manage your subscription"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:44
|
||||
#: src/pages/settings/SettingsProfile.tsx:35
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:44
|
||||
msgid "Name of your workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:76
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:66
|
||||
msgid "New Object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:108
|
||||
msgid "not allowed"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:45
|
||||
msgid "Object created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:156
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:73
|
||||
msgid "Objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:40
|
||||
#: src/pages/settings/SettingsProfile.tsx:30
|
||||
msgid "Picture"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:19
|
||||
#: src/pages/settings/SettingsProfile.tsx:25
|
||||
msgid "Profile"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:168
|
||||
msgid "Search an object..."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:33
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:40
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:52
|
||||
msgid "Select your preferred language"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:151
|
||||
msgid "Set the name of your subdomain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:47
|
||||
msgid "SSO"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:107
|
||||
msgid "Subdomain already taken"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:49
|
||||
msgid "Subdomain can not be longer than 30 characters"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:48
|
||||
msgid "Subdomain can not be shorter than 3 characters"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {0}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:113
|
||||
msgid "Subscription has been switched {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:63
|
||||
msgid "Support"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {2}: switchingInfo.from
|
||||
#: src/pages/settings/SettingsBilling.tsx:157
|
||||
msgid "Switch {2}"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {3}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:161
|
||||
msgid "Switch {3}"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {4}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:187
|
||||
msgid "Switch billing {4}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:43
|
||||
msgid "The email associated to your account"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:51
|
||||
msgid "to monthly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:44
|
||||
msgid "to yearly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:51
|
||||
msgid "Use letter, number and dash only. Start and finish with a letter or a number"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:22
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:148
|
||||
msgid "View billing details"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:65
|
||||
msgid "Webhooks"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:32
|
||||
#: src/pages/settings/SettingsBilling.tsx:131
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:128
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:37
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:39
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:152
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:69
|
||||
msgid "Workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:46
|
||||
msgid "You will be charged immediately for the full year."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:53
|
||||
msgid "Your credit balance will be used to pay the monthly bills."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:36
|
||||
msgid "Your name as it will be displayed"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:170
|
||||
msgid "Your workspace will be disabled"
|
||||
msgstr ""
|
||||
@ -1 +0,0 @@
|
||||
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"vXIe7J\":[\"Language\"],\"AXTJAW\":[\"Select your preferred language\"]}")as Messages;
|
||||
326
packages/twenty-front/src/locales/fr.po
Normal file
326
packages/twenty-front/src/locales/fr.po
Normal file
@ -0,0 +1,326 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"POT-Creation-Date: 2025-01-16 21:57+0100\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: @lingui/cli\n"
|
||||
"Language: fr\n"
|
||||
|
||||
#. placeholder {0}: settingsObjectsTableMetadataField.fieldLabel
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:180
|
||||
msgid "{0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:84
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:190
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:50
|
||||
msgid "Active APIs keys created by you or your team."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:144
|
||||
msgid "Add object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:49
|
||||
msgid "API keys"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {5}: switchingInfo.impact
|
||||
#: src/pages/settings/SettingsBilling.tsx:190
|
||||
msgid "Are you sure that you want to change your billing interval? {5}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:63
|
||||
msgid "Authentication"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:128
|
||||
#: src/pages/settings/SettingsBilling.tsx:134
|
||||
msgid "Billing"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:174
|
||||
msgid "Cancel Plan"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:169
|
||||
msgid "Cancel your subscription"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {6}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:194
|
||||
msgid "Change {6}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:48
|
||||
msgid "Configure an SSO connection"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:56
|
||||
msgid "Create API key"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:72
|
||||
msgid "Create Webhook"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:56
|
||||
msgid "Customize Domain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:64
|
||||
msgid "Customize your workspace security"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:139
|
||||
msgid "Data model"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:85
|
||||
msgid "Define the name and description of your object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:35
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:42
|
||||
msgid "Developers"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:51
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:135
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:150
|
||||
msgid "Domain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:156
|
||||
msgid "Edit billing interval"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:144
|
||||
msgid "Edit payment method, see your invoices and more"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:52
|
||||
msgid "Edit your subdomain name or set a custom domain."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:42
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:51
|
||||
msgid "Enterprise"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {1}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:118
|
||||
msgid "Error while switching subscription {1}."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:66
|
||||
msgid "Establish Webhook endpoints for notifications on asynchronous events."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:164
|
||||
msgid "Existing objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:56
|
||||
msgid "Failed to create object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:45
|
||||
msgid "from monthly to yearly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:52
|
||||
msgid "from yearly to monthly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:29
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:35
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:125
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:132
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:65
|
||||
msgid "Grant Twenty support temporary access to your workspace so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:214
|
||||
msgid "Inactive"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:87
|
||||
msgid "Invalid form values"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:52
|
||||
msgid "Invalid object data"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:51
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:143
|
||||
msgid "Manage your subscription"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:44
|
||||
#: src/pages/settings/SettingsProfile.tsx:35
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:44
|
||||
msgid "Name of your workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:76
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:66
|
||||
msgid "New Object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:108
|
||||
msgid "not allowed"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:45
|
||||
msgid "Object created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:156
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:73
|
||||
msgid "Objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:40
|
||||
#: src/pages/settings/SettingsProfile.tsx:30
|
||||
msgid "Picture"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:19
|
||||
#: src/pages/settings/SettingsProfile.tsx:25
|
||||
msgid "Profile"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:168
|
||||
msgid "Search an object..."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:33
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:40
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:52
|
||||
msgid "Select your preferred language"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:151
|
||||
msgid "Set the name of your subdomain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:47
|
||||
msgid "SSO"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:107
|
||||
msgid "Subdomain already taken"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:49
|
||||
msgid "Subdomain can not be longer than 30 characters"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:48
|
||||
msgid "Subdomain can not be shorter than 3 characters"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {0}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:113
|
||||
msgid "Subscription has been switched {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:63
|
||||
msgid "Support"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {2}: switchingInfo.from
|
||||
#: src/pages/settings/SettingsBilling.tsx:157
|
||||
msgid "Switch {2}"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {3}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:161
|
||||
msgid "Switch {3}"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {4}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:187
|
||||
msgid "Switch billing {4}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:43
|
||||
msgid "The email associated to your account"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:51
|
||||
msgid "to monthly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:44
|
||||
msgid "to yearly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:51
|
||||
msgid "Use letter, number and dash only. Start and finish with a letter or a number"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:22
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:148
|
||||
msgid "View billing details"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:65
|
||||
msgid "Webhooks"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:32
|
||||
#: src/pages/settings/SettingsBilling.tsx:131
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:128
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:37
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:39
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:152
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:69
|
||||
msgid "Workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:46
|
||||
msgid "You will be charged immediately for the full year."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:53
|
||||
msgid "Your credit balance will be used to pay the monthly bills."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:36
|
||||
msgid "Your name as it will be displayed"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:170
|
||||
msgid "Your workspace will be disabled"
|
||||
msgstr ""
|
||||
@ -1,16 +0,0 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"POT-Creation-Date: 2025-01-16 16:50+0100\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: @lingui/cli\n"
|
||||
"Language: fr\n"
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:51
|
||||
msgid "Language"
|
||||
msgstr "Langue"
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:52
|
||||
msgid "Select your preferred language"
|
||||
msgstr "Sélectionnez votre langue préférée"
|
||||
@ -1 +0,0 @@
|
||||
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"vXIe7J\":[\"Langue\"],\"AXTJAW\":[\"Sélectionnez votre langue préférée\"]}")as Messages;
|
||||
1
packages/twenty-front/src/locales/generated/de.ts
Normal file
1
packages/twenty-front/src/locales/generated/de.ts
Normal file
@ -0,0 +1 @@
|
||||
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"J/hVSQ\":[[\"0\"]],\"uyJsf6\":[\"About\"],\"F6pfE9\":[\"Active\"],\"Z+OxK0\":[\"Active APIs keys created by you or your team.\"],\"dEO3Zx\":[\"Add object\"],\"5h8ooz\":[\"API keys\"],\"TmDqlR\":[\"Are you sure that you want to change your billing interval? \",[\"5\"]],\"P8fBlG\":[\"Authentication\"],\"R+w/Va\":[\"Billing\"],\"rRK/Lf\":[\"Cancel Plan\"],\"N6gPiD\":[\"Cancel your subscription\"],\"JcIGyw\":[\"Change \",[\"6\"]],\"+zUMwJ\":[\"Configure an SSO connection\"],\"uXGLuq\":[\"Create API key\"],\"dkAPxi\":[\"Create Webhook\"],\"CMhr4u\":[\"Customize Domain\"],\"bCJa9l\":[\"Customize your workspace security\"],\"5cNMFz\":[\"Data model\"],\"Y2ImVJ\":[\"Define the name and description of your object\"],\"n+SX4g\":[\"Developers\"],\"EoKe5U\":[\"Domain\"],\"v+uKyy\":[\"Edit billing interval\"],\"h2KoTu\":[\"Edit payment method, see your invoices and more\"],\"6o1M/Q\":[\"Edit your subdomain name or set a custom domain.\"],\"O3oNi5\":[\"Email\"],\"GpB8YV\":[\"Enterprise\"],\"RgSsJ3\":[\"Error while switching subscription \",[\"1\"],\".\"],\"JLxMta\":[\"Establish Webhook endpoints for notifications on asynchronous events.\"],\"fV7V51\":[\"Existing objects\"],\"Q0iobh\":[\"Failed to create object\"],\"aTieE0\":[\"from monthly to yearly\"],\"K04lE5\":[\"from yearly to monthly\"],\"Weq9zb\":[\"General\"],\"hWp1MY\":[\"Grant Twenty support temporary access to your workspace so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time.\"],\"NoNwIX\":[\"Inactive\"],\"QdoUFL\":[\"Invalid form values\"],\"/Wrd4p\":[\"Invalid object data\"],\"vXIe7J\":[\"Language\"],\"36kYu0\":[\"Manage your subscription\"],\"6YtxFj\":[\"Name\"],\"J7w8lI\":[\"Name of your workspace\"],\"isRobC\":[\"New\"],\"hFxdey\":[\"New Object\"],\"+FLRjr\":[\"not allowed\"],\"FU94q4\":[\"Object created successfully\"],\"B3toQF\":[\"Objects\"],\"N0+GsR\":[\"Picture\"],\"vERlcd\":[\"Profile\"],\"BoNHR0\":[\"Search an object...\"],\"a3LDKx\":[\"Security\"],\"AXTJAW\":[\"Select your preferred language\"],\"tn41zE\":[\"Set the name of your subdomain\"],\"vnS6Rf\":[\"SSO\"],\"omhc+7\":[\"Subdomain already taken\"],\"OlC/tU\":[\"Subdomain can not be longer than 30 characters\"],\"ZETwlU\":[\"Subdomain can not be shorter than 3 characters\"],\"AymUjZ\":[\"Subscription has been switched \",[\"0\"]],\"XYLcNv\":[\"Support\"],\"Sk5fyO\":[\"Switch \",[\"2\"]],\"z9maAp\":[\"Switch \",[\"3\"]],\"FwAweN\":[\"Switch billing \",[\"4\"]],\"VGZYbZ\":[\"The email associated to your account\"],\"aqMzDX\":[\"to monthly\"],\"WXXiXO\":[\"to yearly\"],\"oTTQsc\":[\"Use letter, number and dash only. Start and finish with a letter or a number\"],\"7PzzBU\":[\"User\"],\"KANz0G\":[\"View billing details\"],\"v1kQyJ\":[\"Webhooks\"],\"pmUArF\":[\"Workspace\"],\"zSkMV0\":[\"You will be charged immediately for the full year.\"],\"XVnj6K\":[\"Your credit balance will be used to pay the monthly bills.\"],\"9ivpwk\":[\"Your name as it will be displayed\"],\"RhNbPE\":[\"Your workspace will be disabled\"]}")as Messages;
|
||||
1
packages/twenty-front/src/locales/generated/en.ts
Normal file
1
packages/twenty-front/src/locales/generated/en.ts
Normal file
@ -0,0 +1 @@
|
||||
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"J/hVSQ\":[[\"0\"]],\"uyJsf6\":[\"About\"],\"F6pfE9\":[\"Active\"],\"Z+OxK0\":[\"Active APIs keys created by you or your team.\"],\"dEO3Zx\":[\"Add object\"],\"5h8ooz\":[\"API keys\"],\"TmDqlR\":[\"Are you sure that you want to change your billing interval? \",[\"5\"]],\"P8fBlG\":[\"Authentication\"],\"R+w/Va\":[\"Billing\"],\"rRK/Lf\":[\"Cancel Plan\"],\"N6gPiD\":[\"Cancel your subscription\"],\"JcIGyw\":[\"Change \",[\"6\"]],\"+zUMwJ\":[\"Configure an SSO connection\"],\"uXGLuq\":[\"Create API key\"],\"dkAPxi\":[\"Create Webhook\"],\"CMhr4u\":[\"Customize Domain\"],\"bCJa9l\":[\"Customize your workspace security\"],\"5cNMFz\":[\"Data model\"],\"Y2ImVJ\":[\"Define the name and description of your object\"],\"n+SX4g\":[\"Developers\"],\"EoKe5U\":[\"Domain\"],\"v+uKyy\":[\"Edit billing interval\"],\"h2KoTu\":[\"Edit payment method, see your invoices and more\"],\"6o1M/Q\":[\"Edit your subdomain name or set a custom domain.\"],\"O3oNi5\":[\"Email\"],\"GpB8YV\":[\"Enterprise\"],\"RgSsJ3\":[\"Error while switching subscription \",[\"1\"],\".\"],\"JLxMta\":[\"Establish Webhook endpoints for notifications on asynchronous events.\"],\"fV7V51\":[\"Existing objects\"],\"Q0iobh\":[\"Failed to create object\"],\"aTieE0\":[\"from monthly to yearly\"],\"K04lE5\":[\"from yearly to monthly\"],\"Weq9zb\":[\"General\"],\"hWp1MY\":[\"Grant Twenty support temporary access to your workspace so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time.\"],\"NoNwIX\":[\"Inactive\"],\"QdoUFL\":[\"Invalid form values\"],\"/Wrd4p\":[\"Invalid object data\"],\"vXIe7J\":[\"Language\"],\"36kYu0\":[\"Manage your subscription\"],\"6YtxFj\":[\"Name\"],\"J7w8lI\":[\"Name of your workspace\"],\"isRobC\":[\"New\"],\"hFxdey\":[\"New Object\"],\"+FLRjr\":[\"not allowed\"],\"FU94q4\":[\"Object created successfully\"],\"B3toQF\":[\"Objects\"],\"N0+GsR\":[\"Picture\"],\"vERlcd\":[\"Profile\"],\"BoNHR0\":[\"Search an object...\"],\"a3LDKx\":[\"Security\"],\"AXTJAW\":[\"Select your preferred language\"],\"tn41zE\":[\"Set the name of your subdomain\"],\"vnS6Rf\":[\"SSO\"],\"omhc+7\":[\"Subdomain already taken\"],\"OlC/tU\":[\"Subdomain can not be longer than 30 characters\"],\"ZETwlU\":[\"Subdomain can not be shorter than 3 characters\"],\"AymUjZ\":[\"Subscription has been switched \",[\"0\"]],\"XYLcNv\":[\"Support\"],\"Sk5fyO\":[\"Switch \",[\"2\"]],\"z9maAp\":[\"Switch \",[\"3\"]],\"FwAweN\":[\"Switch billing \",[\"4\"]],\"VGZYbZ\":[\"The email associated to your account\"],\"aqMzDX\":[\"to monthly\"],\"WXXiXO\":[\"to yearly\"],\"oTTQsc\":[\"Use letter, number and dash only. Start and finish with a letter or a number\"],\"7PzzBU\":[\"User\"],\"KANz0G\":[\"View billing details\"],\"v1kQyJ\":[\"Webhooks\"],\"pmUArF\":[\"Workspace\"],\"zSkMV0\":[\"You will be charged immediately for the full year.\"],\"XVnj6K\":[\"Your credit balance will be used to pay the monthly bills.\"],\"9ivpwk\":[\"Your name as it will be displayed\"],\"RhNbPE\":[\"Your workspace will be disabled\"]}")as Messages;
|
||||
1
packages/twenty-front/src/locales/generated/es.ts
Normal file
1
packages/twenty-front/src/locales/generated/es.ts
Normal file
@ -0,0 +1 @@
|
||||
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"J/hVSQ\":[[\"0\"]],\"uyJsf6\":[\"About\"],\"F6pfE9\":[\"Active\"],\"Z+OxK0\":[\"Active APIs keys created by you or your team.\"],\"dEO3Zx\":[\"Add object\"],\"5h8ooz\":[\"API keys\"],\"TmDqlR\":[\"Are you sure that you want to change your billing interval? \",[\"5\"]],\"P8fBlG\":[\"Authentication\"],\"R+w/Va\":[\"Billing\"],\"rRK/Lf\":[\"Cancel Plan\"],\"N6gPiD\":[\"Cancel your subscription\"],\"JcIGyw\":[\"Change \",[\"6\"]],\"+zUMwJ\":[\"Configure an SSO connection\"],\"uXGLuq\":[\"Create API key\"],\"dkAPxi\":[\"Create Webhook\"],\"CMhr4u\":[\"Customize Domain\"],\"bCJa9l\":[\"Customize your workspace security\"],\"5cNMFz\":[\"Data model\"],\"Y2ImVJ\":[\"Define the name and description of your object\"],\"n+SX4g\":[\"Developers\"],\"EoKe5U\":[\"Domain\"],\"v+uKyy\":[\"Edit billing interval\"],\"h2KoTu\":[\"Edit payment method, see your invoices and more\"],\"6o1M/Q\":[\"Edit your subdomain name or set a custom domain.\"],\"O3oNi5\":[\"Email\"],\"GpB8YV\":[\"Enterprise\"],\"RgSsJ3\":[\"Error while switching subscription \",[\"1\"],\".\"],\"JLxMta\":[\"Establish Webhook endpoints for notifications on asynchronous events.\"],\"fV7V51\":[\"Existing objects\"],\"Q0iobh\":[\"Failed to create object\"],\"aTieE0\":[\"from monthly to yearly\"],\"K04lE5\":[\"from yearly to monthly\"],\"Weq9zb\":[\"General\"],\"hWp1MY\":[\"Grant Twenty support temporary access to your workspace so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time.\"],\"NoNwIX\":[\"Inactive\"],\"QdoUFL\":[\"Invalid form values\"],\"/Wrd4p\":[\"Invalid object data\"],\"vXIe7J\":[\"Language\"],\"36kYu0\":[\"Manage your subscription\"],\"6YtxFj\":[\"Name\"],\"J7w8lI\":[\"Name of your workspace\"],\"isRobC\":[\"New\"],\"hFxdey\":[\"New Object\"],\"+FLRjr\":[\"not allowed\"],\"FU94q4\":[\"Object created successfully\"],\"B3toQF\":[\"Objects\"],\"N0+GsR\":[\"Picture\"],\"vERlcd\":[\"Profile\"],\"BoNHR0\":[\"Search an object...\"],\"a3LDKx\":[\"Security\"],\"AXTJAW\":[\"Select your preferred language\"],\"tn41zE\":[\"Set the name of your subdomain\"],\"vnS6Rf\":[\"SSO\"],\"omhc+7\":[\"Subdomain already taken\"],\"OlC/tU\":[\"Subdomain can not be longer than 30 characters\"],\"ZETwlU\":[\"Subdomain can not be shorter than 3 characters\"],\"AymUjZ\":[\"Subscription has been switched \",[\"0\"]],\"XYLcNv\":[\"Support\"],\"Sk5fyO\":[\"Switch \",[\"2\"]],\"z9maAp\":[\"Switch \",[\"3\"]],\"FwAweN\":[\"Switch billing \",[\"4\"]],\"VGZYbZ\":[\"The email associated to your account\"],\"aqMzDX\":[\"to monthly\"],\"WXXiXO\":[\"to yearly\"],\"oTTQsc\":[\"Use letter, number and dash only. Start and finish with a letter or a number\"],\"7PzzBU\":[\"User\"],\"KANz0G\":[\"View billing details\"],\"v1kQyJ\":[\"Webhooks\"],\"pmUArF\":[\"Workspace\"],\"zSkMV0\":[\"You will be charged immediately for the full year.\"],\"XVnj6K\":[\"Your credit balance will be used to pay the monthly bills.\"],\"9ivpwk\":[\"Your name as it will be displayed\"],\"RhNbPE\":[\"Your workspace will be disabled\"]}")as Messages;
|
||||
1
packages/twenty-front/src/locales/generated/fr.ts
Normal file
1
packages/twenty-front/src/locales/generated/fr.ts
Normal file
@ -0,0 +1 @@
|
||||
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"J/hVSQ\":[[\"0\"]],\"uyJsf6\":[\"About\"],\"F6pfE9\":[\"Active\"],\"Z+OxK0\":[\"Active APIs keys created by you or your team.\"],\"dEO3Zx\":[\"Add object\"],\"5h8ooz\":[\"API keys\"],\"TmDqlR\":[\"Are you sure that you want to change your billing interval? \",[\"5\"]],\"P8fBlG\":[\"Authentication\"],\"R+w/Va\":[\"Billing\"],\"rRK/Lf\":[\"Cancel Plan\"],\"N6gPiD\":[\"Cancel your subscription\"],\"JcIGyw\":[\"Change \",[\"6\"]],\"+zUMwJ\":[\"Configure an SSO connection\"],\"uXGLuq\":[\"Create API key\"],\"dkAPxi\":[\"Create Webhook\"],\"CMhr4u\":[\"Customize Domain\"],\"bCJa9l\":[\"Customize your workspace security\"],\"5cNMFz\":[\"Data model\"],\"Y2ImVJ\":[\"Define the name and description of your object\"],\"n+SX4g\":[\"Developers\"],\"EoKe5U\":[\"Domain\"],\"v+uKyy\":[\"Edit billing interval\"],\"h2KoTu\":[\"Edit payment method, see your invoices and more\"],\"6o1M/Q\":[\"Edit your subdomain name or set a custom domain.\"],\"O3oNi5\":[\"Email\"],\"GpB8YV\":[\"Enterprise\"],\"RgSsJ3\":[\"Error while switching subscription \",[\"1\"],\".\"],\"JLxMta\":[\"Establish Webhook endpoints for notifications on asynchronous events.\"],\"fV7V51\":[\"Existing objects\"],\"Q0iobh\":[\"Failed to create object\"],\"aTieE0\":[\"from monthly to yearly\"],\"K04lE5\":[\"from yearly to monthly\"],\"Weq9zb\":[\"General\"],\"hWp1MY\":[\"Grant Twenty support temporary access to your workspace so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time.\"],\"NoNwIX\":[\"Inactive\"],\"QdoUFL\":[\"Invalid form values\"],\"/Wrd4p\":[\"Invalid object data\"],\"vXIe7J\":[\"Language\"],\"36kYu0\":[\"Manage your subscription\"],\"6YtxFj\":[\"Name\"],\"J7w8lI\":[\"Name of your workspace\"],\"isRobC\":[\"New\"],\"hFxdey\":[\"New Object\"],\"+FLRjr\":[\"not allowed\"],\"FU94q4\":[\"Object created successfully\"],\"B3toQF\":[\"Objects\"],\"N0+GsR\":[\"Picture\"],\"vERlcd\":[\"Profile\"],\"BoNHR0\":[\"Search an object...\"],\"a3LDKx\":[\"Security\"],\"AXTJAW\":[\"Select your preferred language\"],\"tn41zE\":[\"Set the name of your subdomain\"],\"vnS6Rf\":[\"SSO\"],\"omhc+7\":[\"Subdomain already taken\"],\"OlC/tU\":[\"Subdomain can not be longer than 30 characters\"],\"ZETwlU\":[\"Subdomain can not be shorter than 3 characters\"],\"AymUjZ\":[\"Subscription has been switched \",[\"0\"]],\"XYLcNv\":[\"Support\"],\"Sk5fyO\":[\"Switch \",[\"2\"]],\"z9maAp\":[\"Switch \",[\"3\"]],\"FwAweN\":[\"Switch billing \",[\"4\"]],\"VGZYbZ\":[\"The email associated to your account\"],\"aqMzDX\":[\"to monthly\"],\"WXXiXO\":[\"to yearly\"],\"oTTQsc\":[\"Use letter, number and dash only. Start and finish with a letter or a number\"],\"7PzzBU\":[\"User\"],\"KANz0G\":[\"View billing details\"],\"v1kQyJ\":[\"Webhooks\"],\"pmUArF\":[\"Workspace\"],\"zSkMV0\":[\"You will be charged immediately for the full year.\"],\"XVnj6K\":[\"Your credit balance will be used to pay the monthly bills.\"],\"9ivpwk\":[\"Your name as it will be displayed\"],\"RhNbPE\":[\"Your workspace will be disabled\"]}")as Messages;
|
||||
1
packages/twenty-front/src/locales/generated/it.ts
Normal file
1
packages/twenty-front/src/locales/generated/it.ts
Normal file
@ -0,0 +1 @@
|
||||
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"J/hVSQ\":[[\"0\"]],\"uyJsf6\":[\"About\"],\"F6pfE9\":[\"Active\"],\"Z+OxK0\":[\"Active APIs keys created by you or your team.\"],\"dEO3Zx\":[\"Add object\"],\"5h8ooz\":[\"API keys\"],\"TmDqlR\":[\"Are you sure that you want to change your billing interval? \",[\"5\"]],\"P8fBlG\":[\"Authentication\"],\"R+w/Va\":[\"Billing\"],\"rRK/Lf\":[\"Cancel Plan\"],\"N6gPiD\":[\"Cancel your subscription\"],\"JcIGyw\":[\"Change \",[\"6\"]],\"+zUMwJ\":[\"Configure an SSO connection\"],\"uXGLuq\":[\"Create API key\"],\"dkAPxi\":[\"Create Webhook\"],\"CMhr4u\":[\"Customize Domain\"],\"bCJa9l\":[\"Customize your workspace security\"],\"5cNMFz\":[\"Data model\"],\"Y2ImVJ\":[\"Define the name and description of your object\"],\"n+SX4g\":[\"Developers\"],\"EoKe5U\":[\"Domain\"],\"v+uKyy\":[\"Edit billing interval\"],\"h2KoTu\":[\"Edit payment method, see your invoices and more\"],\"6o1M/Q\":[\"Edit your subdomain name or set a custom domain.\"],\"O3oNi5\":[\"Email\"],\"GpB8YV\":[\"Enterprise\"],\"RgSsJ3\":[\"Error while switching subscription \",[\"1\"],\".\"],\"JLxMta\":[\"Establish Webhook endpoints for notifications on asynchronous events.\"],\"fV7V51\":[\"Existing objects\"],\"Q0iobh\":[\"Failed to create object\"],\"aTieE0\":[\"from monthly to yearly\"],\"K04lE5\":[\"from yearly to monthly\"],\"Weq9zb\":[\"General\"],\"hWp1MY\":[\"Grant Twenty support temporary access to your workspace so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time.\"],\"NoNwIX\":[\"Inactive\"],\"QdoUFL\":[\"Invalid form values\"],\"/Wrd4p\":[\"Invalid object data\"],\"vXIe7J\":[\"Language\"],\"36kYu0\":[\"Manage your subscription\"],\"6YtxFj\":[\"Name\"],\"J7w8lI\":[\"Name of your workspace\"],\"isRobC\":[\"New\"],\"hFxdey\":[\"New Object\"],\"+FLRjr\":[\"not allowed\"],\"FU94q4\":[\"Object created successfully\"],\"B3toQF\":[\"Objects\"],\"N0+GsR\":[\"Picture\"],\"vERlcd\":[\"Profile\"],\"BoNHR0\":[\"Search an object...\"],\"a3LDKx\":[\"Security\"],\"AXTJAW\":[\"Select your preferred language\"],\"tn41zE\":[\"Set the name of your subdomain\"],\"vnS6Rf\":[\"SSO\"],\"omhc+7\":[\"Subdomain already taken\"],\"OlC/tU\":[\"Subdomain can not be longer than 30 characters\"],\"ZETwlU\":[\"Subdomain can not be shorter than 3 characters\"],\"AymUjZ\":[\"Subscription has been switched \",[\"0\"]],\"XYLcNv\":[\"Support\"],\"Sk5fyO\":[\"Switch \",[\"2\"]],\"z9maAp\":[\"Switch \",[\"3\"]],\"FwAweN\":[\"Switch billing \",[\"4\"]],\"VGZYbZ\":[\"The email associated to your account\"],\"aqMzDX\":[\"to monthly\"],\"WXXiXO\":[\"to yearly\"],\"oTTQsc\":[\"Use letter, number and dash only. Start and finish with a letter or a number\"],\"7PzzBU\":[\"User\"],\"KANz0G\":[\"View billing details\"],\"v1kQyJ\":[\"Webhooks\"],\"pmUArF\":[\"Workspace\"],\"zSkMV0\":[\"You will be charged immediately for the full year.\"],\"XVnj6K\":[\"Your credit balance will be used to pay the monthly bills.\"],\"9ivpwk\":[\"Your name as it will be displayed\"],\"RhNbPE\":[\"Your workspace will be disabled\"]}")as Messages;
|
||||
1
packages/twenty-front/src/locales/generated/pseudo-en.ts
Normal file
1
packages/twenty-front/src/locales/generated/pseudo-en.ts
Normal file
@ -0,0 +1 @@
|
||||
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"J/hVSQ\":[[\"0\"]],\"uyJsf6\":[\"Àƀōũţ\"],\"F6pfE9\":[\"Àćţĩvē\"],\"Z+OxK0\":[\"Àćţĩvē ÀƤĨś ķēŷś ćŕēàţēď ƀŷ ŷōũ ōŕ ŷōũŕ ţēàḿ.\"],\"dEO3Zx\":[\"Àďď ōƀĴēćţ\"],\"5h8ooz\":[\"ÀƤĨ ķēŷś\"],\"TmDqlR\":[\"Àŕē ŷōũ śũŕē ţĥàţ ŷōũ ŵàńţ ţō ćĥàńĝē ŷōũŕ ƀĩĺĺĩńĝ ĩńţēŕvàĺ? \",[\"5\"]],\"P8fBlG\":[\"Àũţĥēńţĩćàţĩōń\"],\"R+w/Va\":[\"ßĩĺĺĩńĝ\"],\"rRK/Lf\":[\"Ćàńćēĺ Ƥĺàń\"],\"N6gPiD\":[\"Ćàńćēĺ ŷōũŕ śũƀśćŕĩƥţĩōń\"],\"JcIGyw\":[\"Ćĥàńĝē \",[\"6\"]],\"+zUMwJ\":[\"Ćōńƒĩĝũŕē àń ŚŚŌ ćōńńēćţĩōń\"],\"uXGLuq\":[\"Ćŕēàţē ÀƤĨ ķēŷ\"],\"dkAPxi\":[\"Ćŕēàţē Ŵēƀĥōōķ\"],\"CMhr4u\":[\"Ćũśţōḿĩźē Ďōḿàĩń\"],\"bCJa9l\":[\"Ćũśţōḿĩźē ŷōũŕ ŵōŕķśƥàćē śēćũŕĩţŷ\"],\"5cNMFz\":[\"Ďàţà ḿōďēĺ\"],\"Y2ImVJ\":[\"Ďēƒĩńē ţĥē ńàḿē àńď ďēśćŕĩƥţĩōń ōƒ ŷōũŕ ōƀĴēćţ\"],\"n+SX4g\":[\"Ďēvēĺōƥēŕś\"],\"EoKe5U\":[\"Ďōḿàĩń\"],\"v+uKyy\":[\"Ēďĩţ ƀĩĺĺĩńĝ ĩńţēŕvàĺ\"],\"h2KoTu\":[\"Ēďĩţ ƥàŷḿēńţ ḿēţĥōď, śēē ŷōũŕ ĩńvōĩćēś àńď ḿōŕē\"],\"6o1M/Q\":[\"Ēďĩţ ŷōũŕ śũƀďōḿàĩń ńàḿē ōŕ śēţ à ćũśţōḿ ďōḿàĩń.\"],\"O3oNi5\":[\"Ēḿàĩĺ\"],\"GpB8YV\":[\"Ēńţēŕƥŕĩśē\"],\"RgSsJ3\":[\"Ēŕŕōŕ ŵĥĩĺē śŵĩţćĥĩńĝ śũƀśćŕĩƥţĩōń \",[\"1\"],\".\"],\"JLxMta\":[\"Ēśţàƀĺĩśĥ Ŵēƀĥōōķ ēńďƥōĩńţś ƒōŕ ńōţĩƒĩćàţĩōńś ōń àśŷńćĥŕōńōũś ēvēńţś.\"],\"fV7V51\":[\"Ēxĩśţĩńĝ ōƀĴēćţś\"],\"Q0iobh\":[\"Ƒàĩĺēď ţō ćŕēàţē ōƀĴēćţ\"],\"aTieE0\":[\"ƒŕōḿ ḿōńţĥĺŷ ţō ŷēàŕĺŷ\"],\"K04lE5\":[\"ƒŕōḿ ŷēàŕĺŷ ţō ḿōńţĥĺŷ\"],\"Weq9zb\":[\"Ĝēńēŕàĺ\"],\"hWp1MY\":[\"Ĝŕàńţ Ţŵēńţŷ śũƥƥōŕţ ţēḿƥōŕàŕŷ àććēśś ţō ŷōũŕ ŵōŕķśƥàćē śō ŵē ćàń ţŕōũƀĺēśĥōōţ ƥŕōƀĺēḿś ōŕ ŕēćōvēŕ ćōńţēńţ ōń ŷōũŕ ƀēĥàĺƒ. Ŷōũ ćàń ŕēvōķē àććēśś àţ àńŷ ţĩḿē.\"],\"NoNwIX\":[\"Ĩńàćţĩvē\"],\"QdoUFL\":[\"Ĩńvàĺĩď ƒōŕḿ vàĺũēś\"],\"/Wrd4p\":[\"Ĩńvàĺĩď ōƀĴēćţ ďàţà\"],\"vXIe7J\":[\"Ĺàńĝũàĝē\"],\"36kYu0\":[\"Ḿàńàĝē ŷōũŕ śũƀśćŕĩƥţĩōń\"],\"6YtxFj\":[\"Ńàḿē\"],\"J7w8lI\":[\"Ńàḿē ōƒ ŷōũŕ ŵōŕķśƥàćē\"],\"isRobC\":[\"Ńēŵ\"],\"hFxdey\":[\"Ńēŵ ŌƀĴēćţ\"],\"+FLRjr\":[\"ńōţ àĺĺōŵēď\"],\"FU94q4\":[\"ŌƀĴēćţ ćŕēàţēď śũććēśśƒũĺĺŷ\"],\"B3toQF\":[\"ŌƀĴēćţś\"],\"N0+GsR\":[\"Ƥĩćţũŕē\"],\"vERlcd\":[\"Ƥŕōƒĩĺē\"],\"BoNHR0\":[\"Śēàŕćĥ àń ōƀĴēćţ...\"],\"a3LDKx\":[\"Śēćũŕĩţŷ\"],\"AXTJAW\":[\"Śēĺēćţ ŷōũŕ ƥŕēƒēŕŕēď ĺàńĝũàĝē\"],\"tn41zE\":[\"Śēţ ţĥē ńàḿē ōƒ ŷōũŕ śũƀďōḿàĩń\"],\"vnS6Rf\":[\"ŚŚŌ\"],\"omhc+7\":[\"Śũƀďōḿàĩń àĺŕēàďŷ ţàķēń\"],\"OlC/tU\":[\"Śũƀďōḿàĩń ćàń ńōţ ƀē ĺōńĝēŕ ţĥàń 30 ćĥàŕàćţēŕś\"],\"ZETwlU\":[\"Śũƀďōḿàĩń ćàń ńōţ ƀē śĥōŕţēŕ ţĥàń 3 ćĥàŕàćţēŕś\"],\"AymUjZ\":[\"Śũƀśćŕĩƥţĩōń ĥàś ƀēēń śŵĩţćĥēď \",[\"0\"]],\"XYLcNv\":[\"Śũƥƥōŕţ\"],\"Sk5fyO\":[\"Śŵĩţćĥ \",[\"2\"]],\"z9maAp\":[\"Śŵĩţćĥ \",[\"3\"]],\"FwAweN\":[\"Śŵĩţćĥ ƀĩĺĺĩńĝ \",[\"4\"]],\"VGZYbZ\":[\"Ţĥē ēḿàĩĺ àśśōćĩàţēď ţō ŷōũŕ àććōũńţ\"],\"aqMzDX\":[\"ţō ḿōńţĥĺŷ\"],\"WXXiXO\":[\"ţō ŷēàŕĺŷ\"],\"oTTQsc\":[\"Ũśē ĺēţţēŕ, ńũḿƀēŕ àńď ďàśĥ ōńĺŷ. Śţàŕţ àńď ƒĩńĩśĥ ŵĩţĥ à ĺēţţēŕ ōŕ à ńũḿƀēŕ\"],\"7PzzBU\":[\"Ũśēŕ\"],\"KANz0G\":[\"Vĩēŵ ƀĩĺĺĩńĝ ďēţàĩĺś\"],\"v1kQyJ\":[\"Ŵēƀĥōōķś\"],\"pmUArF\":[\"Ŵōŕķśƥàćē\"],\"zSkMV0\":[\"Ŷōũ ŵĩĺĺ ƀē ćĥàŕĝēď ĩḿḿēďĩàţēĺŷ ƒōŕ ţĥē ƒũĺĺ ŷēàŕ.\"],\"XVnj6K\":[\"Ŷōũŕ ćŕēďĩţ ƀàĺàńćē ŵĩĺĺ ƀē ũśēď ţō ƥàŷ ţĥē ḿōńţĥĺŷ ƀĩĺĺś.\"],\"9ivpwk\":[\"Ŷōũŕ ńàḿē àś ĩţ ŵĩĺĺ ƀē ďĩśƥĺàŷēď\"],\"RhNbPE\":[\"Ŷōũŕ ŵōŕķśƥàćē ŵĩĺĺ ƀē ďĩśàƀĺēď\"]}")as Messages;
|
||||
1
packages/twenty-front/src/locales/generated/pt.ts
Normal file
1
packages/twenty-front/src/locales/generated/pt.ts
Normal file
@ -0,0 +1 @@
|
||||
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"J/hVSQ\":[[\"0\"]],\"uyJsf6\":[\"About\"],\"F6pfE9\":[\"Active\"],\"Z+OxK0\":[\"Active APIs keys created by you or your team.\"],\"dEO3Zx\":[\"Add object\"],\"5h8ooz\":[\"API keys\"],\"TmDqlR\":[\"Are you sure that you want to change your billing interval? \",[\"5\"]],\"P8fBlG\":[\"Authentication\"],\"R+w/Va\":[\"Billing\"],\"rRK/Lf\":[\"Cancel Plan\"],\"N6gPiD\":[\"Cancel your subscription\"],\"JcIGyw\":[\"Change \",[\"6\"]],\"+zUMwJ\":[\"Configure an SSO connection\"],\"uXGLuq\":[\"Create API key\"],\"dkAPxi\":[\"Create Webhook\"],\"CMhr4u\":[\"Customize Domain\"],\"bCJa9l\":[\"Customize your workspace security\"],\"5cNMFz\":[\"Data model\"],\"Y2ImVJ\":[\"Define the name and description of your object\"],\"n+SX4g\":[\"Developers\"],\"EoKe5U\":[\"Domain\"],\"v+uKyy\":[\"Edit billing interval\"],\"h2KoTu\":[\"Edit payment method, see your invoices and more\"],\"6o1M/Q\":[\"Edit your subdomain name or set a custom domain.\"],\"O3oNi5\":[\"Email\"],\"GpB8YV\":[\"Enterprise\"],\"RgSsJ3\":[\"Error while switching subscription \",[\"1\"],\".\"],\"JLxMta\":[\"Establish Webhook endpoints for notifications on asynchronous events.\"],\"fV7V51\":[\"Existing objects\"],\"Q0iobh\":[\"Failed to create object\"],\"aTieE0\":[\"from monthly to yearly\"],\"K04lE5\":[\"from yearly to monthly\"],\"Weq9zb\":[\"General\"],\"hWp1MY\":[\"Grant Twenty support temporary access to your workspace so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time.\"],\"NoNwIX\":[\"Inactive\"],\"QdoUFL\":[\"Invalid form values\"],\"/Wrd4p\":[\"Invalid object data\"],\"vXIe7J\":[\"Language\"],\"36kYu0\":[\"Manage your subscription\"],\"6YtxFj\":[\"Name\"],\"J7w8lI\":[\"Name of your workspace\"],\"isRobC\":[\"New\"],\"hFxdey\":[\"New Object\"],\"+FLRjr\":[\"not allowed\"],\"FU94q4\":[\"Object created successfully\"],\"B3toQF\":[\"Objects\"],\"N0+GsR\":[\"Picture\"],\"vERlcd\":[\"Profile\"],\"BoNHR0\":[\"Search an object...\"],\"a3LDKx\":[\"Security\"],\"AXTJAW\":[\"Select your preferred language\"],\"tn41zE\":[\"Set the name of your subdomain\"],\"vnS6Rf\":[\"SSO\"],\"omhc+7\":[\"Subdomain already taken\"],\"OlC/tU\":[\"Subdomain can not be longer than 30 characters\"],\"ZETwlU\":[\"Subdomain can not be shorter than 3 characters\"],\"AymUjZ\":[\"Subscription has been switched \",[\"0\"]],\"XYLcNv\":[\"Support\"],\"Sk5fyO\":[\"Switch \",[\"2\"]],\"z9maAp\":[\"Switch \",[\"3\"]],\"FwAweN\":[\"Switch billing \",[\"4\"]],\"VGZYbZ\":[\"The email associated to your account\"],\"aqMzDX\":[\"to monthly\"],\"WXXiXO\":[\"to yearly\"],\"oTTQsc\":[\"Use letter, number and dash only. Start and finish with a letter or a number\"],\"7PzzBU\":[\"User\"],\"KANz0G\":[\"View billing details\"],\"v1kQyJ\":[\"Webhooks\"],\"pmUArF\":[\"Workspace\"],\"zSkMV0\":[\"You will be charged immediately for the full year.\"],\"XVnj6K\":[\"Your credit balance will be used to pay the monthly bills.\"],\"9ivpwk\":[\"Your name as it will be displayed\"],\"RhNbPE\":[\"Your workspace will be disabled\"]}")as Messages;
|
||||
1
packages/twenty-front/src/locales/generated/zh.ts
Normal file
1
packages/twenty-front/src/locales/generated/zh.ts
Normal file
@ -0,0 +1 @@
|
||||
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"J/hVSQ\":[[\"0\"]],\"uyJsf6\":[\"About\"],\"F6pfE9\":[\"Active\"],\"Z+OxK0\":[\"Active APIs keys created by you or your team.\"],\"dEO3Zx\":[\"Add object\"],\"5h8ooz\":[\"API keys\"],\"TmDqlR\":[\"Are you sure that you want to change your billing interval? \",[\"5\"]],\"P8fBlG\":[\"Authentication\"],\"R+w/Va\":[\"Billing\"],\"rRK/Lf\":[\"Cancel Plan\"],\"N6gPiD\":[\"Cancel your subscription\"],\"JcIGyw\":[\"Change \",[\"6\"]],\"+zUMwJ\":[\"Configure an SSO connection\"],\"uXGLuq\":[\"Create API key\"],\"dkAPxi\":[\"Create Webhook\"],\"CMhr4u\":[\"Customize Domain\"],\"bCJa9l\":[\"Customize your workspace security\"],\"5cNMFz\":[\"Data model\"],\"Y2ImVJ\":[\"Define the name and description of your object\"],\"n+SX4g\":[\"Developers\"],\"EoKe5U\":[\"Domain\"],\"v+uKyy\":[\"Edit billing interval\"],\"h2KoTu\":[\"Edit payment method, see your invoices and more\"],\"6o1M/Q\":[\"Edit your subdomain name or set a custom domain.\"],\"O3oNi5\":[\"Email\"],\"GpB8YV\":[\"Enterprise\"],\"RgSsJ3\":[\"Error while switching subscription \",[\"1\"],\".\"],\"JLxMta\":[\"Establish Webhook endpoints for notifications on asynchronous events.\"],\"fV7V51\":[\"Existing objects\"],\"Q0iobh\":[\"Failed to create object\"],\"aTieE0\":[\"from monthly to yearly\"],\"K04lE5\":[\"from yearly to monthly\"],\"Weq9zb\":[\"General\"],\"hWp1MY\":[\"Grant Twenty support temporary access to your workspace so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time.\"],\"NoNwIX\":[\"Inactive\"],\"QdoUFL\":[\"Invalid form values\"],\"/Wrd4p\":[\"Invalid object data\"],\"vXIe7J\":[\"Language\"],\"36kYu0\":[\"Manage your subscription\"],\"6YtxFj\":[\"Name\"],\"J7w8lI\":[\"Name of your workspace\"],\"isRobC\":[\"New\"],\"hFxdey\":[\"New Object\"],\"+FLRjr\":[\"not allowed\"],\"FU94q4\":[\"Object created successfully\"],\"B3toQF\":[\"Objects\"],\"N0+GsR\":[\"Picture\"],\"vERlcd\":[\"Profile\"],\"BoNHR0\":[\"Search an object...\"],\"a3LDKx\":[\"Security\"],\"AXTJAW\":[\"Select your preferred language\"],\"tn41zE\":[\"Set the name of your subdomain\"],\"vnS6Rf\":[\"SSO\"],\"omhc+7\":[\"Subdomain already taken\"],\"OlC/tU\":[\"Subdomain can not be longer than 30 characters\"],\"ZETwlU\":[\"Subdomain can not be shorter than 3 characters\"],\"AymUjZ\":[\"Subscription has been switched \",[\"0\"]],\"XYLcNv\":[\"Support\"],\"Sk5fyO\":[\"Switch \",[\"2\"]],\"z9maAp\":[\"Switch \",[\"3\"]],\"FwAweN\":[\"Switch billing \",[\"4\"]],\"VGZYbZ\":[\"The email associated to your account\"],\"aqMzDX\":[\"to monthly\"],\"WXXiXO\":[\"to yearly\"],\"oTTQsc\":[\"Use letter, number and dash only. Start and finish with a letter or a number\"],\"7PzzBU\":[\"User\"],\"KANz0G\":[\"View billing details\"],\"v1kQyJ\":[\"Webhooks\"],\"pmUArF\":[\"Workspace\"],\"zSkMV0\":[\"You will be charged immediately for the full year.\"],\"XVnj6K\":[\"Your credit balance will be used to pay the monthly bills.\"],\"9ivpwk\":[\"Your name as it will be displayed\"],\"RhNbPE\":[\"Your workspace will be disabled\"]}")as Messages;
|
||||
326
packages/twenty-front/src/locales/it.po
Normal file
326
packages/twenty-front/src/locales/it.po
Normal file
@ -0,0 +1,326 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"POT-Creation-Date: 2025-01-16 21:57+0100\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: @lingui/cli\n"
|
||||
"Language: it\n"
|
||||
|
||||
#. placeholder {0}: settingsObjectsTableMetadataField.fieldLabel
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:180
|
||||
msgid "{0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:84
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:190
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:50
|
||||
msgid "Active APIs keys created by you or your team."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:144
|
||||
msgid "Add object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:49
|
||||
msgid "API keys"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {5}: switchingInfo.impact
|
||||
#: src/pages/settings/SettingsBilling.tsx:190
|
||||
msgid "Are you sure that you want to change your billing interval? {5}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:63
|
||||
msgid "Authentication"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:128
|
||||
#: src/pages/settings/SettingsBilling.tsx:134
|
||||
msgid "Billing"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:174
|
||||
msgid "Cancel Plan"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:169
|
||||
msgid "Cancel your subscription"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {6}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:194
|
||||
msgid "Change {6}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:48
|
||||
msgid "Configure an SSO connection"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:56
|
||||
msgid "Create API key"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:72
|
||||
msgid "Create Webhook"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:56
|
||||
msgid "Customize Domain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:64
|
||||
msgid "Customize your workspace security"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:139
|
||||
msgid "Data model"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:85
|
||||
msgid "Define the name and description of your object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:35
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:42
|
||||
msgid "Developers"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:51
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:135
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:150
|
||||
msgid "Domain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:156
|
||||
msgid "Edit billing interval"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:144
|
||||
msgid "Edit payment method, see your invoices and more"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:52
|
||||
msgid "Edit your subdomain name or set a custom domain."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:42
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:51
|
||||
msgid "Enterprise"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {1}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:118
|
||||
msgid "Error while switching subscription {1}."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:66
|
||||
msgid "Establish Webhook endpoints for notifications on asynchronous events."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:164
|
||||
msgid "Existing objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:56
|
||||
msgid "Failed to create object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:45
|
||||
msgid "from monthly to yearly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:52
|
||||
msgid "from yearly to monthly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:29
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:35
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:125
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:132
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:65
|
||||
msgid "Grant Twenty support temporary access to your workspace so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:214
|
||||
msgid "Inactive"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:87
|
||||
msgid "Invalid form values"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:52
|
||||
msgid "Invalid object data"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:51
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:143
|
||||
msgid "Manage your subscription"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:44
|
||||
#: src/pages/settings/SettingsProfile.tsx:35
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:44
|
||||
msgid "Name of your workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:76
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:66
|
||||
msgid "New Object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:108
|
||||
msgid "not allowed"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:45
|
||||
msgid "Object created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:156
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:73
|
||||
msgid "Objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:40
|
||||
#: src/pages/settings/SettingsProfile.tsx:30
|
||||
msgid "Picture"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:19
|
||||
#: src/pages/settings/SettingsProfile.tsx:25
|
||||
msgid "Profile"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:168
|
||||
msgid "Search an object..."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:33
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:40
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:52
|
||||
msgid "Select your preferred language"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:151
|
||||
msgid "Set the name of your subdomain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:47
|
||||
msgid "SSO"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:107
|
||||
msgid "Subdomain already taken"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:49
|
||||
msgid "Subdomain can not be longer than 30 characters"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:48
|
||||
msgid "Subdomain can not be shorter than 3 characters"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {0}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:113
|
||||
msgid "Subscription has been switched {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:63
|
||||
msgid "Support"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {2}: switchingInfo.from
|
||||
#: src/pages/settings/SettingsBilling.tsx:157
|
||||
msgid "Switch {2}"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {3}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:161
|
||||
msgid "Switch {3}"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {4}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:187
|
||||
msgid "Switch billing {4}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:43
|
||||
msgid "The email associated to your account"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:51
|
||||
msgid "to monthly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:44
|
||||
msgid "to yearly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:51
|
||||
msgid "Use letter, number and dash only. Start and finish with a letter or a number"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:22
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:148
|
||||
msgid "View billing details"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:65
|
||||
msgid "Webhooks"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:32
|
||||
#: src/pages/settings/SettingsBilling.tsx:131
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:128
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:37
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:39
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:152
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:69
|
||||
msgid "Workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:46
|
||||
msgid "You will be charged immediately for the full year."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:53
|
||||
msgid "Your credit balance will be used to pay the monthly bills."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:36
|
||||
msgid "Your name as it will be displayed"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:170
|
||||
msgid "Your workspace will be disabled"
|
||||
msgstr ""
|
||||
@ -1 +0,0 @@
|
||||
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"vXIe7J\":[\"Language\"],\"AXTJAW\":[\"Select your preferred language\"]}")as Messages;
|
||||
326
packages/twenty-front/src/locales/pseudo-en.po
Normal file
326
packages/twenty-front/src/locales/pseudo-en.po
Normal file
@ -0,0 +1,326 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"POT-Creation-Date: 2025-01-16 21:57+0100\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: @lingui/cli\n"
|
||||
"Language: pseudo-en\n"
|
||||
|
||||
#. placeholder {0}: settingsObjectsTableMetadataField.fieldLabel
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:180
|
||||
msgid "{0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:84
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:190
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:50
|
||||
msgid "Active APIs keys created by you or your team."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:144
|
||||
msgid "Add object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:49
|
||||
msgid "API keys"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {5}: switchingInfo.impact
|
||||
#: src/pages/settings/SettingsBilling.tsx:190
|
||||
msgid "Are you sure that you want to change your billing interval? {5}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:63
|
||||
msgid "Authentication"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:128
|
||||
#: src/pages/settings/SettingsBilling.tsx:134
|
||||
msgid "Billing"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:174
|
||||
msgid "Cancel Plan"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:169
|
||||
msgid "Cancel your subscription"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {6}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:194
|
||||
msgid "Change {6}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:48
|
||||
msgid "Configure an SSO connection"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:56
|
||||
msgid "Create API key"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:72
|
||||
msgid "Create Webhook"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:56
|
||||
msgid "Customize Domain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:64
|
||||
msgid "Customize your workspace security"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:139
|
||||
msgid "Data model"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:85
|
||||
msgid "Define the name and description of your object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:35
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:42
|
||||
msgid "Developers"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:51
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:135
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:150
|
||||
msgid "Domain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:156
|
||||
msgid "Edit billing interval"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:144
|
||||
msgid "Edit payment method, see your invoices and more"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:52
|
||||
msgid "Edit your subdomain name or set a custom domain."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:42
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:51
|
||||
msgid "Enterprise"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {1}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:118
|
||||
msgid "Error while switching subscription {1}."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:66
|
||||
msgid "Establish Webhook endpoints for notifications on asynchronous events."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:164
|
||||
msgid "Existing objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:56
|
||||
msgid "Failed to create object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:45
|
||||
msgid "from monthly to yearly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:52
|
||||
msgid "from yearly to monthly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:29
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:35
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:125
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:132
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:65
|
||||
msgid "Grant Twenty support temporary access to your workspace so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:214
|
||||
msgid "Inactive"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:87
|
||||
msgid "Invalid form values"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:52
|
||||
msgid "Invalid object data"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:51
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:143
|
||||
msgid "Manage your subscription"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:44
|
||||
#: src/pages/settings/SettingsProfile.tsx:35
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:44
|
||||
msgid "Name of your workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:76
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:66
|
||||
msgid "New Object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:108
|
||||
msgid "not allowed"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:45
|
||||
msgid "Object created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:156
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:73
|
||||
msgid "Objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:40
|
||||
#: src/pages/settings/SettingsProfile.tsx:30
|
||||
msgid "Picture"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:19
|
||||
#: src/pages/settings/SettingsProfile.tsx:25
|
||||
msgid "Profile"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:168
|
||||
msgid "Search an object..."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:33
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:40
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:52
|
||||
msgid "Select your preferred language"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:151
|
||||
msgid "Set the name of your subdomain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:47
|
||||
msgid "SSO"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:107
|
||||
msgid "Subdomain already taken"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:49
|
||||
msgid "Subdomain can not be longer than 30 characters"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:48
|
||||
msgid "Subdomain can not be shorter than 3 characters"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {0}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:113
|
||||
msgid "Subscription has been switched {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:63
|
||||
msgid "Support"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {2}: switchingInfo.from
|
||||
#: src/pages/settings/SettingsBilling.tsx:157
|
||||
msgid "Switch {2}"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {3}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:161
|
||||
msgid "Switch {3}"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {4}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:187
|
||||
msgid "Switch billing {4}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:43
|
||||
msgid "The email associated to your account"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:51
|
||||
msgid "to monthly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:44
|
||||
msgid "to yearly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:51
|
||||
msgid "Use letter, number and dash only. Start and finish with a letter or a number"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:22
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:148
|
||||
msgid "View billing details"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:65
|
||||
msgid "Webhooks"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:32
|
||||
#: src/pages/settings/SettingsBilling.tsx:131
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:128
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:37
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:39
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:152
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:69
|
||||
msgid "Workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:46
|
||||
msgid "You will be charged immediately for the full year."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:53
|
||||
msgid "Your credit balance will be used to pay the monthly bills."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:36
|
||||
msgid "Your name as it will be displayed"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:170
|
||||
msgid "Your workspace will be disabled"
|
||||
msgstr ""
|
||||
326
packages/twenty-front/src/locales/pt.po
Normal file
326
packages/twenty-front/src/locales/pt.po
Normal file
@ -0,0 +1,326 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"POT-Creation-Date: 2025-01-16 21:57+0100\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: @lingui/cli\n"
|
||||
"Language: pt\n"
|
||||
|
||||
#. placeholder {0}: settingsObjectsTableMetadataField.fieldLabel
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:180
|
||||
msgid "{0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:84
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:190
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:50
|
||||
msgid "Active APIs keys created by you or your team."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:144
|
||||
msgid "Add object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:49
|
||||
msgid "API keys"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {5}: switchingInfo.impact
|
||||
#: src/pages/settings/SettingsBilling.tsx:190
|
||||
msgid "Are you sure that you want to change your billing interval? {5}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:63
|
||||
msgid "Authentication"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:128
|
||||
#: src/pages/settings/SettingsBilling.tsx:134
|
||||
msgid "Billing"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:174
|
||||
msgid "Cancel Plan"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:169
|
||||
msgid "Cancel your subscription"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {6}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:194
|
||||
msgid "Change {6}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:48
|
||||
msgid "Configure an SSO connection"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:56
|
||||
msgid "Create API key"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:72
|
||||
msgid "Create Webhook"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:56
|
||||
msgid "Customize Domain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:64
|
||||
msgid "Customize your workspace security"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:139
|
||||
msgid "Data model"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:85
|
||||
msgid "Define the name and description of your object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:35
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:42
|
||||
msgid "Developers"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:51
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:135
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:150
|
||||
msgid "Domain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:156
|
||||
msgid "Edit billing interval"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:144
|
||||
msgid "Edit payment method, see your invoices and more"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:52
|
||||
msgid "Edit your subdomain name or set a custom domain."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:42
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:51
|
||||
msgid "Enterprise"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {1}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:118
|
||||
msgid "Error while switching subscription {1}."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:66
|
||||
msgid "Establish Webhook endpoints for notifications on asynchronous events."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:164
|
||||
msgid "Existing objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:56
|
||||
msgid "Failed to create object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:45
|
||||
msgid "from monthly to yearly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:52
|
||||
msgid "from yearly to monthly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:29
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:35
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:125
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:132
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:65
|
||||
msgid "Grant Twenty support temporary access to your workspace so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:214
|
||||
msgid "Inactive"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:87
|
||||
msgid "Invalid form values"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:52
|
||||
msgid "Invalid object data"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:51
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:143
|
||||
msgid "Manage your subscription"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:44
|
||||
#: src/pages/settings/SettingsProfile.tsx:35
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:44
|
||||
msgid "Name of your workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:76
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:66
|
||||
msgid "New Object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:108
|
||||
msgid "not allowed"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:45
|
||||
msgid "Object created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:156
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:73
|
||||
msgid "Objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:40
|
||||
#: src/pages/settings/SettingsProfile.tsx:30
|
||||
msgid "Picture"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:19
|
||||
#: src/pages/settings/SettingsProfile.tsx:25
|
||||
msgid "Profile"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:168
|
||||
msgid "Search an object..."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:33
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:40
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:52
|
||||
msgid "Select your preferred language"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:151
|
||||
msgid "Set the name of your subdomain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:47
|
||||
msgid "SSO"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:107
|
||||
msgid "Subdomain already taken"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:49
|
||||
msgid "Subdomain can not be longer than 30 characters"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:48
|
||||
msgid "Subdomain can not be shorter than 3 characters"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {0}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:113
|
||||
msgid "Subscription has been switched {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:63
|
||||
msgid "Support"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {2}: switchingInfo.from
|
||||
#: src/pages/settings/SettingsBilling.tsx:157
|
||||
msgid "Switch {2}"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {3}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:161
|
||||
msgid "Switch {3}"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {4}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:187
|
||||
msgid "Switch billing {4}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:43
|
||||
msgid "The email associated to your account"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:51
|
||||
msgid "to monthly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:44
|
||||
msgid "to yearly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:51
|
||||
msgid "Use letter, number and dash only. Start and finish with a letter or a number"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:22
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:148
|
||||
msgid "View billing details"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:65
|
||||
msgid "Webhooks"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:32
|
||||
#: src/pages/settings/SettingsBilling.tsx:131
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:128
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:37
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:39
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:152
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:69
|
||||
msgid "Workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:46
|
||||
msgid "You will be charged immediately for the full year."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:53
|
||||
msgid "Your credit balance will be used to pay the monthly bills."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:36
|
||||
msgid "Your name as it will be displayed"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:170
|
||||
msgid "Your workspace will be disabled"
|
||||
msgstr ""
|
||||
@ -1 +0,0 @@
|
||||
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"vXIe7J\":[\"Language\"],\"AXTJAW\":[\"Select your preferred language\"]}")as Messages;
|
||||
326
packages/twenty-front/src/locales/zh.po
Normal file
326
packages/twenty-front/src/locales/zh.po
Normal file
@ -0,0 +1,326 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"POT-Creation-Date: 2025-01-16 21:57+0100\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: @lingui/cli\n"
|
||||
"Language: zh\n"
|
||||
|
||||
#. placeholder {0}: settingsObjectsTableMetadataField.fieldLabel
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:180
|
||||
msgid "{0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:84
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:190
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:50
|
||||
msgid "Active APIs keys created by you or your team."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:144
|
||||
msgid "Add object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:49
|
||||
msgid "API keys"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {5}: switchingInfo.impact
|
||||
#: src/pages/settings/SettingsBilling.tsx:190
|
||||
msgid "Are you sure that you want to change your billing interval? {5}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:63
|
||||
msgid "Authentication"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:128
|
||||
#: src/pages/settings/SettingsBilling.tsx:134
|
||||
msgid "Billing"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:174
|
||||
msgid "Cancel Plan"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:169
|
||||
msgid "Cancel your subscription"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {6}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:194
|
||||
msgid "Change {6}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:48
|
||||
msgid "Configure an SSO connection"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:56
|
||||
msgid "Create API key"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:72
|
||||
msgid "Create Webhook"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:56
|
||||
msgid "Customize Domain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:64
|
||||
msgid "Customize your workspace security"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:139
|
||||
msgid "Data model"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:85
|
||||
msgid "Define the name and description of your object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:35
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:42
|
||||
msgid "Developers"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:51
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:135
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:150
|
||||
msgid "Domain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:156
|
||||
msgid "Edit billing interval"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:144
|
||||
msgid "Edit payment method, see your invoices and more"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:52
|
||||
msgid "Edit your subdomain name or set a custom domain."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:42
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:51
|
||||
msgid "Enterprise"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {1}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:118
|
||||
msgid "Error while switching subscription {1}."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:66
|
||||
msgid "Establish Webhook endpoints for notifications on asynchronous events."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:164
|
||||
msgid "Existing objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:56
|
||||
msgid "Failed to create object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:45
|
||||
msgid "from monthly to yearly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:52
|
||||
msgid "from yearly to monthly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:29
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:35
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:125
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:132
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:65
|
||||
msgid "Grant Twenty support temporary access to your workspace so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:214
|
||||
msgid "Inactive"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:87
|
||||
msgid "Invalid form values"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:52
|
||||
msgid "Invalid object data"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:51
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:143
|
||||
msgid "Manage your subscription"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:44
|
||||
#: src/pages/settings/SettingsProfile.tsx:35
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:44
|
||||
msgid "Name of your workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:76
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:66
|
||||
msgid "New Object"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:108
|
||||
msgid "not allowed"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:45
|
||||
msgid "Object created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:156
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:73
|
||||
msgid "Objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:40
|
||||
#: src/pages/settings/SettingsProfile.tsx:30
|
||||
msgid "Picture"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:19
|
||||
#: src/pages/settings/SettingsProfile.tsx:25
|
||||
msgid "Profile"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:168
|
||||
msgid "Search an object..."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:33
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:40
|
||||
msgid "Security"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/profile/appearance/components/SettingsExperience.tsx:52
|
||||
msgid "Select your preferred language"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:151
|
||||
msgid "Set the name of your subdomain"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:47
|
||||
msgid "SSO"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:107
|
||||
msgid "Subdomain already taken"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:49
|
||||
msgid "Subdomain can not be longer than 30 characters"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:48
|
||||
msgid "Subdomain can not be shorter than 3 characters"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {0}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:113
|
||||
msgid "Subscription has been switched {0}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:63
|
||||
msgid "Support"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {2}: switchingInfo.from
|
||||
#: src/pages/settings/SettingsBilling.tsx:157
|
||||
msgid "Switch {2}"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {3}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:161
|
||||
msgid "Switch {3}"
|
||||
msgstr ""
|
||||
|
||||
#. placeholder {4}: switchingInfo.to
|
||||
#: src/pages/settings/SettingsBilling.tsx:187
|
||||
msgid "Switch billing {4}"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:43
|
||||
msgid "The email associated to your account"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:51
|
||||
msgid "to monthly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:44
|
||||
msgid "to yearly"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:51
|
||||
msgid "Use letter, number and dash only. Start and finish with a letter or a number"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:22
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:148
|
||||
msgid "View billing details"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:65
|
||||
msgid "Webhooks"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsWorkspace.tsx:32
|
||||
#: src/pages/settings/SettingsBilling.tsx:131
|
||||
#: src/pages/settings/workspace/SettingsDomain.tsx:128
|
||||
#: src/pages/settings/security/SettingsSecurity.tsx:37
|
||||
#: src/pages/settings/developers/SettingsDevelopers.tsx:39
|
||||
#: src/pages/settings/data-model/SettingsObjects.tsx:152
|
||||
#: src/pages/settings/data-model/SettingsNewObject.tsx:69
|
||||
msgid "Workspace"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:46
|
||||
msgid "You will be charged immediately for the full year."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:53
|
||||
msgid "Your credit balance will be used to pay the monthly bills."
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsProfile.tsx:36
|
||||
msgid "Your name as it will be displayed"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/settings/SettingsBilling.tsx:170
|
||||
msgid "Your workspace will be disabled"
|
||||
msgstr ""
|
||||
@ -1 +0,0 @@
|
||||
/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"vXIe7J\":[\"Language\"],\"AXTJAW\":[\"Select your preferred language\"]}")as Messages;
|
||||
@ -11,14 +11,12 @@ import { HelmetProvider } from 'react-helmet-async';
|
||||
import { RecoilRoot } from 'recoil';
|
||||
import { RecoilURLSyncJSON } from 'recoil-sync';
|
||||
import { IconsProvider } from 'twenty-ui';
|
||||
import { messages as enMessages } from '../../../locales/en/messages';
|
||||
import { messages as frMessages } from '../../../locales/fr/messages';
|
||||
import { messages as enMessages } from '../../../locales/generated/en';
|
||||
|
||||
i18n.load({
|
||||
en: enMessages,
|
||||
fr: frMessages,
|
||||
});
|
||||
i18n.activate('fr');
|
||||
i18n.activate('en');
|
||||
|
||||
export const App = () => {
|
||||
return (
|
||||
|
||||
@ -60,8 +60,8 @@ import { useRedirectToWorkspaceDomain } from '@/domain-manager/hooks/useRedirect
|
||||
import { domainConfigurationState } from '@/domain-manager/states/domainConfigurationState';
|
||||
import { isAppWaitingForFreshObjectMetadataState } from '@/object-metadata/states/isAppWaitingForFreshObjectMetadataState';
|
||||
import { workspaceAuthProvidersState } from '@/workspace/states/workspaceAuthProvidersState';
|
||||
import { i18n } from '@lingui/core';
|
||||
import { useSearchParams } from 'react-router-dom';
|
||||
import { dynamicActivate } from '~/utils/i18n/dynamicActivate';
|
||||
|
||||
export const useAuth = () => {
|
||||
const setTokenPair = useSetRecoilState(tokenPairState);
|
||||
@ -280,7 +280,7 @@ export const useAuth = () => {
|
||||
)
|
||||
: TimeFormat[detectTimeFormat()],
|
||||
});
|
||||
i18n.activate(workspaceMember.locale ?? 'en');
|
||||
dynamicActivate(workspaceMember.locale ?? 'en');
|
||||
}
|
||||
|
||||
const workspace = user.currentWorkspace ?? null;
|
||||
|
||||
@ -16,9 +16,9 @@ import { detectTimeZone } from '@/localization/utils/detectTimeZone';
|
||||
import { getDateFormatFromWorkspaceDateFormat } from '@/localization/utils/getDateFormatFromWorkspaceDateFormat';
|
||||
import { getTimeFormatFromWorkspaceTimeFormat } from '@/localization/utils/getTimeFormatFromWorkspaceTimeFormat';
|
||||
import { ColorScheme } from '@/workspace-member/types/WorkspaceMember';
|
||||
import { i18n } from '@lingui/core';
|
||||
import { WorkspaceMember } from '~/generated-metadata/graphql';
|
||||
import { useGetCurrentUserQuery } from '~/generated/graphql';
|
||||
import { dynamicActivate } from '~/utils/i18n/dynamicActivate';
|
||||
import { isDefined } from '~/utils/isDefined';
|
||||
|
||||
export const UserProviderEffect = () => {
|
||||
@ -93,7 +93,7 @@ export const UserProviderEffect = () => {
|
||||
: TimeFormat[detectTimeFormat()],
|
||||
});
|
||||
|
||||
i18n.activate(workspaceMember.locale ?? 'en');
|
||||
dynamicActivate(workspaceMember.locale ?? 'en');
|
||||
}
|
||||
|
||||
if (isDefined(workspaceMembers)) {
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
import { useLingui } from '@lingui/react/macro';
|
||||
import { useState } from 'react';
|
||||
import { useRecoilValue, useSetRecoilState } from 'recoil';
|
||||
import {
|
||||
@ -35,26 +36,28 @@ type SwitchInfo = {
|
||||
impact: string;
|
||||
};
|
||||
|
||||
const MONTHLY_SWITCH_INFO: SwitchInfo = {
|
||||
export const SettingsBilling = () => {
|
||||
const { t } = useLingui();
|
||||
|
||||
const MONTHLY_SWITCH_INFO: SwitchInfo = {
|
||||
newInterval: SubscriptionInterval.Year,
|
||||
to: 'to yearly',
|
||||
from: 'from monthly to yearly',
|
||||
impact: 'You will be charged immediately for the full year.',
|
||||
};
|
||||
to: t`to yearly`,
|
||||
from: t`from monthly to yearly`,
|
||||
impact: t`You will be charged immediately for the full year.`,
|
||||
};
|
||||
|
||||
const YEARLY_SWITCH_INFO: SwitchInfo = {
|
||||
const YEARLY_SWITCH_INFO: SwitchInfo = {
|
||||
newInterval: SubscriptionInterval.Month,
|
||||
to: 'to monthly',
|
||||
from: 'from yearly to monthly',
|
||||
impact: 'Your credit balance will be used to pay the monthly bills.',
|
||||
};
|
||||
to: t`to monthly`,
|
||||
from: t`from yearly to monthly`,
|
||||
impact: t`Your credit balance will be used to pay the monthly bills.`,
|
||||
};
|
||||
|
||||
const SWITCH_INFOS = {
|
||||
const SWITCH_INFOS = {
|
||||
year: YEARLY_SWITCH_INFO,
|
||||
month: MONTHLY_SWITCH_INFO,
|
||||
};
|
||||
};
|
||||
|
||||
export const SettingsBilling = () => {
|
||||
const { enqueueSnackBar } = useSnackBar();
|
||||
const onboardingStatus = useOnboardingStatus();
|
||||
const subscriptionStatus = useSubscriptionStatus();
|
||||
@ -94,6 +97,10 @@ export const SettingsBilling = () => {
|
||||
setIsSwitchingIntervalModalOpen(true);
|
||||
};
|
||||
|
||||
const from = switchingInfo.from;
|
||||
const to = switchingInfo.to;
|
||||
const impact = switchingInfo.impact;
|
||||
|
||||
const switchInterval = async () => {
|
||||
try {
|
||||
await updateBillingSubscription();
|
||||
@ -107,28 +114,25 @@ export const SettingsBilling = () => {
|
||||
};
|
||||
setCurrentWorkspace(newCurrentWorkspace);
|
||||
}
|
||||
enqueueSnackBar(`Subscription has been switched ${switchingInfo.to}`, {
|
||||
enqueueSnackBar(t`Subscription has been switched ${to}`, {
|
||||
variant: SnackBarVariant.Success,
|
||||
});
|
||||
} catch (error: any) {
|
||||
enqueueSnackBar(
|
||||
`Error while switching subscription ${switchingInfo.to}.`,
|
||||
{
|
||||
enqueueSnackBar(t`Error while switching subscription ${to}.`, {
|
||||
variant: SnackBarVariant.Error,
|
||||
},
|
||||
);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<SubMenuTopBarContainer
|
||||
title="Billing"
|
||||
title={t`Billing`}
|
||||
links={[
|
||||
{
|
||||
children: 'Workspace',
|
||||
children: t`Workspace`,
|
||||
href: getSettingsPagePath(SettingsPath.Workspace),
|
||||
},
|
||||
{ children: 'Billing' },
|
||||
{ children: t`Billing` },
|
||||
]}
|
||||
>
|
||||
<SettingsPageContainer>
|
||||
@ -137,12 +141,12 @@ export const SettingsBilling = () => {
|
||||
<>
|
||||
<Section>
|
||||
<H2Title
|
||||
title="Manage your subscription"
|
||||
description="Edit payment method, see your invoices and more"
|
||||
title={t`Manage your subscription`}
|
||||
description={t`Edit payment method, see your invoices and more`}
|
||||
/>
|
||||
<Button
|
||||
Icon={IconCreditCard}
|
||||
title="View billing details"
|
||||
title={t`View billing details`}
|
||||
variant="secondary"
|
||||
onClick={openBillingPortal}
|
||||
disabled={billingPortalButtonDisabled}
|
||||
@ -150,12 +154,12 @@ export const SettingsBilling = () => {
|
||||
</Section>
|
||||
<Section>
|
||||
<H2Title
|
||||
title="Edit billing interval"
|
||||
description={`Switch ${switchingInfo.from}`}
|
||||
title={t`Edit billing interval`}
|
||||
description={t`Switch ${from}`}
|
||||
/>
|
||||
<Button
|
||||
Icon={IconCalendarEvent}
|
||||
title={`Switch ${switchingInfo.to}`}
|
||||
title={t`Switch ${to}`}
|
||||
variant="secondary"
|
||||
onClick={openSwitchingIntervalModal}
|
||||
disabled={switchIntervalButtonDisabled}
|
||||
@ -163,12 +167,12 @@ export const SettingsBilling = () => {
|
||||
</Section>
|
||||
<Section>
|
||||
<H2Title
|
||||
title="Cancel your subscription"
|
||||
description="Your workspace will be disabled"
|
||||
title={t`Cancel your subscription`}
|
||||
description={t`Your workspace will be disabled`}
|
||||
/>
|
||||
<Button
|
||||
Icon={IconCircleX}
|
||||
title="Cancel Plan"
|
||||
title={t`Cancel Plan`}
|
||||
variant="secondary"
|
||||
accent="danger"
|
||||
onClick={openBillingPortal}
|
||||
@ -181,15 +185,10 @@ export const SettingsBilling = () => {
|
||||
<ConfirmationModal
|
||||
isOpen={isSwitchingIntervalModalOpen}
|
||||
setIsOpen={setIsSwitchingIntervalModalOpen}
|
||||
title={`Switch billing ${switchingInfo.to}`}
|
||||
subtitle={
|
||||
<>
|
||||
{`Are you sure that you want to change your billing interval?
|
||||
${switchingInfo.impact}`}
|
||||
</>
|
||||
}
|
||||
title={t`Switch billing ${to}`}
|
||||
subtitle={t`Are you sure that you want to change your billing interval? ${impact}`}
|
||||
onConfirmClick={switchInterval}
|
||||
deleteButtonText={`Change ${switchingInfo.to}`}
|
||||
deleteButtonText={t`Change ${to}`}
|
||||
confirmButtonAccent={'blue'}
|
||||
/>
|
||||
</SubMenuTopBarContainer>
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
import { useLingui } from '@lingui/react/macro';
|
||||
import { H2Title, Section } from 'twenty-ui';
|
||||
|
||||
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
||||
@ -10,30 +11,36 @@ import { getSettingsPagePath } from '@/settings/utils/getSettingsPagePath';
|
||||
import { SettingsPath } from '@/types/SettingsPath';
|
||||
import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBarContainer';
|
||||
|
||||
export const SettingsProfile = () => (
|
||||
export const SettingsProfile = () => {
|
||||
const { t } = useLingui();
|
||||
|
||||
return (
|
||||
<SubMenuTopBarContainer
|
||||
title="Profile"
|
||||
title={t`Profile`}
|
||||
links={[
|
||||
{
|
||||
children: 'User',
|
||||
children: t`User`,
|
||||
href: getSettingsPagePath(SettingsPath.ProfilePage),
|
||||
},
|
||||
{ children: 'Profile' },
|
||||
{ children: t`Profile` },
|
||||
]}
|
||||
>
|
||||
<SettingsPageContainer>
|
||||
<Section>
|
||||
<H2Title title="Picture" />
|
||||
<H2Title title={t`Picture`} />
|
||||
<ProfilePictureUploader />
|
||||
</Section>
|
||||
<Section>
|
||||
<H2Title title="Name" description="Your name as it will be displayed" />
|
||||
<H2Title
|
||||
title={t`Name`}
|
||||
description={t`Your name as it will be displayed`}
|
||||
/>
|
||||
<NameFields />
|
||||
</Section>
|
||||
<Section>
|
||||
<H2Title
|
||||
title="Email"
|
||||
description="The email associated to your account"
|
||||
title={t`Email`}
|
||||
description={t`The email associated to your account`}
|
||||
/>
|
||||
<EmailField />
|
||||
</Section>
|
||||
@ -45,4 +52,5 @@ export const SettingsProfile = () => (
|
||||
</Section>
|
||||
</SettingsPageContainer>
|
||||
</SubMenuTopBarContainer>
|
||||
);
|
||||
);
|
||||
};
|
||||
|
||||
@ -1,12 +1,15 @@
|
||||
import { useLingui } from '@lingui/react/macro';
|
||||
import { useRecoilValue } from 'recoil';
|
||||
import {
|
||||
GithubVersionLink,
|
||||
H2Title,
|
||||
Section,
|
||||
IconWorld,
|
||||
Section,
|
||||
UndecoratedLink,
|
||||
} from 'twenty-ui';
|
||||
import { useRecoilValue } from 'recoil';
|
||||
|
||||
import { isMultiWorkspaceEnabledState } from '@/client-config/states/isMultiWorkspaceEnabledState';
|
||||
import { SettingsCard } from '@/settings/components/SettingsCard';
|
||||
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
||||
import { DeleteWorkspace } from '@/settings/profile/components/DeleteWorkspace';
|
||||
import { getSettingsPagePath } from '@/settings/utils/getSettingsPagePath';
|
||||
@ -16,47 +19,50 @@ import { WorkspaceLogoUploader } from '@/settings/workspace/components/Workspace
|
||||
import { SettingsPath } from '@/types/SettingsPath';
|
||||
import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBarContainer';
|
||||
import packageJson from '../../../package.json';
|
||||
import { SettingsCard } from '@/settings/components/SettingsCard';
|
||||
import { isMultiWorkspaceEnabledState } from '@/client-config/states/isMultiWorkspaceEnabledState';
|
||||
|
||||
export const SettingsWorkspace = () => {
|
||||
const isMultiWorkspaceEnabled = useRecoilValue(isMultiWorkspaceEnabledState);
|
||||
const { t } = useLingui();
|
||||
|
||||
return (
|
||||
<SubMenuTopBarContainer
|
||||
title="General"
|
||||
title={t`General`}
|
||||
links={[
|
||||
{
|
||||
children: 'Workspace',
|
||||
children: t`Workspace`,
|
||||
href: getSettingsPagePath(SettingsPath.Workspace),
|
||||
},
|
||||
{ children: 'General' },
|
||||
{ children: t`General` },
|
||||
]}
|
||||
>
|
||||
<SettingsPageContainer>
|
||||
<Section>
|
||||
<H2Title title="Picture" />
|
||||
<H2Title title={t`Picture`} />
|
||||
<WorkspaceLogoUploader />
|
||||
</Section>
|
||||
<Section>
|
||||
<H2Title title="Name" description="Name of your workspace" />
|
||||
<H2Title title={t`Name`} description={t`Name of your workspace`} />
|
||||
<NameField />
|
||||
</Section>
|
||||
{isMultiWorkspaceEnabled && (
|
||||
<>
|
||||
<Section>
|
||||
<H2Title
|
||||
title="Domain"
|
||||
description="Edit your subdomain name or set a custom domain."
|
||||
title={t`Domain`}
|
||||
description={t`Edit your subdomain name or set a custom domain.`}
|
||||
/>
|
||||
<UndecoratedLink to={getSettingsPagePath(SettingsPath.Domain)}>
|
||||
<SettingsCard title="Customize Domain" Icon={<IconWorld />} />
|
||||
<SettingsCard
|
||||
title={t`Customize Domain`}
|
||||
Icon={<IconWorld />}
|
||||
/>
|
||||
</UndecoratedLink>
|
||||
</Section>
|
||||
<Section>
|
||||
<H2Title
|
||||
title="Support"
|
||||
title={t`Support`}
|
||||
adornment={<ToggleImpersonate />}
|
||||
description="Grant Twenty support temporary access to your workspace so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time."
|
||||
description={t`Grant Twenty support temporary access to your workspace so we can troubleshoot problems or recover content on your behalf. You can revoke access at any time.`}
|
||||
/>
|
||||
</Section>
|
||||
</>
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import { zodResolver } from '@hookform/resolvers/zod';
|
||||
import { useLingui } from '@lingui/react/macro';
|
||||
import { FormProvider, useForm } from 'react-hook-form';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { H2Title, Section } from 'twenty-ui';
|
||||
@ -24,78 +25,78 @@ type SettingsDataModelNewObjectFormValues = z.infer<typeof newObjectFormSchema>;
|
||||
|
||||
export const SettingsNewObject = () => {
|
||||
const navigate = useNavigate();
|
||||
const { t } = useLingui();
|
||||
const { enqueueSnackBar } = useSnackBar();
|
||||
|
||||
const { createOneObjectMetadataItem, findManyRecordsCache } =
|
||||
useCreateOneObjectMetadataItem();
|
||||
|
||||
const settingsObjectsPagePath = getSettingsPagePath(SettingsPath.Objects);
|
||||
|
||||
const formConfig = useForm<SettingsDataModelNewObjectFormValues>({
|
||||
mode: 'onTouched',
|
||||
const methods = useForm<SettingsDataModelNewObjectFormValues>({
|
||||
defaultValues: {},
|
||||
resolver: zodResolver(newObjectFormSchema),
|
||||
});
|
||||
|
||||
const { isValid, isSubmitting } = formConfig.formState;
|
||||
const canSave = isValid && !isSubmitting;
|
||||
const { handleSubmit } = methods;
|
||||
|
||||
const handleSave = async (
|
||||
formValues: SettingsDataModelNewObjectFormValues,
|
||||
) => {
|
||||
const { createOneObjectMetadataItem } = useCreateOneObjectMetadataItem();
|
||||
|
||||
const onSubmit = async (data: SettingsDataModelNewObjectFormValues) => {
|
||||
try {
|
||||
const { data: response } = await createOneObjectMetadataItem(
|
||||
settingsCreateObjectInputSchema.parse(formValues),
|
||||
);
|
||||
const createObjectInput = settingsCreateObjectInputSchema.parse(data);
|
||||
|
||||
navigate(
|
||||
response
|
||||
? `${settingsObjectsPagePath}/${response.createOneObject.namePlural}`
|
||||
: settingsObjectsPagePath,
|
||||
);
|
||||
await createOneObjectMetadataItem(createObjectInput);
|
||||
|
||||
await findManyRecordsCache();
|
||||
enqueueSnackBar(t`Object created successfully`, {
|
||||
variant: SnackBarVariant.Success,
|
||||
});
|
||||
|
||||
navigate(getSettingsPagePath(SettingsPath.Objects));
|
||||
} catch (error) {
|
||||
enqueueSnackBar((error as Error).message, {
|
||||
if (error instanceof z.ZodError) {
|
||||
enqueueSnackBar(t`Invalid object data`, {
|
||||
variant: SnackBarVariant.Error,
|
||||
});
|
||||
} else {
|
||||
enqueueSnackBar(t`Failed to create object`, {
|
||||
variant: SnackBarVariant.Error,
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
// eslint-disable-next-line react/jsx-props-no-spreading
|
||||
<FormProvider {...formConfig}>
|
||||
<>
|
||||
<SubMenuTopBarContainer
|
||||
title="New Object"
|
||||
title={t`New Object`}
|
||||
links={[
|
||||
{
|
||||
children: 'Workspace',
|
||||
children: t`Workspace`,
|
||||
href: getSettingsPagePath(SettingsPath.Workspace),
|
||||
},
|
||||
{
|
||||
children: 'Objects',
|
||||
href: settingsObjectsPagePath,
|
||||
children: t`Objects`,
|
||||
href: getSettingsPagePath(SettingsPath.Objects),
|
||||
},
|
||||
{ children: 'New' },
|
||||
{ children: t`New` },
|
||||
]}
|
||||
actionButton={
|
||||
<SaveAndCancelButtons
|
||||
isSaveDisabled={!canSave}
|
||||
isCancelDisabled={isSubmitting}
|
||||
onCancel={() => navigate(settingsObjectsPagePath)}
|
||||
onSave={formConfig.handleSubmit(handleSave)}
|
||||
/>
|
||||
}
|
||||
>
|
||||
<SettingsPageContainer>
|
||||
{/* eslint-disable-next-line react/jsx-props-no-spreading */}
|
||||
<FormProvider {...methods}>
|
||||
<form onSubmit={handleSubmit(onSubmit)}>
|
||||
<Section>
|
||||
<H2Title
|
||||
title="About"
|
||||
description="Name in both singular (e.g., 'Invoice') and plural (e.g., 'Invoices') forms."
|
||||
title={t`About`}
|
||||
description={t`Define the name and description of your object`}
|
||||
/>
|
||||
<SettingsDataModelObjectAboutForm />
|
||||
</Section>
|
||||
<SaveAndCancelButtons
|
||||
onCancel={() =>
|
||||
navigate(getSettingsPagePath(SettingsPath.Objects))
|
||||
}
|
||||
/>
|
||||
</form>
|
||||
</FormProvider>
|
||||
</SettingsPageContainer>
|
||||
</SubMenuTopBarContainer>
|
||||
</FormProvider>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
@ -21,6 +21,7 @@ import { TableSection } from '@/ui/layout/table/components/TableSection';
|
||||
import { useSortedArray } from '@/ui/layout/table/hooks/useSortedArray';
|
||||
import { useTheme } from '@emotion/react';
|
||||
import styled from '@emotion/styled';
|
||||
import { useLingui } from '@lingui/react/macro';
|
||||
import { isNonEmptyArray } from '@sniptt/guards';
|
||||
import { useMemo, useState } from 'react';
|
||||
import {
|
||||
@ -38,12 +39,15 @@ import { SettingsObjectTableItem } from '~/pages/settings/data-model/types/Setti
|
||||
const StyledIconChevronRight = styled(IconChevronRight)`
|
||||
color: ${({ theme }) => theme.font.color.tertiary};
|
||||
`;
|
||||
|
||||
const StyledSearchInput = styled(TextInput)`
|
||||
padding-bottom: ${({ theme }) => theme.spacing(2)};
|
||||
width: 100%;
|
||||
`;
|
||||
|
||||
export const SettingsObjects = () => {
|
||||
const theme = useTheme();
|
||||
const { t } = useLingui();
|
||||
const [searchTerm, setSearchTerm] = useState('');
|
||||
const { deleteOneObjectMetadataItem } = useDeleteOneObjectMetadataItem();
|
||||
const { updateOneObjectMetadataItem } = useUpdateOneObjectMetadataItem();
|
||||
@ -109,6 +113,7 @@ export const SettingsObjects = () => {
|
||||
inactiveObjectSettingsArray,
|
||||
SETTINGS_OBJECT_TABLE_METADATA,
|
||||
);
|
||||
|
||||
const filteredActiveObjectSettingsItems = useMemo(
|
||||
() =>
|
||||
sortedActiveObjectSettingsItems.filter(
|
||||
@ -128,14 +133,15 @@ export const SettingsObjects = () => {
|
||||
),
|
||||
[sortedInactiveObjectSettingsItems, searchTerm],
|
||||
);
|
||||
|
||||
return (
|
||||
<SubMenuTopBarContainer
|
||||
title="Data model"
|
||||
title={t`Data model`}
|
||||
actionButton={
|
||||
<UndecoratedLink to={getSettingsPagePath(SettingsPath.NewObject)}>
|
||||
<Button
|
||||
Icon={IconPlus}
|
||||
title="Add object"
|
||||
title={t`Add object`}
|
||||
accent="blue"
|
||||
size="small"
|
||||
/>
|
||||
@ -143,11 +149,11 @@ export const SettingsObjects = () => {
|
||||
}
|
||||
links={[
|
||||
{
|
||||
children: 'Workspace',
|
||||
children: t`Workspace`,
|
||||
href: getSettingsPagePath(SettingsPath.Workspace),
|
||||
},
|
||||
{
|
||||
children: 'Objects',
|
||||
children: t`Objects`,
|
||||
},
|
||||
]}
|
||||
>
|
||||
@ -155,11 +161,11 @@ export const SettingsObjects = () => {
|
||||
<>
|
||||
<SettingsObjectCoverImage />
|
||||
<Section>
|
||||
<H2Title title="Existing objects" />
|
||||
<H2Title title={t`Existing objects`} />
|
||||
|
||||
<StyledSearchInput
|
||||
LeftIcon={IconSearch}
|
||||
placeholder="Search an object..."
|
||||
placeholder={t`Search an object...`}
|
||||
value={searchTerm}
|
||||
onChange={setSearchTerm}
|
||||
/>
|
||||
@ -181,7 +187,7 @@ export const SettingsObjects = () => {
|
||||
<TableHeader></TableHeader>
|
||||
</StyledObjectTableRow>
|
||||
{isNonEmptyArray(sortedActiveObjectSettingsItems) && (
|
||||
<TableSection title="Active">
|
||||
<TableSection title={t`Active`}>
|
||||
{filteredActiveObjectSettingsItems.map(
|
||||
(objectSettingsItem) => (
|
||||
<SettingsObjectMetadataItemTableRow
|
||||
@ -205,7 +211,7 @@ export const SettingsObjects = () => {
|
||||
</TableSection>
|
||||
)}
|
||||
{isNonEmptyArray(inactiveObjectMetadataItems) && (
|
||||
<TableSection title="Inactive">
|
||||
<TableSection title={t`Inactive`}>
|
||||
{filteredInactiveObjectSettingsItems.map(
|
||||
(objectSettingsItem) => (
|
||||
<SettingsObjectMetadataItemTableRow
|
||||
|
||||
@ -7,6 +7,7 @@ import { SettingsPath } from '@/types/SettingsPath';
|
||||
import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBarContainer';
|
||||
import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile';
|
||||
import styled from '@emotion/styled';
|
||||
import { useLingui } from '@lingui/react/macro';
|
||||
import { Button, H2Title, IconPlus, MOBILE_VIEWPORT, Section } from 'twenty-ui';
|
||||
|
||||
const StyledButtonContainer = styled.div`
|
||||
@ -27,30 +28,32 @@ const StyledContainer = styled.div<{ isMobile: boolean }>`
|
||||
|
||||
export const SettingsDevelopers = () => {
|
||||
const isMobile = useIsMobile();
|
||||
const { t } = useLingui();
|
||||
|
||||
return (
|
||||
<SubMenuTopBarContainer
|
||||
title="Developers"
|
||||
title={t`Developers`}
|
||||
actionButton={<SettingsReadDocumentationButton />}
|
||||
links={[
|
||||
{
|
||||
children: 'Workspace',
|
||||
children: t`Workspace`,
|
||||
href: getSettingsPagePath(SettingsPath.Workspace),
|
||||
},
|
||||
{ children: 'Developers' },
|
||||
{ children: t`Developers` },
|
||||
]}
|
||||
>
|
||||
<SettingsPageContainer>
|
||||
<StyledContainer isMobile={isMobile}>
|
||||
<Section>
|
||||
<H2Title
|
||||
title="API keys"
|
||||
description="Active APIs keys created by you or your team."
|
||||
title={t`API keys`}
|
||||
description={t`Active APIs keys created by you or your team.`}
|
||||
/>
|
||||
<SettingsApiKeysTable />
|
||||
<StyledButtonContainer>
|
||||
<Button
|
||||
Icon={IconPlus}
|
||||
title="Create API key"
|
||||
title={t`Create API key`}
|
||||
size="small"
|
||||
variant="secondary"
|
||||
to={'/settings/developers/api-keys/new'}
|
||||
@ -59,14 +62,14 @@ export const SettingsDevelopers = () => {
|
||||
</Section>
|
||||
<Section>
|
||||
<H2Title
|
||||
title="Webhooks"
|
||||
description="Establish Webhook endpoints for notifications on asynchronous events."
|
||||
title={t`Webhooks`}
|
||||
description={t`Establish Webhook endpoints for notifications on asynchronous events.`}
|
||||
/>
|
||||
<SettingsWebhooksTable />
|
||||
<StyledButtonContainer>
|
||||
<Button
|
||||
Icon={IconPlus}
|
||||
title="Create Webhook"
|
||||
title={t`Create Webhook`}
|
||||
size="small"
|
||||
variant="secondary"
|
||||
to={'/settings/developers/webhooks/new'}
|
||||
|
||||
@ -1,12 +1,14 @@
|
||||
import styled from '@emotion/styled';
|
||||
import { useRecoilState } from 'recoil';
|
||||
import { useRecoilState, useRecoilValue } from 'recoil';
|
||||
|
||||
import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState';
|
||||
import { isDebugModeState } from '@/client-config/states/isDebugModeState';
|
||||
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
|
||||
import { useUpdateOneRecord } from '@/object-record/hooks/useUpdateOneRecord';
|
||||
import { Select } from '@/ui/input/components/Select';
|
||||
|
||||
import { i18n } from '@lingui/core';
|
||||
import { dynamicActivate } from '~/utils/i18n/dynamicActivate';
|
||||
import { isDefined } from '~/utils/isDefined';
|
||||
import { logError } from '~/utils/logError';
|
||||
|
||||
@ -20,6 +22,7 @@ export const LocalePicker = () => {
|
||||
const [currentWorkspaceMember, setCurrentWorkspaceMember] = useRecoilState(
|
||||
currentWorkspaceMemberState,
|
||||
);
|
||||
const isDebugMode = useRecoilValue(isDebugModeState);
|
||||
|
||||
const { updateOneRecord } = useUpdateOneRecord({
|
||||
objectNameSingular: CoreObjectNameSingular.WorkspaceMember,
|
||||
@ -49,17 +52,10 @@ export const LocalePicker = () => {
|
||||
});
|
||||
updateWorkspaceMember({ locale: value });
|
||||
|
||||
i18n.activate(value);
|
||||
dynamicActivate(value);
|
||||
};
|
||||
|
||||
return (
|
||||
<StyledContainer>
|
||||
<Select
|
||||
dropdownId="preferred-locale"
|
||||
dropdownWidthAuto
|
||||
fullWidth
|
||||
value={i18n.locale}
|
||||
options={[
|
||||
const localeOptions = [
|
||||
{
|
||||
label: 'Portuguese',
|
||||
value: 'pt',
|
||||
@ -88,7 +84,23 @@ export const LocalePicker = () => {
|
||||
label: 'Chinese',
|
||||
value: 'zh',
|
||||
},
|
||||
]}
|
||||
];
|
||||
|
||||
if (isDebugMode) {
|
||||
localeOptions.push({
|
||||
label: 'Pseudo-English',
|
||||
value: 'pseudo-en',
|
||||
});
|
||||
}
|
||||
|
||||
return (
|
||||
<StyledContainer>
|
||||
<Select
|
||||
dropdownId="preferred-locale"
|
||||
dropdownWidthAuto
|
||||
fullWidth
|
||||
value={i18n.locale}
|
||||
options={localeOptions}
|
||||
onChange={(value) => handleLocaleChange(value)}
|
||||
/>
|
||||
</StyledContainer>
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import styled from '@emotion/styled';
|
||||
import { useLingui } from '@lingui/react/macro';
|
||||
import { H2Title, IconLock, Section, Tag } from 'twenty-ui';
|
||||
|
||||
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
||||
@ -25,27 +26,29 @@ const StyledSSOSection = styled(Section)`
|
||||
`;
|
||||
|
||||
export const SettingsSecurity = () => {
|
||||
const { t } = useLingui();
|
||||
|
||||
return (
|
||||
<SubMenuTopBarContainer
|
||||
title="Security"
|
||||
title={t`Security`}
|
||||
actionButton={<SettingsReadDocumentationButton />}
|
||||
links={[
|
||||
{
|
||||
children: 'Workspace',
|
||||
children: t`Workspace`,
|
||||
href: getSettingsPagePath(SettingsPath.Workspace),
|
||||
},
|
||||
{ children: 'Security' },
|
||||
{ children: t`Security` },
|
||||
]}
|
||||
>
|
||||
<SettingsPageContainer>
|
||||
<StyledMainContent>
|
||||
<StyledSSOSection>
|
||||
<H2Title
|
||||
title="SSO"
|
||||
description="Configure an SSO connection"
|
||||
title={t`SSO`}
|
||||
description={t`Configure an SSO connection`}
|
||||
adornment={
|
||||
<Tag
|
||||
text={'Enterprise'}
|
||||
text={t`Enterprise`}
|
||||
color={'transparent'}
|
||||
Icon={IconLock}
|
||||
variant={'border'}
|
||||
@ -57,8 +60,8 @@ export const SettingsSecurity = () => {
|
||||
<Section>
|
||||
<StyledContainer>
|
||||
<H2Title
|
||||
title="Authentication"
|
||||
description="Customize your workspace security"
|
||||
title={t`Authentication`}
|
||||
description={t`Customize your workspace security`}
|
||||
/>
|
||||
<SettingsSecurityOptionsList />
|
||||
</StyledContainer>
|
||||
|
||||
@ -1,38 +1,28 @@
|
||||
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
|
||||
import { useRedirectToWorkspaceDomain } from '@/domain-manager/hooks/useRedirectToWorkspaceDomain';
|
||||
import { domainConfigurationState } from '@/domain-manager/states/domainConfigurationState';
|
||||
import { SaveAndCancelButtons } from '@/settings/components/SaveAndCancelButtons/SaveAndCancelButtons';
|
||||
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
||||
import { getSettingsPagePath } from '@/settings/utils/getSettingsPagePath';
|
||||
import { SettingsPath } from '@/types/SettingsPath';
|
||||
import { zodResolver } from '@hookform/resolvers/zod';
|
||||
import { H2Title, Section } from 'twenty-ui';
|
||||
import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBarContainer';
|
||||
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
||||
import { TextInputV2 } from '@/ui/input/components/TextInputV2';
|
||||
import { Controller, useForm } from 'react-hook-form';
|
||||
import { z } from 'zod';
|
||||
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
|
||||
import { useRecoilState, useRecoilValue } from 'recoil';
|
||||
import styled from '@emotion/styled';
|
||||
import { SaveAndCancelButtons } from '@/settings/components/SaveAndCancelButtons/SaveAndCancelButtons';
|
||||
import { SnackBarVariant } from '@/ui/feedback/snack-bar-manager/components/SnackBar';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar';
|
||||
import { TextInputV2 } from '@/ui/input/components/TextInputV2';
|
||||
import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBarContainer';
|
||||
import styled from '@emotion/styled';
|
||||
import { zodResolver } from '@hookform/resolvers/zod';
|
||||
import { useLingui } from '@lingui/react/macro';
|
||||
import { Controller, useForm } from 'react-hook-form';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { useRecoilState, useRecoilValue } from 'recoil';
|
||||
import { H2Title, Section } from 'twenty-ui';
|
||||
import { z } from 'zod';
|
||||
import { useUpdateWorkspaceMutation } from '~/generated/graphql';
|
||||
import { domainConfigurationState } from '@/domain-manager/states/domainConfigurationState';
|
||||
import { isDefined } from '~/utils/isDefined';
|
||||
import { useRedirectToWorkspaceDomain } from '@/domain-manager/hooks/useRedirectToWorkspaceDomain';
|
||||
|
||||
const validationSchema = z
|
||||
.object({
|
||||
subdomain: z
|
||||
.string()
|
||||
.min(3, { message: 'Subdomain can not be shorter than 3 characters' })
|
||||
.max(30, { message: 'Subdomain can not be longer than 30 characters' })
|
||||
.regex(/^[a-z0-9][a-z0-9-]{1,28}[a-z0-9]$/, {
|
||||
message:
|
||||
'Use letter, number and dash only. Start and finish with a letter or a number',
|
||||
}),
|
||||
})
|
||||
.required();
|
||||
|
||||
type Form = z.infer<typeof validationSchema>;
|
||||
type Form = {
|
||||
subdomain: string;
|
||||
};
|
||||
|
||||
const StyledDomainFromWrapper = styled.div`
|
||||
align-items: center;
|
||||
@ -49,6 +39,19 @@ const StyledDomain = styled.h2`
|
||||
|
||||
export const SettingsDomain = () => {
|
||||
const navigate = useNavigate();
|
||||
const { t } = useLingui();
|
||||
|
||||
const validationSchema = z
|
||||
.object({
|
||||
subdomain: z
|
||||
.string()
|
||||
.min(3, { message: t`Subdomain can not be shorter than 3 characters` })
|
||||
.max(30, { message: t`Subdomain can not be longer than 30 characters` })
|
||||
.regex(/^[a-z0-9][a-z0-9-]{1,28}[a-z0-9]$/, {
|
||||
message: t`Use letter, number and dash only. Start and finish with a letter or a number`,
|
||||
}),
|
||||
})
|
||||
.required();
|
||||
|
||||
const domainConfiguration = useRecoilValue(domainConfigurationState);
|
||||
|
||||
@ -81,7 +84,7 @@ export const SettingsDomain = () => {
|
||||
const values = getValues();
|
||||
|
||||
if (!values || !isValid || !currentWorkspace) {
|
||||
throw new Error('Invalid form values');
|
||||
throw new Error(t`Invalid form values`);
|
||||
}
|
||||
|
||||
await updateWorkspace({
|
||||
@ -101,8 +104,8 @@ export const SettingsDomain = () => {
|
||||
} catch (error) {
|
||||
if (
|
||||
error instanceof Error &&
|
||||
(error.message === 'Subdomain already taken' ||
|
||||
error.message.endsWith('not allowed'))
|
||||
(error.message === t`Subdomain already taken` ||
|
||||
error.message.endsWith(t`not allowed`))
|
||||
) {
|
||||
control.setError('subdomain', {
|
||||
type: 'manual',
|
||||
@ -119,17 +122,17 @@ export const SettingsDomain = () => {
|
||||
|
||||
return (
|
||||
<SubMenuTopBarContainer
|
||||
title="General"
|
||||
title={t`General`}
|
||||
links={[
|
||||
{
|
||||
children: 'Workspace',
|
||||
children: t`Workspace`,
|
||||
href: getSettingsPagePath(SettingsPath.Workspace),
|
||||
},
|
||||
{
|
||||
children: 'General',
|
||||
children: t`General`,
|
||||
href: getSettingsPagePath(SettingsPath.Workspace),
|
||||
},
|
||||
{ children: 'Domain' },
|
||||
{ children: t`Domain` },
|
||||
]}
|
||||
actionButton={
|
||||
<SaveAndCancelButtons
|
||||
@ -144,8 +147,8 @@ export const SettingsDomain = () => {
|
||||
<SettingsPageContainer>
|
||||
<Section>
|
||||
<H2Title
|
||||
title="Domain"
|
||||
description="Set the name of your subdomain"
|
||||
title={t`Domain`}
|
||||
description={t`Set the name of your subdomain`}
|
||||
/>
|
||||
{currentWorkspace?.subdomain && (
|
||||
<StyledDomainFromWrapper>
|
||||
|
||||
@ -27,7 +27,7 @@ import { WorkspaceProviderEffect } from '@/workspace/components/WorkspaceProvide
|
||||
import { i18n } from '@lingui/core';
|
||||
import { I18nProvider } from '@lingui/react';
|
||||
import { IconsProvider } from 'twenty-ui';
|
||||
import { messages as enMessages } from '../../locales/en/messages';
|
||||
import { dynamicActivate } from '~/utils/i18n/dynamicActivate';
|
||||
import { FullHeightStorybookLayout } from '../FullHeightStorybookLayout';
|
||||
|
||||
export type PageDecoratorArgs = {
|
||||
@ -66,10 +66,7 @@ const ApolloStorybookDevLogEffect = () => {
|
||||
return <></>;
|
||||
};
|
||||
|
||||
i18n.load({
|
||||
en: enMessages,
|
||||
});
|
||||
i18n.activate('en');
|
||||
dynamicActivate('en');
|
||||
|
||||
const Providers = () => {
|
||||
return (
|
||||
|
||||
7
packages/twenty-front/src/utils/i18n/dynamicActivate.ts
Normal file
7
packages/twenty-front/src/utils/i18n/dynamicActivate.ts
Normal file
@ -0,0 +1,7 @@
|
||||
import { i18n } from '@lingui/core';
|
||||
|
||||
export const dynamicActivate = async (locale: string) => {
|
||||
const { messages } = await import(`../../locales/generated/${locale}.ts`);
|
||||
i18n.load(locale, messages);
|
||||
i18n.activate(locale);
|
||||
};
|
||||
@ -8,6 +8,7 @@
|
||||
"src/**/*.jsx",
|
||||
"src/**/*.d.ts",
|
||||
"src/**/*.ts",
|
||||
"src/**/*.tsx"
|
||||
"src/**/*.tsx",
|
||||
"lingui.config.ts"
|
||||
]
|
||||
}
|
||||
|
||||
89
yarn.lock
89
yarn.lock
@ -17800,6 +17800,16 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/scope-manager@npm:8.20.0":
|
||||
version: 8.20.0
|
||||
resolution: "@typescript-eslint/scope-manager@npm:8.20.0"
|
||||
dependencies:
|
||||
"@typescript-eslint/types": "npm:8.20.0"
|
||||
"@typescript-eslint/visitor-keys": "npm:8.20.0"
|
||||
checksum: 10c0/a8074768d06c863169294116624a45c19377ff0b8635ad5fa4ae673b43cf704d1b9b79384ceef0ff0abb78b107d345cd90fe5572354daf6ad773fe462ee71e6a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/type-utils@npm:6.21.0":
|
||||
version: 6.21.0
|
||||
resolution: "@typescript-eslint/type-utils@npm:6.21.0"
|
||||
@ -17862,6 +17872,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/types@npm:8.20.0":
|
||||
version: 8.20.0
|
||||
resolution: "@typescript-eslint/types@npm:8.20.0"
|
||||
checksum: 10c0/21292d4ca089897015d2bf5ab99909a7b362902f63f4ba10696676823b50d00c7b4cd093b4b43fba01d12bc3feca3852d2c28528c06d8e45446b7477887dbee7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/typescript-estree@npm:5.62.0":
|
||||
version: 5.62.0
|
||||
resolution: "@typescript-eslint/typescript-estree@npm:5.62.0"
|
||||
@ -17937,6 +17954,24 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/typescript-estree@npm:8.20.0":
|
||||
version: 8.20.0
|
||||
resolution: "@typescript-eslint/typescript-estree@npm:8.20.0"
|
||||
dependencies:
|
||||
"@typescript-eslint/types": "npm:8.20.0"
|
||||
"@typescript-eslint/visitor-keys": "npm:8.20.0"
|
||||
debug: "npm:^4.3.4"
|
||||
fast-glob: "npm:^3.3.2"
|
||||
is-glob: "npm:^4.0.3"
|
||||
minimatch: "npm:^9.0.4"
|
||||
semver: "npm:^7.6.0"
|
||||
ts-api-utils: "npm:^2.0.0"
|
||||
peerDependencies:
|
||||
typescript: ">=4.8.4 <5.8.0"
|
||||
checksum: 10c0/54a2c1da7d1c5f7e865b941e8a3c98eb4b5f56ed8741664a84065173bde9602cdb8866b0984b26816d6af885c1528311c11e7286e869ed424483b74366514cbd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/utils@npm:5.62.0, @typescript-eslint/utils@npm:^5.45.0":
|
||||
version: 5.62.0
|
||||
resolution: "@typescript-eslint/utils@npm:5.62.0"
|
||||
@ -17986,6 +18021,21 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/utils@npm:^8.0.0":
|
||||
version: 8.20.0
|
||||
resolution: "@typescript-eslint/utils@npm:8.20.0"
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils": "npm:^4.4.0"
|
||||
"@typescript-eslint/scope-manager": "npm:8.20.0"
|
||||
"@typescript-eslint/types": "npm:8.20.0"
|
||||
"@typescript-eslint/typescript-estree": "npm:8.20.0"
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: ">=4.8.4 <5.8.0"
|
||||
checksum: 10c0/dd36c3b22a2adde1e1462aed0c8b4720f61859b4ebb0c3ef935a786a6b1cb0ec21eb0689f5a8debe8db26d97ebb979bab68d6f8fe7b0098e6200a485cfe2991b
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/utils@npm:^8.8.0":
|
||||
version: 8.10.0
|
||||
resolution: "@typescript-eslint/utils@npm:8.10.0"
|
||||
@ -18040,6 +18090,16 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@typescript-eslint/visitor-keys@npm:8.20.0":
|
||||
version: 8.20.0
|
||||
resolution: "@typescript-eslint/visitor-keys@npm:8.20.0"
|
||||
dependencies:
|
||||
"@typescript-eslint/types": "npm:8.20.0"
|
||||
eslint-visitor-keys: "npm:^4.2.0"
|
||||
checksum: 10c0/e95d8b2685e8beb6637bf2e9d06e4177a400d3a2b142ba749944690f969ee3186b750082fd9bf34ada82acf1c5dd5970201dfd97619029c8ecca85fb4b50dbd8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@ungap/structured-clone@npm:^1.0.0":
|
||||
version: 1.2.1
|
||||
resolution: "@ungap/structured-clone@npm:1.2.1"
|
||||
@ -26491,6 +26551,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-lingui@npm:^0.9.0":
|
||||
version: 0.9.0
|
||||
resolution: "eslint-plugin-lingui@npm:0.9.0"
|
||||
dependencies:
|
||||
"@typescript-eslint/utils": "npm:^8.0.0"
|
||||
micromatch: "npm:^4.0.0"
|
||||
peerDependencies:
|
||||
eslint: ^8.37.0 || ^9.0.0
|
||||
checksum: 10c0/6fb9225be36b7aceadd98f1ccb69eda9a1abf07238e40bee371dfa1394b5110cadb6266a2dc467598674c422cea3345f80f059ce274f09d17747aa23372ae788
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-plugin-prefer-arrow@npm:^1.2.3":
|
||||
version: 1.2.3
|
||||
resolution: "eslint-plugin-prefer-arrow@npm:1.2.3"
|
||||
@ -26686,6 +26758,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint-visitor-keys@npm:^4.2.0":
|
||||
version: 4.2.0
|
||||
resolution: "eslint-visitor-keys@npm:4.2.0"
|
||||
checksum: 10c0/2ed81c663b147ca6f578312919483eb040295bbab759e5a371953456c636c5b49a559883e2677112453728d66293c0a4c90ab11cab3428cf02a0236d2e738269
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"eslint@npm:^8.0.0, eslint@npm:^8.53.0":
|
||||
version: 8.57.0
|
||||
resolution: "eslint@npm:8.57.0"
|
||||
@ -45084,6 +45163,15 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ts-api-utils@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "ts-api-utils@npm:2.0.0"
|
||||
peerDependencies:
|
||||
typescript: ">=4.8.4"
|
||||
checksum: 10c0/6165e29a5b75bd0218e3cb0f9ee31aa893dbd819c2e46dbb086c841121eb0436ed47c2c18a20cb3463d74fd1fb5af62e2604ba5971cc48e5b38ebbdc56746dfc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ts-dedent@npm:^2.0.0, ts-dedent@npm:^2.2.0":
|
||||
version: 2.2.0
|
||||
resolution: "ts-dedent@npm:2.2.0"
|
||||
@ -45829,6 +45917,7 @@ __metadata:
|
||||
eslint-config-prettier: "npm:^9.1.0"
|
||||
eslint-plugin-import: "npm:2.29.1"
|
||||
eslint-plugin-jsx-a11y: "npm:^6.8.0"
|
||||
eslint-plugin-lingui: "npm:^0.9.0"
|
||||
eslint-plugin-prefer-arrow: "npm:^1.2.3"
|
||||
eslint-plugin-prettier: "npm:^5.1.2"
|
||||
eslint-plugin-project-structure: "npm:^3.9.1"
|
||||
|
||||
Reference in New Issue
Block a user