-
-
-
- {t['com.affine.integration.calendar.name']()}
-
- {providerOptions.length ? (
-
-
+
+ >
);
};
diff --git a/packages/frontend/i18n/src/i18n-completenesses.json b/packages/frontend/i18n/src/i18n-completenesses.json
index 33851f051..913a21231 100644
--- a/packages/frontend/i18n/src/i18n-completenesses.json
+++ b/packages/frontend/i18n/src/i18n-completenesses.json
@@ -1,27 +1,27 @@
{
- "ar": 98,
- "ca": 99,
+ "ar": 97,
+ "ca": 98,
"da": 4,
- "de": 99,
- "el-GR": 98,
+ "de": 98,
+ "el-GR": 97,
"en": 100,
- "es-AR": 98,
- "es-CL": 99,
- "es": 98,
- "fa": 98,
- "fr": 99,
+ "es-AR": 97,
+ "es-CL": 98,
+ "es": 97,
+ "fa": 97,
+ "fr": 98,
"hi": 2,
- "it-IT": 99,
+ "it-IT": 98,
"it": 1,
- "ja": 98,
- "ko": 99,
+ "ja": 97,
+ "ko": 98,
"nb-NO": 48,
- "pl": 100,
- "pt-BR": 98,
- "ru": 99,
- "sv-SE": 98,
- "uk": 98,
+ "pl": 98,
+ "pt-BR": 97,
+ "ru": 98,
+ "sv-SE": 97,
+ "uk": 97,
"ur": 2,
- "zh-Hans": 100,
- "zh-Hant": 98
+ "zh-Hans": 99,
+ "zh-Hant": 97
}
diff --git a/packages/frontend/i18n/src/i18n.gen.ts b/packages/frontend/i18n/src/i18n.gen.ts
index af1c1d9d6..790d5e730 100644
--- a/packages/frontend/i18n/src/i18n.gen.ts
+++ b/packages/frontend/i18n/src/i18n.gen.ts
@@ -8281,6 +8281,114 @@ export function useAFFiNEI18N(): {
* `All day`
*/
["com.affine.integration.calendar.all-day"](): string;
+ /**
+ * `Failed to load calendar accounts`
+ */
+ ["com.affine.integration.calendar.account.load-error"](): string;
+ /**
+ * `Failed to load calendar providers`
+ */
+ ["com.affine.integration.calendar.provider.load-error"](): string;
+ /**
+ * `Failed to start calendar authorization`
+ */
+ ["com.affine.integration.calendar.auth.start-error"](): string;
+ /**
+ * `Failed to unlink calendar account`
+ */
+ ["com.affine.integration.calendar.account.unlink-error"](): string;
+ /**
+ * `Unlink`
+ */
+ ["com.affine.integration.calendar.account.unlink"](): string;
+ /**
+ * `Link`
+ */
+ ["com.affine.integration.calendar.account.link"](): string;
+ /**
+ * `No calendar accounts linked yet.`
+ */
+ ["com.affine.integration.calendar.account.linked-empty"](): string;
+ /**
+ * `Authorization failed: {{error}}`
+ */
+ ["com.affine.integration.calendar.account.status.failed"](options: {
+ readonly error: string;
+ }): string;
+ /**
+ * `Authorization failed. Please reconnect your account.`
+ */
+ ["com.affine.integration.calendar.account.status.failed-reconnect"](): string;
+ /**
+ * `{{count}} calendar`
+ */
+ ["com.affine.integration.calendar.account.count"](options: {
+ readonly count: string;
+ }): string;
+ /**
+ * `Link CalDAV account`
+ */
+ ["com.affine.integration.calendar.caldav.link.title"](): string;
+ /**
+ * `Failed to link CalDAV account`
+ */
+ ["com.affine.integration.calendar.caldav.link.failed"](): string;
+ /**
+ * `Provider`
+ */
+ ["com.affine.integration.calendar.caldav.field.provider"](): string;
+ /**
+ * `Select provider`
+ */
+ ["com.affine.integration.calendar.caldav.field.provider.placeholder"](): string;
+ /**
+ * `Please select a provider.`
+ */
+ ["com.affine.integration.calendar.caldav.field.provider.error"](): string;
+ /**
+ * `Username`
+ */
+ ["com.affine.integration.calendar.caldav.field.username"](): string;
+ /**
+ * `email@example.com`
+ */
+ ["com.affine.integration.calendar.caldav.field.username.placeholder"](): string;
+ /**
+ * `Username is required.`
+ */
+ ["com.affine.integration.calendar.caldav.field.username.error"](): string;
+ /**
+ * `Password`
+ */
+ ["com.affine.integration.calendar.caldav.field.password"](): string;
+ /**
+ * `Password or app-specific password`
+ */
+ ["com.affine.integration.calendar.caldav.field.password.placeholder"](): string;
+ /**
+ * `Password is required.`
+ */
+ ["com.affine.integration.calendar.caldav.field.password.error"](): string;
+ /**
+ * `Display name (optional)`
+ */
+ ["com.affine.integration.calendar.caldav.field.displayName"](): string;
+ /**
+ * `My CalDAV`
+ */
+ ["com.affine.integration.calendar.caldav.field.displayName.placeholder"](): string;
+ /**
+ * `App-specific password required.`
+ */
+ ["com.affine.integration.calendar.caldav.hint.app-password"](): string;
+ /**
+ * `Learn more`
+ */
+ ["com.affine.integration.calendar.caldav.hint.learn-more"](): string;
+ /**
+ * `Provider setup guide`
+ */
+ ["com.affine.integration.calendar.caldav.hint.guide"](): string;
/**
* `New doc`
*/
diff --git a/packages/frontend/i18n/src/resources/en.json b/packages/frontend/i18n/src/resources/en.json
index 8d5110535..63e3d6964 100644
--- a/packages/frontend/i18n/src/resources/en.json
+++ b/packages/frontend/i18n/src/resources/en.json
@@ -2078,6 +2078,32 @@
"com.affine.integration.calendar.new-url-label": "Calendar URL",
"com.affine.integration.calendar.save-error": "An error occurred while saving the calendar settings",
"com.affine.integration.calendar.all-day": "All day",
+ "com.affine.integration.calendar.account.load-error": "Failed to load calendar accounts",
+ "com.affine.integration.calendar.provider.load-error": "Failed to load calendar providers",
+ "com.affine.integration.calendar.auth.start-error": "Failed to start calendar authorization",
+ "com.affine.integration.calendar.account.unlink-error": "Failed to unlink calendar account",
+ "com.affine.integration.calendar.account.unlink": "Unlink",
+ "com.affine.integration.calendar.account.link": "Link",
+ "com.affine.integration.calendar.account.linked-empty": "No calendar accounts linked yet.",
+ "com.affine.integration.calendar.account.status.failed": "Authorization failed: {{error}}",
+ "com.affine.integration.calendar.account.status.failed-reconnect": "Authorization failed. Please reconnect your account.",
+ "com.affine.integration.calendar.account.count": "{{count}} calendar",
+ "com.affine.integration.calendar.caldav.link.title": "Link CalDAV account",
+ "com.affine.integration.calendar.caldav.link.failed": "Failed to link CalDAV account",
+ "com.affine.integration.calendar.caldav.field.provider": "Provider",
+ "com.affine.integration.calendar.caldav.field.provider.placeholder": "Select provider",
+ "com.affine.integration.calendar.caldav.field.provider.error": "Please select a provider.",
+ "com.affine.integration.calendar.caldav.field.username": "Username",
+ "com.affine.integration.calendar.caldav.field.username.placeholder": "email@example.com",
+ "com.affine.integration.calendar.caldav.field.username.error": "Username is required.",
+ "com.affine.integration.calendar.caldav.field.password": "Password",
+ "com.affine.integration.calendar.caldav.field.password.placeholder": "Password or app-specific password",
+ "com.affine.integration.calendar.caldav.field.password.error": "Password is required.",
+ "com.affine.integration.calendar.caldav.field.displayName": "Display name (optional)",
+ "com.affine.integration.calendar.caldav.field.displayName.placeholder": "My CalDAV",
+ "com.affine.integration.calendar.caldav.hint.app-password": "App-specific password required.",
+ "com.affine.integration.calendar.caldav.hint.learn-more": "Learn more",
+ "com.affine.integration.calendar.caldav.hint.guide": "Provider setup guide",
"com.affine.integration.calendar.new-doc": "New doc",
"com.affine.integration.calendar.show-events": "Show calendar events",
"com.affine.integration.calendar.show-events-desc": "Enabling this setting allows you to connect your calendar events to your Journal in AFFiNE",
diff --git a/tools/@types/build-config/__all.d.ts b/tools/@types/build-config/__all.d.ts
index c03f816dd..d453e0430 100644
--- a/tools/@types/build-config/__all.d.ts
+++ b/tools/@types/build-config/__all.d.ts
@@ -37,8 +37,6 @@ declare interface BUILD_CONFIG_TYPE {
CAPTCHA_SITE_KEY: string;
SENTRY_DSN: string;
- MIXPANEL_TOKEN: string;
- GA4_MEASUREMENT_ID: string;
}
declare var BUILD_CONFIG: BUILD_CONFIG_TYPE;
diff --git a/tools/utils/src/build-config.ts b/tools/utils/src/build-config.ts
index ab4f9ffa6..fb832b588 100644
--- a/tools/utils/src/build-config.ts
+++ b/tools/utils/src/build-config.ts
@@ -53,8 +53,6 @@ export function getBuildConfig(
linkPreviewUrl: '/api/worker/link-preview',
CAPTCHA_SITE_KEY: process.env.CAPTCHA_SITE_KEY ?? '',
SENTRY_DSN: process.env.SENTRY_DSN ?? '',
- MIXPANEL_TOKEN: process.env.MIXPANEL_TOKEN ?? '',
- GA4_MEASUREMENT_ID: process.env.GA4_MEASUREMENT_ID ?? '',
};
},
get beta() {