diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
 # Aura Changelog
 
+## 3.2.6 (2021-09-17)
+
+#### Added
+
+- Arabic translations thanks to "Array in the Matrix". شكرًا لك!
+- Ukranian translations thanks to Andriy Cherniy. Дякую!
+
 ## 3.2.5
 
 #### Changed
diff --git a/aura.cabal b/aura.cabal
--- a/aura.cabal
+++ b/aura.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.2
 name:               aura
-version:            3.2.5
+version:            3.2.6
 synopsis:           A secure package manager for Arch Linux and the AUR.
 description:
   Aura is a package manager for Arch Linux. It connects to both the
@@ -55,7 +55,7 @@
     , http-client                  >=0.5 && <0.8
     , prettyprinter                >=1.2 && <1.8
     , prettyprinter-ansi-terminal  ^>=1.1
-    , scheduler                    >=1.1 && <1.6
+    , scheduler                    >=1.1 && <2.1
     , transformers                 ^>=0.5
     , typed-process                ^>=0.2
 
diff --git a/doc/aura.8 b/doc/aura.8
--- a/doc/aura.8
+++ b/doc/aura.8
@@ -2,7 +2,7 @@
 .\" Man page for `aura`
 .\" Written by Colin Woodbury <colin@fosskers.ca>
 .
-.TH aura 8 "2021 January" "Aura" "Aura Manual"
+.TH aura 8 "2021 September" "Aura" "Aura Manual"
 .
 .de SAMPLE      \" Indented example - on its own paragraph.
 .  P
@@ -714,8 +714,10 @@
 Norwegian	"chinatsun"
 Indonesian	"pak tua Greg"
 Chinese	Kai Zhang
-Japanese	Onoue Takuro
+Japanese	Onoue Takuro and Colin Woodbury
 Esperanto	Zachary Matthews
 Dutch	Joris Blanken
 Turkish	Cihan Alkan
+Arabic	"Array in a Matrix"
+Ukrainian	Andriy Cherniy
 .TE
diff --git a/doc/aura.conf b/doc/aura.conf
--- a/doc/aura.conf
+++ b/doc/aura.conf
@@ -23,10 +23,13 @@
 # | pt   | Portuguese |
 # | es   | Spanish    |
 # |------+------------|
+# | ar   | Arabic
+# |------+------------|
 # | hr   | Croatian   |
 # | pl   | Polish     |
 # | ru   | Russian    |
 # | sr   | Serbian    |
+# | uk   | Ukrainian  |
 # |------+------------|
 # | zh   | Chinese    |
 # | id   | Indonesian |
diff --git a/doc/aura.conf.5 b/doc/aura.conf.5
--- a/doc/aura.conf.5
+++ b/doc/aura.conf.5
@@ -90,6 +90,9 @@
 pl	Polish
 ru	Russian
 sr	Serbian
+uk	Ukrainian
+
+ar	Arabic
 
 zh	Chinese
 id	Indonesian
diff --git a/exec/Aura/Flags.hs b/exec/Aura/Flags.hs
--- a/exec/Aura/Flags.hs
+++ b/exec/Aura/Flags.hs
@@ -569,7 +569,7 @@
 
 language :: Parser Language
 language = foldr1 (<|>) $ NEL.map (\(f, v) -> flag' v (long f <> hidden)) langs
-  where langs = [ ( "japanese",   Japanese ),   ( "日本語",        Japanese )
+  where langs = [ ( "japanese",   Japanese ),   ( "日本語",      Japanese )
                 , ( "polish",     Polish ),     ( "polski",     Polish )
                 , ( "croatian",   Croatian ),   ( "hrvatski",   Croatian )
                 , ( "swedish",    Swedish ),    ( "svenska",    Swedish )
@@ -582,9 +582,12 @@
                 , ( "serbian",    Serbian ),    ( "српски",     Serbian )
                 , ( "norwegian",  Norwegian ),  ( "norsk",      Norwegian )
                 , ( "indonesian", Indonesia )
-                , ( "chinese",    Chinese ),    ( "中文",         Chinese )
+                , ( "chinese",    Chinese ),    ( "中文",        Chinese )
                 , ( "esperanto",  Esperanto )
-                , ( "dutch",      Dutch ),      ( "nederlands", Dutch ) ]
+                , ( "dutch",      Dutch ),      ( "nederlands", Dutch )
+                , ( "arabic",     Arabic ),     ( "العربية",    Arabic )
+                , ( "ukrainian",  Ukrainian),   ( "українська", Ukrainian)
+                ]
 
 logLevel :: Parser LogLevel
 logLevel = option (eitherReader l)
diff --git a/lib/Aura/Languages.hs b/lib/Aura/Languages.hs
--- a/lib/Aura/Languages.hs
+++ b/lib/Aura/Languages.hs
@@ -46,39 +46,44 @@
     , (Norwegian,  "\"chinatsun\"")
     , (Indonesia,  "\"pak tua Greg\"")
     , (Chinese,    "Kai Zhang")
-    , (Japanese,   "Onoue Takuro")
+    , (Japanese,   "Onoue Takuro / Colin Woodbury")
     , (Esperanto,  "Zachary Matthews")
     , (Dutch,      "Joris Blanken")
     , (Turkish,    "Cihan Alkan")
+    , (Arabic,     "\"Array in a Matrix\"")
+    , (Ukrainian,  "Andriy Cherniy")
     ]
 
 -- These need updating! Or removing...
 languageNames :: Language -> Map Language T.Text
-languageNames = M.fromList . zip [ Japanese, Polish, Croatian, Swedish, German, Spanish, Portuguese, French, Russian, Italian, Serbian, Norwegian, Indonesia, Chinese, Esperanto, Dutch, Turkish ] . \case
-    Japanese   -> [ "日本語", "ポーランド語", "クロアチア語", "スウェーデン語", "ドイツ語", "スペイン語", "ポルトガル語", "フランス語", "ロシア語", "イタリア語", "セルビア語", "ノルウェー語", "インドネシア語", "中国語", "エスペラント", "オランダ語", "トルコ語" ]
-    Turkish    -> [ "Japonca", "Lehçe", "Hırvatça", "İsveççe", "Almanca", "İspanyolca", "Portekizce", "Fransızca", "Rusça", "İtalyanca", "Sırpça", "Norveççe", "Endonezce", "Çince", "Esperanto", "Hollandaca", "Türkçe" ]
-    Polish     -> [ "Japanese", "polski", "chorwacki", "szwedzki", "niemiecki", "hiszpański", "portugalski", "francuski", "rosyjski", "włoski", "serbski", "norweski", "indonezyjski", "chiński", "esperanto", "niderlandzki", "Turkish" ]
-    Croatian   -> [ "Japanese", "poljski", "hrvatski", "švedski", "njemački", "španjolski", "portugalski", "francuski", "ruski", "talijanski", "srpski", "norveški", "Indonesian", "Chinese", "Esperanto", "Dutch", "Turkish" ]
-    Swedish    -> [ "Japanese", "Polska", "Kroatiska", "Svenska", "Tyska", "Spanska", "Portugisiska", "Franska", "Ryska", "Italienska", "Serbiska", "Norska", "Indonesian", "Chinese", "Esperanto", "Dutch", "Turkish" ]
-    German     -> [ "Japanisch", "Polnisch", "Kroatisch", "Schwedisch", "Deutsch", "Spanisch", "Portugiesisch", "Französisch", "Russisch", "Italienisch", "Serbisch", "Norwegisch", "Indonesisch", "Chinese", "Esperanto", "Dutch", "Turkish" ]
-    Spanish    -> [ "Japanese", "Polaco", "Croata", "Sueco", "Alemán", "Español", "Portugués", "Francés", "Ruso", "Italiano", "Serbio", "Noruego", "Indonesio", "Chinese", "Esperanto", "Dutch", "Turkish" ]
-    Portuguese -> [ "Japonês", "Polonês", "Croata", "Sueco", "Alemão", "Espanhol", "Português", "Francês", "Russo", "Italiano", "Sérvio", "Norueguês", "Indonésio", "Chinês", "Esperanto", "Dutch", "Turkish" ]
-    French     -> [ "Japanese", "Polonais", "Croate", "Suédois", "Allemand", "Espagnol", "Portugais", "Français", "Russe", "Italien", "Serbe", "Norvégien", "Indonesian", "Chinese", "Esperanto", "Dutch", "Turkish" ]
-    Russian    -> [ "Японский", "Польский", "Хорватский", "Шведский", "Немецкий", "Испанский", "Португальский", "Французский", "Русский", "Итальянский", "Сербский", "Норвежский", "Индонезийский", "Китайский", "Эсперанто", "Dutch", "Turkish" ]
-    Italian    -> [ "Giapponese", "Polacco", "Croato", "Svedese", "Tedesco", "Spagnolo", "Portoghese", "Francese", "Russo", "Italiano", "Serbo", "Norvegese", "Indonesiano", "Cinese", "Esperanto", "Dutch", "Turkish" ]
-    Serbian    -> [ "Japanese", "Пољски", "Хрватски", "Шведски", "Немачки", "Шпански", "Португалски", "Француски", "Руски", "Италијански", "Српски", "", "Indonesian", "Chinese", "Esperanto", "Dutch", "Turkish" ]
-    Norwegian  -> [ "Japanese", "Polsk", "Kroatisk", "Svensk", "Tysk", "Spansk", "Portugisisk", "Fransk", "Russisk", "Italiensk", "Serbisk", "Norsk", "Indonesian", "Chinese", "Esperanto", "Dutch", "Turkish" ]
-    Indonesia  -> [ "Japanese", "Polandia", "Kroasia", "Swedia", "Jerman", "Spanyol", "Portugis", "Prancis", "Rusia", "Italia", "Serbia", "Norwegia", "Indonesian", "Chinese", "Esperanto", "Dutch", "Turkish" ]
-    Chinese    -> [ "日语", "波兰语", "克罗地亚语", "瑞典语", "德语", "西班牙语", "葡萄牙语", "法语", "俄语", "意大利语", "塞尔维亚语", "挪威语", "印度尼西亚语", "中文", "世界语", "Dutch", "Turkish" ]
-    Esperanto  -> [ "La japana", "La pola", "La kroata", "La sevda", "La germana", "La hispana", "La portugala", "La franca", "La rusa", "La itala", "La serba", "La norvega", "La indonezia", "La ĉina", "Esperanto", "La nederlanda", "Turkish" ]
-    Dutch      -> [ "Japans", "Pools", "Kroatisch", "Zweeds", "Duits", "Spaans", "Portugees", "Frans", "Russisch", "Italiaans", "Servisch", "Noors", "Indonesisch", "Chinees", "Esperanto", "Nederlands", "Turkish" ]
-    _          -> [ "Japanese", "Polish", "Croatian", "Swedish", "German", "Spanish", "Portuguese", "French", "Russian", "Italian", "Serbian", "Norwegian", "Indonesian", "Chinese", "Esperanto", "Dutch", "Turkish" ]
+languageNames = M.fromList . zip [ Japanese, Polish, Croatian, Swedish, German, Spanish, Portuguese, French, Russian, Italian, Serbian, Norwegian, Indonesia, Chinese, Esperanto, Dutch, Turkish, Arabic, Ukrainian ] . \case
+    Japanese   -> [ "日本語", "ポーランド語", "クロアチア語", "スウェーデン語", "ドイツ語", "スペイン語", "ポルトガル語", "フランス語", "ロシア語", "イタリア語", "セルビア語", "ノルウェー語", "インドネシア語", "中国語", "エスペラント", "オランダ語", "トルコ語", "アラビア語", "Ukrainian" ]
+    Arabic     -> [ "اليابانية", "البولندية", "الكرواتية", "السويدية", "الالمانية", "الاصبانية", "البرتغالية", "الفرنسية", "الروسية", "الايطالية", "السيبيرية", "النرويجية", "الاندونيسية", "الصينية", "الاسبرانتو", "الهولندية", "التركية", "Arabic", "Ukrainian" ]
+    Turkish    -> [ "Japonca", "Lehçe", "Hırvatça", "İsveççe", "Almanca", "İspanyolca", "Portekizce", "Fransızca", "Rusça", "İtalyanca", "Sırpça", "Norveççe", "Endonezce", "Çince", "Esperanto", "Hollandaca", "Türkçe", "Arabic", "Ukrainian" ]
+    Polish     -> [ "Japanese", "polski", "chorwacki", "szwedzki", "niemiecki", "hiszpański", "portugalski", "francuski", "rosyjski", "włoski", "serbski", "norweski", "indonezyjski", "chiński", "esperanto", "niderlandzki", "Turkish", "Arabic", "Ukrainian" ]
+    Croatian   -> [ "Japanese", "poljski", "hrvatski", "švedski", "njemački", "španjolski", "portugalski", "francuski", "ruski", "talijanski", "srpski", "norveški", "Indonesian", "Chinese", "Esperanto", "Dutch", "Turkish", "Arabic", "Ukrainian" ]
+    Swedish    -> [ "Japanese", "Polska", "Kroatiska", "Svenska", "Tyska", "Spanska", "Portugisiska", "Franska", "Ryska", "Italienska", "Serbiska", "Norska", "Indonesian", "Chinese", "Esperanto", "Dutch", "Turkish", "Arabic", "Ukrainian" ]
+    German     -> [ "Japanisch", "Polnisch", "Kroatisch", "Schwedisch", "Deutsch", "Spanisch", "Portugiesisch", "Französisch", "Russisch", "Italienisch", "Serbisch", "Norwegisch", "Indonesisch", "Chinese", "Esperanto", "Dutch", "Turkish", "Arabic", "Ukrainian" ]
+    Spanish    -> [ "Japanese", "Polaco", "Croata", "Sueco", "Alemán", "Español", "Portugués", "Francés", "Ruso", "Italiano", "Serbio", "Noruego", "Indonesio", "Chinese", "Esperanto", "Dutch", "Turkish", "Arabic", "Ukrainian" ]
+    Portuguese -> [ "Japonês", "Polonês", "Croata", "Sueco", "Alemão", "Espanhol", "Português", "Francês", "Russo", "Italiano", "Sérvio", "Norueguês", "Indonésio", "Chinês", "Esperanto", "Dutch", "Turkish", "Arabic", "Ukrainian" ]
+    French     -> [ "Japanese", "Polonais", "Croate", "Suédois", "Allemand", "Espagnol", "Portugais", "Français", "Russe", "Italien", "Serbe", "Norvégien", "Indonesian", "Chinese", "Esperanto", "Dutch", "Turkish", "Arabic", "Ukrainian" ]
+    Russian    -> [ "Японский", "Польский", "Хорватский", "Шведский", "Немецкий", "Испанский", "Португальский", "Французский", "Русский", "Итальянский", "Сербский", "Норвежский", "Индонезийский", "Китайский", "Эсперанто", "Датский", "Турецкий", "Арабский", "Украинский" ]
+    Italian    -> [ "Giapponese", "Polacco", "Croato", "Svedese", "Tedesco", "Spagnolo", "Portoghese", "Francese", "Russo", "Italiano", "Serbo", "Norvegese", "Indonesiano", "Cinese", "Esperanto", "Dutch", "Turkish", "Arabic", "Ukrainian" ]
+    Serbian    -> [ "Japanese", "Пољски", "Хрватски", "Шведски", "Немачки", "Шпански", "Португалски", "Француски", "Руски", "Италијански", "Српски", "", "Indonesian", "Chinese", "Esperanto", "Dutch", "Turkish", "Arabic", "Ukrainian" ]
+    Norwegian  -> [ "Japanese", "Polsk", "Kroatisk", "Svensk", "Tysk", "Spansk", "Portugisisk", "Fransk", "Russisk", "Italiensk", "Serbisk", "Norsk", "Indonesian", "Chinese", "Esperanto", "Dutch", "Turkish", "Arabic", "Ukrainian" ]
+    Indonesia  -> [ "Japanese", "Polandia", "Kroasia", "Swedia", "Jerman", "Spanyol", "Portugis", "Prancis", "Rusia", "Italia", "Serbia", "Norwegia", "Indonesian", "Chinese", "Esperanto", "Dutch", "Turkish", "Arabic", "Ukrainian" ]
+    Chinese    -> [ "日语", "波兰语", "克罗地亚语", "瑞典语", "德语", "西班牙语", "葡萄牙语", "法语", "俄语", "意大利语", "塞尔维亚语", "挪威语", "印度尼西亚语", "中文", "世界语", "Dutch", "Turkish", "Arabic", "Ukrainian" ]
+    Esperanto  -> [ "La japana", "La pola", "La kroata", "La sevda", "La germana", "La hispana", "La portugala", "La franca", "La rusa", "La itala", "La serba", "La norvega", "La indonezia", "La ĉina", "Esperanto", "La nederlanda", "Turkish", "Arabic", "Ukrainian" ]
+    Dutch      -> [ "Japans", "Pools", "Kroatisch", "Zweeds", "Duits", "Spaans", "Portugees", "Frans", "Russisch", "Italiaans", "Servisch", "Noors", "Indonesisch", "Chinees", "Esperanto", "Nederlands", "Turkish", "Arabic", "Ukrainian" ]
+    Ukrainian  -> [ "Японська", "Польська", "Хорватська", "Швецька", "Німецька", "Іспанська", "Португальська", "Французька", "Російська", "Італьянська", "Сербська", "Норвезька", "Індонезійська", "Китайська", "Есперанто", "Датська", "Турецька", "Арабська", "Українська" ]
+    _          -> [ "Japanese", "Polish", "Croatian", "Swedish", "German", "Spanish", "Portuguese", "French", "Russian", "Italian", "Serbian", "Norwegian", "Indonesian", "Chinese", "Esperanto", "Dutch", "Turkish", "Arabic", "Ukrainian" ]
 
 translatorMsgTitle :: Language -> Text
 translatorMsgTitle = \case
     Japanese   -> "Auraの翻訳者："
     Polish     -> "Tłumacze Aury:"
-    Turkish     -> "Aura Çevirmeni::"
+    Arabic     -> "Aura مترجم"
+    Turkish    -> "Aura Çevirmeni:"
     Croatian   -> "Aura Prevoditelji:"
     Swedish    -> "Aura Översättare:"
     German     -> "Aura Übersetzer:"
@@ -93,6 +98,7 @@
     Chinese    -> "Aura 的翻译者："
     Esperanto  -> "Tradukistoj de Aura:"
     Dutch      -> "Aura Vertalers:"
+    Ukrainian  -> "Перекладачі Aura:"
     _          -> "Aura Translators:"
 
 translatorMsg :: Language -> [Text]
@@ -115,6 +121,7 @@
 langFromLocale :: Text -> Maybe Language
 langFromLocale = T.take 2 >>> \case
   "ja" -> Just Japanese
+  "ar" -> Just Arabic
   "tr" -> Just Turkish
   "pl" -> Just Polish
   "hr" -> Just Croatian
@@ -132,6 +139,7 @@
   "eo" -> Just Esperanto
   "nl" -> Just Dutch
   "en" -> Just English
+  "uk" -> Just Ukrainian
   _    -> Nothing
 
 ----------------------
@@ -142,6 +150,7 @@
 checkDBLock_1 = \case
     Japanese   -> "パッケージデータベースが閉鎖されている状態です。開放したらキーを押して続行してください。"
     Polish     -> "Baza pakietów jest zablokowana. Kiedy zostanie odblokowana naciśnij enter aby kontynuować"
+    Arabic     -> ".قاعدة البيانات مقفلة. اضغط ادخال عندما تفتح قاعدة البيانات للاستمرار"
     Turkish    -> "Paket veritabanı kilitlendi. Devam etmek için kilidi açıldığında enter tuşuna basın."
     Croatian   -> "Baza paketa je zaključana. Kad se otključa, pritisnite enter da biste nastavili."
     German     -> "Die Paketdatenbank ist gesperrt. Drücken Sie Enter wenn sie entsperrt ist um fortzufahren."
@@ -155,11 +164,13 @@
     Swedish    -> "Paketdatabasen är låst. Klicka på enter när den är upplåst."
     Esperanto  -> "La datumbazo de pakaĵoj estas ŝlosita. Premu enen-klavo kiam la datumbazo estas malŝlosita por daŭrigi"
     Dutch      -> "De pakket databank is vergrendelt. Druk op enter wanneer het ontgrendelt is."
+    Ukrainian  -> "База даних пакетів заблокована. Натисніть Enter, коли вона розблокується, щоб продовжити."
     _          -> "The package database is locked. Press enter when it's unlocked to continue."
 
 trueRoot_3 :: Language -> Doc AnsiStyle
 trueRoot_3 = \case
     Japanese   -> "「root」としてパッケージを作成するのは「makepkg v4.2」で不可能になりました。"
+    Arabic     -> ".makepkg v4.2 البناء كمشرف لم يعد ممكنا في"
     Polish     -> "Od makepkg v4.2, budowanie jako root nie jest dozwolone."
     Turkish    -> "Makepkg v4.2'den itibaren, kök olarak oluşturmak artık mümkün değildir."
     German     -> "Seit makepkg v4.2 ist es nicht mehr möglich als root zu bauen."
@@ -171,13 +182,15 @@
     Swedish    -> "I makepkg v4.2 och uppåt är det inte tillåtet att bygga som root."
     Esperanto  -> "Depost makepkg v4.2, konstruanto ĉefuzante ne eblas."
     Dutch      -> "Vanaf makepkg v4.2 is het niet langer mogelijk om als root te bouwen."
+    Ukrainian  -> "З версії makepkg v4.2 збірка від імені root неможлива."
     _          -> "As of makepkg v4.2, building as root is no longer possible."
 
 mustBeRoot_1 :: Language -> Doc AnsiStyle
 mustBeRoot_1 = let sudo = bt @Text "sudo" in \case
     Japanese   -> sudo <> "を使わないとそれができない！"
+    Arabic     -> "." <> sudo <> " ﻻ يمكن اجراء هذه العملية بدون استخدام"
     Polish     -> "Musisz użyć " <> sudo <> ", żeby to zrobić."
-    Turkish    -> "Sudo kullanmadan bu işlemi gerçekleştiremezsiniz."
+    Turkish    -> sudo <> "kullanmadan bu işlemi gerçekleştiremezsiniz."
     Croatian   -> "Morate koristiti" <> sudo <> "za ovu radnju."
     Swedish    -> "Du måste använda " <> sudo <> " för det."
     German     -> "Sie müssen dafür " <> sudo <> " benutzen."
@@ -192,6 +205,7 @@
     Chinese    -> "除非是根用户，否则不能执行此操作。"
     Esperanto  -> "Vi ne povas fari ĉi tiun operacion, sen " <> sudo <> "."
     Dutch      -> "U kunt deze operatie niet uitvoeren zonder " <> sudo <> " te gebruiken."
+    Ukrainian  -> "Для цієї дії, потрібно використати " <> sudo <> "."
     _          -> "You cannot perform this operation without using sudo."
 
 -----------------------
@@ -200,6 +214,7 @@
 buildPackages_1 :: PkgName -> Language -> Doc AnsiStyle
 buildPackages_1 (bt . pnName -> p) = \case
     Japanese   -> p <> "を作成中・・・"
+    Arabic     -> "..." <> p <> " بناء"
     Turkish    -> "İnşa ediliyor " <> p <> "..."
     Polish     -> "Budowanie " <> p <> "..."
     Croatian   -> "Gradim " <> p <> "..."
@@ -216,10 +231,12 @@
     Chinese    -> p <> " 正在构建中..."
     Esperanto  -> "Muntanta " <> p <> "..."
     Dutch      -> "Pakket " <> p <> " aan het bouwen..."
+    Ukrainian  -> "Збираємо " <> p <> "..."
     _          -> "Building " <> p <> "..."
 
 buildPackages_2 :: Language -> Doc AnsiStyle
 buildPackages_2 = \case
+    Arabic     -> ".لن يتم بناء اي رزمة .'--allsource' كشف"
     Polish     -> "'--allsource' wykryte. Nie zostaną zbudowane żadne pakiety."
     Turkish    -> "'--allsource' bulundu. Yüklenebilir gerçek paketler oluşturulmayacaktır."
     Spanish    -> "'--allsource' detectado. No se construirán paquetes instalables reales."
@@ -227,9 +244,11 @@
 
 buildPackages_3 :: FilePath -> Language -> Doc AnsiStyle
 buildPackages_3 fp = \case
+    Arabic     -> pretty fp <> ":تم بناؤها ونسخها إلى .src.tar.gz كل ملفات"
     Polish     -> "Wszystkie pliki .src.tar.gz zostały zbudowane i przekopiowane do: " <> pretty fp
     Turkish    -> "Tüm .src.tar.gz dosyaları oluşturuldu ve şuraya kopyalandı: " <> pretty fp
     Spanish    -> "Todos los archivos .src.tar.gz fueron construidos y copiados a: " <> pretty fp
+    Ukrainian  -> "Всі архіви .src.tar.gz були зібрані та скопійовані до: " <> pretty fp
     _          -> "All .src.tar.gz files were built and copied to: " <> pretty fp
 
 buildPackages_4 :: Language -> Doc AnsiStyle
@@ -243,6 +262,7 @@
 buildFail_5 :: Language -> Doc AnsiStyle
 buildFail_5 = \case
     Japanese   -> "パッケージ作成に失敗しました。"
+    Arabic     -> ".لقد فشل البناء"
     Polish     -> "Budowanie nie powiodło się."
     Croatian   -> "Izgradnja nije uspjela."
     Swedish    -> "Gick inte att bygga paket."
@@ -258,12 +278,14 @@
     Chinese    -> "构建失败。"
     Esperanto  -> "Muntado paneis"
     Dutch      -> "Bouwen is mislukt."
+    Ukrainian  -> "Збірка не вдалась."
     _          -> "Building failed."
 
 -- NEEDS TRANSLATION
 buildFail_6 :: Language -> Doc AnsiStyle
 buildFail_6 = \case
     Japanese   -> "それでも続行しますか？"
+    Arabic     -> "هل ترغب في الاستمرار على أي حال؟"
     Polish     -> "Czy mimo to chcesz kontynuować?"
     Croatian   -> "Želite li svejedno nastaviti?"
     German     -> "Möchten Sie trotzdem fortfahren?"
@@ -278,12 +300,14 @@
     Swedish    -> "Vill du fortsätta ändå?"
     Esperanto  -> "Ĉu vi volas daŭrigi?"
     Dutch      -> "Wilt U toch doorgaan?"
+    Ukrainian  -> "Ви все одно бажаєте продовжити?"
     _          -> "Would you like to continue anyway?"
 
 -- NEEDS TRANSLATION
 buildFail_7 :: PkgName -> Language -> Doc AnsiStyle
 buildFail_7 (bt . pnName -> p) = \case
     Japanese   -> p <> "のビルドスクリプトを収得できませんでした。"
+    Arabic     -> "." <> p <> " فشل في الحصول على نصوص البناء لأجل"
     Polish     -> "Nie udało się pozyskać skryptów budowania dla " <> p <> "."
     German     -> "Herunterladen der Build-Skripte für " <> p <> " fehlgeschlagen."
     Spanish    -> "No se han podido obtener los scripts de compilación de " <> p <> "."
@@ -295,11 +319,13 @@
     Swedish    -> "Kunde inte hämta byggskript för " <> p <> "."
     Esperanto  -> "Paneis akiri muntaj skriptoj de " <> p <> "."
     Dutch      -> "Verkrijgen van bouw scripten mislukt voor " <> p <> "."
+    Ukrainian  -> "Не вдалось отримати сценарії збірки для " <> p <> "."
     _          -> "Failed to obtain build scripts for " <> p <> "."
 
 buildFail_8 :: Language -> Doc AnsiStyle
 buildFail_8 = \case
     Japanese   -> "makepkgは失敗しました。"
+    Arabic     -> ".makepkgهناك فشل في اﻟ"
     Polish     -> "Wystąpił problem z makepkg."
     Spanish    -> "Ocurrió un error al ejecutar makepkg"
     Portuguese -> "Ocorreu um erro ao executar makepkg"
@@ -307,40 +333,49 @@
     Italian    -> "C'è stato un errore nell'esecuzione di makepkg."
     Esperanto  -> "Paneo de makepkg okazis."
     Dutch      -> "Er is een fout opgetreden in makepkg."
+    Ukrainian  -> "Сталась помилка makepkg."
     _          -> "There was a makepkg failure."
 
 buildFail_9 :: Language -> Doc AnsiStyle
 buildFail_9 = \case
   Polish    -> "Nie udało się zlokalizować żadnych zbudowanych pakietów (*.pkg.tar.xz)."
+  Arabic    -> ".(*.pkg.tar.xz) فشل في اكتشاف اي ملف من ملفات البناء"
   Spanish   -> "Error al detectar todos los archivo de paquete (*.pkg.tar.xz)."
   Italian   -> "Non è stato possibile trovare nessun archivio risultante dalla compilazione del pacchetto (*.pkg.tar.xz)."
   Esperanto -> "Paneis detekti ĉiujn dosierojn de pakaĵoj (*.pkg.tar.xz)."
   Dutch     -> "Detecteren van built package files mislukt (*.pkg.tar.xz)."
+  Ukrainian -> "Не вдалось знайти жодного файлу пакунку (*.pkg.tar.xz)."
   _         -> "Failed to detect any built package files (*.pkg.tar.xz)."
 
 buildFail_10 :: Language -> Doc AnsiStyle
 buildFail_10 = \case
   Polish    -> "Nie udało się zbudować żadnego pakietu."
+  Arabic    -> ".فشل بناء كل الرزم"
   Spanish   -> "Los paquetes no se pudieron construir."
   Italian   -> "Non è stato possibile compilare i pacchetti."
   Esperanto -> "Ĉiuj pakaĵoj paneis munti."
   Dutch     -> "Het bouwen van alle pakketten is mislukt."
+  Ukrainian -> "Жоден пакунок не вдалося зібрати."
   _         -> "Every package failed to build."
 
 buildFail_11 :: Language -> Doc AnsiStyle
 buildFail_11 = \case
-  Japanese   -> "作成は失敗しました。エラーを見ますか？"
-  Polish     -> "Budowa zakończona niepowodzeniem. Czy chcesz zobaczyć błąd?"
-  Spanish    -> "Construcción fallida. ¿Te gustaría ver el error?"
-  Italian    -> "La compilazione è fallita. Visionare l'errore?"
-  Esperanto  -> "Muntado paneis. Ĉu vi volas vidi la eraron?"
-  Dutch      -> "Bouwen mislukt. Wilt U de fouten zien?"
-  _          -> "Building failed. Would you like to see the error?"
+  Japanese  -> "作成は失敗しました。エラーを見ますか？"
+  Arabic    -> "فشل البناء. هل ترغب في رؤية الخطأ؟"
+  Polish    -> "Budowa zakończona niepowodzeniem. Czy chcesz zobaczyć błąd?"
+  Spanish   -> "Construcción fallida. ¿Te gustaría ver el error?"
+  Italian   -> "La compilazione è fallita. Visionare l'errore?"
+  Esperanto -> "Muntado paneis. Ĉu vi volas vidi la eraron?"
+  Dutch     -> "Bouwen mislukt. Wilt U de fouten zien?"
+  Ukrainian -> "Збірка не вдалась. Бажаєте побачити помилку?"
+  _         -> "Building failed. Would you like to see the error?"
 
 buildFail_12 :: Language -> Doc AnsiStyle
 buildFail_12 = \case
     Polish     -> "Błąd podczas pobierania najnowszych aktualizacji poprzez 'git pull'."
+    Arabic     -> ".على اخر تحديث 'git pull' فشل حصول"
     Spanish    -> "Error al 'git pull' las últimas actualizaciones."
+    Ukrainian  -> "Не вдалося використати 'git pull' для отримання останніх оновлень."
     _          -> "Failed to 'git pull' the latest updates."
 
 ------------------------------
@@ -350,6 +385,7 @@
 getRealPkgConflicts_1 :: PkgName -> PkgName -> Text -> Text -> Language -> Doc AnsiStyle
 getRealPkgConflicts_1 (bt . pnName -> prnt) (bt . pnName -> p) (bt -> r) (bt -> d) = \case
     Japanese   -> "パッケージ" <> p <> "はバージョン" <> d <> "を要するが" <> "一番最新のバージョンは" <> r <> "。"
+    Arabic     -> prnt <> " الرزمة " <> d <> " تعتمد على النسخة " <> p <> " من " <> r <> " لكن أحدث نسخه هي"
     Polish     -> "Zależność " <> p <> " powinna być w wersji " <> d <> ", ale najnowsza wersja to " <> r <> "."
     Croatian   -> "Zavisnost " <> p <> " zahtjeva verziju " <> d <> ", a najnovija dostupna verzija je " <> r <> "."
     Swedish    -> "Beroendepaketet " <> p <> " kräver version " <> d <> " men den senaste versionen är " <> r <> "."
@@ -365,11 +401,13 @@
     Chinese    -> "依赖 " <> p <> " 需要版本 " <> d <> "，但是最新的版本是 " <> r <> "。"
     Esperanto  -> "La pakaĵo, " <> prnt <> ", dependas de versio " <> d <> " de " <> p <> ", sed la plej nova versio estas " <> r <> "."
     Dutch      -> "Het pakket " <> prnt <> ", hangt af van versie " <> d <> " van " <> p <> ", maar de meest recente versie is " <> r <> "."
+    Ukrainian  -> "Залежність " <> p <> " потребує версію " <> d <> ", проте останньою версією є " <> r <> "."
     _          -> "The package " <> prnt <> " depends on version " <> d <> " of " <> p <> ", but the most recent version is " <> r <> "."
 
 getRealPkgConflicts_2 :: PkgName -> Language -> Doc AnsiStyle
 getRealPkgConflicts_2 (bt . pnName -> p) = \case
   Japanese   -> p <> "は無視されるパッケージ！`pacman.conf`を参考に。"
+  Arabic     -> ".الخاص بك `pacman.conf`انظر الى اﻟ !" <> p <> " ملف مجهول"
   Polish     -> p <> " jest ignorowany! Sprawdź plik `pacman.conf`."
   Croatian   -> p <> " je ignoriran paket! Provjerite svoj `pacman.conf`."
   Swedish    -> p <> " är ett ignorerat paket! Kolla din `pacman.conf`-fil."
@@ -385,6 +423,7 @@
   Chinese    -> p <> " 是一个被忽略的包！请查看你的 `pacman.conf` 文件。"
   Esperanto  -> p <> " estas malatenta pakaĵo! Vidu vian `pacman.conf` dosieron."
   Dutch      -> p <> " is een genegeerd pakket! Bekijk uw `pacman.conf` file."
+  Ukrainian  -> "Пакунок " <> p <> " буде проігноровано! Перевірте ваш файл `pacman.conf`."
   _          -> p <> " is an ignored package! See your `pacman.conf` file."
 
 missingPkg_2 :: [DepError] -> Language -> Doc AnsiStyle
@@ -395,24 +434,29 @@
 depError _ (Ignored s)     = s
 depError l (NonExistant (PkgName s) (PkgName par)) = case l of
   Polish     -> "Zależność " <> bt s <> "nie została znaleziona."
+  Arabic     -> ".غير موجود " <> bt par <> " من " <> bt s <> " الاعتماد"
   Spanish    -> "La dependencia " <> bt s <> " no pudo ser encontrada."
   Portuguese -> "A dependência " <> bt s <> " não foi encontrada."
   Russian    -> "Зависимость " <> bt s <> " не найдена."
   Italian    -> "Non è stato possibile trovare la dipendenza " <> bt s <> "."
   Esperanto  -> "La dependeco " <> bt s <> " de " <> bt par <> " ne povis troviĝi."
   Dutch      -> "Het afhankelijkheid " <> bt s <> "kan niet worden gevonden."
+  Ukrainian  -> "Залежність " <> bt s <> " не було знайдено."
   _          -> "The dependency " <> bt s <> " of " <> bt par <> " couldn't be found."
 depError l (BrokenProvides (PkgName pkg) (Provides (PkgName pro)) (PkgName n)) = case l of
+  Arabic     -> "." <> bt pro <> " اللتي تقدم ," <> bt n <> " تحتاج" <> bt pkg <> " الرزمة"
   Spanish    -> "El paquete " <> bt pkg <> " necesita " <> bt n <> " que proporciona " <> bt pro <> "."
   Russian    -> "Пакету " <> bt pkg <> " требуется " <> bt n <> ", предоставляющий " <> bt pro <> "."
   Esperanto  -> "La pakaĵo, " <> bt pkg <> " bezonas " <> bt n <> ", kiu donas " <> bt pro <> "."
   Italian    -> "Il pacchetto " <> bt pkg <> " ha bisogno di " <> bt n <> ", che rende disponibile " <> bt pro <> "."
   Dutch      -> "Het pakket" <> bt pkg <> " heeft " <> bt n <> " nodig, die " <> bt pro <> " biedt."
+  Ukrainian  -> "Пакунку " <> bt pkg <> " потрібен " <> bt n <> ", який забезпечує " <> bt pro <> "."
   _          -> "The package " <> bt pkg <> " needs " <> bt n <> ", which provides " <> bt pro <> "."
 
 missingPkg_3 :: Language -> Doc AnsiStyle
 missingPkg_3 = \case
   Polish     -> "Wystąpił problem podczas reorganizowania grafu zależności. Jeśli widzisz tą wiadomość, coś poszło bardzo nie tak."
+  Arabic     -> ".حدث خطا في اعادة تنظيم الرسم البياني التبعي. اذا رايت هذه الرسالة، فهناك مشكلة كبيرة"
   Spanish    -> "Se produjo un error al reorganizar el gráfico de dependencia. Si ves esto, algo está muy mal."
   Esperanto  -> "Eraro okazis kiam reorganizi la grafeo de dependeco. Io estas erarega."
   Italian    -> "C'è stato un errore nella riorganizzazione della gerarchia delle dipendenze. Se vedi questo messaggio, qualcosa è andato davvero storto."
@@ -422,9 +466,11 @@
 missingPkg_4 :: [NonEmpty PkgName] -> Language -> Doc AnsiStyle
 missingPkg_4 pns = \case
   Polish     -> vsep $ "Następujące cykle zależności zostały wykryte:" : pns'
+  Arabic     -> vsep $ pns' <> [":تم اكتشاف دورات التبعية التالية"]
   Spanish    -> vsep $ "Se detectaron los siguientes ciclos de dependencia:" : pns'
   Italian    -> vsep $ "Sono stati individuati i seguenti cicli di dipendenza:" : pns'
   Dutch      -> vsep $ "The volgende afhankelijkheidscycli zijn gedetecteerd:" : pns'
+  Ukrainian  -> vsep $ "Було помічено цикл залежностей:" : pns'
   _ -> vsep $ "The following dependency cycles were detected:" : pns'
   where
     pns' :: [Doc ann]
@@ -433,9 +479,11 @@
 missingPkg_5 :: PkgName -> Language -> Doc AnsiStyle
 missingPkg_5 (PkgName p) = \case
   Polish    -> bt p <> " nie istnieje."
+  Arabic    -> ".ليس موجود " <> bt p
   Spanish   -> bt p <> " no existe."
   Italian   -> bt p <> " non esiste."
   Dutch     -> bt p <> " bestaat niet."
+  Ukrainian -> "Пакунок " <> bt p <> " не існує."
   _         -> bt p <> " does not exist."
 
 -----------------
@@ -444,6 +492,7 @@
 displayOutputLanguages_1 :: Language -> Doc AnsiStyle
 displayOutputLanguages_1 = \case
     Japanese   -> "aura は下記の言語に対応しています："
+    Arabic     -> ":اللغات التالية موجودة"
     Polish     -> "Następujące języki są dostępne:"
     Croatian   -> "Dostupni su sljedeći jezici:"
     Swedish    -> "Följande språk är tillängliga:"
@@ -459,6 +508,7 @@
     Chinese    -> "以下语言是可用的："
     Esperanto  -> "La sekvaj lingvo estas disponebla:"
     Dutch      -> "De volgende talen zijn beschikbaar:"
+    Ukrainian  -> "Доступні наступні мови:"
     _          -> "The following languages are available:"
 
 ----------------------------
@@ -468,6 +518,7 @@
 auraCheck_1 :: Language -> Doc AnsiStyle
 auraCheck_1 = \case
     Japanese   -> "Aura が更新されています。Auraだけ先に更新しますか？"
+    Arabic     -> "موجود. هل تريد ان تحدث اولا؟ Aura تحديث الى"
     Polish     -> "Dostępna jest nowa wersja Aura. Czy chcesz ją najpierw aktualizować?"
     Croatian   -> "Dostupna je nova verzija Aura. Želite li prvo ažurirati?"
     German     -> "Ein Update für aura ist verfügbar. Dies zuerst aktualisieren?"
@@ -482,11 +533,13 @@
     Swedish    -> "Det finns en uppdatering tillgänglig till Aura. Vill du uppdatera Aura först?"
     Esperanto  -> "Ĝisdatigo de Aura estas disponebla. Ĉu ĝisdatigas ĝin?"
     Dutch      -> "Aura update beschikbaar. Eerst updaten?"
+    Ukrainian  -> "Доступно оновлення для Aura. Бажаєте оновити її першою?"
     _          -> "Aura update available. Update it first?"
 
 install_2 :: Language -> Doc AnsiStyle
 install_2 = \case
     Japanese   -> "適切なパッケージを入力してください。"
+    Arabic     -> ".لم يتم تحديد حزم صالحة"
     Polish     -> "Nie podano prawidłowych pakietów."
     Croatian   -> "Nije specificiran nijedan ispravan paket."
     Swedish    -> "Inga giltiga paket valda."
@@ -502,11 +555,13 @@
     Chinese    -> "没有指定有效的包。"
     Esperanto  -> "Ne validajn pakaĵojn specifis"
     Dutch      -> "Geen geldige pakketen gespecificeerd."
+    Ukrainian  -> "Валідні пакунки не вказані."
     _          -> "No valid packages specified."
 
 install_3 :: Language -> Doc AnsiStyle
 install_3 = \case
     Japanese   -> "続行しますか？"
+    Arabic     -> "هل تريد ان تكمل؟"
     Turkish    -> "Devam edilsin mi?"
     Polish     -> "Kontynuować?"
     Croatian   -> "Nastaviti?"
@@ -523,11 +578,13 @@
     Chinese    -> "继续？"
     Esperanto  -> "Ĉu daŭrigi?"
     Dutch      -> "Doorgaan?"
+    Ukrainian  -> "Продовжити?"
     _          -> "Continue?"
 
 install_4 :: Language -> Doc AnsiStyle
 install_4 = \case
     Japanese   -> "続行は意図的に阻止されました。"
+    Arabic     -> ".تم الغاء التثبيت يدويا"
     Polish     -> "Instalacja została przerwana przez użytkownika."
     Croatian   -> "Instalacija prekinuta od strane korisnika."
     Swedish    -> "Installationen avbröts manuellt."
@@ -543,11 +600,13 @@
     Chinese    -> "手动安装已中止。"
     Esperanto  -> "Instalon ĉesigi permane"
     Dutch      -> "Installatie handmatig afgebroken."
+    Ukrainian  -> "Встановлення скасовано користувачем."
     _          -> "Installation manually aborted."
 
 install_5 :: Language -> Doc AnsiStyle
 install_5 = \case
     Japanese   -> "従属パッケージを確認中・・・"
+    Arabic     -> ".تحديد التبعيات"
     Polish     -> "Ustalanie zależności..."
     Croatian   -> "Određivanje zavisnosti..."
     Swedish    -> "Avgör beroenden..."
@@ -563,12 +622,14 @@
     Chinese    -> "确定依赖中..."
     Esperanto  -> "Difinas dependecojn..."
     Dutch      -> "Afhankelijkheden aan het bepalen..."
+    Ukrainian  -> "Визначення залежностей..."
     _          -> "Determining dependencies..."
 
 -- 2014 December  7 @ 14:45 - NEEDS TRANSLATIONS
 confirmIgnored_1 :: PkgName -> Language -> Doc AnsiStyle
 confirmIgnored_1 (bt . pnName -> p) = \case
     Japanese   -> p <> "は無視されるはずのパッケージです。それでも続行しますか？"
+    Arabic     -> "تم تحديده كمجهول. هل تريد ان تحمل على أي حال؟ " <> p
     Polish     -> p <> " jest oznaczony jako ignorowany. Zainstalować mimo tego?"
     Spanish    -> p <> " está marcado como ignorado. ¿Deseas instalarlo de todas formas?"
     Portuguese -> p <> " está marcado como Ignorado. Deseja instalar mesmo assim?"
@@ -584,6 +645,7 @@
 reportNonPackages_1 :: Language -> Doc AnsiStyle
 reportNonPackages_1 = \case
     Japanese   -> "下記はAURパッケージではありません："
+    Arabic     -> ".AURالرزمة التالية ليست من اﻟ"
     Polish     -> "To nie są pakiety AUR:"
     Croatian   -> "Ovo nisu AUR paketi:"
     Swedish    -> "Följande är inte paket:"
@@ -599,12 +661,14 @@
     Chinese    -> "以下软件不是 AUR 包："
     Esperanto  -> "La sekvaj ne estas pakaĵoj de la AUR:"
     Dutch      -> "De volgende pakketten zijn geen AUR pakketten:"
+    Ukrainian  -> "Нижче вказано те, що не є пакунком AUR:"
     _          -> "The following are not AUR packages:"
 
 -- NEEDS TRANSLATION
 reportUnneededPackages_1 :: Language -> Doc AnsiStyle
 reportUnneededPackages_1 = \case
     Japanese   -> "下記のパッケージは既にインストールされています："
+    Arabic     -> ".الرزمة التالية مثبتة"
     Polish     -> "Następujące pakiety zostały już zainstalowane:"
     Portuguese -> "Os seguintes pacotes já estão instalados:"
     Russian    -> "Следующие пакеты уже установлены:"
@@ -615,11 +679,13 @@
     Swedish    -> "Följande paket är redan installerade:"
     Esperanto  -> "La sekvaj pakaĵoj jam instaliĝas:"
     Dutch      -> "The volgende pakketten zijn al geinstalleerd:"
+    Ukrainian  -> "Наступні пакунки вже встановлені:"
     _          -> "The following packages are already installed:"
 
 reportPkgsToInstall_1 :: Language -> Doc AnsiStyle
 reportPkgsToInstall_1 = \case
     Japanese   -> "Pacmanの従属パッケージ："
+    Arabic     -> ":تبعيات المستودع"
     Polish     -> "Zależności z repozytoriów:"
     Croatian   -> "Zavisnosti iz repozitorija:"
     Swedish    -> "Beroenden ifrån lager:"
@@ -635,12 +701,14 @@
     Chinese    -> "仓库依赖："
     Esperanto  -> "Dependecoj de deponejo:"
     Dutch      -> "Repository afhankelijkheden:"
+    Ukrainian  -> "Залежності репозиторія:"
     _          -> "Repository dependencies:"
 
 -- NEEDS AN UPDATE
 reportPkgsToInstall_2 :: Language -> Doc AnsiStyle
 reportPkgsToInstall_2 = \case
     Japanese   -> "AURのパッケージ:"
+    Arabic     -> ":AURرزمةاﻟ"
     Polish     -> "Pakiety AUR:"
     Turkish    -> "AUR Paketleri:"
     Croatian   -> "AUR Paketi:"
@@ -656,11 +724,13 @@
     Swedish    -> "AUR Paket:"
     Esperanto  -> "Pakaĵoj de AUR:"
     Dutch      -> "AUR Pakketten:"
+    Ukrainian  -> "Пакунки AUR:"
     _          -> "AUR Packages:"
 
 reportPkgsToInstall_3 :: Language -> Doc AnsiStyle
 reportPkgsToInstall_3 = \case
     Japanese   -> "AURの従属パッケージ："
+    Arabic     -> ":AURتبعيات اﻟ"
     Polish     -> "Zależności z AUR:"
     Croatian   -> "Zavisnosti iz AUR-a:"
     Swedish    -> "Beroenden ifrån AUR:"
@@ -674,12 +744,14 @@
     Norwegian  -> "Avhengigheter fra AUR:"
     Esperanto  -> "Dependencoj de AUR:"
     Dutch      -> "AUR-afhankelijkheden:"
+    Ukrainian  -> "Залежності в AUR:"
     _          -> "AUR dependencies:"
 
 -- NEEDS TRANSLATION
 reportPkgbuildDiffs_1 :: PkgName -> Language -> Doc AnsiStyle
 reportPkgbuildDiffs_1 (bt . pnName -> p) = \case
     Japanese   -> p <> "のPKGBUILDはまだ保存されていません。"
+    Arabic     -> ".مخزن الان PKGBUILD لا يوجد" <> p
     Polish     -> p <> " nie ma jeszcze przechowywanego pliku PKGBUILD."
     Croatian   -> p <> " još nema pohranjen PKGBUILD."
     German     -> p <> " hat noch keinen gespeicherten PKGBUILD."
@@ -695,12 +767,14 @@
     Swedish    -> p <> " har ännu ingen PKGBUILD."
     Esperanto  -> p <> " ne havas PKGBUILD jam."
     Dutch      -> p <> " heeft nog geen opgeslagen PKGBUILD."
+    Ukrainian  -> "В " <> p <> " ще не зберігається PKGBUILD."
     _          -> p <> " has no stored PKGBUILD yet."
 
 -- NEEDS TRANSLATION
 reportPkgbuildDiffs_3 :: PkgName -> Language -> Doc AnsiStyle
 reportPkgbuildDiffs_3 (bt . pnName -> p) = \case
     Japanese   -> p <> "のPKGBUILD変更報告："
+    Arabic     -> "قد تغير PKGBUILD " <> p
     Polish     -> "Zmiany w PKGBUILD dla " <> p <> ":"
     Croatian   -> "Promjene u PKGBUILD-u za " <> p <> ":"
     German     -> "PKGBUILD-Änderungen von " <> p <> ":"
@@ -716,12 +790,14 @@
     Swedish    -> "Förändringar i PKGBUILD för " <> p <> ":"
     Esperanto  -> p <> " PKGBUILD ŝanĝoj:"
     Dutch      -> p <> " PKGBUILD aanpassingen:"
+    Ukrainian  -> "Зміни PKGBUILD в " <> p <> ":"
     _          -> p <> " PKGBUILD changes:"
 
 -- NEEDS TRANSLATION
 reportPkgsToUpgrade_1 :: Language -> Doc AnsiStyle
 reportPkgsToUpgrade_1 = \case
     Japanese   -> "アップグレードするAURパッケージ："
+    Arabic     -> "للتحديث AURرزمة اﻟ"
     Polish     -> "Pakiety z AUR do zaktualizowania:"
     Croatian   -> "AUR paketi za nadogradnju:"
     Swedish    -> "AUR-paket att uppgradera:"
@@ -737,12 +813,14 @@
     Chinese    -> "要升级的 AUR 包："
     Esperanto  -> "Pakaĵoj de AUR ĝisdatigi:"
     Dutch      -> "AUR-Pakketten om te upgraden:"
+    Ukrainian  -> "Пакунки AUR, готові для оновлення:"
     _          -> "AUR Packages to upgrade:"
 
 -- NEEDS UPDATING
 reportBadDowngradePkgs_1 :: Language -> Doc AnsiStyle
 reportBadDowngradePkgs_1 = \case
     Japanese   -> "このパッケージはキャッシュには入っていないので、ダウングレードできません。"
+    Arabic     -> "ما يلي ليس له إصدارات في ذاكرة التخزين المؤقت ، وبالتالي لا يمكن الرجوع إلى الإصدار السابق."
     Polish     -> "Poniższe pakiety nie są zainstalowane i nie mogą być zainstalowane w starszej wersji:"
     Croatian   -> "Sljedeći paketi nisu instalirani te se stoga ne mogu vratiti na stare verzije:"
     Swedish    -> "Följande paket är inte installerade, och kan därför inte bli nergraderade:"
@@ -758,18 +836,22 @@
     Chinese    -> "以下包在缓存中没有版本，所以无法被降级："
     Esperanto  -> "La sekvaj pakaĵoj havas ne kaŝmemorigitajn versiojn, do ĝi ne povas malpromociigi:"
     Dutch      -> "De volgende pakketten hebben geen versie in de cache, en kunnen dus niet gedowngrade worden."
+    Ukrainian  -> "Наступних пакунків немає в кеші. Отже, вони не можуть відкотитися до старої версії:"
     _          -> "The following have no versions in the cache, and thus can’t be downgraded:"
 
 reportBadDowngradePkgs_2 :: PkgName -> Language -> Doc AnsiStyle
 reportBadDowngradePkgs_2 (PkgName p) = \case
-  Spanish     -> pretty p <+> "no tiene una versión en la caché."
-  Italian     -> pretty p <+> "non ha alcuna versione nella cache."
-  Dutch       -> pretty p <+> "heeft geen versie in de cache."
-  _ -> pretty p <+> "has no version in the cache."
+  Spanish   -> pretty p <+> "no tiene una versión en la caché."
+  Arabic    -> ".ليس  لديه اصدار في الذاكرة التخزين الموقت" <+> pretty p
+  Italian   -> pretty p <+> "non ha alcuna versione nella cache."
+  Dutch     -> pretty p <+> "heeft geen versie in de cache."
+  Ukrainian -> pretty p <+> "не має версії в кеші."
+  _         -> pretty p <+> "has no version in the cache."
 
 upgradeAURPkgs_1 :: Language -> Doc AnsiStyle
 upgradeAURPkgs_1 = \case
     Japanese   -> "パッケージ情報をダウンロード中・・・"
+    Arabic     -> "...احضار معلومات الحزمة"
     Polish     -> "Pobieranie informacji o pakietach..."
     Croatian   -> "Preuzimanje podataka o paketima..."
     Swedish    -> "Hämtar paketinformation..."
@@ -785,11 +867,13 @@
     Chinese    -> "正在获取包信息..."
     Esperanto  -> "Venigas informacion de pakaĵoj..."
     Dutch      -> "Pakket informatie aan het ophalen..."
+    Ukrainian  -> "Збираємо інформацію про пакунок..."
     _          -> "Fetching package information..."
 
 upgradeAURPkgs_2 :: Language -> Doc AnsiStyle
 upgradeAURPkgs_2 = \case
     Japanese   -> "バージョンを比較中・・・"
+    Arabic     -> "...مقارنة اصدارات الحزمة"
     Polish     -> "Porównywanie wersji pakietów..."
     Croatian   -> "Uspoređivanje verzija paketa..."
     Swedish    -> "Jämför paket-versioner..."
@@ -805,11 +889,13 @@
     Chinese    -> "正在比较包的版本..."
     Esperanto  -> "Komparas versiojn de pakaĵoj..."
     Dutch      -> "Pakket versies aan het vergelijken..."
+    Ukrainian  -> "Порівнюємо версії пакунків..."
     _          -> "Comparing package versions..."
 
 upgradeAURPkgs_3 :: Language -> Doc AnsiStyle
 upgradeAURPkgs_3 = \case
     Japanese   -> "アップグレードは必要ありません。"
+    Arabic     -> ".AURلا يلزم تحديث حزمة اﻟ"
     Polish     -> "Nie jest wymagana aktualizacja pakietów z AUR."
     Croatian   -> "Svi AUR paketi su ažurirani."
     Swedish    -> "Inga AUR-paketsuppgraderingar behövs."
@@ -825,11 +911,13 @@
     Chinese    -> "没有需要升级的 AUR 包。"
     Esperanto  -> "Ne ĝisdatigoj de pakaĵoj de AUR necesas."
     Dutch      -> "Geen AUR-pakket upgrades vereist."
+    Ukrainian  -> "Пакунки AUR не потребують оновлення."
     _          -> "No AUR package upgrades necessary."
 
 removeMakeDepsAfter_1 :: Language -> Doc AnsiStyle
 removeMakeDepsAfter_1 = \case
     Japanese   -> "あと片付け。必要ないパッケージを削除："
+    Arabic     -> "...التي لا لزوم لها makeازالة التبعيات اﻟ"
     Polish     -> "Usuwanie niepotrzebnych zależności potrzebnych do budowy..."
     Croatian   -> "Uklanjanje nepotrebnih zavisnosti vezanih uz izgradnju..."
     Swedish    -> "Tar bort obehövda beroenden för `make`..."
@@ -845,6 +933,7 @@
     Chinese    -> "移除不需要的 make 依赖..."
     Esperanto  -> "Forigas nenecesajn dependecojn de make..."
     Dutch      -> "Onnodige make afhankelijkheden aan het verwijderen..."
+    Ukrainian  -> "Видаляємо непотрібні залежності make..."
     _          -> "Removing unneeded make dependencies..."
 
 ----------------------------
@@ -854,6 +943,7 @@
 cleanStates_2 :: Int -> Language -> Doc AnsiStyle
 cleanStates_2 n@(bt . tshow -> s) = \case
     Japanese   -> s <> "個のパッケージ状態記録だけが残される。その他削除？"
+    Arabic     -> "سيتم الاحتفاظ بحالات الحزمة.هل تريد ازالة الباقي؟ " <> s
     Polish     -> s <> " stan pakietów zostanie zachowany. Usunąć resztę?"
     Croatian   -> s <> " stanja paketa će biti zadržano. Ukloniti ostatak?"
     German     -> s <> " Paketzustände werden behalten. Den Rest entfernen?"
@@ -869,12 +959,14 @@
     Swedish    -> s <> " paket kommer att bevaras. Ta bort resten?"
     Esperanto  -> s <> " statoj de pakaĵoj teniĝas. Ĉu forigi la ceteron?"
     Dutch      -> s <> " pakketstatussen worden behouden. De rest verwijderen?"
+    Ukrainian  -> s <> " стан пакунків будуть залишені. Видалити решту?"
     _          -> s <> " package states will be kept. Remove the rest?"
 
 -- NEEDS TRANSLATION
 cleanStates_3 :: Language -> Doc AnsiStyle
 cleanStates_3 = \case
     Japanese   -> "何も削除しないで終了します。"
+    Arabic     -> ".لم يتم ازالة اي حالة حزمة"
     Polish     -> "Żaden stan pakietu nie został usunięty."
     Croatian   -> "Nijedno stanje paketa nije uklonjeno."
     German     -> "Keine Paketzustände wurden entfernt."
@@ -890,47 +982,56 @@
     Swedish    -> "Inga paket togs bort."
     Esperanto  -> "Ne statojn de pakaĵoj forigis."
     Dutch      -> "Geen pakketstatussen verwijderd."
+    Ukrainian  -> "Стани пакунків залишились недоторкані."
     _          -> "No package states were removed."
 
 cleanStates_4 :: Int -> Language -> Doc AnsiStyle
 cleanStates_4 n = \case
-  Japanese  -> "現在のパッケージ状態記録：" <> pretty n <> "個。"
+  Japanese  -> "現在のパッケージ状態記録：" <+> pretty n <+> "個。"
+  Arabic    -> ".محفوظة " <+> pretty n <+> " لديك حاليا حالات حزمة"
   Polish    -> "Chwilowo posiadasz" <+> pretty n <+> "zapisanych stanów pakietów."
   Spanish   -> "Actualmente tiene " <+> pretty n <+> "estados de paquetes guardados."
   Russian   -> "У вас сейчас " <+> pretty n <+> pluralRussian " сохраненное состояние пакета" " сохраненных состояний пакета" " сохраненных состояний пакетов." n
   Italian   -> "Al momento ci sono" <+> pretty n <+> "stati di pacchetti salvati."
   Esperanto -> "Vi havas " <+> pretty n <+> " konservajn statojn de pakaĵoj."
   Dutch     -> "U heeft momenteel" <+> pretty n <+> "opgeslagen pakketstatussen."
-  _         -> "You currently have" <+> pretty n <+> "saved package states."
+  Ukrainian -> "Зараз ви маєте " <+> pretty n <+> " збережених станів пакунків."
+  _         -> "You currently have " <+> pretty n <+> " saved package states."
 
 cleanStates_5 :: Text -> Language -> Doc AnsiStyle
 cleanStates_5 t = \case
-  Japanese  -> "一番最近に保存されたのは：" <> pretty t
+  Japanese  -> "一番最近に保存されたのは：" <+> pretty t
+  Arabic    -> pretty t <+> ":احدث ما تم حفظه"
   Polish    -> "Ostatnio zapisane:" <+> pretty t
   Spanish   -> "Guardado recientemente:" <+> pretty t
   Russian   -> "Последнее сохраненное:" <+> pretty t
   Italian   -> "Salvato più recentemente:" <+> pretty t
   Esperanto -> "Lastaj konservaj:" <+> pretty t
   Dutch     -> "Meest recent opgeslagen:" <+> pretty t
+  Ukrainian -> "Останні збереженні:" <+> pretty t
   _         -> "Most recently saved:" <+> pretty t
 
 cleanStates_6 :: Int -> Language -> Doc AnsiStyle
 cleanStates_6 n = \case
   Polish    -> pretty n <+> "jest przypiętych i nie zostanie usuniętych."
+  Arabic    -> ".اذا كانو مثبتين ولا يمكن ازالتهم " <+> pretty n
   Spanish   -> pretty n <+> "de estos están anclados y no se eliminarán."
   Italian   -> pretty n <+> "di questi sono stati fissati, perciò non saranno rimossi."
   Dutch     -> pretty n <+> "hiervan zijn vastgezet, en worden niet verwijderd."
+  Ukrainian -> pretty n <+> "були закріплені та залишуться недоторканими."
   _         -> pretty n <+> "of these are pinned, and won't be removed."
 
 readState_1 :: Language -> Doc AnsiStyle
 readState_1 = \case
     Polish     -> "Ten plik stanu nie mógł zostać odczytany. Czy jest to prawidłowy plik JSON?"
+    Arabic     -> "صحيح؟ JSON فشل في تحليل ملف الحالة. هل"
     Spanish    -> "Ese archivo de estado no se pudo analizar. ¿Es un archivo JSON válido?"
     Portuguese -> "O arquivo de estado não pôde ser interpretado. É um arquivo JSON válido?"
     Russian    -> "Это состояние не распознано. Это корректный JSON?"
     Italian    -> "Non è stato possibile analizzare il file di stato. E' correttamente formattato in JSON?"
     Esperanto  -> "Tiu statdosiero paneis sintake analizi. Ĉu ĝi estas valida JSON?"
     Dutch      -> "Dat statusbestand kon niet worden geparseerd. Is het legale JSON?"
+    Ukrainian  -> "Стан не був розпізнаний правильно. Це точно коректний JSON?"
     _          -> "That state file failed to parse. Is it legal JSON?"
 
 ----------------------------
@@ -939,6 +1040,7 @@
 getDowngradeChoice_1 :: PkgName -> Language -> Doc AnsiStyle
 getDowngradeChoice_1 (bt . pnName -> p) = \case
     Japanese   -> p <> "はどのバージョンにしますか？"
+    Arabic     -> "الذي تريده؟ . " <> p <> " ما هو اصدار"
     Polish     -> "Którą wersję pakietu " <> p <> " zainstalować?"
     Croatian   -> "Koju verziju paketa " <> p <> " želite?"
     Swedish    -> "Vilken version av " <> p <> " vill du ha?"
@@ -954,11 +1056,13 @@
     Chinese    -> "你希望安装 " <> p <> " 的哪个版本？"
     Esperanto  -> "Kiu versio de " <> p <> " vi volas?"
     Dutch      -> "Welke versie van " <> p <> " wil je?"
+    Ukrainian  -> "Яку версію пакунку " <> p <> " ви бажаєте?"
     _          -> "What version of " <> p <> " do you want?"
 
 backupCache_3 :: Language -> Doc AnsiStyle
 backupCache_3 = \case
     Japanese   -> "バックアップ先は存在しません。"
+    Arabic     -> ".عدم وجود موقع النسخ الاحتياطي"
     Polish     -> "Lokalizacja kopii zapasowych nie istnieje."
     Croatian   -> "Lokacija sigurnosne kopije ne postoji."
     Swedish    -> "Specifierad backup-plats finns inte."
@@ -974,11 +1078,13 @@
     Chinese    -> "备份位置不存在。"
     Esperanto  -> "La savkopia loko ne ekzistas."
     Dutch      -> "De back-up lokatie bestaat niet."
+    Ukrainian  -> "Шлях до резервної копії не існує."
     _          -> "The backup location does not exist."
 
 backupCache_4 :: FilePath -> Language -> Doc AnsiStyle
 backupCache_4 (bt . T.pack -> dir) = \case
     Japanese   -> "キャッシュのバックアップ先：" <> dir
+    Arabic     -> dir <> " التنسيخ الاحتياطي الى"
     Polish     -> "Tworzenie kopii zapasowej pamięci podręcznej w " <> dir
     Croatian   -> "Stvaram sigurnosnu kopiju u " <> dir
     Swedish    -> "Tar backup på cache-filer till " <> dir
@@ -994,11 +1100,13 @@
     Chinese    -> "正在将缓存备份到 " <> dir
     Esperanto  -> "Enarkivigas la kaŝdosieron al " <> dir
     Dutch      -> "Back-up van cache aan het maken naar " <> dir
+    Ukrainian  -> "Зберігаємо резервну копію до " <> dir
     _          -> "Backing up cache to " <> dir
 
 backupCache_5 :: Int -> Language -> Doc AnsiStyle
 backupCache_5 (bt . tshow -> n) = \case
     Japanese   -> "パッケージのファイル数：" <> n
+    Arabic     -> n <> " :حزمة الملفات الى النسخ الاحتياطي"
     Polish     -> "Pliki będące częścią\xa0kopii zapasowej: " <> n
     Croatian   -> "Datoteke koje su dio sigurnosne kopije: " <> n
     Swedish    -> "Paket-filer att ta backup på: " <> n
@@ -1014,11 +1122,13 @@
     Chinese    -> "将要备份的包文件：" <> n
     Esperanto  -> "La dosierojn de la pakaĵoj enarkivigi: " <> n
     Dutch      -> "Pakketbestanden om te back-uppen: " <> n
+    Ukrainian  -> "Файли пакунку для резервної копії: " <> n
     _          -> "Package files to backup: " <> n
 
 backupCache_6 :: Language -> Doc AnsiStyle
 backupCache_6 = \case
     Japanese   -> "バックアップを実行しますか？"
+    Arabic     -> "هل تريد ان تكمل النسخ الاحتياطي؟"
     Polish     -> "Kontynuować tworzenie kopii zapasowej?"
     Croatian   -> "Nastavi sa stvaranjem sigurnosne kopije?"
     Swedish    -> "Fortsätt med backup?"
@@ -1034,11 +1144,13 @@
     Chinese    -> "开始备份？"
     Esperanto  -> "Ĉu daŭrigu enarkivigi?"
     Dutch      -> "Doorgaan met back-up?"
+    Ukrainian  -> "Продовжити створення резервної копії?"
     _          -> "Proceed with backup?"
 
 backupCache_7 :: Language -> Doc AnsiStyle
 backupCache_7 = \case
     Japanese   -> "バックアップは意図的に阻止されました。"
+    Arabic     -> ".اقاف النسخ الاحتياطي يدويا"
     Polish     -> "Tworzenie kopii zapasowej zostało przerwane przez użytkownika."
     Croatian   -> "Stvaranje sigurnosne kopije prekinuto od strane korisnika."
     Swedish    -> "Backup avbröts manuellt."
@@ -1054,11 +1166,13 @@
     Chinese    -> "手动备份已中止。"
     Esperanto  -> "Enarkivigadon ĉesigis permane."
     Dutch      -> "Back-up handmatig afgebroken."
+    Ukrainian  -> "Створення резервної копії перервано користувачем."
     _          -> "Backup manually aborted."
 
 backupCache_8 :: Language -> Doc AnsiStyle
 backupCache_8 = \case
     Japanese   -> "バックアップ中。数分かかるかもしれません。"
+    Arabic     -> "...النسخ الاحتياطي. هذه العملية يمكن ان تاخذ وقت"
     Polish     -> "Tworzenie kopii zapasowej. To może potrwać kilka minut..."
     Croatian   -> "Stvaranje sigurnosne kopije. Ovo može potrajati nekoliko minuta..."
     Swedish    -> "Tar backup. Det här kan ta ett tag..."
@@ -1074,11 +1188,13 @@
     Chinese    -> "正在备份中。可能需要几分钟的时间..."
     Esperanto  -> "Enarkiviganta. Ĉi tiu eble daŭros dum kelkaj tagoj..."
     Dutch      -> "Aan het back-uppen. Dit kan een aantal minuten duren..."
+    Ukrainian  -> "Створюємо резервну копію. Це може зайняти декілька хвилин..."
     _          -> "Backing up. This may take a few minutes..."
 
 copyAndNotify_1 :: Int -> Language -> Doc AnsiStyle
 copyAndNotify_1 (cyan . pretty -> n) = \case
     Japanese   -> "#[" <> n <> "]をコピー中・・・"
+    Arabic     -> "["<> n <> "]# نسخ"
     Polish     -> "Kopiowanie #[" <> n <> "]"
     Turkish    -> "Kopyalanıyor #[" <> n <> "]"
     Croatian   -> "Kopiranje #[" <> n <> "]"
@@ -1095,11 +1211,13 @@
     Chinese    -> "正在复制 #[" <> n <> "]"
     Esperanto  -> "Kopianta #[" <> n <> "]"
     Dutch      -> "Kopiëren #[" <> n <> "]"
+    Ukrainian  -> "Копіюємо #[" <> n <> "]"
     _          -> "Copying #[" <> n <> "]"
 
 cleanCache_2 :: Language -> Doc AnsiStyle
 cleanCache_2 = \case
     Japanese   -> "パッケージ・キャッシュは完全に削除されます。"
+    Arabic     -> ".هذا سوف يحذف ذاكرة التخزين الموقت للحزمة بالكامل"
     Polish     -> "To usunie WSZYSTKIE pakiety z pamięci podręcznej."
     Croatian   -> "Ovo će izbrisati CIJELI cache paketa."
     Swedish    -> "Detta kommer ta bort HELA paket-cachen."
@@ -1115,11 +1233,13 @@
     Chinese    -> "这将会删除全部的包缓存。"
     Esperanto  -> "Ĉi tiu forigos la TUTAN kaŝmemoron de pakaĵoj."
     Dutch      -> "Hiermee wordt de GEHELE pakketcache verwijderd."
+    Ukrainian  -> "Ця операція ПОВНІСТЮ видалить кеш пакунків."
     _          -> "This will delete the ENTIRE package cache."
 
 cleanCache_3 :: Word -> Language -> Doc AnsiStyle
 cleanCache_3 n@(bt . tshow -> s) = \case
     Japanese   -> "パッケージ・ファイルは" <> s <> "個保存されます。"
+    Arabic     -> ".من كل ملف حزمة سيتم الاحتفاظ بها " <> s
     Polish     -> s <> " wersji każdego pakietu zostanie zachowane."
     Croatian   -> s <> " zadnjih verzija svakog paketa će biti zadržano."
     Swedish    -> s <> " av varje paketfil kommer att sparas."
@@ -1135,11 +1255,13 @@
     Chinese    -> "每个包文件将会保存 " <> s <> " 个版本。"
     Esperanto  -> s <> " de ĉiu dosiero de pakaĵo teniĝos."
     Dutch      -> s <> " van elk pakketbestand wordt bewaard."
+    Ukrainian  -> s <> " версія кожного пакунку залишиться недоторканою."
     _          -> s <> " of each package file will be kept."
 
 cleanCache_4 :: Language -> Doc AnsiStyle
 cleanCache_4 = \case
     Japanese   -> "残りは全部削除されます。承知していますか？"
+    Arabic     -> "سيتم حذف الباقي. هل تريد أن تكمل؟"
     Polish     -> "Wszystko inne zostanie usunięte. Na pewno?"
     Croatian   -> "Ostali paketi će biti izbrisani. Jeste li sigurni?"
     Swedish    -> "Resten kommer att tas bort. Är det OK?"
@@ -1155,11 +1277,13 @@
     Chinese    -> "其余的将会被删除。确定？"
     Esperanto  -> "La cetero foriĝos. Ĉu bone?"
     Dutch      -> "De rest wordt verwijderd. OK?"
+    Ukrainian  -> "Все інше буде видалено. Гаразд?"
     _          -> "The rest will be deleted. Okay?"
 
 cleanCache_5 :: Language -> Doc AnsiStyle
 cleanCache_5 = \case
     Japanese   -> "削除の続行は意図的に阻止されました。"
+    Arabic     -> ".تم ايقاف تنظيف ذاكرة الموقت يدويا"
     Polish     -> "Czyszczenie pamięci podręcznej zostało przerwane przez użytkownika."
     Croatian   -> "Čišćenje cache-a paketa prekinuto od strane korisnika."
     Swedish    -> "Cache-rensning avbröts manuellt."
@@ -1175,11 +1299,13 @@
     Chinese    -> "手动清理缓存已中止。"
     Esperanto  -> "Puriganta Kaŝmemoro ĉesis permane."
     Dutch      -> "Cachereiniging handmatig afgebroken."
+    Ukrainian  -> "Очищення кешу було перервано користувачем."
     _          -> "Cache cleaning manually aborted."
 
 cleanCache_6 :: Language -> Doc AnsiStyle
 cleanCache_6 = \case
     Japanese   -> "パッケージ・キャッシュを掃除中・・・"
+    Arabic     -> "...تنظيف رزمة الذاكرة التخزين الموقت"
     Polish     -> "Czyszczenie pamięci podręcznej..."
     Croatian   -> "Čišćenje cache-a paketa..."
     Swedish    -> "Rensar paket-cache..."
@@ -1195,19 +1321,24 @@
     Chinese    -> "正在清理包缓存..."
     Esperanto  -> "Purigas Kaŝmemoron de pakaĵoj..."
     Dutch      -> "Pakketcache aan het reinigen..."
+    Ukrainian  -> "Очищуємо кеш пакунків..."
     _          -> "Cleaning package cache..."
 
 cleanCache_7 :: Word -> Word -> Language -> Doc AnsiStyle
 cleanCache_7 (bt . tshow -> ps) (bt . tshow -> bytes) = \case
+    Arabic     -> ".ميغابايت " <> bytes <> " الذي تاخذ " <> ps <> " الذاكرة التخزين الموقت فيه الرزمة"
     Polish     -> "Pamięć podręczna posiada " <> ps <> " pakietów, zajmujących " <> bytes <> " megabajtów."
     Spanish    -> "La caché contiene " <> ps <> " paquetes, consumiendo " <> bytes <> " megabytes."
+    Ukrainian  -> "Кеш містить " <> ps <> " пакунків, які використовують " <> bytes <> " МБ місця."
     _          -> "The cache contains " <> ps <> " packages, consuming " <> bytes <> " megabytes."
 
 cleanCache_8 :: Word -> Language -> Doc AnsiStyle
 cleanCache_8 (bt . tshow -> bytes) = \case
-   Polish      -> bytes <> " megabajtów zwolnionych."
-   Spanish     -> bytes <> " megabytes liberados."
-   _           -> bytes <> " megabytes freed."
+   Arabic    -> ".ميغابايت محررة " <> bytes
+   Polish    -> bytes <> " megabajtów zwolnionych."
+   Spanish   -> bytes <> " megabytes liberados."
+   Ukrainian -> bytes <> " МБ звільнилось."
+   _         -> bytes <> " megabytes freed."
 
 cleanCache_9 :: Word -> Language -> Doc AnsiStyle
 cleanCache_9 (bt . tshow -> w) = \case
@@ -1217,6 +1348,7 @@
 cleanNotSaved_1 :: Language -> Doc AnsiStyle
 cleanNotSaved_1 = \case
     Japanese   -> "不要パッケージファイルを確認・・・"
+    Arabic     -> "...تحديد ملفات الحزم غير الضرورية"
     Polish     -> "Określanie niepotrzebnych plików pakietów..."
     Croatian   -> "Pronalazim nepotrebne datoteke paketa..."
     German     -> "Bestimme nicht benötigte Paketdateien..."
@@ -1231,12 +1363,14 @@
     Swedish    -> "Beräknar onödiga paketfiler..."
     Esperanto  -> "Decidas nebezonajn dosierojn de pakaĵoj..."
     Dutch      -> "Overbodige pakketbestanden aan het vaststellen..."
+    Ukrainian  -> "Визначачення непотрібних пакунків..."
     _          -> "Determining unneeded package files..."
 
 -- NEEDS TRANSLATION
 cleanNotSaved_2 :: Int -> Language -> Doc AnsiStyle
 cleanNotSaved_2 n@(cyan . pretty -> s) = \case
     Japanese   -> "「" <> s <> "」の不要パッケージファイルがあります。削除しますか？"
+    Arabic     -> "تم العثور على ملفات الحزمة غير الضرورية.هل تريد حذفه؟ " <> s
     Polish     -> s <> " niepotrzebnych plików zostało znalezionych. Usunąć?"
     Croatian   -> s <> " nepotrebnih datoteka pronađeno. Obrisati?"
     German     -> s <> " nicht benötigte Paketdateien gefunden. Löschen?"
@@ -1251,6 +1385,7 @@
     Swedish    -> s <> " oanvända paket hittades. Ta bort?"
     Esperanto  -> s <> " nebezonajn dosierojn de pakaĵoj trovis. Ĉu forigi"
     Dutch      -> s <> " overbodige pakketbestanden gevonden. Verwijderen?"
+    Ukrainian  -> "Знайдено " <> s <> " непотрібних пакунків. Видалити?"
     _          -> s <> " unneeded package files found. Delete?"
 
 ----------------------------
@@ -1265,6 +1400,7 @@
 reportNotInLog_1 :: Language -> Doc AnsiStyle
 reportNotInLog_1 = \case
     Japanese   -> "logファイルには出ていない："
+    Arabic     -> ":لم تظهر هذه في ملف السجل"
     Polish     -> "Tych pakietów nie ma w dzienniku:"
     Croatian   -> "Ovih paketa nema u dnevniku:"
     Swedish    -> "Dessa har inte framkommit i loggfiler:"
@@ -1280,6 +1416,7 @@
     Chinese    -> "这些没有在日志文件中出现："
     Esperanto  -> "Ĉi tiuj ne enestis la protokolajn dosierojn:"
     Dutch      -> "Deze zijn niet verschenen in het logbestand:"
+    Ukrainian  -> "Наступних пакунків немає в лог файлі:"
     _          -> "These have not appeared in the log file:"
 
 -------------------------------
@@ -1293,11 +1430,13 @@
 -- https://github.com/fosskers/aura/issues/498
 connectFailure_1 :: Language -> Doc AnsiStyle
 connectFailure_1 = \case
-  Polish  -> "Nie udało się nawiązać połączenia z AUR. Czy jesteś połączony z internetem?"
-  Spanish -> "No se pudo contactar con el AUR. ¿Tienes conexión a internet?"
-  Italian -> "Non è stato possibile contattare l'AUR. Il computer è connesso ad internet?"
-  Dutch   -> "Contact opnemen met de AUR mislukt. Heeft U een internet connectie?"
-  _       -> "Failed to contact the AUR. Do you have an internet connection?"
+  Polish    -> "Nie udało się nawiązać połączenia z AUR. Czy jesteś połączony z internetem?"
+  Arabic    -> "هل انت متصل بالانترنت؟ .AURفشل الاتصال بـ"
+  Spanish   -> "No se pudo contactar con el AUR. ¿Tienes conexión a internet?"
+  Italian   -> "Non è stato possibile contattare l'AUR. Il computer è connesso ad internet?"
+  Dutch     -> "Contact opnemen met de AUR mislukt. Heeft U een internet connectie?"
+  Ukrainian -> "Не вдалося зв'язатись з AUR. У вас є підключення до інтернету?"
+  _         -> "Failed to contact the AUR. Do you have an internet connection?"
 
 dependencyLookup_1 :: Text -> Language -> Doc AnsiStyle
 dependencyLookup_1 t = \case
@@ -1306,15 +1445,19 @@
 miscAURFailure_1 :: Language -> Doc AnsiStyle
 miscAURFailure_1 = \case
   Polish    -> "Wystąpił nieznany błąd podczas próby łączenia z AUR."
+  Arabic    -> ".بطريقة غير معروفة AURفشل الاتصال بـ"
   Spanish   -> "El contacto con el AUR falló de alguna manera desconocida."
   Italian   -> "C'è stato un errore sconosciuto nel contattare l'AUR."
   Dutch     -> "Contact opnemen met de AUR is op een onbekende manier mislukt."
+  Ukrainian -> "Зв'язок з AUR було обірвано невідомим чином."
   _         -> "Contacting the AUR failed in some unknown way."
 
 miscAURFailure_3 :: Language -> Doc AnsiStyle
 miscAURFailure_3 = \case
   Polish    -> "Plik JSON zwrócony z AUR nie mógł zostać rozszyfrowany."
+  Arabic    -> ".AURالذي تم ارجاعه من اﻟ JSONفشل فك شفرة اﻟ"
   Spanish   -> "El JSON devuelto por el servidor AUR no se pudo decodificar."
+  Ukrainian -> "JSON, який повернувся з сервера AUR, неможливо розшифрувати."
   _         -> "The JSON returned from the AUR server could not be decoded."
 
 infoFields :: Language -> [Text]
@@ -1336,6 +1479,7 @@
 outOfDateMsg :: Maybe Int -> Language -> Doc AnsiStyle
 outOfDateMsg (Just _) = red . \case
     Japanese   -> "AURで要更新！"
+    Arabic     -> "!انتهت صلاحيته"
     Polish     -> "Nieaktualny!"
     Croatian   -> "Zastarjelo!"
     Swedish    -> "Utdaterad!"
@@ -1351,9 +1495,11 @@
     Chinese    -> "过期！"
     Esperanto  -> "Neĝisdata!"
     Dutch      -> "Verouderd!"
+    Ukrainian  -> "Застарів!"
     _          -> "Out of Date!"
 outOfDateMsg Nothing = green . \case
     Japanese   -> "最新"
+    Arabic     -> "حتى الوقت الرهن"
     Polish     -> "Aktualny"
     Croatian   -> "Ažurirano"
     Swedish    -> "Aktuell"
@@ -1369,6 +1515,7 @@
     Chinese    -> "最新"
     Esperanto  -> "Ĝisdata"
     Dutch      -> "Up-to-date"
+    Ukrainian  -> "Найновіший"
     _          -> "Up to Date"
 
 -- NEEDS TRANSLATION
@@ -1376,6 +1523,7 @@
 orphanedMsg (Just m) = const (pretty m)
 orphanedMsg Nothing = red . \case
     Japanese   -> "孤児です!"
+    Arabic     -> "!حزمة يتيمة"
     Polish     -> "Osierocony!"
     Croatian   -> "Nema roditelja!"
     German     -> "Verwaist!"
@@ -1390,6 +1538,7 @@
     Swedish    -> "Föräldralös!"
     Esperanto  -> "Orfita!"
     Dutch      -> "Verweest!"
+    Ukrainian  -> "Осиротів!"
     _          -> "Orphaned!"
 
 -----------------------
@@ -1399,6 +1548,7 @@
 saveState_1 :: Language -> Doc AnsiStyle
 saveState_1 = \case
     Japanese   -> "パッケージ状態の保存完了。"
+    Arabic     -> ". حالة الحزمة محفوظة"
     Polish     -> "Zachowano stan pakietów"
     Croatian   -> "Stanje paketa spremljeno."
     German     -> "Paketzustand gesichert."
@@ -1414,12 +1564,14 @@
     Swedish    -> "Det lokala pakettillståndet har sparats."
     Esperanto  -> "Konservita stato de pakaĵo."
     Dutch      -> "Pakketstatus opgeslagen."
+    Ukrainian  -> "Стан пакунків збережено."
     _          -> "Saved package state."
 
 -- NEEDS TRANSLATION
 restoreState_1 :: Language -> Doc AnsiStyle
 restoreState_1 = \case
     Japanese   -> "対象バージョンがないパッケージ："
+    Arabic     -> ":اصدارات الرجوع المطلوبة غير متوفرة للحزمة التالية"
     Polish     -> "Starsze wersje nie są dostępne dla:"
     Croatian   -> "Tražene stare verzije nisu dostupne za:"
     German     -> "Gewünschte Downgrade-Versionen nicht verfügbar für:"
@@ -1435,11 +1587,13 @@
     Swedish    -> "Den begärda nedgraderingen finns inte tillgänglig för:"
     Esperanto  -> "Petitajn malpromociajn versiojn ne estas disponebla de:"
     Dutch      -> "Verzochtte downgrade versies niet beschikbaar voor:"
+    Ukrainian  -> "Запитані версії для відкату не доступні для:"
     _          -> "Requested downgrade versions not available for:"
 
 restoreState_2 :: Language -> Doc AnsiStyle
 restoreState_2 = \case
     Japanese   -> "保存されたパッケージ状態がない。作るには「-B」を。"
+    Arabic     -> "(لحفظ الحالة الحالية -B استخدم) .عدم وجود حالة محفوظة للرجوع إليها"
     Polish     -> "Brak zapisanych stanów do przywrócenia. (Użyj -B by zapisać aktualny stan)"
     Spanish    -> "No hay estados guardados para ser restaurados. (Utilice -B para guardar el estado actual)"
     Portuguese -> "Nenhum estado disponível para ser recuperado. (Utilize -B para salvar o estado atual)"
@@ -1449,12 +1603,14 @@
     Swedish    -> "Inga sparade tillstånd att återhämta. (Använd -B för att spara det nuvarande tillståndet)"
     Esperanto  -> "Ne konservitaj statoj restaŭros. (Uzu -B konservi la aktualan staton)"
     Dutch      -> "Er zijn geen opgeslagen statussen om te herstellen. (Gebruik -B om de huidige staat op te slaan)"
+    Ukrainian  -> "Немає збережених станів для відновлення. (Викоривуйте -B для збереження теперішнього стану)"
     _          -> "No saved states to be restored. (Use -B to save the current state)"
 
 -- NEEDS TRANSLATION
 reinstallAndRemove_1 :: Language -> Doc AnsiStyle
 reinstallAndRemove_1 = \case
     Japanese   -> "パッケージを変更する必要はありません。"
+    Arabic     -> ".لا يوجد حزمة تحتاج التغير"
     Polish     -> "Żaden pakiet nie wymaga zmian"
     Croatian   -> "Nema paketa kojima su potrebne izmjene."
     German     -> "Keine Pakete brauchen Änderungen."
@@ -1470,6 +1626,7 @@
     Swedish    -> "Inga paket behöver ändras."
     Esperanto  -> "Ne pakaĵoj devas ŝanĝiĝi."
     Dutch      -> "Er zijn geen pakketten die wijzigingen nodig hebben."
+    Ukrainian  -> "Пакунки не потребують оновлення."
     _          -> "No packages need changing."
 
 --------------------------------------
@@ -1478,12 +1635,14 @@
 whoIsBuildUser_1 :: Language -> Doc AnsiStyle
 whoIsBuildUser_1 = \case
     Polish     -> "Nie można określić z którego konta użytkownika chcesz budować."
+    Arabic     -> ".لا يمكن تحديد حساب المستخدم الذي سيتم البناء به"
     Spanish    -> "No se puede determinar el usuario que ejecutará la compilación."
     Portuguese -> "Não foi possível determinal o usuário que executará a compilação."
     Russian    -> "Не удается определить, от имени какого пользователя производить сборку."
     Italian    -> "Non è stato possibile determinare l'utente che eseguirà la compilazione."
     Esperanto  -> "Ne povas decidi, per kiu konto de uzanto munti."
     Dutch      -> "Kan niet bepalen met welk gebruikers account te bouwen."
+    Ukrainian  -> "Не вдається визначити користувача, від імені якого буде проводитись збірка."
     _          -> "Can't determine which user account to build with."
 
 ------------------------
@@ -1492,20 +1651,24 @@
 confParsing_1 :: Language -> Doc AnsiStyle
 confParsing_1 = \case
     Polish     -> "Nie udało się odczytać twojego pliku pacman.conf"
+    Arabic     -> ".الخاص بك pacman.confفشل تحليل ملف اﻟ"
     Spanish    -> "No fue posible analizar su archivo pacman.conf."
     Portuguese -> "Não foi possível interpretar o arquivo pacman.conf ."
     Russian    -> "Не удается распознать формат вашего файла pacman.conf."
     Italian    -> "Non è stato possibile analizzare il file pacman.conf."
     Esperanto  -> "Ne kapablas sintaske analizi vian dosieron, pacman.conf."
     Dutch      -> "Niet in staat om uw pacman.conf bestand te parseren."
+    Ukrainian  -> "Не вдалось зрозуміти вміст файлу pacman.conf."
     _          -> "Unable to parse your pacman.conf file."
 
 provides_1 :: PkgName -> Language -> Doc AnsiStyle
 provides_1 (bt . pnName -> pro) = \case
     Polish     -> pro <+> "jest wymagany/a jako zależność, dostarczana przez wiele pakietów. Proszę wybrać jeden:"
+    Arabic     -> ":مطلوب باعتباره تبعية ، والتي يتم توفيرها بواسطة حزم متعددة. رجاءا اختر واحدة" <+> pro
     Spanish    -> pro <+> "se requiere como una dependencia, que es proporcionada por múltiples paquetes. Por favor, seleccione uno:"
     Italian    -> pro <+> "è richiesto come dipendenza; si trova in molteplici pacchetti. Selezionarne uno:"
     Dutch      -> pro <+> "is vereist als afhankelijkheid, die wordt geleverd door meerdere pakketten. Selecteer er alstublieft een:"
+    Ukrainian  -> pro <+> "потрібен як залежність, яка надається декількома пакунками. Оберіть один з них:"
     _          -> pro <+> "is required as a dependency, which is provided by multiple packages. Please select one:"
 
 ----------------------------------
@@ -1515,6 +1678,7 @@
 hotEdit_1 (bt . pnName -> p) = \case
     Japanese   -> p <> "のPKGBUILDを編成しますか？"
     Polish     -> "Czy chcesz edytować PKGBUILD " <> p <> "?"
+    Arabic     -> "؟" <> p <> "التابع ﻟ PKGBUILDهل تريد ان تعدل اﻟ"
     Croatian   -> "Želite li izmjeniti PKGBUILD " <> p <> "?"
     Swedish    -> "Vill du ändra PKGBUILD-filen ifrån " <> p <> "?"
     German     -> "Möchten Sie die PKGBUILD-Datei für " <> p <> " bearbeiten?"
@@ -1529,18 +1693,23 @@
     Chinese    -> "你希望编辑 " <> p <> " 的 PKGBUILD 文件吗？"
     Esperanto  -> "Ĉu vi volas redakti la PKGBUILD de " <> p <> "?"
     Dutch      -> "Wilt u het PKGBUILD-bestand van " <> p <> " bewerken?"
+    Ukrainian  -> "Бажаєте відредагувати PKGBUILD для пакунку " <> p <> "?"
     _          -> "Would you like to edit the PKGBUILD of " <> p <> "?"
 
 hotEdit_2 :: Language -> Doc AnsiStyle
 hotEdit_2 = \case
   Polish    -> "Czy chcesz edytować plik .install?"
+  Arabic    -> "؟.installهل تريد تعديل ملف اﻟ"
   Spanish   -> "¿Desea editar el archivo .install?"
+  Ukrainian -> "Бажаєте відредагувати файл .intall?"
   _         -> "Would you like to edit the .install file?"
 
 hotEdit_3 :: FilePath -> Language -> Doc AnsiStyle
 hotEdit_3 fp = \case
   Polish    -> "Czy chcesz edytować " <> pretty fp <> "?"
+  Arabic    -> "؟" <> pretty fp <> " هل تريد التعديل"
   Spanish   -> "¿Desea editar " <> pretty fp <> "?"
+  Ukrainian -> "Бажаєте відредагувати " <> pretty fp <> "?"
   _         -> "Would you like to edit " <> pretty fp <> "?"
 
 ------------------------------
@@ -1549,105 +1718,133 @@
 security_1 :: PkgName -> Language -> Doc AnsiStyle
 security_1 (PkgName p) = \case
   Polish    -> "PKGBUILD dla" <+> bt p <+> "był zbyt zawiły do odczytania - może zawierać złośliwy kod."
+  Arabic    -> ".كان معقدا جدا للتحليل - يمكن أن يكون تعتيم مشوش للشفرة" <+> bt p <+> "تبع PKGBUILDاﻟ"
   Spanish   -> "El PKGBUILD de" <+> bt p <+> "era demasiado complejo de analizar - puede estar ofuscando código malicioso."
   Italian   -> "Il PKGBUILD di" <+> bt p <+> "è troppo complesso per essere analizzato - è possibile che stia offuscando codice malevolo."
   Dutch     -> "Het PKGBUILD-bestand van" <+> bt p <+> " was te complex om te parseren - het kan schadelijke code versluieren."
+  Ukrainian -> "PKGBUILD пакунку" <+> bt p <+> "був надто складним для аналізу - він може містити замаскований шкідливий код."
   _ -> "The PKGBUILD of" <+> bt p <+> "was too complex to parse - it may be obfuscating malicious code."
 
 security_2 :: Text -> Language -> Doc AnsiStyle
 security_2 (bt -> t) = \case
   Polish    -> t <+> "może zostać użyty do pobrania arbitralnych skryptów, które nie są śledzone przez ten PKGBUILD."
+  Arabic    -> ".هذه PKGBUILDيمكن ان يحمل ملفات عشروتىية ليست مسجلة باﻟ" <+> t
   Spanish   -> t <+> "se puede usar para descargar scripts arbitrarios que este PKGBUILD no rastrea."
   Italian   -> t <+> "può essere usato per scaricare script arbitrari non tracciati da questo PKGBUILD."
   Dutch     -> t <+> "kan gebruikt worden om willekeurige scripten te downloaden die niet worden bijgehouden door dit PKGBUILD-bestand."
+  Ukrainian -> t <+> "може завантажувати довільні скріпти, які не відстежуються цим PKGBUILD."
   _ -> t <+> "can be used to download arbitrary scripts that aren't tracked by this PKGBUILD."
 
 security_3 :: Text -> Language -> Doc AnsiStyle
 security_3 (bt -> t) = \case
   Polish    -> t <+> "może zostać użyty do wykonywania arbitralnego kodu, który nie jest śledzony przez ten PKGBUILD."
+  Arabic    -> ".هذه PKGBUILDيمكن ان يستعمل ملفات عشروتىية ليست مسجلة باﻟ" <+> t
   Spanish   -> t <+> "se puede usar para ejecutar código arbitrario que este PKGBUILD no rastrea."
   Italian   -> t <+> "può essere usato per eseguire codice arbitrario non tracciato da questo PKGBUILD."
   Dutch     -> t <+> "kan gebruikt worden om willekeurige code uit te voeren die niet worden bijgehouden door dit PKGBUILD-bestand."
+  Ukrainian -> t <+> "може виконувати довільний код, який не відстежуються цим PKGBUILD."
   _ -> t <+> "can be used to execute arbitrary code not tracked by this PKGBUILD."
 
 security_4 :: Text -> Language -> Doc AnsiStyle
 security_4 (bt -> t) = \case
   Polish    -> t <+> "wskazuje na to, że ktoś może próbować uzyskać dostęp root'a do twojej maszyny."
+  Arabic    -> ".تشير ان شخصا ما يحاول الوصول الى قوت المسؤول على جهازك" <+> t
   Spanish   -> t <+> "indica que alguien puede estar intentando obtener acceso de root a su máquina."
   Italian   -> t <+> "indica che forse qualcuno sta cercando di ottenere accesso alla tua macchina come root."
   Dutch     -> t <+> "geeft aan dat iemand mogelijk root-toegang to uw machine probeert te krijgen."
+  Ukrainian -> t <+> "вказує на те, що хтось може спробувати отримати доступ root до вашої машини."
   _ -> t <+> "indicates that someone may be trying to gain root access to your machine."
 
 security_5 :: PkgName -> Language -> Doc AnsiStyle
 security_5 (PkgName p) = \case
   Polish    -> "UWAGA: PKGBUILD dla " <+> bt p <+> "zawiera wyrażenia bash znajdujące się na czarnej liście."
+  Arabic    -> ".في القائمة السودء bash في تعبيرات" <+> bt p <+> "باجل PKGBUILDتحذير: اﻟ"
   Spanish   -> "ADVERTENCIA: El PKGBUILD de" <+> bt p <+> "contiene expresiones bash en la lista negra."
   Italian   -> "ATTENZIONE: Il PKGBUILD di" <+> bt p <+> "contiene espressioni bash presenti nella lista nera."
   Dutch     -> "WAARSCHUWING: De PKGBUILD van" <+> bt p <+> "bevat bash uitdrukkingen die op de zwarte lijst staan."
+  Ukrainian -> "УВАГА! PKGBUILD пакунку" <+> bt p <+> "містить вирази bash, які занесені в чорний список."
   _ -> "WARNING: The PKGBUILD of" <+> bt p <+> "contains blacklisted bash expressions."
 
 security_6 :: Language -> Doc AnsiStyle
 security_6 = \case
   Polish    -> "Czy chcesz zakończyć proces budowania?"
+  Arabic    -> "هل تريد اقاف البناء؟"
   Spanish   -> "¿Desea salir del proceso de compilación?"
   Italian   -> "Terminare la compilazione?"
   Dutch     -> "Wilt u het bouw process stoppen?"
-  _ -> "Do you wish to quit the build process?"
+  Ukrainian -> "Бажаєте скасувати процес збірки?"
+  _         -> "Do you wish to quit the build process?"
 
 security_7 :: Language -> Doc AnsiStyle
 security_7 = \case
   Polish    -> "Anulowano dalsze przetwarzanie by uniknąć egzekucji potencjalnie złośliwego kodu bash"
+  Arabic    -> ".الذي يحتمل أن يكون ضارا bash تم الغاء المعالجة الاضافيه لتجنب صدور"
   Spanish   -> "Se canceló el procesamiento posterior para evitar el código bash potencialmente malicioso."
   Italian   -> "Non saranno eseguite altre operazioni al fine di evitare l'esecuzione di codice bash potenzialmente malevolo."
   Dutch     -> "Verdere verwerking geannuleerd om het uitvoeren van potentieel schadelijke bash-code te voorkomen."
+  Ukrainian -> "Подальша установка скасована, щоб уникнути потенційно шкідливого коду bash."
   _ -> "Cancelled further processing to avoid potentially malicious bash code."
 
 security_8 :: Text -> Language -> Doc AnsiStyle
 security_8 (bt -> t) = \case
   Polish    -> t <+> "jest komendą bash zawartą w polach tablicy twojego PKGBUILD."
+  Arabic    -> ".الخاص بك PKGBUILDمضمن بالحقول المصفوفة باﻟ bash امر" <+> t
   Spanish   -> t <+> "es un comando bash integrado en los campos de la matriz del PKGBUILD."
   Italian   -> t <+> "è un comando bash presente all'interno degli array del tuo PKGBUILD."
   Dutch     -> t <+> "is een bash-opdracht die is opgenomen in uw PKGBUILD-arrayvelden."
+  Ukrainian -> t <+> "- це команда bash, що вбудована в ваші поля масиву PKGBUILD"
   _ -> t <+> "is a bash command inlined in your PKGBUILD array fields."
 
 security_9 :: Text -> Language -> Doc AnsiStyle
 security_9 (bt -> t) = \case
   Polish    -> t <+> "jest dziwną rzeczą w polach tablicy. Czy to bezpieczne?"
+  Arabic    -> "شيء غريب ان يكون لديك في الحقول المصفوفة, هل هيا امن؟" <+> t
   Spanish   -> t <+> "es algo extraño para tener en sus campos de matriz. ¿Es seguro?"
   Italian   -> t <+> "è una cosa strana da trovare all'interno degli array. E' sicura?"
   Dutch     -> t <+> "is een vreemd ding om in uw arrayvelden te hebben. Is het veilig?"
+  Ukrainian -> t <+> "- дивна річ в полях масиву. Це безпечно?"
   _ -> t <+> "is a strange thing to have in your array fields. Is it safe?"
 
 security_10 :: Text -> Language -> Doc AnsiStyle
 security_10 (bt -> t) = \case
   Polish    -> t <+> "sugeruje, że ktoś próbował być sprytny używając zmiennych do ukrycia złośliwych komend."
+  Arabic    -> ".يعني ان شخصا ما كان يحاول ان يكون ذكيا مع المتغيرات لاخفاء الاوامر الخبيثة" <+> t
   Spanish   -> t <+> "implica que alguien estaba tratando de ser astuto con las variables para ocultar comandos maliciosos."
   Italian   -> t <+> "implica che qualcuno stava trafficando con le variabili per nascondere comandi malevoli."
   Dutch     -> t <+> "impliceert dat iemand slim probeerde om te gaan met variabelen om schadelijke opdrachten te verbergen."
+  Ukrainian -> t <+> "означає, що хтось намагається обдурити змінними, щоб сховати небеспечні команди."
   _ -> t <+> "implies that someone was trying to be clever with variables to hide malicious commands."
 
 security_11 :: Language -> Doc AnsiStyle
 security_11 = \case
   Polish    -> "Ten PKGBUILD jest zbyt zawiły do odczytania - może ukrywać w sobie złośliwy kod."
+  Arabic    -> ".كان معقدا جدا للتحليل - يمكن ان يخفي برنامج ضار PKGBUILDذلك اﻟ"
   Spanish   -> "Éste PKGBUILD es demasiado complejo para analizar, puede estar ofuscando código malicioso."
+  Ukrainian -> "Цей PKGBUILD був надто складним для аналізу - він може містити шкідливий код."
   _         -> "That PKGBUILD is too complex to parse - it may be obfuscating malicious code."
 
 security_12 :: Language -> Doc AnsiStyle
 security_12 = \case
   Polish    -> "Potencjalne luki w bezpieczeństwie wykryte w PKGBUILD"
+  Arabic    -> ".PKGBUILDاحتمال وجود ثغرات امنية في اﻟ"
   Spanish   -> "Posibles vulnerabilidades de PKGBUILD detectadas."
+  Ukrainian -> "Потенційні вразливості знайдено в PKGBUILD."
   _         -> "Potential PKGBUILD vulnerabilities detected."
 
 security_13 :: Word -> Language -> Doc AnsiStyle
 security_13 (bt -> w) = \case
   Polish    -> "Sprawdzanie PKGBUILD" <+> w <+> "w poszukiwaniu luk w bezpieczeństwie..."
+  Arabic    -> "...بحثا عن نقاط ضعف" <+> w <+> "تبع PKGBUILDتحقق اﻟ"
   Spanish   -> "Comprobando" <+> w <+> "PKGBUILDs por vulnerabilidades..."
+  Ukrainian -> "Перевіряємо" <+> w <+> "PKGBUILD-ів на вразливості..."
   _         -> "Checking" <+> w <+> "PKGBUILDs for vulnerabilities..."
 
 security_14 :: Language -> Doc AnsiStyle
 security_14 = \case
   Polish    -> "Nie wykryto żadnych luk w bezpieczeństwie."
+  Arabic    -> ".لا تم العثور على نقاط ضعف"
   Spanish   -> "No se detectaron vulnerabilidades."
+  Ukrainian -> "Ніяких вразливостей не було знайдено."
   _         -> "No vulnerabilities detected."
 
 -----------------------
@@ -1656,6 +1853,7 @@
 yesNoMessage :: Language -> Doc ann
 yesNoMessage = \case
     Polish     -> "[T/n]"
+    Arabic     -> "[ن/لا]"
     Turkish    -> "[e/h]"
     Croatian   -> "[D/n]"
     German     -> "[J/n]"
@@ -1667,11 +1865,13 @@
     Russian    -> "[Д/н]"
     Esperanto  -> "[J/n]"
     Dutch      -> "[J/n]"
+    Ukrainian  -> "[Т/н]"
     _          -> "[Y/n]"
 
 yesPattern :: Language -> [T.Text]
 yesPattern lang = map T.toCaseFold $ case lang of
     Polish     -> ["t", "tak"]
+    Arabic     -> ["ن", "نعم"]
     Turkish    -> ["e", "evet"]
     Croatian   -> ["d", "da"]
     German     -> ["j", "ja"]
@@ -1683,6 +1883,7 @@
     Russian    -> ["д", "да"]
     Esperanto  -> ["j", "jes"]
     Dutch      -> ["j", "ja"]
+    Ukrainian  -> ["т", "так"]
     _          -> ["y", "yes"]
 
 ----------------------
diff --git a/lib/Aura/Types.hs b/lib/Aura/Types.hs
--- a/lib/Aura/Types.hs
+++ b/lib/Aura/Types.hs
@@ -270,6 +270,8 @@
               | Esperanto
               | Dutch
               | Turkish
+              | Arabic
+              | Ukrainian
               deriving (Eq, Enum, Bounded, Ord, Show)
 
 -- | The various ways that dependency resolution can fail.
