PluginProbe ʕ •ᴥ•ʔ
AI Engine – The Chatbot, AI Framework & MCP for WordPress / 3.6.4
AI Engine – The Chatbot, AI Framework & MCP for WordPress v3.6.4
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 2 days ago models.php 2 days ago types.php 1 year ago
init.php
451 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_addons' => true,
111 'module_suggestions' => true,
112 'module_chatbots' => true,
113 'module_search' => false,
114 'search_frontend_method' => 'wordpress',
115 'search_frontend_env_id' => null,
116 'search_website_context' => 'This is a website with useful information and content.',
117 'module_library_search' => false,
118 'library_search_env_id' => null,
119 'module_forms' => false,
120 'module_workspace' => false,
121 // Which features the Workspace composer offers (admin-level; all on by default).
122 'workspace_image' => true,
123 'workspace_web_search' => true,
124 'workspace_wp_tools' => true,
125 'workspace_mcp' => true,
126 'workspace_functions' => true,
127 'workspace_knowledge' => true,
128 'forms_editor' => true,
129 'module_blocks' => false,
130 'module_assistant' => true,
131 'module_playground' => true,
132 'module_generator_content' => true,
133 'module_generator_images' => true,
134 'module_generator_videos' => false,
135 'module_moderation' => false,
136 'module_statistics' => false,
137 'statistics_retention_days' => 'Never',
138 // TODO: Remove module_finetunes after 2027-02 (OpenAI ends fine-tune job creation on 2027-01-06).
139 'module_finetunes' => false,
140 'module_embeddings' => false,
141 'module_transcription' => false,
142 'module_advisor' => false,
143 'module_orchestration' => false,
144 'module_mcp' => false,
145 'speech_recognition' => false,
146 'speech_synthesis' => false,
147 'chatbot_gdpr_consent' => false,
148 '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.).',
149 'chatbot_gdpr_button' => 'I understand',
150 'chatbot_typewriter' => false,
151 'chatbot_discussions' => false,
152 'chatbot_discussions_titling' => true,
153 'chatbot_discussions_paging' => 10,
154 'chatbot_discussions_refresh_interval' => 5,
155 'chatbot_discussions_retention_days' => 90,
156 'chatbot_discussions_metadata_enabled' => true,
157 'chatbot_discussions_metadata_start_date' => true,
158 'chatbot_discussions_metadata_last_update' => true,
159 'chatbot_discussions_metadata_message_count' => true,
160 'chatbot_moderation' => false,
161 'syntax_highlight' => false,
162 'event_logs' => false,
163 'privacy_first' => false,
164 'limits' => MWAI_LIMITS,
165
166 // Settings for Images
167 'image_local_upload' => 'uploads',
168 'image_remote_upload' => 'data',
169 'image_expires' => 1 * HOUR_IN_SECONDS,
170
171 'ai_models' => [],
172 'ai_models_usage' => [],
173 'ai_streaming' => true,
174 'ai_default_env' => null,
175 'ai_default_model' => MWAI_FALLBACK_MODEL,
176 'ai_envs' => [
177 [
178 'name' => 'OpenAI',
179 'type' => 'openai',
180 'apikey' => '',
181 // TODO: Drop the four finetunes* keys after 2027-02 (OpenAI ends fine-tune job creation on 2027-01-06).
182 'finetunes' => [],
183 'finetunes_deleted' => [],
184 'legacy_finetunes' => [],
185 'legacy_finetunes_deleted' => [],
186 ],
187 ],
188
189 'mcp_envs' => [],
190
191 'ai_fast_default_env' => null,
192 'ai_fast_default_model' => MWAI_FALLBACK_MODEL_FAST,
193 'ai_embeddings_default_env' => null,
194 'ai_embeddings_default_model' => 'text-embedding-3-small',
195 'ai_embeddings_default_dimensions' => 1536,
196 'ai_vision_default_env' => null,
197 'ai_vision_default_model' => 'gpt-5-mini',
198 'ai_images_default_env' => null,
199 'ai_images_default_model' => 'gpt-image-2',
200 'ai_images_default_quality' => null,
201 'ai_audio_default_env' => null,
202 'ai_audio_default_model' => 'whisper-1',
203 'ai_json_default_env' => null,
204 'ai_json_default_model' => 'gpt-5-mini',
205 'embeddings_default_env' => null,
206 'embeddings_envs' => [
207 // First env becomes the default: Internal needs no account, so knowledge
208 // works out of the box on fresh installs.
209 [
210 'name' => 'Internal (WordPress DB)',
211 'type' => 'internal',
212 ],
213 [
214 'name' => 'OpenAI Vector Store',
215 'type' => 'openai-vector-store',
216 'openai_env_id' => null,
217 'store_id' => '',
218 ]
219 ],
220 'embeddings' => [
221 'rewriteContent' => true,
222 '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",
223 'forceRecreate' => false,
224 'syncPosts' => false,
225 'syncPostsEnvId' => null,
226 'syncPostTypes' => ['post', 'page', 'product'],
227 'syncPostStatus' => ['publish'],
228 'syncPostCategories' => [],
229 ],
230 'public_api' => false,
231 'dev_mode' => false,
232 'debug_mode' => false,
233 'server_debug_mode' => false,
234 'mcp_debug_mode' => false,
235 'mcp_core' => true,
236 'mcp_role' => 'admin',
237 'mcp_log_calls' => true,
238 'mcp_log_payloads' => false,
239 'queries_debug_mode' => false,
240 'logs_path' => null,
241 'resolve_shortcodes' => false,
242 'context_max_length' => 16384,
243 'banned_words' => [],
244 'ignore_word_boundaries' => false,
245 'banned_ips' => [],
246 'languages' => MWAI_LANGUAGES,
247 'custom_languages' => [
248 'English (en)',
249 'German (de)',
250 'French (fr)',
251 'Spanish (es)',
252 'Italian (it)',
253 'Chinese (zh)',
254 'Japanese (ja)',
255 'Portuguese (pt)'
256 ],
257 'clean_uninstall' => false,
258
259 // ADMIN UI
260 'intro_message' => true,
261 'chatbot_select' => 'tabs'
262 ] );
263
264 define( 'MWAI_ALL_LANGUAGES', [
265 'aa' => 'Afar',
266 'ab' => 'Abkhazian',
267 'af' => 'Afrikaans',
268 'ak' => 'Akan',
269 'sq' => 'Albanian',
270 'am' => 'Amharic',
271 'ar' => 'Arabic',
272 'an' => 'Aragonese',
273 'hy' => 'Armenian',
274 'as' => 'Assamese',
275 'av' => 'Avaric',
276 'ae' => 'Avestan',
277 'ay' => 'Aymara',
278 'az' => 'Azerbaijani',
279 'ba' => 'Bashkir',
280 'bm' => 'Bambara',
281 'eu' => 'Basque',
282 'be' => 'Belarusian',
283 'bn' => 'Bengali',
284 'bh' => 'Bihari',
285 'bi' => 'Bislama',
286 'bs' => 'Bosnian',
287 'br' => 'Breton',
288 'bg' => 'Bulgarian',
289 'my' => 'Burmese',
290 'ca' => 'Catalan; Valencian',
291 'ch' => 'Chamorro',
292 'ce' => 'Chechen',
293 'zh' => 'Chinese',
294 'cu' => 'Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic',
295 'cv' => 'Chuvash',
296 'kw' => 'Cornish',
297 'co' => 'Corsican',
298 'cr' => 'Cree',
299 'cs' => 'Czech',
300 'da' => 'Danish',
301 'dv' => 'Divehi; Dhivehi; Maldivian',
302 'nl' => 'Dutch; Flemish',
303 'dz' => 'Dzongkha',
304 'en' => 'English',
305 'eo' => 'Esperanto',
306 'et' => 'Estonian',
307 'ee' => 'Ewe',
308 'fo' => 'Faroese',
309 'fj' => 'Fijjian',
310 'fi' => 'Finnish',
311 'fr' => 'French',
312 'fy' => 'Western Frisian',
313 'ff' => 'Fulah',
314 'ka' => 'Georgian',
315 'de' => 'German',
316 'gd' => 'Gaelic; Scottish Gaelic',
317 'ga' => 'Irish',
318 'gl' => 'Galician',
319 'gv' => 'Manx',
320 'el' => 'Greek, Modern',
321 'gn' => 'Guarani',
322 'gu' => 'Gujarati',
323 'ht' => 'Haitian; Haitian Creole',
324 'ha' => 'Hausa',
325 'he' => 'Hebrew',
326 'hz' => 'Herero',
327 'hi' => 'Hindi',
328 'ho' => 'Hiri Motu',
329 'hu' => 'Hungarian',
330 'ig' => 'Igbo',
331 'is' => 'Icelandic',
332 'io' => 'Ido',
333 'ii' => 'Sichuan Yi',
334 'iu' => 'Inuktitut',
335 'ie' => 'Interlingue',
336 'ia' => 'Interlingua (International Auxiliary Language Association)',
337 'id' => 'Indonesian',
338 'ik' => 'Inupiaq',
339 'it' => 'Italian',
340 'jv' => 'Javanese',
341 'ja' => 'Japanese',
342 'kl' => 'Kalaallisut; Greenlandic',
343 'kn' => 'Kannada',
344 'ks' => 'Kashmiri',
345 'kr' => 'Kanuri',
346 'kk' => 'Kazakh',
347 'km' => 'Central Khmer',
348 'ki' => 'Kikuyu; Gikuyu',
349 'rw' => 'Kinyarwanda',
350 'ky' => 'Kirghiz; Kyrgyz',
351 'kv' => 'Komi',
352 'kg' => 'Kongo',
353 'ko' => 'Korean',
354 'kj' => 'Kuanyama; Kwanyama',
355 'ku' => 'Kurdish',
356 'lo' => 'Lao',
357 'la' => 'Latin',
358 'lv' => 'Latvian',
359 'li' => 'Limburgan; Limburger; Limburgish',
360 'ln' => 'Lingala',
361 'lt' => 'Lithuanian',
362 'lb' => 'Luxembourgish; Letzeburgesch',
363 'lu' => 'Luba-Katanga',
364 'lg' => 'Ganda',
365 'mk' => 'Macedonian',
366 'mh' => 'Marshallese',
367 'ml' => 'Malayalam',
368 'mi' => 'Maori',
369 'mr' => 'Marathi',
370 'ms' => 'Malay',
371 'mg' => 'Malagasy',
372 'mt' => 'Maltese',
373 'mo' => 'Moldavian',
374 'mn' => 'Mongolian',
375 'na' => 'Nauru',
376 'nv' => 'Navajo; Navaho',
377 'nr' => 'Ndebele, South; South Ndebele',
378 'nd' => 'Ndebele, North; North Ndebele',
379 'ng' => 'Ndonga',
380 'ne' => 'Nepali',
381 'nn' => 'Norwegian Nynorsk; Nynorsk, Norwegian',
382 'nb' => 'Bokmål, Norwegian, Norwegian Bokmål',
383 'no' => 'Norwegian',
384 'ny' => 'Chichewa; Chewa; Nyanja',
385 'oc' => 'Occitan, Provençal',
386 'oj' => 'Ojibwa',
387 'or' => 'Oriya',
388 'om' => 'Oromo',
389 'os' => 'Ossetian; Ossetic',
390 'pa' => 'Panjabi; Punjabi',
391 'fa' => 'Persian',
392 'pi' => 'Pali',
393 'pl' => 'Polish',
394 'pt' => 'Portuguese',
395 'ps' => 'Pushto',
396 'qu' => 'Quechua',
397 'rm' => 'Romansh',
398 'ro' => 'Romanian',
399 'rn' => 'Rundi',
400 'ru' => 'Russian',
401 'sg' => 'Sango',
402 'sa' => 'Sanskrit',
403 'sr' => 'Serbian',
404 'hr' => 'Croatian',
405 'si' => 'Sinhala; Sinhalese',
406 'sk' => 'Slovak',
407 'sl' => 'Slovenian',
408 'se' => 'Northern Sami',
409 'sm' => 'Samoan',
410 'sn' => 'Shona',
411 'sd' => 'Sindhi',
412 'so' => 'Somali',
413 'st' => 'Sotho, Southern',
414 'es' => 'Spanish; Castilian',
415 'sc' => 'Sardinian',
416 'ss' => 'Swati',
417 'su' => 'Sundanese',
418 'sw' => 'Swahili',
419 'sv' => 'Swedish',
420 'ty' => 'Tahitian',
421 'ta' => 'Tamil',
422 'tt' => 'Tatar',
423 'te' => 'Telugu',
424 'tg' => 'Tajik',
425 'tl' => 'Tagalog',
426 'th' => 'Thai',
427 'bo' => 'Tibetan',
428 'ti' => 'Tigrinya',
429 'to' => 'Tonga (Tonga Islands)',
430 'tn' => 'Tswana',
431 'ts' => 'Tsonga',
432 'tk' => 'Turkmen',
433 'tr' => 'Turkish',
434 'tw' => 'Twi',
435 'ug' => 'Uighur; Uyghur',
436 'uk' => 'Ukrainian',
437 'ur' => 'Urdu',
438 'uz' => 'Uzbek',
439 've' => 'Venda',
440 'vi' => 'Vietnamese',
441 'vo' => 'Volapük',
442 'cy' => 'Welsh',
443 'wa' => 'Walloon',
444 'wo' => 'Wolof',
445 'xh' => 'Xhosa',
446 'yi' => 'Yiddish',
447 'yo' => 'Yoruba',
448 'za' => 'Zhuang; Chuang',
449 'zu' => 'Zulu',
450 ] );
451