# translation of mt.po to Maltese # translation of drakconf-mt.po to Maltese # Copyright (C) 2002,2003, 2004 Free Software Foundation, Inc. # Ramon Casha , 2002, 2003. # Ramon Casha , 2004. # msgid "" msgstr "" "Project-Id-Version: mt\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-04-05 18:13+0200\n" "PO-Revision-Date: 2004-09-08 07:44+0200\n" "Last-Translator: Ramon Casha \n" "Language-Team: Maltese \n" "Language: mt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.3\n" #: ../control-center:98 #, c-format msgid "Mageia" msgstr "Mageia" #: ../control-center:108 ../control-center:113 #, c-format msgid "%s Control Center" msgstr "Ċentru tal-Kontroll %s" #: ../control-center:114 ../control-center:732 #, c-format msgid "Loading... Please wait" msgstr "Tiela'... stenna ftit" #. -PO: please keep the following message very short: it must fit in the left list of MCC!!! #: ../control-center:159 ../control-center:163 #, c-format msgid "Software Management" msgstr "Maniġġjar ta' softwer" #: ../control-center:174 ../control-center:362 ../control-center:397 #: ../control-center:546 #, fuzzy, c-format msgid "Others" msgstr "Ittestjar" #: ../control-center:184 #, c-format msgid "Server wizards" msgstr "Sħaħar tas-servers" #. -PO: please keep the following message very short: it must fit in the left list of MCC!!! #: ../control-center:187 ../control-center:190 #, fuzzy, c-format msgid "Sharing" msgstr "Qsim tal-fajls" #: ../control-center:193 #, c-format msgid "Configure FTP" msgstr "Ikkonfiguran FTP" #: ../control-center:194 #, c-format msgid "Set up an FTP server" msgstr "" #: ../control-center:196 #, c-format msgid "Configure Samba" msgstr "Ikkonfigura Samba" #: ../control-center:197 #, c-format msgid "" "Set up a file and print server for workstations running Linux and non-Linux " "systems" msgstr "" #: ../control-center:199 #, fuzzy, c-format msgid "Manage Samba share" msgstr "Servizzi Samba attivati" #: ../control-center:200 #, c-format msgid "Manage, create special share, create public/user share" msgstr "" #: ../control-center:202 #, c-format msgid "Configure web server" msgstr "Ikkonfigura web server" #: ../control-center:203 #, fuzzy, c-format msgid "Set up a web server" msgstr "Ikkonfigura web server" #: ../control-center:205 #, c-format msgid "Configure installation server" msgstr "Ikkonfigura server tal-installazzjoni" #: ../control-center:206 #, c-format msgid "Set up server for network installations of %s" msgstr "" #. -PO: please keep the following message very short: it must fit in the left list of MCC!!! #: ../control-center:216 ../control-center:219 #, fuzzy, c-format msgid "Network Services" msgstr "Interfaċċja tan-network" #: ../control-center:222 #, c-format msgid "Configure DHCP" msgstr "Ikkonfigura DHCP" #: ../control-center:223 #, c-format msgid "Set up a DHCP server" msgstr "" #: ../control-center:225 #, c-format msgid "Configure DNS" msgstr "Ikkonfigura DNS" #: ../control-center:226 #, c-format msgid "Set up a DNS server (network name resolution)" msgstr "" #: ../control-center:228 #, c-format msgid "Configure proxy" msgstr "Ikkonfigura proxy" #: ../control-center:229 #, fuzzy, c-format msgid "Configure a web caching proxy server" msgstr "Ikkonfigura web server" #: ../control-center:231 #, c-format msgid "Configure time" msgstr "Ikkonfigura ħin" #: ../control-center:232 #, c-format msgid "" "Set the time of the server to be synchronized with an external time server" msgstr "" #: ../control-center:234 ../control-center:235 #, fuzzy, c-format msgid "OpenSSH daemon configuration" msgstr "Uri konfigurazzjoni LDAP" #. -PO: please keep the following message very short: it must fit in the left list of MCC!!! #. -PO: this message is already translated in drakx domain from which MCC will searchs it: #: ../control-center:246 ../control-center:249 ../lib/MDV/Control_Center.pm:65 #, c-format msgid "Authentication" msgstr "Awtentikazzjoni" #: ../control-center:253 #, c-format msgid "Configure NIS and Autofs" msgstr "Ikkonfigura NIS u Autofs" #: ../control-center:254 #, fuzzy, c-format msgid "Configure the NIS and Autofs services" msgstr "Ikkonfigura NIS u Autofs" #: ../control-center:256 #, c-format msgid "Configure LDAP" msgstr "Ikkonfigura LDAP" #: ../control-center:257 #, c-format msgid "Configure the LDAP directory services" msgstr "" #. -PO: please keep the following message very short: it must fit in the left list of MCC!!! #: ../control-center:268 ../control-center:271 #, fuzzy, c-format msgid "Groupware" msgstr "Grupp" #: ../control-center:274 #, c-format msgid "Configure news" msgstr "Ikkonfigura \"news\"" #: ../control-center:275 #, fuzzy, c-format msgid "Configure a newsgroup server" msgstr "Ikkonfigura web server" #: ../control-center:277 #, c-format msgid "Configure groupware" msgstr "Ikkonfigura groupware" #: ../control-center:278 #, fuzzy, c-format msgid "Configure a groupware server" msgstr "Ikkonfigura groupware" #: ../control-center:280 #, c-format msgid "Configure mail" msgstr "Ikkonfigura imejl" #: ../control-center:281 #, fuzzy, c-format msgid "Configure the Internet Mail services" msgstr "Ikkonfigura server tal-installazzjoni" #. -PO: please keep the following message very short: it must fit in the left list of MCC!!! #: ../control-center:293 ../control-center:296 #, c-format msgid "Online Administration" msgstr "Amministrazzjoni online" #: ../control-center:312 #, c-format msgid "Local administration" msgstr "Amministrazzjoni lokali" #: ../control-center:313 #, c-format msgid "Configure the local machine via web interface" msgstr "" #: ../control-center:313 #, c-format msgid "You don't seem to have webmin installed. Local config is disabled" msgstr "" #: ../control-center:315 #, c-format msgid "Remote administration" msgstr "Amministrazzjoni remota" #: ../control-center:316 #, c-format msgid "Click here if you want to configure a remote box via Web interface" msgstr "" #. -PO: please keep the following message very short: it must fit in the left list of MCC!!! #: ../control-center:330 #, c-format msgid "Hardware" msgstr "Apparat" #: ../control-center:333 #, fuzzy, c-format msgid "Manage your hardware" msgstr "Servizzi Samba attivati" #: ../control-center:340 #, fuzzy, c-format msgid "Configure graphics" msgstr "Ikkonfigura imejl" #: ../control-center:347 #, fuzzy, c-format msgid "Configure mouse and keyboard" msgstr "Ikkonfigura imejl" #: ../control-center:354 #, c-format msgid "Configure printing and scanning" msgstr "" #. -PO: please keep the following message very short: it must fit in the left list of MCC!!! #: ../control-center:372 ../drakxconf:33 #, c-format msgid "Network & Internet" msgstr "Network u Internet" #: ../control-center:375 ../lib/MDV/Control_Center.pm:386 #, fuzzy, c-format msgid "Manage your network devices" msgstr "Interfaċċja tan-network" #: ../control-center:388 #, c-format msgid "Personalize and Secure your network" msgstr "" #. -PO: please keep the following message very short: it must fit in the left list of MCC!!! #: ../control-center:407 #, c-format msgid "System" msgstr "Sistema" #: ../control-center:410 #, fuzzy, c-format msgid "Manage system services" msgstr "Servizzi Samba attivati" #: ../control-center:418 #, fuzzy, c-format msgid "Localization" msgstr "Amministrazzjoni lokali" #: ../control-center:425 #, fuzzy, c-format msgid "Administration tools" msgstr "Amministrazzjoni online" #. -PO: please keep the following message very short: it must fit in the left list of MCC!!! #: ../control-center:441 #, fuzzy, c-format msgid "Network Sharing" msgstr "Interfaċċja tan-network" #: ../control-center:444 #, fuzzy, c-format msgid "Configure Windows(R) shares" msgstr "Ikkonfigura groupware" #: ../control-center:451 #, fuzzy, c-format msgid "Configure NFS shares" msgstr "Ikkonfigura DNS" #: ../control-center:458 #, fuzzy, c-format msgid "Configure WebDAV shares" msgstr "Ikkonfigura web server" #. -PO: please keep the following message very short: it must fit in the left list of MCC!!! #: ../control-center:468 ../control-center:471 #, fuzzy, c-format msgid "Local disks" msgstr "Qsim ta' diski lokali" #: ../control-center:495 #, fuzzy, c-format msgid "CD-ROM (%s)" msgstr "DVD-ROM" #: ../control-center:496 #, fuzzy, c-format msgid "Set where your \"%s\" CD-ROM drive is mounted" msgstr "Issettja fejn jiġi mmuntat id-drajv CD-ROM" #: ../control-center:498 #, fuzzy, c-format msgid "DVD-ROM (%s)" msgstr "DVD-ROM" #: ../control-center:499 #, fuzzy, c-format msgid "Set where your \"%s\" DVD-ROM drive is mounted" msgstr "Issettja fejn jiġi mmuntat id-drajv DVD-ROM" #: ../control-center:501 #, fuzzy, c-format msgid "CD/DVD burner (%s)" msgstr "Kittieb tas-CD/DVDs" #: ../control-center:502 #, fuzzy, c-format msgid "Set where your \"%s\" CD/DVD burner is mounted" msgstr "Issettja fejn jiġi mmuntat il-kittieb tas-CD/DVD" #: ../control-center:504 #, c-format msgid "ZIP drive" msgstr "Drajv ZIP" #: ../control-center:505 #, c-format msgid "Set where your ZIP drive is mounted" msgstr "Issettja fejn jiġi mmuntat id-drajv ŻIP" #. -PO: please keep the following message very short: it must fit in the left list of MCC!!! #: ../control-center:517 ../control-center:520 #, c-format msgid "Security" msgstr "Sigurtà" #. -PO: please keep the following message very short: it must fit in the left list of MCC!!! #: ../control-center:534 #, c-format msgid "Boot" msgstr "Boot" #: ../control-center:537 #, fuzzy, c-format msgid "Configure boot steps" msgstr "Ikkonfigura ħin" #: ../control-center:557 #, fuzzy, c-format msgid "Additional wizards" msgstr "Temi oħra" #: ../control-center:626 #, c-format msgid "_File" msgstr "_Fajl" #: ../control-center:627 #, c-format msgid "_Quit" msgstr "_Oħroġ" #. -PO: "" must _NOT_ be translated. This is a keyboard shortcut for "Quit". #. -PO: you just have to select the proper letter for your language (eg: english: "Quit" => "Q") #: ../control-center:630 #, c-format msgid "Q" msgstr "Q" #: ../control-center:631 #, c-format msgid "_Options" msgstr "Għa_żliet" #: ../control-center:632 ../control-center:633 #, c-format msgid "_Help" msgstr "_Għajnuna" #: ../control-center:633 #, fuzzy, c-format msgid "H" msgstr "Q" #: ../control-center:634 #, fuzzy, c-format msgid "_Release notes" msgstr "_Ħassar" #: ../control-center:635 #, c-format msgid "What's _New?" msgstr "" #: ../control-center:636 #, c-format msgid "_Errata" msgstr "" #: ../control-center:637 #, c-format msgid "_Report Bug" msgstr "I_rrapporta bug" #: ../control-center:640 #, c-format msgid "_About..." msgstr "_Dwar..." #: ../control-center:643 #, c-format msgid "Display _Logs" msgstr "Uri _logs" #: ../control-center:653 #, c-format msgid "Expert mode in _wizards" msgstr "Modalità _Esperta fis-sħaħar" #: ../control-center:740 #, c-format msgid "Cancel" msgstr "Ikkanċella" #: ../control-center:760 #, c-format msgid "%s Control Center %s [on %s]" msgstr "Ċentru tal-Kontroll %s %s [fuq %s]" #: ../control-center:1081 #, c-format msgid "Error" msgstr "Problema" #: ../control-center:1081 #, c-format msgid "Impossible to run unknown '%s' program" msgstr "Ma setax jitħaddem programm mhux magħruf \"%s\"" #: ../control-center:1096 #, c-format msgid "The modifications done in the current module won't be saved." msgstr "Il-bidliet li għamilt fil-modulu attwali mhux se jinkitbu." #: ../control-center:1184 #, c-format msgid "cannot fork: %s" msgstr "ma setax jinħoloq proċess: %s" #: ../control-center:1216 #, c-format msgid "cannot fork and exec \"%s\" since it is not executable" msgstr "ma nistax nagħmel \"fork\" u nħaddem \"%s\" għax mhux eżekutibbli" #: ../control-center:1329 #, c-format msgid "This program has exited abnormally" msgstr "Il-programm ħareġ b'mod abnormali" #: ../control-center:1338 #, c-format msgid "Warning" msgstr "Twissija" #: ../control-center:1348 ../drakconsole:38 #, c-format msgid "Close" msgstr "Agħlaq" #: ../control-center:1355 #, c-format msgid "About - %s Control Center" msgstr "Dwar - Ċentru tal-Kontroll %s" #: ../control-center:1363 #, c-format msgid "Authors: " msgstr "Awturi: " #. -PO: this is used as "language: translator" in credits part of the about dialog: #: ../control-center:1387 #, c-format msgid "- %s: %s\n" msgstr "" #: ../control-center:1402 #, c-format msgid "" "_: NAME OF TRANSLATORS\n" "Your names" msgstr "Ramon Casha" #: ../control-center:1404 #, c-format msgid "" "_: EMAIL OF TRANSLATORS\n" "Your emails" msgstr "" #: ../control-center:1406 #, c-format msgid "Translator: " msgstr "Traduttur: " #. -PO: Here, first %s will be replaced by 'Mageia' #. -PO: second %s will be replaced by the version (eg: "Mageia 1 (Free) Control Center") #: ../control-center:1415 #, fuzzy, c-format msgid "%s %s (%s) Control Center" msgstr "Ċentru tal-Kontroll %s" #. -PO: here %s is eg: "1999-2008" #: ../control-center:1420 #, c-format msgid "Copyright (C) %s Mandriva SA" msgstr "Copyright (C) %s Mandriva SA" #: ../control-center:1420 #, fuzzy, c-format msgid "Copyright (C) %s Mageia" msgstr "Copyright (C) %s Mandriva SA" #: ../control-center:1426 #, c-format msgid "Authors" msgstr "Awturi" #: ../control-center:1427 #, fuzzy, c-format msgid "Mageia Contributors" msgstr "Kontributuri ta’ Mandriva Linux" #: ../drakconsole:34 #, c-format msgid "DrakConsole" msgstr "Konsol" #: ../drakxconf:30 #, c-format msgid "Display" msgstr "Skrin" #: ../drakxconf:31 #, c-format msgid "Keyboard" msgstr "Tastiera" #: ../drakxconf:32 #, c-format msgid "Mouse" msgstr "Maws" #: ../drakxconf:34 #, c-format msgid "Users and groups" msgstr "Utenti u gruppi" #: ../drakxconf:35 #, c-format msgid "Services" msgstr "Servizzi" #: ../drakxconf:36 #, c-format msgid "Firewall" msgstr "Firewall" #: ../drakxconf:37 #, c-format msgid "Boot loader" msgstr "Boot loader" #: ../drakxconf:38 #, c-format msgid "Auto Install" msgstr "Awto-installazzjoni" #: ../drakxconf:39 #, c-format msgid "Internet connection sharing" msgstr "Qsim tal-konnessjoni tal-internet" #: ../drakxconf:40 #, c-format msgid "3D Desktop effects" msgstr "" #: ../drakxconf:41 #, c-format msgid "Partitions" msgstr "Partitizzjonijiet" #: ../drakxconf:44 #, c-format msgid "Control Center" msgstr "Ċentru tal-Kontroll" #: ../drakxconf:44 #, c-format msgid "Choose the tool you want to use" msgstr "Agħżel l-għodda li trid tuża" #: ../lib/MDV/Control_Center.pm:53 ../lib/MDV/Control_Center.pm:54 #, fuzzy, c-format msgid "Configure 3D Desktop effects" msgstr "Ikkonfigura web server" #: ../lib/MDV/Control_Center.pm:66 #, c-format msgid "" "Select the authentication method (local, NIS, LDAP, Windows Domain, ...)" msgstr "" #: ../lib/MDV/Control_Center.pm:75 #, c-format msgid "Set up autologin to automatically log in" msgstr "" #: ../lib/MDV/Control_Center.pm:76 #, c-format msgid "Enable autologin and select the user to automatically log in" msgstr "" #: ../lib/MDV/Control_Center.pm:85 #, c-format msgid "Snapshots" msgstr "" #: ../lib/MDV/Control_Center.pm:95 #, c-format msgid "Set up boot system" msgstr "" #: ../lib/MDV/Control_Center.pm:96 #, c-format msgid "Set up how the system boots" msgstr "" #: ../lib/MDV/Control_Center.pm:105 ../lib/MDV/Control_Center.pm:106 #, c-format msgid "Share the Internet connection with other local machines" msgstr "" #: ../lib/MDV/Control_Center.pm:115 ../lib/MDV/Control_Center.pm:116 #, fuzzy, c-format msgid "Set up a new network interface (LAN, ISDN, ADSL, ...)" msgstr "Neħħi interfaċċja tan-network" #: ../lib/MDV/Control_Center.pm:125 #, c-format msgid "Internet access" msgstr "Aċċess għall-internet" #: ../lib/MDV/Control_Center.pm:126 #, c-format msgid "Alter miscellaneous internet settings" msgstr "" #: ../lib/MDV/Control_Center.pm:135 ../lib/MDV/Control_Center.pm:136 #, fuzzy, c-format msgid "Open a console as administrator" msgstr "Inftaħ konsol" #: ../lib/MDV/Control_Center.pm:146 ../lib/MDV/Control_Center.pm:147 #, fuzzy, c-format msgid "Manage date and time" msgstr "Data u ħin" #: ../lib/MDV/Control_Center.pm:156 #, fuzzy, c-format msgid "Set up display manager" msgstr "Display manager" #: ../lib/MDV/Control_Center.pm:157 #, c-format msgid "Choose the display manager that enables to select which user to log in" msgstr "" #: ../lib/MDV/Control_Center.pm:166 ../lib/MDV/Control_Center.pm:167 #, fuzzy, c-format msgid "Configure a fax server" msgstr "Ikkonfigura web server" #: ../lib/MDV/Control_Center.pm:176 #, c-format msgid "Set up your personal firewall" msgstr "" #: ../lib/MDV/Control_Center.pm:177 #, c-format msgid "" "Set up a personal firewall in order to protect the computer and the network" msgstr "" #: ../lib/MDV/Control_Center.pm:186 ../lib/MDV/Control_Center.pm:187 #, c-format msgid "Manage, add and remove fonts. Import Windows(TM) fonts" msgstr "" #: ../lib/MDV/Control_Center.pm:196 ../lib/MDV/Control_Center.pm:197 #, fuzzy, c-format msgid "Set up the graphical server" msgstr "Server grafiku" #: ../lib/MDV/Control_Center.pm:206 #, fuzzy, c-format msgid "Manage disk partitions" msgstr "Immaniġġja konnessjonijiet" #: ../lib/MDV/Control_Center.pm:207 #, c-format msgid "Create, delete and resize hard disk partitions" msgstr "" #: ../lib/MDV/Control_Center.pm:216 ../lib/MDV/Control_Center.pm:217 #, fuzzy, c-format msgid "Browse and configure hardware" msgstr "Servizzi Samba attivati" #: ../lib/MDV/Control_Center.pm:227 ../lib/MDV/Control_Center.pm:228 #, fuzzy, c-format msgid "Sound Configuration" msgstr "Konfigurazzjoni proxy" #: ../lib/MDV/Control_Center.pm:237 #, c-format msgid "Hosts definitions" msgstr "" #: ../lib/MDV/Control_Center.pm:238 #, fuzzy, c-format msgid "Manage hosts definitions" msgstr "Immaniġġja konnessjonijiet" #: ../lib/MDV/Control_Center.pm:247 #, fuzzy, c-format msgid "Install & Remove Software" msgstr "Installa Softwer" #: ../lib/MDV/Control_Center.pm:248 #, c-format msgid "Install, uninstall software" msgstr "" #: ../lib/MDV/Control_Center.pm:258 #, c-format msgid "Advanced setup for network interfaces and firewall" msgstr "" #: ../lib/MDV/Control_Center.pm:259 #, c-format msgid "Set up network interfaces failover and firewall replication" msgstr "" #: ../lib/MDV/Control_Center.pm:268 ../lib/MDV/Control_Center.pm:269 #, c-format msgid "Set up the keyboard layout" msgstr "" #: ../lib/MDV/Control_Center.pm:278 #, c-format msgid "Kolab" msgstr "Kolab" #: ../lib/MDV/Control_Center.pm:279 #, fuzzy, c-format msgid "Set up a groupware server" msgstr "Ikkonfigura web server" #: ../lib/MDV/Control_Center.pm:288 #, c-format msgid "Manage localization for your system" msgstr "" #: ../lib/MDV/Control_Center.pm:289 #, c-format msgid "Select the language and the country or region of the system" msgstr "" #: ../lib/MDV/Control_Center.pm:297 ../lib/MDV/Control_Center.pm:298 #, c-format msgid "View and search system logs" msgstr "" #: ../lib/MDV/Control_Center.pm:307 #, c-format msgid "Manage connections" msgstr "Immaniġġja konnessjonijiet" #: ../lib/MDV/Control_Center.pm:308 #, c-format msgid "Reconfigure a network interface" msgstr "" #: ../lib/MDV/Control_Center.pm:317 #, c-format msgid "Manage computer group" msgstr "Immaniġġja grupp tal-kompjuter" #: ../lib/MDV/Control_Center.pm:318 #, c-format msgid "Manage installed software packages on a group of computers" msgstr "" #: ../lib/MDV/Control_Center.pm:326 #, c-format msgid "Configure authentication for Mageia tools" msgstr "" #: ../lib/MDV/Control_Center.pm:327 #, c-format msgid "" "Define authentication required to access individual Mageia configuration " "tools " msgstr "" #: ../lib/MDV/Control_Center.pm:335 #, c-format msgid "Update your system" msgstr "" #: ../lib/MDV/Control_Center.pm:336 #, c-format msgid "" "Look at available updates and apply any fixes or upgrades to installed " "packages" msgstr "" #: ../lib/MDV/Control_Center.pm:346 ../lib/MDV/Control_Center.pm:347 #, c-format msgid "Import Windows(TM) documents and settings" msgstr "" #: ../lib/MDV/Control_Center.pm:356 #, c-format msgid "Monitor connections" msgstr "Immonitorja konnessjonijiet" #: ../lib/MDV/Control_Center.pm:357 #, fuzzy, c-format msgid "Monitor the network connections" msgstr "Immonitorja konnessjonijiet" #: ../lib/MDV/Control_Center.pm:366 ../lib/MDV/Control_Center.pm:367 #, c-format msgid "Set up the pointer device (mouse, touchpad)" msgstr "" #: ../lib/MDV/Control_Center.pm:375 ../lib/MDV/Control_Center.pm:376 #, c-format msgid "Parental Controls" msgstr "" #: ../lib/MDV/Control_Center.pm:385 #, fuzzy, c-format msgid "Network Center" msgstr "Network u Internet" #: ../lib/MDV/Control_Center.pm:395 #, fuzzy, c-format msgid "Manage different network profiles" msgstr "Interfaċċja tan-network" #: ../lib/MDV/Control_Center.pm:396 #, c-format msgid "Activate and manage network profiles" msgstr "" #: ../lib/MDV/Control_Center.pm:405 #, c-format msgid "Access NFS shared drives and directories" msgstr "" #: ../lib/MDV/Control_Center.pm:406 #, fuzzy, c-format msgid "Set NFS mount points" msgstr "Punti ta' mmuntar NFS" #: ../lib/MDV/Control_Center.pm:415 #, c-format msgid "Share drives and directories using NFS" msgstr "" #: ../lib/MDV/Control_Center.pm:416 #, c-format msgid "Manage NFS shares" msgstr "" #: ../lib/MDV/Control_Center.pm:426 #, fuzzy, c-format msgid "Package Stats" msgstr "Pakkeġġjaturi" #: ../lib/MDV/Control_Center.pm:427 #, c-format msgid "Show statistics about usage of installed software packages" msgstr "" #: ../lib/MDV/Control_Center.pm:436 #, fuzzy, c-format msgid "Share your hard disk partitions" msgstr "Issettja l-qsim tal-partizzjonijiet tal-ħard disk tiegħek" #: ../lib/MDV/Control_Center.pm:437 #, c-format msgid "Set up sharing of your hard disk partitions" msgstr "Issettja l-qsim tal-partizzjonijiet tal-ħard disk tiegħek" #: ../lib/MDV/Control_Center.pm:446 ../lib/MDV/Control_Center.pm:448 #, c-format msgid "Set up the printer(s), the print job queues, ..." msgstr "" #: ../lib/MDV/Control_Center.pm:458 #, c-format msgid "Scheduled tasks" msgstr "Xogħol skedat" #: ../lib/MDV/Control_Center.pm:459 #, c-format msgid "Schedule programs to run periodically or at given times" msgstr "" #: ../lib/MDV/Control_Center.pm:468 #, c-format msgid "Proxy" msgstr "Proxy" #: ../lib/MDV/Control_Center.pm:469 #, c-format msgid "Set up a proxy server for files and web browsing" msgstr "" #: ../lib/MDV/Control_Center.pm:477 #, c-format msgid "Remote Control (Linux/Unix, Windows)" msgstr "Kontroll remot (Linux/Unix, Windows)" #: ../lib/MDV/Control_Center.pm:478 #, fuzzy, c-format msgid "Remote Control of another machine (Linux/Unix, Windows)" msgstr "Kontroll remot (Linux/Unix, Windows)" #: ../lib/MDV/Control_Center.pm:487 #, c-format msgid "Remove a connection" msgstr "Neħħi konnessjoni" #: ../lib/MDV/Control_Center.pm:488 #, c-format msgid "Delete a network interface" msgstr "" #: ../lib/MDV/Control_Center.pm:498 ../lib/MDV/Control_Center.pm:499 #, c-format msgid "Wireless connection" msgstr "Konnessjoni Wireless" #: ../lib/MDV/Control_Center.pm:508 #, c-format msgid "Access Windows (SMB) shared drives and directories" msgstr "" #: ../lib/MDV/Control_Center.pm:509 #, c-format msgid "Configuration of Windows (Samba) shared drives and directories" msgstr "" #: ../lib/MDV/Control_Center.pm:518 #, c-format msgid "Share drives and directories with Windows (SMB) systems" msgstr "" #: ../lib/MDV/Control_Center.pm:519 #, fuzzy, c-format msgid "Manage configuration of Samba" msgstr "Konfigurazzjoni tal-ipprintjar" #: ../lib/MDV/Control_Center.pm:528 ../lib/MDV/Control_Center.pm:529 #, fuzzy, c-format msgid "Set up scanner" msgstr "Skaners" #: ../lib/MDV/Control_Center.pm:538 #, c-format msgid "Configure system security, permissions and audit" msgstr "" #: ../lib/MDV/Control_Center.pm:539 #, c-format msgid "Set the system security level, periodic security audit and permissions" msgstr "" #: ../lib/MDV/Control_Center.pm:549 ../lib/MDV/Control_Center.pm:550 #, c-format msgid "Manage system services by enabling or disabling them" msgstr "" #: ../lib/MDV/Control_Center.pm:559 #, c-format msgid "Configure media sources for install and update" msgstr "" #: ../lib/MDV/Control_Center.pm:560 #, c-format msgid "Select from where software packages are downloaded " msgstr "" #: ../lib/MDV/Control_Center.pm:570 #, fuzzy, c-format msgid "Configure updates frequency" msgstr "Ikkonfigura groupware" #. -PO: here power means electrical power #. -PO: UPS==Uninterruptible power supply #: ../lib/MDV/Control_Center.pm:581 ../lib/MDV/Control_Center.pm:584 #, c-format msgid "Set up a UPS for power monitoring" msgstr "" #: ../lib/MDV/Control_Center.pm:594 #, c-format msgid "Manage users on system" msgstr "" #: ../lib/MDV/Control_Center.pm:595 #, c-format msgid "Add, remove or change users of the system" msgstr "" #: ../lib/MDV/Control_Center.pm:605 ../lib/MDV/Control_Center.pm:606 #, fuzzy, c-format msgid "Configure VPN connection to secure network access" msgstr "Immonitorja konnessjonijiet" #: ../lib/MDV/Control_Center.pm:615 #, c-format msgid "Access WebDAV shared drives and directories" msgstr "" #: ../lib/MDV/Control_Center.pm:616 #, fuzzy, c-format msgid "Set WebDAV mount points" msgstr "Punti ta' mmuntar WebDAV" #: ../menus_launcher.pl:19 ../menus_launcher.pl:40 #, c-format msgid "Menu Configuration Center" msgstr "Ċentru tal-konfigurazzjoni tal-menus" #: ../menus_launcher.pl:27 #, c-format msgid "System menu" msgstr "Menu tas-sistema" #: ../menus_launcher.pl:28 ../menus_launcher.pl:35 #, c-format msgid "Configure..." msgstr "Ikkonfigura..." #: ../menus_launcher.pl:30 #, c-format msgid "User menu" msgstr "Menu tal-utent" #: ../menus_launcher.pl:40 #, c-format msgid "" "\n" "\n" "Choose which menu you want to configure" msgstr "" "\n" "\n" "Agħżel liema menu trid tissettja" #: ../data/autologin.desktop.in.h:1 msgid "Autologin" msgstr "Awto-login" #: ../data/clock.desktop.in.h:1 msgid "Date and time" msgstr "Data u ħin" #: ../data/connection.desktop.in.h:1 msgid "New connection" msgstr "Konnessjoni ġdida" #: ../data/drakautoinst.desktop.in.h:1 msgid "Auto Install floppy" msgstr "Flopi awto-installazzjoni" #: ../data/drakboot.desktop.in.h:1 msgid "Boot Loading" msgstr "Boot loading" #: ../data/drakcronat.desktop.in.h:1 msgid "Programs scheduling" msgstr "Skeda ta' programmi" #: ../data/drakdm.desktop.in.h:1 msgid "Display manager" msgstr "Display manager" #: ../data/drakfloppy.desktop.in.h:1 msgid "Boot floppy" msgstr "Flopi \"boot\"" #: ../data/drakfont.desktop.in.h:1 msgid "Fonts" msgstr "Fonts" #: ../data/drakperm.desktop.in.h:1 msgid "Permissions" msgstr "Permessi" #: ../data/draksec.desktop.in.h:1 msgid "Levels and Checks" msgstr "Livelli u ċċekkjar" #: ../data/drakxtv.desktop.in.h:1 msgid "TV Cards" msgstr "Kards TV" #: ../data/fileshare.desktop.in.h:1 msgid "Partition Sharing" msgstr "Qsim ta' partizzjonijiet" #: ../data/harddrive.desktop.in.h:1 msgid "Hard Drives" msgstr "Diski interni" #: ../data/logdrake.desktop.in.h:1 msgid "Logs" msgstr "Logs" #: ../data/menudrake.desktop.in.h:1 msgid "Menus" msgstr "Menus" #: ../data/MountPoints.directory.in.h:1 msgid "Mount Points" msgstr "Punti ta' mmuntar" #: ../data/nfs.desktop.in.h:1 msgid "NFS mount points" msgstr "Punti ta' mmuntar NFS" #: ../data/printerdrake.desktop.in.h:1 msgid "Printers" msgstr "Printers" #: ../data/proxy.desktop.in.h:1 msgid "Proxy Configuration" msgstr "Konfigurazzjoni proxy" #: ../data/removable.desktop.in.h:1 msgid "Removable devices" msgstr "Apparat li jinqala'" #: ../data/remove-connection.desktop.in.h:1 msgid "Remove Connection" msgstr "Neħħi konnessjoni" #: ../data/samba.desktop.in.h:1 msgid "Samba mount points" msgstr "Punti ta' mmuntar Samba" #: ../data/scannerdrake.desktop.in.h:1 msgid "Scanners" msgstr "Skaners" #: ../data/SystemConfig.directory.in.h:1 msgid "System Settings" msgstr "Setings tas-sistema" #: ../data/userdrake.desktop.in.h:1 msgid "Users and Groups" msgstr "Utenti u gruppi" #: ../data/webdav.desktop.in.h:1 msgid "WebDAV mount points" msgstr "Punti ta' mmuntar WebDAV" #: ../data/XFDrake.desktop.in.h:1 msgid "Graphical server" msgstr "Server grafiku" #: ../data/XFDrake-Monitor.desktop.in.h:1 msgid "Monitor" msgstr "Monitur" #: ../data/XFDrake-Resolution.desktop.in.h:1 msgid "Screen Resolution" msgstr "Reżoluzzjoni tal-iskrin" #: ../drakconf.desktop.in.h:1 #, fuzzy msgid "Mageia Control Center" msgstr "Ċentru tal-Kontroll" #: ../polkit/org.mageia.drakconf.policy.in.h:1 #, fuzzy msgid "Run Mageia Control Center GUI" msgstr "Ċentru tal-Kontroll" #: ../polkit/org.mageia.drakconf.policy.in.h:2 msgid "Authentication is required to run Mageia Control Center GUI" msgstr "" #: ../polkit/org.mageia.drakxconf.policy.in.h:1 #, fuzzy msgid "Run Mageia Control Center" msgstr "Ċentru tal-Kontroll" #: ../polkit/org.mageia.drakxconf.policy.in.h:2 msgid "Authentication is required to run Mageia Control Center" msgstr "" #~ msgid "Backups" #~ msgstr "Kopji ta' sigurtà" #~ msgid "Menu Style" #~ msgstr "Stil tal-menu" #, fuzzy #~ msgid "Menu Style Configuration" #~ msgstr "Ċentru tal-konfigurazzjoni tal-menus" #~ msgid "(perl version)" #~ msgstr "(verżjoni perl)" #~ msgid "Artwork: " #~ msgstr "Xogħol artistiku: " #~ msgid "Helene Durosini" #~ msgstr "Helene Durosini" #~ msgid "_Embedded Mode" #~ msgstr "Modalità _integrata" #~ msgid "Quit" #~ msgstr "Oħroġ" #~ msgid "_Themes" #~ msgstr "_Temi" #~ msgid "" #~ "This action will restart the control center.\n" #~ "Any change not applied will be lost." #~ msgstr "" #~ "Din l-azzjoni se tirristartja ċ-ċentru tal-kontroll.\n" #~ "Il-bidliet li ma ġewx applikati jintilfu." #~ msgid "_More themes" #~ msgstr "_Iżjed Temi" #~ msgid "Help" #~ msgstr "Għajnuna" #~ msgid "More themes" #~ msgstr "Iżjed temi" #~ msgid "Getting new themes" #~ msgstr "Biex tikseb temi ġodda" #~ msgid "Additional themes" #~ msgstr "Temi oħra" #~ msgid "Get additional themes on www.damz.net" #~ msgstr "Ikseb temi oħra minn www.damz.net" #, fuzzy #~ msgid "Set up boot graphical theme of system" #~ msgstr "Server grafiku" #~ msgid "Printing configuration" #~ msgstr "Konfigurazzjoni tal-ipprintjar" #~ msgid "Click here to configure the printing system" #~ msgstr "Ikklikkja hawn biex tikkonfigura s-sistema tal-ipprintjar" #~ msgid "Done" #~ msgstr "Lest" #~ msgid "Packagers" #~ msgstr "Pakkeġġjaturi" #~ msgid "Per Oyvind Karlsen" #~ msgstr "Per Oyvind Karlsen" #~ msgid "" #~ "massive packages rebuilding and cleaning, games, sparc port, proofreading " #~ "of Mandriva tools" #~ msgstr "" #~ "Ħafna bini u tindif ta' pakketi, logħob, port għal sparc, ċekkjar ta' " #~ "għodda Mandriva" #~ msgid "Guillaume Rousse" #~ msgstr "Guillaume Rousse" #~ msgid "cowsay introduction" #~ msgstr "introduzzjoni cowsay" #~ msgid "Olivier Thauvin" #~ msgstr "Olivier Thauvin" #~ msgid "figlet introduction, Distriblint (checking rpm in the distro)" #~ msgstr "introduzzjoni figlet, Distriblint (biex tiċċekkja rpm fid-distro)" #~ msgid "Marcel Pol" #~ msgstr "Marcel Pol" #~ msgid "xfce4, updated abiword, mono" #~ msgstr "xfce4, abiword aġġornat, mono" #~ msgid "Ben Reser" #~ msgstr "Ben Reser" #~ msgid "" #~ "updated nc with debian patches, fixed some perl packages, dnotify startup " #~ "script, urpmc, hddtemp, wipe, etc..." #~ msgstr "" #~ "aġġorna nc b'patches ta' debian, sewwa xi pakketti perl, script tat-tlugħ " #~ "ta' dnotify, urpmc, hddtemp, wipe, eċċ..." #~ msgid "Thomas Backlund" #~ msgstr "Thomas Backlund" #~ msgid "" #~ "\"deep and broad\" kernel work (many new patches before integration in " #~ "official kernel)" #~ msgstr "" #~ "ħafna xogħol fil-kernel (u ħafna patches qabel l-integrazzjoni fil-kernel " #~ "uffiċjali)" #~ msgid "Svetoslav Slavtchev" #~ msgstr "Svetoslav Slavtchev" #~ msgid "kernel work (audio- and video-related patches)" #~ msgstr "xogħol fuq kernel (patches tal-awdjo u vidjo)" #~ msgid "Danny Tholen" #~ msgstr "Danny Tholen" #~ msgid "patches to some packages, kfiresaver, xwine. ppc kernel-benh." #~ msgstr "patches għal xi pakketti, kfireserver, xwine, ppc kernel-benh." #~ msgid "Buchan Milne" #~ msgstr "Buchan Milne" #~ msgid "" #~ "Samba 3.0 (prerelease) that co-exists with Samba 2.2.x, Samba-2.2.x, GIS " #~ "software (grass, mapserver), cursor_themes collection, misc server-side " #~ "contributions" #~ msgstr "" #~ "Samba 3.0 (prerelease) li jeżisti flimkien ma' Samba 2.2.x, Samba-2.2.x, " #~ "softwer GIS (grass, mapserver), kollezzjoni cursor_themes, diversi " #~ "kontribuzzjonijiet fis-server" #~ msgid "Goetz Waschk" #~ msgstr "Goetz Waschk" #~ msgid "" #~ "xine, totem, gstreamer, mplayer, vlc, vcdimager, xmms and plugins gnome-" #~ "python, rox desktop" #~ msgstr "" #~ "xine, totem, gstreamer, mplayer, vlc, vcdimager, xmms u plugins gnome-" #~ "python, desktop rox" #~ msgid "Austin Acton" #~ msgstr "Austin Acton" #~ msgid "" #~ "audio/video/MIDI apps, scientific apps, audio/video production howtos, " #~ "bluetooth, pyqt & related" #~ msgstr "" #~ "programmi awdjo/vidjo/MIDI, programmi xjentifiċi, dokumentazzjoni dwar " #~ "produzzjoni awdjo/vidjo, bluetooth, pyqt u relatati" #~ msgid "Spencer Anderson" #~ msgstr "Spencer Anderson" #~ msgid "ATI/gatos/DRM stuff, opengroupware.org" #~ msgstr "ATI/gatos/DRM, opengroupware.org" #~ msgid "Andrey Borzenkov" #~ msgstr "Andrey Borzenkov" #~ msgid "supermount-ng and other kernel work" #~ msgstr "supermount-ng u xogħol ieħor tal-kernel" #~ msgid "Oden Eriksson" #~ msgstr "Oden Eriksson" #~ msgid "most web-based packages and many security-related packages" #~ msgstr "ħafna pakketti tal-web u sigurtà" #~ msgid "Stefan VanDer Eijk" #~ msgstr "Stefan VanDer Eijk" #~ msgid "slbd distro checking, devel dependencies" #~ msgstr "iċċekkjar distro slbd, dependenzi devel" #~ msgid "David Walser" #~ msgstr "David Walser" #~ msgid "rpmsync script, foolproof MIDI playback, tweaked libao" #~ msgstr "script rpmsync, daqq ta' MIDI, libao imtejjeb" #~ msgid "Andi Payn" #~ msgstr "Andi Payn" #~ msgid "many extra gnome applets and python modules" #~ msgstr "diversi applets tal-gnome u moduli ta' python" #~ msgid "Tibor Pittich" #~ msgstr "Tibor Pittich" #~ msgid "" #~ "sk-i18n, contributed several packages, openldap testing and integration, " #~ "bind-sdb-ldap, several years of using cooker and bug hunting, etc..." #~ msgstr "" #~ "sk-i18n, kontribuzzjoni ta' diversi pakketti, testjar u integrazzjoni ta' " #~ "openldap, bind-sdb-ldap, diversi snin ta' użu ta' cooker u sejbien ta " #~ "bugs, eċċ..." #~ msgid "Pascal Terjan" #~ msgstr "Pascal Terjan" #~ msgid "some ruby stuff, php-pear packages, various other stuff." #~ msgstr "xi xogħol fuq ruby, pakketti php-pear, diversi affarijiet oħrajn." #~ msgid "Michael Reinsch" #~ msgstr "Michael Reinsch" #~ msgid "moin wiki clone, beep-media-player, im-ja and some other packages" #~ msgstr "kopja ta' moin wiki, beep-media-player, im-ja u xi pakketti oħra" #~ msgid "Christophe Guilloux" #~ msgstr "Christophe Guilloux" #~ msgid "bug reports, help with thunderbird package,..." #~ msgstr "rapporti dwar bugs, għajnuna bil-pakkett thunderbird,..." #~ msgid "Brook Humphrey" #~ msgstr "Brook Humphrey" #~ msgid "" #~ "testing and bug reports, Dovecot, bibletime, sword, help with pure-ftpd, " #~ "spamassassin, maildrop, clamav." #~ msgstr "" #~ "ittestjar, rapporti dwar bugs Dovecot, bibletime, sword, għajnuna b' pure-" #~ "ftpd, spamassassin, maildrop, clamav." #~ msgid "Olivier Blin" #~ msgstr "Olivier Blin" #~ msgid "" #~ "http proxy support in installer, kernel 2.6 support in sndconfig, samba3 " #~ "support in LinNeighborhood, fixes and enhancements in urpmi, bootsplash " #~ "and drakxtools" #~ msgstr "" #~ "sapport għal proxy tal-http fl-installatur, sapport għal kernel 2.6 " #~ "f'sndconfig, sapport at' samba3 f'LinNeighborhood, tiswijiet u titjib " #~ "f'urpmi, bootsplash u drakxtools" #~ msgid "Emmanuel Blindauer" #~ msgstr "Emmanuel Blindauer" #~ msgid "lm_sensors for 2.6 kernel, testing, some contrib packages." #~ msgstr "lm_sensors għall-kernel 2.6, ittestjar, xi pakketti kontribwiti." #~ msgid "Matthias Debus" #~ msgstr "Matthias Debus" #~ msgid "sim, pine and some other contrib packages." #~ msgstr "sim, pine u pakketti oħra kontribwiti." #~ msgid "Documentation" #~ msgstr "Dokumentazzjoni" #~ msgid "SunnyDubey" #~ msgstr "SunnyDubey" #~ msgid "wrote/edited parts of gi/docs/HACKING file" #~ msgstr "kiteb/bidel partijiet minn gi/docs/HACKING" #~ msgid "Translators" #~ msgstr "Tradutturi" #~ msgid "Norwegian Bokmal (nb) translator and coordinator, i18n work" #~ msgstr "Traduttur u koordinatur Norveġiż Bokmal" #~ msgid "\"one-man\" mdk sk-i18n team" #~ msgstr "Traduttur Slovakk" #~ msgid "Finnish translator and coordinator" #~ msgstr "Traduttur u koordinatur Finlandiż" #~ msgid "Reinout Van Schouwen" #~ msgstr "Reinout Van Schouwen" #~ msgid "Dutch translator and coordinator" #~ msgstr "Traduttur u koordinatur Olandiż" #~ msgid "Keld Simonsen" #~ msgstr "Keld Simonsen" #~ msgid "Danish translator (and some Bokmal too:-)" #~ msgstr "Traduttur Daniż (u ftit Bokmal)" #~ msgid "Karl Ove Hufthammer" #~ msgstr "Karl Ove Hufthammer" #~ msgid "Norwegian Nynorsk (nn) translator and coordinator" #~ msgstr "Traduttur u koordinatur Norveġiż Nynorsk" #~ msgid "Marek Laane" #~ msgstr "Marek Laane" #~ msgid "Estonian translator" #~ msgstr "Traduttur Estonjan" #~ msgid "Andrea Celli" #~ msgstr "Andrea Celli" #~ msgid "Italian Translator" #~ msgstr "Traduttur Taljan" #~ msgid "Simone Riccio" #~ msgstr "Simone Riccio" #~ msgid "Daniele Pighin" #~ msgstr "Daniele Pighin" #~ msgid "Vedran Ljubovic" #~ msgstr "Vedran Ljubovic" #~ msgid "Bosnian translator" #~ msgstr "Traduttur Bożnijakk" #~ msgid "Testers" #~ msgstr "Ittestjar" #~ msgid "Benoit Audouard" #~ msgstr "Benoit Audouard" #~ msgid "testing and bug reporting, integration of eagle-usb driver" #~ msgstr "ittestjar, rapporti dwar bugs u integrazzjoni tad-drajver eagle-usb" #~ msgid "Bernhard Gruen" #~ msgstr "Bernhard Gruen" #~ msgid "testing and bug reporting" #~ msgstr "ittestjar u rapporti dwar bugs" #~ msgid "Jure Repinc" #~ msgstr "Jure Repinc" #~ msgid "Felix Miata" #~ msgstr "Felix Miata" #~ msgid "Tim Sawchuck" #~ msgstr "Tim Sawchuck" #~ msgid "Eric Fernandez" #~ msgstr "Eric Fernandez" #~ msgid "Ricky Ng-Adam" #~ msgstr "Ricky Ng-Adam" #~ msgid "Pierre Jarillon" #~ msgstr "Pierre Jarillon" #~ msgid "Michael Brower" #~ msgstr "Michael Brower" #~ msgid "Frederik Himpe" #~ msgstr "Frederik Himpe" #~ msgid "Jason Komar" #~ msgstr "Jason Komar" #~ msgid "Raphael Gertz" #~ msgstr "Raphael Gertz" #~ msgid "testing, bug report, Nvidia package try" #~ msgstr "ittestjar, rapporti dwar bugs u pakkett Nvidia" #~ msgid "testing, bug reporting" #~ msgstr "ittestjar u rapporti dwar bugs" #~ msgid "Fabrice FACORAT" #~ msgstr "Fabrice FACORAT" #~ msgid "Mihai Dobrescu" #~ msgstr "Mihai Dobrescu" #~ msgid "Mary V. Jones-Giampalo" #~ msgstr "Mary V. Jones-Giampalo" #~ msgid "Vincent Meyer" #~ msgstr "Vincent Meyer" #~ msgid "MD, testing, bug reporting" #~ msgstr "MD, ittestjar u rapporti dwar bugs" #~ msgid "" #~ "And many unnamed and unknown beta testers and bug reporters that helped " #~ "make sure it all worked right." #~ msgstr "" #~ "U ħafna nies li ttestjaw il-beta u rrapportaw bugs, imsemmija u mhux " #~ "magħrufa, li għenu biex jaċċertaw li kollox jaħdem." #, fuzzy #~ msgid "Configure Your Computer" #~ msgstr "Ikkonfigura groupware" #, fuzzy #~ msgid "Mandriva Linux" #~ msgstr "Mandriva Online" #~ msgid "Welcome to the %s Control Center" #~ msgstr "Merħba għaċ-Ċentru tal-Kontroll %s" #, fuzzy #~ msgid "Generate an Auto Install floppy" #~ msgstr "Flopi awto-installazzjoni" #, fuzzy #~ msgid "Upload your configuration to get information on upgrades" #~ msgstr "" #~ "Dan l-assistent jgħinek tibgħat il-konfigurazzjoni tiegħek\n" #~ "(pakketti, konfigurazzjoni tal-magna) lill database ċentrali sabiex\n" #~ "tinżamm infurmat dwar aġġornamenti ta' sigurtà u oħrajn utli.\n" #, fuzzy #~ msgid "" #~ "Upload your configuration in order to keep you informed about security " #~ "and useful upgrades" #~ msgstr "" #~ "Dan l-assistent jgħinek tibgħat il-konfigurazzjoni tiegħek\n" #~ "(pakketti, konfigurazzjoni tal-magna) lill database ċentrali sabiex\n" #~ "tinżamm infurmat dwar aġġornamenti ta' sigurtà u oħrajn utli.\n" #~ msgid "Floppy drive" #~ msgstr "Drajv flopi" #~ msgid "Set where your floppy drive is mounted" #~ msgstr "Issettja fejn jiġi mmuntat il-flopi" #, fuzzy #~ msgid "U" #~ msgstr "Q" #~ msgid "Account:" #~ msgstr "Kont:" #~ msgid "Password:" #~ msgstr "Password:" #~ msgid "Hostname:" #~ msgstr "Isem tal-kompjuter:" #~ msgid "Please wait" #~ msgstr "Stenna ftit" #, fuzzy #~ msgid "Manage software" #~ msgstr "Servizzi Samba attivati" #, fuzzy #~ msgid "Use NFS shares" #~ msgstr "Ikkonfigura DNS" #, fuzzy #~ msgid "Manage Samba configuration" #~ msgstr "Konfigurazzjoni allerti bl-imejl" #, fuzzy #~ msgid "Use WebDAV shares" #~ msgstr "Ikkonfigura web server" #~ msgid "CD-ROM" #~ msgstr "CD-ROM" #~ msgid "Boot theme" #~ msgstr "Tema tal-ibbutjar" #~ msgid "Console" #~ msgstr "Konsol" #~ msgid "Fax" #~ msgstr "Faks" #~ msgid "Software Media Manager" #~ msgstr "Maniġġjar ta' sorsi tas-softwer" #, fuzzy #~ msgid "Invictus Firewall" #~ msgstr "Firewall" #~ msgid "Language" #~ msgstr "Agħżel il-lingwa" #~ msgid "Country / Region" #~ msgstr "Pajjiż" #~ msgid "Updates" #~ msgstr "Aġġornamenti" #, fuzzy #~ msgid "Control and configure network connections" #~ msgstr "Immonitorja konnessjonijiet" #, fuzzy #~ msgid "Network Profiles" #~ msgstr "Interfaċċja tan-network" #~ msgid "Local disk sharing" #~ msgstr "Qsim ta' diski lokali" #~ msgid "Level and checks" #~ msgstr "Livell u ċċekkjar" #~ msgid "Media Manager" #~ msgstr "Maniġġjar ta' sorsi" #~ msgid "UPS" #~ msgstr "UPS" #, fuzzy #~ msgid "VPN configuration" #~ msgstr "Konfigurazzjoni CUPS" #, fuzzy #~ msgid "Configure Software management" #~ msgstr "Maniġġjar ta' softwer" #~ msgid "Install" #~ msgstr "Installa" #~ msgid "Remove" #~ msgstr "Neħħi" #~ msgid "Screen resolution" #~ msgstr "Reżoluzzjoni tal-iskrin" #, fuzzy #~ msgid "Change the screen resolution" #~ msgstr "Reżoluzzjoni tal-iskrin" #~ msgid "TV card" #~ msgstr "Kard TV" #, fuzzy #~ msgid "Set up TV card" #~ msgstr "Kard TV" #~ msgid "_Expert mode" #~ msgstr "Modalità _esperti" #, fuzzy #~ msgid "Set Samba mount points" #~ msgstr "Punti ta' mmuntar Samba" #, fuzzy #~ msgid "Samba printing configuration" #~ msgstr "Konfigurazzjoni tal-ipprintjar" #~ msgid "(original C version)" #~ msgstr "(verżjoni C oriġinali)" #~ msgid "(design)" #~ msgstr "(disinn)" #~ msgid "" #~ "We are about to switch from the \"%s\" profile to the \"%s\" profile.\n" #~ "\n" #~ "Are you sure you want to do the switch?" #~ msgstr "" #~ "Se naqilbu mill-profil \"%s\" għall-profil \"%s\".\n" #~ "\n" #~ "Żgur li trid taqleb?" #~ msgid "_Profiles" #~ msgstr "_Profili" #~ msgid "_New" #~ msgstr "_Ġdid" #~ msgid "New profile..." #~ msgstr "Profil ġdid..." #~ msgid "" #~ "Name of the profile to create (the new profile is created as a copy of " #~ "the current one):" #~ msgstr "" #~ "Isem tal-profil li trid toħloq (il-profil il-ġdid jinħoloq bħala kopja " #~ "ta' dak kurrenti):" #~ msgid "Ok" #~ msgstr "Ok" #~ msgid "The \"%s\" profile already exists!" #~ msgstr "Il-profil \"%s\" diġà jeżisti!" #~ msgid "Delete profile" #~ msgstr "Ħassar profil" #~ msgid "Profile to delete:" #~ msgstr "Profil li trid tħassar:" #~ msgid "You can not delete the current profile" #~ msgstr "Ma tistax tħassar il-profil kurrenti" #~ msgid "CD/DVD" #~ msgstr "CD/DVD" #~ msgid "Configure PXE" #~ msgstr "Ikkonfigura PXE" #~ msgid "DVD" #~ msgstr "DVD" #~ msgid "Floppy" #~ msgstr "Flopi" #~ msgid "%s Control Center %s\n" #~ msgstr "Ċentru tal-Kontroll %s %s\n" #~ msgid "Zip" #~ msgstr "Żip" #n1118'>1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448
package lang; # $Id$

use diagnostics;
use strict;
use common;
use utf8;
use log;

#- key: lang name (locale name for some (~5) special cases needing
#-      extra distinctions)
#- [0]: lang name in english
#- [1]: transliterated locale name in the locale name (used for sorting)
#- [2]: default locale name to use for that language if there is not
#-      an existing locale for the combination language+country choosen
#- [3]: geographic groups that this language belongs to (for displaying
#-      in the menu grouped in smaller lists), 1=Europe, 2=Asia, 3=Africa,
#-      4=Oceania&Pacific, 5=America (if you wonder, it's the order
#-      used in the olympic flag)
#- [4]: special value for LANGUAGE variable (if different of the default
#-      of 'll_CC:ll_DD:ll' (ll_CC: locale (if exist) resulting of the
#-      combination of chosen lang (ll) and country (CC), ll_DD: the
#-      default locale shown here (field [2]) and ll: the language (the key))
our %langs = (
'af' =>    [ 'Afrikaans',           'Afrikaans',         'af_ZA', '  3  ', 'iso-8859-1' ],
'am' =>    [ 'Amharic',             'ZZ emarNa',         'am_ET', '  3  ', 'utf_ethi' ],
'ar' =>    [ 'Arabic',              'AA Arabic',         'ar_EG', ' 23  ', 'utf_ar' ],
'as' =>    [ 'Assamese',            'ZZ Assamese',       'as_IN', ' 2   ', 'utf_beng' ],
'az' =>    [ 'Azeri (Latin)',       'Azerbaycanca',      'az_AZ', ' 2   ', 'utf_az' ],
'be' =>    [ 'Belarussian',         'Belaruskaya',       'be_BY', '1    ', 'utf_cyr1' ],
'ber' =>   [ 'Berber',              'ZZ Tamazight',      'ber_MA', '  3  ', 'utf_tfng', 'ber_MA:ber:fr' ],
'bg' =>    [ 'Bulgarian',           'Blgarski',          'bg_BG', '1    ', 'cp1251' ],
'bn' =>    [ 'Bengali',             'ZZ Bengali',        'bn_BD', ' 2   ', 'utf_beng' ],
#- bo_CN not yet done, using dz_BT locale instead
'bo' =>    [ 'Tibetan',             'ZZ Bod skad',       'dz_BT', ' 2   ', 'utf_tibt', 'bo' ],
'br' =>    [ 'Breton',              'Brezhoneg',         'br_FR', '1    ', 'iso-8859-15', 'br:fr_FR:fr' ],
'bs' =>    [ 'Bosnian',             'Bosanski',          'bs_BA', '1    ', 'iso-8859-2' ],
'ca' =>    [ 'Catalan',             'Catala',            'ca_ES', '1    ', 'iso-8859-15', 'ca:es_ES:es' ],
'ca@valencian' =>  [ 'Catalan (Valencian)', 'Catala (Valencia)', 'ca_ES', '1    ', 'iso-8859-15', 'ca_ES@valencian:ca@valencian:ca:es_ES:es' ],
'cs' =>    [ 'Czech',               'Cestina',           'cs_CZ', '1    ', 'iso-8859-2' ],
'cy' =>    [ 'Welsh',               'Cymraeg',           'cy_GB', '1    ', 'utf_lat8',    'cy:en_GB:en' ],
'da' =>    [ 'Danish',              'Dansk',             'da_DK', '1    ', 'iso-8859-15' ],
'de' =>    [ 'German',              'Deutsch',           'de_DE', '1    ', 'iso-8859-15' ],
'dz' =>    [ 'Buthanese',           'ZZ Dzhonka',        'dz_BT', ' 2   ', 'utf_tibt' ],
'el' =>    [ 'Greek',               'Ellynika',          'el_GR', '1    ', 'iso-8859-7' ],
'en_AU' => [ 'English (Australia)', 'English (AU)',      'en_AU', '   4 ', 'iso-8859-1', 'en_AU:en_GB:en' ],
'en_CA' => [ 'English (Canada)',    'English (Canada)',  'en_CA', '    5', 'iso-8859-15', 'en_CA:en_GB:en' ],
'en_GB' => [ 'English',             'English',           'en_GB', '123 5', 'iso-8859-15' ],
'en_IE' => [ 'English (Ireland)',   'English (Ireland)', 'en_IE', '1    ', 'iso-8859-15', 'en_IE:en_GB:en' ],
'en_NZ' => [ 'English (New-Zealand)', 'English (NZ)',    'en_NZ', '   4 ', 'iso-8859-1', 'en_NZ:en_AU:en_GB:en' ],
'en_US' => [ 'English (American)', 'English (American)', 'en_US', '    5', 'C' ],
'eo' =>    [ 'Esperanto',           'Esperanto',         'eo_XX', '12345', 'unicode' ],
'es' =>    [ 'Spanish',             'Espanol',           'es_ES', '1 3 5', 'iso-8859-15' ],
'et' =>    [ 'Estonian',            'Eesti',             'et_EE', '1    ', 'iso-8859-15' ],
'eu' =>    [ 'Euskara (Basque)',    'Euskara',           'eu_ES', '1    ', 'utf_lat1' ],
'fa' =>    [ 'Farsi (Iranian)',     'AA Farsi',          'fa_IR', ' 2   ', 'utf_ar' ],
'fi' =>    [ 'Finnish (Suomi)',     'Suomi',             'fi_FI', '1    ', 'iso-8859-15' ],
#- 'tl' in priority position for now, as 'fil' is not much used.
#- Monolingual window managers will not see the menus otherwise
'fil' =>   [ 'Filipino',            'Filipino',          'fil_PH', ' 2   ', 'utf_lat1',  'tl:fil' ],
'fo' =>    [ 'Faroese',             'Foroyskt',          'fo_FO', '1    ', 'utf_lat1' ],
'fr' =>    [ 'French',              'Francais',          'fr_FR', '1 345', 'iso-8859-15' ],
'fur' =>   [ 'Furlan',              'Furlan',            'fur_IT', '1    ', 'utf_lat1', 'fur:it_IT:it' ],
'fy' =>    [ 'Frisian',             'Frysk',             'fy_NL', '1    ', 'utf_lat1' ],
'ga' =>    [ 'Gaelic (Irish)',      'Gaeilge',           'ga_IE', '1    ', 'utf_lat1', 'ga:en_IE:en_GB:en' ],
#'gd' =>   [ 'Gaelic (Scottish)',   'Gaidhlig',          'gd_GB', '1    ', 'utf_lat8',    'gd:en_GB:en' ],
'gl' =>    [ 'Galician',            'Galego',            'gl_ES', '1    ', 'iso-8859-15', 'gl:es_ES:es:pt:pt_BR' ],
#- gn_PY not yet done, using es_PY locale instead
'gn' =>    [ 'Guarani',             'Avane-e',           'es_PY', '    5', 'utf_lat1',    'gn:es_PY:es' ],
'gu' =>    [ 'Gujarati',            'ZZ Gujarati',       'gu_IN', ' 2   ', 'unicode' ],
#'gv' =>   [ 'Gaelic (Manx)',       'Gaelg',             'gv_GB', '1    ', 'utf_lat8',    'gv:en_GB:en' ],
'ha' =>    [ 'Hausa',               'Hausa',             'ha_NG', '  3  ', 'utf_yo', 'ha:en_NG' ],
'he' =>    [ 'Hebrew',              'AA Ivrit',          'he_IL', ' 2   ', 'utf_he' ],
'hi' =>    [ 'Hindi',               'ZZ Hindi',          'hi_IN', ' 2   ', 'utf_deva' ],
'hr' =>    [ 'Croatian',            'Hrvatski',          'hr_HR', '1    ', 'iso-8859-2' ],
'hu' =>    [ 'Hungarian',           'Magyar',            'hu_HU', '1    ', 'iso-8859-2' ],
'hy' =>    [ 'Armenian',            'ZZ Armenian',       'hy_AM', ' 2   ', 'utf_armn' ],
# locale not done yet
#'ia' =>   [ 'Interlingua',         'Interlingua',       'ia_XX', '1   5', 'utf_lat1' ],
'id' =>    [ 'Indonesian',          'Bahasa Indonesia',  'id_ID', ' 2   ', 'utf_lat1' ],
'ig' =>    [ 'Igbo',                'Igbo',              'ig_NG', '  3  ', 'utf_yo', 'ig:en_NG' ],
'is' =>    [ 'Icelandic',           'Islenska',          'is_IS', '1    ', 'iso-8859-15' ],
'it' =>    [ 'Italian',             'Italiano',          'it_IT', '1    ', 'iso-8859-15' ],
'iu' =>    [ 'Inuktitut',           'ZZ Inuktitut',      'iu_CA', '    5', 'utf_iu' ],
'ja' =>    [ 'Japanese',            'ZZ Nihongo',        'ja_JP', ' 2   ', 'jisx0208' ],
'ka' =>    [ 'Georgian',            'ZZ Georgian',       'ka_GE', ' 2   ', 'utf_geor' ],
'kk' =>    [ 'Kazakh',              'Kazak',             'kk_KZ', ' 2   ', 'utf_cyr2' ],
'kl' =>    [ 'Greenlandic (inuit)', 'Kalaallisut',       'kl_GL', '    5', 'utf_lat1' ],
'km' =>    [ 'Khmer',               'ZZ Khmer',          'km_KH', ' 2   ', 'utf_khmr' ],
'kn' =>    [ 'Kannada',             'ZZ Kannada',        'kn_IN', ' 2   ', 'utf_knda' ],
'ko' =>    [ 'Korean',              'ZZ Korea',          'ko_KR', ' 2   ', 'ksc5601' ],
'ku' =>    [ 'Kurdish',             'Kurdi',             'ku_TR', ' 2   ', 'utf_lat5' ],
#-'kw' =>  [ 'Cornish',             'Kernewek',          'kw_GB', '1    ', 'utf_lat8',    'kw:en_GB:en' ],
'ky' =>    [ 'Kyrgyz',              'Kyrgyz',            'ky_KG', ' 2   ', 'utf_cyr2' ],
#- lb_LU not yet done, using de_LU locale instead
'lb' =>    [ 'Luxembourgish',       'Letzebuergesch',    'de_LU', '1    ', 'utf_lat1', 'lb:de_LU' ],
'li' =>    [ 'Limbourgish',         'Limburgs',          'li_NL', '1    ', 'utf_lat1' ],
'lo' =>    [ 'Laotian',             'Laotian',           'lo_LA', ' 2   ', 'utf_laoo' ],
'lt' =>    [ 'Lithuanian',          'Lietuviskai',       'lt_LT', '1    ', 'iso-8859-13' ],
#- ltg_LV locale not done yet, using lv_LV for now
#- "ltg" is not a standard lang code, ISO-639 code was refused;
#- LTG_LV should be used instead (uppercase is for non-standard
#- langcodes, as defined by locale naming standard
'ltg' =>   [ 'Latgalian',           'Latgalisu',         'lv_LV', '1    ', 'utf_lat7', 'ltg:LTG:lv' ],
#'lu' =>    [ 'Luganda',             'Luganda',           'lg_UG', '  3  ', 'utf_lat1' ],
'lv' =>    [ 'Latvian',             'Latviesu',          'lv_LV', '1    ', 'iso-8859-13' ],
'mi' =>    [ 'Maori',               'Maori',             'mi_NZ', '   4 ', 'utf_lat7' ],
'mk' =>    [ 'Macedonian',          'Makedonski',        'mk_MK', '1    ', 'utf_cyr1' ],
'ml' =>    [ 'Malayalam',           'ZZ Malayalam',      'ml_IN', ' 2   ', 'utf_mlym' ],
'mn' =>    [ 'Mongolian',           'Mongol',            'mn_MN', ' 2   ', 'utf_cyr2' ],
'mr' =>    [ 'Marathi',             'ZZ Marathi',        'mr_IN', ' 2   ', 'utf_deva' ],
'ms' =>    [ 'Malay',               'Bahasa Melayu',     'ms_MY', ' 2   ', 'utf_lat1' ],
'mt' =>    [ 'Maltese',             'Maltin',            'mt_MT', '1 3  ', 'unicode' ],
#- "my_MM" not yet done, using "en_US" for now
'my' =>    [ 'Burmese',             'ZZ Bamaca',         'en_US', ' 2   ', 'utf_mymr', 'my_MM:my' ],
'nb' =>    [ 'Norwegian Bokmaal',   'Norsk, Bokmal',     'nb_NO', '1    ', 'iso-8859-15',  'nb:no' ],
'nds' =>   [ 'Low Saxon',           'Platduutsch',       'nds_DE', '1    ', 'utf_lat1', 'nds_DE:nds' ],
'ne' =>    [ 'Nepali',              'ZZ Nepali',         'ne_NP', ' 2   ', 'utf_deva' ],
'nl' =>    [ 'Dutch',               'Nederlands',        'nl_NL', '1    ', 'iso-8859-15' ],
'nn' =>    [ 'Norwegian Nynorsk',   'Norsk, Nynorsk',    'nn_NO', '1    ', 'iso-8859-15',  'nn:no@nynorsk:no_NY:no:nb' ],
'nr' =>    [ 'Ndebele',             'IsiNdebele',        'nr_ZA', '  3  ', 'utf_lat1', 'nr:en_ZA' ],
'nso' =>   [ 'Northern Sotho',      'Sesotho sa Leboa',  'nso_ZA', '  3  ', 'utf_lat1', 'st:nso:en_ZA' ],
'oc' =>    [ 'Occitan',             'Occitan',           'oc_FR', '1    ', 'utf_lat1',  'oc:fr_FR:fr' ],
'pa_IN' => [ 'Punjabi (gurmukhi)',  'ZZ Punjabi',        'pa_IN', ' 2   ', 'utf_guru' ],
'pl' =>    [ 'Polish',              'Polski',            'pl_PL', '1    ', 'iso-8859-2' ],
'pt' =>    [ 'Portuguese',          'Portugues',         'pt_PT', '1 3  ', 'iso-8859-15', 'pt_PT:pt:pt_BR' ],
'pt_BR' => [ 'Portuguese Brazil', 'Portugues do Brasil', 'pt_BR', '    5', 'iso-8859-1',  'pt_BR:pt_PT:pt' ],
#- qu_PE not yet done, using es_PE locale instead
'qu' =>    [ 'Quichua',             'Runa Simi',         'es_PE', '    5', 'utf_lat1', 'qu:es_PE:es' ],
'ro' =>    [ 'Romanian',            'Romana',            'ro_RO', '1    ', 'iso-8859-2' ],
'ru' =>    [ 'Russian',             'Russkij',           'ru_RU', '12   ', 'koi8-u' ],
'rw' =>    [ 'Kinyarwanda',         'Kinyarwanda',       'rw_RW', '  3  ', 'utf_lat1', 'rw' ],
'sc' =>    [ 'Sardinian',           'Sardu',             'sc_IT', '1    ', 'utf_lat1', 'sc:it_IT:it' ],
'se' =>    [ 'Saami',               'Samegiella',        'se_NO', '1    ', 'unicode' ], 
'sk' =>    [ 'Slovak',              'Slovencina',        'sk_SK', '1    ', 'iso-8859-2' ],
'sl' =>    [ 'Slovenian',           'Slovenscina',       'sl_SI', '1    ', 'iso-8859-2' ],
'so' =>    [ 'Somali',              'Soomaali',          'so_SO', '  3  ', 'utf_lat1' ], 
'sq' =>    [ 'Albanian',            'Shqip',             'sq_AL', '1    ', 'iso-8859-1' ], 
'sr' =>    [ 'Serbian Cyrillic',    'Srpska',            'sr_CS', '1    ', 'utf_cyr1', 'sp:sr' ],
#- "sh" comes first, because otherwise, due to the way glibc does language
#- fallback, if "sr@Latn" is not there but a "sr" (whichs uses cyrillic)
#- is there, "sh" will never be used.
'sr@Latn' => [ 'Serbian Latin',     'Srpska',            'sr_CS', '1    ', 'unicode',  'sh:sr@Latn' ], 
'ss' =>    [ 'Swati',               'SiSwati',           'ss_ZA', '  3  ', 'utf_lat1', 'ss:en_ZA' ],
'st' =>    [ 'Sotho',               'Sesotho',           'st_ZA', '  3  ', 'utf_lat1', 'st:nso:en_ZA' ],
'sv' =>    [ 'Swedish',             'Svenska',           'sv_SE', '1    ', 'iso-8859-15' ],
'ta' =>    [ 'Tamil',               'ZZ Tamil',          'ta_IN', ' 2   ', 'utf_taml' ],
'te' =>    [ 'Telugu',              'ZZ Telugu',         'te_IN', ' 2   ', 'unicode' ],
'tg' =>    [ 'Tajik',               'Tojiki',            'tg_TJ', ' 2   ', 'utf_cyr2' ],
'th' =>    [ 'Thai',                'ZZ Thai',           'th_TH', ' 2   ', 'tis620' ],
'tk' =>    [ 'Turkmen',             'Turkmence',         'tk_TM', ' 2   ', 'utf_az' ],
'tn' =>    [ 'Tswana',              'Setswana',          'tn_ZA', '  3  ', 'utf_lat1', 'tn:en_ZA' ],
'tr' =>    [ 'Turkish',             'Turkce',            'tr_TR', '12   ', 'iso-8859-9' ],
'ts' =>    [ 'Tsonga',              'Xitsonga',          'ts_ZA', '  3  ', 'utf_lat1', 'ts:en_ZA' ],
'tt' =>    [ 'Tatar',               'Tatarca',           'tt_RU', ' 2   ', 'utf_lat5' ],
'ug' =>    [ 'Uyghur',              'AA Uyghur',         'ug_CN', ' 2   ', 'utf_ar', 'ug' ],  
'uk' =>    [ 'Ukrainian',           'Ukrayinska',        'uk_UA', '1    ', 'koi8-u' ],
'ur' =>    [ 'Urdu',                'AA Urdu',           'ur_PK', ' 2   ', 'utf_ar' ],  
'uz' => [ 'Uzbek',     'Ozbekcha',          'uz_UZ', ' 2   ', 'utf_cyr2', 'uz' ],
 'uz@cyrillic' =>    [ 'Uzbek (cyrillic)',    'Ozbekcha',          'uz_UZ@cyrillic', ' 2   ', 'utf_cyr2', 'uz@cyrillic' ],
've' =>    [ 'Venda',               'Tshivenda',         've_ZA', '  3  ', 'utf_lat1', 've:ven:en_ZA' ],
'vi' =>    [ 'Vietnamese',          'Tieng Viet',        'vi_VN', ' 2   ', 'utf_vi' ],
'wa' =>    [ 'Walon',               'Walon',             'wa_BE', '1    ', 'utf_lat1', 'wa:fr_BE:fr' ],
#- locale "wen_DE" not done yet, using "de_DE" instead
#- wen disabled until we have a perl-install/pixmaps/langs/lang-wen.png for it
#'wen' =>   [ 'Sorbian',             'Sorbian',           'de_DE', '1    ', 'utf_lat1', 'wen' ],
'xh' =>    [ 'Xhosa',               'IsiXhosa',          'xh_ZA', '  3  ', 'utf_lat1', 'xh:en_ZA' ],
'yi' =>    [ 'Yiddish',             'AA Yidish',         'yi_US', '1    ', 'utf_he' ],
'yo' =>    [ 'Yoruba',              'Yoruba',            'yo_NG', '  3  ', 'utf_yo', 'yo:en_NG' ],
'zh_CN' => [ 'Chinese Simplified',  'ZZ ZhongWen',       'zh_CN', ' 2   ', 'gb2312',      'zh_CN.GBK:zh_CN.GB2312:zh_CN:zh' ],
'zh_TW' => [ 'Chinese Traditional', 'ZZ ZhongWen',       'zh_TW', ' 2   ', 'Big5',        'zh_TW.Big5:zh_TW:zh_HK:zh' ],
'zu' =>    [ 'Zulu',                 'IsiZulu',          'zu_ZA', '  3  ', 'utf_lat1', 'xh:en_ZA' ],
);
sub l2name           { exists $langs{$_[0]} && $langs{$_[0]}[0] }
sub l2transliterated { exists $langs{$_[0]} && $langs{$_[0]}[1] }
sub l2locale         { exists $langs{$_[0]} && $langs{$_[0]}[2] }
sub l2location {
    my ($lang) = @_;
    my %geo = (1 => 'Europe', 2 => 'Asia', 3 => 'Africa', 4 => 'Oceania/Pacific', 5 => 'America');
    map { $geo{$_} } grep { $langs{$lang} && $langs{$lang}[3] =~ $_ } 1..5;
}
sub l2charset        { exists $langs{$_[0]} && $langs{$_[0]}[4] }
sub l2language       { exists $langs{$_[0]} && $langs{$_[0]}[5] }
sub list_langs {
    my (%options) = @_;
    my @l = keys %langs;
    $options{exclude_non_installed} ? grep { -e "/usr/share/locale/" . l2locale($_) . "/LC_CTYPE" } @l : @l;
}

sub text_direction_rtl() {
#-PO: the string "default:LTR" can be translated *ONLY* as "default:LTR"
#-PO: or as "default:RTL", depending if your language is written from
#-PO: left to right, or from right to left; any other string is wrong.
       	N("default:LTR") eq "default:RTL";
}


#- key: country name (that should be YY in xx_YY locale)
#- [0]: country name in natural language
#- [1]: default locale for that country 
#- [2]: geographic groups that this country belongs to (for displaying
#-      in the menu grouped in smaller lists), 1=Europe, 2=Asia, 3=Africa,
#-      4=Oceania&Pacific, 5=America (if you wonder, it's the order
#-      used in the olympic flag)
#-
#- Note: for countries for which a glibc locale do not exist (yet) I tried to
#- put a locale that makes sense; and a '#' at the end of the line to show
#- the locale is not the "correct" one. 'en_US' is used when no good choice
#- is available.
my %countries = (
'AD' => [ N_("Andorra"),        'ca_AD', '1' ],
'AE' => [ N_("United Arab Emirates"), 'ar_AE', '2' ],
'AF' => [ N_("Afghanistan"),    'en_US', '2' ], #
'AG' => [ N_("Antigua and Barbuda"), 'en_US', '5' ], #
'AI' => [ N_("Anguilla"),       'en_US', '5' ], #
'AL' => [ N_("Albania"),        'sq_AL', '1' ],
'AM' => [ N_("Armenia"),        'hy_AM', '2' ],
'AN' => [ N_("Netherlands Antilles"), 'en_US', '5' ], #
'AO' => [ N_("Angola"),         'pt_PT', '3' ], #
'AQ' => [ N_("Antarctica"),     'en_US', '4' ], #
'AR' => [ N_("Argentina"),      'es_AR', '5' ],
'AS' => [ N_("American Samoa"), 'en_US', '4' ], #
'AT' => [ N_("Austria"),        'de_AT', '1' ],
'AU' => [ N_("Australia"),      'en_AU', '4' ],
'AW' => [ N_("Aruba"),          'en_US', '5' ], #
'AZ' => [ N_("Azerbaijan"),     'az_AZ', '1' ],
'BA' => [ N_("Bosnia and Herzegovina"), 'bs_BA', '1' ],
'BB' => [ N_("Barbados"),       'en_US', '5' ], #
'BD' => [ N_("Bangladesh"),     'bn_BD', '2' ],
'BE' => [ N_("Belgium"),        'fr_BE', '1' ],
'BF' => [ N_("Burkina Faso"),   'en_US', '3' ], #
'BG' => [ N_("Bulgaria"),       'bg_BG', '1' ],
'BH' => [ N_("Bahrain"),        'ar_BH', '2' ],
'BI' => [ N_("Burundi"),        'en_US', '3' ], #
'BJ' => [ N_("Benin"),          'fr_FR', '3' ], #
'BM' => [ N_("Bermuda"),        'en_US', '5' ], #
'BN' => [ N_("Brunei Darussalam"), 'ar_EG', '2' ], #
'BO' => [ N_("Bolivia"),        'es_BO', '5' ],
'BR' => [ N_("Brazil"),         'pt_BR', '5' ],
'BS' => [ N_("Bahamas"),        'en_US', '5' ], #
'BT' => [ N_("Bhutan"),         'dz_BT', '2' ],
'BV' => [ N_("Bouvet Island"),  'en_US', '3' ], #
'BW' => [ N_("Botswana"),       'en_BW', '3' ],
'BY' => [ N_("Belarus"),        'be_BY', '1' ],
'BZ' => [ N_("Belize"),         'en_US', '5' ], #
'CA' => [ N_("Canada"),         'en_CA', '5' ],
'CC' => [ N_("Cocos (Keeling) Islands"), 'en_US', '4' ], #
'CD' => [ N_("Congo (Kinshasa)"), 'fr_FR', '3' ], #
'CF' => [ N_("Central African Republic"), 'fr_FR', '3' ], #
'CG' => [ N_("Congo (Brazzaville)"), 'fr_FR', '3' ], #
'CH' => [ N_("Switzerland"),    'de_CH', '1' ],
'CI' => [ N_("Cote d'Ivoire"),  'fr_FR', '3' ], #
'CK' => [ N_("Cook Islands"),   'en_US', '4' ], #
'CL' => [ N_("Chile"),          'es_CL', '5' ],
'CM' => [ N_("Cameroon"),       'fr_FR', '3' ], #
'CN' => [ N_("China"),          'zh_CN', '2' ],
'CO' => [ N_("Colombia"),       'es_CO', '5' ],
'CR' => [ N_("Costa Rica"),     'es_CR', '5' ],
'CS' => [ N_("Serbia & Montenegro"), 'sr_CS', '1' ],
'CU' => [ N_("Cuba"),           'es_DO', '5' ], #
'CV' => [ N_("Cape Verde"),     'pt_PT', '3' ], #
'CX' => [ N_("Christmas Island"), 'en_US', '4' ], #
'CY' => [ N_("Cyprus"),         'el_CY', '1' ],
'CZ' => [ N_("Czech Republic"), 'cs_CZ', '2' ],
'DE' => [ N_("Germany"),        'de_DE', '1' ],
'DJ' => [ N_("Djibouti"),       'en_US', '3' ], #
'DK' => [ N_("Denmark"),        'da_DK', '1' ],
'DM' => [ N_("Dominica"),       'en_US', '5' ], #
'DO' => [ N_("Dominican Republic"), 'es_DO', '5' ],
'DZ' => [ N_("Algeria"),        'ar_DZ', '3' ],
'EC' => [ N_("Ecuador"),        'es_EC', '5' ],
'EE' => [ N_("Estonia"),        'et_EE', '1' ],
'EG' => [ N_("Egypt"),          'ar_EG', '3' ],
'EH' => [ N_("Western Sahara"), 'ar_MA', '3' ], #
'ER' => [ N_("Eritrea"),        'ti_ER', '3' ],
'ES' => [ N_("Spain"),          'es_ES', '1' ],
'ET' => [ N_("Ethiopia"),       'am_ET', '3' ],
'FI' => [ N_("Finland"),        'fi_FI', '1' ],
'FJ' => [ N_("Fiji"),           'en_US', '4' ], #
'FK' => [ N_("Falkland Islands (Malvinas)"), 'en_GB', '5' ], #
'FM' => [ N_("Micronesia"),     'en_US', '4' ], #
'FO' => [ N_("Faroe Islands"),  'fo_FO', '1' ],
'FR' => [ N_("France"),         'fr_FR', '1' ],
'GA' => [ N_("Gabon"),          'fr_FR', '3' ], #
'GB' => [ N_("United Kingdom"), 'en_GB', '1' ],
'GD' => [ N_("Grenada"),        'en_US', '5' ], #
'GE' => [ N_("Georgia"),        'ka_GE', '2' ],
'GF' => [ N_("French Guiana"),  'fr_FR', '5' ], #
'GH' => [ N_("Ghana"),          'en_GB', '3' ], #
'GI' => [ N_("Gibraltar"),      'en_GB', '1' ], #
'GL' => [ N_("Greenland"),      'kl_GL', '5' ],
'GM' => [ N_("Gambia"),         'en_US', '3' ], #
'GN' => [ N_("Guinea"),         'en_US', '3' ], #
'GP' => [ N_("Guadeloupe"),     'fr_FR', '5' ], #
'GQ' => [ N_("Equatorial Guinea"), 'en_US', '3' ], #
'GR' => [ N_("Greece"),         'el_GR', '1' ],
'GS' => [ N_("South Georgia and the South Sandwich Islands"), 'en_US', '4' ], #
'GT' => [ N_("Guatemala"),      'es_GT', '5' ],
'GU' => [ N_("Guam"),           'en_US', '4' ], #
'GW' => [ N_("Guinea-Bissau"),  'pt_PT', '3' ], #
'GY' => [ N_("Guyana"),         'en_US', '5' ], #
'HK' => [ N_("Hong Kong SAR (China)"),      'zh_HK', '2' ],
'HM' => [ N_("Heard and McDonald Islands"), 'en_US', '4' ], #
'HN' => [ N_("Honduras"),       'es_HN', '5' ],
'HR' => [ N_("Croatia"),        'hr_HR', '1' ],
'HT' => [ N_("Haiti"),          'fr_FR', '5' ], #
'HU' => [ N_("Hungary"),        'hu_HU', '1' ],
'ID' => [ N_("Indonesia"),      'id_ID', '2' ],
'IE' => [ N_("Ireland"),        'en_IE', '1' ],
'IL' => [ N_("Israel"),         'he_IL', '2' ],
'IN' => [ N_("India"),          'hi_IN', '2' ],
'IO' => [ N_("British Indian Ocean Territory"), 'en_GB', '2' ], #
'IQ' => [ N_("Iraq"),           'ar_IQ', '2' ],
'IR' => [ N_("Iran"),           'fa_IR', '2' ],
'IS' => [ N_("Iceland"),        'is_IS', '1' ],
'IT' => [ N_("Italy"),          'it_IT', '1' ],
'JM' => [ N_("Jamaica"),        'en_US', '5' ], #
'JO' => [ N_("Jordan"),         'ar_JO', '2' ],
'JP' => [ N_("Japan"),          'ja_JP', '2' ],
'KE' => [ N_("Kenya"),          'en_ZW', '3' ], #
'KG' => [ N_("Kyrgyzstan"),     'ky_KG', '2' ],
'KH' => [ N_("Cambodia"),       'km_KH', '2' ],
'KI' => [ N_("Kiribati"),       'en_US', '3' ], #
'KM' => [ N_("Comoros"),        'en_US', '2' ], #
'KN' => [ N_("Saint Kitts and Nevis"), 'en_US', '5' ], #
'KP' => [ N_("Korea (North)"),  'ko_KR', '2' ], #
'KR' => [ N_("Korea"),          'ko_KR', '2' ],
'KW' => [ N_("Kuwait"),         'ar_KW', '2' ],
'KY' => [ N_("Cayman Islands"), 'en_US', '5' ], #
'KZ' => [ N_("Kazakhstan"),     'kk_KZ', '2' ],
'LA' => [ N_("Laos"),           'lo_LA', '2' ],
'LB' => [ N_("Lebanon"),        'ar_LB', '2' ],
'LC' => [ N_("Saint Lucia"),    'en_US', '5' ], #
'LI' => [ N_("Liechtenstein"),  'de_CH', '1' ], #
'LK' => [ N_("Sri Lanka"),      'si_LK', '2' ],
'LR' => [ N_("Liberia"),        'en_US', '3' ], #
'LS' => [ N_("Lesotho"),        'en_BW', '3' ], #
'LT' => [ N_("Lithuania"),      'lt_LT', '1' ],
'LU' => [ N_("Luxembourg"),     'de_LU', '1' ], # lb_LU
'LV' => [ N_("Latvia"),         'lv_LV', '1' ],
'LY' => [ N_("Libya"),          'ar_LY', '3' ],
'MA' => [ N_("Morocco"),        'ar_MA', '3' ],
'MC' => [ N_("Monaco"),         'fr_FR', '1' ], #
'MD' => [ N_("Moldova"),        'ro_RO', '1' ], #
'MG' => [ N_("Madagascar"),     'mg_MG', '3' ],
'MH' => [ N_("Marshall Islands"), 'en_US', '4' ], #
'MK' => [ N_("Macedonia"),      'mk_MK', '1' ],
'ML' => [ N_("Mali"),           'en_US', '3' ], #
'MM' => [ N_("Myanmar"),        'en_US', '2' ], # my_MM
'MN' => [ N_("Mongolia"),       'mn_MN', '2' ],
'MP' => [ N_("Northern Mariana Islands"), 'en_US', '2' ], #
'MQ' => [ N_("Martinique"),     'fr_FR', '5' ], #
'MR' => [ N_("Mauritania"),     'en_US', '3' ], #
'MS' => [ N_("Montserrat"),     'en_US', '5' ], #
'MT' => [ N_("Malta"),          'mt_MT', '1' ],
'MU' => [ N_("Mauritius"),      'en_US', '3' ], #
'MV' => [ N_("Maldives"),       'en_US', '4' ], #
'MW' => [ N_("Malawi"),         'en_US', '3' ], #
'MX' => [ N_("Mexico"),         'es_MX', '5' ],
'MY' => [ N_("Malaysia"),       'ms_MY', '2' ],
'MZ' => [ N_("Mozambique"),     'pt_PT', '3' ], #
'NA' => [ N_("Namibia"),        'en_US', '3' ], #
'NC' => [ N_("New Caledonia"),  'fr_FR', '4' ], #
'NE' => [ N_("Niger"),          'en_US', '3' ], #
'NF' => [ N_("Norfolk Island"), 'en_GB', '4' ], #
'NG' => [ N_("Nigeria"),        'en_NG', '3' ],
'NI' => [ N_("Nicaragua"),      'es_NI', '5' ],
'NL' => [ N_("Netherlands"),    'nl_NL', '1' ],
'NO' => [ N_("Norway"),         'nb_NO', '1' ],
'NP' => [ N_("Nepal"),          'ne_NP', '2' ],
'NR' => [ N_("Nauru"),          'en_US', '4' ], #
'NU' => [ N_("Niue"),           'en_US', '4' ], #
'NZ' => [ N_("New Zealand"),    'en_NZ', '4' ],
'OM' => [ N_("Oman"),           'ar_OM', '2' ],
'PA' => [ N_("Panama"),         'es_PA', '5' ],
'PE' => [ N_("Peru"),           'es_PE', '5' ],
'PF' => [ N_("French Polynesia"), 'fr_FR', '4' ], #
'PG' => [ N_("Papua New Guinea"), 'en_NZ', '4' ], #
'PH' => [ N_("Philippines"),    'fil_PH', '2' ],
'PK' => [ N_("Pakistan"),       'ur_PK', '2' ],
'PL' => [ N_("Poland"),         'pl_PL', '1' ],
'PM' => [ N_("Saint Pierre and Miquelon"), 'fr_CA', '5' ], #
'PN' => [ N_("Pitcairn"),      'en_US', '4' ], #
'PR' => [ N_("Puerto Rico"),    'es_PR', '5' ],
'PS' => [ N_("Palestine"),      'ar_JO', '2' ], #
'PT' => [ N_("Portugal"),       'pt_PT', '1' ],
'PY' => [ N_("Paraguay"),       'es_PY', '5' ],
'PW' => [ N_("Palau"),          'en_US', '2' ], #
'QA' => [ N_("Qatar"),          'ar_QA', '2' ],
'RE' => [ N_("Reunion"),        'fr_FR', '2' ], #
'RO' => [ N_("Romania"),        'ro_RO', '1' ],
'RU' => [ N_("Russia"),         'ru_RU', '1' ],
'RW' => [ N_("Rwanda"),         'rw_RW', '3' ],
'SA' => [ N_("Saudi Arabia"),   'ar_SA', '2' ],
'SB' => [ N_("Solomon Islands"), 'en_US', '4' ], #
'SC' => [ N_("Seychelles"),     'en_US', '4' ], #
'SD' => [ N_("Sudan"),          'ar_SD', '5' ],
'SE' => [ N_("Sweden"),         'sv_SE', '1' ],
'SG' => [ N_("Singapore"),      'en_SG', '2' ],
'SH' => [ N_("Saint Helena"),   'en_GB', '5' ], #
'SI' => [ N_("Slovenia"),       'sl_SI', '1' ],
'SJ' => [ N_("Svalbard and Jan Mayen Islands"), 'en_US', '1' ], #
'SK' => [ N_("Slovakia"),       'sk_SK', '1' ],
'SL' => [ N_("Sierra Leone"),   'en_US', '3' ], #
'SM' => [ N_("San Marino"),     'it_IT', '1' ], #
'SN' => [ N_("Senegal"),        'fr_FR', '3' ], #
'SO' => [ N_("Somalia"),        'so_SO', '3' ],
'SR' => [ N_("Suriname"),       'nl_NL', '5' ], #
'ST' => [ N_("Sao Tome and Principe"), 'en_US', '5' ], #
'SV' => [ N_("El Salvador"),    'es_SV', '5' ],
'SY' => [ N_("Syria"),          'ar_SY', '2' ],
'SZ' => [ N_("Swaziland"),      'en_BW', '3' ], #
'TC' => [ N_("Turks and Caicos Islands"), 'en_US', '5' ], #
'TD' => [ N_("Chad"),           'en_US', '3' ], #
'TF' => [ N_("French Southern Territories"), 'fr_FR', '4' ], #
'TG' => [ N_("Togo"),           'fr_FR', '3' ], #
'TH' => [ N_("Thailand"),       'th_TH', '2' ],
'TJ' => [ N_("Tajikistan"),     'tg_TJ', '2' ],
'TK' => [ N_("Tokelau"),        'en_US', '4' ], #
'TL' => [ N_("East Timor"),     'pt_PT', '4' ], #
'TM' => [ N_("Turkmenistan"),   'tk_TM', '2' ],
'TN' => [ N_("Tunisia"),        'ar_TN', '5' ],
'TO' => [ N_("Tonga"),          'en_US', '3' ], #
'TR' => [ N_("Turkey"),         'tr_TR', '2' ],
'TT' => [ N_("Trinidad and Tobago"), 'en_US', '5' ], #
'TV' => [ N_("Tuvalu"),         'en_US', '4' ], #
'TW' => [ N_("Taiwan"),         'zh_TW', '2' ],
'TZ' => [ N_("Tanzania"),       'en_US', '3' ], #
'UA' => [ N_("Ukraine"),        'uk_UA', '1' ],
'UG' => [ N_("Uganda"),         'lg_UG', '3' ],
'UM' => [ N_("United States Minor Outlying Islands"), 'en_US', '5' ], #
'US' => [ N_("United States"),  'en_US', '5' ],
'UY' => [ N_("Uruguay"),        'es_UY', '5' ],
'UZ' => [ N_("Uzbekistan"),     'uz_UZ', '2' ],
'VA' => [ N_("Vatican"),        'it_IT', '1' ], #
'VC' => [ N_("Saint Vincent and the Grenadines"), 'en_US', '5' ], 
'VE' => [ N_("Venezuela"),      'es_VE', '5' ],
'VG' => [ N_("Virgin Islands (British)"), 'en_GB', '5' ], #
'VI' => [ N_("Virgin Islands (U.S.)"), 'en_US', '5' ], #
'VN' => [ N_("Vietnam"),        'vi_VN', '2' ],
'VU' => [ N_("Vanuatu"),        'en_US', '4' ], #
'WF' => [ N_("Wallis and Futuna"), 'fr_FR', '4' ], #
'WS' => [ N_("Samoa"),          'en_US', '4' ], #
'YE' => [ N_("Yemen"),          'ar_YE', '2' ],
'YT' => [ N_("Mayotte"),        'fr_FR', '3' ], #
'ZA' => [ N_("South Africa"),   'en_ZA', '5' ],
'ZM' => [ N_("Zambia"),         'en_US', '3' ], #
'ZW' => [ N_("Zimbabwe"),       'en_ZW', '5' ],
);
sub c2name   { exists $countries{$_[0]} && translate($countries{$_[0]}[0]) }
sub c2locale { exists $countries{$_[0]} && $countries{$_[0]}[1] }
sub list_countries {
    my (%_options) = @_;
    keys %countries;
}

#- this list is built with the following command on the compile cluster:
#- rpm -qpl /cooker/RPMS/release/locales-* | grep LC_CTYPE | grep '\.UTF-8' | cut -d'/' -f5 | sed 's/.UTF-8//' | sort | tr '\n' ' ' ; echo
our @locales = qw(aa_DJ aa_ER aa_ER@saaho aa_ET af_ZA am_ET an_ES ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as_IN az_AZ be_BY ber_DZ ber_MA bg_BG bn_BD bn_IN br_FR bs_BA byn_ER ca_AD ca_ES ca_FR ca_IT cs_CZ cy_GB da_DK de_AT de_BE de_CH de_DE de_LU dz_BT el_CY el_GR en_AU en_BE en_BW en_CA en_DK en_GB en_HK en_IE en_IN en_NG en_NZ en_PH en_SG en_US en_ZA en_ZW eo_XX es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et_EE eu_ES fa_IR fi_FI fil_PH fo_FO fr_BE fr_CA fr_CH fr_FR fr_LU fur_IT fy_DE fy_NL ga_IE gd_GB gez_ER gez_ER@abegede gez_ET gez_ET@abegede gl_ES gu_IN gv_GB ha_NG he_IL hi_IN hr_HR hsb_DE hu_HU hy_AM id_ID ig_NG ik_CA is_IS it_CH it_IT iu_CA ja_JP ka_GE kk_KZ kl_GL km_KH kn_IN ko_KR ku_TR kw_GB ky_KG lg_UG li_BE li_NL lo_LA lt_LT lv_LV mg_MG mi_NZ mk_MK ml_IN mn_MN mr_IN ms_MY mt_MT nb_NO nds_DE@traditional ne_NP nl_BE nl_NL nn_NO no_NO nr_ZA nso_ZA oc_FR om_ET om_KE pa_IN pap_AN pa_PK ph_PH pl_PL pt_BR pt_PT ro_RO ru_RU ru_UA rw_RW sc_IT se_NO sid_ET si_LK sk_SK sl_SI so_DJ so_ET so_KE so_SO sq_AL sr_ME sr_RS sr_RS@latin ss_ZA st_ZA sv_FI sv_SE sw_XX ta_IN te_IN tg_TJ th_TH ti_ER ti_ET tig_ER tk_TM tl_PH tn_ZA tr_CY tr_TR ts_ZA tt_RU ug_CN uk_UA ur_PK uz_UZ uz_UZ@cyrillic ve_ZA vi_VN wa_BE wal_ET xh_ZA yi_US yo_NG zh_CN zh_HK zh_SG zh_TW zu_ZA);
	
sub standard_locale {
    my ($lang, $country, $prefer_lang) = @_;

    my $lang_ = force_lang_country($lang, $country);
    if (member($lang_, @locales)) {
	$lang_;
    } elsif ($prefer_lang && member($lang, @locales)) {
	$lang;
    } else {
	'';
    }
}

sub force_lang_country {
    my ($lang, $country) = @_;
    my $h = analyse_locale_name($lang);
    $h->{country} = $country;
    analysed_to_lang($h);
}

sub force_lang_charset {
    my ($lang, $charset) = @_;
    my $h = analyse_locale_name($lang);
    $h->{charset} = $charset;
    analysed_to_lang($h);
}

sub analysed_to_lang {
    my ($h) = @_;
    $h->{main} . '_' . $h->{country} . 
      ($h->{charset} ? '.' . $h->{charset} : '') .
      ($h->{variant} ? '@' . $h->{variant} : '');
}

sub analyse_locale_name {
    my ($lang) = @_;
    $lang =~ /^(.*?) (?:_(.*?))? (?:\.(.*?))? (?:\@(.*?))? $/x &&
      { main => $1, country => $2, charset => $3, variant => $4 };
}

sub locale_to_main_locale {
    my ($lang) = @_;
    lc(analyse_locale_name($lang)->{main});
}

sub getlocale_for_lang {
    my ($lang, $country, $o_utf8) = @_;
    force_lang_charset(standard_locale($lang, $country, 'prefer_lang') || l2locale($lang), $o_utf8 && 'UTF-8');
}

sub getlocale_for_country {
    my ($lang, $country, $o_utf8) = @_;
    force_lang_charset(standard_locale($lang, $country, '') || c2locale($country), $o_utf8 && 'UTF-8');
}

sub getLANGUAGE {
    my ($lang, $o_country, $o_utf8) = @_;
    l2language($lang) || join(':', uniq(getlocale_for_lang($lang, $o_country, $o_utf8), 
					$lang, 
					locale_to_main_locale($lang)));
}

sub countries_to_locales {
    my (%options) = @_;

    my %country2locales;
    my $may_add = sub {
	my ($locale, $country) = @_;
	if ($options{exclude_non_installed}) {
	    -e "/usr/share/locale/$locale/LC_CTYPE" or return;
	}
	my $h = analyse_locale_name($locale) or internal_error();
	push @{$country2locales{$country || $h->{country}}}, $h;
    };

    # first add all real locales
    foreach (@locales) {
	$may_add->($_, undef);
    }
    # then add countries XX for which we use locale yy_ZZ and not yy_XX
    foreach my $country (list_countries()) {
	$may_add->(c2locale($country), $country);
    }
    \%country2locales;
}

#-------------------------------------------------------------
#
# IM configuration hash tables
#
# in order to configure an IM, one has to:
# - put generic configuration in %IM_config


# This set generic IM fields.
my @IM_i18n_fields = (
 'XMODIFIERS', 
#-      is the environnement variable used by the X11 XIM protocol
#-	it is of the form XIMODIFIERS="@im=foo"
 'XIM', 
#-      is used by some programs, it usually is the like XIMODIFIERS
#-	with the "@im=" part stripped
 'GTK_IM_MODULE', 
#-      the module to use for Gtk programs ("xim" to use an X11
#-	XIM server; or a a native gtk module if exists)
 'XIM_PROGRAM',
#-      the XIM program to run (usually the same as XIM value, but
#-	in some cases different, particularly if parameters are needed;
 'QT_IM_MODULE',
#-     the module to use for Qt programs ("xim" to use an X11
#-     XIM server; or a Qt plugin if exists)
);

my ($is_kde3, $is_kde4);

# keep the 'packages' field in sync with share/rpmsrate:
my %IM_config =
  (
   chinput => {
               GTK_IM_MODULE => 'xim',
               XIM => 'chinput',
               XMODIFIERS => '@im=Chinput',
	       XIM_PROGRAM => {
		   'zh_CN' => 'chinput -gb',
		   'en_SG' => 'chinput -gb',
		   'zh_HK' => 'chinput -big5',
		   'zh_TW' => 'chinput -big5',
	       },	       
	       langs => 'zh',
	       packages => { generic => sub { 'miniChinput' } },
              },
   fcitx => {
             GTK_IM_MODULE => 'xim',
             XIM => 'fcitx',
             XIM_PROGRAM => 'fcitx',
             XMODIFIERS => '@im=fcitx',
	     langs => 'zh',
            },
   gcin => {
             GTK_IM_MODULE => 'gcin',
             XIM => 'gcin',
             XIM_PROGRAM => 'gcin',
             XMODIFIERS => '@im=gcin',
	     langs => 'zh',
	     packages => {
		     common => sub { if_($is_kde3, 'gcin-qt3'), if_($is_kde4, 'gcin-qt4') },
		     generic => sub { qw(gcin) },
	     },
            },
   'im-ja' => {
               GTK_IM_MODULE => 'im-ja',
               QT_IM_MODULE => 'xim',
               XIM => 'im-ja-xim-server',
               XIM_PROGRAM => 'im-ja-xim-server',
               XMODIFIERS => '@im=im-ja-xim-server',
	       langs => 'ja',
              },

   kinput2 => {   
               GTK_IM_MODULE => 'xim',
               XIM => 'kinput2',
               XIM_PROGRAM => 'kinput2',
               XMODIFIERS => '@im=kinput2',
	       langs => 'ja',
	       packages => { generic => sub { 'kinput2-wnn' } },
              },
   nabi => {
            GTK_IM_MODULE => 'xim',
            XIM => 'nabi',
            XIM_PROGRAM => 'nabi',
            XMODIFIERS => '@im=nabi',
	    langs => 'ko',
           },

   oxim => {
       GTK_IM_MODULE => 'oxim',
       XIM => 'oxim',
       XIM_PROGRAM => 'oxim',
       XMODIFIERS => '@im=oxim', # '@im=SCIM' is broken for now
       langs => 'zh_TW',
       packages => { generic => sub { 'oxim' } },
   },
   'scim' => {
            GTK_IM_MODULE => 'scim',
            XIM_PROGRAM => 'scim -d',
            XMODIFIERS => '@im=SCIM',
	    packages => {
		common => sub { if_($is_kde3, 'scim-qtimm') },
		generic => sub { qw(scim-m17n scim-tables) },
		am => sub { qw(scim-tables) },
		ja => sub { qw(scim-anthy scim-input-pad scim-tomoe) },
		ko => sub { qw(scim-hangul) },
		th => sub { qw(scim-thai) },
		vi => sub { qw(scim-m17n) },
		zh => sub { qw(scim-pinyin scim-tables scim-chewing) },
	    },
           },

   'scim-bridge' => {
       GTK_IM_MODULE => 'scim-bridge',
       XIM_PROGRAM => 'scim -d',
       XMODIFIERS => '@im=SCIM',
       default_for_lang => 'am ja ko th vi zh_CN zh_TW',
       packages => {
	   common => sub { if_($is_kde3, 'scim-bridge-qt3'), if_($is_kde4, 'scim-bridge-qt4') },
           generic => sub { qw(scim-m17n scim-tables) },
           am => sub { qw(scim-tables) },
           ja => sub { qw(scim-anthy scim-input-pad scim-tomoe) },
           ko => sub { qw(scim-hangul) },
	   th => sub { qw(scim-thai) },
           vi => sub { qw(scim-m17n) },
           zh => sub { qw(scim-pinyin scim-tables scim-chewing) },
       },
   },
   'ibus' => {
	GTK_IM_MODULE => 'ibus',
	XIM_PROGRAM => 'ibus',
	XMODIFIERS => '@im=ibus',
	packages => {
		common => sub { if_($is_kde4, 'ibus-qt4') },
		generic => sub { qw(ibus-table ibus-m17n) },
		ja => sub { qw(ibus-anthy) },
		zh => sub { qw(ibus-pinyin ibus-chewing) },
		ko => sub { qw(ibus-hangul) },
	},
   },
   skim => {
            GTK_IM_MODULE => 'scim',
            XIM_PROGRAM => 'skim -d',
            XMODIFIERS => '@im=SCIM',
            packages => {
		common => sub { if_($is_kde3, 'scim-qtimm') },
                generic => sub { qw(skim-scim-tables scim-m17n) },
                am => sub { qw(skim-scim-tables) },
                ja => sub { qw(skim-scim-anthy scim-input-pad scim-tomoe) },
                ko => sub { qw(scim-hangul-skim) },
		th => sub { qw(scim-thai) },
                vi => sub { qw(skim scim-m17n) },
                zh => sub { qw(skim-scim-pinyin skim-scim-tables scim-chewing) },
            },
        },
   uim => {
           GTK_IM_MODULE => 'uim',
           XIM => 'uim',
           XIM_PROGRAM => 'uim-xim',
           XMODIFIERS => '@im=uim',
	   langs => 'ja',
	   packages => {
		  common => sub { if_($is_kde3, 'uim-qtimmodule'), if_($is_kde4, 'uim-qt4immodule') },
		  generic => sub { qw(uim-gtk uim) },
	  },
          },
   xcin => {
            XIM => 'xcin',
            XIM_PROGRAM => 'xcin',
            XMODIFIERS => '@im=xcin-zh_TW',
            GTK_IM_MODULE => 'xim',
	    langs => 'zh',
           },
   'x-unikey' => {
                  GTK_IM_MODULE => 'xim',
                  XMODIFIERS => '@im=unikey',
		  langs => 'vi',
                 },
);

#-------------------------------------------------------------
#
# Locale configuration regarding encoding/IM

#- ENC is used by some versions or rxvt
my %locale2ENC = (
                       'ja' => 'eucj',
                       'ko' => 'kr',
                       'zh_CN' => 'gb',
                       # zh_SG zh_HK were reported as missing by make check:
                       'zh_HK' => 'big5',
                       'zh_SG' => 'gb',
                       'zh_TW' => 'big5',
                      );

my %IM_locale_specific_config = (
           #-XFree86 has an internal XIM for Thai that enables syntax checking etc.
           #-'Passthroug' is no check at all, 'BasicCheck' accepts bad sequences
           #-and convert them to right ones, 'Strict' refuses bad sequences
           'th' => {
                       XIM_PROGRAM => '/bin/true', #- it's an internal module
                       XMODIFIERS => '"@im=BasicCheck"',
                      },
          );


sub get_ims { 
    my ($lang) = @_;
    my $main_lang = analyse_locale_name($lang)->{main};

    sort grep {
	my $langs = $IM_config{$_}{langs};
	!$langs || intersection([ $lang, $main_lang ], 
				[ split(' ', $langs) ]);
    } keys %IM_config;
}          

sub get_default_im {
    my ($lang) = @_;
    find { 
	member($lang, split(' ', $IM_config{$_}{default_for_lang}));
    } keys %IM_config;
}

sub IM2packages {
    my ($locale) = @_;
    if ($locale->{IM}) {
	require any;
	my @sessions = any::sessions();
	$is_kde3 = member('KDE', @sessions);
	$is_kde4 = member('KDE4', @sessions);
	my $per_lang = $IM_config{$locale->{IM}}{packages} || {};
	my $main_lang = analyse_locale_name($locale->{lang})->{main};
	my $packages = $per_lang->{$main_lang} || $per_lang->{generic};
	my @pkgs = ($packages ? $packages->() : $locale->{IM},
		    $per_lang->{common} ? $per_lang->{common}->() : ());
	@pkgs;
    } else { () }
}

#- [0]: console font name
#- [1]: unused
#- [2]: console map (none if utf8)
#- [3]: iocharset param for mount (utf8 if utf8)
#- [4]: codepage parameter for mount (none if utf8)
my %charsets = (
#- chinese needs special console driver for text mode
"Big5"        => [ undef,         undef,   undef,           "big5",       "950" ],
"gb2312"      => [ undef,         undef,   undef,           "gb2312",     "936" ],
"gbk"         => [ undef,         undef,   undef,           "gb2312",     "936" ],
"C"           => [ "lat0-16",     undef,   "8859-15",         "iso8859-1",  "850" ],
"iso-8859-1"  => [ "lat1-16",     undef,   "8859-1",         "iso8859-1",  "850" ],
"iso-8859-2"  => [ "lat2-16",  undef,   "8859-2",         "iso8859-2",  "852" ],
"iso-8859-5"  => [ "UniCyr_8x16", undef,   "8859-5",         "iso8859-5",  "866" ],
"iso-8859-7"  => [ "iso07u-16",   undef,   "8859-7",         "iso8859-7",  "869" ],
"iso-8859-9"  => [ "lat5-16",    undef,   "8859-9",         "iso8859-9",  "857" ],
"iso-8859-13" => [ "tlat7",       undef,   "8859-13",         "iso8859-13", "775" ],
"iso-8859-15" => [ "lat0-16",     undef,   "8859-15",         "iso8859-15", "850" ],
#- japanese needs special console driver for text mode [kon2]
"jisx0208"    => [ undef,         undef,   undef, "euc-jp",     "932" ],
"koi8-r"      => [ "UniCyr_8x16", undef,   "koi8-r",        "koi8-r",     "866" ],
"koi8-u"      => [ "UniCyr_8x16", undef,   "koi8-u",        "koi8-u",     "866" ],
"cp1251"      => [ "UniCyr_8x16", undef,   "cp1251",        "cp1251",     "866" ],
#- korean needs special console driver for text mode
"ksc5601"     => [ undef,         undef,   undef,           "euc-kr",     "949" ],
#- I have no console font for Thai...
"tis620"      => [ undef,         undef,   undef, "tis-620",    "874" ],
# UTF-8 encodings here; they differ in the console font mainly.
"utf_ar"      => [ undef,      undef,   undef,      "utf8",    undef ],
"utf_armn"    => [ undef,           undef,   undef,      "utf8",    undef ],
"utf_az"      => [ "tiso09e",        undef,   undef,      "utf8",    undef ],
"utf_beng"    => [ undef,            undef,   undef,      "utf8",    undef ],
"utf_cyr1"    => [ "UniCyr_8x16",    undef,   undef,      "utf8",    undef ],
"utf_cyr2"    => [ "koi8-k",         undef,   undef,      "utf8",    undef ],
"utf_deva"    => [ undef,            undef,   undef,      "utf8",    undef ],
"utf_ethi"    => [ "Agafari-16",     undef,   undef,      "utf8",    undef ],
"utf_geor"    => [ "t_geors",        undef,   undef,      "utf8",    undef ],
"utf_guru"    => [ undef,            undef,   undef,      "utf8",    undef ],
"utf_he"      => [ undef,      undef,   undef,      "utf8",    undef ],
"utf_iu"      => [ undef,            undef,   undef,      "utf8",    undef ],
"utf_khmr"    => [ undef,            undef,   undef,      "utf8",    undef ],
"utf_knda"    => [ undef,            undef,   undef,      "utf8",    undef ],
"utf_laoo"    => [ undef,            undef,   undef,      "utf8",    undef ],
"utf_lat1"    => [ "lat0-16",        undef,   undef,      "utf8",    undef ],
"utf_lat5"    => [ undef,       undef,   undef,      "utf8",    undef ],
"utf_lat7"    => [ "tlat7",          undef,   undef,      "utf8",    undef ],
"utf_lat8"    => [ undef,      undef,   undef,      "utf8",    undef ],
"utf_mlym"    => [ undef,            undef,   undef,      "utf8",    undef ],
"utf_mymr"    => [ undef,            undef,   undef,      "utf8",    undef ],
"utf_taml"    => [ "tamil",          undef,   undef,      "utf8",    undef ],
# console font still to do
"utf_tfng"    => [ undef,            undef,   undef,      "utf8",    undef ],
"utf_tibt"    => [ undef,            undef,   undef,      "utf8",    undef ],
"utf_vi"      => [ "tcvn8x16",       undef,   undef,      "utf8",    undef ],
"utf_yo"      => [ undef,            undef,   undef,      "utf8",    undef ],
# default for utf-8 encodings
"unicode"     => [ "LatArCyrHeb-16", undef,   undef,      "utf8",    undef ],
);

#- for special cases not handled magically
my %charset2kde_charset = (
    gb2312 => 'gb2312.1980-0',
    gbk => 'gb2312.1980-0',
    jisx0208 => 'jisx0208.1983-0',
    ksc5601 => 'ksc5601.1987-0',
    Big5 => 'big5-0',
    cp1251 => 'microsoft-cp1251',
    utf8 => 'iso10646-1',
    tis620 => 'tis620-0',
);

#- -------------------

sub l2console_font {
    my ($locale, $during_install) = @_;
    my $c = $charsets{l2charset($locale->{lang}) || return} or return;
    my ($name, $_sfm, $acm) = @$c;
    undef $acm if $locale->{utf8} && !$during_install;
    ($name, $acm);
}

sub get_kde_lang {
    my ($locale, $o_default) = @_;

    #- get it using 
    #- echo C $(rpm -qp --qf "%{name}\n" /RPMS/kde4-l10n-*  | sed 's/kde4-l10n-//')
    my @valid_kde_langs = qw(C
ar be bg ca cs csb da de el en_GB eo es et eu fa fi fr fy ga gl hi hu is it ja kk km ko ku lt lv mk ml nb nds ne nl nn pa pl pt pt_BR ro ru se sl sr sv ta th tr uk wa zh_CN zh_TW);
    my %valid_kde_langs; @valid_kde_langs{@valid_kde_langs} = ();

    my $valid_lang = sub {
	my ($lang) = @_;
	#- fast & dirty solution to ensure bad entries do not happen
        my %fixlangs = (en => 'C', en_US => 'C',
                        en_AU => 'en_GB', en_CA => 'en_GB',
                        en_IE => 'en_GB', en_NZ => 'en_GB',
                        pa_IN => 'pa',
                        'sr@Latn' => 'sr',
                        ve => 'ven',
                        zh_CN => 'zh_CN', zh_SG => 'zh_CN',
		       	zh_TW => 'zh_TW', zh_HK => 'zh_TW');
        exists $fixlangs{$lang} ? $fixlangs{$lang} :
	  exists $valid_kde_langs{$lang} ? $lang :
	  exists $valid_kde_langs{locale_to_main_locale($lang)} ? locale_to_main_locale($lang) : '';
    };

    my $r;
    $r ||= $valid_lang->($locale->{lang});
    $r ||= find { $valid_lang->($_) } split(':', getlocale_for_lang($locale->{lang}, $locale->{country}));
    $r || $o_default || 'C';
}

sub charset2kde_charset {
    my ($charset, $o_default) = @_;
    my $iocharset = ($charsets{$charset} || [])->[3];

    my @valid_kde_charsets = qw(big5-0 gb2312.1980-0 iso10646-1 iso8859-1 iso8859-4 iso8859-6 iso8859-8 iso8859-13 iso8859-14 iso8859-15 iso8859-2 iso8859-3 iso8859-5 iso8859-7 iso8859-9 koi8-r koi8-u ksc5601.1987-0 jisx0208.1983-0 microsoft-cp1251 tis620-0);
    my %valid_kde_charsets; @valid_kde_charsets{@valid_kde_charsets} = ();

    my $valid_charset = sub {
	my ($charset) = @_;
	#- fast & dirty solution to ensure bad entries do not happen
	exists $valid_kde_charsets{$charset} && $charset;
    };

    my $r;
    $r ||= $valid_charset->($charset2kde_charset{$charset});
    $r ||= $valid_charset->($charset2kde_charset{$iocharset});
    $r ||= $valid_charset->($iocharset);
    $r || $o_default || 'iso10646-1';
}

#- font+size for different charsets; the field [0] is the default,
#- others are overrridens for fixed(1), toolbar(2), menu(3) and taskbar(4)
my %charset2kde_font = (
  'C' => [ "Sans,10", "Monospace,10" ],
  'iso-8859-1'  => [ "Sans,10", "Monospace,10" ],
  'iso-8859-2'  => [ "Sans,10", "Monospace,10" ],
  'iso-8859-7'  => [ "DejaVu Sans,10", "FreeMono,10" ],
  'iso-8859-9'  => [ "Sans,10", "Monospace,10" ],
  'iso-8859-13' => [ "Sans,10", "Monospace,10" ],
  'iso-8859-15' => [ "Sans,10", "Monospace,10" ],
  'jisx0208' => [ "UmePlus P Gothic,12", "UmePlus Gothic,12" ],
  'ksc5601' => [ "Baekmuk Gulim,12" ],
  'gb2312' => [ "Sans,10", "Monospace,10" ],
  'Big5' => [ "Sans,10", "Monospace,10" ],
  'tis620' => [ "Norasi,16", "Norasi,15" ],
  'koi8-u' => [ "DejaVu Sans,10", "FreeMono,10" ],
  'utf_ar' => [ "DejaVu Sans,11", "Courier New,13" ],
  'utf_az' => [ "DejaVu Sans,10", "FreeMono,10" ],
  'utf_he' => [ "DejaVu Sans,10", "FreeMono,10" ],
#-'utf_iu' => [ "????,14", ],
  'utf_vi' => [ "DejaVu Sans,12", "FreeMono,11", "DejaVu Sans,11" ],
  'utf_yo' => [ "DejaVu Sans,12", "FreeMono,11", "DejaVu Sans,11" ],
  #- script based
  'utf_armn' => [ "DejaVu Sans,11", "FreeMono,11" ],
  'utf_cyr2' => [ "DejaVu Sans,10", "FreeMono,10" ],
  'utf_beng' => [ "Mukti Narrow,13", "Mitra Mono,13", "Mukti Narrow,12" ],
  'utf_deva' => [ "Raghindi,12", ],
  'utf_ethi' => [ "GF Zemen Unicode,13" ],
  'utf_guru' => [ "Lohit Punjab,14", ],
#-'utf_khmr' => [ "????,14", ],
  'utf_knda' => [ "Sampige,14", ],
  'utf_lat1' => [ "Sans,10", "Monospace,10" ],
  'utf_lat5' => [ "Sans,10", "Monospace,10" ],
  'utf_lat7' => [ "Sans,10", "Monospace,10" ],
  'utf_lat8' => [ "DejaVu Sans,10", "FreeMono,10" ],
  'utf_mlym' => [ "malayalam,12", ],
#-'utf_mymr' => [ "????,14", ],
  'utf_taml' => [ "TSCu_Paranar,14", "Tsc_avarangalfxd,14", "TSCu_Paranar,13", ],
  'utf_tfng' => [ "Hapax Berbère,12", ],
  'utf_tibt' => [ "Tibetan Machine Uni,14", ],
  #- the following should be changed to better defaults when better fonts
  #- get available
  'utf_geor' => [ "ClearlyU,13" ],
  'utf_laoo' => [ "DejaVu Sans,11", "ClearlyU,13" ],
  'default'  => [ "DejaVu Sans,12", "FreeMono,11", "DejaVu Sans,11" ],
);

sub charset2kde_font {
    my ($charset, $type) = @_;

    my $font = $charset2kde_font{$charset} || $charset2kde_font{default};
    my $r = $font->[$type] || $font->[0];

    #- the format is "font-name,size,-1,5,0,0,0,0,0,0" I have no idea of the
    #- meaning of that "5"...
    "$r,-1,5,0,0,0,0,0,0";
}

# this define pango name fonts (like "NimbusSans L") depending
# on the "charset" defined by language array. This allows to selecting
# an appropriate font for each language for the installer only.
my %charset2pango_font = (
  'utf_geor' =>    "Sans 14",
  'utf_taml' =>    "TSCu_Paranar 14",
  'jisx0208' =>    "Sans 14",
  'utf_ar' =>      "Sans 15",
  'tis620' =>      "Norasi 20",
  'default' =>     "DejaVu Sans 12"
);

sub charset2pango_font {
    my ($charset) = @_;
    
    $charset2pango_font{exists $charset2pango_font{$charset} ? $charset : 'default'};
}

sub l2pango_font {
    my ($lang) = @_;

    my $charset = l2charset($lang) or log::l("no charset found for lang $lang!"), return;
    my $font = charset2pango_font($charset);
    log::l("lang:$lang charset:$charset font:$font consolefont:$charsets{$charset}[0]");
    
    return $font;
}

sub set {
    my ($locale, $b_translate_for_console) = @_;
    
    put_in_hash(\%ENV, i18n_env($locale));

    if (!$::isInstall) {
	bindtextdomain();
    } else {
	$ENV{LC_NUMERIC} = 'C'; #- otherwise eval "1.5" returns 1 in fr_FR
    
	if ($b_translate_for_console && $locale->{lang} =~ /^(ko|ja|zh|th)/) {
	    log::l("not translating in console");
	    $ENV{LANGUAGE}  = 'C';
	}
	load_mo();
    }
}

sub langs {
    my ($l) = @_;
    $l->{all} ? list_langs() : grep { $l->{$_} } keys %$l;
}

sub langsLANGUAGE {
    my ($l, $o_c) = @_;
    uniq(map { split ':', getLANGUAGE($_, $o_c) } langs($l));
}

sub utf8_should_be_needed {
    my ($_locale) = @_; 
    1;
}

sub pack_langs { 
    my ($l) = @_; 
    my $s = $l->{all} ? 'all' : join ':', uniq(map { getLANGUAGE($_) } langs($l));
    $s;
}

sub system_locales_to_ourlocale {
    my ($locale_lang, $locale_country) = @_;
    my $locale = {};
    my $h = analyse_locale_name($locale_lang);
    my $locale_lang_no_encoding = join('_', $h->{main}, if_($h->{country}, $h->{country}));
    $locale->{lang} = member($locale_lang_no_encoding, list_langs()) ?
	$locale_lang_no_encoding : #- special lang's such as en_US pt_BR
	$h->{main};
    $locale->{lang} .= '@' . $h->{variant} if $h->{variant};
    $locale->{country} = analyse_locale_name($locale_country)->{country};
    $locale->{utf8} = $h->{charset} && $h->{charset} eq 'UTF-8';

    #- safe fallbacks
    $locale->{lang} ||= 'en_US';
    $locale->{country} ||= 'US';

    $locale;
}

sub lang_to_ourlocale {
    my ($lang) = @_;

    my $locale = system_locales_to_ourlocale($lang);
    $locale->{utf8} ||= utf8_should_be_needed($locale);
    lang_changed($locale);
    $locale;
}

sub lang_changed {
    my ($locale) = @_;
    my $h = analyse_locale_name(l2locale($locale->{lang}));
    $locale->{country} = $h->{country} if $h->{country};

    $locale->{IM} = get_default_im($locale->{lang});
}

sub read {
    my ($b_user_only) = @_;
    my ($f1, $f2) = ("$::prefix$ENV{HOME}/.i18n", "$::prefix/etc/sysconfig/i18n");
    my %h = getVarsFromSh($b_user_only && -e $f1 ? $f1 : $f2);
    my $locale = system_locales_to_ourlocale($h{LC_MESSAGES} || 'en_US', $h{LC_MONETARY} || 'en_US');
    
    if (find { $h{$_} } @IM_i18n_fields) {
        my $current_IM = find {
            my $i = $IM_config{$_};
            every { !defined $i->{$_} || $h{$_} eq $i->{$_} } ('GTK_IM_MODULE', 'XMODIFIERS', 'XIM_PROGRAM');
        } keys %IM_config;
        $locale->{IM} = $current_IM if $current_IM;
    }
    $locale;
}

sub write_langs {
    my ($langs) = @_;
    my $s = pack_langs($langs);
    symlink "$::prefix/etc/rpm/macros", "/etc/rpm/macros" if $::prefix;
    require URPM;
    URPM::add_macro("_install_langs $s");
    substInFile { s/%_install_langs.*//; $_ .= "%_install_langs $s\n" if eof && $s } "$::prefix/etc/rpm/macros";
}

sub i18n_env {
    my ($locale) = @_;

    my $locale_lang = getlocale_for_lang($locale->{lang}, $locale->{country}, $locale->{utf8});
    my $locale_country = getlocale_for_country($locale->{lang}, $locale->{country}, $locale->{utf8});

    my $h = {
	XKB_IN_USE => '',
	(map { $_ => $locale_lang } qw(LANG LC_COLLATE LC_CTYPE LC_MESSAGES LC_TIME)),
	LANGUAGE => getLANGUAGE($locale->{lang}, $locale->{country}, $locale->{utf8}),
	(map { $_ => $locale_country } qw(LC_NUMERIC LC_MONETARY LC_ADDRESS LC_MEASUREMENT LC_NAME LC_PAPER LC_IDENTIFICATION LC_TELEPHONE))
    };

    log::l("i18n_env: lang:$locale->{lang} country:$locale->{country} locale|lang:$locale_lang locale|country:$locale_country LANGUAGE:$h->{LANGUAGE}");

    $h;
}

sub write_and_install {
    my ($locale, $do_pkgs, $b_user_only, $b_dont_touch_kde_files) = @_;

    my @packages = IM2packages($locale);
    if (@packages && !$b_user_only) {
	log::explanations("Installing IM packages: ", join(', ', @packages));
	$do_pkgs->ensure_are_installed(\@packages, 1);
    }
    &write($locale, $b_user_only, $b_dont_touch_kde_files);
}

sub write { 
    my ($locale, $b_user_only, $b_dont_touch_kde_files) = @_;

    $locale && $locale->{lang} or return;

    my $h = i18n_env($locale);

    my ($name, $acm) = l2console_font($locale, 0);
    if ($name && !$b_user_only) {
	my $p = "$::prefix/usr/lib/kbd";
	if ($name) {
	    eval {
		log::explanations(qq(Set system font to "$name"));
		cp_af(glob_("$p/consolefonts/$name.*"), "$::prefix/etc/sysconfig/console/consolefonts");
		add2hash $h, { SYSFONT => $name };
	    };
	    $@ and log::explanations("missing console font $name");
	}
	if ($acm) {
	    eval {
		log::explanations(qq(Set application-charset map (Unicode mapping table) to "$name"));
		cp_af(glob_("$p/consoletrans/$acm*"), "$::prefix/etc/sysconfig/console/consoletrans");
		add2hash $h, { SYSFONTACM => $acm };
	    };
	    $@ and log::explanations("missing console acm file $acm");
	}
	
    }

    add2hash($h, $IM_locale_specific_config{$locale->{lang}});
    $h->{ENC} = $locale2ENC{$locale->{lang}};
    $h->{ENC} = 'utf8' if $h->{ENC} && $locale->{utf8};

    if ($locale->{IM}) {
        log::explanations(qq(Configuring "$locale->{IM}" IM));
	foreach (@IM_i18n_fields) {
	    $h->{$_} = $IM_config{$locale->{IM}}{$_};
	}
	$h->{QT_IM_MODULE} ||= $h->{GTK_IM_MODULE};

	if (ref $h->{XIM_PROGRAM}) {
	    $h->{XIM_PROGRAM} = 
	      $h->{XIM_PROGRAM}{$locale->{lang}} ||
		$h->{XIM_PROGRAM}{getlocale_for_country($locale->{lang}, $locale->{country})};
	}
    }

    #- deactivate translations on console for most CJK, RTL and complex languages
    if (member($locale->{lang}, qw(ar bn fa he hi ja kn ko pa_IN ug ur yi zh_TW zh_CN))) {
        #- CONSOLE_NOT_LOCALIZED if defined to yes, disables translations on console
        #-	it is needed for languages not supported by the linux console
        log::explanations(qq(Disabling translation on console since "$locale->{lang}" is not supported by the console));
        add2hash($h, { CONSOLE_NOT_LOCALIZED => 'yes' });
    }

    my $file = $b_user_only ? "$ENV{HOME}/.i18n" : '/etc/sysconfig/i18n';
    log::explanations(qq(Setting l10n configuration in "$file"));
    setVarsInShMode($::prefix . $file, 0644, $h);

    configure_hal($locale) if !$b_user_only;

    run_program::rooted($::prefix, 'grub-gfxmenu', '--quiet', '--lang', $locale->{lang}) if !$b_user_only;
    
    my $charset = l2charset($locale->{lang});
    my $qtglobals = $b_user_only ? "$ENV{HOME}/.qt/qtrc" : "$::prefix/etc/qtrc";
    update_gnomekderc($qtglobals, General => (
       		      font => charset2kde_font($charset, 0),
       	          ));

    eval {
	my $confdir = $::prefix . ($b_user_only ? "$ENV{HOME}/.kde" : do {
	    my $kderc = $::prefix ? common::expand_symlinks_with_absolute_symlinks_in_prefix($::prefix, '/etc/kderc') : '/etc/kderc';
	    log::l("reading $kderc");
	    my %dir_defaults = read_gnomekderc($kderc, 'Directories-default');
	    first(split(',', $dir_defaults{prefixes})) || "/etc/kde"
	}) . '/share/config';

	-d $confdir or die 'not configuring kde config files since it is not installed/used';

	configure_kdeglobals($locale, $confdir);

	my %qt_xim = (zh => 'Over The Spot', ko => 'On The Spot', ja => 'On The Spot');
	if ($b_user_only && (my $qt_xim = $qt_xim{locale_to_main_locale($locale->{lang})})) {
         log::explanations(qq(Setting XIM input style to "$qt_xim"));
	    update_gnomekderc("$ENV{HOME}/.qt/qtrc", General => (XIMInputStyle => $qt_xim));
	}

	if (!$b_user_only) {
	    my $kde_charset = charset2kde_charset(l2charset($locale->{lang}));
	    my $welcome = common::to_utf8(N("Welcome to %s", '%n'));
         log::explanations(qq(Configuring KDM/MdkKDM));
	    substInFile { 
		s/^(GreetString)=.*/$1=$welcome/;
		s/^(Language)=.*/$1=$locale->{lang}/;
		if (!member($kde_charset, 'iso8859-1', 'iso8859-15')) { 
		    #- do not keep the default for those
    		    my $font_list = $charset2kde_font{l2charset($locale->{lang})} || $charset2kde_font{default};
		    my $font_small = $font_list->[0];
		    my $font_huge = $font_small;
		    $font_huge =~ s/(.*?),\d+/$1,24/;
		    s/^(StdFont)=.*/$1=$font_small,5,$kde_charset,50,0/;
		    s/^(FailFont)=.*/$1=$font_small,5,$kde_charset,75,0/;
		    s/^(GreetFont)=.*/$1=$font_huge,5,$kde_charset,50,0/;
		}
	    } "$::prefix/etc/kde/kdm/kdmrc";
	}

    } if !$b_dont_touch_kde_files;

    #- update alternatives for OpenOffice/BrOffice if present
    foreach my $name (grep { /^oobr_bootstraprc/ } all("$::prefix/var/lib/alternatives/")) {
        my $alternative  = common::get_alternatives($name) or next;
        my $wanted = $locale->{lang} eq 'pt_BR' ? 'bootstraprc.bro' : 'bootstraprc.ooo';
        my $path = find { basename($_) eq $wanted } map { $_->{file} } @{$alternative->{alternatives}};
        common::symlinkf_update_alternatives($name, $path) if $path;
    }
}

sub configure_hal {
    my ($locale) = @_;
    my $option = sub {
	my ($cat, $val) = @_;
	qq(\t\t<merge key="$cat.policy.mount_option.$val" type="bool">true</merge>);
    };
    my %options = (fs_options($locale), utf8 => 1);
    my %known_options = (
	auto  => [ 'iocharset', 'codepage' ],
	vfat  => [ 'iocharset', 'codepage' ],
	msdos => [ 'iocharset', 'codepage' ],
	ntfs  => [ 'iocharset', 'utf8' ],
	cdrom => [ 'iocharset', 'codepage', 'utf8' ],
    );
    my $options = sub {
	my ($cat, $name) = @_;
	join("\n", map { 
	    $option->($cat, $_ eq 'utf8' ? $_ : "$_=$options{$_}");
	} grep { $options{$_} } @{$known_options{$name}});
    };
    my $options_per_fs = join('', map {
	my $s = $options->('volume', $_);
	$s && sprintf(<<'EOF', $_, $s);
	<match key="volume.fstype" string="%s">
%s
	</match>
EOF
    } 'auto', 'vfat', 'msdos', 'ntfs');
    
    output_p("$::prefix/usr/share/hal/fdi/30osvendor/locale-policy.fdi", 
	     sprintf(<<'EOF', $options_per_fs, $options->('storage', 'cdrom')));
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- --> 

<deviceinfo version="0.2">

  <device>
    <match key="block.is_volume" bool="true">
      <match key="volume.fsusage" string="filesystem">

%s 
      </match>
    </match>

    <match key="storage.drive_type" string="cdrom">
%s
    </match>    
  </device>

</deviceinfo>
EOF
}

sub configure_kdeglobals {
    my ($locale, $confdir) = @_;
    my $kdeglobals = "$confdir/kdeglobals";

    my $charset = l2charset($locale->{lang});
    my $kde_charset = charset2kde_charset($charset);

    mkdir_p($confdir);

    my $lang = get_kde_lang($locale);
    log::explanations("Configuring KDE regarding charset ($kde_charset), language ($lang) and country ($locale->{country})");
    update_gnomekderc($kdeglobals, Locale => (
    	      Charset => $kde_charset,
    	      Country => lc($locale->{country}),
    	      Language => getLANGUAGE($locale->{lang}, $locale->{country}, $locale->{utf8}),
    	  ));

    log::explanations("Configuring KDE regarding fonts");
        update_gnomekderc($kdeglobals, WM => (
       		      activeFont => charset2kde_font($charset,0),
       		  ));
        update_gnomekderc($kdeglobals, General => (
       		      fixed => charset2kde_font($charset, 1),
       		      font => charset2kde_font($charset, 0),
       		      menuFont => charset2kde_font($charset, 3),
       		      taskbarFont => charset2kde_font($charset, 4),
       		      toolBarFont => charset2kde_font($charset, 2),
       	          ));
        update_gnomekderc("$confdir/konquerorrc", FMSettings => (
       		      StandardFont => charset2kde_font($charset, 0),
       		  ));
        update_gnomekderc("$confdir/kdesktoprc", FMSettings => (
       		      StandardFont => charset2kde_font($charset, 0),
       		  ));
}

sub bindtextdomain() {
    #- if $::prefix is set, search for libDrakX.mo in locale_special
    #- NB: not using $::isInstall to make it work more easily at install and standalone
    my $localedir = "$ENV{SHARE_PATH}/locale" . ($::prefix ? "_special" : '');

    c::init_setlocale();
    foreach (@::textdomains, 'libDrakX') {
	Locale::gettext::bind_textdomain_codeset($_, 'UTF-8');
	Locale::gettext::bindtextdomain($_, $localedir);
    }

    $localedir;
}

sub load_mo {
    my ($o_lang) = @_;

    my $localedir = bindtextdomain();
    my $suffix = 'LC_MESSAGES/libDrakX.mo';

    $o_lang ||= $ENV{LANGUAGE} || $ENV{LC_ALL} || $ENV{LC_MESSAGES} || $ENV{LANG};

    my @possible_langs = map { { name => $_, mofile => "$localedir/$_/$suffix" } } split ':', $o_lang;

    -s $_->{mofile} and return $_->{name} foreach @possible_langs;

    '';
}


#- used in share/list.xml during "make get_needed_files"
sub console_font_files() {
    map { -e $_ ? $_ : "$_.gz" }
      (map { my $p = "/usr/lib/kbd/consolefonts/$_"; -e "$p.psfu" || -e "$p.psfu.gz" ? "$p.psfu" : "$p.psf" } uniq grep { $_ } map { $_->[0] } values %charsets),
      (map { "/usr/lib/kbd/consoletrans/${_}_to_uni.trans" } uniq grep { $_ } map { $_->[2] } values %charsets);
}

sub load_console_font {
    my ($locale) = @_;
    return if $::local_install;

    my ($name, $acm) = l2console_font($locale, 1);

    require run_program;
    run_program::run('setfont', '-v', $name || 'lat0-16', if_($acm, '-m', $acm));
}

sub fs_options {
    my ($locale) = @_;
    if ($locale->{utf8}) {
	(iocharset => 'utf8', codepage => undef);
    } else {
	my $c = $charsets{l2charset($locale->{lang}) || return} or return;
	my ($iocharset, $codepage) = @$c[3..4];
	(iocharset => $iocharset, codepage => $codepage);
    }
}

sub check() {
    $^W = 0;
    my ($warnings, $errors) = (0, 0);
    my $warn = sub {
	my ($msg, $b_is_error) = @_;
	if ($b_is_error) {
	    print STDERR "\tErrors:\n" if !$errors++;
	} else {
	    print STDERR "\tWarnings:\n" if !$warnings++;
	}
	print STDERR "$msg\n";
    };
    my $err = sub { $warn->($_[0], 'error') };
    
    my @wanted_charsets = uniq map { l2charset($_) } list_langs();
    $warn->("unused charset $_ (given in \%charsets, but not used in \%langs)") foreach difference2([ keys %charsets ], \@wanted_charsets);

    $warn->("unused entry $_ in \%xim") foreach grep { !/UTF-8/ } difference2([ keys %IM_locale_specific_config ], [ map { l2locale($_) } list_langs() ]);

    #- consolefonts are checked during build via console_font_files()

    if (my @l = difference2([ 'default', keys %charsets ], [ keys %charset2kde_font ])) {
	$warn->("no kde font for charset " . join(" ", @l));
    }

    if (my @l = grep { get_kde_lang({ lang => $_, country => 'US' }, 'err') eq 'err' } list_langs()) {
	$warn->("no KDE lang for langs " . join(" ", @l));
    }
    if (my @l = grep { charset2kde_charset($_, 'err') eq 'err' } keys %charsets) {
	$warn->("no KDE charset for charsets " . join(" ", @l));
    }

    $warn->("no country corresponding to default locale $_->[1] of lang $_->[0]")
      foreach grep { $_->[1] =~ /.._(..)/ && !exists $countries{$1} } map { [ $_, l2locale($_) ] } list_langs();

    $err->("invalid charset $_ ($_ does not exist in \%charsets)") foreach difference2(\@wanted_charsets, [ keys %charsets ]);
    $err->("invalid charset $_ in \%charset2kde_font ($_ does not exist in \%charsets)") foreach difference2([ keys %charset2kde_font ], [ 'default', keys %charsets ]);

    $err->("default locale $_->[1] of lang $_->[0] is not listed in \@locales")
      foreach grep { !member($_->[1], @locales) } map { [ $_, l2locale($_) ] } list_langs();

    $err->("lang image for lang $_->[0] is missing (file $_->[1])")
      foreach grep { !(-e $_->[1]) } map { [ $_, "install/pixmaps/langs/lang-$_.png" ] } list_langs();

    $err->("default locale $_->[1] of country $_->[0] is not listed in \@locales")
      foreach grep { !member($_->[1], @locales) } map { [ $_, c2locale($_) ] } list_countries();


    exit($errors ? 1 : 0);
}

1;