diff --git a/app/client/public/404.html b/app/client/public/404.html index 3d7109f0d3e5..0f5f7978d0e0 100644 --- a/app/client/public/404.html +++ b/app/client/public/404.html @@ -1,8 +1,9 @@ - +
+ diff --git a/app/client/public/index.html b/app/client/public/index.html index 101041e32833..2cc6dc4f278b 100755 --- a/app/client/public/index.html +++ b/app/client/public/index.html @@ -1,7 +1,8 @@ - + + { .APPSMITH_DISABLE_IFRAME_WIDGET_SANDBOX ? process.env.APPSMITH_DISABLE_IFRAME_WIDGET_SANDBOX.length > 0 : false, + defaultHtmlLang: process.env.APPSMITH_DEFAULT_HTML_LANG || "", pricingUrl: process.env.REACT_APP_PRICING_URL || "", customerPortalUrl: process.env.REACT_APP_CUSTOMER_PORTAL_URL || "", }; @@ -255,6 +257,10 @@ export const getAppsmithConfigs = (): AppsmithUIConfigs => { ENV_CONFIG.disableIframeWidgetSandbox || APPSMITH_FEATURE_CONFIGS?.disableIframeWidgetSandbox || false, + defaultHtmlLang: + ENV_CONFIG.defaultHtmlLang || + APPSMITH_FEATURE_CONFIGS?.defaultHtmlLang || + "", pricingUrl: ENV_CONFIG.pricingUrl || APPSMITH_FEATURE_CONFIGS?.pricingUrl || "", customerPortalUrl: diff --git a/app/client/src/ce/configs/types.ts b/app/client/src/ce/configs/types.ts index 8306e7cb5a04..2c021c5ea8a1 100644 --- a/app/client/src/ce/configs/types.ts +++ b/app/client/src/ce/configs/types.ts @@ -58,6 +58,7 @@ export interface AppsmithUIConfigs { }; appsmithSupportEmail: string; disableIframeWidgetSandbox: boolean; + defaultHtmlLang: string; pricingUrl: string; customerPortalUrl: string; } diff --git a/app/client/src/ce/constants/messages.ts b/app/client/src/ce/constants/messages.ts index 9a9640abeb18..544a8616f064 100644 --- a/app/client/src/ce/constants/messages.ts +++ b/app/client/src/ce/constants/messages.ts @@ -1962,6 +1962,9 @@ export const GENERAL_SETTINGS_NAME_EMPTY_MESSAGE = () => export const GENERAL_SETTINGS_NAME_SPECIAL_CHARACTER_ERROR = () => "Only alphanumeric or '-()' are allowed"; export const GENERAL_SETTINGS_APP_ICON_LABEL = () => "App icon"; +export const GENERAL_SETTINGS_APP_LANGUAGE_LABEL = () => "HTML language"; +export const GENERAL_SETTINGS_APP_LANGUAGE_TOOLTIP = () => + "Sets the lang attribute on the published app. This tells browsers what language your content is in and prevents unwanted auto-translation. Use a BCP 47 code (e.g. en, de, fr, ja)."; export const GENERAL_SETTINGS_APP_URL_LABEL = () => "App slug"; export const GENERAL_SETTINGS_APP_URL_PLACEHOLDER = () => "app-url"; export const GENERAL_SETTINGS_APP_URL_PLACEHOLDER_FETCHING = () => diff --git a/app/client/src/entities/Application/types.ts b/app/client/src/entities/Application/types.ts index d9460656c9db..1cdd9fcc1f3c 100644 --- a/app/client/src/entities/Application/types.ts +++ b/app/client/src/entities/Application/types.ts @@ -38,6 +38,7 @@ export interface ApplicationPayload { appPositioning?: LayoutSystemTypeConfig; navigationSetting?: NavigationSetting; themeSetting?: ThemeSetting; + htmlLang?: string; }; collapseInvisibleWidgets?: boolean; evaluationVersion?: EvaluationVersion; diff --git a/app/client/src/pages/AppIDE/components/AppSettings/AppSettings.tsx b/app/client/src/pages/AppIDE/components/AppSettings/AppSettings.tsx index c02a479c1508..8b3d94d418b6 100644 --- a/app/client/src/pages/AppIDE/components/AppSettings/AppSettings.tsx +++ b/app/client/src/pages/AppIDE/components/AppSettings/AppSettings.tsx @@ -206,7 +206,7 @@ function AppSettings() { DIVIDER_AND_SPACING_HEIGHT; return ( -