## Changes ### RTL Support (automatic, locale-driven) - Add `rtl?: boolean` metadata to locale definitions in `SUPPORTED_LANGUAGES` - Set `rtl: true` for Arabic (`ar`), Persian (`fa`), and Urdu (`ur`) - Automatically set `document.documentElement.dir` based on locale RTL metadata on language change - Remove hardcoded `lang="en"` from HTML template — JS now controls both `lang` and `dir` ### Arabic Translations - Add 100 missing keys to `ar.json` (Calendar integration, Doc Analytics, MCP Server, AI Chat, and more) - Arabic locale now has 2,313/2,313 keys (100% coverage, matches `en.json` exactly) ## Testing Switching to Arabic/Persian/Urdu now automatically flips the entire UI layout to RTL without any manual feature flag. Fixes #7099 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added Right-to-Left (RTL) support for Arabic, Persian, and Urdu with automatic document direction and language attributes when a language is selected. * **Refactor** * Centralized and reordered internal language handling so document language and direction are applied earlier and consistently. * **Chore** * Set a default text direction attribute on the base HTML template. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
49 lines
1.8 KiB
HTML
49 lines
1.8 KiB
HTML
<!doctype html>
|
|
<html lang="en" dir="ltr">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta
|
|
name="viewport"
|
|
content="width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=<%= VIEWPORT_FIT %>"
|
|
/>
|
|
|
|
<meta name="mobile-web-app-capable" content="yes" />
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
<meta
|
|
name="apple-mobile-web-app-status-bar-style"
|
|
content="black-translucent"
|
|
/>
|
|
|
|
<title>AFFiNE</title>
|
|
<meta name="theme-color" content="#fafafa" />
|
|
<%= PRECONNECT %>
|
|
<link rel="manifest" href="/manifest.json" />
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
|
|
<link rel="icon" sizes="192x192" href="/favicon-192.png" />
|
|
<link rel="shortcut icon" href="/favicon.ico?v=2" />
|
|
<meta name="emotion-insertion-point" content="" />
|
|
<meta property="description" content="<%= DESCRIPTION %>" />
|
|
<meta name="twitter:card" content="summary_large_image" />
|
|
<meta name="twitter:url" content="https://app.affine.pro/" />
|
|
<meta
|
|
name="twitter:title"
|
|
content="AFFiNE: There can be more than Notion and Miro."
|
|
/>
|
|
<meta name="twitter:description" content="<%= DESCRIPTION %>" />
|
|
<meta name="twitter:site" content="@AffineOfficial" />
|
|
<meta name="twitter:image" content="https://affine.pro/og.jpeg" />
|
|
<meta
|
|
property="og:title"
|
|
content="AFFiNE: There can be more than Notion and Miro."
|
|
/>
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:description" content="<%= DESCRIPTION %>" />
|
|
<meta property="og:url" content="https://app.affine.pro/" />
|
|
<meta property="og:image" content="https://affine.pro/og.jpeg" />
|
|
</head>
|
|
|
|
<body>
|
|
<div id="app" data-version="<%= GIT_SHORT_SHA %>"></div>
|
|
</body>
|
|
</html>
|