-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
148 lines (139 loc) · 7.38 KB
/
Copy pathindex.html
File metadata and controls
148 lines (139 loc) · 7.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<!DOCTYPE html>
<html lang="ar" dir="rtl" data-theme="dark">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>ض</text></svg>" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="color-scheme" content="dark light" />
<!-- Primary Meta Tags -->
<title>دليل المصادر المفتوحة للغة العربية | برمجيات ونماذج حوسبة اللغة العربية</title>
<meta name="title" content="دليل المصادر المفتوحة للغة العربية | برمجيات ونماذج حوسبة اللغة العربية" />
<meta name="description" content="الدليل الحي والمحدث تلقائياً لأبرز المكتبات، النماذج، والأدوات البرمجية مفتوحة المصدر لخدمة اللغة العربية والذكاء الاصطناعي." />
<meta name="keywords" content="مصادر مفتوحة, اللغة العربية, ذكاء اصطناعي, معالجة اللغة الطبيعية, نماذج لغوية, خطوط عربية, تشكيل, Arabic open source, Arabic NLP, Arabic LLM" />
<meta name="author" content="O2sa" />
<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1" />
<!-- Canonical & Multilingual Hreflang Tags (Google Multilingual Guidelines) -->
<link rel="canonical" href="https://aros.osamamabkhot.dev/ar/" />
<link rel="alternate" hreflang="ar" href="https://aros.osamamabkhot.dev/ar/" />
<link rel="alternate" hreflang="en" href="https://aros.osamamabkhot.dev/en/" />
<link rel="alternate" hreflang="x-default" href="https://aros.osamamabkhot.dev/" />
<!-- Open Graph / Facebook -->
<meta property="og:type" content="website" />
<meta property="og:url" content="https://aros.osamamabkhot.dev/ar/" />
<meta property="og:site_name" content="دليل البرمجيات العربية مفتوحة المصدر | Arabic Open Source Directory" />
<meta property="og:title" content="دليل المصادر المفتوحة للغة العربية | برمجيات ونماذج حوسبة اللغة العربية" />
<meta property="og:description" content="الدليل الحي والمحدث تلقائياً لأبرز المكتبات، النماذج، والأدوات البرمجية مفتوحة المصدر لخدمة اللغة العربية والذكاء الاصطناعي." />
<meta property="og:locale" content="ar_AR" />
<meta property="og:locale:alternate" content="en_US" />
<!-- Twitter Cards -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:url" content="https://aros.osamamabkhot.dev/ar/" />
<meta name="twitter:title" content="دليل المصادر المفتوحة للغة العربية | Arabic Open Source Directory" />
<meta name="twitter:description" content="الدليل الحي والمحدث تلقائياً لأبرز المكتبات، النماذج، والأدوات البرمجية مفتوحة المصدر لخدمة اللغة العربية والذكاء الاصطناعي." />
<!-- Schema.org JSON-LD Structured Data for Google Indexing -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebSite",
"@id": "https://aros.osamamabkhot.dev/#website",
"url": "https://aros.osamamabkhot.dev/",
"name": "دليل البرمجيات العربية مفتوحة المصدر",
"alternateName": "Arabic Open Source Directory",
"description": "الدليل الشامل والمحدث تلقائياً لأبرز المشاريع والمكتبات البرمجية لخدمة اللغة العربية والذكاء الاصطناعي.",
"inLanguage": ["ar", "en"],
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://aros.osamamabkhot.dev/ar/?search={search_term_string}"
},
"query-input": "required name=search_term_string"
}
},
{
"@type": "CollectionPage",
"@id": "https://aros.osamamabkhot.dev/#webpage",
"url": "https://aros.osamamabkhot.dev/ar/",
"name": "دليل المصادر المفتوحة للغة العربية",
"isPartOf": {
"@id": "https://aros.osamamabkhot.dev/#website"
},
"inLanguage": "ar",
"about": {
"@type": "Thing",
"name": "Arabic Open Source Software & NLP"
}
}
]
}
</script>
<!-- Critical Anti-FOUC Theme & Direction Script -->
<style>
html {
color-scheme: dark light;
}
html, html[data-theme="dark"] {
background-color: #0b0f19;
color: #f8fafc;
}
html[data-theme="light"] {
background-color: #f8fafc;
color: #0f172a;
}
</style>
<script>
(function() {
try {
// 1. Language from URL path (/ar or /en) has highest priority
var path = window.location.pathname.toLowerCase();
var pathParts = path.split('/');
var pathLang = null;
for (var p = 0; p < pathParts.length; p++) {
if (pathParts[p] === 'ar' || pathParts[p] === 'en') {
pathLang = pathParts[p];
break;
}
}
var lang = pathLang;
if (!lang) {
var savedLang = localStorage.getItem('ar_dir_lang');
if (savedLang === 'ar' || savedLang === 'en') {
lang = savedLang;
} else {
var navLangs = navigator.languages || [navigator.language || ''];
var prefersArabic = false;
for (var i = 0; i < navLangs.length; i++) {
if (navLangs[i] && navLangs[i].toLowerCase().indexOf('ar') === 0) {
prefersArabic = true;
break;
}
}
lang = prefersArabic ? 'ar' : 'en';
}
}
document.documentElement.lang = lang;
document.documentElement.dir = (lang === 'ar' ? 'rtl' : 'ltr');
// 2. Theme Detection
var savedTheme = localStorage.getItem('ar_dir_theme');
if (savedTheme === 'light') {
document.documentElement.setAttribute('data-theme', 'light');
} else {
document.documentElement.setAttribute('data-theme', 'dark');
}
} catch (e) {
document.documentElement.setAttribute('data-theme', 'dark');
}
})();
</script>
<!-- Google Fonts: IBM Plex Sans Arabic & Plus Jakarta Sans -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Arabic:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap" rel="stylesheet" />
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>