PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 3.6.5
AI Engine – The Chatbot, AI Framework & MCP for WordPress v3.6.5
3.6.4 3.6.5 3.6.3 3.6.2 3.6.1 3.6.0 3.5.9 3.5.8 3.5.7 3.5.6 3.5.5 3.5.4 3.5.3 3.5.2 3.5.1 3.5.0 3.4.9 3.4.8 3.4.7 0.2.1 1.6.91 0.2.2 1.6.92 0.2.3 1.6.93 0.2.4 1.6.94 0.2.5 1.6.95 0.2.6 1.6.96 0.2.7 1.6.97 0.2.8 1.6.98 0.2.9 1.6.99 0.3.0 1.7.0 0.3.1 1.7.1 0.3.2 1.7.2 0.3.3 1.7.3 0.3.4 1.7.4 0.3.5 1.7.5 0.3.6 1.7.6 0.4.0 1.7.7 0.4.1 1.7.8 0.4.2 1.7.9 0.4.3 1.8.0 0.4.4 1.8.1 0.4.5 1.8.2 0.4.6 1.8.3 0.4.7 1.8.4 0.4.8 1.8.5 0.4.9 1.8.6 0.5.0 1.8.7 0.5.1 1.8.8 0.5.2 1.8.9 0.5.3 1.9.0 0.5.4 1.9.1 0.5.5 1.9.2 0.5.6 1.9.3 0.5.7 1.9.4 0.5.8 1.9.5 0.5.9 1.9.6 0.6.0 1.9.7 0.6.1 1.9.8 0.6.2 1.9.81 0.6.3 1.9.82 0.6.4 1.9.83 0.6.5 1.9.84 0.6.6 1.9.85 0.6.7 1.9.86 0.6.8 1.9.87 0.6.9 1.9.88 0.7.0 1.9.89 0.7.1 1.9.90 0.7.2 1.9.91 0.7.3 1.9.92 0.7.4 1.9.93 0.7.5 1.9.94 0.7.6 1.9.95 0.7.7 1.9.96 0.7.8 1.9.97 0.7.9 1.9.98 0.8.0 1.9.99 0.8.1 2.0.0 0.8.2 2.0.1 0.8.3 2.0.2 0.8.4 2.0.3 0.8.5 2.0.4 0.8.6 2.0.5 0.8.7 2.0.6 0.8.8 2.0.7 0.8.9 2.0.8 0.9.0 2.0.9 0.9.2 2.1.0 0.9.3 2.1.1 0.9.4 2.1.2 0.9.5 2.1.3 0.9.6 2.1.4 0.9.7 2.1.5 0.9.8 2.1.6 0.9.81 2.1.7 0.9.82 2.1.8 0.9.83 2.1.9 0.9.84 2.2.0 0.9.85 2.2.1 0.9.86 2.2.2 0.9.87 2.2.3 0.9.88 2.2.4 0.9.89 2.2.5 0.9.9 2.2.51 0.9.91 2.2.52 0.9.92 2.2.53 0.9.93 2.2.54 0.9.94 2.2.56 0.9.95 2.2.57 0.9.96 2.2.6 0.9.97 2.2.60 0.9.98 2.2.61 0.9.99 2.2.62 1.0.0 2.2.63 1.0.01 2.2.70 1.0.1 2.2.80 1.0.2 2.2.81 1.0.3 2.2.90 1.0.4 2.2.91 1.0.5 2.2.92 1.0.6 2.2.93 1.0.7 2.2.94 1.0.8 2.2.95 1.0.9 2.3.0 1.1.0 2.3.1 1.1.1 2.3.2 1.1.2 2.3.3 1.1.3 2.3.4 1.1.4 2.3.5 1.1.5 2.3.6 1.1.6 2.3.7 1.1.7 2.3.8 1.1.8 2.3.9 1.1.9 2.4.0 1.2.0 2.4.1 1.2.1 2.4.2 1.2.2 2.4.3 1.2.21 2.4.4 1.2.3 2.4.5 1.2.30 2.4.6 1.3.0 2.4.7 1.3.1 2.4.8 1.3.2 2.4.9 1.3.3 2.5.0 1.3.31 2.5.1 1.3.32 2.5.2 1.3.33 2.5.3 1.3.34 2.5.4 1.3.35 2.5.5 1.3.36 2.5.6 1.3.37 2.5.7 1.3.38 2.5.8 1.3.39 2.5.9 1.3.40 2.6.0 1.3.41 2.6.1 1.3.42 2.6.2 1.3.43 2.6.3 1.3.44 2.6.5 1.3.45 2.6.6 1.3.46 2.6.7 1.3.47 2.6.8 1.3.48 2.6.9 1.3.49 2.7.0 1.3.50 2.7.1 1.3.51 2.7.2 1.3.52 2.7.3 1.3.53 2.7.4 1.3.54 2.7.5 1.3.56 2.7.6 1.3.57 2.7.7 1.3.58 2.7.8 1.3.59 2.7.9 1.3.60 2.8.0 1.3.61 2.8.1 1.3.62 2.8.2 1.3.63 2.8.3 1.3.64 2.8.4 1.3.65 2.8.5 1.3.66 2.8.6 1.3.67 2.8.7 1.3.68 2.8.8 1.3.69 2.8.9 1.3.70 2.9.0 1.3.71 2.9.1 1.3.72 2.9.2 1.3.73 2.9.3 1.3.74 2.9.4 1.3.75 2.9.5 1.3.76 2.9.6 1.3.77 2.9.7 1.3.78 2.9.8 1.3.79 2.9.9 1.3.80 3.0.0 1.3.81 3.0.1 1.3.82 3.0.2 1.3.83 3.0.3 1.3.84 3.0.4 1.3.85 3.0.5 1.3.86 3.0.6 1.3.87 3.0.7 1.3.88 3.0.8 1.3.89 3.0.9 1.3.90 3.1.0 1.3.91 3.1.1 1.3.92 3.1.2 1.3.93 3.1.3 1.3.94 3.1.4 1.3.95 3.1.5 1.3.96 3.1.6 1.3.97 3.1.7 1.3.98 3.1.8 1.3.99 3.1.9 1.4.0 3.2.0 1.4.1 3.2.1 1.4.2 3.2.2 1.4.3 3.2.3 1.4.4 3.2.4 1.4.5 3.2.5 1.4.6 3.2.6 1.4.7 3.2.7 1.4.8 3.2.8 1.4.9 3.2.9 1.5.0 3.3.0 1.5.1 3.3.1 1.5.2 3.3.2 1.5.3 3.3.3 1.5.4 3.3.4 1.5.5 3.3.5 1.5.6 3.3.6 1.5.7 3.3.7 1.5.8 3.3.8 1.5.9 3.3.9 1.6.0 3.4.0 1.6.1 3.4.1 1.6.2 3.4.2 1.6.3 3.4.3 1.6.5 3.4.4 1.6.51 3.4.5 1.6.52 3.4.6 1.6.53 1.6.54 1.6.55 1.6.56 1.6.57 1.6.58 1.6.59 1.6.60 1.6.61 1.6.62 1.6.63 1.6.64 1.6.65 1.6.66 1.6.67 1.6.68 trunk 1.6.69 0.0.1 1.6.70 0.0.2 1.6.71 0.0.3 1.6.72 0.0.4 1.6.73 0.0.5 1.6.74 0.0.6 1.6.75 0.0.7 1.6.76 0.0.8 1.6.77 0.0.9 1.6.78 0.1.0 1.6.79 0.1.1 1.6.81 0.1.2 1.6.82 0.1.3 1.6.83 0.1.4 1.6.84 0.1.5 1.6.85 0.1.6 1.6.86 0.1.7 1.6.87 0.1.8 1.6.88 0.1.9 1.6.89 0.2.0 1.6.90
ai-engine / constants / init.php
ai-engine / constants Last commit date
engines.php 2 months ago init.php 22 hours ago models.php 2 days ago types.php 1 year ago
init.php
449 lines
1 <?php
2
3 require_once( MWAI_PATH . '/constants/engines.php' );
4 require_once( MWAI_PATH . '/constants/models.php' );
5
6 define( 'MWAI_CHATBOT_DEFAULT_PARAMS', [
7 // UI Parameters
8 'aiName' => 'AI: ',
9 'userName' => 'User: ',
10 'guestName' => 'Guest: ',
11 'textSend' => 'Send',
12 'textClear' => 'Clear',
13 'textInputPlaceholder' => 'Type your message...',
14 'textInputMaxLength' => 512,
15 'textCompliance' => '',
16 'startSentence' => 'Hi! How can I help you?',
17 'themeId' => 'chatgpt',
18 'window' => false,
19 'icon' => '',
20 'iconText' => '',
21 'iconTextDelay' => 1,
22 'iconAlt' => 'AI Engine Chatbot',
23 'iconPosition' => 'bottom-right',
24 'centerOpen' => false,
25 'width' => '',
26 'openDelay' => '',
27 'iconBubble' => false,
28 'windowAnimation' => 'zoom',
29 'fullscreen' => false,
30 'copyButton' => false,
31 'pdfButton' => false,
32 'headerSubtitle' => 'Discuss with',
33 'localMemory' => true,
34 'multiUpload' => false,
35 // UI Builder Parameters
36 'containerType' => 'standard',
37 'headerType' => 'standard',
38 'messagesType' => 'standard',
39 'inputType' => 'standard',
40 'footerType' => 'standard',
41 // Chatbot System Parameters
42 'botId' => null,
43 'instructions' => 'Converse as if you were an AI assistant. Be friendly, creative.',
44 'scope' => 'chatbot',
45 'mode' => 'chat',
46 'contentAware' => false,
47 'embeddingsEnvId' => '',
48 // AI Parameters
49 'model' => MWAI_FALLBACK_MODEL,
50 'temperature' => 0.8,
51 'maxMessages' => 15,
52 'maxTokens' => 4096,
53 'maxResults' => 1,
54 'apiKey' => null,
55 'voice' => null,
56 // Orchestration
57 'functions' => [],
58 'mcpServers' => [],
59 // Advanced
60 'historyStrategy' => null,
61 // Cross-Site
62 'crossSite' => [
63 'enabled' => false,
64 'allowedDomains' => []
65 ]
66 ] );
67
68 define( 'MWAI_LANGUAGES', [
69 'en' => 'English',
70 'de' => 'German',
71 'fr' => 'French',
72 'es' => 'Spanish',
73 'it' => 'Italian',
74 'zh' => 'Chinese',
75 'ja' => 'Japanese',
76 'pt' => 'Portuguese',
77 //'ru' => 'Russian',
78 ] );
79
80 define( 'MWAI_LIMITS', [
81 'enabled' => true,
82 'guests' => [
83 'credits' => 3,
84 'creditType' => 'queries',
85 'timeFrame' => 'day',
86 'isAbsolute' => false,
87 // Shown to anonymous visitors: keep it visitor-friendly, no admin jargon.
88 // Admins can customize it under Insights > Limits > Guests.
89 'overLimitMessage' => 'You have reached the usage limit for now. Please come back later.',
90 ],
91 'users' => [
92 'credits' => 10,
93 'creditType' => 'price',
94 'timeFrame' => 'month',
95 'isAbsolute' => false,
96 'overLimitMessage' => 'You have reached your usage limit for now. Please come back later.',
97 'ignoredUsers' => 'administrator,editor',
98 ],
99 'system' => [
100 'credits' => 20,
101 'creditType' => 'price',
102 'timeFrame' => 'month',
103 'isAbsolute' => false,
104 'overLimitMessage' => 'Our chatbot went to sleep. Please try again later.',
105 'ignoredUsers' => '',
106 ],
107 ] );
108
109 define( 'MWAI_OPTIONS', [
110 'module_suggestions' => true,
111 'module_chatbots' => true,
112 'module_search' => false,
113 'search_frontend_method' => 'wordpress',
114 'search_frontend_env_id' => null,
115 'search_website_context' => 'This is a website with useful information and content.',
116 'module_library_search' => false,
117 'library_search_env_id' => null,
118 'module_forms' => false,
119 'module_workspace' => false,
120 // Which features the Workspace composer offers (admin-level; all on by default).
121 'workspace_image' => true,
122 'workspace_web_search' => true,
123 'workspace_wp_tools' => true,
124 'workspace_mcp' => true,
125 'workspace_functions' => true,
126 'workspace_knowledge' => true,
127 'forms_editor' => true,
128 'module_assistant' => true,
129 'module_playground' => true,
130 'module_generator_content' => true,
131 'module_generator_images' => true,
132 'module_generator_videos' => false,
133 'module_moderation' => false,
134 'module_statistics' => false,
135 'statistics_retention_days' => 'Never',
136 // TODO: Remove module_finetunes after 2027-02 (OpenAI ends fine-tune job creation on 2027-01-06).
137 'module_finetunes' => false,
138 'module_embeddings' => false,
139 'module_transcription' => false,
140 'module_advisor' => false,
141 'module_orchestration' => false,
142 'module_mcp' => false,
143 'speech_recognition' => false,
144 'speech_synthesis' => false,
145 'chatbot_gdpr_consent' => false,
146 'chatbot_gdpr_text' => 'By using this chatbot, you agree to the recording and processing of your data by our website and the external services it might use (LLMs, vector databases, etc.).',
147 'chatbot_gdpr_button' => 'I understand',
148 'chatbot_typewriter' => false,
149 'chatbot_discussions' => false,
150 'chatbot_discussions_titling' => true,
151 'chatbot_discussions_paging' => 10,
152 'chatbot_discussions_refresh_interval' => 5,
153 'chatbot_discussions_retention_days' => 90,
154 'chatbot_discussions_metadata_enabled' => true,
155 'chatbot_discussions_metadata_start_date' => true,
156 'chatbot_discussions_metadata_last_update' => true,
157 'chatbot_discussions_metadata_message_count' => true,
158 'chatbot_moderation' => false,
159 'syntax_highlight' => false,
160 'event_logs' => false,
161 'privacy_first' => false,
162 'limits' => MWAI_LIMITS,
163
164 // Settings for Images
165 'image_local_upload' => 'uploads',
166 'image_remote_upload' => 'data',
167 'image_expires' => 1 * HOUR_IN_SECONDS,
168
169 'ai_models' => [],
170 'ai_models_usage' => [],
171 'ai_streaming' => true,
172 'ai_default_env' => null,
173 'ai_default_model' => MWAI_FALLBACK_MODEL,
174 'ai_envs' => [
175 [
176 'name' => 'OpenAI',
177 'type' => 'openai',
178 'apikey' => '',
179 // TODO: Drop the four finetunes* keys after 2027-02 (OpenAI ends fine-tune job creation on 2027-01-06).
180 'finetunes' => [],
181 'finetunes_deleted' => [],
182 'legacy_finetunes' => [],
183 'legacy_finetunes_deleted' => [],
184 ],
185 ],
186
187 'mcp_envs' => [],
188
189 'ai_fast_default_env' => null,
190 'ai_fast_default_model' => MWAI_FALLBACK_MODEL_FAST,
191 'ai_embeddings_default_env' => null,
192 'ai_embeddings_default_model' => 'text-embedding-3-small',
193 'ai_embeddings_default_dimensions' => 1536,
194 'ai_vision_default_env' => null,
195 'ai_vision_default_model' => 'gpt-5-mini',
196 'ai_images_default_env' => null,
197 'ai_images_default_model' => 'gpt-image-2',
198 'ai_images_default_quality' => null,
199 'ai_audio_default_env' => null,
200 'ai_audio_default_model' => 'whisper-1',
201 'ai_json_default_env' => null,
202 'ai_json_default_model' => 'gpt-5-mini',
203 'embeddings_default_env' => null,
204 'embeddings_envs' => [
205 // First env becomes the default: Internal needs no account, so knowledge
206 // works out of the box on fresh installs.
207 [
208 'name' => 'Internal (WordPress DB)',
209 'type' => 'internal',
210 ],
211 [
212 'name' => 'OpenAI Vector Store',
213 'type' => 'openai-vector-store',
214 'openai_env_id' => null,
215 'store_id' => '',
216 ]
217 ],
218 'embeddings' => [
219 'rewriteContent' => true,
220 'rewritePrompt' => "Start your response with the title: {TITLE}\nOn the next line, provide a brief introductory sentence that explains what the content is about.\n\nThen leave an empty line and begin the rewritten content.\n\nRewrite the content concisely in {LANGUAGE}, maintaining the same style and information. The revised text should be under 800 words, with paragraphs ranging from 160-280 words each. Omit non-textual elements and avoid unnecessary repetition. Conclude with a statement directing readers to find more information at {URL}. If you cannot meet these requirements, please leave a blank response.\n\nThe content to rewrite is below, between '== START ==' and '== END =='.\n\n== START ==\n{CONTENT}\n== END ==\n\n",
221 'forceRecreate' => false,
222 'syncPosts' => false,
223 'syncPostsEnvId' => null,
224 'syncPostTypes' => ['post', 'page', 'product'],
225 'syncPostStatus' => ['publish'],
226 'syncPostCategories' => [],
227 ],
228 'public_api' => false,
229 'dev_mode' => false,
230 'debug_mode' => false,
231 'server_debug_mode' => false,
232 'mcp_debug_mode' => false,
233 'mcp_core' => true,
234 'mcp_role' => 'admin',
235 'mcp_log_calls' => true,
236 'mcp_log_payloads' => false,
237 'queries_debug_mode' => false,
238 'logs_path' => null,
239 'resolve_shortcodes' => false,
240 'context_max_length' => 16384,
241 'banned_words' => [],
242 'ignore_word_boundaries' => false,
243 'banned_ips' => [],
244 'languages' => MWAI_LANGUAGES,
245 'custom_languages' => [
246 'English (en)',
247 'German (de)',
248 'French (fr)',
249 'Spanish (es)',
250 'Italian (it)',
251 'Chinese (zh)',
252 'Japanese (ja)',
253 'Portuguese (pt)'
254 ],
255 'clean_uninstall' => false,
256
257 // ADMIN UI
258 'intro_message' => true,
259 'chatbot_select' => 'tabs'
260 ] );
261
262 define( 'MWAI_ALL_LANGUAGES', [
263 'aa' => 'Afar',
264 'ab' => 'Abkhazian',
265 'af' => 'Afrikaans',
266 'ak' => 'Akan',
267 'sq' => 'Albanian',
268 'am' => 'Amharic',
269 'ar' => 'Arabic',
270 'an' => 'Aragonese',
271 'hy' => 'Armenian',
272 'as' => 'Assamese',
273 'av' => 'Avaric',
274 'ae' => 'Avestan',
275 'ay' => 'Aymara',
276 'az' => 'Azerbaijani',
277 'ba' => 'Bashkir',
278 'bm' => 'Bambara',
279 'eu' => 'Basque',
280 'be' => 'Belarusian',
281 'bn' => 'Bengali',
282 'bh' => 'Bihari',
283 'bi' => 'Bislama',
284 'bs' => 'Bosnian',
285 'br' => 'Breton',
286 'bg' => 'Bulgarian',
287 'my' => 'Burmese',
288 'ca' => 'Catalan; Valencian',
289 'ch' => 'Chamorro',
290 'ce' => 'Chechen',
291 'zh' => 'Chinese',
292 'cu' => 'Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic',
293 'cv' => 'Chuvash',
294 'kw' => 'Cornish',
295 'co' => 'Corsican',
296 'cr' => 'Cree',
297 'cs' => 'Czech',
298 'da' => 'Danish',
299 'dv' => 'Divehi; Dhivehi; Maldivian',
300 'nl' => 'Dutch; Flemish',
301 'dz' => 'Dzongkha',
302 'en' => 'English',
303 'eo' => 'Esperanto',
304 'et' => 'Estonian',
305 'ee' => 'Ewe',
306 'fo' => 'Faroese',
307 'fj' => 'Fijjian',
308 'fi' => 'Finnish',
309 'fr' => 'French',
310 'fy' => 'Western Frisian',
311 'ff' => 'Fulah',
312 'ka' => 'Georgian',
313 'de' => 'German',
314 'gd' => 'Gaelic; Scottish Gaelic',
315 'ga' => 'Irish',
316 'gl' => 'Galician',
317 'gv' => 'Manx',
318 'el' => 'Greek, Modern',
319 'gn' => 'Guarani',
320 'gu' => 'Gujarati',
321 'ht' => 'Haitian; Haitian Creole',
322 'ha' => 'Hausa',
323 'he' => 'Hebrew',
324 'hz' => 'Herero',
325 'hi' => 'Hindi',
326 'ho' => 'Hiri Motu',
327 'hu' => 'Hungarian',
328 'ig' => 'Igbo',
329 'is' => 'Icelandic',
330 'io' => 'Ido',
331 'ii' => 'Sichuan Yi',
332 'iu' => 'Inuktitut',
333 'ie' => 'Interlingue',
334 'ia' => 'Interlingua (International Auxiliary Language Association)',
335 'id' => 'Indonesian',
336 'ik' => 'Inupiaq',
337 'it' => 'Italian',
338 'jv' => 'Javanese',
339 'ja' => 'Japanese',
340 'kl' => 'Kalaallisut; Greenlandic',
341 'kn' => 'Kannada',
342 'ks' => 'Kashmiri',
343 'kr' => 'Kanuri',
344 'kk' => 'Kazakh',
345 'km' => 'Central Khmer',
346 'ki' => 'Kikuyu; Gikuyu',
347 'rw' => 'Kinyarwanda',
348 'ky' => 'Kirghiz; Kyrgyz',
349 'kv' => 'Komi',
350 'kg' => 'Kongo',
351 'ko' => 'Korean',
352 'kj' => 'Kuanyama; Kwanyama',
353 'ku' => 'Kurdish',
354 'lo' => 'Lao',
355 'la' => 'Latin',
356 'lv' => 'Latvian',
357 'li' => 'Limburgan; Limburger; Limburgish',
358 'ln' => 'Lingala',
359 'lt' => 'Lithuanian',
360 'lb' => 'Luxembourgish; Letzeburgesch',
361 'lu' => 'Luba-Katanga',
362 'lg' => 'Ganda',
363 'mk' => 'Macedonian',
364 'mh' => 'Marshallese',
365 'ml' => 'Malayalam',
366 'mi' => 'Maori',
367 'mr' => 'Marathi',
368 'ms' => 'Malay',
369 'mg' => 'Malagasy',
370 'mt' => 'Maltese',
371 'mo' => 'Moldavian',
372 'mn' => 'Mongolian',
373 'na' => 'Nauru',
374 'nv' => 'Navajo; Navaho',
375 'nr' => 'Ndebele, South; South Ndebele',
376 'nd' => 'Ndebele, North; North Ndebele',
377 'ng' => 'Ndonga',
378 'ne' => 'Nepali',
379 'nn' => 'Norwegian Nynorsk; Nynorsk, Norwegian',
380 'nb' => 'Bokmål, Norwegian, Norwegian Bokmål',
381 'no' => 'Norwegian',
382 'ny' => 'Chichewa; Chewa; Nyanja',
383 'oc' => 'Occitan, Provençal',
384 'oj' => 'Ojibwa',
385 'or' => 'Oriya',
386 'om' => 'Oromo',
387 'os' => 'Ossetian; Ossetic',
388 'pa' => 'Panjabi; Punjabi',
389 'fa' => 'Persian',
390 'pi' => 'Pali',
391 'pl' => 'Polish',
392 'pt' => 'Portuguese',
393 'ps' => 'Pushto',
394 'qu' => 'Quechua',
395 'rm' => 'Romansh',
396 'ro' => 'Romanian',
397 'rn' => 'Rundi',
398 'ru' => 'Russian',
399 'sg' => 'Sango',
400 'sa' => 'Sanskrit',
401 'sr' => 'Serbian',
402 'hr' => 'Croatian',
403 'si' => 'Sinhala; Sinhalese',
404 'sk' => 'Slovak',
405 'sl' => 'Slovenian',
406 'se' => 'Northern Sami',
407 'sm' => 'Samoan',
408 'sn' => 'Shona',
409 'sd' => 'Sindhi',
410 'so' => 'Somali',
411 'st' => 'Sotho, Southern',
412 'es' => 'Spanish; Castilian',
413 'sc' => 'Sardinian',
414 'ss' => 'Swati',
415 'su' => 'Sundanese',
416 'sw' => 'Swahili',
417 'sv' => 'Swedish',
418 'ty' => 'Tahitian',
419 'ta' => 'Tamil',
420 'tt' => 'Tatar',
421 'te' => 'Telugu',
422 'tg' => 'Tajik',
423 'tl' => 'Tagalog',
424 'th' => 'Thai',
425 'bo' => 'Tibetan',
426 'ti' => 'Tigrinya',
427 'to' => 'Tonga (Tonga Islands)',
428 'tn' => 'Tswana',
429 'ts' => 'Tsonga',
430 'tk' => 'Turkmen',
431 'tr' => 'Turkish',
432 'tw' => 'Twi',
433 'ug' => 'Uighur; Uyghur',
434 'uk' => 'Ukrainian',
435 'ur' => 'Urdu',
436 'uz' => 'Uzbek',
437 've' => 'Venda',
438 'vi' => 'Vietnamese',
439 'vo' => 'Volapük',
440 'cy' => 'Welsh',
441 'wa' => 'Walloon',
442 'wo' => 'Wolof',
443 'xh' => 'Xhosa',
444 'yi' => 'Yiddish',
445 'yo' => 'Yoruba',
446 'za' => 'Zhuang; Chuang',
447 'zu' => 'Zulu',
448 ] );
449