diff --git a/HBC/META.XML b/HBC/META.XML
deleted file mode 100644
index baacf47f..00000000
--- a/HBC/META.XML
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
- USB Loader GX
- USB Loader GX Team
- 1.0 r1018
- 201012212002
- Loads games from USB-devices
- USB Loader GX is a libwiigui based USB iso loader with a wii-like GUI. You can install games to your HDDs and boot them with shorter loading times.
-The interactive GUI is completely controllable with WiiMote, Classic Controller or GC Controller.
-Features are automatic widescreen detection, coverdownload, parental control, theme support and many more.
-
-Credits:
-Coding: Dimok, nIxx, giantpune, ardi, Hungyip84, DrayX7, Lustar, r-win, WiiShizzza
-Artworks: cyrex, NeoRame
-WiiTDB / Hosting covers: Lustar
-Hosting updates files: CorneliousJD
-USBLoader sources: Waninkoko, Kwiirk, Hermes
-Languages files updates: Kinyo and translaters
-Hosting themes: Deak Phreak
-
-Libwiigui: Tantric
-Libogc/Devkit: Shagkur and Wintermute
-FreeTypeGX: Armin Tamzarian.
-
-Links:
-USB Loader GX Project Page and Support Site:
-http://code.google.com/p/usbloader-gui/
-Help Website:
-http://usbloadergx.koureio.net/
-WiiTDB Site:
-http://wiitdb.com
-Themes Site:
-http://wii.spiffy360.com
-Languages Translaters Page:
-http://gbatemp.net/index.php?showtopic=155252
-
-Libwiigui Website:
-http://wiibrew.org/wiki/Libwiigui/
-FreeTypeGX Project Page:
-http://code.google.com/p/freetypegx/
-Gettext Official Page:
-http://www.gnu.org/software/gettext/gettext.html
-
-
diff --git a/HBC/icon.png b/HBC/icon.png
deleted file mode 100644
index 951057cb..00000000
Binary files a/HBC/icon.png and /dev/null differ
diff --git a/HBC/readMii.txt b/HBC/readMii.txt
deleted file mode 100644
index c979922d..00000000
--- a/HBC/readMii.txt
+++ /dev/null
@@ -1,1078 +0,0 @@
-
- __,,__, ,__wywyywvyyyyywvywvyam,,_, _,,_
- _uWBMBM$Wg&MQ$#$K&RMKMA0$&xNH&&MN@2WMM$KQg
- JN&B&MM#MQ$gM#Q$N#R&N$M$#E$##V$WKG###B&$&NW#b
- j8W0##&M$W&$#####&$0MN#BX&5$xA$A$#$#z$MNQWK#L
- 3#$$& N$&WK& XN#$&~~ ^VM#A~`^`"~^~"'K###2$M
- SQN$# 9MB#@) $$$# ***, $&mR _,_ NU#$M
- &0N## #M$$M# NA4 ****** *$g# *0$Q&H! ]$N$#
- M\w&F ##@$ #W8- ~v"&N8&*#$# 0QB#&$& !#&$K
- $QNNC E&M$0# g&&&_ "*$&QM #$MN$#
- j$$0L $M@WWK #WM&k,,_ ~&$$ _,_ $NQN(
- i&M4( N$K2## M#NNF$###& 0#$ *0$Q&H! W#$(
- j$B#N VAMS SRW $8$0M& 3M$ 0QB#&$& #N$I
- jQ0&NL ""^ JB&ML '~^ jQ*A ` j##KF
- K#$##& _#B#WNKM_ ,vBM _ _wp#&QAF
- "&NAQAN$&MW###B#x$3@&$BA#WWWH$#KMM&K&NK###g&$#
- *WN$&$$8QWNMMM#MM&«&A#&M$KWK@QM5#&*A$N&$&WM#@2
- "M*^&N##&$W8$2B#&MB&DWR0#$$0#W»&&M$#QQMN#&""
- \eeee6 F**A1
- jM0$e4 ?**G\!
- imw{Q- x%%%m \%z%%e mxx _%*%@& -ve/v mmm\ wvm
- V3Q%m& /#0^0E&~/&\ $&E/&%1e^"E 55t7JcVsm0-\ &^#l@&}&-" $7MAE&&%/
- $%x/z Wc&&t7-w&E4^ %VVM~1^\&$&&} e$&$$%$zQMxw w-v-#^ Q\W44 %-/%/\QS
- et-SC e^00^ iF&E$- !%%$$%A*v 5^^4 EEZ/0 )%%0%4fimmEt" "$S8V
-(WJ^%i m&MM#} /%\%%L 4Q\w WQ/Q\ &m«wS \v"v1 \74~1zM%&%/6s wEw//
-&ssSs?s%wt&&-~~MM#& e1/'m% &5^jW &mw&\ SmVw^ S1&mw \^A5FE j7F*5, ~S3m%
-j3Q"/&-&w&M%& ^^4$w^7QSQ@ t&&&%-"5w&E} e8"&&&&/%\W &5%1\%V*\0M &&7M
-~?VW^$ ?&\81? ?mQ&&&- 00%%^~EE4E \&00 ^M43^ ^'"#5&$-^ ~wEE}
- __ ,_
- __ggggggggggggggg& jggggg#p gMMMMMMM
- &MMMMMMMMMMMMMMMMMMF "MMMMMMM& j#MMMMMMP
- #MMMMMMMMMMMMMMMMMMMF #MMMMM&g#MMMMMMP
- #MMMMMF "MMMMMMMMMMM#^
- #MMMMML pgppggggggp $MMMMMMMMF
- $MMMMML 4#M#NRMMMMMF jMMMMMMMMMQ
- $MMMMMF #MMMMF pMMMMMMMMMMMMp
- 4MMMMMMNNN#MMMMMMMMMF jMMMMMMF MMMMMM&_
- MMMMMMMMMMMMMMMMMM& #MMMMM@~ ~MMMMMM&
- """""""""""""""" """""" """"""^
-
-
-Congratulations! You are one of the proud Beta Testers for USB Loader GX. That's right. Beta tester. This means that you are using Beta software. This program is still under heavy development. Not everything works perfectly. If you are expecting it to, stop and look elsewhere. Some of the features covered here may be removed in your version of the application. And likewise, there may be features in your revision that are not covered here.
-
-By using a Beta revision, you are agreeing to not be an idiot. Most of the features should be self explanatory. The rest of them can be figured out by clicking around a trying stuff out. There is no button or combination of buttons that you can click that will brick your wii or make irreparable changes to your wii. So please try out all the features to see which options need to be enabled for your WII + TV + game combination.
-
-This was written 6/15/2009 regarding revision 529
-Last update on 10/1/09 regarding rev 772, updated/added a few images, updated cover path info, and added MIOS Patcher to download links.
-
-
-Features
-
-* The GUI is completely based on the awesome libwiigui by Tantric
-* Game information: reads game info from wiitdb.zip in your config folder like publisher, developer, year, rating, genre etc.
-* Widescreen support: Without any special themes for widescreen
-* Alternative dol loading: Supports special dol files needed to launch some games (e.g. Mortal Kombat)
-* Loading from USB: Loads files (images, configs etc.) from SD or USB (needs a FAT32 partition on the drive to be primary and active).
-* Global Settings and "per game" settings
-* Parental control: Set levels for each game, set a password for install/remove/etc.
-* View modes: simple List Mode, Game Grid and Game Carousel.
-* Supports Themes: Create your own theme and use it with the loader
-* Cover download: Download "normal" covers, 3D covers and disc images for all the games on your HDD (International Covers are downloaded based on your global language setting)
-* Look and feel like the original Wii Menu: Use rumble feature, button sounds, background music, disc slot lights up etc. (you can also turn it off in the settings)
-* Loads all the needed files from your SD/USB
-* Language file support: use your native language for the loader.
-* Custom sounds: for now only ogg custom sounds possible.
-* Playstats: shows you how many times you played the game
-* List sorting, Game Search, & Favorites: you can sort the list by playstats or names, search by name, or display only your favorites!
-* Update function: update to the latest revision from inside the gui (requires internet connection).
-* Homebrew & Title Launcher: Launch you favorite homebrew apps and channels from within the loader.
-* Full Alternate Dol Support: Alternate dols can be loaded from SD/USB or from the game itself. Most altdols can be automatically chosen by the loader.
-
-
-Useful links & Downloads
-
-Official site & help site
-http://code.google.com/p/usbloader-gui/
-http://usbloadergx.koureio.net/help
-
-Changelog
-http://code.google.com/p/usbloader-gui/source/list
-
-Sourcecode checkout
-http://usbloader-gui.googlecode.com/svn/trunk/
-
-Game compatibility list
-http://wiki.gbatemp.net/wiki/index.php?title=USB_Loader_v1.x_Game_Compatibility
-
-Devices compatibility list
-http://wiki.gbatemp.net/wiki/index.php?title=USB_Devices_Compatibility_List
-
-List of WBFS managers
-http://wiki.gbatemp.net/wiki/index.php?title=WBFS_Managers
-
-More questions?
-http://forum.koureio.net/
-
-cIOS installers
-cIOS38r12: http://gbatemp.net/index.php?download=6093
-cIOS38r13: http://gbatemp.net/index.php?download=6133
-cIOS38r13b: http://gbatemp.net/index.php?download=6127
-cIOS38r14: http://gbatemp.net/index.php?download=6531
-Hermes cIOS222/223 rev3: http://www.4shared.com/file/125087683/2b7948f1/Hermes_cIOS_222_rev3_installer.html
-Hermes cIOS222/223 rev4: http://www.4shared.com/file/129761844/53c80425/Hermes_cIOS_222_rev4_installer.html
-
-MIOS Patcher
-WiiGator's cMIOS http://www.4shared.com/file/136843685/99990ffc/miospatcher.html
-
-Other
-Wad manager 1.5: http://teknoconsolas.tv/wanin/WAD-Manager_v1.5.zip (mirror)
-Forwarder dol for preloader: http://www.mediafire.com/download.php?nykt4zyndzq
-Fat32Format: http://www.ridgecrop.demon.co.uk/download/fat32format.zip
-HJSplit http://www.freebyte.net/download/hjsplit.zip (this joins 001, 002, ... files)
-
-
-
-Contents
-
- 1. [1] Prerequisites & setup
- 1. [1a] Installation
- 2. [1b] Channel & Forwarder
- 3. [1c] [OPTIONAL]Autobooting and returning to USB loader GX
- 4. [1d] Files & paths
- 2. [2] Usage
- 1. [2a] [OPTIONAL] Compiling the loader
- 2. [2b] Adding games & changing GameID *****
- 3. [2c] Getting Covers & Wiitdb.zip *****
- 3. [3] Main menu
- 1. [3a] Controls
- 2. [3b] On the screen
- 3. [3c] View
- 4. [3d] Game Info
- 5. [3e] Game Prompt
- 4. [4] Exit Menu
- 5. [5] Homebrew&Title Launcher *****
- 1. [5a] Homebrew Launcher
- 2. [5b] Title Launcher
- 3. [5c] (Un)Installing WADs over wifi
- 6. [6] Settings
- 1. [6a] Gui settings
- 2. [6b] Game load
- 3. [6c] Parental control
- 4. [6d] Sound
- 5. [6e] Custom paths *****
- 6. [6f] Update *****
- 7. [6g] Default settings *****
- 8. [6h] Credits
- 7. [7] Game settings *****
- 1. [7a]Game load
- 2. [7b]Ocarina
- 3. [7c] Uninstall Menu
- 4. [7d]Default settings
- 8. [8]Cheating
- 1. [8a] Using a Computer
- 2. [8b] Using the USB loader
- 9. [9]Themes
- 10. [10]Special Games
- 1. [10a]Wii Sports Resort
- 2. [10b]Metroid Prime Trilogy
- 11. [11]FAQ
-
-Everything in this Guide that is marked with ***** can not be used if the loader is locked!
-Text in red is a little harder and for advanced users only!
-Blue text is Important Info!
-
-
-________________
-[1] Prerequisites & setup
-[1a] Installation
-
-STEP 1 – Installing the HBC (Homebrew Channel) and a cIOS (custom Input/Output System «- ignore that).
-
-If you are COMPLETELY new to homebrew, this little guide will tell you how to install the homebrew channel on your wii. The guide can be used for every system menu (up to 4.1, so updating is recommended) and any serial (LU64+). Do not use it on a Korean wii!
-
-First, follow steps 1 and 2 of this guide: http://gbatemp.net/index.php?showtopic=155844 to get the HBC on your wii. The hackmii installer can also install bootmii for you if you need brick protection. Our next step is to get a cIOS installed that is needed for the loader. Try installing a cIOS with a cIOS installer (using IOS36). If this doesn't work (if you get an error while installing), you don't have a patched IOS (needed by the cIOS installer) and you have to use one of the two methods below.
-
-
-Online method (Using wifi on the wii)
-Get the Trucha bug restorer by wiipower and run it with the HBC. You will see a lot of white text on a black screen. This is how many installers/patchers look like. It has no nice banner and stuff to keep the filesize low.
-
-
-1) Select IOS36 and press A. Even more text appears, read it if you want. Wait for the text at the bottom to appear and press 1.
-2) Choose Downgrade IOS15. Then download from NUS (2 times). Follow instructions on the screen.
-3) Now we can use the downgraded IOS15 to restore the Trucha in IOS36. Run TBR again. This time choose IOS15 and again press A then 1 when the text appears.
-4) Go into the IOS36 menu. Use these configurations: 36 (this is in what IOS-slot the patched IOS36 will be placed.) YES YES NO (actually you can choose what you want for the last 2 options), then select Install patched IOS36 and press A. Choose Download from NUS once again and follow on screen instructions.
-5) Now we have the patched IOS36, we can restore our IOS15 again. Load the TBR one last time. Choose IOS36,... .This time choose restore IOS15. Get the IOS from NUS and let the app finish everything.
-
-We are ready to install our cIOS. I will explain here how to get cIOS38r14 by waninkoko. You can also install another rev of this cIOS (don't go lower than r9) or a rev of IOS222/223 by hermes. All IOS have different uses and bugs. Its up to you to find out what these are.
-
-Get the installer here: http://gbatemp.net/index.php?download=6531 . Follow all the instructions at the link, but choose IOS36 instead of IOS249 (this is why we have patched IOS36). When you are asked to use wad install or online install, choose online install. You will then have the cIOS needed by the USB loader.
-
-Offline method (no wifi on the wii)
-Wad files of IOS are not legal, so we can not give them to you. Here is how to get them anyway:
-
-Get the NUS downloader and Trucha bug restorer.
-
-First open NUS downloader and Click 'Generate certs' if it asks to. First check Pack-»Wad. Click Database and Go to IOS, IOS15, v257. Then click Nus Download. Repeat this proces for IOS15 v266 and IOS36 v3094.
-Now go to the place where NUS downloader is and there will be 3 new folders. Copy the WAD of each folder to the SD card.
-
-
-Now follow steps 1 – 5 from the Online guide, but instead of choosing “Download IOS from NUS”, choose “Load IOS from SD card”.
-
-We are ready to install our cIOS. I will explain here how to get cIOS38r14 by waninkoko. You can also install another rev of this cIOS (don't go lower than r9) or a rev of IOS222/223 by hermes. All IOS have different uses and bugs. Its up to you to find out what these are.
-
-
-First we need one more file from the NUS: check Pack-»Wad. Get IOS38 v3610. Place the wad of the new folder at the root of the SD card. Download the cIOS installer: http://gbatemp.net/index.php?download=6531 . Follow the instructions at the link, but choose IOS36 instead of IOS249 (this is why we needed to patch IOS36). You have to choose wad installation. You will then have the cIOS needed by the USB loader.
-
-NOTES:
--You can have cIOS36/38 and cIOS222/223 installed at the same time. Every version has its own (dis)advantages.
-
-
--If your global cIOS is 249 and you set an individual game's cIOS to 222/223, it will not always work. On the other hand, if you set your global boot to 222 and set an individual boot to 249, it should work fine.
-
--If you change your global boot cIOS you need to completely exit out of the loader and restart it in order for the change to take effect. If you do not do this you will get a black screen. It is also necessary to delete your GXgamesettings.cfg file from your config folder on your SD/USB to prevent any setting conflicts since anything in GXgamesettings.cfg overrides the GXglobal.cfg file.
-
--Setting your global boot to 222 rev 3(installed as 37 merge 36) or 222 rev 4(installed as 38 merge 37) and setting your global 002fix to ANTI will result in 99% compatibility with no glitching/stuttering on IN REGION games. For OUT OF REGION games you need to also set the Video Mode to AUTOPATCH. The 1% non-compatibility is from the "please insert disc" games. However, those games are fully playable by simply inserting any dvd into your drive (I just stick a blank one in) OR by loading those specific games with cIOS 249 rev 12 or higher.
-
--Make sure you always delete the 00000001 folder from the root of your SD/USB before doing any network installation of cIOS 222/223.
-
-STEP 2 – Preparing your USB device
-
-Optional
-The USB loader can load images and other info of the same usb device as where the games are stored on. To be able to use this function, you will need to make two partitions on the USB device. The partition for the images should have enough with 2GB. You can also make more partitions for other purposes. Use GOOGLE to find out how to make partitions. (Or go here: http://gbatemp.net/index.php?showtopic=179085).
-For linux: http://gwht.wikidot.com/gparted
-
-Required
-The partitions have to be formatted to FAT. Mark the partition you want to use for WBFS as Active.
-
-If you make multiple partitions, the First partition must be the one for image,... and the second one for WBFS (for Wii games)
-
-
-STEP 3 – Preparing the SD card
-
-You can also use the USB device for this if you made a second partition in Step 2.
-
-Using the easy installer
-
-The fastest way of installing the USB loader GX is to download the Easy installer. Run this tool and click next (be sure to have an internet connection).You will be asked what files to put on the SD card/ USB device (dependant on where you run homebrew from). Recommended is to download everything except following things:
--The languages that you won’t use (only one language can be checked),
--If you already have images for the loader, don’t check cleanup, as it will remove the images.
-
-Next, you will be asked where to install the loader to. Advised is to install it to SD:\apps\usbloader_gx or USB:\apps\usbloader_gx (replace SD/USB by the drive letter of the card/device). If you’re done, click install.
-
-Without the easy installer
-
-Sometimes its not possible to use the easy installer. You will have to put on the files manually.
-1) Download the newest dol from http://usbloadergx.koureio.net/downloads/revisions.
-2) Create a new folder on your SD card (or USB) in the apps folder, called usbloader_gx. Place the dol in this folder and rename it to boot.dol .
-
-STEP 4 – Running the loader
-
-When you first boot up the Loader (using the HBC or another method of booting homebrew), you will be asked to format a partition to WBFS. Choose your partition and press A. If your partition is formatted, you are ready to use all functions of this app!
-
-NOTE: You can also format a partition to WBFS by using a WBFS manager.
-
-
-###################################
-
-[1b] Channel & Forwarder
-If you don't like going to the HBC to load the loader every time, you have to install the channel or forwarder of this loader.
-Both Channel and forwarder appear in the wii menu as a new channel. But there is a very important difference between them! The channel contains the app and can boot it without the SD card. The forwarder however simply loads the loader from SD:/apps/usbloader_gx/. There are (dis)advantages to both. Go here for more info: http://usbloadergx.koureio.net/downloads/forwarders
-
-To install the forwarder or channel, you need an application called Wad manager. Get it here: http://teknoconsolas.tv/wanin/WAD-Manager_v1.5.zip
-Place it in its own folder in the apps folder of the SD card (or USB).
-
-Download forwarder: http://www.mediafire.com/?jdmiykainlm
-Download channel (R649c): http://www.mediafire.com/download.php?ntuexwmycby
-Create a new folder on the SD card (or USB) called wad. It has to be in the root of the SD card (so not in the apps folder). Place your wad here.
-
-Run the wad manager. Choose IOS249. Then choose SD or USB (depending on where you placed the wads). Select the wad to install and press A to install it. When its done, keep pressing B to go back to the HBC. Then go to the wii menu. You will see your new channel/forwarder on one of the pages. You can move it by holding A and B.
-
-Changing the location the forwarder loads the dol from: To do this, simply change the update path (see [6e])
-
-
-[1c] [Optional]Autobooting and returning to USB Loader GX
-
-It is possible to boot your wii directly into the USB loader GX. The only thing you need for this is a wii app called preloader. First download the newest rev of the loader or even better, the forwarder (dol format, see downloads at the top of the readmii). Place the dol you get in the root of your SD card (no need to rename it to boot.dol). In the preloader menu, choose install file and choose the dol to install. When its done, go to the main menu of preloader (B) and then choose 'settings'. You have to change 2 options here: Autoboot=file and Return to=preloader. Save the settings, then launch the Wii menu in the main menu. It will boot into the USB loader GX!
-
-###################################
-
-[1d] Files & paths
-
-There are other files that are not necessary to the core functionality of this loader, but are used for extra features. The dev. team has defined the following paths, most of which are configurable in the settings.
-
-Update Path - SD:/config/
-This is where the application will create files to save settings and statistics. All the files it makes start with GX to make them easy to find.
-GxGlobal.cfg is the main settings and configuration for the loader.
-GXGameSettings.cfg contains individual settings for games.
-GXGameCount.cfg stores the game play count and favorites choices. A database of information about each game can be stored in this folder as well. Get you hands on wiitdb.zip and put it here.
-
-Covers Path - SD:/images/
-This is where box art is downloaded to and displayed from. All images must be sized in multiples of 4 or they won't show up. Create separate folders for 2D and 3D covers. When you direct each path to the proper folder the default displays are 3D for the List and Carousel views and 2D for the Grid view.
-Official sizes:
-2D covers = 160x224
-3D covers = 176x248
-
-Disc Image Path - SD:/images/disc/
-This is where pictures of the actual game discs are downloaded to and displayed from. All images must be sized in multiples of 4 or they won't show up.
-Official size:
-Discart = 160x160
-
-Background Music Path - SD:/config/backgroundmusic/
-This is the default folder for custom background music.
-
-Theme Path - SD:/theme/(SD:/wtheme for widescreen wii)
-This is the default theme location.
-
-Cheatcodes Path - SD:/codes/
-This is the folder to put your gct cheat files.
-
-TXT Cheatcodes Path - SD:/txtcodes/
-Here is where you can place the txt files needed by the code manager. Files must have the full game ID (6 chars.) as name. The downloaded txt files (with the code manager) will be placed here.
-
-DOL Path - SD:/
-This is where replacement dols (used to fix certain broken games) go.
-
-Homebrew Apps Path - SD:/apps/
-This is where you can place the Homebrew apps for the Homebrew Loader.
-
-
-________________
-[2] Usage
-
-Using this application is simple. Launch it in the same way that you did in the initial setup, pick a game (if you have any installed), and play the game. This is open source software. You are free to modify it, distribute it, and do anything you want with it. All we demand is that you do not claim our work as yours. We worked long and hard on this and let you use it for free. It would be a real bitch move if you put your name on it and said it was your own.
-You are also free to distribute the software/source code as you like as long as this file (or a similar one approved by the dev team) companies it. If you don't follow these guidelines, you are a douche-bag.
-
-###################################
-
-[2a] [Optional] Compiling the loader
-
-THIS IS COMPLETELY OPTIONAL. IF YOU ARE NOT INTERESTED IN PROGRAMMING OR COMPILING, OR IF YOU DON'T MIND WAITING FOR SOMEONE ELSE TO COMPILE THE NEWEST REV, YOU CAN SKIP TO [2b].
-
-This loader gets updated very frequently. The newest revision will not be available all the time to download. When that happens, you will have to compile the loader yourself. GBAtemp members emupaul and giantpune have made a guide that shows you how to compile the loader.The full guide can be found at http://gbatemp.net/index.php?showtopic=169078
-
-1)Download a svn client. Reccomended is Tortoisesvn. If you want the loader to show the rev# in the settings, you also need sliksvn.
-2)Download and install Devkitpro
-3)Reboot your system
-4)Create a new folder (can be anywhere) and name it USBGX (or any other name, as long as you know what it contains)
-5)Right click your folder and select SVN Checkout (this option is added by Tortoisesvn)
-6)Enter the url http://usbloader-gui.googlecode.com/svn/trunk/. Leave all other options as they are and click OK
-7)Download http://usbloader-gui.googlecode.com/files/...-08-07-2009.zip and extract to the libogc folder
-8)After it has downloaded the source, all folders will show a green OK mark. Open the file gui.pnproj
-9)You are now in the programmers notepad. This utility is used to program wii apps. Press ALT + 1 (the 1 thats not on the Numpad) to compile the source.
-10)Copy the boot.dol (or elf) to the SD card and run it.
-
-[OPTIONAL] Changing the source for the channel: You have to make a small change in the code to let the USB loader know its a channel.
-1)Open Gui.pnproj, it wil open with the Programmers notepad.
-2)Time to make a little change in the code (maybe your first time doing this :) ). You should see the file structure (If not, go to view»windows»projects and enable it, then place it somewhere). Open the prompts folder (if it isn't open already) by clicking the white arrow in front of it. Then open PromptWindows.h (double click)
-3)It will appear in a new window. At the top of the file you should see #define NOTFULLCHANNEL
-4)Put your cursor before the # at this line and type //. The line will become green and will look like: //#define NOTFULLCHANNEL. This line is now a comment. Comments are just extra information and are not compiled.
-5)Compile the source by pressing ALT+1. Now you have the correct boot.dol, which you can inject in the channel.
-
-###################################
-
-[2b] Adding games & changing GameID *****
-
-To add a game to your drive using this program, click the install button on the main screen and follow the on screen prompts. Games are automatically scrubbed (shrunk) and brickblocked (update partition removed) when adding them to the drive.
-
-Because of the way WBFS and the application work, you are only allowed to install 1 game for each game ID. If you do use another application to install 2 games with the same 6 character ID, only the first one on the drive will be loaded by our program. If the installation freezes (doesn't move for over 2 minutes) you can simply hold the power button on the Wii to turn it off. There is no danger of bricking your wii. The data that was written during the failed install is still present on the drive, but not marked as active so it will be treated as free space. It does not get added into the used space displayed on the screen and it will be overwritten next time you install a game.
-
-To install games (ISO or cISO) with your computer, you need a WBFS manager. Most popular are WBFS manager 3.0 and WBFS intelligent GUI v6. Using these programs should be self-explanatory.
-
-
-***The following feature is for advanced users only! Do not use this feature unless you know exactly what you are doing!***
-As of revision 719, it is now possible to edit GameIDs via the loader which is useful with different games using the same GameID (ie; Guitar Hero mods). When viewing the GUI in list mode, simply click on the GameID displayed underneath the targeted game's cover (if GameID isn't displayed, see section [6a]) to bring up the ID change prompt. Keep in mind that this will create a new save file for the targeted game and will no longer load a previous save file unless the GameID is restored to it's original ID.
-
-###################################
-
-[2c] Getting Covers & Wiitdb.zip *****
-
-This loader can show the boxart and discart for every game. The images have to be placed in the correct folder and must have the correct name and size (more info at [1a]). To download covers with this loader, you need to press 1 at the main menu. You can choose what covers you want to download (2D or 3D). Discart can also be downloaded.
-
-It is also possible to show the info for each game. You can show the game info by highlighting a game (don't press A, just point) and pressing 2. The data for the game info is stored in wiitdb.zip. There are two ways to get this file:
-
--Update with the loader and select update all or update wiitdb, it will also be updated if you update the full channel.
--If you have no wifi, go to the game info screen of any game. Press 1 and you will see the text at the bottom change. Go to the file it shows and copy the URL. Then open the url with a web browser to download the wiitdb.zip. Once you got wiitdb.zip , place it in the titles.txt path (see Custom paths)
-
-NOTE: All images and wiitdb.zip are downloaded from the site www.wiitdb.com .
-
-________________
-[3] Main menu
-
-This is the main screen, the first one you see when you start the program. It looks a lot like the Wii system menu. (Default theme)
-
-###################################
-
-[3a] Controls
-
-User input for the main menu is accepted through WiiMote, Nunchuk, Gamecube controller, and Classic controller. While input is accepted from all these methods, the fastest and easiest method is with a WiiMote.
-
-Wiimote
-A --- Main action Button
-B --- Back/Cancel/Scroll (list view)
-- Button --- Left (Grid/Carousel/game prompt/settings)
-Home --- Open Exit menu
-+ Button --- Right (Grid/Carousel/game prompt/settings)
-1 --- Download covers
-2 --- Show game info (select a game first)
-D-Pad --- Choose
-Pointer --- Choose
-
-Nunchuck
-Control stick --- Choose
-
-GC Controller
-Control stick --- Choose
-D-Pad --- Choose
-A --- Main Action button
-B --- Back/Cancel/Scroll (list view)
-
-Classic controller
-Left control stick --- Choose
-D-Pad --- Choose
-A --- Main action button
-B --- Back/Cancel/Scroll (list view)
-X --- Game info
-Y --- Download covers
-- Button --- Left (Grid/Carousel/game prompt/settings)
-Home --- Open Exit menu
-+ Button --- Right (Grid/Carousel/game prompt/settings)
-
-###################################
-
-
-[3b] On the screen
-
-1.Install ***** -- (+) button at the left -- Press to add games to your HDD from the Wii's DVD drive.
-
-
-2.Settings -- Button with gear on the left -- Use it to access all the settings and options.
-
-
-3.Exit -- Button with 'wii' on the right -- Press this to view the exit menu.
-
-
-4.Power -- Button with power logo at the right -- I bet you can figure out what it does.
-
-
-5.Download ***** -- Listview: cover -- When you are in the list view, click a game box to download stuff. You can also use the 1 button in any display mode.
-
-
-6.Reload -- SD card button -- Press it to reload your SD contents (images, themes,…).
-
-
-7.Homebrew Loader -- Button right of the HDD info -- Run the Homebrew Loader
-
-
-8.Sort bar -- Bar at the top -- contains 9 - 16 from left to right
-
-
- 9.Favorites --- Press it to hide all games that are not marked as a favorite.
-
- 10. Game Search --- Use this button to only list games that start with a certain letter.
-
- 11.Abc --- Your games will be sorted alphabetically.
-
- 12.Playcount --- Sort games by the number of times you have launched them from this application. Games with the same count are sorted alphabetically.
-
- 13.List --- Press it to see games listed by name and any available box art for 1 game at a time.
-
- 14.Grid --- Use this button to see your games arranged in a grid. The number of rows available depends on how many games are on you drive. 39 games can be seen at the most.
-
- 15.Carousel --- Press this to see you games arranged in a rotating fan array. 7 games can be seen at a time.
-
- 16. Load from Disc --- Boot the current game disc that is inserted in the Wii disc drive. cMIOS is required in order to play Gamecube backups.
-
-17.Clock -- Above the HDD info -- This looks like a digital clock. Coincidently, it functions like a clock.
-
-18.HDD Info -- In the middle, at the bottom -- This shows some information about your connected HDD (only the WBFS partition). Free & total space in GB as well as the game count. GB is defined here as 1024MB. When you bought your drive, the manufacturer probably used 1000MB for GB so the size displayed here will be less than what your drive was advertised as. The game count will reflect the games you are choosing to display, not the actual amount of games on your drive. If you are hiding games with parental controls/favorites, they will not be added into this total.
-
-###################################
-
-[3c] View
-
-There are 3 different ways to view your games.
-
-List --- Games are listed by name (up to 9 at a time) box art for the selected game is displayed. This is currently the only screen you can initiate a download for artwork from. Also on this screen The B button has a slightly different use. If there are scrollbars present on your gamelist, holding B and moving the cursor scrolls the list.
-
-Grid --- Games are arranged in a grid (up to 320). The number of rows available depends on how many games are on you drive. By default, it is 3X14 (with the last column hidden)if there aren’t enough games to fill all 42 spots, it changes to 2x8 (2x7 shown on screen). Again, if there aren’t enough games to fill it up, the number of rows decreases.
-
-Carousel --- Games are arranged in a rotating fan array (up to 320). Up to 7 games can be seen at a time.
-
-###################################
-
-[3d] Game Info
-
-Pressing 2 (or X on CC input) brings a prompt with information about the selected game. This info is read from the wiitdb.zip file discussed earlier. Among the displayed information are the following:
-
-Accessories --- The supported accessories for the game are shown in the lower left. The max number of players is shown on the image of the WiiMote. Any required accessories are shown in light blue.
-
-Rating system --- The rating for the game is shown in the lower left of the screen. It is converted internally between PEGI,ESRB, and CERO (though not used for anything yet).
-
-Wifi --- The number of online players is displayed to the right of the accessories. Any other wifi features are listed above the accessories.
-
-Synopsis --- If a synopsis is present in the file, it can be viewed by pressing A on the game info screen. You need to set the game language to the language of synopsis you want to view!
-
-Wiitdb.zip will get updated when you update all or update the full channel. Only the info for the games and language you have will be downloaded. If you do not have the possibility to update with the loader because you have no Wifi, go to the game info screen and press 1 (Rev637 or higher needed). It will store a link in a file as shown at the bottom. Open the file and copy the link. Then open it with a web browser to download the file. Place the Wiitdb.zip in the titles.txt path.
-
-###################################
-
-[3e] Game Prompt
-
-This is the prompt that comes up when a game is selected (if the quickboot option is disabled).
-
-Play --- Click the spinning disc to launch this game.
-
-Rename ***** --- Click the title of the game in the top of the prompt to rename it directly on the WBFS file system. If you are using titles.txt or wiitdb.zip, this will have no (visible) effect.
-
-Back --- Closes this prompt.
-
-Favorite --- Click the star to add/remove this game from your favorites.
-
-Size --- The amount of space that the game occupies on the WBFS.
-
-Count --- The number of times you have launched this game using this application.
-
-Settings ***** --- Here is where you go to enter settings that will be used for this game only.
-
-
-________________
-[4] Exit Menu
-
-This is the screen that appears when you press the home button on the WiiMote or the exit button in the main screen.
-
-Return to loader --- if you launched USB Loader GX from HBC, LoadMii, or similar chain loading application, you will see this button. Pressing it will take you back to the application you came from.
-
-Homebrew Channel --- Brings you to the homebrew channel
-
-Wii Menu --- Exits to the Wii System Menu.
-
-Batteries --- Status for all connected WiiMotes is displayed here.
-
-Close --- Closes this screen and returns you to where you were in the application before this screen was called.
-
-
-________________
-[5] Homebrew&Title Launcher *****
-[5a] Homebrew Launcher
-
-
-New since rev627 is the Homebrew Launcher. You can activate this function by clicking on the icon right of the HDD info at the main screen (the button looks like the Homebrew channel). Just like the HBC, all apps of the specified folder will be shown in groups of 4. The images of the apps are shown on the left, and the name to the right. When you click an app, the info in the meta.xml will be shown.
-
-Folders of homebrew must contain a .dol or .elf . Unlike the HBC they do not have to be renamed to boot.dol or boot.elf .
-The folder may also contain an icon.png (size 128x48), meta.xml and other data that the app needs to run.
-
-###################################
-
-[5b] Title Launcher
-
-Since rev648 it is also possible to load channels. To access the title (channel) launcher, go to the Homebrew launcher. There you will see two buttons in the bottom right. The first (left) button leads to the title launcher.
-If you want the correct names of the channels to display, you need a database.txt found here: http://pastebin.com/f6fb1533b. Place it in the config folder.
-You are free to edit this file online, but do not add Homebrew channels. These have title IDs that can be different on other wiis.
-
-###################################
-
-[5c] (Un)Installing WADs over wifi
-
-FOR ADVANCED USERS ONLY!
-
-EASY METHOD
-
-Guide by GBAtemp member NeoRame
-
-1) Download the wiiload installer found here
-2) Connect the wii to wifi. Go to the Homebrew channel and press Home. You will find your wiis IP here.
-3) Run the Installer and choose next. Enter the wii IP and choose install.
-4) Launch the USB loader GX and go to the Homebrew Launcher, then go to the Title (channel) launcher.
-5) On your PC, double click a .wad .dol or .elf to send it to the Wii (You can also right click and choose Send to wii). If you send a wad, you will be asked to (un)install it or not.
-
-NOTE: If you can't get it to work, reboot your computer and try again.
-
-DIFFICULT METHOD (Use if the easy one doesn't work)
-
-Guide made by GBAtemp member Logan
-What you will need:
-
-
- * Your Wii's IP address (see below for details)
- * WiiLoad
- * This guide is for Windows only. I don't use Linux
-
-
-1) Download WiiLoad from the above link and extract the contents.
-2) Copy/Move wiiload.exe to C:\Windows\System32\
-3) Open Notepad and copy the following into it:
-
-Windows Registry Editor Version 5.00
-
-[HKEY_CLASSES_ROOT\.WAD]
-@=""
-
-[HKEY_CLASSES_ROOT\.WAD\shell]
-
-[HKEY_CLASSES_ROOT\.WAD\shell\Send to Wii!]
-
-[HKEY_CLASSES_ROOT\.WAD\shell\Send to Wii!\command]
-@="c:\\windows\\system32\\wiiload.exe \"%1\""
-4) Save the file as "wiiload.reg"
-5) Double click the file and accept entering the entries into the registry.
-6) Boot up your Wii and load the USB loader GX. Go to the Homebrew Launcher and hover over the WiFi Wii icon. A tooltip will pop up showing your IP address. Make a note of it.
-7) Set the environment variable by going to your computer's Control Panel -» System -» Advanced -» Environment Variables, then click "new" under either category. The variable name is WIILOAD and the value is tcp:yourIP, where yourIP is the Wii's IP/hostname. Click "OK" here and in System Properties.
-8) Now go to the title (channel) browser on your wii. On your PC, right click on a .WAD file and you should now see a "Send to Wii!" option. Click on this and watch the magic work at the Wii end of business.
-9) [Optional] Double click on a .WAD file and choose c:\windows\system32\wiiload.exe as the application to open it. Now double clicking .WAD files will send them to your Wii.
-10) To uninstall, simply send the same .WAD file to the Wii.
-
-Use your noggin when dealing with WAD's. I won't be held accountable for any misuse!
-
-
-________________
-[6] Settings
-
-This is where you customize the behavior of the program.
-
-###################################
-
-[6a] Gui settings
-
-These are the settings that affect the behavior and feel of the GUI. Your settings are saved when exiting back to the main screen, change custom paths, change views in the main screen, and a few other times.
-
-App language ***** --- If you have a language file to translate this program, you can select it here. You can change the path by clicking it at the top of the screen. The button in the lower right will restore the default (English).
-NOTE: Newest revs will automatically load your language if it is found.
-
-Display --- In the list view, you can chose to display the selected game's region and ID here.
-
-Clock --- Choose how you want the clock displayed.
-
-Tooltips --- Enable tooltip help you with the various buttons and options.
-
-Flip-X --- This changes the behavior of left and right on the game prompt and Grid/Carrousel. If it feels un-natural, change this setting.
-
-Prompts/Buttons --- Select whether or not to apply the widescreen fix to prompt windows and certain buttons in the GUI.
-
-Keyboard --- Choose between different layouts for the on-screen keyboard used in the GUI.
-
-Discimage Download --- Select what discimages have to be downloaded
-Only Original: Always get original discart
-Only Customs: Always get custom discart
-Original/Customs: Get original discart. Get custom discart if original is not available
-Customs/Original: Get custom discart. Get original discart if cutom is not available
-
-Wiilight --- Change the behavior of the disc slot light.
-
-Rumble --- Turn rumble on/off.
-
-Auto init. network --- Turn this ON to automatically initialize the network at boot. If a new update is available, you will be asked if you want to download it.
-IMPORTANT: Turning on this function may cause malfunctioning of the loader and games!
-
-Titles from XML --- Choose if you want to ignore the titles stored on the xml file (in wiitdb.zip) or titles.txt and use the ones stored on the WBFS.
-
-Screensaver --- Set how long it will take to activate the screensaver in case of inactivity. The screensaver switches off the Wiimote.
-
-###################################
-
-[6b] Game load
-
-Change settings that have to do with the way games are booted. These will be use as default if you don't set any specific settings for that game.
-
-Video mode --- Select the video mode to use for games. Most games work with disc default. If this doesn't work, try console default. Then if you still need to, try forcing your region.
-
-vidTV patch --- Patches the signal after the game has rendered it in the mode selected in video mode. If none of the video modes work, try this.
-
-Game language --- The language that is passed to the game when it is booted. If the language is supported by the game, it will be used in game.
-
-Patch country strings --- Use this for Japanese imports.
-
-Ocarina-- Turn on/off the ocarina cheat engine. You need gct files in the cheatcode path mentioned earlier.
-
-Boot/standard ***** --- Select the cIOS that is used to boot the program into.
-
-Quickboot --- Choose if you want to skip the game prompt when starting games.
-
-Error 002 fix --- With certain IOS, some games show an error that says "blablabla, 002, blablabla. Don't be a pirate." Turn this on to fix it.
-Anti: Some cIOS have 002fix build-in. Unfortunately, this makes some games unplayable (the reason for this is that there are 2 types of 002 fix, and some games won't play with the one found in some cIOS). Activate the Anti002fx to play these games. Known games that need Anti002fix (they use 002fix on with some cIOS): Burger Island, Diabolik The Original Sin, Ghostbusters, Indiana Jones and the Staff of Kings, MySims Racing, Nutrition Matters, Solitaire And Mahjong, Takt of Magic
-
-###################################
-
-[6c] Parental control
-
-Settings for parents to control what content their kids see. Everything in this document with ***** beside it is hidden/unusable when the application is locked.
-
-Console --- Click here to lock/unlock advanced features. Requires password to unlock.
-
-Password ***** --- Click here to set a password. When locked it's shown as ********
-
-Control level ***** --- Set the level of parental control here. Games will be excluded from the game list based on this and the settings you have for them in the game-specific settings. Also shown as ******** when the loader is locked.
-
-###################################
-
-[6d] Sound
-
-Settings related to audio are here.
-
-Background music --- You can chose custom BG music to be heard in the application here. Click the path at the top to change it. Format is OGG. Keep in mind that bigger songs will result in decreased memory available for other functions. It is possible to completely crash the loader with big files. Try to keep it «3MB to be safe. If you want to rock out to your music, use a media player. This is a game loader.
-
-Music volume --- Pick the volume for the BG music within this application, not in the games that are booted.
-
-SFX volume --- Pick the volume for the sound effects within this application, not in the games that are booted.
-
-###################################
-
-[6e] Custom paths *****
-
-Below paths the program uses are customizable. Click a path to browse for its new destination.
-
-3D Cover Path --- For 3D boxart. When properly defined, 3D cover art will display in List and Carousel views by default.
-
-2D Cover Path --- For 2D boxart. When properly defined, 2D cover art will display in Grid view by default.
-
-Discimage path --- For Discart.
-
-Theme path --- For themes.
-
-XMLpath ---For wiitdb.zip
-
-Update path --- Used for updating the dol. If you are using our forwarder, it loads dols from this path.
-
-Cheatcodes path --- For gct & ocarina use.
-
-Txtcheatcodes path --- For txt files holding the codes for the code manager
-
-Dol path --- Contains replacement dols (Alternate dols) for certain broken games.
-
-Homebrew apps path --- Where you place your homebrew apps for the Homebrew Loader.
-
-###################################
-
-[6f] Update *****
-
-Click to get updates online. Just because there is a newer revision than what you are using does not mean that it will be on the update server. Also, you get the choice to update dol or update all. The last option will update the dol, HBC icon.png and meta.xml
-
-It is also possible to update the full channel (This will also download wiitdb.zip). The channel needs a small change in the code before it can be updated. If you have a channel and you see the update all button, you can not update the channel. You have to get another one.
-
-###################################
-
-[6g] Default settings *****
-
-Click here to restore default settings. You can also delete GXGlobal.cfg to do this if you get an error at boot.
-
-###################################
-
-[6h] Credits
-
-Look at the people that made this application possible. You get to rock out to some cool music, too. In the upper right corner you can see your rev# and the cIOS that your are currently running.
-
-
-________________
-[7] Game settings *****
-
-
-Settings are available on a per-game basis from the prompt window. These settings have the same effect as the global settings, but are only used for the selected game.
-NOTE: If quickboot is enabled, you cannot change the settings. So make sure you configure them before enabling quickboot.
-
-###################################
-
-[7a]Game load
-After making changes, you must click the save button for them to take effect!
-
-Videomode --- see [6b] Game load
-vidTV patch --- see [6b] Game load
-Game language --- see [6b] Game load
-Ocarina --- see [6b] Game load
-Ios --- see [6b] Game load
-Parental control --- see [6b] Game load
-Error002 fix --- see [6b] Game load
-Patch country strings --- see [6b] Game load
-
-Alternate dol --- This is for advanced users only. There are certain games that do not run because they reload IOS and this causes the USB to be dropped.
-Select a dol: Use the next option to browse for an alt dol on the WBFS partition
-Dol from SD/USB: Extract the proper dol from the ISO (using wiiscrubber) and name it with the 6 character game ID and put in the dolpath.
-
-Selected dol --- If you put Alternate dol on 'Select a dol', this function can be used to do so. (Even if the box is empty, you can click it)
-
-Save --- Writes the settings that are on the screen right now to the GXGameSettings file, behind the current game ID.
-
-###################################
-
-[7b]Ocarina
-
-Opens the cheat manager. For more info, see [8]Cheating
-
-###################################
-
-[7c] Uninstall Menu
-If you click this button, you will see a new menu. You can uninstall everything here: the game, boxart, discart and TXTcheat file. You can also reset the playcounter here.
-
-###################################
-
-[7d]Default settings
-
-Restore all default settings for the game. (The default settings can be changed in [6b]Game load)
-
-
-________________
-[8]Cheating
-
-With the build in application called Ocarina, it is possible to cheat by using the USB loader GX. To enable cheats, you will need a gct file with the gameID of the game in the correct path. (The cheatcodes path, see custom paths)
-
-There are two ways to create a gct file. For both, you will need a txt file that contains all the codes for the game.
-
-###################################
-
-[8a] Using a Computer
-
-All needed txt files can be found on http://geckocodes.org/. If you cannot find codes for your game, it means there are no codes available for that game.
-To turn the txt files in gct files, you need the codemgr. It is included in the Ocarina download (check wiibrew.org).
-
-Open the txt file with the codemgr. You will see all the codes that are in the txt file. Sometimes the txt file has errors. In that case you need to open it manually with a txt editor. You can select all the cheats you want to enable.
-
-Some codes require that you fill in an amount of XX or other letters to make the code work. The values can usually be found in the comments. Select the letters you want to change and type the correct value over them. Then click ‘store settings’.
-
-If you filled everything in and enabled all cheats you want, click the ‘export to gct’ button. Choose the SD/USB you want to store the file to. It will create a file in the map codes. If you changed the path in the settings of the loader, you have to place the gct file in the right direction.
-
-###################################
-
-[8b] Using the USB loader
-
-Go to the Game settings. There, choose ocarina. If it doesn’t find a txt file with the gameID of the current game, you will be asked if you want to download it. You can also manually download the txt file, but don’t forget to rename it to the correct title ID (and place it in the txtcodes path, see custom paths). After you downloaded it, use the same Ocarina button to go to the code manager. Select all codes you want to enable, then click 'create' if you’re done. NO LETTERS CAN BE CHANGED USING THIS METHOD. TO MAKE THE CODES WORK THAT CONTAIN THEM, EDIT THE TXT FILE OR USE THE CODEMGR! It will bring you back to the gamesettings screen.
-
-###################################
-
-After you used on of above methods to create your gct file, enable ocarina in the game settings (game load), save and boot the game.
-
-
-________________
-[9]Themes
-
-It is possible to theme this program. Many of the images can be replaced and moved. Every theme must include a GXTheme.cfg in the same folder as where you put the images. Here is a list of what you can put into the GXtheme.cfg :
-#################### GXTheme.cfg #####################
-## Copy to a txt file and rename it to GXTheme.cfg. ##
-## Don't touch lines starting with # ##
-## Values between [] are defaults ##
-######################################################
-
-#### coordinates: x and y are coordinates in pixels, width and height are also in pixels ####
-
-## battery1_coords = x,y -- [245,400] -- For battery indicator 1 (exit menu)
-battery1_coords = 245,400
-
-## battery2_coords = x,y -- [335,400] -- For battery indicator 2 (exit menu)
-battery2_coords = 335,400
-
-## battery3_coords = x,y -- [245,425] -- For battery indicator 3 (exit menu)
-battery3_coords = 245,425
-
-## battery4_coords = x,y -- [335,425] -- For battery indicator 4 (exit menu)
-battery4_coords = 335,425
-
-## clock_coords = x,y -- [0,335] -- For the clock
-clock_coords = 0,335
-
-## covers_coords = x,y -- [26,58] -- For the game covers (list view)
-covers_coords = 26,58
-
-## gamecarousel_coords = x,y,width,height -- [0,-20,640,400] -- For the carousel (carousel view)
-gamecarousel_coords = 0,-20,640,400
-
-## gamecarousel_favorite_coords = x, y -- for the favoriteIcon in game-carousel-mode
-## gamecarousel_search_coords = x, y -- for the searchIcon in game-carousel-mode
-## gamecarousel_abc_coords = x, y -- for the abcIcon in game-carousel-mode
-## gamecarousel_count_coords = x, y -- for the countIcon in game-carousel-mode
-## gamecarousel_list_coords = x, y -- for the listIcon in game-carousel-mode
-## gamecarousel_grid_coords = x, y -- for the gridIcon in game-carousel-mode
-## gamecarousel_carousel_coords = x, y -- for the carouselIcon game-carousel-mode
-## gamecarousel_dvd_coords = x, y -- for the dvdIcon game-carousel-mode
-
-## gamecount_coords = x,y -- [0,430] -- For the gamecount (below HDD info)
-gamecount_coords = 0,430
-
-## gamegrid_coords = x,y,width,height -- [0,20,640,400] -- For the gamegrid (grid view)
-gamegrid_coords = 0,20,640,400
-
-## gamegrid_favorite_coords = x, y -- for the favoriteIcon in game-grid-mode
-## gamegrid_search_coords = x, y -- for the searchIcon in game-grid-mode
-## gamegrid_abc_coords = x, y -- for the abcIcon in game-grid-mode
-## gamegrid_count_coords = x, y -- for the countIcon in game-grid-mode
-## gamegrid_list_coords = x, y -- for the listIcon in game-grid-mode
-## gamegrid_grid_coords = x, y -- for the gridIcon in game-grid-mode
-## gamegrid_carousel_coords = x, y -- for the carouselIcon in game-grid-mode
-## gamegrid_dvd_coords = x, y -- for the dvdIcon in game-grid-mode
-
-## gamelist_coords = x,y,width,height -- [200,49,396,280] -- For the list of games (list view)
-gamelist_coords = 200,49,396,280
-
-## gamelist_favorite_coords = x, y -- for the favoriteIcon in game-list-mode
-## gamelist_search_coords = x, y -- for the searchIcon in game-list-mode
-## gamelist_abc_coords = x, y -- for the abcIcon in game-list-mode
-## gamelist_count_coords = x, y -- for the countIcon in game-list-mode
-## gamelist_list_coords = x, y -- for the listIcon in game-list-mode
-## gamelist_grid_coords = x, y -- for the gridIcon in game-list-mode
-## gamelist_carousel_coords = x, y -- for the carouselIcon in game-list-mode
-## gamelist_dvd_coords = x, y -- for the dvdIcon in game-list-mode
-
-## hddinfo_coords = x,y -- [0,410] -- For the HDD info
-hddinfo_coords = 0,410
-
-## home_coords = x,y -- [485,367] -- For the exit menu button
-home_coords = 485,367
-
-## homebrew_coords = x,y - [425,400] -- For the Homebrew launcher button
-homebrew_coords = 425,400
-
-## id_coords = x,y -- [68,305] -- For the game ID (list view)
-id_coords = 68,305
-
-## install_coords = x,y -- [16,355] -- For the install button
-install_coords = 16,355
-
-## power_coords = x,y -- [576,355] -- For the power button
-power_coords = 576,355
-
-## region_coords = x,y -- [68,30] -- For the region (list view)
-region_coords = 68,30
-
-## sdcard_coords = x,y -- [150,390] -- For the Reload SD button
-sdcard_coords = 150,390
-
-## setting_coords = x,y -- [60,367] -- For the settings button
-setting_coords = 60,367
-
-#### show: 0 = don't show, 1 = show ####
-
-## show_battery = show -- [1] -- Show the battery indicators
-show_battery = 1
-
-## show_gamecount = show -- [1] -- Show the gamecount
-show_gamecount = 1
-
-## show_hddinfo = show -- [1] -- Show the hdd info
-show_hddinfo = 1
-
-## show_id = show -- [1] -- Show the game ID
-show_id = 1
-
-## show_region = show -- [1] -- Show the region
-show_region = 1
-
-## show_tooltip = show -- [1] -- Show tooltips
-show_tooltip = 1
-
-#### colors: red, green and blue go from 0 to 255 ####
-
-## clock_color = red,green,blue(,alpha) -- [138,138,138(,255)] -- Color of the clock
-clock_color = 138,138,138(,255)
-
-## gametext_color = red,green,blue(,alpha) -- [0,0,0(,255)] -- Color of the gametext
-gametext_color = 0,0,0(,255)
-
-## info_color = red,green,blue(,alpha) -- [55,190,237(,255)] -- Color of info (like HDD info)
-info_color = 55,190,237(,255)
-
-## prompttext_color = red,green,blue(,alpha) -- [0,0,0(,255)] -- Color of text in prompts
-prompttext_color = 0,0,0(,255)
-
-## settingstext_color = red,green,blue(,alpha) -- [0,0,0(,255)] -- Color of the text in the settings
-settingstext_color = 0,0,0(,255)
-
-#### transparency: Alpha = from 0 (fully transparent) to 255 (Not transparent)
-
-## batteryUnused = Alpha -- [70] -- Transparancy of Battery indicators that are not used
-batteryUnused = 70
-
-## tooltipAlpha = Alpha -- [255] -- Transparency of tootltips
-tooltipAlpha = 255
-
-#### Allign: Allign = left/centre/right ####
-
-## clock_allign = Allign -- [centre] -- For the clock
-clock_allign = centre
-
-## gamecount_allign = Allign -- [centre] -- Allign of the gamecount
-gamecount_allign = centre
-
-## hddinfo_allign = Allign -- [centre] -- Align of the HDD info
-hddinfo_allign = centre
-
-#### others ####
-
-## maxcharacters = x -- [36] -- Amount of characters shown before text starts scrolling left. (long text)
-maxcharacters = 36
-
-## pagesize = x -- [9] -- Amount of games in the list (list view)
-pagesize = 9
-
-## sortBarOffset = x -- [1] -- Amount of pixels the sortbar jump right when going to grid/carousel
-sortBarOffset = 100
-
-
-________________
-[10]Special Games
-
-This section will explain on how to run some games with special boot methods.
-The methods for Alt-dol from SD are explained here. You can also use Alt-dol from disc (use the same dols). If you have to rename the dol, replace the X by E (NTSC-U), P (PAL) or J (NTSC-J)!
-
-
-[10a]Wii Sports Resort
-
-IMPORTANT: Wii sports resort requires the WII MOTION PLUS. If you do not have it, you can not run this game!
-Booting WSR isn't too difficult. But as its different from usual booting methods, it is listed here.
-
-1) When you boot it for the first time, Alt dol loading must be enabled.
-Alt dol info: Extract the player.dol and rename it to RZTX01.dol
-Depending on your cIOS, 002fix or Anti002fix may be needed.
-2) Watch the WM+ instruction video. After you watched it, the Wii will crash, so reboot.
-3) From now on, load the game with Alt-Dol OFF
-
-
-[10b]Metroid Prime Trilogy
-Remove the disc before starting MPT!
-
-Select a DOL
-1) First time boot the game without alt-dol (If this doesn't work, enable Dol from disc and use rs5fe_p.dol). Create a save file and exit the game.
-2) From now, always use dol from Disc and choose the dol of the game you want to play:
-rs5mp1_p.dol for Metroid Prime 1
-re5mp2_p.dol for Metroid Prime 2
-rs5mp3_p.dol for Metroid prime 3
-Then save and boot the game.
-You need to do this EVERY time you boot the game
-
-Load From SD/USB
-This is one of the most difficult games to boot from USB. First, you need to extract 3 alt-dols:
-rs5mp1_p.dol for Metroid Prime 1
-re5mp2_p.dol for Metroid Prime 2
-rs5mp3_p.dol for Metroid prime 3
-
-1) First time boot the game without alt-dol (If this doesn't work, extract rs5fe_p.dol, rename it to R3MX01.dol and boot the game with this alt-dol). Create a save file and exit the game.
-2) Now the difficult part: All 3 alt dols have to be named R3MX01.dol . For this to be possible, you have to make a folder for each one. Every time you want to change game, you have to change the alt-dol path. The alt-dol that is used decides which game is play-able in the trilogy.
-
-Method to get MP3 working (NOTE: some versions of MPT can't boot MP3, evn with this method):
-1) Install Hermes cIOS222
-2) In global game load, set Boot/standard to cIOS222 and enable 002fix
-3) In specific game load, use cIOS222
-4) Run the game with the MP3 alt-dol
-5) If the you get a black screen or an error message (Please Insert Metroid Prime 3 Disc), try inserting ANY DVD into the drive. Blank DVDs are acceptable.
-
-
-________________
-
-[11]FAQ
-
-
-Q: Does this loader work on system menu X ?
-A: Yes, it works on any system menu
-
-
-Q: The Usb loader can’t find my HDD. What do I do now?
-A: Be sure to have cIOSr9 or above (Or one of Hermes’ cIOS). If you use cIOSr12 or greater you have to try both USB ports! If this doesn’t work, check if your drive is compatible (use the devices compatibility wiki at the top of this readmii)
-
-Q: How can I use other usb devices (like Wii speak) in my games?
-A: Install cIOSr12 or above. One port will be for the HDD and the other one for the device you want to use.
-
-Q:Do I have to rename all my games manually?
-A:No. You can use wiitdb.zip to rename games automatically. More info in [2c]
-
-Q: Can I use the titles.txt to rename my games
-A: No. Support for titles.txt has been dropped. Use wiitdb.zip
-
-
-Q: I saw there is a newer rev available. Why can't update with the loader (it says no update available)?
-A: The updates for the loader are on a different server. Not every rev will be available for download. Most revs will be available from http://usbloadergx.koureio.net/downloads/revisions.
-
-
-Q: What does update all do?
-A: It updates the dol (the loader itself), the icon.png and meta.xml for HBC, the language files and wiitdb.zip
-
-Q: Can I update the full channel?
-A: Yes. If you have the channel version installed, there will be no update all function. If you do see this button, the channel is not correctly modified (see [2a]) so you can’t update it (also check the rev# in the credits, it should end with the letter c). In that case get another channel.
-
-
-Q: Where can I see my rev# ?
-A: Go to the Credits. The rev# will be at the top right corner. If it ends with c you are using the full channel.
-
-
-Q: Can I use this loader in my own language?
-A: This loader currently supports: Chinese (simple and trad.), Czech, Danish, Dutch, English, Finnish, French, German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Russian, Spanish, Swedish, Thai and Turkish.
-All languages are frequently updated by the GX language teams (I'm the Dutch translator). You can find us at http://gbatemp.net/index.php?showtopic=155252
-
-
-Q: I have a problem and the answer is not in this readmii. What do I do?
-A: You can always ask questions at the GX forum: http://forum.koureio.net/ .You can find me (tj_cool) and the GX team there as well.
\ No newline at end of file
diff --git a/Languages/czech.lang b/Languages/czech.lang
deleted file mode 100644
index 14f3cec0..00000000
--- a/Languages/czech.lang
+++ /dev/null
@@ -1,1483 +0,0 @@
-# USB Loader GX language source file.
-# czech.lang - r828
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2009-10-01 01:00+0200\n"
-"Last-Translator: David Jelinek (djelinek@hotmail.com) \n"
-"Language-Team: r823 - last version on http://djelinek.sweb.cz/_USBLoderGX/czech.lang \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr " WAD uložen jako:"
-
-msgid " could not be downloaded."
-msgstr " nelze stáhnout."
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr " byl uložen. Soubor nebyl zkontrolován. Nekteré cásti kódu nemusí fungovat s ostaními. Pokud dojde k problémum, overte text v editoru."
-
-msgid " is not on the server."
-msgstr " není na serveru"
-
-msgid "2D Cover Path"
-msgstr "Cesta k 2D obalum"
-
-msgid "3D Cover Path"
-msgstr "Cesta k 3D obalum"
-
-msgid "3D Covers"
-msgstr "3D Obaly"
-
-msgid ">> Deleting tickets..."
-msgstr ">> Odstraňuji tikety..."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> Odstraňuji tikety...CHYBA! "
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> Odstraňuji tikety...Ok! "
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> Odstraňuji titul...CHYBA! "
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> Odstraňuji titul...Ok!"
-
-msgid ">> Deleting title contents..."
-msgstr ">> Odstraňuji obsah titulu..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> Odstraňuji obsah titulu...CHYBA! "
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> Odstraňuji obsah titulu...Ok!"
-
-msgid ">> Deleting title..."
-msgstr ">> Odstraňuji titul..."
-
-msgid ">> Finishing installation..."
-msgstr ">> Ukoncuji instalaci..."
-
-msgid ">> Installing content #"
-msgstr ">> Instaluji obsah #"
-
-msgid ">> Installing ticket..."
-msgstr ">> Instaluji tiket..."
-
-msgid ">> Installing title..."
-msgstr ">> Instaluji titul..."
-
-msgid ">> Reading WAD data..."
-msgstr ">> Nacítám WAD data..."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> Nacítám WAD data...CHYBA! "
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> Nacítám WAD data...Ok! "
-
-msgid "AUTO"
-msgstr ""
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr ""
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "Všechny možnosti USB Loader GX jsou odemceny"
-
-msgid "Alternate DOL"
-msgstr "Náhradní DOL"
-
-msgid "App Language"
-msgstr "Jazyk aplikace"
-
-msgid "Apr"
-msgstr "Dub"
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "Jste si jisti?"
-
-msgid "Aug"
-msgstr "Srp"
-
-msgid "Author:"
-msgstr "Autor:"
-
-msgid "AutoInit Network"
-msgstr "Automatický start síte"
-
-msgid "BCA Codes Path"
-msgstr ""
-
-msgid "BETA revisions"
-msgstr ""
-
-msgid "Back"
-msgstr "Zpet"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "Zpet do HBC nebo Wii nabídky"
-
-msgid "Back to Loader"
-msgstr "Zpet do spouštece"
-
-msgid "Backgroundmusic"
-msgstr "Hudba na pozadí"
-
-msgid "Big thanks to:"
-msgstr "Velké díky pro:"
-
-msgid "Block IOS Reload"
-msgstr "Blokovat opetovné zavedení IOS"
-
-msgid "Boot/Standard"
-msgstr ""
-
-msgid "Boot?"
-msgstr "Spustit?"
-
-msgid "Can't be formatted"
-msgstr "Nelze naformátovat"
-
-msgid "Can't create directory"
-msgstr "Nelze vytvorit adresár"
-
-msgid "Can't create file"
-msgstr "Nelze vytvořit soubor"
-
-msgid "Can't delete:"
-msgstr "Nelze smazat:"
-
-msgid "Cancel"
-msgstr "Zrušit"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr ""
-
-msgid "Cheatfile is blank"
-msgstr "Soubor s cheaty je prázdný"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "Kliknete pro stažení obalu"
-
-msgid "Click to change game ID"
-msgstr "Kliknete pro zmenu ID hry"
-
-msgid "Clock"
-msgstr "Hodiny"
-
-msgid "Close"
-msgstr "zavrít"
-
-msgid "Code Download"
-msgstr "Stažení kódu"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "Naprogramoval: %s"
-
-msgid "Coding:"
-msgstr "Programování:"
-
-msgid "Connection lost..."
-msgstr ""
-
-msgid "Console"
-msgstr "Konzole"
-
-msgid "Console Locked"
-msgstr "Konzole uzamcena"
-
-msgid "Console should be unlocked to modify it."
-msgstr "Konzole musí být odemcena pro tuto zmenu"
-
-msgid "Continue to install game?"
-msgstr "Pokracovat pri instalaci hry"
-
-msgid "Controllevel"
-msgstr "Úroven rízení"
-
-msgid "Correct Password"
-msgstr "Správné heslo"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "Nelze vytvorit GCT soubor"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "Nelze inicializovat DIP modul!"
-
-msgid "Could not initialize network!"
-msgstr "Nelze inicializovat sítové pripojení"
-
-msgid "Could not open Disc"
-msgstr "Nelze otevrít disk"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "Nelze uložit."
-
-msgid "Cover Download"
-msgstr "Stažení obalu"
-
-msgid "Create"
-msgstr "Vytvorit"
-
-msgid "Credits"
-msgstr "Zásluhy"
-
-msgid "Custom Paths"
-msgstr "Vlastní cesty"
-
-msgid "DOL Path"
-msgstr "Cesta k DOL"
-
-msgid "Dec"
-msgstr "List"
-
-msgid "Default"
-msgstr "Puvodní"
-
-msgid "Default Gamesettings"
-msgstr "Puvodní nastavení her"
-
-msgid "Default Settings"
-msgstr "Puvodní nastavení"
-
-msgid "Delete"
-msgstr "Smazat"
-
-msgid "Delete ?"
-msgstr "Smazat?"
-
-msgid "Delete Cheat GCT"
-msgstr "Smazat Cheat GCT"
-
-msgid "Delete Cheat TXT"
-msgstr "Smazat Cheat TXT"
-
-msgid "Delete Cover Artwork"
-msgstr "Smazat obal krabicky"
-
-msgid "Delete Disc Artwork"
-msgstr "Smazat potisk DVD"
-
-msgid "Design:"
-msgstr ""
-
-msgid "Developed by"
-msgstr "Vyvinul"
-
-msgid "Directory does not exist!"
-msgstr "Adresár neexistuje!"
-
-msgid "Disc Artwork Download"
-msgstr "Stažení potisku DVD"
-
-msgid "Disc Artwork Path"
-msgstr "Cesta k potiskum DVD"
-
-msgid "Disc Images"
-msgstr "Potisky DVD"
-
-msgid "Display"
-msgstr "Zobrazení"
-
-msgid "Display as a carousel"
-msgstr "Zobrazit jako karusel"
-
-msgid "Display as a grid"
-msgstr "Zobrazit do mrížky"
-
-msgid "Display as a list"
-msgstr "Zobrait jako seznam"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "Opravdu smazat:"
-
-msgid "Do you want to apply it now?"
-msgstr ""
-
-msgid "Do you want to change language?"
-msgstr "Prejete si zmenit jazyk?"
-
-msgid "Do you want to download this theme?"
-msgstr "Prejete si stáhnout toto téma?"
-
-msgid "Do you want to format:"
-msgstr "Prejete si formátovat"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "Prejete si použít jiný DOL, který je správný?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "Prejete si zaktualizovat vsechny jazykové soubory?"
-
-msgid "Done!"
-msgstr "Hotovo!"
-
-msgid "Download"
-msgstr "Stažení"
-
-msgid "Download Boxart image?"
-msgstr "Stáhnout obal krabicky?"
-
-msgid "Download Discart image?"
-msgstr "Stáhnout potisk DVD?"
-
-msgid "Download Now"
-msgstr "Stáhnout nyní"
-
-msgid "Download failed."
-msgstr "Stažení selhalo."
-
-msgid "Download finished"
-msgstr "Stažení dokonceno"
-
-msgid "Download request failed."
-msgstr "Požadavek na stažení selhal."
-
-msgid "Downloading Page List:"
-msgstr "Stahuji stránku seznamu:"
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "Stahuji soubor"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr "Stahuji obrázek:"
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "CHYBA"
-
-msgid "ERROR:"
-msgstr "CHYBA:"
-
-msgid "ERROR: Can't set up theme."
-msgstr ""
-
-msgid "Error"
-msgstr "Chyba"
-
-msgid "Error !"
-msgstr "Chyba !"
-
-msgid "Error 002 fix"
-msgstr "Oprava chyby 002"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "Nelze císt disk"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "Chyba behem prenosu dat."
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "Chyba..."
-
-msgid "Error:"
-msgstr "Chyba:"
-
-msgid "Extracting files..."
-msgstr "Rozbaluji soubory..."
-
-msgid "FAT: Use directories"
-msgstr ""
-
-msgid "Failed formating"
-msgstr "Neúspešné formátování"
-
-msgid "Failed to extract."
-msgstr "Nemohu rozbalit."
-
-msgid "Failed to open partition"
-msgstr "Nelze otevrít diskový oddíl"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr "Ún"
-
-msgid "File not found."
-msgstr "Soubor nenalezen"
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "Ukoncuji instalaci... Ok!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr ""
-
-msgid "Format"
-msgstr "Formát"
-
-msgid "Formatting, please wait..."
-msgstr "Formátuji, cekejte prosím ..."
-
-msgid "Free Space"
-msgstr "Volné místo"
-
-msgid "Full Shutdown"
-msgstr "Úplné vypnutí"
-
-msgid "GCT Cheatcodes Path"
-msgstr "Cesta pro cheat kódy"
-
-msgid "GCT File created"
-msgstr "Soubor GCT vytvoren"
-
-msgid "GUI Settings"
-msgstr "Nastavení GUI"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr ""
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "Jazyk hry"
-
-msgid "Game Load"
-msgstr "Nahrání hry"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "Velikost hry"
-
-msgid "Game Sound Mode"
-msgstr "Zvukový mód hry"
-
-msgid "Game Sound Volume"
-msgstr "Nastavení hlasitosti hry"
-
-msgid "Game is already installed:"
-msgstr "Hra je již nainstalována:"
-
-msgid "Game partition"
-msgstr ""
-
-msgid "Games"
-msgstr "Hry"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr "Hlavní menu"
-
-msgid "Homebrew Apps Path"
-msgstr "Cesta pro Homebrew aplikace"
-
-msgid "Homebrew Launcher"
-msgstr "Spouštec Homebrew"
-
-msgid "Hour"
-msgstr "Hodina"
-
-msgid "How do you want to update?"
-msgstr "Jak si prejete provést aktualizaci?"
-
-msgid "How to Shutdown?"
-msgstr "Jakým zpusobem ukoncit?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr ""
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "Príchozí soubor %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "Príchozí soubor %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "Inicializuji sítové pripojení"
-
-msgid "Insert Disk"
-msgstr "Vložte disk"
-
-msgid "Insert a Wii Disc!"
-msgstr "Vložte Wii disk"
-
-msgid "Insert an SD-Card to save."
-msgstr "Vložte SD kartu pro uložení."
-
-msgid "Insert an SD-Card to use this option."
-msgstr "Vložte SD kartu pro tuto možnost"
-
-msgid "Install"
-msgstr "Instalace"
-
-msgid "Install Error!"
-msgstr "Chyba pri instalaci"
-
-msgid "Install a game"
-msgstr "Nainstalovat hru"
-
-msgid "Install partitions"
-msgstr ""
-
-msgid "Installing content... Ok!"
-msgstr "Instaluji obsah... Ok!"
-
-msgid "Installing game:"
-msgstr "Instalace hry:"
-
-msgid "Installing ticket... Ok!"
-msgstr "Instaluji tiket... Ok!"
-
-msgid "Installing title... Ok!"
-msgstr "Instaluji titul... Ok!"
-
-msgid "Installing wad"
-msgstr "Instaluji WAD"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "Zdá se, že máte informace, které by pro nás mohly být užitecné. Odešlete prosím tuto informaci na náš DEV tým."
-
-msgid "Jan"
-msgstr "Led"
-
-msgid "July"
-msgstr "Cervenec"
-
-msgid "June"
-msgstr "Cerven"
-
-msgid "Keep"
-msgstr "Držet"
-
-msgid "Keyboard"
-msgstr "Klávesnice"
-
-msgid "Language File"
-msgstr "Jazykový soubor"
-
-msgid "Language change:"
-msgstr "Zmena jazyka:"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "Cesta k jazykum zmenena"
-
-msgid "Load"
-msgstr "Spustit"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "Nahrát soubor z: %s ?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "Spustit tento DOL jako náhradní DOL?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "Nahrávám puvodní jazyk"
-
-msgid "Loading standard music."
-msgstr "Nahrávám puvodní hudbu"
-
-msgid "Lock Console"
-msgstr "Zamcení konzole"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr "Brez"
-
-msgid "Mark new games"
-msgstr ""
-
-msgid "May"
-msgstr "Kvet"
-
-msgid "Missing files"
-msgstr "Chybející soubory"
-
-msgid "Mount DVD drive"
-msgstr "Pripojit DVD mechaniku"
-
-msgid "Music Loop Mode"
-msgstr ""
-
-msgid "Music Volume"
-msgstr "Hlasitost hudby"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "Detekován nový disk"
-
-msgid "No"
-msgstr "Ne"
-
-msgid "No Cheatfile found"
-msgstr "Nebyl nalezen soubor s cheaty"
-
-msgid "No DOL file found on disc."
-msgstr "Na disku nebyl nalezen DOL soubor."
-
-msgid "No SD-Card inserted!"
-msgstr "Není vložena SD karta"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "Nebyly vybrány žádné cheaty"
-
-msgid "No data could be read."
-msgstr "Nelze císt data?"
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "Nechybí žádný soubor!"
-
-msgid "No new updates."
-msgstr "Není dostupná žádná aktualizace."
-
-msgid "No themes found on the site."
-msgstr "Žádné téma nebylo nalezeno na serveru."
-
-msgid "Not a WAD file."
-msgstr ""
-
-msgid "Not a Wii Disc"
-msgstr "Toto není Wii disk"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "Není dostatek volné pameti."
-
-msgid "Not enough free space!"
-msgstr "Není dostatek volného místa!"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "Nepodporovaný formát!"
-
-msgid "Nov"
-msgstr "List"
-
-msgid "OFF"
-msgstr "Vypnuto"
-
-msgid "OK"
-msgstr ""
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "Ríj"
-
-msgid "Official Site:"
-msgstr "Oficiální místo:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "Rodicovský zámek"
-
-msgid "Partition"
-msgstr "Oddíl"
-
-msgid "Password"
-msgstr "Heslo"
-
-msgid "Password Changed"
-msgstr "Heslo zmeneno"
-
-msgid "Password has been changed"
-msgstr "Heslo bylo zmeneno"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "Napište toto URL do prohlížece pro stažení WiiTDB.zip."
-
-msgid "Patch Country Strings"
-msgstr "Úprava nastvení zeme"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "Vyberte ze seznamu"
-
-msgid "Play Count"
-msgstr "Spušteno"
-
-msgid "Play Next"
-msgstr ""
-
-msgid "Play Previous"
-msgstr ""
-
-msgid "Playing Music:"
-msgstr ""
-
-msgid "Please wait..."
-msgstr "Cekejte prosím..."
-
-msgid "Power off the Wii"
-msgstr "Vypnout Wii"
-
-msgid "Prompts Buttons"
-msgstr "Potvrzovací tlacítka"
-
-msgid "Published by"
-msgstr "Publikoval "
-
-msgid "Quick Boot"
-msgstr "Rychlé zavedení"
-
-msgid "Reading WAD data... Ok!"
-msgstr "Nacítám WAD data... Ok!"
-
-msgid "Receiving file from:"
-msgstr "Prijímám soubor z:"
-
-msgid "Released"
-msgstr "Uvolnil"
-
-msgid "Reload SD"
-msgstr "Znovunactení SD"
-
-msgid "Remove update"
-msgstr ""
-
-msgid "Rename Game on WBFS"
-msgstr "Prejmenovat hru na WBFS"
-
-msgid "Reset BG Music"
-msgstr ""
-
-msgid "Reset Playcounter"
-msgstr "Vynulovat cítac spuštení"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "Restartuji..."
-
-msgid "Return"
-msgstr "Návrat"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "Návrat do Wii nabídky"
-
-msgid "Rumble"
-msgstr "Vibrace"
-
-msgid "SFX Volume"
-msgstr "Hlasitost SFX"
-
-msgid "Save"
-msgstr "Uložit"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "Uložit seznam her do"
-
-msgid "Saved"
-msgstr "Uloženo"
-
-msgid "Screensaver"
-msgstr "Sporic obrazovky"
-
-msgid "Select"
-msgstr ""
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "Vyberte DOL"
-
-msgid "Sept"
-msgstr "Zárí"
-
-msgid "Set Search-Filter"
-msgstr "Nastavit vyhledávací filtr"
-
-msgid "Settings"
-msgstr "Nastavení"
-
-msgid "Shutdown System"
-msgstr "Ukoncit systém"
-
-msgid "Shutdown to Idle"
-msgstr "Pauza"
-
-msgid "Sort alphabetically"
-msgstr "Trídení dle abecedy"
-
-msgid "Sort by rank"
-msgstr "Trídit podle hodnocení"
-
-msgid "Sort order by most played"
-msgstr "Trídení podle spuštení"
-
-msgid "Sound"
-msgstr "Zvuk"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "Speciální podekování pro"
-
-msgid "Success"
-msgstr "Úspešne"
-
-msgid "Success:"
-msgstr "Úspešne:"
-
-msgid "Successfully Saved"
-msgstr "Úspešne uloženo"
-
-msgid "Successfully Updated"
-msgstr "Úspešne zaktualizováno"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr ""
-
-msgid "Successfully deleted:"
-msgstr "Úspešne smazáno:"
-
-msgid "Successfully extracted theme."
-msgstr "Úspešne rozbalené téma."
-
-msgid "Successfully installed:"
-msgstr "Úspešne nainstalováno"
-
-msgid "TXT Cheatcodes Path"
-msgstr "Cesta k TXT cheatum"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "Zadaný adresár neexistuje. Chcete ho vytvorit?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr "Cesta pro uložení témat"
-
-msgid "Theme Downloader"
-msgstr "Stahování témat"
-
-msgid "Theme Path"
-msgstr "Cesta k tématum"
-
-msgid "Theme Title:"
-msgstr "Název tématu"
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "Zbývající cas:"
-
-msgid "Title Launcher"
-msgstr "Spouštec kanálu"
-
-msgid "Titles from WiiTDB"
-msgstr "Názvy z WiiTDB"
-
-msgid "Tooltips"
-msgstr "Popisky"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr "Prenos selhal"
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "USB zarízení nenalezeno"
-
-msgid "USB Loader GX is protected"
-msgstr "USB Loader GX je zabezpecen"
-
-msgid "Uninstall"
-msgstr "Odinstalace"
-
-msgid "Uninstall Game"
-msgstr "Odinstalace hry"
-
-msgid "Uninstall Menu"
-msgstr "Menu odinstalací"
-
-msgid "Uninstalling wad"
-msgstr "Odinstalace WAD"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "Odemknete konzoli pro tuto akci."
-
-msgid "Unsupported format, try to extract manually."
-msgstr "Nepodporovaný formát"
-
-msgid "Update"
-msgstr "Aktualizace"
-
-msgid "Update All"
-msgstr "Plná aktualizace"
-
-msgid "Update DOL"
-msgstr "Aktualizace DOL"
-
-msgid "Update Files"
-msgstr "Zaktualizuj soubory"
-
-msgid "Update Path"
-msgstr "Cesta pro aktualizaci"
-
-msgid "Update all Language Files"
-msgstr "Zaktualizuj vsechny jazykové soubory"
-
-msgid "Update failed"
-msgstr "Aktualizace selhala"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "Aktualizuji jazykové soubory:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "Odeslaný ZIP soubor nainstalován do adresáre homebrew"
-
-msgid "VIDTV Patch"
-msgstr "VIDTV korekce"
-
-#, c-format
-msgid "Version: %s"
-msgstr "Verze: %s"
-
-msgid "Video Mode"
-msgstr "Video mód"
-
-msgid "WIP Patches Path"
-msgstr ""
-
-msgid "Waiting for USB Device"
-msgstr "Cekám na zarízení USB"
-
-msgid "Waiting..."
-msgstr "Cekám..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "Co si prejete zaktualizovat?"
-
-msgid "WiFi Features"
-msgstr "WiFi možnosti"
-
-msgid "Wii Menu"
-msgstr "Wii menu"
-
-msgid "Wii Settings"
-msgstr "Nastavení Wii"
-
-msgid "WiiTDB Files"
-msgstr "WiiTDB Soubory"
-
-msgid "WiiTDB Path"
-msgstr "Cesta k WiiTDB"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr "Wii svetlo"
-
-msgid "Wrong Password"
-msgstr "Špatné heslo"
-
-msgid "Yes"
-msgstr "Ano"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr ""
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "Vaše URL bylo uloženo v %sWiiTDB_URL.txt."
-
-msgid "and translaters for language files updates"
-msgstr "a prekladatele pro aktualizaci jazykových souborů"
-
-msgid "available"
-msgstr "dostupný"
-
-msgid "does not exist!"
-msgstr "neexistuje!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "neexistuje. Nahrávání hry bez cheatu."
-
-msgid "files left"
-msgstr "souboru zbývá"
-
-msgid "files not found on the server!"
-msgstr "souboru nenalezeno na serveru"
-
-msgid "for FAT/NTFS support"
-msgstr ""
-
-msgid "for Ocarina"
-msgstr "za Ocarina"
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "za WiiTDB a hostování obalu / potisku DVD"
-
-msgid "for diverse patches"
-msgstr "za ruzné opravy"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "za jeho hrozný nástroj LibWiiGui"
-
-msgid "for hosting the themes"
-msgstr "pro hostování témat"
-
-msgid "for hosting the update files"
-msgstr "za umístení souboru pro aktualizaci "
-
-msgid "for the USB Loader source"
-msgstr "za zdrojový kód pro USB Loader"
-
-msgid "formatted!"
-msgstr "formátováno!"
-
-msgid "free"
-msgstr "volné"
-
-msgid "not set"
-msgstr "nenastaveno"
-
-msgid "of"
-msgstr "z "
-
-msgid "seconds left"
-msgstr "sekund zbývá"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (Každý)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (Díte 7+)"
-
-#~ msgid "1 hour"
-#~ msgstr "1 hodina"
-
-#~ msgid "10 min"
-#~ msgstr "10 minut"
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (Mladistvý 12+)"
-
-#~ msgid "20 min"
-#~ msgstr "20 minut"
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (Zralý 16+)"
-
-#~ msgid "3 min"
-#~ msgstr "3 minuty"
-
-#~ msgid "30 min"
-#~ msgstr "30 minut"
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (Pouze dospelí 18+)"
-
-#~ msgid "5 min"
-#~ msgstr "5 minut"
-
-#~ msgid "An Error occured"
-#~ msgstr "Došlo k chybe"
-
-#~ msgid "Both"
-#~ msgstr "Oboje"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "Zjištuji dostupné aktualiazce"
-
-#~ msgid "Console Default"
-#~ msgstr "Puvodní nastavení konzole"
-
-#~ msgid "Customs/Original"
-#~ msgstr "Upravené/Originál"
-
-#~ msgid "Disc Default"
-#~ msgstr "Puvodní nastavení disku"
-
-#~ msgid "Downloading"
-#~ msgstr "Stahování"
-
-#~ msgid "Dutch"
-#~ msgstr "Dánsky"
-
-#~ msgid "English"
-#~ msgstr "Anglicky"
-
-#~ msgid "French"
-#~ msgstr "Francouzky"
-
-#~ msgid "Game ID"
-#~ msgstr "ID hry"
-
-#~ msgid "Game Region"
-#~ msgstr "Region hry"
-
-#~ msgid "German"
-#~ msgstr "Nemecky"
-
-#~ msgid "Italian"
-#~ msgstr "Italsky"
-
-#~ msgid "Japanese"
-#~ msgstr "Japonsky"
-
-#~ msgid "Korean"
-#~ msgstr "Korejsky"
-
-#~ msgid "Left"
-#~ msgstr "Vlevo"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "Jako hlavní menu"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "Nahrát z SD/USB"
-
-#~ msgid "Locked"
-#~ msgstr "Zamceno"
-
-#~ msgid "Loop Sound"
-#~ msgstr "Zvuková smyčka"
-
-#~ msgid "Neither"
-#~ msgstr "Žádný"
-
-#~ msgid "Next"
-#~ msgstr "Další"
-
-#~ msgid "Normal"
-#~ msgstr "Normální"
-
-#~ msgid "ON"
-#~ msgstr "Zapnuto"
-
-#~ msgid "Only Customs"
-#~ msgstr "Pouze Upravené"
-
-#~ msgid "Only Original"
-#~ msgstr "Pouze originál"
-
-#~ msgid "Only for Install"
-#~ msgstr "Pouze pro instalaci"
-
-#~ msgid "Original/Customs"
-#~ msgstr "Originál/Upravené"
-
-#~ msgid "Prev"
-#~ msgstr "Predchozí"
-
-#~ msgid "Right"
-#~ msgstr "Vpravo"
-
-#~ msgid "SChinese"
-#~ msgstr "Cínsky"
-
-#~ msgid "Sound+BGM"
-#~ msgstr "Zvuk+BGM"
-
-#~ msgid "Sound+Quiet"
-#~ msgstr "Zvuk+ticho"
-
-#~ msgid "Spanish"
-#~ msgstr "Španelsky"
-
-#~ msgid "System Default"
-#~ msgstr "Puvodní nastavení systému"
-
-#~ msgid "TChinese"
-#~ msgstr "Cínsky"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "WAD soubor byl nainstalován, ale nelze smazat z SD karty"
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "Instalace WAD souboru selhala s chybou %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "Nelze otevrít WAD, který byl nyní stažen (%s)."
-
-#~ msgid "Unlocked"
-#~ msgstr "Odemceno"
-
-#~ msgid "Update to"
-#~ msgstr "Aktualizováno na"
-
-#~ msgid "Updating"
-#~ msgstr "Aktualizuji"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "Aktualizuji jazykové soubory..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "Aktualizuji WiiTDB.zip"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "Korekce širokoúhlé obrazovky"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "Zpet do Wii nabídky"
-
-#~ msgid "Channels"
-#~ msgstr "Kanály"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "Kontroluji existující kresby"
-
-#~ msgid "Confirm"
-#~ msgstr "Potvrdit"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "Nemohu nalézt WBFS oddíl."
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "Nemohu otevrít WBFS oddíl."
-
-#~ msgid "Could not read the disc."
-#~ msgstr "Nelze císt disk"
-
-#~ msgid "Could not set USB."
-#~ msgstr "Nelze nastavit USB"
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "Cesta k obalum zmenena"
-
-#~ msgid "DOL path changed"
-#~ msgstr "Cesta k DOL zmenena"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "Cesta k diskum zmenena"
-
-#~ msgid "Display favorites"
-#~ msgstr "Zobrazit oblíbené"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "Chcete to zkusit znovu za 30 sekund?"
-
-#~ msgid "Force"
-#~ msgstr "Síla"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "Cesta pro cheat kódy zmenena"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "Cesta pro Homebrew aplikace zmenena"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "Vložte SD kartu pro stažení potisku DVD."
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "Nejspíše má velikost, která není delitelná 4."
-
-#~ msgid "Network init error"
-#~ msgstr "Chyba pri inicializaci síte"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr "Nebyl nalezen .dol ani .elf soubor."
-
-#~ msgid "No Favorites"
-#~ msgstr "Žádné oblíbené"
-
-#~ msgid "No USB Device"
-#~ msgstr "Žádné zarízení USB"
-
-#~ msgid "No USB Device found."
-#~ msgstr "Nebylo nalezeno zarízení USB"
-
-#~ msgid "Normal Covers"
-#~ msgstr "Normální obaly"
-
-#~ msgid "Not Found"
-#~ msgstr "Nenalezeno"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "To není DOL/ELF soubor."
-
-#~ msgid "Save Failed"
-#~ msgstr "Uložení selhalo"
-
-#~ msgid "Selected DOL"
-#~ msgstr "Vybraný DOL"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "Cesta k TXT cheatum zmenena"
-
-#~ msgid "Theme Download Path changed"
-#~ msgstr "Cesta pro uložení témat zmenena"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "Cesta k tématum zmenena"
-
-#~ msgid "Update Path changed."
-#~ msgstr "Cesta pro aktualizaci zmenena"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "Cesta k WiiTDB zmenena"
-
-#~ msgid "You are about to delete "
-#~ msgstr "Pokoušíte se smazat "
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "Vybíráte zobrazení oblíbených, ale žádné jste dosud nevybral"
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "Pokusili jste se nahrát špatný obraz"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "neexistuje. Neco jsi zvoral ty pako."
-
-#~ msgid "file left"
-#~ msgstr "soubor zbývá"
diff --git a/Languages/danish.lang b/Languages/danish.lang
deleted file mode 100644
index 66573993..00000000
--- a/Languages/danish.lang
+++ /dev/null
@@ -1,1543 +0,0 @@
-# USB Loader GX language source file.
-# danish.lang - r937
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2009-10-01 01:00+0200\n"
-"Last-Translator: dorf[dk]\n"
-"Language-Team: dorf[dk]\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr " WAD gemt som:"
-
-msgid " could not be downloaded."
-msgstr " kunne ikke downloades."
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr " er blevet gemt. Koderne er ikke blevet kontrolleret. Nogle af koderne virker måske ikke samtidigt. Hvis der er problemer, åbn da tekstfilen i en editor for at få mere information."
-
-msgid " is not on the server."
-msgstr " er ikke på serveren."
-
-msgid "2D Cover Path"
-msgstr "Sti til 2-d covers"
-
-msgid "3D Cover Path"
-msgstr "Sti til 3-d covers"
-
-msgid "3D Covers"
-msgstr "3D-Covers"
-
-msgid ">> Deleting tickets..."
-msgstr ">> Sletter tickets..."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> Sletter tickets...FEJL!"
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> Sletter tickets...Ok!"
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> Sletter titel...FEJL!"
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> Sletter titel...Ok!"
-
-msgid ">> Deleting title contents..."
-msgstr ">> Sletter titelindhold..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> Sletter titelindhold...FEJL!"
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> Sletter titelindhold...Ok!"
-
-msgid ">> Deleting title..."
-msgstr ">> Sletter titel..."
-
-msgid ">> Finishing installation..."
-msgstr ">> Færdiggør installationen..."
-
-msgid ">> Installing content #"
-msgstr ">> Installerer content #"
-
-msgid ">> Installing ticket..."
-msgstr ">> Installerer ticket..."
-
-msgid ">> Installing title..."
-msgstr ">> Installerer titel..."
-
-msgid ">> Reading WAD data..."
-msgstr ">> Læser WAD-data"
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> Læser WAD-data...FEJL!"
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> Læser WAD-data...Ok!"
-
-msgid "AUTO"
-msgstr ""
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr "Alle partitioner"
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "Alle USB Loader GX's funktioner er låst op."
-
-msgid "Alternate DOL"
-msgstr "Alternativ DOL"
-
-msgid "App Language"
-msgstr "Programsprog"
-
-msgid "Apr"
-msgstr ""
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "Er du sikker?"
-
-msgid "Aug"
-msgstr ""
-
-msgid "Author:"
-msgstr "Forfatter:"
-
-msgid "AutoInit Network"
-msgstr "AutoInit net"
-
-msgid "BCA Codes Path"
-msgstr "Sti til BCA koder"
-
-msgid "BETA revisions"
-msgstr "BETA-versioner"
-
-msgid "Back"
-msgstr "Tilbage"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "Tilbage til HBC eller Wii-menuen"
-
-msgid "Back to Loader"
-msgstr "Tilbage til Loaderen"
-
-msgid "Backgroundmusic"
-msgstr "Baggrundsmusik"
-
-msgid "Big thanks to:"
-msgstr "En stor tak til:"
-
-msgid "Block IOS Reload"
-msgstr "Blokér IOS-reload"
-
-msgid "Boot/Standard"
-msgstr ""
-
-msgid "Boot?"
-msgstr "Genstart?"
-
-msgid "Can't be formatted"
-msgstr "Kan ikke formatteres"
-
-msgid "Can't create directory"
-msgstr "Kan ikke lave ny mappe"
-
-msgid "Can't create file"
-msgstr "Kan ikke oprette fil"
-
-msgid "Can't delete:"
-msgstr "Kan ikke slettes:"
-
-msgid "Cancel"
-msgstr "Annullér"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr "Ændre sti til musik"
-
-msgid "Cheatfile is blank"
-msgstr "Cheatfilen er tom"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "Klik for at downloade covers"
-
-msgid "Click to change game ID"
-msgstr "Klik for at ændre spil-ID"
-
-msgid "Clock"
-msgstr "Ur"
-
-msgid "Close"
-msgstr "Luk"
-
-msgid "Code Download"
-msgstr "Download af koder"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "Programmeret af: %s"
-
-msgid "Coding:"
-msgstr "Programmering:"
-
-msgid "Connection lost..."
-msgstr "Forbindelsen er væk..."
-
-msgid "Console"
-msgstr "Konsol"
-
-msgid "Console Locked"
-msgstr "Konsollen er låst"
-
-msgid "Console should be unlocked to modify it."
-msgstr "Konsollen skal være låst op for ændre dette."
-
-msgid "Continue to install game?"
-msgstr "Fortsæt med at installere spillet?"
-
-msgid "Controllevel"
-msgstr "Kontrolniveau"
-
-msgid "Correct Password"
-msgstr "Korrekt Password"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "Kunne ikke oprette GCT-fil"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "Kunne ikke initialisere DIP-modul!"
-
-msgid "Could not initialize network!"
-msgstr "Kunne ikke initialisere netforbindelse!"
-
-msgid "Could not open Disc"
-msgstr "Kunne ikke åbne DVD"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "Kunne ikke gemme."
-
-msgid "Cover Download"
-msgstr "Cover-download"
-
-msgid "Create"
-msgstr "Opret"
-
-msgid "Credits"
-msgstr "Lavet af:"
-
-msgid "Custom Paths"
-msgstr "Sti-indstillinger"
-
-msgid "DOL Path"
-msgstr "Stil til DOL"
-
-msgid "Dec"
-msgstr ""
-
-msgid "Default"
-msgstr "Standard"
-
-msgid "Default Gamesettings"
-msgstr "Standard spil-indstillinger"
-
-msgid "Default Settings"
-msgstr "Standardindstillinger"
-
-msgid "Delete"
-msgstr "Slet"
-
-msgid "Delete ?"
-msgstr "Slet?"
-
-msgid "Delete Cheat GCT"
-msgstr "Slet cheat GCT"
-
-msgid "Delete Cheat TXT"
-msgstr "Slet Cheat TXT"
-
-msgid "Delete Cover Artwork"
-msgstr "Slet boxart"
-
-msgid "Delete Disc Artwork"
-msgstr "Slet DVD-billede"
-
-msgid "Design:"
-msgstr ""
-
-msgid "Developed by"
-msgstr "Udviklet af"
-
-msgid "Directory does not exist!"
-msgstr "Mappen eksisterer ikke!"
-
-msgid "Disc Artwork Download"
-msgstr "Download DVD-billeder"
-
-msgid "Disc Artwork Path"
-msgstr "Sti til DVD-billeder"
-
-msgid "Disc Images"
-msgstr "DVD-billeder"
-
-msgid "Display"
-msgstr "Spilinfo."
-
-msgid "Display as a carousel"
-msgstr "Vis som karusel"
-
-msgid "Display as a grid"
-msgstr "Vis som tabel"
-
-msgid "Display as a list"
-msgstr "Vis som liste"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "Vil du slette:"
-
-msgid "Do you want to apply it now?"
-msgstr "Skal det aktiveres nu?"
-
-msgid "Do you want to change language?"
-msgstr "Skal sproget ændres?"
-
-msgid "Do you want to download this theme?"
-msgstr "Skal dette tema downloades?"
-
-msgid "Do you want to format:"
-msgstr "Vil du formatere:"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "Skal den alternative DOL, der med sikkerhed er korrekt, bruges?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "Skal alle sprogfiler opdateres/downloades?"
-
-msgid "Done!"
-msgstr "Færdig!"
-
-msgid "Download"
-msgstr ""
-
-msgid "Download Boxart image?"
-msgstr "Download boxart-billede?"
-
-msgid "Download Discart image?"
-msgstr "Download DVD-billede?"
-
-msgid "Download Now"
-msgstr "Download nu"
-
-msgid "Download failed."
-msgstr "Download mislykkedes."
-
-msgid "Download finished"
-msgstr "Download færdig"
-
-msgid "Download request failed."
-msgstr "Anmodning om download mislykkedes."
-
-msgid "Downloading Page List:"
-msgstr "Downloader side:"
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "Downloader fil"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr "Downloader billede:"
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "FEJL"
-
-msgid "ERROR:"
-msgstr "FEJL:"
-
-msgid "ERROR: Can't set up theme."
-msgstr "FEJL: Temaet kan ikke bruges."
-
-msgid "Error"
-msgstr "Fejl"
-
-msgid "Error !"
-msgstr "Fejl!"
-
-msgid "Error 002 fix"
-msgstr "Error 002 fix"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "DVDen kunne ikke læses"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "Fejl under overførsel af data."
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "Fejl..."
-
-msgid "Error:"
-msgstr "Fejl:"
-
-msgid "Extracting files..."
-msgstr "Pakker filer ud..."
-
-msgid "FAT: Use directories"
-msgstr "FAT: Brug mapper"
-
-msgid "Failed formating"
-msgstr "Formateringen mislykkedes"
-
-msgid "Failed to extract."
-msgstr "Udpakningen mislykkedes."
-
-msgid "Failed to open partition"
-msgstr "Kunne ikke åbne partition"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr ""
-
-msgid "File not found."
-msgstr "Fil ikke fundet."
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "Afslutter installationen... Ok!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr ""
-
-msgid "Format"
-msgstr "Formater"
-
-msgid "Formatting, please wait..."
-msgstr "Formaterer, vent venligst..."
-
-msgid "Free Space"
-msgstr "Ledig plads"
-
-msgid "Full Shutdown"
-msgstr "Sluk helt"
-
-msgid "GCT Cheatcodes Path"
-msgstr "Sti til cheatcodes"
-
-msgid "GCT File created"
-msgstr "GCT-fil oprettet"
-
-msgid "GUI Settings"
-msgstr "Konfigurér GUI"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr "GXtheme.cfg blev ikke fundet i nogle undermapper"
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "Sprog"
-
-msgid "Game Load"
-msgstr "Spilindstillinger"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "Spilstørrelse"
-
-msgid "Game Sound Mode"
-msgstr "Spillyd"
-
-msgid "Game Sound Volume"
-msgstr "Spillyd lydstyrke"
-
-msgid "Game is already installed:"
-msgstr "Dette spil er allerede installeret:"
-
-msgid "Game partition"
-msgstr "Spilpartition"
-
-msgid "Games"
-msgstr "Spil"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr ""
-
-msgid "Homebrew Apps Path"
-msgstr "Sti til homebrew-programmer"
-
-msgid "Homebrew Launcher"
-msgstr "Homebrew-starter"
-
-msgid "Hour"
-msgstr "timer"
-
-msgid "How do you want to update?"
-msgstr "Hvordan skal der opdateres?"
-
-msgid "How to Shutdown?"
-msgstr "Hvordan skal der slukkes?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "Hvis der ikke er netforbindelse, tryk da på 1 for at få en URL til WiiTDB.zip"
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "Henter fil %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "Henter fil %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "Initialiserer netforbindelse"
-
-msgid "Insert Disk"
-msgstr "Indsæt en DVD"
-
-msgid "Insert a Wii Disc!"
-msgstr "Indsæt en Wii-DVD!"
-
-msgid "Insert an SD-Card to save."
-msgstr "Indsæt et SD-kort for at gemme."
-
-msgid "Insert an SD-Card to use this option."
-msgstr "Indsæt et SD-kort for at bruge denne indstilling."
-
-msgid "Install"
-msgstr "Installér"
-
-msgid "Install Error!"
-msgstr "Installationsfejl!"
-
-msgid "Install a game"
-msgstr "Installér nyt spil"
-
-msgid "Install partitions"
-msgstr "Installationspartitioner"
-
-msgid "Installing content... Ok!"
-msgstr "Installerer indhold... Ok!"
-
-msgid "Installing game:"
-msgstr "Installerer spillet:"
-
-msgid "Installing ticket... Ok!"
-msgstr "Installerer ticket... Ok!"
-
-msgid "Installing title... Ok!"
-msgstr "Installerer titel... Ok!"
-
-msgid "Installing wad"
-msgstr "Installerer WAD"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "Det ser ud til, at du har information, der vil kunne hjælpe os. Vær rar at sende denne information til udviklerne."
-
-msgid "Jan"
-msgstr ""
-
-msgid "July"
-msgstr "Juli"
-
-msgid "June"
-msgstr "Juni"
-
-msgid "Keep"
-msgstr "Behold"
-
-msgid "Keyboard"
-msgstr "Tastatur"
-
-msgid "Language File"
-msgstr "Sprog Fil"
-
-msgid "Language change:"
-msgstr "Skift sprog:"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "Sti til sprogfiler ændret."
-
-msgid "Load"
-msgstr "Indlæs"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "Indlæs fil fra %s ?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "Indlæs denne DOL som alternativ DOL?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "Indlæser standardsprog."
-
-msgid "Loading standard music."
-msgstr "Indlæser standardmusik."
-
-msgid "Lock Console"
-msgstr "Lås konsol"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr ""
-
-msgid "Mark new games"
-msgstr "Makér nye spil"
-
-msgid "May"
-msgstr "Maj"
-
-msgid "Missing files"
-msgstr "Manglende filer"
-
-msgid "Mount DVD drive"
-msgstr "Mount DVD-drev"
-
-msgid "Music Loop Mode"
-msgstr "Musik i løkke"
-
-msgid "Music Volume"
-msgstr "Lydstyrke"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "Har opdaget ny DVD"
-
-msgid "No"
-msgstr "Nej"
-
-msgid "No Cheatfile found"
-msgstr "Cheat-fil ikke fundet"
-
-msgid "No DOL file found on disc."
-msgstr "Der blev ikke fundet nogle DOL-filer på DVDen."
-
-msgid "No SD-Card inserted!"
-msgstr "Intet SD-kort fundet!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "Der blev ikke valgt nogle cheats"
-
-msgid "No data could be read."
-msgstr "Data kunne ikke læses."
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "Ingen filer mangler!"
-
-msgid "No new updates."
-msgstr "Ingen nye opdateringer."
-
-msgid "No themes found on the site."
-msgstr "Der blev ikke fundet nogle temaer på denne site."
-
-msgid "Not a WAD file."
-msgstr "Ikke en WAD-fil."
-
-msgid "Not a Wii Disc"
-msgstr "Ikke en Wii-DVD"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "Ikke nok fri hukommelse."
-
-msgid "Not enough free space!"
-msgstr "Ikke nok ledig plads!"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "Ikke et understøttet format"
-
-msgid "Nov"
-msgstr ""
-
-msgid "OFF"
-msgstr "Fra"
-
-msgid "OK"
-msgstr ""
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "Okt"
-
-msgid "Official Site:"
-msgstr "Officiel side:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "Børnelås"
-
-msgid "Partition"
-msgstr "Partition"
-
-msgid "Password"
-msgstr "Password"
-
-msgid "Password Changed"
-msgstr "Password ændret"
-
-msgid "Password has been changed"
-msgstr "Passwordet er blevet ændret"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "Brug den i en browser for at hente WiiTDB.zip."
-
-msgid "Patch Country Strings"
-msgstr "Patch landeindstillinger"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "Vælg fra en liste"
-
-msgid "Play Count"
-msgstr "Spiltæller"
-
-msgid "Play Next"
-msgstr "Afspil næste"
-
-msgid "Play Previous"
-msgstr "Afspil forrige"
-
-msgid "Playing Music:"
-msgstr "Afspiller musik:"
-
-msgid "Please wait..."
-msgstr "Vent venligst..."
-
-msgid "Power off the Wii"
-msgstr "Sluk Wiien"
-
-msgid "Prompts Buttons"
-msgstr "Knaptekster"
-
-msgid "Published by"
-msgstr "Udgivet af"
-
-msgid "Quick Boot"
-msgstr "Hurtig opstart"
-
-msgid "Reading WAD data... Ok!"
-msgstr "Læser WAD-data... Ok!"
-
-msgid "Receiving file from:"
-msgstr "Henter fil fra:"
-
-msgid "Released"
-msgstr "Udkommet"
-
-msgid "Reload SD"
-msgstr "Genindlæs SD"
-
-msgid "Remove update"
-msgstr "Fjern opdatering"
-
-msgid "Rename Game on WBFS"
-msgstr "Omdøb spil på WBFS"
-
-msgid "Reset BG Music"
-msgstr "Nulstil BG-musik"
-
-msgid "Reset Playcounter"
-msgstr "Nulstil spiltæller"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "Genstarter..."
-
-msgid "Return"
-msgstr "Tilbage"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "Tilbage til Wii-menuen"
-
-msgid "Rumble"
-msgstr "Vibration"
-
-msgid "SFX Volume"
-msgstr "Lydstyrke for effekter"
-
-msgid "Save"
-msgstr "Gem"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "Gem spilliste på"
-
-msgid "Saved"
-msgstr "Gemt"
-
-msgid "Screensaver"
-msgstr "Screensaver"
-
-msgid "Select"
-msgstr "Vælg"
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "Vælg en DOL"
-
-msgid "Sept"
-msgstr ""
-
-msgid "Set Search-Filter"
-msgstr "Søgefilter"
-
-msgid "Settings"
-msgstr "Indstillinger"
-
-msgid "Shutdown System"
-msgstr "Sluk (rødt lys)"
-
-msgid "Shutdown to Idle"
-msgstr "Standby"
-
-msgid "Sort alphabetically"
-msgstr "Sortér alfabetisk"
-
-msgid "Sort by rank"
-msgstr "Sortér efter favoritstatus"
-
-msgid "Sort order by most played"
-msgstr "Sortér efter popularitet"
-
-msgid "Sound"
-msgstr "Lyd"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "Specielt tak til:"
-
-msgid "Success"
-msgstr "Succes"
-
-msgid "Success:"
-msgstr "Succes:"
-
-msgid "Successfully Saved"
-msgstr "Gem lykkedes"
-
-msgid "Successfully Updated"
-msgstr "Opdateringen lykkedes"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr "Opdateringen lykkedes takket været www.techjawa.com"
-
-msgid "Successfully deleted:"
-msgstr "Sletningen lykkedes:"
-
-msgid "Successfully extracted theme."
-msgstr "Udpakning af tema lykkedes."
-
-msgid "Successfully installed:"
-msgstr "Installationen lykkedes:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "Sti til TXTCheatcodes"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "Den angivne mappe eksisterer ikke. Skal den oprettes?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr "Sti til download af temaer"
-
-msgid "Theme Downloader"
-msgstr "Tema-downloader"
-
-msgid "Theme Path"
-msgstr "Sti til temaer"
-
-msgid "Theme Title:"
-msgstr "Tematitel:"
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "Tid tilbage:"
-
-msgid "Title Launcher"
-msgstr "Titel-starter"
-
-msgid "Titles from WiiTDB"
-msgstr "Titler fra WiiTDB"
-
-msgid "Tooltips"
-msgstr "Værktøjstips"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr "Overførslen mislykkedes"
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "USB-enhed ikke fundet"
-
-msgid "USB Loader GX is protected"
-msgstr "USB Loader GX er beskyttet"
-
-msgid "Uninstall"
-msgstr "Afinstallér"
-
-msgid "Uninstall Game"
-msgstr "Afinstallér spil"
-
-msgid "Uninstall Menu"
-msgstr "Afinstallationsmenu"
-
-msgid "Uninstalling wad"
-msgstr "Afinstallerer WAD"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "Lås op for konsollen for at benytte denne indstilling."
-
-msgid "Unsupported format, try to extract manually."
-msgstr "Formatet er ikke understøttet - prøv at udpakke manuelt."
-
-msgid "Update"
-msgstr "Opdatér"
-
-msgid "Update All"
-msgstr "Opdatér alt"
-
-msgid "Update DOL"
-msgstr "Opdatér DOL"
-
-msgid "Update Files"
-msgstr "Opdatér filer"
-
-msgid "Update Path"
-msgstr "Sti til opdateringer"
-
-msgid "Update all Language Files"
-msgstr "Opdatér alle sprogfiler"
-
-msgid "Update failed"
-msgstr "Opdateringen mislykkedes"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "Opdaterer sprogfiler:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "Den uploadede ZIP-fil er installeret i homebrew-mappen."
-
-msgid "VIDTV Patch"
-msgstr "VIDTV-patch"
-
-#, c-format
-msgid "Version: %s"
-msgstr ""
-
-msgid "Video Mode"
-msgstr "Video-mode"
-
-msgid "WIP Patches Path"
-msgstr "Sti til WIP patches"
-
-msgid "Waiting for USB Device"
-msgstr "Venter på USB-enhed"
-
-msgid "Waiting..."
-msgstr "Venter..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "Hvad skal opdateres?"
-
-msgid "WiFi Features"
-msgstr "WiFi-indstillinger"
-
-msgid "Wii Menu"
-msgstr ""
-
-msgid "Wii Settings"
-msgstr "Wii-indstillinger"
-
-msgid "WiiTDB Files"
-msgstr "WiiTDB-filer"
-
-msgid "WiiTDB Path"
-msgstr "Sti til WiiTDB"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr ""
-
-msgid "Wrong Password"
-msgstr "Forkert password"
-
-msgid "Yes"
-msgstr "Ja"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr "Du skal vælge eller formattere en partition"
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "URLen er blevet gemt som %sWiiTDB_URL.txt."
-
-msgid "and translaters for language files updates"
-msgstr "og oversætterne for opdateringer til sprogfilerne"
-
-msgid "available"
-msgstr "tilgængelig"
-
-msgid "does not exist!"
-msgstr "eksisterer ikke!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "eksisterer ikke! Indlæser spillet uden cheats."
-
-msgid "files left"
-msgstr "filer tilbage"
-
-msgid "files not found on the server!"
-msgstr "filer blev ikke fundet på serveren!"
-
-msgid "for FAT/NTFS support"
-msgstr ""
-
-msgid "for Ocarina"
-msgstr ""
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "for WiiTDB og for at hoste covers/DVD-billeder"
-
-msgid "for diverse patches"
-msgstr "for diverse patches"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "for hans seje værktøj LibWiiGui"
-
-msgid "for hosting the themes"
-msgstr "for at hoste temaerne"
-
-msgid "for hosting the update files"
-msgstr "for at hoste opdateringer"
-
-msgid "for the USB Loader source"
-msgstr "for USB Loader sourcen"
-
-msgid "formatted!"
-msgstr "formateret!"
-
-msgid "free"
-msgstr "ledig"
-
-msgid "not set"
-msgstr "ikke sat"
-
-msgid "of"
-msgstr "af"
-
-msgid "seconds left"
-msgstr "sekunder tilbage"
-
-#~ msgid "Install 1:1 Copy"
-#~ msgstr "Installér 1:1-kopi"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (Alle)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (Børn 7+)"
-
-#~ msgid "1 hour"
-#~ msgstr "1 time"
-
-#~ msgid "10 min"
-#~ msgstr "10 min."
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (Unge teenagere 12+)"
-
-#~ msgid "20 min"
-#~ msgstr "20 min."
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (Modne teenagere 16+)"
-
-#~ msgid "3 min"
-#~ msgstr "3 min."
-
-#~ msgid "30 min"
-#~ msgstr "30 min."
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (Voksne 18+)"
-
-#~ msgid "5 min"
-#~ msgstr "5 min."
-
-#~ msgid "An Error occured"
-#~ msgstr "Der skete en fejl"
-
-#~ msgid "Are you sure you want to enable Parent Control?"
-#~ msgstr "Skal børnelåsen slås til?"
-
-#~ msgid "Both"
-#~ msgstr "Begge"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "Leder efter opdateringer"
-
-#~ msgid "Console Default"
-#~ msgstr "Konsol-standard"
-
-#~ msgid "Customs/Original"
-#~ msgstr "Tilpassede/Originale"
-
-#~ msgid "Disc Default"
-#~ msgstr "Spillets standard"
-
-#~ msgid "Downloading"
-#~ msgstr "Downloader"
-
-#~ msgid "Dutch"
-#~ msgstr "Hollandsk"
-
-#~ msgid "English"
-#~ msgstr "Engelsk"
-
-#~ msgid "French"
-#~ msgstr "Fransk"
-
-#~ msgid "Game ID"
-#~ msgstr "Spil-ID"
-
-#~ msgid "Game Region"
-#~ msgstr "Region"
-
-#~ msgid "German"
-#~ msgstr "Tysk"
-
-#~ msgid "Invalid PIN code"
-#~ msgstr "Forkert PIN-kode"
-
-#~ msgid "Italian"
-#~ msgstr "Italiensk"
-
-#~ msgid "Japanese"
-#~ msgstr "Japansk"
-
-#~ msgid "Korean"
-#~ msgstr "Koreansk"
-
-#~ msgid "Left"
-#~ msgstr "Venstre"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "Ligesom wii-menuen"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "Indlæs fra SD/USB"
-
-#~ msgid "Locked"
-#~ msgstr "Låst"
-
-#~ msgid "Loop Directory"
-#~ msgstr "Afspil mappe i løkke"
-
-#~ msgid "Loop Music"
-#~ msgstr "Afspil musik i løkke"
-
-#~ msgid "Loop Sound"
-#~ msgstr "Afspil lyd i løkke"
-
-#~ msgid "Neither"
-#~ msgstr "Ingen"
-
-#~ msgid "Next"
-#~ msgstr "Næste"
-
-#~ msgid "None"
-#~ msgstr "Ingen"
-
-#~ msgid "Normal"
-#~ msgstr "Normal"
-
-#~ msgid "ON"
-#~ msgstr "Til"
-
-#~ msgid "Only Customs"
-#~ msgstr "Kun tilpassede"
-
-#~ msgid "Only Original"
-#~ msgstr "Kun originaler"
-
-#~ msgid "Only for Install"
-#~ msgstr "Kun til installering"
-
-#~ msgid "Original/Customs"
-#~ msgstr "Originale/Tilpassede"
-
-#~ msgid "Parental Control disabled"
-#~ msgstr "Børnelåsen er slået fra"
-
-#~ msgid "Play Once"
-#~ msgstr "Afspil én gang"
-
-#~ msgid "Prev"
-#~ msgstr "Forrige"
-
-#~ msgid "Random Directory Music"
-#~ msgstr "Musik fra tilfældig mappe"
-
-#~ msgid "Right"
-#~ msgstr "Højre"
-
-#~ msgid "SChinese"
-#~ msgstr "Kinesisk (std.)"
-
-#~ msgid "Sound+BGM"
-#~ msgstr "Lyd+BGM"
-
-#~ msgid "Sound+Quiet"
-#~ msgstr "Lyd+Stille"
-
-#~ msgid "Spanish"
-#~ msgstr "Spansk"
-
-#~ msgid "System Default"
-#~ msgstr "System-standard"
-
-#~ msgid "TChinese"
-#~ msgstr "Kinesisk (trad.)"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "WAD-filen blev installeret. Den kunne ikke slettes fra SD-kortet."
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "WAD-installationen mislykkedes med fejl %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "Ikke i stand til at åbne den WAD, der blev downloadet (%s)."
-
-#~ msgid "Unlock Parental Control"
-#~ msgstr "Lås børnelåsen op"
-
-#~ msgid "Unlocked"
-#~ msgstr "Låst op"
-
-#~ msgid "Update to"
-#~ msgstr "Opdatér til"
-
-#~ msgid "Updating"
-#~ msgstr "Opdaterer..."
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "Opdaterer sprogfiler..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "Opdaterer WiiTDB.zip"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "Bredformat-fix"
-
-#~ msgid "You don't have Parental Control enabled. If you wish to use Parental Control, enable it in the Wii Settings."
-#~ msgstr "Børnelåsen er ikke slået til. Hvis børnelåsen skal bruges, skal den slås til i Wiiens indstillinger."
-
-#~ msgid "%s : %s May not boot correctly if your System Menu is not up to date."
-#~ msgstr "%s : %s booter måske ikke korrekt, hvis system menuen ikke er opdateret."
-
-#~ msgid "BCA Codes Path changed"
-#~ msgstr "Sti til BCA koder ændret"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "Tilbage til HBC"
-
-#~ msgid "Channels"
-#~ msgstr "Kanaler"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "Kontrollerer eksisterende billeder"
-
-#~ msgid "Confirm"
-#~ msgstr "Bekræft"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "Kunne ikke finde en WBFS-partition."
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "Kunne ikke åbne WBFS-partition"
-
-#~ msgid "Could not read the disc."
-#~ msgstr "Kunne ikke læse DVD."
-
-#~ msgid "Could not set USB."
-#~ msgstr "Kunne ikke sætte USB."
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "Sti til covers ændret"
-
-#~ msgid "DOL path changed"
-#~ msgstr "Sti til DOL ændret"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "Sti til DVD-billeder"
-
-#~ msgid "Display favorites"
-#~ msgstr "Vis favoritter"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "Forsøg igen (i 30 sek.)?"
-
-#~ msgid "Enable Parental Control"
-#~ msgstr "Slå børnelåsen til"
-
-#~ msgid "Force"
-#~ msgstr "Tving"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "Sti til cheatcodes ændret"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "Sti til homebrew-programmer ændret"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "Indsæt et SD-kort for at downloade billeder."
-
-#~ msgid "Install not possible"
-#~ msgstr "Kan ikke installere"
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "Sandsynligvis har det dimensioner, der ikke er delelige med fire."
-
-#~ msgid "Network init error"
-#~ msgstr "Netforbindelsen kunne ikke intialiseres"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr "Der blev ikke fundet nogle .dol- eller .elf-filer."
-
-#~ msgid "No Favorites"
-#~ msgstr "Ingen favoritter"
-
-#~ msgid "No USB Device"
-#~ msgstr "Ingen USB-enhed tilsluttet"
-
-#~ msgid "No USB Device found."
-#~ msgstr "Ingen USB-enhed fundet."
-
-#~ msgid "No WBFS or FAT/NTFS partition found"
-#~ msgstr "Der blev ikke fundet en WBFS- eller FAT/NTFS-partition"
-
-#~ msgid "Normal Covers"
-#~ msgstr "Normale Covers"
-
-#~ msgid "Not Found"
-#~ msgstr "Ikke fundet"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "Ikke en DOL/ELF-fil."
-
-#~ msgid "Reset to standard BGM?"
-#~ msgstr "Nulstil til standard-BGM"
-
-#~ msgid "Save Failed"
-#~ msgstr "Gem mislykkedes"
-
-#~ msgid "Selected DOL"
-#~ msgstr "Valgt DOL"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "Sti til TXTCheatcodes ændret"
-
-#~ msgid "Theme Download Path changed"
-#~ msgstr "Sti til download af temaer ændret"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "Sti til temaer ændret"
-
-#~ msgid "USB Loader GX will only run with Hermes CIOS rev 4! Please make sure you have revision 4 installed!"
-#~ msgstr "USB Loader GX fungerer kun med Hermes CIOS rev 4! Kontrollér, at revision 4 er installeret!"
-
-#~ msgid "Update Path changed."
-#~ msgstr "Sti til opdateringer ændret."
-
-#~ msgid "WIP Patches Path changed"
-#~ msgstr "Sti til WIP patches ændret"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "Sti til WiiTDB ændret"
-
-#~ msgid "You are about to delete "
-#~ msgstr "Du er ved at slette "
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "Du har valgt at vise favoritter, men ingen spil er markerede som favoritter."
-
-#~ msgid "You are using NTFS filesystem. Due to possible write errors to a NTFS partition, installing a game is not possible."
-#~ msgstr "Der bruges et NTFS filsystem. Da der kan forekomme skrivefejl på NTFS-partitioner, kan der ikke installeres spil."
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "Du har forsøgt at indlæse et dårligt billede"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "eksisterer ikke!"
-
-#~ msgid "file left"
-#~ msgstr "fil tilbage"
diff --git a/Languages/dutch.lang b/Languages/dutch.lang
deleted file mode 100644
index c4e8a304..00000000
--- a/Languages/dutch.lang
+++ /dev/null
@@ -1,1540 +0,0 @@
-# USB Loader GX language source file.
-# dutch.lang - r929
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2010-04-12 07:37+0100\n"
-"Last-Translator: glowy\n"
-"Language-Team: tj_cool, glowy\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr " Wad opgeslagen als:"
-
-msgid " could not be downloaded."
-msgstr " kon niet worden gedownload."
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr " is opgeslagen. De tekst is niet gecontroleerd. Delen van de code kunnen elkaar tegenwerken. Als je moeilijkheden ondervind, open de tekst in een echte tekstverwerker voor meer informatie."
-
-msgid " is not on the server."
-msgstr " staat niet op de server."
-
-msgid "2D Cover Path"
-msgstr "Locatie 2D hoesjes"
-
-msgid "3D Cover Path"
-msgstr "Locatie 3D hoesjes"
-
-msgid "3D Covers"
-msgstr "3D Hoesjes"
-
-msgid ">> Deleting tickets..."
-msgstr ">> Tickets verwijderen..."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> Tickets verwijderen...FOUT! "
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> Tickets verwijderen...Ok! "
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> Titel verwijderen ...FOUT! "
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> Titel verwijderen ...Ok!"
-
-msgid ">> Deleting title contents..."
-msgstr ">> Titel inhoud verwijderen..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> Titel inhoud verwijderen...FOUT! "
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> Titel inhoud verwijderen...Ok!"
-
-msgid ">> Deleting title..."
-msgstr ">> Titel verwijderen..."
-
-msgid ">> Finishing installation..."
-msgstr ">> Installatie afronden..."
-
-msgid ">> Installing content #"
-msgstr ">> Installeren inhoud #"
-
-msgid ">> Installing ticket..."
-msgstr ">> Ticket installeren..."
-
-msgid ">> Installing title..."
-msgstr ">> Titel installeren..."
-
-msgid ">> Reading WAD data..."
-msgstr ">> WAD data lezen..."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> WAD data lezen...FOUT! "
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> WAD data lezen...Ok!"
-
-msgid "AUTO"
-msgstr ""
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr "Alle partities"
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "Alle functies van USB Loader GX zijn vrijgegeven."
-
-msgid "Alternate DOL"
-msgstr "Alternatieve DOL"
-
-msgid "App Language"
-msgstr "Applicatie Taal"
-
-msgid "Apr"
-msgstr ""
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "Zeker weten?"
-
-msgid "Aug"
-msgstr ""
-
-msgid "Author:"
-msgstr "Auteur:"
-
-msgid "AutoInit Network"
-msgstr "Netwerk Auto init."
-
-msgid "BCA Codes Path"
-msgstr "Locatie BCA codes"
-
-msgid "BETA revisions"
-msgstr "BETA revisies"
-
-msgid "Back"
-msgstr "Terug"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "Terug naar HBC of Wii Menu"
-
-msgid "Back to Loader"
-msgstr "Terug naar lader"
-
-msgid "Backgroundmusic"
-msgstr "Achtergrondmuziek"
-
-msgid "Big thanks to:"
-msgstr "Grote dank aan:"
-
-msgid "Block IOS Reload"
-msgstr "Stop IOS herladen"
-
-msgid "Boot/Standard"
-msgstr "Start/Standaard"
-
-msgid "Boot?"
-msgstr "Start?"
-
-msgid "Can't be formatted"
-msgstr "Kan niet geformatteerd worden"
-
-msgid "Can't create directory"
-msgstr "Kan map niet aanmaken"
-
-msgid "Can't create file"
-msgstr "Kan bestand niet aanmaken"
-
-msgid "Can't delete:"
-msgstr "Kan niet verwijderen:"
-
-msgid "Cancel"
-msgstr "Annuleren"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr "Verander afspeel locatie"
-
-msgid "Cheatfile is blank"
-msgstr "Cheatbestand is leeg"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "Klik om hoesjes te downloaden"
-
-msgid "Click to change game ID"
-msgstr "Klik om het spel ID te wijzigen"
-
-msgid "Clock"
-msgstr "Klok"
-
-msgid "Close"
-msgstr "Sluiten"
-
-msgid "Code Download"
-msgstr ""
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "Geprogrammeerd door: %s"
-
-msgid "Coding:"
-msgstr "Codering:"
-
-msgid "Connection lost..."
-msgstr "Verbinding verbroken..."
-
-msgid "Console"
-msgstr ""
-
-msgid "Console Locked"
-msgstr "Console vergrendeld"
-
-msgid "Console should be unlocked to modify it."
-msgstr "Console moet worden vrijgegeven om te wijzigen."
-
-msgid "Continue to install game?"
-msgstr "Installatie spel voortzetten?"
-
-msgid "Controllevel"
-msgstr "Controle niveau"
-
-msgid "Correct Password"
-msgstr "Juiste Wachtwoord"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "Kan GCT bestand niet aanmaken"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "Kan DIP module niet initialiseren!"
-
-msgid "Could not initialize network!"
-msgstr "Kan netwerk niet initialiseren!"
-
-msgid "Could not open Disc"
-msgstr "Kan disk niet openen"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "Kan niet opslaan."
-
-msgid "Cover Download"
-msgstr "Download hoesjes"
-
-msgid "Create"
-msgstr "Maak"
-
-msgid "Credits"
-msgstr ""
-
-msgid "Custom Paths"
-msgstr "Bestandslocaties"
-
-msgid "DOL Path"
-msgstr "Locatie DOL"
-
-msgid "Dec"
-msgstr ""
-
-msgid "Default"
-msgstr "Standaard"
-
-msgid "Default Gamesettings"
-msgstr "Standaard spel instellingen"
-
-msgid "Default Settings"
-msgstr "Standaardinstellingen"
-
-msgid "Delete"
-msgstr "Verwijderen"
-
-msgid "Delete ?"
-msgstr "Verwijderen ?"
-
-msgid "Delete Cheat GCT"
-msgstr "Cheat GCT verwijderen"
-
-msgid "Delete Cheat TXT"
-msgstr "Cheat TXT verwijderen"
-
-msgid "Delete Cover Artwork"
-msgstr "Hoesjes verwijderen"
-
-msgid "Delete Disc Artwork"
-msgstr "Disk labels verwijderen"
-
-msgid "Design:"
-msgstr "Ontwerp:"
-
-msgid "Developed by"
-msgstr "Ontwikkeld door"
-
-msgid "Directory does not exist!"
-msgstr "Map bestaat niet!"
-
-msgid "Disc Artwork Download"
-msgstr "Download disk labels"
-
-msgid "Disc Artwork Path"
-msgstr "Locatie disk labels"
-
-msgid "Disc Images"
-msgstr "Disk labels"
-
-msgid "Display"
-msgstr "Tonen"
-
-msgid "Display as a carousel"
-msgstr "Carrouselweergave"
-
-msgid "Display as a grid"
-msgstr "Rasterweergave"
-
-msgid "Display as a list"
-msgstr "Lijstweergave"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "Wil je echt verwijderen:"
-
-msgid "Do you want to apply it now?"
-msgstr "Wil je dit nu toepassen?"
-
-msgid "Do you want to change language?"
-msgstr "Wil je de taal wijzigen?"
-
-msgid "Do you want to download this theme?"
-msgstr "Wil je dit thema downloaden?"
-
-msgid "Do you want to format:"
-msgstr "Wil je formatteren:"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "Wil je de alt DOL gebruiken waarvan is bevestigd dat deze werkt?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "Wil je alle taalbestanden updaten/downloaden?"
-
-msgid "Done!"
-msgstr "Klaar!"
-
-msgid "Download"
-msgstr ""
-
-msgid "Download Boxart image?"
-msgstr "Hoesjes downloaden?"
-
-msgid "Download Discart image?"
-msgstr "Disk label downloaden?"
-
-msgid "Download Now"
-msgstr "Download nu"
-
-msgid "Download failed."
-msgstr "Download mislukt."
-
-msgid "Download finished"
-msgstr "Download voltooid"
-
-msgid "Download request failed."
-msgstr "Download aanvraag mislukt."
-
-msgid "Downloading Page List:"
-msgstr "Download pagina lijst:"
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "Bestand downloaden"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr "Afbeelding downloaden:"
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "FOUT"
-
-msgid "ERROR:"
-msgstr "FOUT:"
-
-msgid "ERROR: Can't set up theme."
-msgstr "FOUT: Kan thema niet instellen"
-
-msgid "Error"
-msgstr "Fout"
-
-msgid "Error !"
-msgstr "Fout !"
-
-msgid "Error 002 fix"
-msgstr "Herstel fout 002"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "Fout bij lezen disk"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "Fout bij overplaatsen van data."
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "Fout..."
-
-msgid "Error:"
-msgstr "Fout:"
-
-msgid "Extracting files..."
-msgstr "Bestanden uitpakken..."
-
-msgid "FAT: Use directories"
-msgstr "FAT: gebruik directories"
-
-msgid "Failed formating"
-msgstr "Formatteren mislukt"
-
-msgid "Failed to extract."
-msgstr "Uitpakken mislukt."
-
-msgid "Failed to open partition"
-msgstr "Partitie openen mislukt"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr ""
-
-msgid "File not found."
-msgstr "Bestand niet gevonden."
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "Installatie afronden... Ok!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr "X omwisselen"
-
-msgid "Format"
-msgstr "Formatteer"
-
-msgid "Formatting, please wait..."
-msgstr "Bezig met formatteren..."
-
-msgid "Free Space"
-msgstr "Vrije ruimte"
-
-msgid "Full Shutdown"
-msgstr "Volledig uitzetten"
-
-msgid "GCT Cheatcodes Path"
-msgstr "Locatie GCT cheatcodes"
-
-msgid "GCT File created"
-msgstr "GCT bestand aangemaakt"
-
-msgid "GUI Settings"
-msgstr "Menu opties"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr "GXtheme.cfg in geen enkele submap gevonden."
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "Spel taal"
-
-msgid "Game Load"
-msgstr "Spel opties"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "Spel grootte"
-
-msgid "Game Sound Mode"
-msgstr "Spel geluid mode"
-
-msgid "Game Sound Volume"
-msgstr "Spel geluid volume"
-
-msgid "Game is already installed:"
-msgstr "Spel is al geïnstalleerd:"
-
-msgid "Game partition"
-msgstr "Spel partitie"
-
-msgid "Games"
-msgstr "Spellen"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr ""
-
-msgid "Homebrew Apps Path"
-msgstr "Locatie homebrew apps"
-
-msgid "Homebrew Launcher"
-msgstr "Homebrew starter"
-
-msgid "Hour"
-msgstr "Uur"
-
-msgid "How do you want to update?"
-msgstr "Hoe wil je updaten?"
-
-msgid "How to Shutdown?"
-msgstr "Hoe uitzetten?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "Als je geen WiFi hebt, druk dan op 1 om een URL voor je WiiTDB.zip te krijgen"
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "Binnenkomend bestand %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "Binnenkomend bestand %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "Netwerk initialiseren"
-
-msgid "Insert Disk"
-msgstr "Voer een disk in"
-
-msgid "Insert a Wii Disc!"
-msgstr "Voer een Wii disk in!"
-
-msgid "Insert an SD-Card to save."
-msgstr "Voer een SD kaart in om op te slaan."
-
-msgid "Insert an SD-Card to use this option."
-msgstr "Voer een SD kaart in om deze optie te gebruiken."
-
-msgid "Install"
-msgstr "Installeer"
-
-msgid "Install Error!"
-msgstr "Installatiefout!"
-
-msgid "Install a game"
-msgstr "Spel installeren"
-
-msgid "Install partitions"
-msgstr "Installatie partitie"
-
-msgid "Installing content... Ok!"
-msgstr "Installeren inhoud... Ok!"
-
-msgid "Installing game:"
-msgstr "Bezig met installeren:"
-
-msgid "Installing ticket... Ok!"
-msgstr "Ticket installeren... Ok!"
-
-msgid "Installing title... Ok!"
-msgstr "Titel installeren... Ok!"
-
-msgid "Installing wad"
-msgstr "Wad installeren"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "Je hebt informatie gevonden die ons kan helpen. Geeft u alstublieft deze info door aan ons ontwikkelingsteam."
-
-msgid "Jan"
-msgstr ""
-
-msgid "July"
-msgstr "Jul"
-
-msgid "June"
-msgstr "Jun"
-
-msgid "Keep"
-msgstr "Bijhouden"
-
-msgid "Keyboard"
-msgstr "Toetsenbord"
-
-msgid "Language File"
-msgstr "Taal bestand"
-
-msgid "Language change:"
-msgstr "Taal wijzigen:"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "Locatie taal gewijzigd."
-
-msgid "Load"
-msgstr "Laad"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "Laad bestand van %s ?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "Deze DOL als alt DOL gebruiken?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "Standaardtaal laden."
-
-msgid "Loading standard music."
-msgstr "Standaardmuziek laden."
-
-msgid "Lock Console"
-msgstr "Console vergrendelen"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr "Mrt"
-
-msgid "Mark new games"
-msgstr "Markeer nieuwe spellen"
-
-msgid "May"
-msgstr "Mei"
-
-msgid "Missing files"
-msgstr "Missende bestanden"
-
-msgid "Mount DVD drive"
-msgstr "DVD Laden"
-
-msgid "Music Loop Mode"
-msgstr "Muziek Herhaal Mode"
-
-msgid "Music Volume"
-msgstr "Muziekvolume"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "Nieuwe disk gevonden"
-
-msgid "No"
-msgstr "Nee"
-
-msgid "No Cheatfile found"
-msgstr "Geen cheatbestand gevonden"
-
-msgid "No DOL file found on disc."
-msgstr "Geen DOL bestand gevonden op disk."
-
-msgid "No SD-Card inserted!"
-msgstr "Geen SD kaart gevonden!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "Geen cheats geselecteerd"
-
-msgid "No data could be read."
-msgstr "Data kon niet gelezen worden."
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "Geen missende bestanden!"
-
-msgid "No new updates."
-msgstr "Geen nieuwe updates."
-
-msgid "No themes found on the site."
-msgstr "Geen thema's gevonden op de site."
-
-msgid "Not a WAD file."
-msgstr "Geen WAD bestand."
-
-msgid "Not a Wii Disc"
-msgstr "Geen Wii disk"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "Niet genoeg vrije ruimte."
-
-msgid "Not enough free space!"
-msgstr "Niet genoeg vrije ruimte!"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "Formaat niet ondersteund!"
-
-msgid "Nov"
-msgstr ""
-
-msgid "OFF"
-msgstr "Uit"
-
-msgid "OK"
-msgstr ""
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "Okt"
-
-msgid "Official Site:"
-msgstr "Officiële site:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "Ouderlijk toezicht"
-
-msgid "Partition"
-msgstr "Partitie"
-
-msgid "Password"
-msgstr "Wachtwoord"
-
-msgid "Password Changed"
-msgstr "Wachtwoord gewijzigd"
-
-msgid "Password has been changed"
-msgstr "Wachtwoord is gewijzigd"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "Plak het in je webbrowser om WiiTDB.zip te downloaden."
-
-msgid "Patch Country Strings"
-msgstr "Regio's herstellen"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "Kiezen van lijst"
-
-msgid "Play Count"
-msgstr "Gespeeld"
-
-msgid "Play Next"
-msgstr "Speel Volgende"
-
-msgid "Play Previous"
-msgstr "Speel Vorige"
-
-msgid "Playing Music:"
-msgstr "Speelt nu:"
-
-msgid "Please wait..."
-msgstr "Even geduld..."
-
-msgid "Power off the Wii"
-msgstr "Wii uitschakelen"
-
-msgid "Prompts Buttons"
-msgstr "Weergave knoppen"
-
-msgid "Published by"
-msgstr "Uitgegeven door"
-
-msgid "Quick Boot"
-msgstr "Snelle start"
-
-msgid "Reading WAD data... Ok!"
-msgstr "WAD data lezen... Ok!"
-
-msgid "Receiving file from:"
-msgstr "Bestand ontvangen van:"
-
-msgid "Released"
-msgstr "Uitgegeven"
-
-msgid "Reload SD"
-msgstr "SD herladen"
-
-msgid "Remove update"
-msgstr "Verwijder update"
-
-msgid "Rename Game on WBFS"
-msgstr "Spel hernoemen op WBFS"
-
-msgid "Reset BG Music"
-msgstr "Reset achtergrond muziek"
-
-msgid "Reset Playcounter"
-msgstr "Speeltellers resetten"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "Herstarten..."
-
-msgid "Return"
-msgstr "Terug"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "Terug naar Wii menu"
-
-msgid "Rumble"
-msgstr "Trilfunctie"
-
-msgid "SFX Volume"
-msgstr "Volume geluidseffecten"
-
-msgid "Save"
-msgstr "Opslaan"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "Spellenlijst opslaan in"
-
-msgid "Saved"
-msgstr "Opgeslagen"
-
-msgid "Screensaver"
-msgstr "Schermbeveiliging"
-
-msgid "Select"
-msgstr "Selecteer"
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "Kies een DOL"
-
-msgid "Sept"
-msgstr "Sep"
-
-msgid "Set Search-Filter"
-msgstr "Zoekfilter instellen"
-
-msgid "Settings"
-msgstr "Instellingen"
-
-msgid "Shutdown System"
-msgstr "Systeem uitzetten"
-
-msgid "Shutdown to Idle"
-msgstr "Slaapstand"
-
-msgid "Sort alphabetically"
-msgstr "Alfabetisch sorteren"
-
-msgid "Sort by rank"
-msgstr "Sorteren op rang"
-
-msgid "Sort order by most played"
-msgstr "Sorteren op meest gespeeld"
-
-msgid "Sound"
-msgstr "Geluid"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "Speciale dank aan:"
-
-msgid "Success"
-msgstr "Succes"
-
-msgid "Success:"
-msgstr "Succes:"
-
-msgid "Successfully Saved"
-msgstr "Met succes opgeslagen!"
-
-msgid "Successfully Updated"
-msgstr "Met succes geüpdate!"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr "Met succes geüpdate met dank aan www.techjawa.com"
-
-msgid "Successfully deleted:"
-msgstr "Met succes verwijderd:"
-
-msgid "Successfully extracted theme."
-msgstr "Thema succesvol uitgepakt."
-
-msgid "Successfully installed:"
-msgstr "Met succes geïnstalleerd:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "Locatie TXT cheats"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "De opgegeven map bestaat niet. Wil je deze aanmaken?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr "Thema download locatie"
-
-msgid "Theme Downloader"
-msgstr "Thema downloader"
-
-msgid "Theme Path"
-msgstr "Locatie thema"
-
-msgid "Theme Title:"
-msgstr "Thema Titel:"
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "Tijd over:"
-
-msgid "Title Launcher"
-msgstr "Titel starter"
-
-msgid "Titles from WiiTDB"
-msgstr "WiiTDB titels"
-
-msgid "Tooltips"
-msgstr "Knopinfo"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr "Overdracht mislukt."
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "USB Apparaat niet gevonden"
-
-msgid "USB Loader GX is protected"
-msgstr "USB Loader GX is vergrendeld"
-
-msgid "Uninstall"
-msgstr "Verwijderen"
-
-msgid "Uninstall Game"
-msgstr "Spel verwijderen"
-
-msgid "Uninstall Menu"
-msgstr "Verwijderen"
-
-msgid "Uninstalling wad"
-msgstr "Wad verwijderen"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "Console moet worden vrijgegeven."
-
-msgid "Unsupported format, try to extract manually."
-msgstr "Niet ondersteund formaat, probeer handmatig uit te pakken."
-
-msgid "Update"
-msgstr "Updaten"
-
-msgid "Update All"
-msgstr "Alles updaten"
-
-msgid "Update DOL"
-msgstr "DOL updaten"
-
-msgid "Update Files"
-msgstr "Updaten"
-
-msgid "Update Path"
-msgstr "Updatelocatie"
-
-msgid "Update all Language Files"
-msgstr "Alle taalbestanden updaten"
-
-msgid "Update failed"
-msgstr "Update mislukt"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "Taalbestanden updaten:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "Geuploade ZIP is geïnstalleerd in je homebrew locatie."
-
-msgid "VIDTV Patch"
-msgstr "VIDTV patchen"
-
-#, c-format
-msgid "Version: %s"
-msgstr "Versie: %s"
-
-msgid "Video Mode"
-msgstr ""
-
-msgid "WIP Patches Path"
-msgstr "Locatie WIP patches"
-
-msgid "Waiting for USB Device"
-msgstr "Wachten op USB apparaat"
-
-msgid "Waiting..."
-msgstr "Wachten..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "Wat wil je updaten?"
-
-msgid "WiFi Features"
-msgstr "WiFi functies"
-
-msgid "Wii Menu"
-msgstr ""
-
-msgid "Wii Settings"
-msgstr "Wii instellingen"
-
-msgid "WiiTDB Files"
-msgstr "WiiTDB bestanden"
-
-msgid "WiiTDB Path"
-msgstr "Locatie WiiTDB"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr "Wii verlichting"
-
-msgid "Wrong Password"
-msgstr "Fout wachtwoord"
-
-msgid "Yes"
-msgstr "Ja"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr "Je moet een partitie selecteren of formatteren"
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "Je URL is opgeslagen in %sWiiTDB_URL.txt."
-
-msgid "and translaters for language files updates"
-msgstr "en vertalers voor taalbestand updates"
-
-msgid "available"
-msgstr "beschikbaar"
-
-msgid "does not exist!"
-msgstr "bestaat niet!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "bestaat niet! Spel laden zonder cheats."
-
-msgid "files left"
-msgstr "Bestanden resterend"
-
-msgid "files not found on the server!"
-msgstr "Bestanden niet gevonden op server!"
-
-msgid "for FAT/NTFS support"
-msgstr "voor FAT/NTFS ondersteuning"
-
-msgid "for Ocarina"
-msgstr "voor Ocarina"
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "voor WiiTDB en upload afbeeldingen"
-
-msgid "for diverse patches"
-msgstr "voor diverse correcties"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "voor zijn geweldige tool LibWiiGui"
-
-msgid "for hosting the themes"
-msgstr "voor het hosten van de thema's"
-
-msgid "for hosting the update files"
-msgstr "voor het hosten van update bestanden"
-
-msgid "for the USB Loader source"
-msgstr "voor USB Loader source"
-
-msgid "formatted!"
-msgstr "geformatteerd!"
-
-msgid "free"
-msgstr "vrij"
-
-msgid "not set"
-msgstr "niet ingesteld"
-
-msgid "of"
-msgstr "van"
-
-msgid "seconds left"
-msgstr "seconden over"
-
-#~ msgid "Install 1:1 Copy"
-#~ msgstr "Installeer 1:1 kopie"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (Iedereen 3+)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (Kinderen 7+)"
-
-#~ msgid "1 hour"
-#~ msgstr "1 uur"
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (Tiener 12+)"
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (Adolescenten 16+)"
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (Volwassen 18+)"
-
-#~ msgid "An Error occured"
-#~ msgstr "Er is een fout opgetreden"
-
-#~ msgid "Are you sure you want to enable Parent Control?"
-#~ msgstr "Weet je zeker dat je ouderlijk toezicht wilt aanzetten?"
-
-#~ msgid "AutoPatch"
-#~ msgstr "Automatisch patchen"
-
-#~ msgid "Both"
-#~ msgstr "Beide"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "Controleren op updates"
-
-#~ msgid "Console Default"
-#~ msgstr "Console standaard"
-
-#~ msgid "Customs/Original"
-#~ msgstr "Aangepast/Origineel"
-
-#~ msgid "Disc Default"
-#~ msgstr "Disk standaard"
-
-#~ msgid "Downloading"
-#~ msgstr "Downloaden"
-
-#~ msgid "Dutch"
-#~ msgstr "Nederlands"
-
-#~ msgid "English"
-#~ msgstr "Engels"
-
-#~ msgid "French"
-#~ msgstr "Frans"
-
-#~ msgid "GAMEID_Gamename"
-#~ msgstr "SPELID_Spelnaam"
-
-#~ msgid "Game ID"
-#~ msgstr "Spel ID"
-
-#~ msgid "Game Region"
-#~ msgstr "Spel Regio"
-
-#~ msgid "Gamename [GAMEID]"
-#~ msgstr "Spelnaam [SPELID]"
-
-#~ msgid "German"
-#~ msgstr "Duits"
-
-#~ msgid "Invalid PIN code"
-#~ msgstr "Onjuiste PIN code"
-
-#~ msgid "Italian"
-#~ msgstr "Italiaans"
-
-#~ msgid "Japanese"
-#~ msgstr "Japans"
-
-#~ msgid "Korean"
-#~ msgstr "Koreaans"
-
-#~ msgid "Left"
-#~ msgstr "Links"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "Als SysteemMenu"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "Laden van SD/USB"
-
-#~ msgid "Locked"
-#~ msgstr "Vergrendeld"
-
-#~ msgid "Loop Directory"
-#~ msgstr "Herhaal Map"
-
-#~ msgid "Loop Music"
-#~ msgstr "Herhaal Muziek"
-
-#~ msgid "Loop Sound"
-#~ msgstr "Geluid herhalen"
-
-#~ msgid "Neither"
-#~ msgstr "Geen"
-
-#~ msgid "Next"
-#~ msgstr "Volgende"
-
-#~ msgid "None"
-#~ msgstr "Geen"
-
-#~ msgid "Normal"
-#~ msgstr "Normaal"
-
-#~ msgid "ON"
-#~ msgstr "Aan"
-
-#~ msgid "Only Customs"
-#~ msgstr "Enkel aangepast"
-
-#~ msgid "Only Original"
-#~ msgstr "Enkel origineel"
-
-#~ msgid "Only for Install"
-#~ msgstr "Alleen bij installeren"
-
-#~ msgid "Original/Customs"
-#~ msgstr "Origineel/Aangepast"
-
-#~ msgid "Parental Control disabled"
-#~ msgstr "Ouderlijk toezicht uitgeschakeld"
-
-#~ msgid "Play Once"
-#~ msgstr "Speel één maal"
-
-#~ msgid "Prev"
-#~ msgstr "Vorige"
-
-#~ msgid "Random Directory Music"
-#~ msgstr "Willekeurige Map Muziek"
-
-#~ msgid "Right"
-#~ msgstr "Rechts"
-
-#~ msgid "SChinese"
-#~ msgstr "SChinees"
-
-#~ msgid "Sound+BGM"
-#~ msgstr "Geluid+Achtergrondmuziek"
-
-#~ msgid "Sound+Quiet"
-#~ msgstr "Geluid+Stilte"
-
-#~ msgid "Spanish"
-#~ msgstr "Spaans"
-
-#~ msgid "System Default"
-#~ msgstr "Systeem standaard"
-
-#~ msgid "TChinese"
-#~ msgstr "Chinees Trad."
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "Het wad bestand is geïnstalleerd. Maar kon niet van de SD kaart verwijderd worden."
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "De wad installatie is mislukt met fout %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "Wad is gedownload maar kan niet worden geopend (%s)."
-
-#~ msgid "Unlock Parental Control"
-#~ msgstr "Ontgrendel ouderlijk toezicht"
-
-#~ msgid "Unlocked"
-#~ msgstr "Vrijgegeven"
-
-#~ msgid "Update to"
-#~ msgstr "Updaten naar"
-
-#~ msgid "Updating"
-#~ msgstr "Updaten"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "Taalbestanden updaten..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "WiiTDB.zip updaten"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "Breedbeeld"
-
-#~ msgid "You don't have Parental Control enabled. If you wish to use Parental Control, enable it in the Wii Settings."
-#~ msgstr "Je hebt ouderlijk toezicht niet ingeschakeld. Als je ouderlijk toezicht wilt gebruiken, zet het dan aan in de Wii instellingen."
-
-#~ msgid "%s : %s May not boot correctly if your System Menu is not up to date."
-#~ msgstr "%s : %s Kan mogelijk niet goed opstarten als je Systeem Menu niet up to date is."
-
-#~ msgid "BCA Codes Path changed"
-#~ msgstr "Locatie BCA codes gewijzigd"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "Terug naar Wii Menu"
-
-#~ msgid "Channels"
-#~ msgstr "Kanalen"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "Bestaande afbeeldingen controleren"
-
-#~ msgid "Confirm"
-#~ msgstr "Bevestigen"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "Kan geen WBFS partitie vinden."
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "Kan WBFS partitie niet openen"
-
-#~ msgid "Could not read the disc."
-#~ msgstr "Kan disk niet lezen."
-
-#~ msgid "Could not set USB."
-#~ msgstr "Kan USB niet instellen."
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "Locatie hoesjes gewijzigd"
-
-#~ msgid "DOL path changed"
-#~ msgstr "Locatie DOL gewijzigd"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "Locatie disk labels gewijzigd"
-
-#~ msgid "Display favorites"
-#~ msgstr "Favorieten"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "Wil je 30 sec. lang opnieuw proberen?"
-
-#~ msgid "Enable Parental Control"
-#~ msgstr "Ouderlijk toezicht inschakelen"
-
-#~ msgid "Force"
-#~ msgstr "Forceer"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "Locatie GCT cheatcodes gewijzigd"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "Locatie HB apps gewijzigd"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "Voer een SD kaart in om afbeeldingen te downloaden."
-
-#~ msgid "Install not possible"
-#~ msgstr "Installatie niet mogelijk"
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "Waarschijnlijk zijn de afmetingen niet deelbaar door 4."
-
-#~ msgid "Network init error"
-#~ msgstr "Netwerk init. fout"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr "Geen .dol of .elf bestanden gevonden"
-
-#~ msgid "No Favorites"
-#~ msgstr "Geen favorieten"
-
-#~ msgid "No USB Device"
-#~ msgstr "Geen USB apparaat"
-
-#~ msgid "No USB Device found."
-#~ msgstr "Geen USB apparaat gevonden."
-
-#~ msgid "No WBFS or FAT/NTFS partition found"
-#~ msgstr "Geen WBFS of FAT/NTFS partitie gevonden"
-
-#~ msgid "Normal Covers"
-#~ msgstr "Gewone hoesjes"
-
-#~ msgid "Not Found"
-#~ msgstr "Niet gevonden"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "Geen DOL/ELF bestand."
-
-#~ msgid "Reset to standard BGM?"
-#~ msgstr "Reset naar standaard achtergrond muziek?"
-
-#~ msgid "Save Failed"
-#~ msgstr "Opslaan mislukt"
-
-#~ msgid "Selected DOL"
-#~ msgstr "Gekozen DOL"
-
-#~ msgid "Standard"
-#~ msgstr "Standaard"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "Locatie TXT cheatcodes gewijzigd"
-
-#~ msgid "Theme Download Path changed"
-#~ msgstr "Thema download locatie gewijzigd"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "Locatie thema gewijzigd"
-
-#~ msgid "USB Loader GX will only run with Hermes CIOS rev 4! Please make sure you have revision 4 installed!"
-#~ msgstr "USB Loader GX werkt alleen met Hermes cIOS rev 4! Zorg dat je revisie 4 hebt geïnstalleerd!"
-
-#~ msgid "Update Path changed."
-#~ msgstr "Updatelocatie gewijzigd."
-
-#~ msgid "WIP Patches Path changed"
-#~ msgstr "Locatie WIP Patches gewijzigd"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "Locatie WiiTDB gewijzigd"
-
-#~ msgid "You are about to delete "
-#~ msgstr "Je wilt nu verwijderen: "
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "Je wilt favorieten tonen, maar je hebt er geen ingesteld."
-
-#~ msgid "You are using NTFS filesystem. Due to possible write errors to a NTFS partition, installing a game is not possible."
-#~ msgstr "Je gebruikt het NTFS bestandssysteem. Door mogelijke schrijffouten naar een NTFS partitie, is een spel installeren niet mogelijk."
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "Je probeerde een slechte afbeelding te laden"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "bestaat niet! Je hebt iets fout gedaan, Idioot."
-
-#~ msgid "file left"
-#~ msgstr "Bestand resterend"
diff --git a/Languages/english.lang b/Languages/english.lang
deleted file mode 100644
index 3f9c5141..00000000
--- a/Languages/english.lang
+++ /dev/null
@@ -1,1198 +0,0 @@
-# USB Loader GX language source file.
-# english.lang - rxxx
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2009-10-01 01:00+0200\n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr ""
-
-msgid " could not be downloaded."
-msgstr ""
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr ""
-
-msgid " is not on the server."
-msgstr ""
-
-msgid "2D Cover Path"
-msgstr ""
-
-msgid "3D Cover Path"
-msgstr ""
-
-msgid "3D Covers"
-msgstr ""
-
-msgid ">> Deleting tickets..."
-msgstr ""
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ""
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ""
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ""
-
-msgid ">> Deleting title ...Ok!"
-msgstr ""
-
-msgid ">> Deleting title contents..."
-msgstr ""
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ""
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ""
-
-msgid ">> Deleting title..."
-msgstr ""
-
-msgid ">> Finishing installation..."
-msgstr ""
-
-msgid ">> Installing content #"
-msgstr ""
-
-msgid ">> Installing ticket..."
-msgstr ""
-
-msgid ">> Installing title..."
-msgstr ""
-
-msgid ">> Reading WAD data..."
-msgstr ""
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ""
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ""
-
-msgid "AUTO"
-msgstr ""
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr ""
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr ""
-
-msgid "Alternate DOL"
-msgstr ""
-
-msgid "App Language"
-msgstr ""
-
-msgid "Apr"
-msgstr ""
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr ""
-
-msgid "Aug"
-msgstr ""
-
-msgid "Author:"
-msgstr ""
-
-msgid "AutoInit Network"
-msgstr ""
-
-msgid "BCA Codes Path"
-msgstr ""
-
-msgid "BETA revisions"
-msgstr ""
-
-msgid "Back"
-msgstr ""
-
-msgid "Back to HBC or Wii Menu"
-msgstr ""
-
-msgid "Back to Loader"
-msgstr ""
-
-msgid "Backgroundmusic"
-msgstr ""
-
-msgid "Big thanks to:"
-msgstr ""
-
-msgid "Block IOS Reload"
-msgstr ""
-
-msgid "Boot/Standard"
-msgstr ""
-
-msgid "Boot?"
-msgstr ""
-
-msgid "Can't be formatted"
-msgstr ""
-
-msgid "Can't create directory"
-msgstr ""
-
-msgid "Can't create file"
-msgstr ""
-
-msgid "Can't delete:"
-msgstr ""
-
-msgid "Cancel"
-msgstr ""
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr ""
-
-msgid "Cheatfile is blank"
-msgstr ""
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr ""
-
-msgid "Click to change game ID"
-msgstr ""
-
-msgid "Clock"
-msgstr ""
-
-msgid "Close"
-msgstr ""
-
-msgid "Code Download"
-msgstr ""
-
-#, c-format
-msgid "Coded by: %s"
-msgstr ""
-
-msgid "Coding:"
-msgstr ""
-
-msgid "Connection lost..."
-msgstr ""
-
-msgid "Console"
-msgstr ""
-
-msgid "Console Locked"
-msgstr ""
-
-msgid "Console should be unlocked to modify it."
-msgstr ""
-
-msgid "Continue to install game?"
-msgstr ""
-
-msgid "Controllevel"
-msgstr ""
-
-msgid "Correct Password"
-msgstr ""
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr ""
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr ""
-
-msgid "Could not initialize network!"
-msgstr ""
-
-msgid "Could not open Disc"
-msgstr ""
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr ""
-
-msgid "Cover Download"
-msgstr ""
-
-msgid "Create"
-msgstr ""
-
-msgid "Credits"
-msgstr ""
-
-msgid "Custom Paths"
-msgstr ""
-
-msgid "DOL Path"
-msgstr ""
-
-msgid "Dec"
-msgstr ""
-
-msgid "Default"
-msgstr ""
-
-msgid "Default Gamesettings"
-msgstr ""
-
-msgid "Default Settings"
-msgstr ""
-
-msgid "Delete"
-msgstr ""
-
-msgid "Delete ?"
-msgstr ""
-
-msgid "Delete Cheat GCT"
-msgstr ""
-
-msgid "Delete Cheat TXT"
-msgstr ""
-
-msgid "Delete Cover Artwork"
-msgstr ""
-
-msgid "Delete Disc Artwork"
-msgstr ""
-
-msgid "Design:"
-msgstr ""
-
-msgid "Developed by"
-msgstr ""
-
-msgid "Directory does not exist!"
-msgstr ""
-
-msgid "Disc Artwork Download"
-msgstr ""
-
-msgid "Disc Artwork Path"
-msgstr ""
-
-msgid "Disc Images"
-msgstr ""
-
-msgid "Display"
-msgstr ""
-
-msgid "Display as a carousel"
-msgstr ""
-
-msgid "Display as a grid"
-msgstr ""
-
-msgid "Display as a list"
-msgstr ""
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr ""
-
-msgid "Do you want to apply it now?"
-msgstr ""
-
-msgid "Do you want to change language?"
-msgstr ""
-
-msgid "Do you want to download this theme?"
-msgstr ""
-
-msgid "Do you want to format:"
-msgstr ""
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr ""
-
-msgid "Do you wish to update/download all language files?"
-msgstr ""
-
-msgid "Done!"
-msgstr ""
-
-msgid "Download"
-msgstr ""
-
-msgid "Download Boxart image?"
-msgstr ""
-
-msgid "Download Discart image?"
-msgstr ""
-
-msgid "Download Now"
-msgstr ""
-
-msgid "Download failed."
-msgstr ""
-
-msgid "Download finished"
-msgstr ""
-
-msgid "Download request failed."
-msgstr ""
-
-msgid "Downloading Page List:"
-msgstr ""
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr ""
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr ""
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr ""
-
-msgid "ERROR:"
-msgstr ""
-
-msgid "ERROR: Can't set up theme."
-msgstr ""
-
-msgid "Error"
-msgstr ""
-
-msgid "Error !"
-msgstr ""
-
-msgid "Error 002 fix"
-msgstr ""
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr ""
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr ""
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr ""
-
-msgid "Error:"
-msgstr ""
-
-msgid "Extracting files..."
-msgstr ""
-
-msgid "FAT: Use directories"
-msgstr ""
-
-msgid "Failed formating"
-msgstr ""
-
-msgid "Failed to extract."
-msgstr ""
-
-msgid "Failed to open partition"
-msgstr ""
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr ""
-
-msgid "File not found."
-msgstr ""
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr ""
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr ""
-
-msgid "Format"
-msgstr ""
-
-msgid "Formatting, please wait..."
-msgstr ""
-
-msgid "Free Space"
-msgstr ""
-
-msgid "Full Shutdown"
-msgstr ""
-
-msgid "GCT Cheatcodes Path"
-msgstr ""
-
-msgid "GCT File created"
-msgstr ""
-
-msgid "GUI Settings"
-msgstr ""
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr ""
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr ""
-
-msgid "Game Load"
-msgstr ""
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr ""
-
-msgid "Game Sound Mode"
-msgstr ""
-
-msgid "Game Sound Volume"
-msgstr ""
-
-msgid "Game is already installed:"
-msgstr ""
-
-msgid "Game partition"
-msgstr ""
-
-msgid "Games"
-msgstr ""
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr ""
-
-msgid "Homebrew Apps Path"
-msgstr ""
-
-msgid "Homebrew Launcher"
-msgstr ""
-
-msgid "Hour"
-msgstr ""
-
-msgid "How do you want to update?"
-msgstr ""
-
-msgid "How to Shutdown?"
-msgstr ""
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr ""
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr ""
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr ""
-
-msgid "Initializing Network"
-msgstr ""
-
-msgid "Insert Disk"
-msgstr ""
-
-msgid "Insert a Wii Disc!"
-msgstr ""
-
-msgid "Insert an SD-Card to save."
-msgstr ""
-
-msgid "Insert an SD-Card to use this option."
-msgstr ""
-
-msgid "Install"
-msgstr ""
-
-msgid "Install Error!"
-msgstr ""
-
-msgid "Install a game"
-msgstr ""
-
-msgid "Install partitions"
-msgstr ""
-
-msgid "Installing content... Ok!"
-msgstr ""
-
-msgid "Installing game:"
-msgstr ""
-
-msgid "Installing ticket... Ok!"
-msgstr ""
-
-msgid "Installing title... Ok!"
-msgstr ""
-
-msgid "Installing wad"
-msgstr ""
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr ""
-
-msgid "Jan"
-msgstr ""
-
-msgid "July"
-msgstr ""
-
-msgid "June"
-msgstr ""
-
-msgid "Keep"
-msgstr ""
-
-msgid "Keyboard"
-msgstr ""
-
-msgid "Language File"
-msgstr ""
-
-msgid "Language change:"
-msgstr ""
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr ""
-
-msgid "Load"
-msgstr ""
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr ""
-
-msgid "Load this DOL as alternate DOL?"
-msgstr ""
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr ""
-
-msgid "Loading standard music."
-msgstr ""
-
-msgid "Lock Console"
-msgstr ""
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr ""
-
-msgid "Mark new games"
-msgstr ""
-
-msgid "May"
-msgstr ""
-
-msgid "Missing files"
-msgstr ""
-
-msgid "Mount DVD drive"
-msgstr ""
-
-msgid "Music Loop Mode"
-msgstr ""
-
-msgid "Music Volume"
-msgstr ""
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr ""
-
-msgid "No"
-msgstr ""
-
-msgid "No Cheatfile found"
-msgstr ""
-
-msgid "No DOL file found on disc."
-msgstr ""
-
-msgid "No SD-Card inserted!"
-msgstr ""
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr ""
-
-msgid "No data could be read."
-msgstr ""
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr ""
-
-msgid "No new updates."
-msgstr ""
-
-msgid "No themes found on the site."
-msgstr ""
-
-msgid "Not a WAD file."
-msgstr ""
-
-msgid "Not a Wii Disc"
-msgstr ""
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr ""
-
-msgid "Not enough free space!"
-msgstr ""
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr ""
-
-msgid "Nov"
-msgstr ""
-
-msgid "OFF"
-msgstr ""
-
-msgid "OK"
-msgstr ""
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr ""
-
-msgid "Official Site:"
-msgstr ""
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr ""
-
-msgid "Partition"
-msgstr ""
-
-msgid "Password"
-msgstr ""
-
-msgid "Password Changed"
-msgstr ""
-
-msgid "Password has been changed"
-msgstr ""
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr ""
-
-msgid "Patch Country Strings"
-msgstr ""
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr ""
-
-msgid "Play Count"
-msgstr ""
-
-msgid "Play Next"
-msgstr ""
-
-msgid "Play Previous"
-msgstr ""
-
-msgid "Playing Music:"
-msgstr ""
-
-msgid "Please wait..."
-msgstr ""
-
-msgid "Power off the Wii"
-msgstr ""
-
-msgid "Prompts Buttons"
-msgstr ""
-
-msgid "Published by"
-msgstr ""
-
-msgid "Quick Boot"
-msgstr ""
-
-msgid "Reading WAD data... Ok!"
-msgstr ""
-
-msgid "Receiving file from:"
-msgstr ""
-
-msgid "Released"
-msgstr ""
-
-msgid "Reload SD"
-msgstr ""
-
-msgid "Remove update"
-msgstr ""
-
-msgid "Rename Game on WBFS"
-msgstr ""
-
-msgid "Reset BG Music"
-msgstr ""
-
-msgid "Reset Playcounter"
-msgstr ""
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr ""
-
-msgid "Return"
-msgstr ""
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr ""
-
-msgid "Rumble"
-msgstr ""
-
-msgid "SFX Volume"
-msgstr ""
-
-msgid "Save"
-msgstr ""
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr ""
-
-msgid "Saved"
-msgstr ""
-
-msgid "Screensaver"
-msgstr ""
-
-msgid "Select"
-msgstr ""
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr ""
-
-msgid "Sept"
-msgstr ""
-
-msgid "Set Search-Filter"
-msgstr ""
-
-msgid "Settings"
-msgstr ""
-
-msgid "Shutdown System"
-msgstr ""
-
-msgid "Shutdown to Idle"
-msgstr ""
-
-msgid "Sort alphabetically"
-msgstr ""
-
-msgid "Sort by rank"
-msgstr ""
-
-msgid "Sort order by most played"
-msgstr ""
-
-msgid "Sound"
-msgstr ""
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr ""
-
-msgid "Success"
-msgstr ""
-
-msgid "Success:"
-msgstr ""
-
-msgid "Successfully Saved"
-msgstr ""
-
-msgid "Successfully Updated"
-msgstr ""
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr ""
-
-msgid "Successfully deleted:"
-msgstr ""
-
-msgid "Successfully extracted theme."
-msgstr ""
-
-msgid "Successfully installed:"
-msgstr ""
-
-msgid "TXT Cheatcodes Path"
-msgstr ""
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr ""
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr ""
-
-msgid "Theme Downloader"
-msgstr ""
-
-msgid "Theme Path"
-msgstr ""
-
-msgid "Theme Title:"
-msgstr ""
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr ""
-
-msgid "Title Launcher"
-msgstr ""
-
-msgid "Titles from WiiTDB"
-msgstr ""
-
-msgid "Tooltips"
-msgstr ""
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr ""
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr ""
-
-msgid "USB Loader GX is protected"
-msgstr ""
-
-msgid "Uninstall"
-msgstr ""
-
-msgid "Uninstall Game"
-msgstr ""
-
-msgid "Uninstall Menu"
-msgstr ""
-
-msgid "Uninstalling wad"
-msgstr ""
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr ""
-
-msgid "Unsupported format, try to extract manually."
-msgstr ""
-
-msgid "Update"
-msgstr ""
-
-msgid "Update All"
-msgstr ""
-
-msgid "Update DOL"
-msgstr ""
-
-msgid "Update Files"
-msgstr ""
-
-msgid "Update Path"
-msgstr ""
-
-msgid "Update all Language Files"
-msgstr ""
-
-msgid "Update failed"
-msgstr ""
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr ""
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr ""
-
-msgid "VIDTV Patch"
-msgstr ""
-
-#, c-format
-msgid "Version: %s"
-msgstr ""
-
-msgid "Video Mode"
-msgstr ""
-
-msgid "WIP Patches Path"
-msgstr ""
-
-msgid "Waiting for USB Device"
-msgstr ""
-
-msgid "Waiting..."
-msgstr ""
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr ""
-
-msgid "WiFi Features"
-msgstr ""
-
-msgid "Wii Menu"
-msgstr ""
-
-msgid "Wii Settings"
-msgstr ""
-
-msgid "WiiTDB Files"
-msgstr ""
-
-msgid "WiiTDB Path"
-msgstr ""
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr ""
-
-msgid "Wrong Password"
-msgstr ""
-
-msgid "Yes"
-msgstr ""
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr ""
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr ""
-
-msgid "and translaters for language files updates"
-msgstr ""
-
-msgid "available"
-msgstr ""
-
-msgid "does not exist!"
-msgstr ""
-
-msgid "does not exist! Loading game without cheats."
-msgstr ""
-
-msgid "files left"
-msgstr ""
-
-msgid "files not found on the server!"
-msgstr ""
-
-msgid "for FAT/NTFS support"
-msgstr ""
-
-msgid "for Ocarina"
-msgstr ""
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr ""
-
-msgid "for diverse patches"
-msgstr ""
-
-msgid "for his awesome tool LibWiiGui"
-msgstr ""
-
-msgid "for hosting the themes"
-msgstr ""
-
-msgid "for hosting the update files"
-msgstr ""
-
-msgid "for the USB Loader source"
-msgstr ""
-
-msgid "formatted!"
-msgstr ""
-
-msgid "free"
-msgstr ""
-
-msgid "not set"
-msgstr ""
-
-msgid "of"
-msgstr ""
-
-msgid "seconds left"
-msgstr ""
diff --git a/Languages/finnish.lang b/Languages/finnish.lang
deleted file mode 100644
index 912ecf6f..00000000
--- a/Languages/finnish.lang
+++ /dev/null
@@ -1,1459 +0,0 @@
-# USB Loader GX language source file.
-# finnish.lang - r740
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2009-10-01 01:00+0200\n"
-"Last-Translator: c64rmx\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr "Wad Tallennettu nimellä:"
-
-msgid " could not be downloaded."
-msgstr "Latausta ei voitu suorittaa"
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr ""
-
-msgid " is not on the server."
-msgstr "Tiedostoa ei löydy serveriltä"
-
-msgid "2D Cover Path"
-msgstr "2D Kansien polku"
-
-msgid "3D Cover Path"
-msgstr "3D Kansien polku"
-
-msgid "3D Covers"
-msgstr "3D Kannet"
-
-msgid ">> Deleting tickets..."
-msgstr ">> Tuhotaan lipukkeita..."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> Tuhotaan lipukkeita...VIRHE!"
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> Tuhotaan lipukkeita...Ok!"
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> Tuhotaan nimikettä...VIRHE!"
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> Tuhotaan nimikettä...Ok!"
-
-msgid ">> Deleting title contents..."
-msgstr ">> Tuhotaan nimikkeen sisältöä..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> Tuhotaan nimikkeen sisältöä...VIRHE!"
-
-msgid ">> Deleting title contents...Ok!"
-msgstr "Tuhotaan nimikkeen sisältöä...Ok!"
-
-msgid ">> Deleting title..."
-msgstr ">> Tuhotaan nimikettä..."
-
-msgid ">> Finishing installation..."
-msgstr ">> Viimeistellään asennusta..."
-
-msgid ">> Installing content #"
-msgstr ">> Asennetaan sisältöä #"
-
-msgid ">> Installing ticket..."
-msgstr ">> Asennetaan lipuketta..."
-
-msgid ">> Installing title..."
-msgstr ">> Asennetaan nimikettä..."
-
-msgid ">> Reading WAD data..."
-msgstr ">> Luetaan WAD:ia..."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> Luetaan WAD:ia...VIRHE!"
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> Luetaan WAD:ia...Ok!"
-
-msgid "AUTO"
-msgstr ""
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr ""
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "Kaikki asetukset on nyt käytettävissä."
-
-msgid "Alternate DOL"
-msgstr "Vaihtoehto DOL"
-
-msgid "App Language"
-msgstr "Ohjelman kieli"
-
-msgid "Apr"
-msgstr "huhti"
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "Oletko varma?"
-
-msgid "Aug"
-msgstr "elo"
-
-msgid "Author:"
-msgstr ""
-
-msgid "AutoInit Network"
-msgstr "Autom. verkon käynnistys"
-
-msgid "BCA Codes Path"
-msgstr ""
-
-msgid "BETA revisions"
-msgstr ""
-
-msgid "Back"
-msgstr "Takaisin"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "Takaisin HBC:hen tai Wii Menuun"
-
-msgid "Back to Loader"
-msgstr "HBC"
-
-msgid "Backgroundmusic"
-msgstr "Taustamusiikki"
-
-msgid "Big thanks to:"
-msgstr "Isot kiitokset:"
-
-msgid "Block IOS Reload"
-msgstr "Blokkaa IOS:in uudelleenlataus"
-
-msgid "Boot/Standard"
-msgstr "Käynnistys/Standardi"
-
-msgid "Boot?"
-msgstr "Boottaa?"
-
-msgid "Can't be formatted"
-msgstr "Ei voida formatoida"
-
-msgid "Can't create directory"
-msgstr "Ei voi luoda kansiota"
-
-msgid "Can't create file"
-msgstr ""
-
-msgid "Can't delete:"
-msgstr "Ei voida poistaa:"
-
-msgid "Cancel"
-msgstr "Peruuta"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr ""
-
-msgid "Cheatfile is blank"
-msgstr "Kooditiedosto tyhjä"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "Klikkaa ladataksesi kansia"
-
-msgid "Click to change game ID"
-msgstr "Klikkaa vaihtaaksesi pelin ID"
-
-msgid "Clock"
-msgstr "Kello"
-
-msgid "Close"
-msgstr "Sulje"
-
-msgid "Code Download"
-msgstr "Koodin lataus"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "Koodaus: %s"
-
-msgid "Coding:"
-msgstr "Koodaus"
-
-msgid "Connection lost..."
-msgstr ""
-
-msgid "Console"
-msgstr "Konsoli"
-
-msgid "Console Locked"
-msgstr "Konsoli lukittu"
-
-msgid "Console should be unlocked to modify it."
-msgstr "Avaa konsolin lukitus muokataksesi asetuksia."
-
-msgid "Continue to install game?"
-msgstr "Jatka pelin asennusta?"
-
-msgid "Controllevel"
-msgstr "Hallinta-aste"
-
-msgid "Correct Password"
-msgstr "Oikea salasana"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "GCT tiedostoa ei voitu luoda"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "DIP Moduulia ei voitu alustaa!"
-
-msgid "Could not initialize network!"
-msgstr "Verkkoon ei voitu yhdistää!"
-
-msgid "Could not open Disc"
-msgstr "Levyä ei voitu avata"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr ""
-
-msgid "Cover Download"
-msgstr "Kansien lataus"
-
-msgid "Create"
-msgstr "Luo"
-
-msgid "Credits"
-msgstr "Tekijät"
-
-msgid "Custom Paths"
-msgstr "Omat polut"
-
-msgid "DOL Path"
-msgstr "DOL:in polku"
-
-msgid "Dec"
-msgstr "joulu"
-
-msgid "Default"
-msgstr "Oletus"
-
-msgid "Default Gamesettings"
-msgstr "Oletus peliasetukset"
-
-msgid "Default Settings"
-msgstr "Oletusasetukset"
-
-msgid "Delete"
-msgstr "Tuhoa"
-
-msgid "Delete ?"
-msgstr "Tuhoa ?"
-
-msgid "Delete Cheat GCT"
-msgstr "Tuhoa Koodi GCT"
-
-msgid "Delete Cheat TXT"
-msgstr "Tuhoa Koodi TXT"
-
-msgid "Delete Cover Artwork"
-msgstr "Tuhoa kannet"
-
-msgid "Delete Disc Artwork"
-msgstr "Tuhoa levykuvat"
-
-msgid "Design:"
-msgstr "Suunnittelu"
-
-msgid "Developed by"
-msgstr "Kehitys"
-
-msgid "Directory does not exist!"
-msgstr ""
-
-msgid "Disc Artwork Download"
-msgstr "Levykuvien lataus"
-
-msgid "Disc Artwork Path"
-msgstr "Levykuvien polku"
-
-msgid "Disc Images"
-msgstr "Levykuvat"
-
-msgid "Display"
-msgstr "Näyttö"
-
-msgid "Display as a carousel"
-msgstr "Näytä karusellina"
-
-msgid "Display as a grid"
-msgstr "Näytä taulukkona"
-
-msgid "Display as a list"
-msgstr "Näytä listana"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "Haluatko varmasti formatoida:"
-
-msgid "Do you want to apply it now?"
-msgstr ""
-
-msgid "Do you want to change language?"
-msgstr "Haluatko vaihtaa kielen?"
-
-msgid "Do you want to download this theme?"
-msgstr ""
-
-msgid "Do you want to format:"
-msgstr "Haluatko formatoida:"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "Haluatko käyttää vaihtoehtoista DOL tiedostoa jonka tiedetään toimivan?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "Haluatko päivittää/ladata kaikki kielitiedostot?"
-
-msgid "Done!"
-msgstr "Valmis!"
-
-msgid "Download"
-msgstr ""
-
-msgid "Download Boxart image?"
-msgstr "Lataa kansikuva?"
-
-msgid "Download Discart image?"
-msgstr "Lataa levykuva?"
-
-msgid "Download Now"
-msgstr "Lataa nyt"
-
-msgid "Download failed."
-msgstr ""
-
-msgid "Download finished"
-msgstr "Lataus valmistunut"
-
-msgid "Download request failed."
-msgstr ""
-
-msgid "Downloading Page List:"
-msgstr ""
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "Lataa tiedostoa:"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr ""
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "VIRHE"
-
-msgid "ERROR:"
-msgstr "VIRHE:"
-
-msgid "ERROR: Can't set up theme."
-msgstr ""
-
-msgid "Error"
-msgstr "Virhe"
-
-msgid "Error !"
-msgstr "Virhe !"
-
-msgid "Error 002 fix"
-msgstr "Virhe 002 fix"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "Virhe luettaessa levyä"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "Virhe siirrettäessä dataa."
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "Virhe..."
-
-msgid "Error:"
-msgstr "Virhe:"
-
-msgid "Extracting files..."
-msgstr ""
-
-msgid "FAT: Use directories"
-msgstr ""
-
-msgid "Failed formating"
-msgstr "Formatointi ei onnistunut"
-
-msgid "Failed to extract."
-msgstr ""
-
-msgid "Failed to open partition"
-msgstr "Osion avaus epäonnistui"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr "helmi"
-
-msgid "File not found."
-msgstr "Tiedostoa ei löytynyt"
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "Viimeistelee asennusta... Ok!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr "Käännä-X"
-
-msgid "Format"
-msgstr "Formatoi"
-
-msgid "Formatting, please wait..."
-msgstr "Formatoi, odota..."
-
-msgid "Free Space"
-msgstr "Vapaata tilaa"
-
-msgid "Full Shutdown"
-msgstr "Täysi sammutus"
-
-msgid "GCT Cheatcodes Path"
-msgstr "GCT Koodien polku"
-
-msgid "GCT File created"
-msgstr "Gct tiedosto luotu"
-
-msgid "GUI Settings"
-msgstr "GUI asetukset"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr ""
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "Kieli"
-
-msgid "Game Load"
-msgstr "Pelin lataus"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "Pelin koko"
-
-msgid "Game Sound Mode"
-msgstr ""
-
-msgid "Game Sound Volume"
-msgstr ""
-
-msgid "Game is already installed:"
-msgstr "Peli on jo asennettu:"
-
-msgid "Game partition"
-msgstr ""
-
-msgid "Games"
-msgstr "Pelejä"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr ""
-
-msgid "Homebrew Apps Path"
-msgstr "Homebrew Apps polku"
-
-msgid "Homebrew Launcher"
-msgstr ""
-
-msgid "Hour"
-msgstr "Tunti"
-
-msgid "How do you want to update?"
-msgstr "Kuinka haluat päivittää?"
-
-msgid "How to Shutdown?"
-msgstr "Miten sammutetaan?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "Jos sinulla ei ole WiFi:ä, paina 1 saadaksesi URL josta voi ladata WiiTDB.zip"
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr ""
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr ""
-
-msgid "Initializing Network"
-msgstr "Yhdistää verkkoon"
-
-msgid "Insert Disk"
-msgstr "Aseta levy Wiihin"
-
-msgid "Insert a Wii Disc!"
-msgstr "Aseta Wii-levy!"
-
-msgid "Insert an SD-Card to save."
-msgstr "Aseta SD-kortti tallentaaksesi asetuksia."
-
-msgid "Insert an SD-Card to use this option."
-msgstr "Aseta SD-kortti käyttääksesi tätä vaihtoehtoa"
-
-msgid "Install"
-msgstr "Asenna"
-
-msgid "Install Error!"
-msgstr "Asennusvirhe!"
-
-msgid "Install a game"
-msgstr "Asenna peli"
-
-msgid "Install partitions"
-msgstr ""
-
-msgid "Installing content... Ok!"
-msgstr "Asennetaan sisältöä... Ok!"
-
-msgid "Installing game:"
-msgstr "Asentaa peliä:"
-
-msgid "Installing ticket... Ok!"
-msgstr ""
-
-msgid "Installing title... Ok!"
-msgstr ""
-
-msgid "Installing wad"
-msgstr "Asennetaan wadia"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "Näyttää että sinulla on tietoa joka on hyödyllistä meille. Ole ystävällinen ja välitä se kehitystiimille."
-
-msgid "Jan"
-msgstr "tammi"
-
-msgid "July"
-msgstr "heinä"
-
-msgid "June"
-msgstr "kesä"
-
-msgid "Keep"
-msgstr "Pidä"
-
-msgid "Keyboard"
-msgstr "Näppäimistö"
-
-msgid "Language File"
-msgstr "KieliTiedosto"
-
-msgid "Language change:"
-msgstr "Kielen vaihto"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "Kielen polku vaihdettu"
-
-msgid "Load"
-msgstr "Lataa"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "Lataa tiedosto: %s ?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "Lataa tämä vaihtoehtoisesti tämä dol?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "Ladataan standardia kieltä"
-
-msgid "Loading standard music."
-msgstr "Ladataan standardia musiikkia"
-
-msgid "Lock Console"
-msgstr "Lukitse konsoli"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr "maalis"
-
-msgid "Mark new games"
-msgstr ""
-
-msgid "May"
-msgstr "touko"
-
-msgid "Missing files"
-msgstr "tiedostoja puuttuu"
-
-msgid "Mount DVD drive"
-msgstr ""
-
-msgid "Music Loop Mode"
-msgstr ""
-
-msgid "Music Volume"
-msgstr "Voimakkuus"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr ""
-
-msgid "No"
-msgstr "Ei"
-
-msgid "No Cheatfile found"
-msgstr "Kooditiedostoa ei löydy"
-
-msgid "No DOL file found on disc."
-msgstr "Levyltä ei löydy dol tiedostoa"
-
-msgid "No SD-Card inserted!"
-msgstr "SD-korttia ei ole asetettu wiihin!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr ""
-
-msgid "No data could be read."
-msgstr "Tietoa ei voitu lukea"
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "Ei tiedostoja kadoksissa!"
-
-msgid "No new updates."
-msgstr "Ei uusia päivityksiä"
-
-msgid "No themes found on the site."
-msgstr ""
-
-msgid "Not a WAD file."
-msgstr ""
-
-msgid "Not a Wii Disc"
-msgstr "Ei Wii-levy"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "Ei tarpeeksi muistia."
-
-msgid "Not enough free space!"
-msgstr "Ei tarpeeksi tilaa!"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "Ei tuettu formaatti!"
-
-msgid "Nov"
-msgstr "marras"
-
-msgid "OFF"
-msgstr "Pois"
-
-msgid "OK"
-msgstr ""
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "loka"
-
-msgid "Official Site:"
-msgstr "Virallinen sivusto:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "Valvonta"
-
-msgid "Partition"
-msgstr "Osio"
-
-msgid "Password"
-msgstr "Salasana"
-
-msgid "Password Changed"
-msgstr "Salasana muutettu"
-
-msgid "Password has been changed"
-msgstr "Salasana on muutettu"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "Liitä se nettiselaimeesi saadaksesi WiiTDB.zip"
-
-msgid "Patch Country Strings"
-msgstr "Patchaa maa merkkijonot"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "Valitse listasta"
-
-msgid "Play Count"
-msgstr "Pelauksen määrä"
-
-msgid "Play Next"
-msgstr ""
-
-msgid "Play Previous"
-msgstr ""
-
-msgid "Playing Music:"
-msgstr ""
-
-msgid "Please wait..."
-msgstr ""
-
-msgid "Power off the Wii"
-msgstr "Sammuta Wii"
-
-msgid "Prompts Buttons"
-msgstr "Napit"
-
-msgid "Published by"
-msgstr "Julkaisu:"
-
-msgid "Quick Boot"
-msgstr ""
-
-msgid "Reading WAD data... Ok!"
-msgstr "Luetaan WAD:ia... Ok!"
-
-msgid "Receiving file from:"
-msgstr "Ladataan tiedostoa:"
-
-msgid "Released"
-msgstr "Julkaistu"
-
-msgid "Reload SD"
-msgstr "Uudelleenlataa SD"
-
-msgid "Remove update"
-msgstr ""
-
-msgid "Rename Game on WBFS"
-msgstr "Uudelleennimeä peli"
-
-msgid "Reset BG Music"
-msgstr ""
-
-msgid "Reset Playcounter"
-msgstr "Resetoi pelauksen määrä"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "Boottaa..."
-
-msgid "Return"
-msgstr "Palaa"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "Palaa Wii menuun"
-
-msgid "Rumble"
-msgstr "Värinä"
-
-msgid "SFX Volume"
-msgstr "Ääniefektien voimakkuus"
-
-msgid "Save"
-msgstr "Tallenna"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr ""
-
-msgid "Saved"
-msgstr ""
-
-msgid "Screensaver"
-msgstr "Näytönsäästäjä"
-
-msgid "Select"
-msgstr ""
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "Valitse DOL"
-
-msgid "Sept"
-msgstr "syys"
-
-msgid "Set Search-Filter"
-msgstr ""
-
-msgid "Settings"
-msgstr "Asetukset"
-
-msgid "Shutdown System"
-msgstr "Sammuta järjestelmä"
-
-msgid "Shutdown to Idle"
-msgstr "Valmiustila"
-
-msgid "Sort alphabetically"
-msgstr "Järjestä aakkosittain"
-
-msgid "Sort by rank"
-msgstr ""
-
-msgid "Sort order by most played"
-msgstr "Aseta 'pelattu eniten' järjestykseen"
-
-msgid "Sound"
-msgstr "Ääni"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "Erityiskiitokset"
-
-msgid "Success"
-msgstr "Onnistui"
-
-msgid "Success:"
-msgstr "Onnistui:"
-
-msgid "Successfully Saved"
-msgstr "Tallennettu onnistuneesti"
-
-msgid "Successfully Updated"
-msgstr "Päivitetty onnistuneesti"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr ""
-
-msgid "Successfully deleted:"
-msgstr "Poistettu onnistuneesti:"
-
-msgid "Successfully extracted theme."
-msgstr ""
-
-msgid "Successfully installed:"
-msgstr "Asennettu onnistuneesti:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "TXT koodien polku"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr ""
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr ""
-
-msgid "Theme Downloader"
-msgstr ""
-
-msgid "Theme Path"
-msgstr "Teeman sijainti"
-
-msgid "Theme Title:"
-msgstr ""
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "Aikaa jäljellä:"
-
-msgid "Title Launcher"
-msgstr "Nimilaukaisin"
-
-msgid "Titles from WiiTDB"
-msgstr "Nimet WiiTDB:stä"
-
-msgid "Tooltips"
-msgstr "Vinkit"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr ""
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "USB-laitetta ei löytynyt"
-
-msgid "USB Loader GX is protected"
-msgstr "USB Loader GX on suojattu."
-
-msgid "Uninstall"
-msgstr "Poista"
-
-msgid "Uninstall Game"
-msgstr "Poista peli"
-
-msgid "Uninstall Menu"
-msgstr "Poistomenu"
-
-msgid "Uninstalling wad"
-msgstr "Poistetaan wad:ia"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "Avaa konsoli käyttääksesi tätä vaihtoehtoa"
-
-msgid "Unsupported format, try to extract manually."
-msgstr ""
-
-msgid "Update"
-msgstr "Päivitä"
-
-msgid "Update All"
-msgstr "Päivitä kaikki"
-
-msgid "Update DOL"
-msgstr "Päivitä DOL"
-
-msgid "Update Files"
-msgstr "Päivitä tiedostot"
-
-msgid "Update Path"
-msgstr "Päivityspolku"
-
-msgid "Update all Language Files"
-msgstr "Päivitä kaikki kielitiedostot"
-
-msgid "Update failed"
-msgstr "Päivitys epäonnistui"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "Päivittää kielitiedostoja:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr ""
-
-msgid "VIDTV Patch"
-msgstr "VIDTV korjaus"
-
-#, c-format
-msgid "Version: %s"
-msgstr "Versio: %s"
-
-msgid "Video Mode"
-msgstr "Videotila"
-
-msgid "WIP Patches Path"
-msgstr ""
-
-msgid "Waiting for USB Device"
-msgstr "Odottaa USB-laitetta..."
-
-msgid "Waiting..."
-msgstr "Odottaa..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "Mitä haluat päivittää?"
-
-msgid "WiFi Features"
-msgstr "WiFi ominaisuudet"
-
-msgid "Wii Menu"
-msgstr "Wii Menu"
-
-msgid "Wii Settings"
-msgstr "Wii asetukset"
-
-msgid "WiiTDB Files"
-msgstr "WiiTDB tiedostot"
-
-msgid "WiiTDB Path"
-msgstr "WiiTDB polku"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr ""
-
-msgid "Wrong Password"
-msgstr "Väärä salasana"
-
-msgid "Yes"
-msgstr "Kyllä"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr ""
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "URL:si on tallennettu %WiiTDB_URL.txt."
-
-msgid "and translaters for language files updates"
-msgstr ""
-
-msgid "available"
-msgstr "Saatavilla"
-
-msgid "does not exist!"
-msgstr "Ei löydy!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "Ei löydy! Ladataan peli ilman koodeja."
-
-msgid "files left"
-msgstr "Tiedostoja jäljellä"
-
-msgid "files not found on the server!"
-msgstr "tiedostoja ei löytynyt serveriltä!"
-
-msgid "for FAT/NTFS support"
-msgstr ""
-
-msgid "for Ocarina"
-msgstr ""
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "WiiTDB:stä ja kansien hostauksesta"
-
-msgid "for diverse patches"
-msgstr "Erinäisistä patcheista"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "Hänen hienosta ohjelmasta LibWiiGui"
-
-msgid "for hosting the themes"
-msgstr ""
-
-msgid "for hosting the update files"
-msgstr "Tiedostojen hostauksesta"
-
-msgid "for the USB Loader source"
-msgstr "lähdekoodin julkaisemisesta"
-
-msgid "formatted!"
-msgstr "formatoitu!"
-
-msgid "free"
-msgstr "vapaana"
-
-msgid "not set"
-msgstr "ei asetettu"
-
-msgid "of"
-msgstr "josta"
-
-msgid "seconds left"
-msgstr "sekuntia jäljellä"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (Kaikille)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (Lapset 7+)"
-
-#~ msgid "1 hour"
-#~ msgstr " 1 tunti"
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (Teinit 12+)"
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (Teinit 16+)"
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (K18)"
-
-#~ msgid "An Error occured"
-#~ msgstr "Tapahtui virhe"
-
-#~ msgid "Both"
-#~ msgstr "Molemmat"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "Tarkastetaan päivityksiä"
-
-#~ msgid "Console Default"
-#~ msgstr "Konsolin oletus"
-
-#~ msgid "Customs/Original"
-#~ msgstr "Omat/Alkuperäiset"
-
-#~ msgid "Disc Default"
-#~ msgstr "Pelin oletus"
-
-#~ msgid "DiskFlip"
-#~ msgstr "Levynvaihto"
-
-#~ msgid "Downloading"
-#~ msgstr "Lataa"
-
-#~ msgid "Dutch"
-#~ msgstr "Hollanti"
-
-#~ msgid "English"
-#~ msgstr "Englanti"
-
-#~ msgid "French"
-#~ msgstr "Ranska"
-
-#~ msgid "Game ID"
-#~ msgstr "Peli ID"
-
-#~ msgid "Game Region"
-#~ msgstr "Alue"
-
-#~ msgid "German"
-#~ msgstr "Saksa"
-
-#~ msgid "Italian"
-#~ msgstr "Italia"
-
-#~ msgid "Japanese"
-#~ msgstr "Japani"
-
-#~ msgid "Korean"
-#~ msgstr "Korea"
-
-#~ msgid "Left"
-#~ msgstr "Vasen"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "Kuin wii-menu"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "Lataa SD:ltä/USB:ltä"
-
-#~ msgid "Locked"
-#~ msgstr "Lukittu"
-
-#~ msgid "Neither"
-#~ msgstr "Ei kumpikaan"
-
-#~ msgid "Next"
-#~ msgstr "Seuraava"
-
-#~ msgid "Normal"
-#~ msgstr "Normaali"
-
-#~ msgid "ON"
-#~ msgstr "Päälle"
-
-#~ msgid "Only Customs"
-#~ msgstr "Vain omatekoiset"
-
-#~ msgid "Only Original"
-#~ msgstr "Vain alkuperäinen"
-
-#~ msgid "Only for Install"
-#~ msgstr "Ainoastaan asennusta varten"
-
-#~ msgid "Original/Customs"
-#~ msgstr "Alkuperäinen/Omatekoinen"
-
-#~ msgid "Prev"
-#~ msgstr "Edellinen"
-
-#~ msgid "Right"
-#~ msgstr "Oikea"
-
-#~ msgid "SChinese"
-#~ msgstr "SKiina"
-
-#~ msgid "Spanish"
-#~ msgstr "Espanja"
-
-#~ msgid "System Default"
-#~ msgstr "Wiin oletus"
-
-#~ msgid "TChinese"
-#~ msgstr "TKiina"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "Wad tiedostoa ei asennettu mutta sitä ei voitu tuhota SD-kortilta"
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "Wad asennus epäonnistui: %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "Wadia (%s) jonka juuri latasit ei voitu avata."
-
-#~ msgid "Unlocked"
-#~ msgstr "Avattu"
-
-#~ msgid "Update to"
-#~ msgstr "Päivitä:"
-
-#~ msgid "Updating"
-#~ msgstr "Päivittää"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "Päivittää kielitiedostoja..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "Päivittää WiiTDB.zip"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "Laajakuva korjaus"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "Takaisin Wii Menuun"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "Tutkitaan olemassa olevia kansia"
-
-#~ msgid "Confirm"
-#~ msgstr "Varmista"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "WBFS osiota ei löytynyt."
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "WBFS osiota ei voitu avata"
-
-#~ msgid "Could not read the disc."
-#~ msgstr "Levyä ei voitu lukea"
-
-#~ msgid "Could not set USB."
-#~ msgstr "USB:tä ei voitu asettaa"
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "Kansien polku muutettu"
-
-#~ msgid "DOL path changed"
-#~ msgstr "DOL:in polku muutettu"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "Levykuvien polku muutettu"
-
-#~ msgid "Display favorites"
-#~ msgstr "Näytä suosikit"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "Haluatko odottaa 30 sekuntia?"
-
-#~ msgid "Force"
-#~ msgstr "Pakota"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "GCT Koodien polku muutettu"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "Homebrew Apps polku vaihdettu"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "Aseta SD-kortti ladataksesi kansia."
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "Todennäköisesti sisältää ulottuvuuksia jotka eivät ole jaollisia neljällä"
-
-#~ msgid "Network init error"
-#~ msgstr "Verkon alustusvirhe"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr ".dol tai .elf tiedostoja ei löydy"
-
-#~ msgid "No Favorites"
-#~ msgstr "Ei suosikkeja"
-
-#~ msgid "No USB Device"
-#~ msgstr "Ei USB-laitetta"
-
-#~ msgid "No USB Device found."
-#~ msgstr "USB-laitetta ei löytynyt."
-
-#~ msgid "Normal Covers"
-#~ msgstr "Normaalit kannet"
-
-#~ msgid "Not Found"
-#~ msgstr "Ei löytynyt"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "Tiedosto ei ole DOL/ELF."
-
-#~ msgid "Save Failed"
-#~ msgstr "Tallennus ei onnistunut"
-
-#~ msgid "Selected DOL"
-#~ msgstr "Valittu DOL"
-
-#~ msgid "Standard"
-#~ msgstr "Standardi"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "TXT koodien polku muutettu"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "Teeman sijainti muutettu"
-
-#~ msgid "Update Path changed."
-#~ msgstr "Päivityspolku muutettu"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "WiiTDB polku muutettu"
-
-#~ msgid "You are about to delete "
-#~ msgstr "Olet tuhoamassa "
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "Olet valinnut näyttääksesi suosikit mutta sinulla ei ole valittuna yhtään."
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "Yritit ladata huonoa levykuvaa"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "Ei löydy! Kusit jotain, Typerys!"
-
-#~ msgid "file left"
-#~ msgstr "Tiedosto jäljellä"
diff --git a/Languages/french.lang b/Languages/french.lang
deleted file mode 100644
index 06cbe4c4..00000000
--- a/Languages/french.lang
+++ /dev/null
@@ -1,1555 +0,0 @@
-# USB Loader GX language source file.
-# French V13.1 r931
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2009-10-01 01:00+0200\n"
-"Last-Translator: Kin8\n"
-"Language-Team: Badablek, Amour, ikya & Kin8\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr "WAD Sauvegardé sous:"
-
-msgid " could not be downloaded."
-msgstr " ne peut pas être téléchargé."
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr " sauvegardé. Certains codes ne peuvent fonctionner conjointement. En cas de mauvais résultats, ouvrez-le avec un réel éditeur de texte pour obtenir plus d'informations."
-
-msgid " is not on the server."
-msgstr " indisponible sur le serveur."
-
-msgid "2D Cover Path"
-msgstr "Dossier Jaquettes 2D"
-
-msgid "3D Cover Path"
-msgstr "Dossier Jaquettes 3D"
-
-msgid "3D Covers"
-msgstr "Jaquettes 3D"
-
-msgid ">> Deleting tickets..."
-msgstr ">> Suppression tickets..."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> Suppression tickets...ERREUR!"
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> Suppression tickets...OK!"
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> Suppression titre...ERREUR!"
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> Suppression titre...OK!"
-
-msgid ">> Deleting title contents..."
-msgstr ">> Suppression contenus titre..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> Suppression contenus titre...ERREUR!"
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> Suppression contenus titre...OK!"
-
-msgid ">> Deleting title..."
-msgstr ">> Suppression titre..."
-
-msgid ">> Finishing installation..."
-msgstr ">> Finalisation de l'installation..."
-
-msgid ">> Installing content #"
-msgstr ">> Installation contenu #"
-
-msgid ">> Installing ticket..."
-msgstr ">> Installation ticket..."
-
-msgid ">> Installing title..."
-msgstr ">> Installation titre..."
-
-msgid ">> Reading WAD data..."
-msgstr ">> Lecture données WAD..."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> Lecture données WAD...ERREUR!"
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> Lecture données WAD...OK!"
-
-msgid "AUTO"
-msgstr ""
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr "Toutes partitions"
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "Toutes les fonctionnalités sont déverrouillées."
-
-msgid "Alternate DOL"
-msgstr "DOL Alternatif"
-
-msgid "App Language"
-msgstr "Langue d'interface"
-
-msgid "Apr"
-msgstr "Avr"
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "Êtes-vous sûr ?"
-
-msgid "Aug"
-msgstr "Août"
-
-msgid "Author:"
-msgstr "Auteur:"
-
-msgid "AutoInit Network"
-msgstr "AutoInit Réseau"
-
-msgid "BCA Codes Path"
-msgstr "Dossier Codes BCA"
-
-msgid "BETA revisions"
-msgstr "Révisions BETA"
-
-msgid "Back"
-msgstr "Retour"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "Retour HBC / Menu Wii"
-
-msgid "Back to Loader"
-msgstr "Chaîne Homebrew"
-
-msgid "Backgroundmusic"
-msgstr "Fond sonore"
-
-msgid "Big thanks to:"
-msgstr "Grand merci à:"
-
-msgid "Block IOS Reload"
-msgstr "Bloquer IOS Reload"
-
-msgid "Boot/Standard"
-msgstr ""
-
-msgid "Boot?"
-msgstr "Lancer ?"
-
-msgid "Can't be formatted"
-msgstr "Formatage impossible"
-
-msgid "Can't create directory"
-msgstr "Création du répertoire impossible"
-
-msgid "Can't create file"
-msgstr "Création du fichier impossible"
-
-msgid "Can't delete:"
-msgstr "Impossible de supprimer:"
-
-msgid "Cancel"
-msgstr "Annuler"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr "Changer Dossier"
-
-msgid "Cheatfile is blank"
-msgstr "Fichier de triche vide"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "Téléchargement des jaquettes"
-
-msgid "Click to change game ID"
-msgstr "Changer l'ID du Jeu"
-
-msgid "Clock"
-msgstr "Horloge"
-
-msgid "Close"
-msgstr "Fermer"
-
-msgid "Code Download"
-msgstr "Téléchargement Codes"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "Développé par: %s"
-
-msgid "Coding:"
-msgstr "Développement:"
-
-msgid "Connection lost..."
-msgstr "Connexion perdue..."
-
-msgid "Console"
-msgstr ""
-
-msgid "Console Locked"
-msgstr "Console verrouillée"
-
-msgid "Console should be unlocked to modify it."
-msgstr "La console doit être déverrouillée."
-
-msgid "Continue to install game?"
-msgstr "Continuer l'installation ?"
-
-msgid "Controllevel"
-msgstr "Niveau moral"
-
-msgid "Correct Password"
-msgstr "Mot de passe correct"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "Impossible de créer le fichier GCT"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "Initialisation module DIP impossible !"
-
-msgid "Could not initialize network!"
-msgstr "Initialisation réseau impossible !"
-
-msgid "Could not open Disc"
-msgstr "Ouverture DVD impossible"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "Sauvegarde impossible"
-
-msgid "Cover Download"
-msgstr "Téléchargement Jaquettes"
-
-msgid "Create"
-msgstr "Créer"
-
-msgid "Credits"
-msgstr "Crédits"
-
-msgid "Custom Paths"
-msgstr "Personnalisation Dossiers"
-
-msgid "DOL Path"
-msgstr "Dossier DOL Alternatif"
-
-msgid "Dec"
-msgstr "Déc"
-
-msgid "Default"
-msgstr "Par défaut"
-
-msgid "Default Gamesettings"
-msgstr "Reset Paramètres Jeu"
-
-msgid "Default Settings"
-msgstr "Reset Paramètres"
-
-msgid "Delete"
-msgstr "Supprimer"
-
-msgid "Delete ?"
-msgstr "Supprimer ?"
-
-msgid "Delete Cheat GCT"
-msgstr "Supprimer GCT de Triche"
-
-msgid "Delete Cheat TXT"
-msgstr "Supprimer TXT de Triche"
-
-msgid "Delete Cover Artwork"
-msgstr "Supprimer la Jaquette"
-
-msgid "Delete Disc Artwork"
-msgstr "Supprimer le Label DVD"
-
-msgid "Design:"
-msgstr "Graphisme:"
-
-msgid "Developed by"
-msgstr "Développé par"
-
-msgid "Directory does not exist!"
-msgstr "Répertoire inexistant!"
-
-msgid "Disc Artwork Download"
-msgstr "Téléch. Labels DVD"
-
-msgid "Disc Artwork Path"
-msgstr "Dossier Labels DVD"
-
-msgid "Disc Images"
-msgstr "Labels DVD"
-
-msgid "Display"
-msgstr "Affichage"
-
-msgid "Display as a carousel"
-msgstr "Carousselle"
-
-msgid "Display as a grid"
-msgstr "Grille"
-
-msgid "Display as a list"
-msgstr "Liste"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "Voulez-vous vraiment supprimer ?"
-
-msgid "Do you want to apply it now?"
-msgstr "L'appliquer maintenant ?"
-
-msgid "Do you want to change language?"
-msgstr "Changer de langue ?"
-
-msgid "Do you want to download this theme?"
-msgstr "Voulez-vous télécharger ce thème ?"
-
-msgid "Do you want to format:"
-msgstr "Voulez-vous formater ?"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "Voulez-vous utiliser le DOL Alternatif actuellement connu comme correct ?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "Voulez-vous actualiser/télécharger tous les fichiers langue ?"
-
-msgid "Done!"
-msgstr "Terminé!"
-
-msgid "Download"
-msgstr "Télécharger"
-
-msgid "Download Boxart image?"
-msgstr "Télécharger les jaquettes ?"
-
-msgid "Download Discart image?"
-msgstr "Télécharger labels DVD ?"
-
-msgid "Download Now"
-msgstr "Télécharger"
-
-msgid "Download failed."
-msgstr "Téléchargement échoué."
-
-msgid "Download finished"
-msgstr "Téléchargement terminé"
-
-msgid "Download request failed."
-msgstr "Demande de téléchargement échouée"
-
-msgid "Downloading Page List:"
-msgstr "Chargement Prévisualisations:"
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "Téléchargement du fichier"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr "Téléchargement de l'image:"
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "ERREUR"
-
-msgid "ERROR:"
-msgstr "ERREUR:"
-
-msgid "ERROR: Can't set up theme."
-msgstr "ERREUR: Configuration thème impossible."
-
-msgid "Error"
-msgstr "Erreur"
-
-msgid "Error !"
-msgstr "Erreur !"
-
-msgid "Error 002 fix"
-msgstr "Correctif Erreur 002"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "Erreur à la lecture du disque"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "Erreur durant le transfert de données."
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "Erreur..."
-
-msgid "Error:"
-msgstr "Erreur:"
-
-msgid "Extracting files..."
-msgstr "Extraction des fichiers..."
-
-msgid "FAT: Use directories"
-msgstr "FAT: Utiliser dossiers"
-
-msgid "Failed formating"
-msgstr "Échec du formatage"
-
-msgid "Failed to extract."
-msgstr "Extraction échouée."
-
-msgid "Failed to open partition"
-msgstr "Échec accès partition"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr "Fév"
-
-msgid "File not found."
-msgstr "Fichier introuvable."
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "Finalisation de l'installation... OK!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr "Inversion-X"
-
-msgid "Format"
-msgstr "Formater"
-
-msgid "Formatting, please wait..."
-msgstr "Formatage en cours, veuillez patienter..."
-
-msgid "Free Space"
-msgstr "Espace restant"
-
-msgid "Full Shutdown"
-msgstr "Éteindre"
-
-msgid "GCT Cheatcodes Path"
-msgstr "Dossier GCT de Triche"
-
-msgid "GCT File created"
-msgstr "Fichier GCT créé"
-
-msgid "GUI Settings"
-msgstr "Configuration GUI"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr "GXtheme.cfg non trouvé dans aucun sous-dossier."
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "Langue du jeu"
-
-msgid "Game Load"
-msgstr "Chargement Jeux"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "Taille du jeu"
-
-msgid "Game Sound Mode"
-msgstr "Mode Son des Jeux"
-
-msgid "Game Sound Volume"
-msgstr "Volume Son des Jeux"
-
-msgid "Game is already installed:"
-msgstr "Le jeu est déjà installé:"
-
-msgid "Game partition"
-msgstr "Partition Jeu"
-
-msgid "Games"
-msgstr "Jeux"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr "Menu HOME"
-
-msgid "Homebrew Apps Path"
-msgstr "Dossier Homebrew Apps"
-
-msgid "Homebrew Launcher"
-msgstr "Menu Homebrew"
-
-msgid "Hour"
-msgstr "heures"
-
-msgid "How do you want to update?"
-msgstr "Comment faire la Mise à Jour ?"
-
-msgid "How to Shutdown?"
-msgstr "Arrêt de la Wii ?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "Pressez 1 pour obtenir un lien personnalisé pour votre WiiTDB.zip"
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "Fichier entrant %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "Fichier entrant %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "Initialisation du réseau"
-
-msgid "Insert Disk"
-msgstr "Insérez un disque"
-
-msgid "Insert a Wii Disc!"
-msgstr "Insérez un disque Wii !"
-
-msgid "Insert an SD-Card to save."
-msgstr "Insérez une carte SD pour enregistrer."
-
-msgid "Insert an SD-Card to use this option."
-msgstr "Insérez une carte SD pour utiliser cette option."
-
-msgid "Install"
-msgstr "Installer"
-
-msgid "Install Error!"
-msgstr "Erreur à l'installation !"
-
-msgid "Install a game"
-msgstr "Installer un jeu"
-
-msgid "Install partitions"
-msgstr "Installation"
-
-msgid "Installing content... Ok!"
-msgstr "Installation contenu... OK!"
-
-msgid "Installing game:"
-msgstr "Installation du jeu:"
-
-msgid "Installing ticket... Ok!"
-msgstr "Installation ticket... OK!"
-
-msgid "Installing title... Ok!"
-msgstr "Installation titre... OK!"
-
-msgid "Installing wad"
-msgstr "Installation WAD"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "SVP, faîtes passer cette information qui serait très utile à la Team USB Loader GX."
-
-msgid "Jan"
-msgstr ""
-
-msgid "July"
-msgstr "Juil"
-
-msgid "June"
-msgstr "Juin"
-
-msgid "Keep"
-msgstr "Garder"
-
-msgid "Keyboard"
-msgstr "Clavier"
-
-msgid "Language File"
-msgstr "Langues"
-
-msgid "Language change:"
-msgstr "Changement Langue:"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "Dossier Langue changé"
-
-msgid "Load"
-msgstr "Charger"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "Charger le fichier de: %s ?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "Charger comme DOL alternatif ?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "Chargement langue par défaut."
-
-msgid "Loading standard music."
-msgstr "Chargement musique standard."
-
-msgid "Lock Console"
-msgstr "Verrouiller la console"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr "Mars"
-
-msgid "Mark new games"
-msgstr "Marqueur nouveau jeu"
-
-msgid "May"
-msgstr "Mai"
-
-msgid "Missing files"
-msgstr "Fichier(s) manquant(s)"
-
-msgid "Mount DVD drive"
-msgstr "Lancer DVD"
-
-msgid "Music Loop Mode"
-msgstr "Mode Boucle Musique"
-
-msgid "Music Volume"
-msgstr "Volume Musique"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "Nouveau DVD Détecté"
-
-msgid "No"
-msgstr "Non"
-
-msgid "No Cheatfile found"
-msgstr "Aucun fichier de triche trouvé"
-
-msgid "No DOL file found on disc."
-msgstr "Aucun DOL trouvé dans ce jeu."
-
-msgid "No SD-Card inserted!"
-msgstr "Aucune carte SD insérée !"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "Aucune selection de triche"
-
-msgid "No data could be read."
-msgstr "Lecture des données impossible."
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "Aucun fichier manquant !"
-
-msgid "No new updates."
-msgstr "Pas de nouvelle Mise à Jour."
-
-msgid "No themes found on the site."
-msgstr "Aucun thème trouvé sur le site."
-
-msgid "Not a WAD file."
-msgstr "Ce n'est pas un fichier WAD"
-
-msgid "Not a Wii Disc"
-msgstr "Ce n'est pas un jeu Wii"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "Mémoire libre insuffisante !"
-
-msgid "Not enough free space!"
-msgstr "Espace libre insuffisant !"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "Format non supporté !"
-
-msgid "Nov"
-msgstr ""
-
-msgid "OFF"
-msgstr "Inactif"
-
-msgid "OK"
-msgstr ""
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr ""
-
-msgid "Official Site:"
-msgstr "Site Officiel:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "Contrôle Parental"
-
-msgid "Partition"
-msgstr ""
-
-msgid "Password"
-msgstr "Mot de passe"
-
-msgid "Password Changed"
-msgstr "Mot de passe modifié"
-
-msgid "Password has been changed"
-msgstr "Le mot de passe a été modifié"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "Collez ce lien dans votre navigateur pour télécharger."
-
-msgid "Patch Country Strings"
-msgstr "Patch Jeux Import"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "Sélectionner"
-
-msgid "Play Count"
-msgstr "Utilisation"
-
-msgid "Play Next"
-msgstr "Jouer Suiv."
-
-msgid "Play Previous"
-msgstr "Jouer Précéd."
-
-msgid "Playing Music:"
-msgstr "Musique Actuelle:"
-
-msgid "Please wait..."
-msgstr "Veuillez patienter..."
-
-msgid "Power off the Wii"
-msgstr "Éteindre la Wii"
-
-msgid "Prompts Buttons"
-msgstr "Interface"
-
-msgid "Published by"
-msgstr "Publié par"
-
-msgid "Quick Boot"
-msgstr "Démarrage rapide"
-
-msgid "Reading WAD data... Ok!"
-msgstr "Lecture données WAD... OK!"
-
-msgid "Receiving file from:"
-msgstr "Réception du fichier de:"
-
-msgid "Released"
-msgstr "Date de sortie"
-
-msgid "Reload SD"
-msgstr "Recharger la SD"
-
-msgid "Remove update"
-msgstr "Supprimer Mise à Jour"
-
-msgid "Rename Game on WBFS"
-msgstr "Renommer un jeu"
-
-msgid "Reset BG Music"
-msgstr "Reset"
-
-msgid "Reset Playcounter"
-msgstr "Reset Utilisation du Jeu"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "Redémarrage..."
-
-msgid "Return"
-msgstr "Retour"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "Retourner au menu Wii"
-
-msgid "Rumble"
-msgstr "Vibrations"
-
-msgid "SFX Volume"
-msgstr "Volume SFX"
-
-msgid "Save"
-msgstr "Enregistrer"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "Sauvegarder la liste des jeux sous"
-
-msgid "Saved"
-msgstr "Sauvegardé"
-
-msgid "Screensaver"
-msgstr "Économiseur d'écran"
-
-msgid "Select"
-msgstr "Choisir"
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "Choisir un DOL"
-
-msgid "Sept"
-msgstr ""
-
-msgid "Set Search-Filter"
-msgstr "Filtre de Recherche"
-
-msgid "Settings"
-msgstr "Paramètres"
-
-msgid "Shutdown System"
-msgstr "Arrêt"
-
-msgid "Shutdown to Idle"
-msgstr "Veille"
-
-msgid "Sort alphabetically"
-msgstr "Ordre Alphabétique"
-
-msgid "Sort by rank"
-msgstr "Classement Favoris"
-
-msgid "Sort order by most played"
-msgstr "Les plus joués"
-
-msgid "Sound"
-msgstr "Sons"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "Remerciements spéciaux à:"
-
-msgid "Success"
-msgstr "Succès"
-
-msgid "Success:"
-msgstr "Succès:"
-
-msgid "Successfully Saved"
-msgstr "Enregistré avec succès"
-
-msgid "Successfully Updated"
-msgstr "Mise à Jour terminée"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr "Mise à Jour terminée. Merci www.techjawa.com"
-
-msgid "Successfully deleted:"
-msgstr "Supprimé avec succès:"
-
-msgid "Successfully extracted theme."
-msgstr "Succès de l'extraction du thème."
-
-msgid "Successfully installed:"
-msgstr "Installé avec succès:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "Dossier TXT de Triche"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "Répertoire indiqué inexistant. Souhaitez-vous le créer ?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr "Dossier Thèmes Téléch."
-
-msgid "Theme Downloader"
-msgstr "Téléchargements Thèmes"
-
-msgid "Theme Path"
-msgstr "Dossier Thème"
-
-msgid "Theme Title:"
-msgstr "Titre du Thème:"
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "Fini dans:"
-
-msgid "Title Launcher"
-msgstr "Menu Chaînes"
-
-msgid "Titles from WiiTDB"
-msgstr "Titres de WiiTDB"
-
-msgid "Tooltips"
-msgstr "Info-bulles"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr "Echec Transfert"
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "Périphérique USB introuvable"
-
-msgid "USB Loader GX is protected"
-msgstr "USB Loader GX est verrouillé"
-
-msgid "Uninstall"
-msgstr "Désinstaller"
-
-msgid "Uninstall Game"
-msgstr "Désinstaller le Jeu"
-
-msgid "Uninstall Menu"
-msgstr "Menu Suppression"
-
-msgid "Uninstalling wad"
-msgstr "Désinstallation wad"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "Cette option requiert le déverrouillage de l'interface."
-
-msgid "Unsupported format, try to extract manually."
-msgstr "Format non supporté, essayez d'extraire manuellement."
-
-msgid "Update"
-msgstr "Mise à Jour"
-
-msgid "Update All"
-msgstr "Totale"
-
-msgid "Update DOL"
-msgstr "DOL seul"
-
-msgid "Update Files"
-msgstr "MàJ Fichiers"
-
-msgid "Update Path"
-msgstr "Dossier Mise à Jour"
-
-msgid "Update all Language Files"
-msgstr "Mise à Jour tous fichiers Langue"
-
-msgid "Update failed"
-msgstr "Mise à Jour échouée"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "Mise à Jour Fichiers Langue:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "Fichier ZIP envoyé et installé dans le répertoire homebrew."
-
-msgid "VIDTV Patch"
-msgstr "Patch VIDTV"
-
-#, c-format
-msgid "Version: %s"
-msgstr ""
-
-msgid "Video Mode"
-msgstr "Mode vidéo"
-
-msgid "WIP Patches Path"
-msgstr "Dossier Patchs WIP"
-
-msgid "Waiting for USB Device"
-msgstr "Attente d'un périphérique USB"
-
-msgid "Waiting..."
-msgstr "En attente..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "Choix Mise à Jour"
-
-msgid "WiFi Features"
-msgstr "Connexion WiFi"
-
-msgid "Wii Menu"
-msgstr "Menu Wii"
-
-msgid "Wii Settings"
-msgstr "Paramètres Wii"
-
-msgid "WiiTDB Files"
-msgstr "WiiTDB"
-
-msgid "WiiTDB Path"
-msgstr "Dossier WiiTDB"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr "Illumination Wii"
-
-msgid "Wrong Password"
-msgstr "Mot de passe incorrect"
-
-msgid "Yes"
-msgstr "Oui"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr "Vous devez choisir ou formater une partition"
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "Sauvegarde de l'URL sous %sWiiTDB_URL.txt."
-
-msgid "and translaters for language files updates"
-msgstr "et traducteurs pour les MàJ fichiers langues"
-
-msgid "available"
-msgstr "disponible"
-
-msgid "does not exist!"
-msgstr "inexistant!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "inexistant! Chargement du jeu sans tricheries."
-
-msgid "files left"
-msgstr "fichiers restants"
-
-msgid "files not found on the server!"
-msgstr "fichiers introuvables sur le serveur !"
-
-msgid "for FAT/NTFS support"
-msgstr "pour le support FAT/NTFS"
-
-msgid "for Ocarina"
-msgstr "pour Ocarina"
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "pour WiiTDB et l'hébergement des jaquettes"
-
-msgid "for diverse patches"
-msgstr "pour les divers patchs"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "pour son outil impressionnant LibWiiGui"
-
-msgid "for hosting the themes"
-msgstr "pour l'hébergement des thèmes"
-
-msgid "for hosting the update files"
-msgstr "pour l'hébergement des Mises à Jour"
-
-msgid "for the USB Loader source"
-msgstr "pour les sources USBLoader"
-
-msgid "formatted!"
-msgstr "formaté !"
-
-msgid "free"
-msgstr "libre"
-
-msgid "not set"
-msgstr "non défini"
-
-msgid "of"
-msgstr "sur"
-
-msgid "seconds left"
-msgstr "secondes restantes"
-
-#~ msgid "Install 1:1 Copy"
-#~ msgstr "Installer Copie 1:1"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (Tous 3+)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (Enfants 7+)"
-
-#~ msgid "1 hour"
-#~ msgstr "1 heure"
-
-#~ msgid "10 min"
-#~ msgstr "10 min."
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (Adolescents 12+)"
-
-#~ msgid "20 min"
-#~ msgstr "20 min."
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (Matures 16+)"
-
-#~ msgid "3 min"
-#~ msgstr "3 min."
-
-#~ msgid "30 min"
-#~ msgstr "30 min."
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (Adultes 18+)"
-
-#~ msgid "5 min"
-#~ msgstr "5 min."
-
-#~ msgid "An Error occured"
-#~ msgstr "Une Erreur s'est produite"
-
-#~ msgid "Are you sure you want to enable Parent Control?"
-#~ msgstr "Confirmation activation du Contrôle Parental ?"
-
-#~ msgid "Both"
-#~ msgstr "Tous"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "Recherche de Mise à Jour"
-
-#~ msgid "Console Default"
-#~ msgstr "Console par défaut"
-
-#~ msgid "Customs/Original"
-#~ msgstr "Persos/Originaux"
-
-#~ msgid "Disc Default"
-#~ msgstr "Disque par défaut"
-
-#~ msgid "DiskFlip"
-#~ msgstr "Inversion Disque"
-
-#~ msgid "Downloading"
-#~ msgstr "Téléchargement"
-
-#~ msgid "Dutch"
-#~ msgstr "Néerlandais"
-
-#~ msgid "English"
-#~ msgstr "Anglais"
-
-#~ msgid "French"
-#~ msgstr "Français"
-
-#~ msgid "GAMEID_Gamename"
-#~ msgstr "IDJEU_NomJeu"
-
-#~ msgid "Game ID"
-#~ msgstr "ID du jeu"
-
-#~ msgid "Game Region"
-#~ msgstr "Région"
-
-#~ msgid "Gamename [GAMEID]"
-#~ msgstr "NomJeu [IDJEU]"
-
-#~ msgid "German"
-#~ msgstr "Allemand"
-
-#~ msgid "Invalid PIN code"
-#~ msgstr "Code PIN invalide"
-
-#~ msgid "Italian"
-#~ msgstr "Italien"
-
-#~ msgid "Japanese"
-#~ msgstr "Japonais"
-
-#~ msgid "Korean"
-#~ msgstr "Coréen"
-
-#~ msgid "Left"
-#~ msgstr "Gauche"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "Menu système"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "Charger sur SD/USB"
-
-#~ msgid "Locked"
-#~ msgstr "Clic pour déverrouiller"
-
-#~ msgid "Loop Directory"
-#~ msgstr "Répéter Dossier"
-
-#~ msgid "Loop Music"
-#~ msgstr "Répéter Musique"
-
-#~ msgid "Loop Sound"
-#~ msgstr "Son en boucle"
-
-#~ msgid "Neither"
-#~ msgstr "Aucun"
-
-#~ msgid "Next"
-#~ msgstr "Suivant"
-
-#~ msgid "None"
-#~ msgstr "Aucun"
-
-#~ msgid "Normal"
-#~ msgstr "4:3"
-
-#~ msgid "ON"
-#~ msgstr "Actif"
-
-#~ msgid "Only Customs"
-#~ msgstr "Personnalisés"
-
-#~ msgid "Only Original"
-#~ msgstr "Originaux"
-
-#~ msgid "Only for Install"
-#~ msgstr "Jeu installé seulement"
-
-#~ msgid "Original/Customs"
-#~ msgstr "Originaux/Persos"
-
-#~ msgid "Parental Control disabled"
-#~ msgstr "Contrôle Parental désactivé"
-
-#~ msgid "Play Once"
-#~ msgstr "Jouer 1 fois"
-
-#~ msgid "Prev"
-#~ msgstr "Précédent"
-
-#~ msgid "Random Directory Music"
-#~ msgstr "Aléatoire"
-
-#~ msgid "Right"
-#~ msgstr "Droite"
-
-#~ msgid "SChinese"
-#~ msgstr "Chinois simplifié"
-
-#~ msgid "Sound+BGM"
-#~ msgstr "Son + Fond sonore"
-
-#~ msgid "Sound+Quiet"
-#~ msgstr "Son + Silence"
-
-#~ msgid "Spanish"
-#~ msgstr "Espagnol"
-
-#~ msgid "System Default"
-#~ msgstr "Système par défaut"
-
-#~ msgid "TChinese"
-#~ msgstr "Chinois traditionnel"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "Le Wad a été installé. Mais ne peut être supprimé de la carte SD."
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "L'installation WAD a échoué avec erreur %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "Ouverture du WAD impossible (%s)."
-
-#~ msgid "Unlock Parental Control"
-#~ msgstr "Déverrouiller Contrôle Parental"
-
-#~ msgid "Unlocked"
-#~ msgstr "Clic pour verrouiller"
-
-#~ msgid "Update to"
-#~ msgstr "vers la"
-
-#~ msgid "Updating"
-#~ msgstr "Mise à Jour"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "Mise à Jour Fichiers Langue..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "Mise à Jour WiiTDB.zip"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "16:9"
-
-#~ msgid "You don't have Parental Control enabled. If you wish to use Parental Control, enable it in the Wii Settings."
-#~ msgstr "Contrôle Parental désactivé. Si vous voulez l'utiliser, activez-le dans les Paramètres de votre Wii."
-
-#~ msgid "%s : %s May not boot correctly if your System Menu is not up to date."
-#~ msgstr "%s : %s Peut ne pas démarrer correctement si votre Menu Système n'est pas à jour."
-
-#~ msgid "BCA Codes Path changed"
-#~ msgstr "Dossier Codes BCA modifié"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "Retour Menu Wii"
-
-#~ msgid "Channels"
-#~ msgstr "Chaînes"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "Contrôle images existantes"
-
-#~ msgid "Confirm"
-#~ msgstr "Confirmer"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "Impossible de trouver une partition WBFS."
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "Ouverture partition WBFS impossible"
-
-#~ msgid "Could not read the disc."
-#~ msgstr "Lecture impossible du DVD."
-
-#~ msgid "Could not set USB."
-#~ msgstr "Accès USB impossible."
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "Dossier des jaquettes modifié"
-
-#~ msgid "DOL path changed"
-#~ msgstr "Dossier DOL alternatif modifié"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "Dossier des labels DVD modifié"
-
-#~ msgid "Display favorites"
-#~ msgstr "Favoris"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "Réessayer pendant 30 sec. ?"
-
-#~ msgid "Enable Parental Control"
-#~ msgstr "Contrôle Parental activé"
-
-#~ msgid "Force"
-#~ msgstr "Forcer"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "Dossier GCT de triche modifié"
-
-#~ msgid "Hermes CIOS"
-#~ msgstr "CIOS d'Hermès"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "Dossier Homebrew Apps modifié"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "Insérez une carte SD pour télécharger les jaquettes."
-
-#~ msgid "Install not possible"
-#~ msgstr "Installation impossible"
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "Il est fort probable que les dimensions ne soient pas des multiples de 4."
-
-#~ msgid "Network init error"
-#~ msgstr "Erreur d'initialisation réseau"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr "Aucun fichier .dol ou .elf trouvé."
-
-#~ msgid "No Favorites"
-#~ msgstr "Pas de favoris"
-
-#~ msgid "No USB Device"
-#~ msgstr "Aucun périphérique USB"
-
-#~ msgid "No USB Device found."
-#~ msgstr "Aucun périphérique USB trouvé."
-
-#~ msgid "No WBFS or FAT/NTFS partition found"
-#~ msgstr "Partition WBFS/FAT/NTFS introuvable"
-
-#~ msgid "Normal Covers"
-#~ msgstr "Jaquettes 2D"
-
-#~ msgid "Not Found"
-#~ msgstr "Non trouvé"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "Ce n'est pas un fichier DOL/ELF"
-
-#~ msgid "Reset to standard BGM?"
-#~ msgstr "Restaurer fond sonore standard ?"
-
-#~ msgid "Save Failed"
-#~ msgstr "Échec de sauvegarde"
-
-#~ msgid "Selected DOL"
-#~ msgstr "Choix du DOL"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "Dossier TXT de Triche modifié"
-
-#~ msgid "Theme Download Path changed"
-#~ msgstr "Dossier Thèmes Téléch. modifié"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "Dossier du thème modifié"
-
-#~ msgid "USB Loader GX will only run with Hermes CIOS rev 4! Please make sure you have revision 4 installed!"
-#~ msgstr "USB Loader GX fonctionne avec le CIOS d'Hermès rev4 seulement! Assurez-vous qu'il soit installé!"
-
-#~ msgid "Update Path changed."
-#~ msgstr "Dossier de Mise à Jour modifié."
-
-#~ msgid "WIP Patches Path changed"
-#~ msgstr "Dossier Patchs WIP modifié"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "Dossier de WiiTDB modifié"
-
-#~ msgid "You are about to delete "
-#~ msgstr "Vous êtes sur le point de supprimer "
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "Vous choisissez d'afficher des favoris alors que vous n'en avez aucun."
-
-#~ msgid "You are using NTFS filesystem. Due to possible write errors to a NTFS partition, installing a game is not possible."
-#~ msgstr "Le système de fichier NTFS est utilisé. En raison à de possibles erreurs d'écriture sur une partition de NTFS, l'installation d'un jeu est impossible."
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "Vous avez tenté de charger une image érronée"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "Inexistant! Quelque chose vous a échappé!"
-
-#~ msgid "file left"
-#~ msgstr "fichier restant"
diff --git a/Languages/german.lang b/Languages/german.lang
deleted file mode 100644
index a97ca3b8..00000000
--- a/Languages/german.lang
+++ /dev/null
@@ -1,1555 +0,0 @@
-# USB Loader GX language source file.
-# german.lang - r931
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2009-10-01 01:00+0200\n"
-"Last-Translator: ZEN.13\n"
-"Language-Team: Snoozer, wishmasterf, Bertilax, ZEN.13\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr " WAD gespeichert als:"
-
-msgid " could not be downloaded."
-msgstr " konnte nicht heruntergeladen werden."
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr " wurde gespeichert. Möglicherweise funktionieren einige der Codes nicht richtig miteinander. Wenn du Probleme hast, öffne den Text in einem Texteditor um mehr Informationen zu erhalten."
-
-msgid " is not on the server."
-msgstr " ist nicht auf dem Server."
-
-msgid "2D Cover Path"
-msgstr "2D Cover"
-
-msgid "3D Cover Path"
-msgstr "3D Cover"
-
-msgid "3D Covers"
-msgstr "3D Cover"
-
-msgid ">> Deleting tickets..."
-msgstr ">> Lösche Tickets..."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> Lösche Tickets...FEHLER! "
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> Lösche Tickets...OK! "
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> Lösche Title...FEHLER! "
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> Lösche Title...OK! "
-
-msgid ">> Deleting title contents..."
-msgstr ">> Lösche Title Inhalte..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> Lösche Title Inhalte...FEHLER! "
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> Lösche Title Inhalte...OK!"
-
-msgid ">> Deleting title..."
-msgstr ">> Lösche Title..."
-
-msgid ">> Finishing installation..."
-msgstr ">> Beende Installation..."
-
-msgid ">> Installing content #"
-msgstr ">> Installiere Inhalt #"
-
-msgid ">> Installing ticket..."
-msgstr ">> Installiere Ticket..."
-
-msgid ">> Installing title..."
-msgstr ">> Installiere Title..."
-
-msgid ">> Reading WAD data..."
-msgstr ">> Lese WAD Daten..."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> Lese WAD Daten...FEHLER! "
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> Lese WAD Daten...OK!"
-
-msgid "AUTO"
-msgstr ""
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr "Alle Partitionen"
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "Alle Funktionen des USB Loader GX sind jetzt freigeschaltet."
-
-msgid "Alternate DOL"
-msgstr "Alternative DOL"
-
-msgid "App Language"
-msgstr "Sprache"
-
-msgid "Apr"
-msgstr "April"
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "Bist du sicher?"
-
-msgid "Aug"
-msgstr "August"
-
-msgid "Author:"
-msgstr "Autor:"
-
-msgid "AutoInit Network"
-msgstr "AutoInit Netzwerk"
-
-msgid "BCA Codes Path"
-msgstr "BCA Codes"
-
-msgid "BETA revisions"
-msgstr "BETA Revisionen"
-
-msgid "Back"
-msgstr "Zurück"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "Zurück zum Homebrew Kanal oder Wii Menü"
-
-msgid "Back to Loader"
-msgstr "Homebrew Kanal"
-
-msgid "Backgroundmusic"
-msgstr "Hintergrundmusik"
-
-msgid "Big thanks to:"
-msgstr "Großen Dank an:"
-
-msgid "Block IOS Reload"
-msgstr "IOS Reload blocken"
-
-msgid "Boot/Standard"
-msgstr "Bootstandard (cIOS)"
-
-msgid "Boot?"
-msgstr "Kanal starten?"
-
-msgid "Can't be formatted"
-msgstr "Kann nicht formatiert werden."
-
-msgid "Can't create directory"
-msgstr "Verzeichnis kann nicht erstellt werden."
-
-msgid "Can't create file"
-msgstr "Datei kann nicht erstellt werden."
-
-msgid "Can't delete:"
-msgstr "Löschen fehlgeschlagen:"
-
-msgid "Cancel"
-msgstr "Abbrechen"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr "Pfad ändern"
-
-msgid "Cheatfile is blank"
-msgstr "Cheatdatei ist leer"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "Cover herunterladen"
-
-msgid "Click to change game ID"
-msgstr "Spiel ID ändern"
-
-msgid "Clock"
-msgstr "Uhrformat"
-
-msgid "Close"
-msgstr " Schließen"
-
-msgid "Code Download"
-msgstr "Cheatcodes werden heruntergeladen"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "Programmiert von: %s"
-
-msgid "Coding:"
-msgstr "Programmierung:"
-
-msgid "Connection lost..."
-msgstr "Verbindung abgebrochen..."
-
-msgid "Console"
-msgstr "Konsolenstatus"
-
-msgid "Console Locked"
-msgstr "Konsole gesperrt"
-
-msgid "Console should be unlocked to modify it."
-msgstr "Konsole muss zum Bearbeiten entsperrt werden."
-
-msgid "Continue to install game?"
-msgstr "Fortfahren um Spiel zu installieren?"
-
-msgid "Controllevel"
-msgstr "Alterseinstufung"
-
-msgid "Correct Password"
-msgstr "Richtiges Passwort"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "GCT Datei konnte nicht erstellt werden."
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "DIP Modul konnte nicht initialisiert werden!"
-
-msgid "Could not initialize network!"
-msgstr "Netzwerk konnte nicht initialisiert werden!"
-
-msgid "Could not open Disc"
-msgstr "Disc konnte nicht geöffnet werden."
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "Es konnte nicht gespeichert werden."
-
-msgid "Cover Download"
-msgstr "Welche Cover herunterladen?"
-
-msgid "Create"
-msgstr "Erstelle GCT"
-
-msgid "Credits"
-msgstr ""
-
-msgid "Custom Paths"
-msgstr "Pfade anpassen"
-
-msgid "DOL Path"
-msgstr "Alternative DOL"
-
-msgid "Dec"
-msgstr "Dezember"
-
-msgid "Default"
-msgstr "Standard"
-
-msgid "Default Gamesettings"
-msgstr "Spieleinstellungen zurücksetzen"
-
-msgid "Default Settings"
-msgstr "Einstellungen zurücksetzen"
-
-msgid "Delete"
-msgstr "Löschen"
-
-msgid "Delete ?"
-msgstr "Wirklich löschen?"
-
-msgid "Delete Cheat GCT"
-msgstr "Lösche GCT Cheatdatei"
-
-msgid "Delete Cheat TXT"
-msgstr "Lösche TXT Cheatdatei"
-
-msgid "Delete Cover Artwork"
-msgstr "Lösche Cover"
-
-msgid "Delete Disc Artwork"
-msgstr "Lösche Disc Cover"
-
-msgid "Design:"
-msgstr ""
-
-msgid "Developed by"
-msgstr "Entwickelt von"
-
-msgid "Directory does not exist!"
-msgstr "Verzeichnis existiert nicht!"
-
-msgid "Disc Artwork Download"
-msgstr "Disc Cover Download"
-
-msgid "Disc Artwork Path"
-msgstr "Disc Cover"
-
-msgid "Disc Images"
-msgstr "Disc Cover"
-
-msgid "Display"
-msgstr "Spielinfos anzeigen"
-
-msgid "Display as a carousel"
-msgstr "Karussell-Ansicht"
-
-msgid "Display as a grid"
-msgstr "Grid-Ansicht"
-
-msgid "Display as a list"
-msgstr "Listen-Ansicht"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "Löschvorgang bestätigen:"
-
-msgid "Do you want to apply it now?"
-msgstr "Jetzt übernehmen?"
-
-msgid "Do you want to change language?"
-msgstr "Sprache ändern?"
-
-msgid "Do you want to download this theme?"
-msgstr "Dieses Theme herunterladen?"
-
-msgid "Do you want to format:"
-msgstr "Formatieren:"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "Die bekannte Alternative DOL verwenden?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "Alle Sprachdateien aktualisieren?"
-
-msgid "Done!"
-msgstr "Fertig!"
-
-msgid "Download"
-msgstr "Herunterladen"
-
-msgid "Download Boxart image?"
-msgstr "Cover herunterladen?"
-
-msgid "Download Discart image?"
-msgstr "Disc Cover herunterladen?"
-
-msgid "Download Now"
-msgstr "Herunterladen"
-
-msgid "Download failed."
-msgstr "Download fehlgeschlagen"
-
-msgid "Download finished"
-msgstr "Download abgeschlossen"
-
-msgid "Download request failed."
-msgstr "Downloadanfrage fehlgeschlagen"
-
-msgid "Downloading Page List:"
-msgstr "Liste der nächsten Seite wird geladen:"
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "Theme wird heruntergeladen"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr "Weitere Vorschaubilder werden geladen:"
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "FEHLER"
-
-msgid "ERROR:"
-msgstr "FEHLER:"
-
-msgid "ERROR: Can't set up theme."
-msgstr "FEHLER: Theme kann nicht konfiguriert werden."
-
-msgid "Error"
-msgstr "Fehler"
-
-msgid "Error !"
-msgstr "Fehler !"
-
-msgid "Error 002 fix"
-msgstr "ERROR #002 beheben"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "Fehler beim Lesen der Disc"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "Fehler während der Datenübertragung."
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "Fehler..."
-
-msgid "Error:"
-msgstr "Fehler:"
-
-msgid "Extracting files..."
-msgstr "Entpacke Dateien..."
-
-msgid "FAT: Use directories"
-msgstr "FAT: Unterverzeichnise"
-
-msgid "Failed formating"
-msgstr "Formatieren fehlgeschlagen"
-
-msgid "Failed to extract."
-msgstr "Entpacken fehlgeschlagen."
-
-msgid "Failed to open partition"
-msgstr "Öffnen der Partition fehlgeschlagen"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr "Februar"
-
-msgid "File not found."
-msgstr "Datei nicht gefunden"
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "Beende Installation... OK!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr ""
-
-msgid "Format"
-msgstr "Formatieren"
-
-msgid "Formatting, please wait..."
-msgstr "Formatiere, bitte warten..."
-
-msgid "Free Space"
-msgstr "Freier Speicher"
-
-msgid "Full Shutdown"
-msgstr "WiiConnect24 aus"
-
-msgid "GCT Cheatcodes Path"
-msgstr "GCT Cheatdateien"
-
-msgid "GCT File created"
-msgstr "GCT Datei erstellt"
-
-msgid "GUI Settings"
-msgstr "GUI Einstellungen"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr "GXtheme.cfg in keinem Unterordner gefunden."
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "Sprache"
-
-msgid "Game Load"
-msgstr "Spieleinstellungen"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "Größe"
-
-msgid "Game Sound Mode"
-msgstr "Banner Modus"
-
-msgid "Game Sound Volume"
-msgstr "Banner Lautstärke"
-
-msgid "Game is already installed:"
-msgstr "Spiel ist bereits installiert:"
-
-msgid "Game partition"
-msgstr "Spielpartition"
-
-msgid "Games"
-msgstr "Spiele"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr "HOME Menü"
-
-msgid "Homebrew Apps Path"
-msgstr "Homebrew Apps"
-
-msgid "Homebrew Launcher"
-msgstr ""
-
-msgid "Hour"
-msgstr "Stunden"
-
-msgid "How do you want to update?"
-msgstr "Was soll aktualisiert werden?"
-
-msgid "How to Shutdown?"
-msgstr "Wie soll ausgeschaltet werden?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "Wenn du kein WiFi hast, drücke 1 um eine URL zu generieren."
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "Eingehende Datei %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "Eingehende Datei %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "Initialisiere Netzwerk"
-
-msgid "Insert Disk"
-msgstr "Disc einlegen"
-
-msgid "Insert a Wii Disc!"
-msgstr "Eine Wii Disc einlegen!"
-
-msgid "Insert an SD-Card to save."
-msgstr "SD Karte einlegen um zu Speichern."
-
-msgid "Insert an SD-Card to use this option."
-msgstr "SD Karte einlegen um diese Option zu nutzen."
-
-msgid "Install"
-msgstr "Installieren"
-
-msgid "Install Error!"
-msgstr "Installationsfehler!"
-
-msgid "Install a game"
-msgstr "Spiel installieren"
-
-msgid "Install partitions"
-msgstr "Partitionen installieren"
-
-msgid "Installing content... Ok!"
-msgstr "Installiere Inhalt... OK!"
-
-msgid "Installing game:"
-msgstr "Installiere Spiel:"
-
-msgid "Installing ticket... Ok!"
-msgstr "Installiere Ticket... OK!"
-
-msgid "Installing title... Ok!"
-msgstr "Installiere Title... OK!"
-
-msgid "Installing wad"
-msgstr "Installiere WAD"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "Es scheint als ob du Informationen hast, die hilfreich für uns sein könnten. Bitte sende diese Information ans DEV Team."
-
-msgid "Jan"
-msgstr "Januar"
-
-msgid "July"
-msgstr "Juli"
-
-msgid "June"
-msgstr "Juni"
-
-msgid "Keep"
-msgstr "Behalten"
-
-msgid "Keyboard"
-msgstr "Tastatur"
-
-msgid "Language File"
-msgstr "Sprachdatei"
-
-msgid "Language change:"
-msgstr "Sprache ändern:"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "Pfad geändert"
-
-msgid "Load"
-msgstr "Laden"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "Datei von %s laden?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "Diese DOL als Alternative DOL laden?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "Lade Standardsprache."
-
-msgid "Loading standard music."
-msgstr "Lade Standardmusik."
-
-msgid "Lock Console"
-msgstr "Konsole sperren"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr "März"
-
-msgid "Mark new games"
-msgstr "Neue Spiele markieren"
-
-msgid "May"
-msgstr "Mai"
-
-msgid "Missing files"
-msgstr "Fehlende Dateien"
-
-msgid "Mount DVD drive"
-msgstr "Spiel starten"
-
-msgid "Music Loop Mode"
-msgstr "HGM Wiederholung"
-
-msgid "Music Volume"
-msgstr "Musik Lautstärke"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "Neu Disc im Laufwerk festgestellt"
-
-msgid "No"
-msgstr "Nein"
-
-msgid "No Cheatfile found"
-msgstr "Keine Cheatdatei gefunden."
-
-msgid "No DOL file found on disc."
-msgstr "Keine DOL auf der Disc gefunden."
-
-msgid "No SD-Card inserted!"
-msgstr "Keine SD Karte eingelegt!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "Es wurden keine Cheats ausgewählt."
-
-msgid "No data could be read."
-msgstr "Daten konnten nicht gelesen werden."
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "Keine Datei fehlt!"
-
-msgid "No new updates."
-msgstr "Keine Updates verfügbar."
-
-msgid "No themes found on the site."
-msgstr "Keine Themes auf der Seite gefunden."
-
-msgid "Not a WAD file."
-msgstr "Das ist keine WAD Datei."
-
-msgid "Not a Wii Disc"
-msgstr "Keine Wii Disc."
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "Nicht genügend freier Speicher."
-
-msgid "Not enough free space!"
-msgstr "Nicht genügend freier Speicher!"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "Nicht unterstütztes Format!"
-
-msgid "Nov"
-msgstr "November"
-
-msgid "OFF"
-msgstr "AUS"
-
-msgid "OK"
-msgstr ""
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "Oktober"
-
-msgid "Official Site:"
-msgstr "Offizielle Seite:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "Altersbeschränkung"
-
-msgid "Partition"
-msgstr ""
-
-msgid "Password"
-msgstr "Passwort"
-
-msgid "Password Changed"
-msgstr "Passwort geändert"
-
-msgid "Password has been changed"
-msgstr "Passwort wurde geändert"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "Füge sie in deinen Browser ein, um die WiiTDB.zip zu erhalten."
-
-msgid "Patch Country Strings"
-msgstr "Country Strings patchen"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "Wähle aus der Liste"
-
-msgid "Play Count"
-msgstr "Spielzähler"
-
-msgid "Play Next"
-msgstr "Nächster Titel"
-
-msgid "Play Previous"
-msgstr "Vorheriger Titel"
-
-msgid "Playing Music:"
-msgstr "Aktuelle Musik:"
-
-msgid "Please wait..."
-msgstr "Bitte warten..."
-
-msgid "Power off the Wii"
-msgstr "Wii ausschalten"
-
-msgid "Prompts Buttons"
-msgstr "Anzeige"
-
-msgid "Published by"
-msgstr "Veröffentlicht von"
-
-msgid "Quick Boot"
-msgstr "Schnelles Laden"
-
-msgid "Reading WAD data... Ok!"
-msgstr "Lese WAD Daten... OK!"
-
-msgid "Receiving file from:"
-msgstr "Empfange Datei von:"
-
-msgid "Released"
-msgstr "Erschienen am"
-
-msgid "Reload SD"
-msgstr "SD Karte erneut laden"
-
-msgid "Remove update"
-msgstr "Update entfernen"
-
-msgid "Rename Game on WBFS"
-msgstr "Spiel umbenennen"
-
-msgid "Reset BG Music"
-msgstr "Musik zurücksetzen"
-
-msgid "Reset Playcounter"
-msgstr "Spielzähler zurücksetzen"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "Starte neu..."
-
-msgid "Return"
-msgstr "Zurück"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "Zurück zum Wii Menü"
-
-msgid "Rumble"
-msgstr ""
-
-msgid "SFX Volume"
-msgstr "SFX Lautstärke"
-
-msgid "Save"
-msgstr "Speichern"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "Liste speicheren unter"
-
-msgid "Saved"
-msgstr "Gespeichert"
-
-msgid "Screensaver"
-msgstr "Bildschirmschoner"
-
-msgid "Select"
-msgstr "Auswählen"
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "wähle eine DOL"
-
-msgid "Sept"
-msgstr "September"
-
-msgid "Set Search-Filter"
-msgstr "Suche"
-
-msgid "Settings"
-msgstr "Einstellungen"
-
-msgid "Shutdown System"
-msgstr "System herunterfahren"
-
-msgid "Shutdown to Idle"
-msgstr "WiiConnect24 an"
-
-msgid "Sort alphabetically"
-msgstr "Alphabetisch ordnen"
-
-msgid "Sort by rank"
-msgstr "nach Bewertungen ordnen"
-
-msgid "Sort order by most played"
-msgstr "nach Spielzähler ordnen"
-
-msgid "Sound"
-msgstr "Ton"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "Besonderen Dank an:"
-
-msgid "Success"
-msgstr "Erfolgreich"
-
-msgid "Success:"
-msgstr "Erfolgreich:"
-
-msgid "Successfully Saved"
-msgstr "Erfolgreich gespeichert"
-
-msgid "Successfully Updated"
-msgstr "Erfolgreich aktualisiert"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr "Erfolgreich aktualisiert. Danke an www.techjawa.com"
-
-msgid "Successfully deleted:"
-msgstr "Erfolgreich gelöscht:"
-
-msgid "Successfully extracted theme."
-msgstr "Theme erfolgreich entpackt."
-
-msgid "Successfully installed:"
-msgstr "Erfolgreich installiert:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "TXT Cheatdateien"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "Das eingegebene Verzeichnis existiert nicht. Möchtest du es erstellen?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr "Theme Downloader"
-
-msgid "Theme Downloader"
-msgstr ""
-
-msgid "Theme Path"
-msgstr "Theme"
-
-msgid "Theme Title:"
-msgstr "Name:"
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "Noch:"
-
-msgid "Title Launcher"
-msgstr "Channel Launcher"
-
-msgid "Titles from WiiTDB"
-msgstr "Namen aus WiiTDB"
-
-msgid "Tooltips"
-msgstr ""
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr "Übertragung fehlgeschlagen"
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "USB Gerät nicht gefunden."
-
-msgid "USB Loader GX is protected"
-msgstr "USB Loader GX ist jetzt geschützt."
-
-msgid "Uninstall"
-msgstr "Deinstallieren"
-
-msgid "Uninstall Game"
-msgstr "Spiel deinstallieren"
-
-msgid "Uninstall Menu"
-msgstr "Deinstallationsmenü"
-
-msgid "Uninstalling wad"
-msgstr "Deinstalliere WAD"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "Entsperre den Loader, um diese Option zu nutzen."
-
-msgid "Unsupported format, try to extract manually."
-msgstr "Nicht unterstütztes Format. Versuch es manuell zu Entpacken."
-
-msgid "Update"
-msgstr ""
-
-msgid "Update All"
-msgstr "Alles"
-
-msgid "Update DOL"
-msgstr "Nur DOL"
-
-msgid "Update Files"
-msgstr "Aktualisieren"
-
-msgid "Update Path"
-msgstr "Updates"
-
-msgid "Update all Language Files"
-msgstr "Sprachdateien aktualisieren"
-
-msgid "Update failed"
-msgstr "Update fehlgeschlagen"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "Aktualisiere Sprachdateien:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "Die hochgeladene ZIP Datei wurde ins Homebrew Verzeichnis installiert."
-
-msgid "VIDTV Patch"
-msgstr ""
-
-#, c-format
-msgid "Version: %s"
-msgstr ""
-
-msgid "Video Mode"
-msgstr "Videomodus"
-
-msgid "WIP Patches Path"
-msgstr "WIP Patches"
-
-msgid "Waiting for USB Device"
-msgstr "Warte auf USB Gerät"
-
-msgid "Waiting..."
-msgstr "Warte..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "Was möchtest du aktualisieren?"
-
-msgid "WiFi Features"
-msgstr "WiFi Fähigkeiten"
-
-msgid "Wii Menu"
-msgstr "Wii Menü"
-
-msgid "Wii Settings"
-msgstr "Wii Datenverwaltung"
-
-msgid "WiiTDB Files"
-msgstr "WiiTDB"
-
-msgid "WiiTDB Path"
-msgstr "WiiTDB"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr "Licht am Laufwerk"
-
-msgid "Wrong Password"
-msgstr "Falsches Passwort"
-
-msgid "Yes"
-msgstr "Ja"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr "Du must eine Partition auswählen oder formatieren."
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "Deine URL wurde in %sWiiTDB_URL.txt gespeichert."
-
-msgid "and translaters for language files updates"
-msgstr "und den Übersetzern der Sprachdateien"
-
-msgid "available"
-msgstr "verfügbar"
-
-msgid "does not exist!"
-msgstr "existiert nicht!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "existiert nicht! Spiel wird ohne Cheats gestartet."
-
-msgid "files left"
-msgstr "Dateien fehlen"
-
-msgid "files not found on the server!"
-msgstr "Dateien auf dem Server nicht gefunden!"
-
-msgid "for FAT/NTFS support"
-msgstr "für den FAT/NTFS Support"
-
-msgid "for Ocarina"
-msgstr "für Ocarina"
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "für WiiTDB und dem Hosten der (Disc) Cover"
-
-msgid "for diverse patches"
-msgstr "für diverse Patches"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "für sein großartiges Tool LibWiiGui"
-
-msgid "for hosting the themes"
-msgstr "für das Hosten der Themes"
-
-msgid "for hosting the update files"
-msgstr "für das Hosten der Updates"
-
-msgid "for the USB Loader source"
-msgstr "für die Veröffentlichung des USB Loader-Quellcodes"
-
-msgid "formatted!"
-msgstr "formatiert!"
-
-msgid "free"
-msgstr "frei"
-
-msgid "not set"
-msgstr "nicht gesetzt"
-
-msgid "of"
-msgstr "von"
-
-msgid "seconds left"
-msgstr "Sekunden verbleiben"
-
-#~ msgid "Install 1:1 Copy"
-#~ msgstr "1:1 Kopie installieren"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (Jeder)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (Kinder 7+) "
-
-#~ msgid "1 hour"
-#~ msgstr "1 Stunde"
-
-#~ msgid "10 min"
-#~ msgstr "10 Minuten"
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (Jugendliche 12+)"
-
-#~ msgid "20 min"
-#~ msgstr "20 Minuten"
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (Erwachsene 16+)"
-
-#~ msgid "3 min"
-#~ msgstr "3 Minuten"
-
-#~ msgid "30 min"
-#~ msgstr "30 Minuten"
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (Erwachsene 18+)"
-
-#~ msgid "5 min"
-#~ msgstr "5 Minuten"
-
-#~ msgid "An Error occured"
-#~ msgstr "Ein Fehler ist aufgetreten."
-
-#~ msgid "Are you sure you want to enable Parent Control?"
-#~ msgstr "Bist du sicher, das du die Altersbeschränkung aktivieren möchtest?"
-
-#~ msgid "Both"
-#~ msgstr "ID und Region"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "Suche nach Updates"
-
-#~ msgid "Console Default"
-#~ msgstr "Konsolenstandard"
-
-#~ msgid "Customs/Original"
-#~ msgstr "Community/Original"
-
-#~ msgid "Disc Default"
-#~ msgstr "Discstandard"
-
-#~ msgid "DiskFlip"
-#~ msgstr "DiscFlip"
-
-#~ msgid "Downloading"
-#~ msgstr "Dateien werden heruntergeladen"
-
-#~ msgid "Dutch"
-#~ msgstr "Niederländisch"
-
-#~ msgid "English"
-#~ msgstr "Englisch"
-
-#~ msgid "French"
-#~ msgstr "Französisch"
-
-#~ msgid "GAMEID_Gamename"
-#~ msgstr "SPIELID_Spielname"
-
-#~ msgid "Game ID"
-#~ msgstr "Spiel ID"
-
-#~ msgid "Game Region"
-#~ msgstr "Region"
-
-#~ msgid "Gamename [GAMEID]"
-#~ msgstr "Spielname [SPIELID]"
-
-#~ msgid "German"
-#~ msgstr "Deutsch"
-
-#~ msgid "Invalid PIN code"
-#~ msgstr "Ungültiger PIN Code"
-
-#~ msgid "Italian"
-#~ msgstr "Italienisch"
-
-#~ msgid "Japanese"
-#~ msgstr "Japanisch"
-
-#~ msgid "Korean"
-#~ msgstr "Koreanisch"
-
-#~ msgid "Left"
-#~ msgstr "Links"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "System Menü"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "von SD/USB laden"
-
-#~ msgid "Locked"
-#~ msgstr "Gesperrt"
-
-#~ msgid "Loop Directory"
-#~ msgstr "Verzeichnis wiederholen"
-
-#~ msgid "Loop Music"
-#~ msgstr "Scheife"
-
-#~ msgid "Loop Sound"
-#~ msgstr "Wiederholung"
-
-#~ msgid "Neither"
-#~ msgstr "Keine"
-
-#~ msgid "Next"
-#~ msgstr "Weiter"
-
-#~ msgid "None"
-#~ msgstr "Keine"
-
-#~ msgid "Normal"
-#~ msgstr "Normal (4:3)"
-
-#~ msgid "ON"
-#~ msgstr "AN"
-
-#~ msgid "Only Customs"
-#~ msgstr "nur Community"
-
-#~ msgid "Only Original"
-#~ msgstr "nur Originale"
-
-#~ msgid "Only for Install"
-#~ msgstr "nur beim Installieren"
-
-#~ msgid "Original/Customs"
-#~ msgstr "Original/Community"
-
-#~ msgid "Parental Control disabled"
-#~ msgstr "Altersbeschränkung ausgeschaltet"
-
-#~ msgid "Play Once"
-#~ msgstr "Einmal abspielen"
-
-#~ msgid "Prev"
-#~ msgstr "Zurück"
-
-#~ msgid "Random Directory Music"
-#~ msgstr "Zufällig"
-
-#~ msgid "Right"
-#~ msgstr "Rechts"
-
-#~ msgid "SChinese"
-#~ msgstr "Vereinfachtes Chinesisch"
-
-#~ msgid "Sound+BGM"
-#~ msgstr "mit Hintergrundmusik"
-
-#~ msgid "Sound+Quiet"
-#~ msgstr "ohne Hintergrundmusik"
-
-#~ msgid "Spanish"
-#~ msgstr "Spanisch"
-
-#~ msgid "System Default"
-#~ msgstr "Konsolenstandard"
-
-#~ msgid "TChinese"
-#~ msgstr "Traditionelles Chinesisch"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "Die WAD Datei wurde installiert. Sie konnte aber nicht von der SD Karte gelöscht werden."
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "Die WAD Installation schlug fehl durch Fehler %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "Die WAD Datei, die gerade heruntergeladen wurde (%s), konnte nicht geöffnet werden."
-
-#~ msgid "Unlock Parental Control"
-#~ msgstr "Altersbeschränkung deaktivieren"
-
-#~ msgid "Unlocked"
-#~ msgstr "Entsperrt"
-
-#~ msgid "Update to"
-#~ msgstr "Aktualisiere auf"
-
-#~ msgid "Updating"
-#~ msgstr "Aktualisiere"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "Aktualisiere Sprachdateien..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "Aktualisiere WiiTDB"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "Breitbild (16:9)"
-
-#~ msgid "You don't have Parental Control enabled. If you wish to use Parental Control, enable it in the Wii Settings."
-#~ msgstr "Du hast die Wii-Altersbeschränkung nicht aktiviert. Wenn du sie nutzen möchtest, aktiviere sie in den Wii-Systemeinstellungen."
-
-#~ msgid "%s : %s May not boot correctly if your System Menu is not up to date."
-#~ msgstr "%s : %s startet evtl. nicht richtig, falls dein System Menü nicht aktuell ist."
-
-#~ msgid "BCA Codes Path changed"
-#~ msgstr "Pfad geändert"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "Wii Menü"
-
-#~ msgid "Channels"
-#~ msgstr "Kanäle"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "Prüfe existierende Artworks"
-
-#~ msgid "Confirm"
-#~ msgstr "Bestätigen"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "Es wurde keine WBFS Partition gefunden."
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "WBFS Partition konnte nicht geöffnet werden."
-
-#~ msgid "Could not read the disc."
-#~ msgstr "Disc konnte nicht gelesen werden."
-
-#~ msgid "Could not set USB."
-#~ msgstr "USB konnte nicht gesetzt werden."
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "Pfad geändert"
-
-#~ msgid "DOL path changed"
-#~ msgstr "Pfad geändert"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "Pfad geändert"
-
-#~ msgid "Display favorites"
-#~ msgstr "Favoriten anzeigen"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "30 Sekunden lang erneut versuchen?"
-
-#~ msgid "Enable Parental Control"
-#~ msgstr "Altersbeschränkung aktivieren"
-
-#~ msgid "Force"
-#~ msgstr "Erzwinge"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "Pfad geändert"
-
-#~ msgid "Hermes CIOS"
-#~ msgstr "Hermes' cIOS"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "Pfad geändert"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "SD Karte einlegen um Bilder herunterzuladen."
-
-#~ msgid "Install not possible"
-#~ msgstr "Installation nicht möglich"
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "Höchstwahrscheinlich sind Breite und Höhe keine Vielfachen von 4."
-
-#~ msgid "Network init error"
-#~ msgstr "Netzwerkinitialisierungsfehler"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr "Keine .dol oder .elf Dateien gefunden."
-
-#~ msgid "No Favorites"
-#~ msgstr "Keine Favoriten"
-
-#~ msgid "No USB Device"
-#~ msgstr "Kein USB Gerät"
-
-#~ msgid "No USB Device found."
-#~ msgstr "Kein USB Gerät gefunden."
-
-#~ msgid "No WBFS or FAT/NTFS partition found"
-#~ msgstr "Keine WBFS oder FAT/NTFS Partition gefunden"
-
-#~ msgid "Normal Covers"
-#~ msgstr "2D Cover"
-
-#~ msgid "Not Found"
-#~ msgstr "Nicht gefunden"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "Das ist keine DOL/ELF Datei."
-
-#~ msgid "Reset to standard BGM?"
-#~ msgstr "Auf Standard zurücksetzen?"
-
-#~ msgid "Save Failed"
-#~ msgstr "Speichern fehlgeschlagen"
-
-#~ msgid "Selected DOL"
-#~ msgstr "Ausgewählte DOL"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "Pfad geändert"
-
-#~ msgid "Theme Download Path changed"
-#~ msgstr "Pfad geändert"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "Pfad geändert"
-
-#~ msgid "USB Loader GX will only run with Hermes CIOS rev 4! Please make sure you have revision 4 installed!"
-#~ msgstr "Hermes' cIOS funktioniert beim USB Loader GX nur mit rev4! Bitte versichere dich das du rev4 installiert hast!"
-
-#~ msgid "Update Path changed."
-#~ msgstr "Pfad geändert"
-
-#~ msgid "WIP Patches Path changed"
-#~ msgstr "Pfad geändert"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "Pfad geändert"
-
-#~ msgid "You are about to delete "
-#~ msgstr "Du bist dabei zu löschen "
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "Du möchtest Favoriten anzeigen lassen, hast aber keine ausgewählt."
-
-#~ msgid "You are using NTFS filesystem. Due to possible write errors to a NTFS partition, installing a game is not possible."
-#~ msgstr "Du benutzt das NTFS Dateisystem. Wegen möglicher Schreibfehler auf einer NTFS Partition, ist das Installieren eines Spiels nicht möglich."
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "Du hast versucht ein 'schlechtes Bild' zu laden."
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "existiert nicht! Du hast was falsch gemacht, Idiot."
-
-#~ msgid "file left"
-#~ msgstr "Datei fehlt"
diff --git a/Languages/hungarian.lang b/Languages/hungarian.lang
deleted file mode 100644
index 9a8425c1..00000000
--- a/Languages/hungarian.lang
+++ /dev/null
@@ -1,1531 +0,0 @@
-# USB Loader GX language source file.
-# hungarian.lang - r878
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2009-12-29 11:05+0100\n"
-"Last-Translator: Springdale\n"
-"Language-Team: Tusk, Springdale\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr "Wad elmentve mint:"
-
-msgid " could not be downloaded."
-msgstr "nem letölthetõ."
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr "elmentve. A fájl nincs ellenõrizve, és egyes kódok nem feltétlenül működnek együtt. Probléma esetén további információért nyisd meg a fájlt szövegszerkesztõvel."
-
-msgid " is not on the server."
-msgstr "nincs a szerveren."
-
-msgid "2D Cover Path"
-msgstr "2D Boritó Útvonala"
-
-msgid "3D Cover Path"
-msgstr "3D Boritó Útvonala"
-
-msgid "3D Covers"
-msgstr "3D Borítók"
-
-msgid ">> Deleting tickets..."
-msgstr ">> Ticket-ek törlése..."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> Ticket-ek törlése...HIBA!"
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> Ticket-ek törlése...Ok!"
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> Title törlése...HIBA!"
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> Title törlése...Ok!"
-
-msgid ">> Deleting title contents..."
-msgstr ">> Title tartalom törlése..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> Title tartalom törlése...HIBA!"
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> Title tartalom törlése...Ok!"
-
-msgid ">> Deleting title..."
-msgstr ">> Title törlése..."
-
-msgid ">> Finishing installation..."
-msgstr ">> Telepítés befejezése..."
-
-msgid ">> Installing content #"
-msgstr ">> Telepítés: tartalom #"
-
-msgid ">> Installing ticket..."
-msgstr ">> Ticket telepítése"
-
-msgid ">> Installing title..."
-msgstr ">> Title telepítése..."
-
-msgid ">> Reading WAD data..."
-msgstr ">> WAD adatok olvasása..."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> WAD adatok olvasása...HIBA!"
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> WAD adatok olvasása...Ok!"
-
-msgid "AUTO"
-msgstr ""
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr "Minden partíció"
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "Az USB Loader GX minden funkciója elérhetõ."
-
-msgid "Alternate DOL"
-msgstr "Alternatív DOL"
-
-msgid "App Language"
-msgstr "Nyelv"
-
-msgid "Apr"
-msgstr "Ápr"
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "Biztos vagy benne?"
-
-msgid "Aug"
-msgstr ""
-
-msgid "Author:"
-msgstr "Készítõ:"
-
-msgid "AutoInit Network"
-msgstr "Hálózat AutoInit"
-
-msgid "BCA Codes Path"
-msgstr "BCA kód útvonal"
-
-msgid "BETA revisions"
-msgstr "Béta változatok"
-
-msgid "Back"
-msgstr "Vissza"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "Visszatérés a HBC-be vagy Wii Menübe"
-
-msgid "Back to Loader"
-msgstr "HBC"
-
-msgid "Backgroundmusic"
-msgstr "Háttérzene"
-
-msgid "Big thanks to:"
-msgstr "Köszönet:"
-
-msgid "Block IOS Reload"
-msgstr "IOS újratöltés blokkolása"
-
-msgid "Boot/Standard"
-msgstr "Boot/Alapértelmezett"
-
-msgid "Boot?"
-msgstr ""
-
-msgid "Can't be formatted"
-msgstr "Nem Formázható"
-
-msgid "Can't create directory"
-msgstr "Mappa nem hozható létre"
-
-msgid "Can't create file"
-msgstr "A fájl nem hozható létre."
-
-msgid "Can't delete:"
-msgstr "Nem törölhetõ"
-
-msgid "Cancel"
-msgstr "Mégse"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr ""
-
-msgid "Cheatfile is blank"
-msgstr "A cheat-fájl üres"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "Kattints a borítók letöltéséhez"
-
-msgid "Click to change game ID"
-msgstr "Kattints a játékID megváltoztatásához"
-
-msgid "Clock"
-msgstr "Óra"
-
-msgid "Close"
-msgstr "Bezárás"
-
-msgid "Code Download"
-msgstr "Kód letöltés"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "Kódolás: %s"
-
-msgid "Coding:"
-msgstr "Kódolás:"
-
-msgid "Connection lost..."
-msgstr "A kapcsolat megszakadt..."
-
-msgid "Console"
-msgstr "Konzol"
-
-msgid "Console Locked"
-msgstr "Konzol Zárolva"
-
-msgid "Console should be unlocked to modify it."
-msgstr "A konzol zárolva, ezért nem változtatható meg."
-
-msgid "Continue to install game?"
-msgstr "Játék telepítésének folytatása?"
-
-msgid "Controllevel"
-msgstr "Kontrollszint"
-
-msgid "Correct Password"
-msgstr "Helyes Jelszó"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "Nem hozható létre GCT fájl"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "DIP modul nem tölthetõ be!"
-
-msgid "Could not initialize network!"
-msgstr "Kapcsolat nem hozható létre!"
-
-msgid "Could not open Disc"
-msgstr "Lemez nem betölthetõ"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "A mentés nem sikerült."
-
-msgid "Cover Download"
-msgstr "Boritó Letöltés"
-
-msgid "Create"
-msgstr "Létrehozás"
-
-msgid "Credits"
-msgstr "Készítõk"
-
-msgid "Custom Paths"
-msgstr "Egyéni útvonalak"
-
-msgid "DOL Path"
-msgstr "DOL Útvonal"
-
-msgid "Dec"
-msgstr ""
-
-msgid "Default"
-msgstr "Alapértelmezett"
-
-msgid "Default Gamesettings"
-msgstr "Alapértelmezett beállítások"
-
-msgid "Default Settings"
-msgstr "Alapértelmezett beállítások"
-
-msgid "Delete"
-msgstr "Törlés"
-
-msgid "Delete ?"
-msgstr "Törlés?"
-
-msgid "Delete Cheat GCT"
-msgstr "Cheat GCT törlés"
-
-msgid "Delete Cheat TXT"
-msgstr "Cheat TXT törlés"
-
-msgid "Delete Cover Artwork"
-msgstr "Borító törlése"
-
-msgid "Delete Disc Artwork"
-msgstr "Lemezfotó törlése"
-
-msgid "Design:"
-msgstr "Felület:"
-
-msgid "Developed by"
-msgstr "Készítette"
-
-msgid "Directory does not exist!"
-msgstr "A könyvtár nem létezik!"
-
-msgid "Disc Artwork Download"
-msgstr "Lemezfotó letöltése"
-
-msgid "Disc Artwork Path"
-msgstr "Lemezképek Útvonala"
-
-msgid "Disc Images"
-msgstr "Lemezfotók"
-
-msgid "Display"
-msgstr "Játékinfo megj."
-
-msgid "Display as a carousel"
-msgstr "Körhinta megjelenítés"
-
-msgid "Display as a grid"
-msgstr "Rács megjelenítés"
-
-msgid "Display as a list"
-msgstr "Lista megjelenítés"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "Biztosan törlöd?"
-
-msgid "Do you want to apply it now?"
-msgstr "Alkalmazás most?"
-
-msgid "Do you want to change language?"
-msgstr "Nyelv megváltoztatása?"
-
-msgid "Do you want to download this theme?"
-msgstr "Téma letöltése?"
-
-msgid "Do you want to format:"
-msgstr "Formázás?"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "Köztudottan működõ alternatív DOL használata?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "Minden nyelvi fájl letöltése/frissítése?"
-
-msgid "Done!"
-msgstr "Kész!"
-
-msgid "Download"
-msgstr "Letöltés"
-
-msgid "Download Boxart image?"
-msgstr "Borító letöltése?"
-
-msgid "Download Discart image?"
-msgstr "Lemezfotó letöltése?"
-
-msgid "Download Now"
-msgstr "Letöltés most"
-
-msgid "Download failed."
-msgstr "Sikertelen letöltés."
-
-msgid "Download finished"
-msgstr "Letöltés kész"
-
-msgid "Download request failed."
-msgstr "Sikertelen letöltési kérelem."
-
-msgid "Downloading Page List:"
-msgstr "Lista letöltése:"
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "Fájl letöltése"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr "Kép letöltése:"
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "HIBA"
-
-msgid "ERROR:"
-msgstr "HIBA:"
-
-msgid "ERROR: Can't set up theme."
-msgstr "HIBA: Téma nem állítható be"
-
-msgid "Error"
-msgstr "Hiba"
-
-msgid "Error !"
-msgstr "Hiba !"
-
-msgid "Error 002 fix"
-msgstr "Error 02 javítás"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "Lemezolvasási hiba"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "Adatátviteli hiba."
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "Hiba..."
-
-msgid "Error:"
-msgstr "Hiba:"
-
-msgid "Extracting files..."
-msgstr "Fájlok kicsomagolása..."
-
-msgid "FAT: Use directories"
-msgstr "FAT: könyvtárak használata"
-
-msgid "Failed formating"
-msgstr "Formázás sikertelen"
-
-msgid "Failed to extract."
-msgstr "A kicsomagolás nem sikerült."
-
-msgid "Failed to open partition"
-msgstr "Hiba a partíció megnyitásakor"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr ""
-
-msgid "File not found."
-msgstr "Fájl nem található"
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "Telepítés befejezése...Ok!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr ""
-
-msgid "Format"
-msgstr "Formázás"
-
-msgid "Formatting, please wait..."
-msgstr "Formatálás folyamatban, kérlek várj..."
-
-msgid "Free Space"
-msgstr "Szabad Hely"
-
-msgid "Full Shutdown"
-msgstr "Teljes Kikapcsolás"
-
-msgid "GCT Cheatcodes Path"
-msgstr "Kódok Útvonala"
-
-msgid "GCT File created"
-msgstr "GCT Fájl létrehozva"
-
-msgid "GUI Settings"
-msgstr "Kezelõfelület"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr "GXtheme.cfg nem található."
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "Játéknyelv"
-
-msgid "Game Load"
-msgstr "Játék Betöltés"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "Játék Méret"
-
-msgid "Game Sound Mode"
-msgstr "Játék Banner hang"
-
-msgid "Game Sound Volume"
-msgstr "Játék Banner hangerő"
-
-msgid "Game is already installed:"
-msgstr "A játék már fel van telepítve:"
-
-msgid "Game partition"
-msgstr "Játék partíció"
-
-msgid "Games"
-msgstr "Játékok"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr "HOME Menü"
-
-msgid "Homebrew Apps Path"
-msgstr "Homebrew Útvonal"
-
-msgid "Homebrew Launcher"
-msgstr "Homebrew indító"
-
-msgid "Hour"
-msgstr "Óra"
-
-msgid "How do you want to update?"
-msgstr "Hogyan szeretnél frissíteni?"
-
-msgid "How to Shutdown?"
-msgstr "Hogyan kapcsoljon ki?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "WiFi hiánya esetén nyomj 1-es gombot a WiiTDB.zip URL-ért."
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "Bejövõ fájl %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "Bejövõ fájl %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "Hálózat inicializálása..."
-
-msgid "Insert Disk"
-msgstr "Helyezz be egy lemezt"
-
-msgid "Insert a Wii Disc!"
-msgstr "Helyezz be Wii lemezt!"
-
-msgid "Insert an SD-Card to save."
-msgstr "Helyezz be egy SD Kártyát, hogy ments,"
-
-msgid "Insert an SD-Card to use this option."
-msgstr "Helyezz be egy SD Kártyát, hogy használhasd ezt a lehetõséget."
-
-msgid "Install"
-msgstr "Telepítés"
-
-msgid "Install Error!"
-msgstr "Telepítési Hiba!"
-
-msgid "Install a game"
-msgstr "Játék telepítése"
-
-msgid "Install partitions"
-msgstr "Partíciók telepítése"
-
-msgid "Installing content... Ok!"
-msgstr "Tartalom telepítése... Ok!"
-
-msgid "Installing game:"
-msgstr "Játék telepítése"
-
-msgid "Installing ticket... Ok!"
-msgstr "Ticket telepítése... Ok!"
-
-msgid "Installing title... Ok!"
-msgstr "Title telepítése... Ok!"
-
-msgid "Installing wad"
-msgstr "Wad telepítése"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "Számunkra segítõ információid lehetnek - kérlek továbbítsd ezeket a fejlesztõi csapat felé."
-
-msgid "Jan"
-msgstr ""
-
-msgid "July"
-msgstr "Júl"
-
-msgid "June"
-msgstr "Jún"
-
-msgid "Keep"
-msgstr "Megtartás"
-
-msgid "Keyboard"
-msgstr "Billenyûzet"
-
-msgid "Language File"
-msgstr "Nyelvi fájl"
-
-msgid "Language change:"
-msgstr "Nyelv választás:"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "Nyelvek útvonala megváltozott."
-
-msgid "Load"
-msgstr "Betöltés"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "Fájl betöltése innen: %s ?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "DOL betöltése alternatív DOL-ként?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "Alapnyelv betõltése"
-
-msgid "Loading standard music."
-msgstr "Alapzene betõltése"
-
-msgid "Lock Console"
-msgstr "Konzol Lezárása"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr "Már"
-
-msgid "Mark new games"
-msgstr "Új játékok megjelölése"
-
-msgid "May"
-msgstr "Máj"
-
-msgid "Missing files"
-msgstr "Hiányzó fájl"
-
-msgid "Mount DVD drive"
-msgstr "DVD meghajtó felcsatolása"
-
-msgid "Music Loop Mode"
-msgstr ""
-
-msgid "Music Volume"
-msgstr "Zene Hangerõ"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "Új lemez észlelve"
-
-msgid "No"
-msgstr "Nem"
-
-msgid "No Cheatfile found"
-msgstr "Kód nem található"
-
-msgid "No DOL file found on disc."
-msgstr "Nem található DOL fájl a lemezen."
-
-msgid "No SD-Card inserted!"
-msgstr "Nincs SD kártya behelyezve!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "Nincsenek kiválasztott cheat-ek"
-
-msgid "No data could be read."
-msgstr "Adat nem olvasható."
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "Egy fájl sem hiányzik!"
-
-msgid "No new updates."
-msgstr "Nincs elérhetõ frissítés."
-
-msgid "No themes found on the site."
-msgstr "Nem találhatóak témák az oldalon."
-
-msgid "Not a WAD file."
-msgstr ""
-
-msgid "Not a Wii Disc"
-msgstr "Nem Wii lemez"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "Nincs elég memória."
-
-msgid "Not enough free space!"
-msgstr "Nincs elég szabad hely"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "Nem támogatott formátum"
-
-msgid "Nov"
-msgstr ""
-
-msgid "OFF"
-msgstr "KI"
-
-msgid "OK"
-msgstr ""
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "Okt"
-
-msgid "Official Site:"
-msgstr "Hivatalos oldal:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "Szülõi Felügyelet"
-
-msgid "Partition"
-msgstr "Partició"
-
-msgid "Password"
-msgstr "Jelszó"
-
-msgid "Password Changed"
-msgstr "Jelszó Megváltozott"
-
-msgid "Password has been changed"
-msgstr "A Jelszó megváltozott"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "Másold be a böngészõbe a WiiTDB.zip letöltéséhez."
-
-msgid "Patch Country Strings"
-msgstr "Country String Patch"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "Válassz a listából"
-
-msgid "Play Count"
-msgstr "Indítások"
-
-msgid "Play Next"
-msgstr ""
-
-msgid "Play Previous"
-msgstr ""
-
-msgid "Playing Music:"
-msgstr ""
-
-msgid "Please wait..."
-msgstr "Kérlek várj..."
-
-msgid "Power off the Wii"
-msgstr "Wii kikapcsolása"
-
-msgid "Prompts Buttons"
-msgstr "Gyors Gombok"
-
-msgid "Published by"
-msgstr "Kiadta"
-
-msgid "Quick Boot"
-msgstr "Gyors Boot"
-
-msgid "Reading WAD data... Ok!"
-msgstr "WAD adat olvasás... Ok!"
-
-msgid "Receiving file from:"
-msgstr "Fájl fogadása innen:"
-
-msgid "Released"
-msgstr "Kiadva"
-
-msgid "Reload SD"
-msgstr "SD Újratöltése"
-
-msgid "Remove update"
-msgstr ""
-
-msgid "Rename Game on WBFS"
-msgstr "WBFS játék átnevezése"
-
-msgid "Reset BG Music"
-msgstr ""
-
-msgid "Reset Playcounter"
-msgstr "Elindítások nullázása"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "Újraindítás..."
-
-msgid "Return"
-msgstr "Vissza"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "Vissza a Wii Menübe"
-
-msgid "Rumble"
-msgstr "Rezgés"
-
-msgid "SFX Volume"
-msgstr "Effekt Hangerõ"
-
-msgid "Save"
-msgstr "Mentés"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "Játéklista mentése ide:"
-
-msgid "Saved"
-msgstr "Elmentve"
-
-msgid "Screensaver"
-msgstr "Képernyõkimélõ"
-
-msgid "Select"
-msgstr "Válassz"
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "DOL kiválasztása"
-
-msgid "Sept"
-msgstr "Szep"
-
-msgid "Set Search-Filter"
-msgstr "Keresés"
-
-msgid "Settings"
-msgstr "Beállítások"
-
-msgid "Shutdown System"
-msgstr "Leállítás"
-
-msgid "Shutdown to Idle"
-msgstr "Készenlét"
-
-msgid "Sort alphabetically"
-msgstr "Rendezés ABC-sorrendben"
-
-msgid "Sort by rank"
-msgstr "Rendezés rang szerint"
-
-msgid "Sort order by most played"
-msgstr "Rendezés indítások száma szerint"
-
-msgid "Sound"
-msgstr "Hang"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "Külön Köszönet:"
-
-msgid "Success"
-msgstr "Sikeres"
-
-msgid "Success:"
-msgstr "Sikeres:"
-
-msgid "Successfully Saved"
-msgstr "Sikeresen Mentve"
-
-msgid "Successfully Updated"
-msgstr "Sikeres frissítés"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr ""
-
-msgid "Successfully deleted:"
-msgstr "Sikeresen törölve:"
-
-msgid "Successfully extracted theme."
-msgstr "Téma kicsomagolva."
-
-msgid "Successfully installed:"
-msgstr "Sikeresen telepítve:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "TXT Cheatkódok Útvonala"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "A megadott könyvtár nem létezik. Létrehozzuk?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr "Téma Letöltés Útvonal"
-
-msgid "Theme Downloader"
-msgstr "Témák Letöltése"
-
-msgid "Theme Path"
-msgstr "Témák Útvonala"
-
-msgid "Theme Title:"
-msgstr "Téma címe:"
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "Hátralevõ idõ"
-
-msgid "Title Launcher"
-msgstr "Programindító"
-
-msgid "Titles from WiiTDB"
-msgstr "Címek WiiTDB fájlból"
-
-msgid "Tooltips"
-msgstr "Súgók"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr "Átviteli hiba."
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "USB Meghajtó nem található"
-
-msgid "USB Loader GX is protected"
-msgstr "USB Loader GX levédve"
-
-msgid "Uninstall"
-msgstr "Törlés"
-
-msgid "Uninstall Game"
-msgstr "Játék törlése"
-
-msgid "Uninstall Menu"
-msgstr "Adatkezelés"
-
-msgid "Uninstalling wad"
-msgstr "Wad törlése"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "Zárolva a program, ezt nem használhatod."
-
-msgid "Unsupported format, try to extract manually."
-msgstr "Nem támogatott formátum, próbáld manuálisan kicsomagolni."
-
-msgid "Update"
-msgstr "Frissítés"
-
-msgid "Update All"
-msgstr "Minden Frissítése"
-
-msgid "Update DOL"
-msgstr "DOL Frissítése"
-
-msgid "Update Files"
-msgstr "Fájlok frissítése"
-
-msgid "Update Path"
-msgstr "Frissítés Útvonala"
-
-msgid "Update all Language Files"
-msgstr "Minden nyelvi fájl frissítése"
-
-msgid "Update failed"
-msgstr "Frissítési hiba"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "Nyelvi fájlok frissítése:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "Feltöltött ZIP fájl telepítve a Homebrew mappába."
-
-msgid "VIDTV Patch"
-msgstr ""
-
-#, c-format
-msgid "Version: %s"
-msgstr "Verzió: %s"
-
-msgid "Video Mode"
-msgstr "Videó Mód"
-
-msgid "WIP Patches Path"
-msgstr "WIP Patch útvonal"
-
-msgid "Waiting for USB Device"
-msgstr "Várakozás az USB Meghajtóra"
-
-msgid "Waiting..."
-msgstr "Várakozás..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "Mit szeretnél frissíteni?"
-
-msgid "WiFi Features"
-msgstr "WiFi Sajátosságok"
-
-msgid "Wii Menu"
-msgstr "Wii Menü"
-
-msgid "Wii Settings"
-msgstr "Wii Beállítások"
-
-msgid "WiiTDB Files"
-msgstr "WiiTDB fájlok"
-
-msgid "WiiTDB Path"
-msgstr "WiiTDB Útvonala"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr "WiiFény"
-
-msgid "Wrong Password"
-msgstr "Hibás Jelszó"
-
-msgid "Yes"
-msgstr "Igen"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr "Választanod vagy formáznod kell egy partíciót"
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "URL elmentve itt: %sWiiTDB_URL.txt"
-
-msgid "and translaters for language files updates"
-msgstr "valamint minden fordító"
-
-msgid "available"
-msgstr "elérhetõ"
-
-msgid "does not exist!"
-msgstr "nem létezik!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "nem létezik! Játék betöltése kódok nélkül."
-
-msgid "files left"
-msgstr "hátralévõ fájl"
-
-msgid "files not found on the server!"
-msgstr "fájl nem található a szerveren"
-
-msgid "for FAT/NTFS support"
-msgstr "FAT/NTFS támogatás"
-
-msgid "for Ocarina"
-msgstr ": Ocarina"
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr ": WiiTDB és borítók/lemezfotók"
-
-msgid "for diverse patches"
-msgstr ": többféle patch"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "-nak kiváló eszközéért: LibWiiGui"
-
-msgid "for hosting the themes"
-msgstr ": témák tárhelye"
-
-msgid "for hosting the update files"
-msgstr ": frissítési fájlok tárhelye"
-
-msgid "for the USB Loader source"
-msgstr ": USB Loader forráskód"
-
-msgid "formatted!"
-msgstr "Formázva!"
-
-msgid "free"
-msgstr "szabad"
-
-msgid "not set"
-msgstr "nem beállított"
-
-msgid "of"
-msgstr "./"
-
-msgid "seconds left"
-msgstr "hátralévõ másodperc"
-
-#~ msgid "Install 1:1 Copy"
-#~ msgstr "1:1 másolat telepítése"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (Mindenkinek)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (Gyermekeknek 12+)"
-
-#~ msgid "1 hour"
-#~ msgstr "1 óra"
-
-#~ msgid "10 min"
-#~ msgstr "10 perc"
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (Tinédzserek 14+)"
-
-#~ msgid "20 min"
-#~ msgstr "20 perc"
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (Kamaszok 16+)"
-
-#~ msgid "3 min"
-#~ msgstr "3 perc"
-
-#~ msgid "30 min"
-#~ msgstr "30 perc"
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (Felnõtteknek 18+)"
-
-#~ msgid "5 min"
-#~ msgstr "5 perc"
-
-#~ msgid "An Error occured"
-#~ msgstr "Hiba történt"
-
-#~ msgid "Are you sure you want to enable Parent Control?"
-#~ msgstr "Szülõi felügyelet bekapcsolása?"
-
-#~ msgid "Both"
-#~ msgstr "Mindkettõ"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "Frissitések keresése..."
-
-#~ msgid "Console Default"
-#~ msgstr "Konzol Alapértelmezett"
-
-#~ msgid "Customs/Original"
-#~ msgstr "Egyéni/Eredeti"
-
-#~ msgid "Disc Default"
-#~ msgstr "Lemez Alapértelmezettje"
-
-#~ msgid "DiskFlip"
-#~ msgstr "Lemezforgatás"
-
-#~ msgid "Downloading"
-#~ msgstr "Letöltés"
-
-#~ msgid "Dutch"
-#~ msgstr "Holland"
-
-#~ msgid "English"
-#~ msgstr "Angol"
-
-#~ msgid "French"
-#~ msgstr "Francia"
-
-#~ msgid "Game ID"
-#~ msgstr "Játék ID"
-
-#~ msgid "Game Region"
-#~ msgstr "Játék Régió"
-
-#~ msgid "German"
-#~ msgstr "Német"
-
-#~ msgid "Invalid PIN code"
-#~ msgstr "Hibás PIN kód"
-
-#~ msgid "Italian"
-#~ msgstr "Olasz"
-
-#~ msgid "Japanese"
-#~ msgstr "Japán"
-
-#~ msgid "Korean"
-#~ msgstr "Koreai"
-
-#~ msgid "Left"
-#~ msgstr "Balra"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "Mint a Rendszermenü"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "Betöltés SD/USB-rõl"
-
-#~ msgid "Locked"
-#~ msgstr "Lezárva"
-
-#~ msgid "Loop Sound"
-#~ msgstr "Folyamatos hang"
-
-#~ msgid "Neither"
-#~ msgstr "Egyik sem"
-
-#~ msgid "Next"
-#~ msgstr "Következõ"
-
-#~ msgid "Normal"
-#~ msgstr "Normális"
-
-#~ msgid "ON"
-#~ msgstr "BE"
-
-#~ msgid "Only Customs"
-#~ msgstr "Csak egyéni"
-
-#~ msgid "Only Original"
-#~ msgstr "Csak eredeti"
-
-#~ msgid "Only for Install"
-#~ msgstr "Csak telepítéshez"
-
-#~ msgid "Original/Customs"
-#~ msgstr "Eredeti/Egyéni"
-
-#~ msgid "Parental Control disabled"
-#~ msgstr "Szülõi felügyelet kikapcsolva"
-
-#~ msgid "Prev"
-#~ msgstr "Elõzõ"
-
-#~ msgid "Right"
-#~ msgstr "Jobb"
-
-#~ msgid "SChinese"
-#~ msgstr "SKínai"
-
-#~ msgid "Sound+BGM"
-#~ msgstr "Hang+háttérzene"
-
-#~ msgid "Sound+Quiet"
-#~ msgstr "Csak hang"
-
-#~ msgid "Spanish"
-#~ msgstr "Spanyol"
-
-#~ msgid "System Default"
-#~ msgstr "Rendszer Alapértelmezett"
-
-#~ msgid "TChinese"
-#~ msgstr "Tradicionális Kínai"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "A wad fájl telepítése megtörtént, de nem volt törölhetõ az SD kártyáról."
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "A wad telepítés nem sikerült - hiba %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "Az épp letöltött wad megnyitása nem sikerült (%s)."
-
-#~ msgid "Unlock Parental Control"
-#~ msgstr "Szülõi felügyelet feloldása"
-
-#~ msgid "Unlocked"
-#~ msgstr "Feloldva"
-
-#~ msgid "Update to"
-#~ msgstr "Frissítés ide: "
-
-#~ msgid "Updating"
-#~ msgstr "Frissítés"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "Nyelvi fájlok frissítése..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "WiiTDB.zip frissítése"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "Szélesvászon Fix"
-
-#~ msgid "You don't have Parental Control enabled. If you wish to use Parental Control, enable it in the Wii Settings."
-#~ msgstr "A szülõi felügyelet nincs bekapcsolva - bekapcsolható a Wii Beállításokban."
-
-#~ msgid "%s : %s May not boot correctly if your System Menu is not up to date."
-#~ msgstr "%s : %s Lehet, hogy nem fut megfelelõen, ha a System Menu nem a legfrissebb."
-
-#~ msgid "BCA Codes Path changed"
-#~ msgstr "BCA kód útvonal megváltozott"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "Visszatérés a Wii Menübe"
-
-#~ msgid "Channels"
-#~ msgstr "Csatornák"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "Meglévõ képek ellenõrzése"
-
-#~ msgid "Confirm"
-#~ msgstr "Megerõsítés"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "WBFS partíció nem található."
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "WBFS partíció nem nyitható meg."
-
-#~ msgid "Could not read the disc."
-#~ msgstr "A lemez nem olvasható."
-
-#~ msgid "Could not set USB."
-#~ msgstr "USB beállítási hiba."
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "Boritó útvonala megváltozott"
-
-#~ msgid "DOL path changed"
-#~ msgstr "DOL útvonal megváltozott"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "Borítók útvonala megváltoztatva"
-
-#~ msgid "Display favorites"
-#~ msgstr "Kedvencek megjelenítése"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "30 másodpercig szeretnéd még tovább próbálni?"
-
-#~ msgid "Enable Parental Control"
-#~ msgstr "Szülői felügyelet bekapcsolása"
-
-#~ msgid "Force"
-#~ msgstr "Kényszerítés"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "Kódok útvonala megváltozott"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "Homebrew útvonal megváltoztatva"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "Helyezz be egy SD Kártyát, hogy letöltsd a képeket."
-
-#~ msgid "Install not possible"
-#~ msgstr "A telepítés nem lehetséges"
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "Vélhetõen méretei nem oszhatók 4-gyel."
-
-#~ msgid "Network init error"
-#~ msgstr "Hálozat létrehozásában hiba történt"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr "Nem taláhatóak .dol vagy .elf fájlok."
-
-#~ msgid "No Favorites"
-#~ msgstr "Nincsenek kedvencek"
-
-#~ msgid "No USB Device"
-#~ msgstr "Nincs USB meghajtó"
-
-#~ msgid "No USB Device found."
-#~ msgstr "Nincs USB meghajtó csatlakoztatva."
-
-#~ msgid "No WBFS or FAT/NTFS partition found"
-#~ msgstr "Nem található WBFS vagy FAT/NTFS partíció"
-
-#~ msgid "Normal Covers"
-#~ msgstr "Sima Borítók"
-
-#~ msgid "Not Found"
-#~ msgstr "Nem található"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "Nem DOL/ELF fájl."
-
-#~ msgid "Save Failed"
-#~ msgstr "Mentési hiba"
-
-#~ msgid "Selected DOL"
-#~ msgstr "Kiválasztott DOL"
-
-#~ msgid "Standard"
-#~ msgstr "Alap"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "TXT CheatKódok Útvonala megváltozott"
-
-#~ msgid "Theme Download Path changed"
-#~ msgstr "Téma letöltés útvonal megváltozott"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "Témák útvonala megváltozott"
-
-#~ msgid "USB Loader GX will only run with Hermes CIOS rev 4! Please make sure you have revision 4 installed!"
-#~ msgstr "Az USB Loader GX csak Hermes CIOS rev 4 mellett működik! Gyõződj meg róla, hogy telepítetted!"
-
-#~ msgid "Update Path changed."
-#~ msgstr "Frissítés útvonala megváltozott."
-
-#~ msgid "WIP Patches Path changed"
-#~ msgstr "WIP Patch útvonal megváltozott"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "WiiTDB útvonal megváltozott."
-
-#~ msgid "You are about to delete "
-#~ msgstr "Törölni készülsz: "
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "A Kedvencek megjelenítését választottad, de egy játék sincs így megjelölve."
-
-#~ msgid "You are using NTFS filesystem. Due to possible write errors to a NTFS partition, installing a game is not possible."
-#~ msgstr "NTFS fájlrendszert használata esetén a lehetséges írási hibák miatt játékok telepítése nem lehetséges."
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "Rossz képfájl próbáltál betõlteni"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "nem létezik! Valamit elcsesztéll :-)"
-
-#~ msgid "file left"
-#~ msgstr "hátralévõ fájl"
diff --git a/Languages/italian.lang b/Languages/italian.lang
deleted file mode 100644
index 6082aa9e..00000000
--- a/Languages/italian.lang
+++ /dev/null
@@ -1,1561 +0,0 @@
-# USB Loader GX language source file.
-# italian.lang - v61 - r926
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2010-02-21 08:00+0200\n"
-"Last-Translator: Cambo \n"
-"Language-Team: FoxeJoe, Cambo\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr " Wad salvato con il nome:"
-
-msgid " could not be downloaded."
-msgstr " non può essere scaricato."
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr " è stato salvato. Parte del codice potrebbe non funzionare correttamente. In caso di problemi, aprire il testo con un editor per ottenere ulteriori informazioni."
-
-msgid " is not on the server."
-msgstr " non è disponibile sul server."
-
-msgid "2D Cover Path"
-msgstr "Percorso Copertine 2D"
-
-msgid "3D Cover Path"
-msgstr "Percorso Copertine 3D"
-
-msgid "3D Covers"
-msgstr "Copertine 3D"
-
-msgid ">> Deleting tickets..."
-msgstr ">> Eliminazione ticket..."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> Eliminazione ticket...ERRORE! "
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> Eliminazione ticket...OK! "
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> Eliminazione titolo...ERRORE! "
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> Eliminazione titolo...OK! "
-
-msgid ">> Deleting title contents..."
-msgstr ">> Eliminazione contenuti..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> Eliminazione contenuti...ERRORE! "
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> Eliminazione contenuti...OK! "
-
-msgid ">> Deleting title..."
-msgstr ">> Eliminazione titolo..."
-
-msgid ">> Finishing installation..."
-msgstr ">> Sto terminando l'installazione..."
-
-msgid ">> Installing content #"
-msgstr ">> Sto installando il contenuto #"
-
-msgid ">> Installing ticket..."
-msgstr ">> Sto installando il ticket..."
-
-msgid ">> Installing title..."
-msgstr ">> Sto installando il titolo..."
-
-msgid ">> Reading WAD data..."
-msgstr ">> Lettura dati WAD..."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> Lettura dati WAD...ERRORE! "
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> Lettura dati WAD...OK!"
-
-msgid "AUTO"
-msgstr "Automatico"
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr "Tutte le partizioni"
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "Tutte le funzioni di USB Loader GX sono sbloccate."
-
-msgid "Alternate DOL"
-msgstr "DOL Alternativo"
-
-msgid "App Language"
-msgstr "Percorso Lingua"
-
-msgid "Apr"
-msgstr "aprile"
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "Sei sicuro?"
-
-msgid "Aug"
-msgstr "agosto"
-
-msgid "Author:"
-msgstr "Autore:"
-
-msgid "AutoInit Network"
-msgstr "Inizializz. Rete Automatica"
-
-msgid "BCA Codes Path"
-msgstr "Percorso Codici BCA"
-
-msgid "BETA revisions"
-msgstr "Versioni BETA"
-
-msgid "Back"
-msgstr "Indietro"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "Torna a HBC/Menu Wii"
-
-msgid "Back to Loader"
-msgstr "Canale HomeBrew"
-
-msgid "Backgroundmusic"
-msgstr "Musica Sottofondo"
-
-msgid "Big thanks to:"
-msgstr "Grazie mille a:"
-
-msgid "Block IOS Reload"
-msgstr "Ricarica l'IOS"
-
-msgid "Boot/Standard"
-msgstr "Riavvio/Standard"
-
-msgid "Boot?"
-msgstr "Vuoi riavviare?"
-
-msgid "Can't be formatted"
-msgstr "Non si può formattare"
-
-msgid "Can't create directory"
-msgstr "Impossibile creare la cartella"
-
-msgid "Can't create file"
-msgstr "Impossibile creare il file"
-
-msgid "Can't delete:"
-msgstr "Impossibile eliminare:"
-
-msgid "Cancel"
-msgstr "Annulla"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr "Modifica Percorso Suoni"
-
-msgid "Cheatfile is blank"
-msgstr "il file dei trucchi è vuoto"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "Premi per scaricare le Copertine"
-
-msgid "Click to change game ID"
-msgstr "Premi per cambiare ID al gioco"
-
-msgid "Clock"
-msgstr "Orologio"
-
-msgid "Close"
-msgstr "Chiudi"
-
-msgid "Code Download"
-msgstr "Scarico Codice"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "Sviluppato da: %s"
-
-msgid "Coding:"
-msgstr "Sviluppo:"
-
-msgid "Connection lost..."
-msgstr "Connessione persa..."
-
-msgid "Console"
-msgstr "Terminale"
-
-msgid "Console Locked"
-msgstr "Console Bloccata"
-
-msgid "Console should be unlocked to modify it."
-msgstr "Sbloccare la Console per Modificarla."
-
-msgid "Continue to install game?"
-msgstr "Continua ad Installare il gioco?"
-
-msgid "Controllevel"
-msgstr "Livello Protezione"
-
-msgid "Correct Password"
-msgstr "Password Corretta"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "Non è stato possibile creare il file GCT"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "Non è stato possibile inizializzare il modulo DIP!"
-
-msgid "Could not initialize network!"
-msgstr "Non è stato possibile inizializzare la rete!"
-
-msgid "Could not open Disc"
-msgstr "Non è stato possibile accedere al Disco"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "Non è stato possibile salvare."
-
-msgid "Cover Download"
-msgstr "Scaricamento Copertine"
-
-msgid "Create"
-msgstr "Crea"
-
-msgid "Credits"
-msgstr ""
-
-msgid "Custom Paths"
-msgstr "Impostazione Percorsi (Directory)"
-
-msgid "DOL Path"
-msgstr "Percorso File DOL"
-
-msgid "Dec"
-msgstr "dicembre"
-
-msgid "Default"
-msgstr "Default"
-
-msgid "Default Gamesettings"
-msgstr "Impostaz. Predefinite Gioco"
-
-msgid "Default Settings"
-msgstr "Impostazioni Predefinite"
-
-msgid "Delete"
-msgstr "Elimina"
-
-msgid "Delete ?"
-msgstr "Vuoi eliminare ?"
-
-msgid "Delete Cheat GCT"
-msgstr "Elimina Trucchi GCT"
-
-msgid "Delete Cheat TXT"
-msgstr "Elimina Trucchi TXT"
-
-msgid "Delete Cover Artwork"
-msgstr "Elimina la copertina"
-
-msgid "Delete Disc Artwork"
-msgstr "Elimina l'immagine disco"
-
-msgid "Design:"
-msgstr "Grafica:"
-
-msgid "Developed by"
-msgstr "Sviluppato da"
-
-msgid "Directory does not exist!"
-msgstr "La cartella non esiste!"
-
-msgid "Disc Artwork Download"
-msgstr "Scaricamento Imm. Disco"
-
-msgid "Disc Artwork Path"
-msgstr "Percorso Imm. Disco"
-
-msgid "Disc Images"
-msgstr "Immagini Disco"
-
-msgid "Display"
-msgstr "Visualizza"
-
-msgid "Display as a carousel"
-msgstr "Visualizzazione a Carosello"
-
-msgid "Display as a grid"
-msgstr "Visualizzazione a Griglia"
-
-msgid "Display as a list"
-msgstr "Visualizzazione a Elenco"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "Vuoi veramente eliminare:"
-
-msgid "Do you want to apply it now?"
-msgstr "Applicare immediatamente?"
-
-msgid "Do you want to change language?"
-msgstr "Vuoi cambiare lingua?"
-
-msgid "Do you want to download this theme?"
-msgstr "Vuoi scaricare questo tema?"
-
-msgid "Do you want to format:"
-msgstr "Vuoi formattare:"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "Vuoi utilizzare il DOL alternativo funzionante?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "Vuoi scaricare/aggiornare tutti i file delle lingue?"
-
-msgid "Done!"
-msgstr "Fatto!"
-
-msgid "Download"
-msgstr "Scarica"
-
-msgid "Download Boxart image?"
-msgstr "Scarico la copertina?"
-
-msgid "Download Discart image?"
-msgstr "Scarico l'immagine del disco?"
-
-msgid "Download Now"
-msgstr "Scarica Adesso"
-
-msgid "Download failed."
-msgstr "Download fallito."
-
-msgid "Download finished"
-msgstr "Ho finito di scaricare"
-
-msgid "Download request failed."
-msgstr "Richiesta di download fallita."
-
-msgid "Downloading Page List:"
-msgstr "Sto scaricando l'elenco:"
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "Sto scaricando il file"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr "Sto scaricando l'immagine:"
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "ERRORE"
-
-msgid "ERROR:"
-msgstr "ERRORE:"
-
-msgid "ERROR: Can't set up theme."
-msgstr "ERRORE: Impossibile configurare il tema."
-
-msgid "Error"
-msgstr "Errore"
-
-msgid "Error !"
-msgstr "Errore !"
-
-msgid "Error 002 fix"
-msgstr "Correzione Error002"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "Errore Lettura Disco"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "Errore durante il trasferimento dei dati."
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "Errore..."
-
-msgid "Error:"
-msgstr "Errore:"
-
-msgid "Extracting files..."
-msgstr "Sto scompattando i file..."
-
-msgid "FAT: Use directories"
-msgstr "FAT: Utilizzare le cartelle"
-
-msgid "Failed formating"
-msgstr "Errore Formattazione"
-
-msgid "Failed to extract."
-msgstr "Scompattamento fallito."
-
-msgid "Failed to open partition"
-msgstr "Non si accede alla partizione"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr "febbraio"
-
-msgid "File not found."
-msgstr "File non trovato."
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "Sto terminando l'installazione... Ok!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr "Scorrimento Dischi"
-
-msgid "Format"
-msgstr "Formatta"
-
-msgid "Formatting, please wait..."
-msgstr "Sto Formattando, prego attendere..."
-
-msgid "Free Space"
-msgstr "Spazio libero"
-
-msgid "Full Shutdown"
-msgstr "Completo"
-
-msgid "GCT Cheatcodes Path"
-msgstr "Percorso Trucchi in GCT"
-
-msgid "GCT File created"
-msgstr "File GCT creato"
-
-msgid "GUI Settings"
-msgstr "Impostazioni Loader"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr "Nessuna sottocartella contiene il file GXtheme.cfg."
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "Lingua Gioco"
-
-msgid "Game Load"
-msgstr "Impostazioni Giochi"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "Dimensione Gioco"
-
-msgid "Game Sound Mode"
-msgstr "Modalità Suono Giochi"
-
-msgid "Game Sound Volume"
-msgstr "Volume Suono Giochi"
-
-msgid "Game is already installed:"
-msgstr "Gioco già installato:"
-
-msgid "Game partition"
-msgstr "Partizione gioco"
-
-msgid "Games"
-msgstr "Giochi"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr "Menu HOME"
-
-msgid "Homebrew Apps Path"
-msgstr "Percorso Applic. Homebrew"
-
-msgid "Homebrew Launcher"
-msgstr "Applicazioni Homebrew"
-
-msgid "Hour"
-msgstr "ore"
-
-msgid "How do you want to update?"
-msgstr "Come Vuoi Aggiornare ?"
-
-msgid "How to Shutdown?"
-msgstr "Spegnimento Wii?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "Se non hai una connessione WiFi, premi 1 per ottenere un URL dal quale ottenere il file WiiTDB.zip"
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "Dimensione file %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "Dimensione file %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "Inizializzazione Rete"
-
-msgid "Insert Disk"
-msgstr "Inserisci Disco"
-
-msgid "Insert a Wii Disc!"
-msgstr "Inserisci un Disco nella Wii!"
-
-msgid "Insert an SD-Card to save."
-msgstr "Inserisci una scheda SD per Salvare."
-
-msgid "Insert an SD-Card to use this option."
-msgstr "Inserire scheda SD per questa opzione"
-
-msgid "Install"
-msgstr "Installa"
-
-msgid "Install Error!"
-msgstr "Errore Installazione!"
-
-msgid "Install a game"
-msgstr "Installa un gioco"
-
-msgid "Install partitions"
-msgstr "Installa partizioni"
-
-msgid "Installing content... Ok!"
-msgstr "Sto installando il contenuto... Ok!"
-
-msgid "Installing game:"
-msgstr "Sto Installando il gioco:"
-
-msgid "Installing ticket... Ok!"
-msgstr "Sto installando il ticket... Ok!"
-
-msgid "Installing title... Ok!"
-msgstr "Sto installando il titolo... Ok!"
-
-msgid "Installing wad"
-msgstr "Sto installando il WAD"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "Hai informazioni che potrebbero esserci utili. Per favore, comunicale al team di sviluppo."
-
-msgid "Jan"
-msgstr "gennaio"
-
-msgid "July"
-msgstr "luglio"
-
-msgid "June"
-msgstr "giugno"
-
-msgid "Keep"
-msgstr "Mantieni"
-
-msgid "Keyboard"
-msgstr "Tastiera"
-
-msgid "Language File"
-msgstr "File Lingue"
-
-msgid "Language change:"
-msgstr "Modifica Lingua:"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "Percorso Lingue modificato"
-
-msgid "Load"
-msgstr "Carica"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "Vuoi caricare il file da: %s ?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "Vuoi caricare questo DOL come DOL alternativo?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "Caricamento Lingua Standard."
-
-msgid "Loading standard music."
-msgstr "Caricamento Musica std."
-
-msgid "Lock Console"
-msgstr "Blocco Console"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr "marzo"
-
-msgid "Mark new games"
-msgstr "Evidenzia i nuovi giochi"
-
-msgid "May"
-msgstr "maggio"
-
-msgid "Missing files"
-msgstr "File Mancante/i"
-
-msgid "Mount DVD drive"
-msgstr "Avvia DVD"
-
-msgid "Music Loop Mode"
-msgstr "Modalità Musica Ripetuta"
-
-msgid "Music Volume"
-msgstr "Volume"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "Trovato Nuovo Disco"
-
-msgid "No"
-msgstr ""
-
-msgid "No Cheatfile found"
-msgstr "Nessun file trucchi trovato"
-
-msgid "No DOL file found on disc."
-msgstr "Nessun file DOL trovato sul disco."
-
-msgid "No SD-Card inserted!"
-msgstr "Nessuna scheda SD inserita!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "Non è stato selezionato alcun trucco"
-
-msgid "No data could be read."
-msgstr "Non è stato possibile leggere alcun dato."
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "Nessun file mancante!"
-
-msgid "No new updates."
-msgstr "Nessun Aggiornamento."
-
-msgid "No themes found on the site."
-msgstr "Nessun tema trovato sul sito."
-
-msgid "Not a WAD file."
-msgstr "Non è un file WAD."
-
-msgid "Not a Wii Disc"
-msgstr "Non è un Disco Wii"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "Memoria insufficiente."
-
-msgid "Not enough free space!"
-msgstr "Spazio Insufficiente!"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "Formato non supportato."
-
-msgid "Nov"
-msgstr "novembre"
-
-msgid "OFF"
-msgstr "Disattivato"
-
-msgid "OK"
-msgstr ""
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "ottobre"
-
-msgid "Official Site:"
-msgstr "Sito Ufficiale:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "Controllo Genitori"
-
-msgid "Partition"
-msgstr "Partizione"
-
-msgid "Password"
-msgstr ""
-
-msgid "Password Changed"
-msgstr "Password modificata"
-
-msgid "Password has been changed"
-msgstr "Password è stata modificata"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "Copialo nel tuo browser per scaricare il file WiiTDB.zip."
-
-msgid "Patch Country Strings"
-msgstr "Patch Regione"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "Seleziona da un elenco"
-
-msgid "Play Count"
-msgstr "Giocati"
-
-msgid "Play Next"
-msgstr "Suona Successiva"
-
-msgid "Play Previous"
-msgstr "Suona Precedente"
-
-msgid "Playing Music:"
-msgstr "Sto suonando:"
-
-msgid "Please wait..."
-msgstr "Attendere prego..."
-
-msgid "Power off the Wii"
-msgstr "Spegnimento Wii"
-
-msgid "Prompts Buttons"
-msgstr "Pulsanti"
-
-msgid "Published by"
-msgstr "Pubblicato da"
-
-msgid "Quick Boot"
-msgstr "Avvio Veloce"
-
-msgid "Reading WAD data... Ok!"
-msgstr "Sto leggendo i dati del WAD... Ok!"
-
-msgid "Receiving file from:"
-msgstr "Sto ricevendo il file da:"
-
-msgid "Released"
-msgstr "Rilasciato"
-
-msgid "Reload SD"
-msgstr "Ricarica SD"
-
-msgid "Remove update"
-msgstr "Rimuovi aggiornamento"
-
-msgid "Rename Game on WBFS"
-msgstr "Rinomina Gioco su WBFS"
-
-msgid "Reset BG Music"
-msgstr "Azzera Musica BG"
-
-msgid "Reset Playcounter"
-msgstr "Azzera contatore"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "Premere OK per riavviare..."
-
-msgid "Return"
-msgstr "Ritorna"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "Torna al Menu Wii"
-
-msgid "Rumble"
-msgstr "Vibrazione"
-
-msgid "SFX Volume"
-msgstr "Volume SFX"
-
-msgid "Save"
-msgstr "Salva"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "Salvataggio Elenco Giochi in"
-
-msgid "Saved"
-msgstr "Salvataggio Eseguito"
-
-msgid "Screensaver"
-msgstr "Salvaschermo"
-
-msgid "Select"
-msgstr "Seleziona"
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "Seleziona un file DOL"
-
-msgid "Sept"
-msgstr "settembre"
-
-msgid "Set Search-Filter"
-msgstr "Cerca Gioco"
-
-msgid "Settings"
-msgstr "Impostazioni"
-
-msgid "Shutdown System"
-msgstr "Spegnimento"
-
-msgid "Shutdown to Idle"
-msgstr "Preaccensione"
-
-msgid "Sort alphabetically"
-msgstr "Ordine alfabetico"
-
-msgid "Sort by rank"
-msgstr "Ordine di preferenza"
-
-msgid "Sort order by most played"
-msgstr "Mostra i più giocati"
-
-msgid "Sound"
-msgstr "Audio"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "Un ringraziamento speciale a:"
-
-msgid "Success"
-msgstr "Successo"
-
-msgid "Success:"
-msgstr "Successo:"
-
-msgid "Successfully Saved"
-msgstr "Salvataggio Eseguito"
-
-msgid "Successfully Updated"
-msgstr "Aggiornamento Eseguito"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr "Aggiornamento Eseguito grazie a www.techjawa.com"
-
-msgid "Successfully deleted:"
-msgstr "Eliminato con successo:"
-
-msgid "Successfully extracted theme."
-msgstr "Tema scompattato con successo."
-
-msgid "Successfully installed:"
-msgstr "Installato con successo:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "Percorso Trucchi in TXT"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "La cartella indicata non esiste. Vuoi crearla?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr "Percorso Download Temi"
-
-msgid "Theme Downloader"
-msgstr "Scaricamento Temi"
-
-msgid "Theme Path"
-msgstr "Percorso Tema"
-
-msgid "Theme Title:"
-msgstr "Titolo del tema:"
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "Restante:"
-
-msgid "Title Launcher"
-msgstr "Schermata Titoli"
-
-msgid "Titles from WiiTDB"
-msgstr "Titoli dal file WiiTDB"
-
-msgid "Tooltips"
-msgstr "Suggerimenti"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr "Trasferimento fallito."
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "Dispositivo USB non Trovato"
-
-msgid "USB Loader GX is protected"
-msgstr "USB Loader GX è Protetto"
-
-msgid "Uninstall"
-msgstr "Disinstalla"
-
-msgid "Uninstall Game"
-msgstr "Disinstalla il gioco"
-
-msgid "Uninstall Menu"
-msgstr "Disinstalla Menu"
-
-msgid "Uninstalling wad"
-msgstr "Disinstalla WAD"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "Sblocca la Console per usare questa opzione."
-
-msgid "Unsupported format, try to extract manually."
-msgstr "Formato non supportato, provare a scompattare manualmente."
-
-msgid "Update"
-msgstr "Aggiornamento"
-
-msgid "Update All"
-msgstr "Tutti i files"
-
-msgid "Update DOL"
-msgstr "Solo DOL"
-
-msgid "Update Files"
-msgstr "Aggiorna File"
-
-msgid "Update Path"
-msgstr "Percorso Aggiornamento"
-
-msgid "Update all Language Files"
-msgstr "Aggiorna tutti i file delle lingue"
-
-msgid "Update failed"
-msgstr "Aggiornamento Fallito"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "Aggiornamento file delle lingue:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "File ZIP installato nella cartella Homebrew"
-
-msgid "VIDTV Patch"
-msgstr "Video Forzato"
-
-#, c-format
-msgid "Version: %s"
-msgstr "Versione: %s"
-
-msgid "Video Mode"
-msgstr "Modalità Video"
-
-msgid "WIP Patches Path"
-msgstr "Percorso Patch WIP"
-
-msgid "Waiting for USB Device"
-msgstr "Caricamento Dispositivo USB"
-
-msgid "Waiting..."
-msgstr "Caricamento..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "Che cosa vuoi aggiornare?"
-
-msgid "WiFi Features"
-msgstr "Caratteristiche WiFi"
-
-msgid "Wii Menu"
-msgstr "Menu Wii"
-
-msgid "Wii Settings"
-msgstr "Impostazioni Wii"
-
-msgid "WiiTDB Files"
-msgstr "File WiiTDB"
-
-msgid "WiiTDB Path"
-msgstr "Percorso Archivio WiiTDB"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr "Illuminazione Wii"
-
-msgid "Wrong Password"
-msgstr "Password Errata"
-
-msgid "Yes"
-msgstr "Sì"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr "Occorre selezionare o formattare una partizione"
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "L'indirizzo (URL) è stato salvato in %sWiiTDB_URL.txt."
-
-msgid "and translaters for language files updates"
-msgstr "ed i traduttori per la localizzazione del loader"
-
-msgid "available"
-msgstr "disponibile"
-
-msgid "does not exist!"
-msgstr "non esiste!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "non esiste! Carico il gioco senza i trucchi."
-
-msgid "files left"
-msgstr "file mancanti"
-
-msgid "files not found on the server!"
-msgstr "file non trovato/i sul server!"
-
-msgid "for FAT/NTFS support"
-msgstr "per il supporto FAT/NTFS"
-
-msgid "for Ocarina"
-msgstr "per Ocarina"
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "per l'archivio WiiTDB e le copertine online"
-
-msgid "for diverse patches"
-msgstr "per le numerose correzioni"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "per la fantastica libreria LibWiiGui"
-
-msgid "for hosting the themes"
-msgstr "per i temi online"
-
-msgid "for hosting the update files"
-msgstr "per gli aggiornamenti online"
-
-msgid "for the USB Loader source"
-msgstr "per il rilascio del codice sorgente"
-
-msgid "formatted!"
-msgstr "formattato!"
-
-msgid "free"
-msgstr "liberi"
-
-msgid "not set"
-msgstr "non inserita"
-
-msgid "of"
-msgstr "di"
-
-msgid "seconds left"
-msgstr "secondi mancanti"
-
-#~ msgid "Install 1:1 Copy"
-#~ msgstr "Installa copia 1:1"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (Tutti)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (Bambini 7+)"
-
-#~ msgid "1 hour"
-#~ msgstr "1 ora"
-
-#~ msgid "10 min"
-#~ msgstr "10 minuti"
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (Ragazzini 12+)"
-
-#~ msgid "20 min"
-#~ msgstr "20 minuti"
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (Ragazzi 16+)"
-
-#~ msgid "3 min"
-#~ msgstr "3 minuti"
-
-#~ msgid "30 min"
-#~ msgstr "30 minuti"
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (Maggiorenni 18+)"
-
-#~ msgid "5 min"
-#~ msgstr "5 minuti"
-
-#~ msgid "An Error occured"
-#~ msgstr "C'è stato un errore"
-
-#~ msgid "Are you sure you want to enable Parent Control?"
-#~ msgstr "Sei sicuro di voler attivare il Controllo Genitori?"
-
-#~ msgid "AutoPatch"
-#~ msgstr "Correzione automatica"
-
-#~ msgid "Both"
-#~ msgstr "Entrambi"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "Verifica Aggiornamenti"
-
-#~ msgid "Console Default"
-#~ msgstr "Predefinita Console"
-
-#~ msgid "Customs/Original"
-#~ msgstr "Modific./Origin."
-
-#~ msgid "Disc Default"
-#~ msgstr "Predefinita Disco"
-
-#~ msgid "DiskFlip"
-#~ msgstr "Gira i dischi"
-
-#~ msgid "Downloading"
-#~ msgstr "Sto scaricando"
-
-#~ msgid "Dutch"
-#~ msgstr "Olandese"
-
-#~ msgid "English"
-#~ msgstr "Inglese"
-
-#~ msgid "French"
-#~ msgstr "Francese"
-
-#~ msgid "GAMEID_Gamename"
-#~ msgstr "IDGIOCO_Nomegioco"
-
-#~ msgid "Game ID"
-#~ msgstr "ID Gioco"
-
-#~ msgid "Game Region"
-#~ msgstr "Regione Gioco"
-
-#~ msgid "Gamename [GAMEID]"
-#~ msgstr "Nomegioco [IDGIOCO]"
-
-#~ msgid "German"
-#~ msgstr "Tedesco"
-
-#~ msgid "Invalid PIN code"
-#~ msgstr "Codice PIN non valido"
-
-#~ msgid "Italian"
-#~ msgstr "Italiano"
-
-#~ msgid "Japanese"
-#~ msgstr "Giapponese"
-
-#~ msgid "Korean"
-#~ msgstr "Coreano"
-
-#~ msgid "Left"
-#~ msgstr "Sinistra"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "Come SysMenu"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "Caricamento da SD/USB"
-
-#~ msgid "Locked"
-#~ msgstr "Bloccato"
-
-#~ msgid "Loop Directory"
-#~ msgstr "Cartella Cicli"
-
-#~ msgid "Loop Music"
-#~ msgstr "Musica Ripetuta"
-
-#~ msgid "Loop Sound"
-#~ msgstr "Suono Ripetuto"
-
-#~ msgid "Neither"
-#~ msgstr "Nessuno"
-
-#~ msgid "Next"
-#~ msgstr "Avanti"
-
-#~ msgid "None"
-#~ msgstr "Nessuno"
-
-#~ msgid "Normal"
-#~ msgstr "Normale"
-
-#~ msgid "ON"
-#~ msgstr "Attivato"
-
-#~ msgid "Only Customs"
-#~ msgstr "Modificate"
-
-#~ msgid "Only Original"
-#~ msgstr "Originali"
-
-#~ msgid "Only for Install"
-#~ msgstr "Installa Solamente"
-
-#~ msgid "Original/Customs"
-#~ msgstr "Origin./Modific."
-
-#~ msgid "Parental Control disabled"
-#~ msgstr "Controllo Genitori disabilitato"
-
-#~ msgid "Play Once"
-#~ msgstr "Suona una volta"
-
-#~ msgid "Prev"
-#~ msgstr "Indietro"
-
-#~ msgid "Random Directory Music"
-#~ msgstr "Cartella Musica Casuale"
-
-#~ msgid "Right"
-#~ msgstr "Destra"
-
-#~ msgid "SChinese"
-#~ msgstr "Cinese Moderno"
-
-#~ msgid "Sound+BGM"
-#~ msgstr "Suono+BGM"
-
-#~ msgid "Sound+Quiet"
-#~ msgstr "Suono+Silenzio"
-
-#~ msgid "Spanish"
-#~ msgstr "Spagnolo"
-
-#~ msgid "System Default"
-#~ msgstr "Predefinita Sistema"
-
-#~ msgid "TChinese"
-#~ msgstr "Cinese Tradizionale"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "File Wad installato. Non si può però eliminare dalla scheda SD."
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "L'installazione del WAD è fallita con errore %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "Non riesco ad aprire il wad da poco scaricato (%s)."
-
-#~ msgid "Unlock Parental Control"
-#~ msgstr "Sblocca Controllo Genitori"
-
-#~ msgid "Unlocked"
-#~ msgstr "Sbloccato"
-
-#~ msgid "Update to"
-#~ msgstr "Aggiornamento alla"
-
-#~ msgid "Updating"
-#~ msgstr "Aggiornamento"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "Aggiornamento file delle lingue..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "Aggiornamento file WiiTDB.zip"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "Widescreen"
-
-#~ msgid "You don't have Parental Control enabled. If you wish to use Parental Control, enable it in the Wii Settings."
-#~ msgstr "Il Controllo Genitori non è attivo. Se vuoi utilizzare il Controllo Genitori abilitalo nelle Impostazioni della Wii."
-
-#~ msgid "%s : %s May not boot correctly if your System Menu is not up to date."
-#~ msgstr "%s : %s Potrebbe non essere caricato correttamente se il tuo System Menu non è aggiornato."
-
-#~ msgid "BCA Codes Path changed"
-#~ msgstr "Percorso Codici BCA modificato"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "Torna al Menu Wii"
-
-#~ msgid "Channels"
-#~ msgstr "Canali"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "Verifico le copertine presenti"
-
-#~ msgid "Confirm"
-#~ msgstr "Confermare"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "Non è stata trovata alcuna partizione WBFS."
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "Non è stato possibile accedere alla partizione WBFS"
-
-#~ msgid "Could not read the disc."
-#~ msgstr "Non è stato possibile leggere il disco."
-
-#~ msgid "Could not set USB."
-#~ msgstr "Non è stato possibile impostare la porta USB."
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "Percorso Copertine Modificato"
-
-#~ msgid "DOL path changed"
-#~ msgstr "Percorso File DOL Modificato"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "Percorso Immagini Disco Modificato"
-
-#~ msgid "Display favorites"
-#~ msgstr "Mostra i preferiti"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "Vuoi riprovare per 30 sec?"
-
-#~ msgid "Enable Parental Control"
-#~ msgstr "Attiva Controllo Genitori"
-
-#~ msgid "Force"
-#~ msgstr "Forza"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "Percorso Trucchi in GCT modificato"
-
-#~ msgid "Hermes CIOS"
-#~ msgstr "cIOS di Hermes"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "Percorso app. Homebrew modificato"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "Inserisci una scheda SD per scaricare le immagini."
-
-#~ msgid "Install not possible"
-#~ msgstr "Impossibile installare"
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "Molto probabilmente le dimensioni non sono divisibili per 4."
-
-#~ msgid "Network init error"
-#~ msgstr "Errore inizializzazione rete"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr "Non sono stati trovati file .dol o .elf"
-
-#~ msgid "No Favorites"
-#~ msgstr "Nessun Preferito"
-
-#~ msgid "No USB Device"
-#~ msgstr "Nessun Dispositivo USB"
-
-#~ msgid "No USB Device found."
-#~ msgstr "Nessun Dispositivo USB trovato."
-
-#~ msgid "No WBFS or FAT/NTFS partition found"
-#~ msgstr "Non è stata trovata alcuna partizione WBFS o FAT/NTFS"
-
-#~ msgid "Normal Covers"
-#~ msgstr "Copert. Normali"
-
-#~ msgid "Not Found"
-#~ msgstr "Non Trovato"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "Non è un file DOL/ELF."
-
-#~ msgid "Reset to standard BGM?"
-#~ msgstr "Azzerare Musica BG?"
-
-#~ msgid "Save Failed"
-#~ msgstr "Salvataggio Fallito"
-
-#~ msgid "Selected DOL"
-#~ msgstr "File DOL selezionato"
-
-#~ msgid "Standard"
-#~ msgstr "Standard"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "Percorso Trucchi in TXT modificato"
-
-#~ msgid "Theme Download Path changed"
-#~ msgstr "Percorso Download Temi modificato"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "Percorso Tema modificato"
-
-#~ msgid "USB Loader GX will only run with Hermes CIOS rev 4! Please make sure you have revision 4 installed!"
-#~ msgstr "USB Loader GX funziona solo con la rev 4 del cIOS di Hermes! Accertarsi di aver installato la rev 4!"
-
-#~ msgid "Update Path changed."
-#~ msgstr "Perc. Aggiornamento Modificato"
-
-#~ msgid "WIP Patches Path changed"
-#~ msgstr "Percorso Patch WIP modificato"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "Percorso archivio WiiTDB modificato."
-
-#~ msgid "You are about to delete "
-#~ msgstr "Stai per eliminare "
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "Hai scelto di visualizzare i preferiti e non ne hai selezionato nessuno"
-
-#~ msgid "You are using NTFS filesystem. Due to possible write errors to a NTFS partition, installing a game is not possible."
-#~ msgstr "E' in uso una partizione NTFS. Poiché sono possibili errori in scrittura nelle partizioni NTFS, non è possibile installare alcun gioco."
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "Hai tentato di caricare un'immagine non valida"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "non esiste! Hai fatto qualche casino."
-
-#~ msgid "file left"
-#~ msgstr "file mancante"
diff --git a/Languages/japanese.lang b/Languages/japanese.lang
deleted file mode 100644
index f58df13c..00000000
--- a/Languages/japanese.lang
+++ /dev/null
@@ -1,1564 +0,0 @@
-# USB Loader GX language source file.
-# japanese.lang - r930
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2009-10-01 01:00+0200\n"
-"Last-Translator: hosigumayuugi\n"
-"Language-Team: hosigumayuugi\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr "WADを保存しました:"
-
-msgid " could not be downloaded."
-msgstr "ダウンロードできませんでした"
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr "に保存されました。使用は 自己責任でお願いします。"
-
-msgid " is not on the server."
-msgstr "はサーバーにありません"
-
-msgid "2D Cover Path"
-msgstr "2Dカバーのパス"
-
-msgid "3D Cover Path"
-msgstr "3Dカバーのパス"
-
-msgid "3D Covers"
-msgstr "3Dカバー"
-
-msgid ">> Deleting tickets..."
-msgstr ">> チケットを削除します"
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> チケットの削除...エラー"
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> チケットの削除...成功!"
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> タイトルを削除...エラー"
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> タイトルを削除...成功!"
-
-msgid ">> Deleting title contents..."
-msgstr ">> タイトルコンテンツを削除します"
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> タイトルコンテンツを削除...エラー"
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> タイトルコンテンツを削除...成功!"
-
-msgid ">> Deleting title..."
-msgstr ">> タイトルを削除します"
-
-msgid ">> Finishing installation..."
-msgstr ">> インストールを終了します"
-
-msgid ">> Installing content #"
-msgstr ">> インストール コンテンツ #"
-
-msgid ">> Installing ticket..."
-msgstr ">> チケットをインストール中…"
-
-msgid ">> Installing title..."
-msgstr ">> タイトルをインストールします"
-
-msgid ">> Reading WAD data..."
-msgstr ">> WADデータを読み込み中…"
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> WADデータの読み込み...エラー"
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> WADデータの読み込み...成功!"
-
-msgid "AUTO"
-msgstr "自動"
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr "全領域"
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "GXの使用者制限が解除されました"
-
-msgid "Alternate DOL"
-msgstr "代理DOL起動"
-
-msgid "App Language"
-msgstr "使用言語"
-
-msgid "Apr"
-msgstr "4月"
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "よろしいですか?"
-
-msgid "Aug"
-msgstr "8月"
-
-msgid "Author:"
-msgstr "制作者:"
-
-msgid "AutoInit Network"
-msgstr "自動接続機能"
-
-msgid "BCA Codes Path"
-msgstr "BCAコードのパス"
-
-msgid "BETA revisions"
-msgstr "β版"
-
-msgid "Back"
-msgstr "もどる"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "HOMEボタンメニューへ"
-
-msgid "Back to Loader"
-msgstr "HBCへ"
-
-msgid "Backgroundmusic"
-msgstr "BGM"
-
-msgid "Big thanks to:"
-msgstr "協力:"
-
-msgid "Block IOS Reload"
-msgstr "IOSの再ロード禁止"
-
-msgid "Boot/Standard"
-msgstr "使用するcIOS"
-
-msgid "Boot?"
-msgstr "起動しますか?"
-
-msgid "Can't be formatted"
-msgstr "初期化できません"
-
-msgid "Can't create directory"
-msgstr "ディレクトリを作成できません"
-
-msgid "Can't create file"
-msgstr "ファイルを作れませんでした"
-
-msgid "Can't delete:"
-msgstr "削除できません"
-
-msgid "Cancel"
-msgstr "キャンセル"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr "プレイパスを変更"
-
-msgid "Cheatfile is blank"
-msgstr "チートファイルがありません"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "クリックでカバーをダウンロード"
-
-msgid "Click to change game ID"
-msgstr "クリックでゲームIDを変更"
-
-msgid "Clock"
-msgstr "時計の表示"
-
-msgid "Close"
-msgstr "とじる"
-
-msgid "Code Download"
-msgstr "コードをダウンロード"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "開発: %s"
-
-msgid "Coding:"
-msgstr "開発者:"
-
-msgid "Connection lost..."
-msgstr "接続失敗・・・"
-
-msgid "Console"
-msgstr "状態"
-
-msgid "Console Locked"
-msgstr "GXはロックされています"
-
-msgid "Console should be unlocked to modify it."
-msgstr "変更にはGXのロック解除が必要です"
-
-msgid "Continue to install game?"
-msgstr "このゲームをインストールしますか?"
-
-msgid "Controllevel"
-msgstr "制限レベル"
-
-msgid "Correct Password"
-msgstr "正しい暗証番号です"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "GCTファイルを作成できませんでした"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "DIPモジュールを初期化できません!"
-
-msgid "Could not initialize network!"
-msgstr "ネットワークを初期化できませんでした!"
-
-msgid "Could not open Disc"
-msgstr "ディスクを開けませんでした"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "保存できませんでした"
-
-msgid "Cover Download"
-msgstr "どれをダウンロードしますか"
-
-msgid "Create"
-msgstr "作成"
-
-msgid "Credits"
-msgstr "提供・協力"
-
-msgid "Custom Paths"
-msgstr "パスを変更"
-
-msgid "DOL Path"
-msgstr "DOLのパス"
-
-msgid "Dec"
-msgstr "12月"
-
-msgid "Default"
-msgstr "デフォルト"
-
-msgid "Default Gamesettings"
-msgstr "設定を初期化"
-
-msgid "Default Settings"
-msgstr "設定を初期化"
-
-msgid "Delete"
-msgstr "削除しますか"
-
-msgid "Delete ?"
-msgstr "削除しますか?"
-
-msgid "Delete Cheat GCT"
-msgstr "GCTファイルを削除"
-
-msgid "Delete Cheat TXT"
-msgstr "TXTコードを削除"
-
-msgid "Delete Cover Artwork"
-msgstr "カバー画像を削除"
-
-msgid "Delete Disc Artwork"
-msgstr "ディスク画像を削除"
-
-msgid "Design:"
-msgstr "デザイン:"
-
-msgid "Developed by"
-msgstr "開発者:"
-
-msgid "Directory does not exist!"
-msgstr "ディレクトリがありません"
-
-msgid "Disc Artwork Download"
-msgstr "使用するディスク画像"
-
-msgid "Disc Artwork Path"
-msgstr "ディスク画像のパス"
-
-msgid "Disc Images"
-msgstr "ディスク画像"
-
-msgid "Display"
-msgstr "ゲーム情報"
-
-msgid "Display as a carousel"
-msgstr "回転トレイ風に表示"
-
-msgid "Display as a grid"
-msgstr "格子風に表示"
-
-msgid "Display as a list"
-msgstr "リスト表示"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "本当に削除しますか?"
-
-msgid "Do you want to apply it now?"
-msgstr "適用しますか?"
-
-msgid "Do you want to change language?"
-msgstr "言語を変更しますか?"
-
-msgid "Do you want to download this theme?"
-msgstr "ダウンロードしますか?"
-
-msgid "Do you want to format:"
-msgstr "初期化しますか?"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "既知の代替DOLを利用しますか?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "すべての言語をダウンロードしますか?"
-
-msgid "Done!"
-msgstr "完了!"
-
-msgid "Download"
-msgstr "ダウンロード"
-
-msgid "Download Boxart image?"
-msgstr "画像をダウンロードしますか?"
-
-msgid "Download Discart image?"
-msgstr "画像をダウンロードしますか?"
-
-msgid "Download Now"
-msgstr "ダウンロード"
-
-msgid "Download failed."
-msgstr "ダウンロードに失敗しました"
-
-msgid "Download finished"
-msgstr "ダウンロードが終了しました"
-
-msgid "Download request failed."
-msgstr "ダウンロードに失敗しました"
-
-msgid "Downloading Page List:"
-msgstr "リストをダウンロード中"
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "ファイルをダウンロード中"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr "画像をダウンロード中"
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "エラー"
-
-msgid "ERROR:"
-msgstr "エラー:"
-
-msgid "ERROR: Can't set up theme."
-msgstr "テーマを適用できませんでした"
-
-msgid "Error"
-msgstr "エラー"
-
-msgid "Error !"
-msgstr "エラー!"
-
-msgid "Error 002 fix"
-msgstr "Error002対策"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "読み込みに失敗しました"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "転送中にエラーが発生しました"
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "エラー…"
-
-msgid "Error:"
-msgstr "エラー:"
-
-msgid "Extracting files..."
-msgstr "解凍中です…"
-
-msgid "FAT: Use directories"
-msgstr "FATで階層を使用"
-
-msgid "Failed formating"
-msgstr "初期化に失敗しました"
-
-msgid "Failed to extract."
-msgstr "解凍に失敗しました"
-
-msgid "Failed to open partition"
-msgstr "領域を開けませんでした"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr "2月"
-
-msgid "File not found."
-msgstr "ファイルが見つかりません"
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "インストールの完了...完了しました"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr "ゲームリストの回転"
-
-msgid "Format"
-msgstr "初期化"
-
-msgid "Formatting, please wait..."
-msgstr "初期化中です、暫くお待ち下さい..."
-
-msgid "Free Space"
-msgstr "空き"
-
-msgid "Full Shutdown"
-msgstr "シャットダウン"
-
-msgid "GCT Cheatcodes Path"
-msgstr "GCTファイルのパス"
-
-msgid "GCT File created"
-msgstr "GCTファイルを作成しました"
-
-msgid "GUI Settings"
-msgstr "基本設定"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr "設定ファイルが見つかりません"
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "ゲームの言語"
-
-msgid "Game Load"
-msgstr "読み込みの設定"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "サイズ"
-
-msgid "Game Sound Mode"
-msgstr "サウンドモード"
-
-msgid "Game Sound Volume"
-msgstr "サウンドの音量"
-
-msgid "Game is already installed:"
-msgstr "このゲームは既にインストールされています:"
-
-msgid "Game partition"
-msgstr "ゲーム領域のみ"
-
-msgid "Games"
-msgstr "総ゲーム数"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr "HOMEボタンメニュー"
-
-msgid "Homebrew Apps Path"
-msgstr "Homebrewのパス"
-
-msgid "Homebrew Launcher"
-msgstr "Homebrewランチャー"
-
-msgid "Hour"
-msgstr "時間"
-
-msgid "How do you want to update?"
-msgstr "どう更新しますか?"
-
-msgid "How to Shutdown?"
-msgstr "どう終了しますか?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "1ボタンを押すと WiiTDB.zip のURLを保存します"
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "ファイルを受信中 %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "ファイルを受信中 %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "接続中・・・"
-
-msgid "Insert Disk"
-msgstr "ディスクを入れてください"
-
-msgid "Insert a Wii Disc!"
-msgstr "Wiiディスクを挿入して下さい!"
-
-msgid "Insert an SD-Card to save."
-msgstr "保存するためにSDを挿入して下さい"
-
-msgid "Insert an SD-Card to use this option."
-msgstr "このオプションを使用するためSDカードを挿入して下さい"
-
-msgid "Install"
-msgstr "インストール"
-
-msgid "Install Error!"
-msgstr "インストールエラー!"
-
-msgid "Install a game"
-msgstr "ゲームをインストール"
-
-msgid "Install partitions"
-msgstr "保存する領域"
-
-msgid "Installing content... Ok!"
-msgstr "コンテンツをインストール...成功!"
-
-msgid "Installing game:"
-msgstr "ゲームをインストール中:"
-
-msgid "Installing ticket... Ok!"
-msgstr "チケットをインストール...成功!"
-
-msgid "Installing title... Ok!"
-msgstr "タイトルをインストール...成功!"
-
-msgid "Installing wad"
-msgstr "WADをインストールします"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "この情報は開発者までお知らせください"
-
-msgid "Jan"
-msgstr "1月"
-
-msgid "July"
-msgstr "7月"
-
-msgid "June"
-msgstr "6月"
-
-msgid "Keep"
-msgstr "保存"
-
-msgid "Keyboard"
-msgstr "キーボードのタイプ"
-
-msgid "Language File"
-msgstr "言語ファイル"
-
-msgid "Language change:"
-msgstr "言語の変更"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "言語のパスを変更しました"
-
-msgid "Load"
-msgstr "はじめる"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "%sからファイルをロードしますか?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "このDOLを代替DOLとしてロードしますか?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "標準の言語に変更しますか"
-
-msgid "Loading standard music."
-msgstr "初期設定に戻しますか"
-
-msgid "Lock Console"
-msgstr "GXをロック"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr "3月"
-
-msgid "Mark new games"
-msgstr "Newマークの表示機能"
-
-msgid "May"
-msgstr "5月"
-
-msgid "Missing files"
-msgstr "個の画像"
-
-msgid "Mount DVD drive"
-msgstr "DVDを起動"
-
-msgid "Music Loop Mode"
-msgstr "ループ機能"
-
-msgid "Music Volume"
-msgstr "BGMの音量"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "新しいディスクが検出されました"
-
-msgid "No"
-msgstr "いいえ"
-
-msgid "No Cheatfile found"
-msgstr "チートファイルが見つかりません"
-
-msgid "No DOL file found on disc."
-msgstr "ディスク内に.DOLがありません"
-
-msgid "No SD-Card inserted!"
-msgstr "SDカードが挿入されていません!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "何も選ばれていません"
-
-msgid "No data could be read."
-msgstr "読み込みに失敗しました"
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "必要ありません"
-
-msgid "No new updates."
-msgstr "更新はありません"
-
-msgid "No themes found on the site."
-msgstr "テーマが見つかりません"
-
-msgid "Not a WAD file."
-msgstr "WADファイルではありません"
-
-msgid "Not a Wii Disc"
-msgstr "Wiiディスクではありません"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "空メモリが不足しています"
-
-msgid "Not enough free space!"
-msgstr "空容量が不足しています!"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "対応していない形式です!"
-
-msgid "Nov"
-msgstr "11月"
-
-msgid "OFF"
-msgstr "使わない"
-
-msgid "OK"
-msgstr ""
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "10月"
-
-msgid "Official Site:"
-msgstr "公式サイト:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "ペアレンタルコントロール"
-
-msgid "Partition"
-msgstr "使用する領域"
-
-msgid "Password"
-msgstr "暗証番号"
-
-msgid "Password Changed"
-msgstr "暗証番号の変更"
-
-msgid "Password has been changed"
-msgstr "暗証番号を変更しました"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "ブラウザに貼付けるとWiiTDB.zipをダウンロードできます。"
-
-msgid "Patch Country Strings"
-msgstr "日本語パッチ"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "リストから選択"
-
-msgid "Play Count"
-msgstr "プレイ回数"
-
-msgid "Play Next"
-msgstr "次へ"
-
-msgid "Play Previous"
-msgstr "前へ"
-
-msgid "Playing Music:"
-msgstr "再生中"
-
-msgid "Please wait..."
-msgstr "しばらくお待ちください"
-
-msgid "Power off the Wii"
-msgstr "Wiiの電源を切る"
-
-msgid "Prompts Buttons"
-msgstr "ウインドウサイズ"
-
-msgid "Published by"
-msgstr "発売元:"
-
-msgid "Quick Boot"
-msgstr "ワンボタン起動"
-
-msgid "Reading WAD data... Ok!"
-msgstr "WADデータの読み込み...成功!"
-
-msgid "Receiving file from:"
-msgstr "ファイルを受信中:"
-
-msgid "Released"
-msgstr "発売日"
-
-msgid "Reload SD"
-msgstr "SDを再読み込み"
-
-msgid "Remove update"
-msgstr "更新を取り除く"
-
-msgid "Rename Game on WBFS"
-msgstr "WBFS内のゲーム名を変更"
-
-msgid "Reset BG Music"
-msgstr "BGMをリセット"
-
-msgid "Reset Playcounter"
-msgstr "プレイ回数をリセット"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "再起動します"
-
-msgid "Return"
-msgstr "もどる"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "Wiiメニューへもどる"
-
-msgid "Rumble"
-msgstr "Wiiリモコンの振動機能"
-
-msgid "SFX Volume"
-msgstr "効果音の音量"
-
-msgid "Save"
-msgstr "保存"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "リストを保存しますか"
-
-msgid "Saved"
-msgstr "保存しました"
-
-msgid "Screensaver"
-msgstr "画面焼け軽減機能"
-
-msgid "Select"
-msgstr "選択"
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "DOLを選択"
-
-msgid "Sept"
-msgstr "9月"
-
-msgid "Set Search-Filter"
-msgstr "検索"
-
-msgid "Settings"
-msgstr "設定"
-
-msgid "Shutdown System"
-msgstr "シャットダウン"
-
-msgid "Shutdown to Idle"
-msgstr "スタンバイ"
-
-msgid "Sort alphabetically"
-msgstr "名前順に並び替え"
-
-msgid "Sort by rank"
-msgstr "ランク順に並び替え"
-
-msgid "Sort order by most played"
-msgstr "プレイ回数が多い順に並び替え"
-
-msgid "Sound"
-msgstr "サウンド"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "スペシャルサンクス:"
-
-msgid "Success"
-msgstr "成功"
-
-msgid "Success:"
-msgstr "成功:"
-
-msgid "Successfully Saved"
-msgstr "保存に成功しました"
-
-msgid "Successfully Updated"
-msgstr "更新しました"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr "更新しました www.techjawa.comに感謝!"
-
-msgid "Successfully deleted:"
-msgstr "削除に成功しました"
-
-msgid "Successfully extracted theme."
-msgstr "テーマの解凍を完了しました."
-
-msgid "Successfully installed:"
-msgstr "このゲームをインストールしました"
-
-msgid "TXT Cheatcodes Path"
-msgstr "TXTコードのパス"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "ディレクトリがありません。作りますか?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr "テーマを保存するパス"
-
-msgid "Theme Downloader"
-msgstr "テーマをダウンロード"
-
-msgid "Theme Path"
-msgstr "テーマのパス"
-
-msgid "Theme Title:"
-msgstr "テーマ名:"
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "残り時間:"
-
-msgid "Title Launcher"
-msgstr "チャンネルランチャー"
-
-msgid "Titles from WiiTDB"
-msgstr "ゲーム名のリスト"
-
-msgid "Tooltips"
-msgstr "ヒントバルーン"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr "転送を失敗しました"
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "USBデバイスを検出できませんでした"
-
-msgid "USB Loader GX is protected"
-msgstr "USB Loaderは保護されています"
-
-msgid "Uninstall"
-msgstr "アンインストール"
-
-msgid "Uninstall Game"
-msgstr "ゲームをアンインストール"
-
-msgid "Uninstall Menu"
-msgstr "アンインストール"
-
-msgid "Uninstalling wad"
-msgstr "WADをアンインストール"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "ロックを解除してください"
-
-msgid "Unsupported format, try to extract manually."
-msgstr "非対応の形式なので自己解凍してください"
-
-msgid "Update"
-msgstr "更新"
-
-msgid "Update All"
-msgstr "全て"
-
-msgid "Update DOL"
-msgstr "DOLのみ"
-
-msgid "Update Files"
-msgstr "すべて更新"
-
-msgid "Update Path"
-msgstr "GXのパス"
-
-msgid "Update all Language Files"
-msgstr "全言語ファイルを更新"
-
-msgid "Update failed"
-msgstr "更新に失敗しました"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "言語ファイルを更新中:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "インストール済みディレクトリにZIPを送信しました"
-
-msgid "VIDTV Patch"
-msgstr "映像パッチ"
-
-#, c-format
-msgid "Version: %s"
-msgstr "バージョン: %s"
-
-msgid "Video Mode"
-msgstr "映像の出力方法"
-
-msgid "WIP Patches Path"
-msgstr "WIPパッチのパス"
-
-msgid "Waiting for USB Device"
-msgstr "USBデバイスの応答待ち"
-
-msgid "Waiting..."
-msgstr "待機中…"
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "何を更新しますか?"
-
-msgid "WiFi Features"
-msgstr "ネットワーク対応"
-
-msgid "Wii Menu"
-msgstr "Wiiメニューへ"
-
-msgid "Wii Settings"
-msgstr "データ管理"
-
-msgid "WiiTDB Files"
-msgstr "ゲーム名リスト"
-
-msgid "WiiTDB Path"
-msgstr "ゲーム名リストのパス"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr "スロット点灯機能"
-
-msgid "Wrong Password"
-msgstr "暗証番号を間違えています"
-
-msgid "Yes"
-msgstr "はい"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr "領域を選択するか初期化してください"
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "%sWiiTDB_URL.txtにURLを保存しました"
-
-msgid "and translaters for language files updates"
-msgstr "/ K-M …日本語への翻訳"
-
-msgid "available"
-msgstr "があります"
-
-msgid "does not exist!"
-msgstr "存在しません!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "存在しないので チートなしで起動します"
-
-msgid "files left"
-msgstr "個未完了"
-
-msgid "files not found on the server!"
-msgstr "個サーバーにありませんでした…"
-
-msgid "for FAT/NTFS support"
-msgstr "…FATとNTFSへの対応"
-
-msgid "for Ocarina"
-msgstr "…Ocarinaを制作"
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "WiiTDB…様々な画像を配布"
-
-msgid "for diverse patches"
-msgstr "…様々なパッチを制作"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "…LibWiiGuiを制作"
-
-msgid "for hosting the themes"
-msgstr "…テーマを配布"
-
-msgid "for hosting the update files"
-msgstr "…更新ファイルを配布"
-
-msgid "for the USB Loader source"
-msgstr "…ソースを制作"
-
-msgid "formatted!"
-msgstr "初期化を完了しました!"
-
-msgid "free"
-msgstr "空き"
-
-msgid "not set"
-msgstr "セットされていません"
-
-msgid "of"
-msgstr "中"
-
-msgid "seconds left"
-msgstr "秒で完了"
-
-#~ msgid "Install 1:1 Copy"
-#~ msgstr "フルコピー"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0(セットしない)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1(C以上を制限)"
-
-#~ msgid "1 hour"
-#~ msgstr "1時間"
-
-#~ msgid "10 min"
-#~ msgstr "10分"
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2(D以上を制限)"
-
-#~ msgid "20 min"
-#~ msgstr "20分"
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3(Z以上を制限)"
-
-#~ msgid "3 min"
-#~ msgstr "3分"
-
-#~ msgid "30 min"
-#~ msgstr "30分"
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4(Zを制限)"
-
-#~ msgid "5 min"
-#~ msgstr "5分"
-
-#~ msgid "An Error occured"
-#~ msgstr "エラーが起きました"
-
-#~ msgid "Anti"
-#~ msgstr "排除する"
-
-#~ msgid "Are you sure you want to enable Parent Control?"
-#~ msgstr "使用制限機能を使用しますか?"
-
-#~ msgid "AutoPatch"
-#~ msgstr "自動パッチ"
-
-#~ msgid "Both"
-#~ msgstr "IDとリージョンを表示"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "最新版を確認中"
-
-#~ msgid "Console Default"
-#~ msgstr "GXのデフォルト"
-
-#~ msgid "Customs/Original"
-#~ msgstr "カスタムを優先"
-
-#~ msgid "Disc Default"
-#~ msgstr "ディスクのデフォルト"
-
-#~ msgid "DiskFlip"
-#~ msgstr "ディスクの回転風"
-
-#~ msgid "Downloading"
-#~ msgstr "ダウンロードします"
-
-#~ msgid "Dutch"
-#~ msgstr "オランダ語"
-
-#~ msgid "English"
-#~ msgstr "英語"
-
-#~ msgid "French"
-#~ msgstr "フランス語"
-
-#~ msgid "GAMEID_Gamename"
-#~ msgstr "ゲームID_ゲーム名"
-
-#~ msgid "Game ID"
-#~ msgstr "IDのみ"
-
-#~ msgid "Game Region"
-#~ msgstr "リージョンのみ"
-
-#~ msgid "Gamename [GAMEID]"
-#~ msgstr "ゲーム名 [ゲームID]"
-
-#~ msgid "German"
-#~ msgstr "ドイツ語"
-
-#~ msgid "Invalid PIN code"
-#~ msgstr "暗証番号を間違えています"
-
-#~ msgid "Italian"
-#~ msgstr "イタリア語"
-
-#~ msgid "Japanese"
-#~ msgstr "日本語"
-
-#~ msgid "Korean"
-#~ msgstr "韓国語"
-
-#~ msgid "Left"
-#~ msgstr "左ボタンで"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "Wiiメニュー風"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "SD/USBからロード"
-
-#~ msgid "Locked"
-#~ msgstr "ロックされています"
-
-#~ msgid "Loop Directory"
-#~ msgstr "フォルダ内でループ"
-
-#~ msgid "Loop Music"
-#~ msgstr "ループさせる"
-
-#~ msgid "Loop Sound"
-#~ msgstr "ループさせる"
-
-#~ msgid "Neither"
-#~ msgstr "非表示"
-
-#~ msgid "Next"
-#~ msgstr "左へ"
-
-#~ msgid "None"
-#~ msgstr "なし"
-
-#~ msgid "Normal"
-#~ msgstr "ワイド"
-
-#~ msgid "ON"
-#~ msgstr "使う"
-
-#~ msgid "Only Customs"
-#~ msgstr "カスタムのみ"
-
-#~ msgid "Only Original"
-#~ msgstr "公式のみ"
-
-#~ msgid "Only for Install"
-#~ msgstr "インストール中のみ"
-
-#~ msgid "Original/Customs"
-#~ msgstr "公式を優先"
-
-#~ msgid "Parental Control disabled"
-#~ msgstr "使用制限機能を無効にしました"
-
-#~ msgid "Play Once"
-#~ msgstr "一度だけ再生"
-
-#~ msgid "Prev"
-#~ msgstr "左へ"
-
-#~ msgid "Random Directory Music"
-#~ msgstr "フォルダ内でランダム再生"
-
-#~ msgid "Right"
-#~ msgstr "右ボタンで"
-
-#~ msgid "SChinese"
-#~ msgstr "簡体中国語"
-
-#~ msgid "Sound+BGM"
-#~ msgstr "サウンドとBGM"
-
-#~ msgid "Sound+Quiet"
-#~ msgstr "サウンドのみ"
-
-#~ msgid "Spanish"
-#~ msgstr "スペイン語"
-
-#~ msgid "System Default"
-#~ msgstr "Wiiのデフォルト"
-
-#~ msgid "TChinese"
-#~ msgstr "繁体中国語"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "WADファイルをインストールしましたが、SDから削除できませんでした"
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "WADのインストールはエラー:%ldで失敗しました"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "ダウンロード中のためWADを開けません (%s)."
-
-#~ msgid "Unlock Parental Control"
-#~ msgstr "使用制限機能を解除"
-
-#~ msgid "Unlocked"
-#~ msgstr "ロックされていません"
-
-#~ msgid "Update to"
-#~ msgstr "最新版:"
-
-#~ msgid "Updating"
-#~ msgstr "更新中 -"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "言語ファイルを更新中..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "WiiTDB.zipを更新中"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "普通"
-
-#~ msgid "You don't have Parental Control enabled. If you wish to use Parental Control, enable it in the Wii Settings."
-#~ msgstr "Wii本体設定で使用制限機能を有効にしてください"
-
-#~ msgid "%s : %s May not boot correctly if your System Menu is not up to date."
-#~ msgstr "%s : %s Wiiが更新されていなければ正常に起動できない可能性があります"
-
-#~ msgid "BCA Codes Path changed"
-#~ msgstr "BCAコードのパスを変更しました"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "Wiiメニューへ"
-
-#~ msgid "Channels"
-#~ msgstr "チャンネル"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "カバーをチェックしています"
-
-#~ msgid "Confirm"
-#~ msgstr "確認"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "WBFS領域が見つかりませんでした"
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "WBFS領域を開けませんでした"
-
-#~ msgid "Could not read the disc."
-#~ msgstr "ディスクを読めませんでした"
-
-#~ msgid "Could not set USB."
-#~ msgstr "USBをセットできません"
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "カバーのパスを変更しました"
-
-#~ msgid "DOL path changed"
-#~ msgstr "DOLのパスが変更されました"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "ディスク画像のパスを変更しました"
-
-#~ msgid "Display favorites"
-#~ msgstr "お気に入りのみ表示"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "再試行しますか?"
-
-#~ msgid "Enable Parental Control"
-#~ msgstr "使用制限機能を有効化"
-
-#~ msgid "Force"
-#~ msgstr "強制"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "パスを変更しました"
-
-#~ msgid "Hermes CIOS"
-#~ msgstr "注意事項"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "Homebrewのパスを変更しました"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "画像を保存するためにSDを挿入して下さい"
-
-#~ msgid "Install not possible"
-#~ msgstr "インストールできません"
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "4で割り切れない寸法があります"
-
-#~ msgid "Network init error"
-#~ msgstr "接続初期化エラー"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr "DOL(ELF)ファイルがありません"
-
-#~ msgid "No Favorites"
-#~ msgstr "お気に入りが選ばれていません"
-
-#~ msgid "No USB Device"
-#~ msgstr "USB機器がありません"
-
-#~ msgid "No USB Device found."
-#~ msgstr "USB機器が検出されていません"
-
-#~ msgid "No WBFS or FAT/NTFS partition found"
-#~ msgstr "WBFS/FAT/NTFS領域が見つかりません"
-
-#~ msgid "Normal Covers"
-#~ msgstr "2Dカバー"
-
-#~ msgid "Not Found"
-#~ msgstr "見つかりません"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "DOL(ELF)ファイルではありません"
-
-#~ msgid "Reset to standard BGM?"
-#~ msgstr "BGMを初期状態に戻しますか?"
-
-#~ msgid "Save Failed"
-#~ msgstr "保存に失敗しました"
-
-#~ msgid "Selected DOL"
-#~ msgstr "DOLの場所"
-
-#~ msgid "Standard"
-#~ msgstr "標準"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "TXTコードのパスを変更しました"
-
-#~ msgid "Theme Download Path changed"
-#~ msgstr "パスを変更しました"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "テーマのパスを変更しました"
-
-#~ msgid "USB Loader GX will only run with Hermes CIOS rev 4! Please make sure you have revision 4 installed!"
-#~ msgstr "cIOS222と223はrev4の場合のみ 使用できます"
-
-#~ msgid "Update Path changed."
-#~ msgstr "GXのパスを変更しました"
-
-#~ msgid "WIP Patches Path changed"
-#~ msgstr "WIPパッチのパスを変更しました"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "ゲーム名リストのパスを変更しました."
-
-#~ msgid "You are about to delete "
-#~ msgstr "削除していいですか "
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "お気に入りの登録がありません"
-
-#~ msgid "You are using NTFS filesystem. Due to possible write errors to a NTFS partition, installing a game is not possible."
-#~ msgstr "NTFS領域にインストール中にエラーが発生するとインストールに失敗します"
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "読み込めない画像があります"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "存在しません!"
-
-#~ msgid "file left"
-#~ msgstr "個未完了"
diff --git a/Languages/korean.lang b/Languages/korean.lang
deleted file mode 100644
index 8b9a467b..00000000
--- a/Languages/korean.lang
+++ /dev/null
@@ -1,1468 +0,0 @@
-# USB Loader GX language source file.
-# korean.lang - r719
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2009-10-01 01:00+0200\n"
-"Last-Translator: nextos@korea.com\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr " Wad 저장은:"
-
-msgid " could not be downloaded."
-msgstr " 다운로드할수 없음."
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr " 저장됨. 문자는 검증되지 않았음. 몇몇의 코드는 정상동작을 안할수있음. 만약 문제가 있다면, 문서편집기로 문서를 확인하기 바람."
-
-msgid " is not on the server."
-msgstr " 은 서버에 없어요."
-
-msgid "2D Cover Path"
-msgstr "2D 표지 경로"
-
-msgid "3D Cover Path"
-msgstr "3D 표지 경로"
-
-msgid "3D Covers"
-msgstr "3D 커버"
-
-msgid ">> Deleting tickets..."
-msgstr ">> 티켓 삭제중..."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> 티켓 삭제 ...에러! "
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> 티켓 삭제 ...성공! "
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> 타이틀 삭제 ...에러! "
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> 타이틀 삭제 ...성공!"
-
-msgid ">> Deleting title contents..."
-msgstr ">> 타이틀 내용 삭제중 ..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> 타이틀 내용 삭제 ...에러! "
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> 타이틀 내용 삭제 ...성공!"
-
-msgid ">> Deleting title..."
-msgstr ">> 타이틀 삭제..."
-
-msgid ">> Finishing installation..."
-msgstr ">> 인스톨 종료중..."
-
-msgid ">> Installing content #"
-msgstr ">> 컨텐츠 인스톨중 #"
-
-msgid ">> Installing ticket..."
-msgstr ">> 티켓 인스톨중..."
-
-msgid ">> Installing title..."
-msgstr ">> 타이틀 인스톨중..."
-
-msgid ">> Reading WAD data..."
-msgstr ">> WAD 데이터 읽는중..."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> WAD 데이타 읽기...에러! "
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> WAD 데이터 읽기...성공!"
-
-msgid "AUTO"
-msgstr "자동"
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr ""
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "모든 USB로더 GX 기능 잠금 해제."
-
-msgid "Alternate DOL"
-msgstr "Alternate DOL"
-
-msgid "App Language"
-msgstr "USB 로더 언어"
-
-msgid "Apr"
-msgstr "4월"
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "확실합니까?"
-
-msgid "Aug"
-msgstr "8월"
-
-msgid "Author:"
-msgstr ""
-
-msgid "AutoInit Network"
-msgstr "자동네트웍설정"
-
-msgid "BCA Codes Path"
-msgstr ""
-
-msgid "BETA revisions"
-msgstr ""
-
-msgid "Back"
-msgstr "뒤로"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "홈브류 메뉴 또는 Wii 메뉴로"
-
-msgid "Back to Loader"
-msgstr "로더로 돌아감"
-
-msgid "Backgroundmusic"
-msgstr "배경음악"
-
-msgid "Big thanks to:"
-msgstr "감사 :"
-
-msgid "Block IOS Reload"
-msgstr "IOS 재로딩 막음"
-
-msgid "Boot/Standard"
-msgstr "기본 부팅설정"
-
-msgid "Boot?"
-msgstr "부팅?"
-
-msgid "Can't be formatted"
-msgstr "포맷할 수 없습니다."
-
-msgid "Can't create directory"
-msgstr "디렉토리를 만들 수 없습니다"
-
-msgid "Can't create file"
-msgstr ""
-
-msgid "Can't delete:"
-msgstr "삭제할 수 없습니다:"
-
-msgid "Cancel"
-msgstr "취소"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr ""
-
-msgid "Cheatfile is blank"
-msgstr "치트화일 내용없음"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "표지를 다운하려면 클릭하세요"
-
-msgid "Click to change game ID"
-msgstr "게임 ID를 변경하려련 클릭하세요"
-
-msgid "Clock"
-msgstr "시계"
-
-msgid "Close"
-msgstr "닫기"
-
-msgid "Code Download"
-msgstr "코드 다운로드"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "Coded by: %s"
-
-msgid "Coding:"
-msgstr "코디:"
-
-msgid "Connection lost..."
-msgstr ""
-
-msgid "Console"
-msgstr "콘솔"
-
-msgid "Console Locked"
-msgstr "콘솔 잠김"
-
-msgid "Console should be unlocked to modify it."
-msgstr "변경하려면 콘솔 잠김을 해제하세요."
-
-msgid "Continue to install game?"
-msgstr "계속 설치하겠습니까?"
-
-msgid "Controllevel"
-msgstr "조정 레벨"
-
-msgid "Correct Password"
-msgstr "올바른 비밀번호"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "GCT 파일을 생성할수 없음"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "DIP 모듈 초기화 실패!"
-
-msgid "Could not initialize network!"
-msgstr "네트워크 초기화 실패!"
-
-msgid "Could not open Disc"
-msgstr "디스크를 열 수 없습니다."
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr ""
-
-msgid "Cover Download"
-msgstr "표지 다운로드"
-
-msgid "Create"
-msgstr "생성"
-
-msgid "Credits"
-msgstr "Credits"
-
-msgid "Custom Paths"
-msgstr "Custom Paths"
-
-msgid "DOL Path"
-msgstr "DOL 패치"
-
-msgid "Dec"
-msgstr "12월"
-
-msgid "Default"
-msgstr "기본값"
-
-msgid "Default Gamesettings"
-msgstr "기본 게임설정"
-
-msgid "Default Settings"
-msgstr "기본 설정"
-
-msgid "Delete"
-msgstr "삭제"
-
-msgid "Delete ?"
-msgstr "삭제 ?"
-
-msgid "Delete Cheat GCT"
-msgstr ""
-
-msgid "Delete Cheat TXT"
-msgstr "치트문서 삭제"
-
-msgid "Delete Cover Artwork"
-msgstr "박스아트 삭제"
-
-msgid "Delete Disc Artwork"
-msgstr "삭제 Discart"
-
-msgid "Design:"
-msgstr "디자인:"
-
-msgid "Developed by"
-msgstr "디자인 by"
-
-msgid "Directory does not exist!"
-msgstr ""
-
-msgid "Disc Artwork Download"
-msgstr "디스크 이미지 다운로드"
-
-msgid "Disc Artwork Path"
-msgstr "디스크 이미지 경로"
-
-msgid "Disc Images"
-msgstr "디스크 이미지"
-
-msgid "Display"
-msgstr "화면 표시"
-
-msgid "Display as a carousel"
-msgstr "그림으로 표시"
-
-msgid "Display as a grid"
-msgstr "격자 무니 표시"
-
-msgid "Display as a list"
-msgstr "리스트로 표시"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "정말로 삭제하겠습니까:"
-
-msgid "Do you want to apply it now?"
-msgstr ""
-
-msgid "Do you want to change language?"
-msgstr "정말로 언어를 변경할까요?"
-
-msgid "Do you want to download this theme?"
-msgstr ""
-
-msgid "Do you want to format:"
-msgstr "포맷하겠습니까:"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "정말로 Alt. DOL을 사용할까요?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "정말로 모든 언어화일을 업데이트하고 다운로드 할까요?"
-
-msgid "Done!"
-msgstr "완료!"
-
-msgid "Download"
-msgstr ""
-
-msgid "Download Boxart image?"
-msgstr "박스 이미지를 다운로드 할까요?"
-
-msgid "Download Discart image?"
-msgstr "디스크이미지를 다운로드 할까요?"
-
-msgid "Download Now"
-msgstr "다운로드 시작"
-
-msgid "Download failed."
-msgstr ""
-
-msgid "Download finished"
-msgstr "다운로드 완료"
-
-msgid "Download request failed."
-msgstr ""
-
-msgid "Downloading Page List:"
-msgstr ""
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "파일 다운로드 중:"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr ""
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "에러"
-
-msgid "ERROR:"
-msgstr "에러:"
-
-msgid "ERROR: Can't set up theme."
-msgstr ""
-
-msgid "Error"
-msgstr "에러"
-
-msgid "Error !"
-msgstr "에러 !"
-
-msgid "Error 002 fix"
-msgstr "Error 002 fix"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "디스크 읽기 오류"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "데이터 전송중 에러."
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "에러..."
-
-msgid "Error:"
-msgstr "에러:"
-
-msgid "Extracting files..."
-msgstr ""
-
-msgid "FAT: Use directories"
-msgstr ""
-
-msgid "Failed formating"
-msgstr "포맷 실패"
-
-msgid "Failed to extract."
-msgstr ""
-
-msgid "Failed to open partition"
-msgstr "파티션 열기 실패"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr "2월"
-
-msgid "File not found."
-msgstr "파일을 찾을수가 없네요."
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "설치 종료중... 성공!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr "좌/우 설정"
-
-msgid "Format"
-msgstr "포맷"
-
-msgid "Formatting, please wait..."
-msgstr "포맷 중. 기다려 주세요..."
-
-msgid "Free Space"
-msgstr "여유 공간"
-
-msgid "Full Shutdown"
-msgstr "완전히 끄기"
-
-msgid "GCT Cheatcodes Path"
-msgstr "치트코드 경로"
-
-msgid "GCT File created"
-msgstr "GCT 파일 생성됨"
-
-msgid "GUI Settings"
-msgstr "GUI 설정"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr ""
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "언어"
-
-msgid "Game Load"
-msgstr "게임 로드"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "게임 용량"
-
-msgid "Game Sound Mode"
-msgstr ""
-
-msgid "Game Sound Volume"
-msgstr ""
-
-msgid "Game is already installed:"
-msgstr "게임이 이미 설치되어 있습니다."
-
-msgid "Game partition"
-msgstr ""
-
-msgid "Games"
-msgstr "게임"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr "HOME 메뉴"
-
-msgid "Homebrew Apps Path"
-msgstr "홈브류 경로"
-
-msgid "Homebrew Launcher"
-msgstr "홈브류 런처"
-
-msgid "Hour"
-msgstr "시간"
-
-msgid "How do you want to update?"
-msgstr "업데이트 할까요?"
-
-msgid "How to Shutdown?"
-msgstr "어떻게 종료할까요?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "WiFi가 없다면 WiiTDB.zip을 없기위한 URL을 위하여 1을 누르세요"
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "화일 수신중 %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "화일 수신중 %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "네트워크 초기화"
-
-msgid "Insert Disk"
-msgstr "디스크를 넣어주세요"
-
-msgid "Insert a Wii Disc!"
-msgstr "Wii 디스크를 넣으세요!"
-
-msgid "Insert an SD-Card to save."
-msgstr "저장할 SD카드를 넣으세요."
-
-msgid "Insert an SD-Card to use this option."
-msgstr "이 옵션을 사용할 SD카드를 넣으세요."
-
-msgid "Install"
-msgstr "설치"
-
-msgid "Install Error!"
-msgstr "설치 에러!"
-
-msgid "Install a game"
-msgstr "게임을 설치할까요"
-
-msgid "Install partitions"
-msgstr ""
-
-msgid "Installing content... Ok!"
-msgstr "컨텐츠 인스톨중...성공!"
-
-msgid "Installing game:"
-msgstr "게임 설치 중:"
-
-msgid "Installing ticket... Ok!"
-msgstr "티켓 설치중... Ok!"
-
-msgid "Installing title... Ok!"
-msgstr "타이틀 설치중... Ok!"
-
-msgid "Installing wad"
-msgstr "Wad 설치중"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "우리를 도울수 있는 정보를 가지고 있군요. 이정보를 DEV 팀에 전달해주세요."
-
-msgid "Jan"
-msgstr "1월"
-
-msgid "July"
-msgstr "7월"
-
-msgid "June"
-msgstr "6월"
-
-msgid "Keep"
-msgstr "보관"
-
-msgid "Keyboard"
-msgstr "키보드"
-
-msgid "Language File"
-msgstr "언어화일"
-
-msgid "Language change:"
-msgstr "언어 변경:"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "언어경로 변경됨."
-
-msgid "Load"
-msgstr "로드"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "화일 로드는 %s 에서?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "이 DOL화일을 alternate DOL로 로딩할까요?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "표준 언어로 로딩."
-
-msgid "Loading standard music."
-msgstr "표중 음악으로 로딩."
-
-msgid "Lock Console"
-msgstr "콘솔 잠금"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr "4월"
-
-msgid "Mark new games"
-msgstr ""
-
-msgid "May"
-msgstr "5월"
-
-msgid "Missing files"
-msgstr "파일 누락"
-
-msgid "Mount DVD drive"
-msgstr ""
-
-msgid "Music Loop Mode"
-msgstr ""
-
-msgid "Music Volume"
-msgstr "음량"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr ""
-
-msgid "No"
-msgstr "아니오"
-
-msgid "No Cheatfile found"
-msgstr "치트화일 없음"
-
-msgid "No DOL file found on disc."
-msgstr "디스크에 DOL화일이 없음."
-
-msgid "No SD-Card inserted!"
-msgstr "SD카드가 없습니다!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr ""
-
-msgid "No data could be read."
-msgstr "데이터를 읽을수가 없음."
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "누락 파일 없음!"
-
-msgid "No new updates."
-msgstr "새로운 업데이트 없음."
-
-msgid "No themes found on the site."
-msgstr ""
-
-msgid "Not a WAD file."
-msgstr ""
-
-msgid "Not a Wii Disc"
-msgstr "Wii 디스크가 아닙니다"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "메모리가 부족해요."
-
-msgid "Not enough free space!"
-msgstr "여유 공간이 부족합니다!"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "지원되는 포맷이 아니에요!"
-
-msgid "Nov"
-msgstr "11월"
-
-msgid "OFF"
-msgstr "꺼짐"
-
-msgid "OK"
-msgstr "확인"
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "10월"
-
-msgid "Official Site:"
-msgstr "공식 사이트:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "자녀보호기능"
-
-msgid "Partition"
-msgstr "파티션"
-
-msgid "Password"
-msgstr "비밀번호"
-
-msgid "Password Changed"
-msgstr "비밀번호 변경됨"
-
-msgid "Password has been changed"
-msgstr "비밀번호가 변경되었습니다"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "WiiTDB.zip파일을 얻으려면 이것을 브라우져로 붙이세요."
-
-msgid "Patch Country Strings"
-msgstr "패치 컨트리 스트링"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "리스트로 부터 고르기"
-
-msgid "Play Count"
-msgstr "실행 횟수"
-
-msgid "Play Next"
-msgstr ""
-
-msgid "Play Previous"
-msgstr ""
-
-msgid "Playing Music:"
-msgstr ""
-
-msgid "Please wait..."
-msgstr ""
-
-msgid "Power off the Wii"
-msgstr "Wii 전원 끄기"
-
-msgid "Prompts Buttons"
-msgstr "프롬프트/버튼"
-
-msgid "Published by"
-msgstr "출판자"
-
-msgid "Quick Boot"
-msgstr "게임 바로실행"
-
-msgid "Reading WAD data... Ok!"
-msgstr "WAD 데이터 읽기... 성공!"
-
-msgid "Receiving file from:"
-msgstr "파일 추출 :"
-
-msgid "Released"
-msgstr "릴리즈됨"
-
-msgid "Reload SD"
-msgstr "SD카드 읽기"
-
-msgid "Remove update"
-msgstr ""
-
-msgid "Rename Game on WBFS"
-msgstr "WBFS에서 게임 이름 변경"
-
-msgid "Reset BG Music"
-msgstr ""
-
-msgid "Reset Playcounter"
-msgstr "실행횟수 리셋"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "재시작..."
-
-msgid "Return"
-msgstr "돌아가기"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "위 메뉴로 돌아가기"
-
-msgid "Rumble"
-msgstr "진동"
-
-msgid "SFX Volume"
-msgstr "SFX 볼륨"
-
-msgid "Save"
-msgstr "저장"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr ""
-
-msgid "Saved"
-msgstr ""
-
-msgid "Screensaver"
-msgstr "화면보호기"
-
-msgid "Select"
-msgstr ""
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr ""
-
-msgid "Sept"
-msgstr "9월"
-
-msgid "Set Search-Filter"
-msgstr ""
-
-msgid "Settings"
-msgstr "설정"
-
-msgid "Shutdown System"
-msgstr "시스템 종료"
-
-msgid "Shutdown to Idle"
-msgstr "대기 상태로"
-
-msgid "Sort alphabetically"
-msgstr "알파벳순으로 정렬"
-
-msgid "Sort by rank"
-msgstr ""
-
-msgid "Sort order by most played"
-msgstr "많이 실행한 횟수로 정렬"
-
-msgid "Sound"
-msgstr "소리"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "Special thanks to:"
-
-msgid "Success"
-msgstr "성공"
-
-msgid "Success:"
-msgstr "성공:"
-
-msgid "Successfully Saved"
-msgstr "저장 성공"
-
-msgid "Successfully Updated"
-msgstr "업데이트 성공"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr ""
-
-msgid "Successfully deleted:"
-msgstr "삭제 성공:"
-
-msgid "Successfully extracted theme."
-msgstr ""
-
-msgid "Successfully installed:"
-msgstr "설치 성공:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "TXT 치트코드 경로"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr ""
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr ""
-
-msgid "Theme Downloader"
-msgstr ""
-
-msgid "Theme Path"
-msgstr "테마 경로"
-
-msgid "Theme Title:"
-msgstr ""
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "남은 시간:"
-
-msgid "Title Launcher"
-msgstr "타이틀 런처"
-
-msgid "Titles from WiiTDB"
-msgstr "WiiTDB에서 타이틀을"
-
-msgid "Tooltips"
-msgstr "Tooltips"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr ""
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "USB 장치가 없습니다."
-
-msgid "USB Loader GX is protected"
-msgstr "USB 로더 GX 잠김 상태"
-
-msgid "Uninstall"
-msgstr "제거"
-
-msgid "Uninstall Game"
-msgstr "게임 언인스톨"
-
-msgid "Uninstall Menu"
-msgstr "메뉴 언인스톨"
-
-msgid "Uninstalling wad"
-msgstr "WAD 언인스톨"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "이 옵션을 사용하기 위해 콘솔을 잠금해제"
-
-msgid "Unsupported format, try to extract manually."
-msgstr ""
-
-msgid "Update"
-msgstr "업데이트"
-
-msgid "Update All"
-msgstr "모두 업데이트"
-
-msgid "Update DOL"
-msgstr "DOL 업데이트"
-
-msgid "Update Files"
-msgstr "화일 업데이트"
-
-msgid "Update Path"
-msgstr "업데이트 경로"
-
-msgid "Update all Language Files"
-msgstr "모든 언어화일 업데이트"
-
-msgid "Update failed"
-msgstr "업데이트 실패"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "언어화일 업데이트중:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr ""
-
-msgid "VIDTV Patch"
-msgstr "VIDTV 패치"
-
-#, c-format
-msgid "Version: %s"
-msgstr "버전: %s"
-
-msgid "Video Mode"
-msgstr "비디오 모드"
-
-msgid "WIP Patches Path"
-msgstr ""
-
-msgid "Waiting for USB Device"
-msgstr "USB 장치를 기다리는 중"
-
-msgid "Waiting..."
-msgstr "기다리는 중..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "무엇을 업데이트 할까요?"
-
-msgid "WiFi Features"
-msgstr "WiFi 형태"
-
-msgid "Wii Menu"
-msgstr "Wii 메뉴로"
-
-msgid "Wii Settings"
-msgstr "위 설정"
-
-msgid "WiiTDB Files"
-msgstr "WiiTDB 화일"
-
-msgid "WiiTDB Path"
-msgstr "WiiTDB경로"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr "Wiilight"
-
-msgid "Wrong Password"
-msgstr "잘못된 비밀번호"
-
-msgid "Yes"
-msgstr "예"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr ""
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "당신의 URL은 %sWiiTDB_URL.txt 에 저장되었어요."
-
-msgid "and translaters for language files updates"
-msgstr ""
-
-msgid "available"
-msgstr "가능함"
-
-msgid "does not exist!"
-msgstr "없어요!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "없어요! 치트없이 게임임을 로딩"
-
-msgid "files left"
-msgstr "화일들이 남음"
-
-msgid "files not found on the server!"
-msgstr "파일이 서버에 없습니다!"
-
-msgid "for FAT/NTFS support"
-msgstr ""
-
-msgid "for Ocarina"
-msgstr "Ocarina 위하여"
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "WiiTDB, 커버, 디스크이미지를 위하여"
-
-msgid "for diverse patches"
-msgstr "디버스 패치를 위하여"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "LibWiiGui 훌륭한 툴를 위하여"
-
-msgid "for hosting the themes"
-msgstr ""
-
-msgid "for hosting the update files"
-msgstr "업데이트 화일 호스팅을 위하여"
-
-msgid "for the USB Loader source"
-msgstr "USB 로더 소스를 위하여"
-
-msgid "formatted!"
-msgstr "포맷 완료!"
-
-msgid "free"
-msgstr "남음"
-
-msgid "not set"
-msgstr "설정되지 않음"
-
-msgid "of"
-msgstr "중"
-
-msgid "seconds left"
-msgstr "초 남았습니다"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (모두다)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (7세 이상)"
-
-#~ msgid "1 hour"
-#~ msgstr "1 시간"
-
-#~ msgid "10 min"
-#~ msgstr "10 분"
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (12세 이상)"
-
-#~ msgid "20 min"
-#~ msgstr "20 분"
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (16세 이상)"
-
-#~ msgid "3 min"
-#~ msgstr "3 분"
-
-#~ msgid "30 min"
-#~ msgstr "30 분"
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (성인 18세 이상)"
-
-#~ msgid "5 min"
-#~ msgstr "5 분"
-
-#~ msgid "An Error occured"
-#~ msgstr "에러 발생"
-
-#~ msgid "AutoPatch"
-#~ msgstr "자동 패치"
-
-#~ msgid "Both"
-#~ msgstr "둘다"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "업데이트 확인"
-
-#~ msgid "Console Default"
-#~ msgstr "콘솔 기본값"
-
-#~ msgid "Customs/Original"
-#~ msgstr "커스텀/오리지널"
-
-#~ msgid "Disc Default"
-#~ msgstr "디스크 기본값"
-
-#~ msgid "DiskFlip"
-#~ msgstr "디스크 플립"
-
-#~ msgid "Downloading"
-#~ msgstr "다운로딩중"
-
-#~ msgid "Dutch"
-#~ msgstr "네덜란드어"
-
-#~ msgid "English"
-#~ msgstr "영어"
-
-#~ msgid "French"
-#~ msgstr "불어"
-
-#~ msgid "Game ID"
-#~ msgstr "게임 ID"
-
-#~ msgid "Game Region"
-#~ msgstr "지역"
-
-#~ msgid "German"
-#~ msgstr "독일어"
-
-#~ msgid "Italian"
-#~ msgstr "이태리어"
-
-#~ msgid "Japanese"
-#~ msgstr "일본어"
-
-#~ msgid "Korean"
-#~ msgstr "한국어"
-
-#~ msgid "Left"
-#~ msgstr "왼쪽"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "시스템 메뉴처럼"
-
-#~ msgid "Locked"
-#~ msgstr "잠김"
-
-#~ msgid "Neither"
-#~ msgstr "표시 없음"
-
-#~ msgid "Next"
-#~ msgstr "다음"
-
-#~ msgid "Normal"
-#~ msgstr "일반"
-
-#~ msgid "ON"
-#~ msgstr "켜짐"
-
-#~ msgid "Only Customs"
-#~ msgstr "사용자 설정만"
-
-#~ msgid "Only Original"
-#~ msgstr "원본만"
-
-#~ msgid "Only for Install"
-#~ msgstr "인스톨만"
-
-#~ msgid "Original/Customs"
-#~ msgstr "원본/사용자설정"
-
-#~ msgid "Prev"
-#~ msgstr "이전"
-
-#~ msgid "Right"
-#~ msgstr "오른쪽"
-
-#~ msgid "SChinese"
-#~ msgstr "중국어(간체)"
-
-#~ msgid "Spanish"
-#~ msgstr "스페인어"
-
-#~ msgid "System Default"
-#~ msgstr "시스템 기본값"
-
-#~ msgid "TChinese"
-#~ msgstr "중국어(번체)"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "WAD화일이 인스톨됨. 하지만 SD 카드에서 삭제할수 없음."
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "WAD 인스톨 실패 에러 %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "방금 다운로드한 wad화일(%s)을 열수가 없음."
-
-#~ msgid "Unlocked"
-#~ msgstr "잠금해제"
-
-#~ msgid "Update to"
-#~ msgstr "감사"
-
-#~ msgid "Updating"
-#~ msgstr "업데이트중"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "언어화일 업데이트중..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "WiiTDB.zip 업데이트중"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "와이드 스크린에 맞춤"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "Wii 메뉴로 놀아가기"
-
-#~ msgid "Confirm"
-#~ msgstr "확인"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "WBFS 파티션이 없어요."
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "WBFS 파티션을 열수가 없어요"
-
-#~ msgid "Could not read the disc."
-#~ msgstr "디스크를 읽을수가 없어요."
-
-#~ msgid "Could not set USB."
-#~ msgstr "USB 를 설정할수 없음."
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "표지 경로 변경됨"
-
-#~ msgid "DOL path changed"
-#~ msgstr "DOL 경로 변경됨"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "디스크 경로 변경됨"
-
-#~ msgid "Display favorites"
-#~ msgstr "즐겨찾기 표시"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "30초간 재시도 할까요?"
-
-#~ msgid "Force"
-#~ msgstr "강제"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "처트코드 경로 변경됨"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "홈브류 경로 변경됨"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "다운받은 이미지를 저장할 SD카드를 넣으세요."
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "대부분 이미지는 4로 나누어져야 되요."
-
-#~ msgid "Network init error"
-#~ msgstr "네트워크 초기화 에러"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr ".dol 혹은 .elf 파일이 없음."
-
-#~ msgid "No Favorites"
-#~ msgstr "즐겨찾기 없음"
-
-#~ msgid "No USB Device"
-#~ msgstr "USB 장치가 없습니다."
-
-#~ msgid "No USB Device found."
-#~ msgstr "USB 장치가 없습니다."
-
-#~ msgid "Normal Covers"
-#~ msgstr "일반 표지"
-
-#~ msgid "Not Found"
-#~ msgstr "없음"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "DOL/ELF 파일이 아님."
-
-#~ msgid "Save Failed"
-#~ msgstr "저장 실패"
-
-#~ msgid "Standard"
-#~ msgstr "표중"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "TXT 치트코드 경로 변경됨"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "테마 경로 변경됨"
-
-#~ msgid "Update Path changed."
-#~ msgstr "업데이트 경로 변경됨"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "WiiTDB경로 변경됨."
-
-#~ msgid "You are about to delete "
-#~ msgstr "삭제 하려고 합니다."
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "즐겨찾기를 선택했으나 선택된 즐겨찾기가 없네요."
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "잘못된 이미지를 로딩하여 하군요."
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "없어요! 무언가 잘못했군요."
-
-#~ msgid "file left"
-#~ msgstr "화일 남음"
diff --git a/Languages/norwegian.lang b/Languages/norwegian.lang
deleted file mode 100644
index 3e129289..00000000
--- a/Languages/norwegian.lang
+++ /dev/null
@@ -1,1465 +0,0 @@
-# USB Loader GX language source file.
-# norwegian.lang - r813
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2009-10-01 01:00+0200\n"
-"Last-Translator: raschi\n"
-"Language-Team: raschi\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr " WAD lagret som:"
-
-msgid " could not be downloaded."
-msgstr " kan ikke lastes ned."
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr " har blitt lagret. Teksten har ikke blitt verifisert. Noe av koden vil kanskje ikke fungere riktig. Hvis du får problemer, åpne teksten i et ekte redigeringsprogram for mer informasjon."
-
-msgid " is not on the server."
-msgstr " finnes ikke på serveren."
-
-msgid "2D Cover Path"
-msgstr "2D Cover sti"
-
-msgid "3D Cover Path"
-msgstr "3D Cover sti"
-
-msgid "3D Covers"
-msgstr "3D cover"
-
-msgid ">> Deleting tickets..."
-msgstr ">> Sletter tickets..."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> Sletter tickets...FEIL! "
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> Sletter tickets...OK! "
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> Sletter tittel ...FEIL! "
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> Sletter tittel ...OK!"
-
-msgid ">> Deleting title contents..."
-msgstr ">> Sletter tittel innhold..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> Sletter tittel innhold...FEIL! "
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> Sletter tittel innhold...OK!"
-
-msgid ">> Deleting title..."
-msgstr ">> Sletter tittel..."
-
-msgid ">> Finishing installation..."
-msgstr ">> Sluttfører installasjon..."
-
-msgid ">> Installing content #"
-msgstr ">> Installerer innhold #"
-
-msgid ">> Installing ticket..."
-msgstr ">> Installerer ticket..."
-
-msgid ">> Installing title..."
-msgstr ">> Installerer tittel..."
-
-msgid ">> Reading WAD data..."
-msgstr ">> Leser WAD data..."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> Leser WAD data...FEIL! "
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> Leser WAD data...OK!"
-
-msgid "AUTO"
-msgstr ""
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr ""
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "Alle funksjonene til USB Loader GX er opplåst."
-
-msgid "Alternate DOL"
-msgstr "Alternativ DOL"
-
-msgid "App Language"
-msgstr "Program språk"
-
-msgid "Apr"
-msgstr ""
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "Er du sikker?"
-
-msgid "Aug"
-msgstr ""
-
-msgid "Author:"
-msgstr "Forfatter:"
-
-msgid "AutoInit Network"
-msgstr "Autostart nettverk"
-
-msgid "BCA Codes Path"
-msgstr ""
-
-msgid "BETA revisions"
-msgstr ""
-
-msgid "Back"
-msgstr "Tilbake"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "Tilbake til HBC eller Wii meny"
-
-msgid "Back to Loader"
-msgstr "HBC/Loader"
-
-msgid "Backgroundmusic"
-msgstr "Bakgrunnsmusikk"
-
-msgid "Big thanks to:"
-msgstr "Stor takk til:"
-
-msgid "Block IOS Reload"
-msgstr "Blokkér IOS Reload"
-
-msgid "Boot/Standard"
-msgstr "Boot/Standard"
-
-msgid "Boot?"
-msgstr "Start?"
-
-msgid "Can't be formatted"
-msgstr "Kan ikke formateres"
-
-msgid "Can't create directory"
-msgstr "Kan ikke opprette mappe"
-
-msgid "Can't create file"
-msgstr "Kan ikke opprette fil"
-
-msgid "Can't delete:"
-msgstr "Kan ikke slette:"
-
-msgid "Cancel"
-msgstr "Avbryt"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr ""
-
-msgid "Cheatfile is blank"
-msgstr "Juksefil er blank"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "Klikk for å laste ned cover"
-
-msgid "Click to change game ID"
-msgstr "Klikk for å endre spill ID"
-
-msgid "Clock"
-msgstr "Klokke"
-
-msgid "Close"
-msgstr "Lukk"
-
-msgid "Code Download"
-msgstr "Kode nedlasting"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "Kodet av: %s"
-
-msgid "Coding:"
-msgstr "Koding:"
-
-msgid "Connection lost..."
-msgstr ""
-
-msgid "Console"
-msgstr "Konsoll"
-
-msgid "Console Locked"
-msgstr "Konsoll låst"
-
-msgid "Console should be unlocked to modify it."
-msgstr "Konsoll må være opplåst for å modifisere."
-
-msgid "Continue to install game?"
-msgstr "Fortsett å installere spill?"
-
-msgid "Controllevel"
-msgstr "Kontrollnivå"
-
-msgid "Correct Password"
-msgstr "Riktig passord"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "Kan ikke opprette GCT fil"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "Kan ikke initialisere DIP modul!"
-
-msgid "Could not initialize network!"
-msgstr "Kan ikke initialisere nettverk!"
-
-msgid "Could not open Disc"
-msgstr "Kan ikke åpne plate"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "Kan ikke lagre."
-
-msgid "Cover Download"
-msgstr "Cover nedlasting"
-
-msgid "Create"
-msgstr "Opprett"
-
-msgid "Credits"
-msgstr "Medvirkende"
-
-msgid "Custom Paths"
-msgstr "Endre stier"
-
-msgid "DOL Path"
-msgstr "DOL sti"
-
-msgid "Dec"
-msgstr "Des"
-
-msgid "Default"
-msgstr "Standard"
-
-msgid "Default Gamesettings"
-msgstr "Standard innstillinger"
-
-msgid "Default Settings"
-msgstr "Standard innstillinger"
-
-msgid "Delete"
-msgstr "Slett"
-
-msgid "Delete ?"
-msgstr "Slett ?"
-
-msgid "Delete Cheat GCT"
-msgstr "Slett juksefil GCT"
-
-msgid "Delete Cheat TXT"
-msgstr "Slett juksefil TXT"
-
-msgid "Delete Cover Artwork"
-msgstr "Slett cover"
-
-msgid "Delete Disc Artwork"
-msgstr "Slett platebilde"
-
-msgid "Design:"
-msgstr ""
-
-msgid "Developed by"
-msgstr "Utviklet av"
-
-msgid "Directory does not exist!"
-msgstr "Mappestruktur finnes ikke!"
-
-msgid "Disc Artwork Download"
-msgstr "Platebilde nedlasting"
-
-msgid "Disc Artwork Path"
-msgstr "Platebilde sti"
-
-msgid "Disc Images"
-msgstr "Plate bilder"
-
-msgid "Display"
-msgstr "Vis"
-
-msgid "Display as a carousel"
-msgstr "Vis som karusell"
-
-msgid "Display as a grid"
-msgstr "Vis som rutemønster"
-
-msgid "Display as a list"
-msgstr "Vis som liste"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "Er du sikker på at du vil slette:"
-
-msgid "Do you want to apply it now?"
-msgstr ""
-
-msgid "Do you want to change language?"
-msgstr "Vil du endre språk?"
-
-msgid "Do you want to download this theme?"
-msgstr "Vil du laste ned dette temaet?"
-
-msgid "Do you want to format:"
-msgstr "Vil du formatere:"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "Vil du bruke alt DOL filen som er kjent for å være riktig?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "Vil du oppdatere/laste ned alle språkfiler?"
-
-msgid "Done!"
-msgstr "Ferdig!"
-
-msgid "Download"
-msgstr "Last ned"
-
-msgid "Download Boxart image?"
-msgstr "Last ned cover bilde?"
-
-msgid "Download Discart image?"
-msgstr "Last ned plate bilde?"
-
-msgid "Download Now"
-msgstr "Last ned nå"
-
-msgid "Download failed."
-msgstr "Nedlasting feilet."
-
-msgid "Download finished"
-msgstr "Nedlasting ferdig"
-
-msgid "Download request failed."
-msgstr "Nedlast spørring feilet."
-
-msgid "Downloading Page List:"
-msgstr "Laster ned side liste:"
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "Laster ned fil"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr "Laster ned bilde:"
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "FEIL"
-
-msgid "ERROR:"
-msgstr "FEIL:"
-
-msgid "ERROR: Can't set up theme."
-msgstr ""
-
-msgid "Error"
-msgstr "Feil"
-
-msgid "Error !"
-msgstr "Feil !"
-
-msgid "Error 002 fix"
-msgstr "Error 002 fiks"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "Feil ved lesing av plate"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "Feil ved overføring av data."
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "Feil..."
-
-msgid "Error:"
-msgstr "Feil:"
-
-msgid "Extracting files..."
-msgstr "Pakker ut filer..."
-
-msgid "FAT: Use directories"
-msgstr ""
-
-msgid "Failed formating"
-msgstr "Feil ved formatering"
-
-msgid "Failed to extract."
-msgstr "Utpakking feilet."
-
-msgid "Failed to open partition"
-msgstr "Feil ved åpning av partisjon"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr ""
-
-msgid "File not found."
-msgstr "Fil ikke funnet."
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "Sluttfører installasjon... OK!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr ""
-
-msgid "Format"
-msgstr "Formatér"
-
-msgid "Formatting, please wait..."
-msgstr "Formaterer, vennligst vent..."
-
-msgid "Free Space"
-msgstr "Ledig plass"
-
-msgid "Full Shutdown"
-msgstr "Skru helt av"
-
-msgid "GCT Cheatcodes Path"
-msgstr "GCT Juksekode sti"
-
-msgid "GCT File created"
-msgstr "GCT fil opprettet"
-
-msgid "GUI Settings"
-msgstr "GUI innstillinger"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr ""
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "Språk"
-
-msgid "Game Load"
-msgstr "Lasting av spill"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "Spill størrelse"
-
-msgid "Game Sound Mode"
-msgstr ""
-
-msgid "Game Sound Volume"
-msgstr ""
-
-msgid "Game is already installed:"
-msgstr "Spillet er allerede installert:"
-
-msgid "Game partition"
-msgstr ""
-
-msgid "Games"
-msgstr "Spill"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr "HOME Meny"
-
-msgid "Homebrew Apps Path"
-msgstr "Homebrew Apps sti"
-
-msgid "Homebrew Launcher"
-msgstr "Homebrew Laster"
-
-msgid "Hour"
-msgstr "Timer"
-
-msgid "How do you want to update?"
-msgstr "Hvordan vil du oppdatere?"
-
-msgid "How to Shutdown?"
-msgstr "Hvordan skru av?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "Hvis du ikke har WiFi, klikk 1 for å få en URL til din WiiTDB.zip"
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "Laster ned fil %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "Laster ned fil %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "Initialiserer nettverk"
-
-msgid "Insert Disk"
-msgstr "Sett inn plate"
-
-msgid "Insert a Wii Disc!"
-msgstr "Sett inn en Wii plate!"
-
-msgid "Insert an SD-Card to save."
-msgstr "Sett inn et SD-kort for å lagre."
-
-msgid "Insert an SD-Card to use this option."
-msgstr "Sett inn et SD-kort for å bruke innstillingen."
-
-msgid "Install"
-msgstr "Installér"
-
-msgid "Install Error!"
-msgstr "Installasjonsfeil!"
-
-msgid "Install a game"
-msgstr "Installér et spill"
-
-msgid "Install partitions"
-msgstr ""
-
-msgid "Installing content... Ok!"
-msgstr "Installerer innhold... OK!"
-
-msgid "Installing game:"
-msgstr "Installerer spill:"
-
-msgid "Installing ticket... Ok!"
-msgstr "Installerer ticket... OK!"
-
-msgid "Installing title... Ok!"
-msgstr "Installerer tittel... OK!"
-
-msgid "Installing wad"
-msgstr "Installerer WAD"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "Det ser ut til at du har informasjon som kan være nyttig for oss. Vennligst videresend denne informasjonen til utviklerteamet."
-
-msgid "Jan"
-msgstr ""
-
-msgid "July"
-msgstr "Jul"
-
-msgid "June"
-msgstr "Jun"
-
-msgid "Keep"
-msgstr "Behold"
-
-msgid "Keyboard"
-msgstr "Tastatur"
-
-msgid "Language File"
-msgstr "Språk Fil"
-
-msgid "Language change:"
-msgstr "Endre språk"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "Språksti endret."
-
-msgid "Load"
-msgstr "Start"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "Start fil fra: %s ?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "Last denne DOL som alternativ DOL?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "Laster standard språk."
-
-msgid "Loading standard music."
-msgstr "Laster standard musikk."
-
-msgid "Lock Console"
-msgstr "Lås konsoll"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr ""
-
-msgid "Mark new games"
-msgstr ""
-
-msgid "May"
-msgstr "Mai"
-
-msgid "Missing files"
-msgstr "Manglende filer"
-
-msgid "Mount DVD drive"
-msgstr "Last DVD stasjon"
-
-msgid "Music Loop Mode"
-msgstr ""
-
-msgid "Music Volume"
-msgstr "Musikk volum"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "Ny plate oppdaget"
-
-msgid "No"
-msgstr "Nei"
-
-msgid "No Cheatfile found"
-msgstr "Ingen juksefil funnet"
-
-msgid "No DOL file found on disc."
-msgstr "Ingen DOL fil funnet på plate."
-
-msgid "No SD-Card inserted!"
-msgstr "Intet SD-kort satt i!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "Ingen juksefiler valgt"
-
-msgid "No data could be read."
-msgstr "Ingen data kan leses."
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "Ingen filer mangler!"
-
-msgid "No new updates."
-msgstr "Ingen nye oppdateringer."
-
-msgid "No themes found on the site."
-msgstr "Ingen temaer funnet på websiden."
-
-msgid "Not a WAD file."
-msgstr ""
-
-msgid "Not a Wii Disc"
-msgstr "Ikke en Wii plate"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "Ikke nok ledig minne."
-
-msgid "Not enough free space!"
-msgstr "Ikke nok ledig plass!"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "Ikke et støttet format!"
-
-msgid "Nov"
-msgstr ""
-
-msgid "OFF"
-msgstr "AV"
-
-msgid "OK"
-msgstr ""
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "Okt"
-
-msgid "Official Site:"
-msgstr "Offisiell nettside:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "Foreldrekontroll"
-
-msgid "Partition"
-msgstr "Partisjon"
-
-msgid "Password"
-msgstr "Passord"
-
-msgid "Password Changed"
-msgstr "Passord endret"
-
-msgid "Password has been changed"
-msgstr "Passord har blitt endret"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "Lim den inn i nettleseren din for å få WiiTDB.zip."
-
-msgid "Patch Country Strings"
-msgstr "Patch land strenger"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "Velg fra liste"
-
-msgid "Play Count"
-msgstr "Ganger spilt"
-
-msgid "Play Next"
-msgstr ""
-
-msgid "Play Previous"
-msgstr ""
-
-msgid "Playing Music:"
-msgstr ""
-
-msgid "Please wait..."
-msgstr "Vennligst vent..."
-
-msgid "Power off the Wii"
-msgstr "Skru av Wii"
-
-msgid "Prompts Buttons"
-msgstr "Dialog knapper"
-
-msgid "Published by"
-msgstr "Publisert av"
-
-msgid "Quick Boot"
-msgstr "Hurtig start"
-
-msgid "Reading WAD data... Ok!"
-msgstr "Leser WAD data... OK!"
-
-msgid "Receiving file from:"
-msgstr "Mottar fil fra:"
-
-msgid "Released"
-msgstr "Utgitt"
-
-msgid "Reload SD"
-msgstr "Les SD på nytt"
-
-msgid "Remove update"
-msgstr ""
-
-msgid "Rename Game on WBFS"
-msgstr "Gi nytt navn til spill på WBFS"
-
-msgid "Reset BG Music"
-msgstr ""
-
-msgid "Reset Playcounter"
-msgstr "Nullstill teller"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "Starter på nytt..."
-
-msgid "Return"
-msgstr "Gå tilbake"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "Tilbake til Wii meny"
-
-msgid "Rumble"
-msgstr "Vibrasjon"
-
-msgid "SFX Volume"
-msgstr "Effekt volum"
-
-msgid "Save"
-msgstr "Lagre"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "Lagre spilliste som"
-
-msgid "Saved"
-msgstr "Lagret"
-
-msgid "Screensaver"
-msgstr "Skjermbeskytter"
-
-msgid "Select"
-msgstr ""
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "Velg en DOL fil"
-
-msgid "Sept"
-msgstr "Sep"
-
-msgid "Set Search-Filter"
-msgstr "Angi søkefilter"
-
-msgid "Settings"
-msgstr "Innstillinger"
-
-msgid "Shutdown System"
-msgstr "Skru helt av"
-
-msgid "Shutdown to Idle"
-msgstr "Skru av"
-
-msgid "Sort alphabetically"
-msgstr "Sortér alfabetisk"
-
-msgid "Sort by rank"
-msgstr "Sortér etter rangering"
-
-msgid "Sort order by most played"
-msgstr "Sortér etter ganger spilt"
-
-msgid "Sound"
-msgstr "Lyd"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "Spesielt takk til:"
-
-msgid "Success"
-msgstr "Suksess"
-
-msgid "Success:"
-msgstr "Suksess:"
-
-msgid "Successfully Saved"
-msgstr "Vellykket lagring"
-
-msgid "Successfully Updated"
-msgstr "Vellykket oppdatering"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr ""
-
-msgid "Successfully deleted:"
-msgstr "Vellykket sletting:"
-
-msgid "Successfully extracted theme."
-msgstr "Vellykket utpakking av tema."
-
-msgid "Successfully installed:"
-msgstr "Vellykket installering:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "TXTjuksekode sti"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "Valgt mappe finnes ikke. Vil du opprette den?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr "Tema nedlasting sti"
-
-msgid "Theme Downloader"
-msgstr "Tema Nedlaster"
-
-msgid "Theme Path"
-msgstr "Tema sti"
-
-msgid "Theme Title:"
-msgstr "Tema tittel:"
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "Tid igjen:"
-
-msgid "Title Launcher"
-msgstr "Tittel Laster"
-
-msgid "Titles from WiiTDB"
-msgstr "Titler fra WiiTDB"
-
-msgid "Tooltips"
-msgstr "Verktøystips"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr "Overføring feilet."
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "USB enhet ikke funnet"
-
-msgid "USB Loader GX is protected"
-msgstr "USB Loader GX er beskyttet"
-
-msgid "Uninstall"
-msgstr "Avinstallér"
-
-msgid "Uninstall Game"
-msgstr "Avinstallér spill"
-
-msgid "Uninstall Menu"
-msgstr "Avinstallér Meny"
-
-msgid "Uninstalling wad"
-msgstr "Avinstallerer WAD"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "Lås opp konsollen for å bruke denne innstillingen."
-
-msgid "Unsupported format, try to extract manually."
-msgstr "Format ikke støttet, prøv å pakk ut manuelt."
-
-msgid "Update"
-msgstr "Oppdater"
-
-msgid "Update All"
-msgstr "Oppdater alt"
-
-msgid "Update DOL"
-msgstr "Oppdater DOL"
-
-msgid "Update Files"
-msgstr "Oppdater filer"
-
-msgid "Update Path"
-msgstr "Oppdatering sti"
-
-msgid "Update all Language Files"
-msgstr "Oppdater alle språkfiler"
-
-msgid "Update failed"
-msgstr "Mislykket oppdatering"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "Oppdaterer språkfiler:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "Opplastet ZIP fil installert i homebrew mappen."
-
-msgid "VIDTV Patch"
-msgstr ""
-
-#, c-format
-msgid "Version: %s"
-msgstr "Versjon: %s"
-
-msgid "Video Mode"
-msgstr "Video modus"
-
-msgid "WIP Patches Path"
-msgstr ""
-
-msgid "Waiting for USB Device"
-msgstr "Venter på USB enhet"
-
-msgid "Waiting..."
-msgstr "Venter..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "Hva vil du oppdatere?"
-
-msgid "WiFi Features"
-msgstr "WiFi egenskaper"
-
-msgid "Wii Menu"
-msgstr "Wii Meny"
-
-msgid "Wii Settings"
-msgstr "Wii Innstillinger"
-
-msgid "WiiTDB Files"
-msgstr "WiiTDB filer"
-
-msgid "WiiTDB Path"
-msgstr "WiiTDB sti"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr "Wii DVD lys"
-
-msgid "Wrong Password"
-msgstr "Feil passord"
-
-msgid "Yes"
-msgstr "Ja"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr ""
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "Din URL ble lagret i %sWiiTDB_URL.txt."
-
-msgid "and translaters for language files updates"
-msgstr "og oversettere for språkfiler"
-
-msgid "available"
-msgstr "tilgjengelig"
-
-msgid "does not exist!"
-msgstr "finnes ikke!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "finnes ikke! Laster spill uten juksekode."
-
-msgid "files left"
-msgstr "filer gjenstår"
-
-msgid "files not found on the server!"
-msgstr "filer ikke funnet på serveren!"
-
-msgid "for FAT/NTFS support"
-msgstr ""
-
-msgid "for Ocarina"
-msgstr ""
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "for WiiTDB og hosting av bilder"
-
-msgid "for diverse patches"
-msgstr "for diverse patcher"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "for hans råe verktøy LibWiiGui"
-
-msgid "for hosting the themes"
-msgstr "for hosting av tema"
-
-msgid "for hosting the update files"
-msgstr "for hosting av oppdateringer"
-
-msgid "for the USB Loader source"
-msgstr "for kilden til USB Loader"
-
-msgid "formatted!"
-msgstr "formatert!"
-
-msgid "free"
-msgstr "ledig"
-
-msgid "not set"
-msgstr "ikke satt"
-
-msgid "of"
-msgstr "av"
-
-msgid "seconds left"
-msgstr "sekunder gjenstår"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (Alle)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (Barn 7+)"
-
-#~ msgid "1 hour"
-#~ msgstr "1 time"
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (Ungdom 12+)"
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (Ungdom 16+)"
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (Voksen 18+)"
-
-#~ msgid "An Error occured"
-#~ msgstr "En feil oppstod"
-
-#~ msgid "Both"
-#~ msgstr "Begge"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "Søker etter oppdateringer"
-
-#~ msgid "Console Default"
-#~ msgstr "Konsoll Standard"
-
-#~ msgid "Customs/Original"
-#~ msgstr "Custom/Original"
-
-#~ msgid "Disc Default"
-#~ msgstr "Spill Standard"
-
-#~ msgid "DiskFlip"
-#~ msgstr "Snu plate"
-
-#~ msgid "Downloading"
-#~ msgstr "Laster ned"
-
-#~ msgid "Dutch"
-#~ msgstr "Nederlandsk"
-
-#~ msgid "English"
-#~ msgstr "Engelsk"
-
-#~ msgid "French"
-#~ msgstr "Fransk"
-
-#~ msgid "Game ID"
-#~ msgstr "Spill ID"
-
-#~ msgid "Game Region"
-#~ msgstr "Region"
-
-#~ msgid "German"
-#~ msgstr "Tysk"
-
-#~ msgid "Italian"
-#~ msgstr "Italiensk"
-
-#~ msgid "Japanese"
-#~ msgstr "Japansk"
-
-#~ msgid "Korean"
-#~ msgstr "Koreansk"
-
-#~ msgid "Left"
-#~ msgstr "Venstre"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "Lik Systemmeny"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "Start fra SD/USB"
-
-#~ msgid "Locked"
-#~ msgstr "Låst"
-
-#~ msgid "Neither"
-#~ msgstr "Ingen"
-
-#~ msgid "Next"
-#~ msgstr "Neste"
-
-#~ msgid "ON"
-#~ msgstr "PÅ"
-
-#~ msgid "Only Customs"
-#~ msgstr "Kun custom"
-
-#~ msgid "Only Original"
-#~ msgstr "Kun original"
-
-#~ msgid "Only for Install"
-#~ msgstr "Kun for installering"
-
-#~ msgid "Original/Customs"
-#~ msgstr "Original/Custom"
-
-#~ msgid "Prev"
-#~ msgstr "Forrige"
-
-#~ msgid "Right"
-#~ msgstr "Høyre"
-
-#~ msgid "SChinese"
-#~ msgstr "S.Kinesisk"
-
-#~ msgid "Spanish"
-#~ msgstr "Spansk"
-
-#~ msgid "System Default"
-#~ msgstr "System Standard"
-
-#~ msgid "TChinese"
-#~ msgstr "T.Kinesisk"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "WAD filen ble installert. Men ble ikke slettet fra SD kort."
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "WAD installasjonen feilet med feilkode %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "Kan ikke åpne nedlastet WAD fil (%s)."
-
-#~ msgid "Unlocked"
-#~ msgstr "Opplåst"
-
-#~ msgid "Update to"
-#~ msgstr "Oppdater til"
-
-#~ msgid "Updating"
-#~ msgstr "Oppdaterer"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "Oppdaterer språkfiler..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "Oppdaterer WiiTDB.zip"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "Widescreen fiks"
-
-#~ msgid "%s : %s May not boot correctly if your System Menu is not up to date."
-#~ msgstr "%s : %s vil kanskje ikke starte riktig hvis System Menyen ikke er oppdatert."
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "Wii meny"
-
-#~ msgid "Channels"
-#~ msgstr "Kanaler"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "Sjekker eksisterende bilder"
-
-#~ msgid "Confirm"
-#~ msgstr "Bekreft"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "Kan ikke finne en WBFS partisjon."
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "Kan ikke åpne WBFS partisjon"
-
-#~ msgid "Could not read the disc."
-#~ msgstr "Kan ikke lese plate."
-
-#~ msgid "Could not set USB."
-#~ msgstr "Kan ikke velge USB."
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "Cover sti endret"
-
-#~ msgid "DOL path changed"
-#~ msgstr "DOL sti endret"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "Plate sti endret"
-
-#~ msgid "Display favorites"
-#~ msgstr "Vis favoritter"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "Vil du fortsette å prøve i 30 sekunder?"
-
-#~ msgid "Force"
-#~ msgstr "Tving"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "GCT Juksekode sti endret"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "Homebrew Apps sti endret"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "Sett inn et SD-kort for å laste ned bilder."
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "Sannsynligvis har bildet dimensjoner som ikke kan deles med 4."
-
-#~ msgid "Network init error"
-#~ msgstr "Nettverk init feil"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr "Ingen .dol eller .elf filer funnet."
-
-#~ msgid "No Favorites"
-#~ msgstr "Ingen favoritter"
-
-#~ msgid "No USB Device"
-#~ msgstr "Ingen USB enhet"
-
-#~ msgid "No USB Device found."
-#~ msgstr "Ingen USB enhet funnet."
-
-#~ msgid "Normal Covers"
-#~ msgstr "Normale cover"
-
-#~ msgid "Not Found"
-#~ msgstr "Ikke funnet"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "Ikke en DOL/ELF fil."
-
-#~ msgid "Save Failed"
-#~ msgstr "Lagring feilet"
-
-#~ msgid "Selected DOL"
-#~ msgstr "Valgt DOL fil"
-
-#~ msgid "Standard"
-#~ msgstr "Standard"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "TXTjuksekode sti endret"
-
-#~ msgid "Theme Download Path changed"
-#~ msgstr "Tema nedlasting sti endret"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "Tema sti endret"
-
-#~ msgid "Update Path changed."
-#~ msgstr "Oppdatering sti endret."
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "WiiTDB sti endret."
-
-#~ msgid "You are about to delete "
-#~ msgstr "Du er i ferd med å slette "
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "Du prøver å vise favoritter når du ikke har noen valgt."
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "Du har forsøkt å vise et korrupt bilde"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "finnes ikke! Du har gjort noe galt."
-
-#~ msgid "file left"
-#~ msgstr "fil gjenstår"
diff --git a/Languages/polish.lang b/Languages/polish.lang
deleted file mode 100644
index 29ba4fec..00000000
--- a/Languages/polish.lang
+++ /dev/null
@@ -1,1519 +0,0 @@
-# USB Loader GX language source file.
-# polish.lang - r899
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2009-10-01 01:00+0200\n"
-"Last-Translator: ziom666 (zadania_prog@vp.pl)\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr " Wad zapisano jako:"
-
-msgid " could not be downloaded."
-msgstr " nie udalo sie pobrac"
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr " zapisano. Plik tekstowy nie zostal zweryfikowany. Niektore z kodow, moga nie dzialac wlaeciwie z innymi. W razie problemow otworz plik tekstowy w edytorze na komputerze"
-
-msgid " is not on the server."
-msgstr " nie istnieje na serwerze"
-
-msgid "2D Cover Path"
-msgstr "Sciezka okladek 2D"
-
-msgid "3D Cover Path"
-msgstr "Sciezka okladek 3D"
-
-msgid "3D Covers"
-msgstr "Okladki 3D"
-
-msgid ">> Deleting tickets..."
-msgstr ">> Usuwanie ticketu..."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> Usuwanie ticketu...ERROR! "
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> Usuwanie ticketu...Ok! "
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> Usuwanie tytulu ...ERROR! "
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> Usuwanie tytulu ...Ok!"
-
-msgid ">> Deleting title contents..."
-msgstr ">> Usuwanie title contents..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> Usuwanie title contents...ERROR! "
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> Usuwanie title contents...Ok!"
-
-msgid ">> Deleting title..."
-msgstr ">> Usuwanie tytulu..."
-
-msgid ">> Finishing installation..."
-msgstr ">> Konczenie instalacji"
-
-msgid ">> Installing content #"
-msgstr ">> Instalowanie zawartoSci #"
-
-msgid ">> Installing ticket..."
-msgstr ">> Instalowanie ticketu..."
-
-msgid ">> Installing title..."
-msgstr ">> Instalowanie tytulu..."
-
-msgid ">> Reading WAD data..."
-msgstr ">> Odczyt danych WAD..."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> Odczyt danych WAD...ERROR! "
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> Odczyt danych WAD...Ok!"
-
-msgid "AUTO"
-msgstr "automatycznie"
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr "Wszystkie partycje"
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "USB Loader GX odblokowany"
-
-msgid "Alternate DOL"
-msgstr "Alternatywny DOL"
-
-msgid "App Language"
-msgstr "Jezyk"
-
-msgid "Apr"
-msgstr "Kwiecien"
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "Na pewno?"
-
-msgid "Aug"
-msgstr "Sierpien"
-
-msgid "Author:"
-msgstr "Autor: "
-
-msgid "AutoInit Network"
-msgstr "Autoinicjalizacja sieci"
-
-msgid "BCA Codes Path"
-msgstr "Sciezka kodow BCA"
-
-msgid "BETA revisions"
-msgstr "Wersje beta"
-
-msgid "Back"
-msgstr "Cofnij"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "Powrot do HBC/Wii Menu"
-
-msgid "Back to Loader"
-msgstr "Powrot do HBC"
-
-msgid "Backgroundmusic"
-msgstr "Muzyka w tle"
-
-msgid "Big thanks to:"
-msgstr "Podziekowania dla"
-
-msgid "Block IOS Reload"
-msgstr "Blokoj przeladowanie IOS"
-
-msgid "Boot/Standard"
-msgstr ""
-
-msgid "Boot?"
-msgstr ""
-
-msgid "Can't be formatted"
-msgstr "Nie mozna sformatowac"
-
-msgid "Can't create directory"
-msgstr "Nie mozna utworzyc folderu"
-
-msgid "Can't create file"
-msgstr "Nie mozna utworzyc pliku"
-
-msgid "Can't delete:"
-msgstr "Nie mozna usunac"
-
-msgid "Cancel"
-msgstr "Anuluj"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr ""
-
-msgid "Cheatfile is blank"
-msgstr "Plik z kodami pusty"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "Kliknij aby pobrac okladki"
-
-msgid "Click to change game ID"
-msgstr "Kliknij zeby zmienic ID gry"
-
-msgid "Clock"
-msgstr "Zegar"
-
-msgid "Close"
-msgstr "Zamknij"
-
-msgid "Code Download"
-msgstr "Pobierz kody"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr ""
-
-msgid "Coding:"
-msgstr ""
-
-msgid "Connection lost..."
-msgstr "Utracono polaczenie..."
-
-msgid "Console"
-msgstr "Konsola"
-
-msgid "Console Locked"
-msgstr "Konsola zablokowana"
-
-msgid "Console should be unlocked to modify it."
-msgstr "Aby zmodyfikowac, odblokuj konsole"
-
-msgid "Continue to install game?"
-msgstr "Kontynuowac instalacje?"
-
-msgid "Controllevel"
-msgstr "Poziom kontroli"
-
-msgid "Correct Password"
-msgstr "Haslo poprawne"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "Nie udalo sie stworzyc pliku GCT"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "Nie zainicjalizowano modulu DIP!"
-
-msgid "Could not initialize network!"
-msgstr "Nie zainicjalizowano sieci!"
-
-msgid "Could not open Disc"
-msgstr "Nie udalo sie otworzyc dysku"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "Nie mozna zapisac"
-
-msgid "Cover Download"
-msgstr "Pobierz okladki"
-
-msgid "Create"
-msgstr "Utworz"
-
-msgid "Credits"
-msgstr ""
-
-msgid "Custom Paths"
-msgstr "Sciezki"
-
-msgid "DOL Path"
-msgstr "Sciezka plikow .DOL"
-
-msgid "Dec"
-msgstr "Grudzien"
-
-msgid "Default"
-msgstr "Ustawienia domyslne"
-
-msgid "Default Gamesettings"
-msgstr "Domyslne ustawienia gier"
-
-msgid "Default Settings"
-msgstr "Domyslne ustawienia"
-
-msgid "Delete"
-msgstr "Usun"
-
-msgid "Delete ?"
-msgstr "Usunac ?"
-
-msgid "Delete Cheat GCT"
-msgstr "Usun plik z kodami GCT"
-
-msgid "Delete Cheat TXT"
-msgstr "Usun plik z kodami TXT"
-
-msgid "Delete Cover Artwork"
-msgstr "Usun obrazki box"
-
-msgid "Delete Disc Artwork"
-msgstr "Usun obrazki plyt"
-
-msgid "Design:"
-msgstr "Projekt:"
-
-msgid "Developed by"
-msgstr ""
-
-msgid "Directory does not exist!"
-msgstr "Katalog nie istnieje!"
-
-msgid "Disc Artwork Download"
-msgstr "Pobierz obrazki"
-
-msgid "Disc Artwork Path"
-msgstr "Sciezka do obrazkow plyt"
-
-msgid "Disc Images"
-msgstr "Obrazki plyt"
-
-msgid "Display"
-msgstr "Wyswietl"
-
-msgid "Display as a carousel"
-msgstr "Wyswietl jako karuzele"
-
-msgid "Display as a grid"
-msgstr "Wyswietl jako siatke"
-
-msgid "Display as a list"
-msgstr "Wyswietl jako liste"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "Na pewno usunac: "
-
-msgid "Do you want to apply it now?"
-msgstr "Czy chcesz to teraz zastosowac?"
-
-msgid "Do you want to change language?"
-msgstr "Zmienic jezyk?"
-
-msgid "Do you want to download this theme?"
-msgstr "Pobrac temat?"
-
-msgid "Do you want to format:"
-msgstr "Sformatowac:"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "Uzyc alternatywnego pliku DOL?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "Zaktualizowac wszystkie pliki jezykowe?"
-
-msgid "Done!"
-msgstr "Zakonczono!"
-
-msgid "Download"
-msgstr "Pobierz"
-
-msgid "Download Boxart image?"
-msgstr "Pobrac obrazki box?"
-
-msgid "Download Discart image?"
-msgstr "Pobrac obrazki plyt?"
-
-msgid "Download Now"
-msgstr "Pobierz teraz"
-
-msgid "Download failed."
-msgstr "Nie udalo sie pobrac"
-
-msgid "Download finished"
-msgstr "Zakonczono pobieranie"
-
-msgid "Download request failed."
-msgstr "Prosba pobierania nieudana"
-
-msgid "Downloading Page List:"
-msgstr "Pobieranie listy stron:"
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "Pobieranie pliku"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr "Pobieranie obrazka:"
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "Blad"
-
-msgid "ERROR:"
-msgstr "Blad:"
-
-msgid "ERROR: Can't set up theme."
-msgstr "Blad: nie mozna ustawic tematu"
-
-msgid "Error"
-msgstr "Blad"
-
-msgid "Error !"
-msgstr "Blad !"
-
-msgid "Error 002 fix"
-msgstr "Poprawka bledu 002"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "Blad odczytu plyty"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "Blad podczas transferu danych"
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "Blad..."
-
-msgid "Error:"
-msgstr "Blad:"
-
-msgid "Extracting files..."
-msgstr "Rozpakowywanie plikow..."
-
-msgid "FAT: Use directories"
-msgstr "FAT: uzyj katalogow"
-
-msgid "Failed formating"
-msgstr "Nie udalo sie sformatowac"
-
-msgid "Failed to extract."
-msgstr "Nie udalo sie rozpakowac"
-
-msgid "Failed to open partition"
-msgstr "Nie udalo sie otworzyc partycji"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr "Luty"
-
-msgid "File not found."
-msgstr "Nie znaleziono pliku."
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "Konczenie instalacji...Ok!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr "Obrot na osi X"
-
-msgid "Format"
-msgstr "Sformatuj"
-
-msgid "Formatting, please wait..."
-msgstr "Formatowanie, prosze czekac..."
-
-msgid "Free Space"
-msgstr "Wolnego miejsca"
-
-msgid "Full Shutdown"
-msgstr "Pelne zamkniecie"
-
-msgid "GCT Cheatcodes Path"
-msgstr "Sciezka kodow GCT"
-
-msgid "GCT File created"
-msgstr "Utworzono plik GCT"
-
-msgid "GUI Settings"
-msgstr "Ustawienia interfejsu graficznego"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr "Nie znaleziono pliku GXtheme.cfg"
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "Jezyk gry"
-
-msgid "Game Load"
-msgstr "Zaladuj gre"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "Rozmiar gry"
-
-msgid "Game Sound Mode"
-msgstr "Tryb dzwieku gry"
-
-msgid "Game Sound Volume"
-msgstr "Gloscnosc dzwieku gry"
-
-msgid "Game is already installed:"
-msgstr "Gra jest juz zainstalowana:"
-
-msgid "Game partition"
-msgstr "Partycje z grami"
-
-msgid "Games"
-msgstr "Liczba gier"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr "Menu"
-
-msgid "Homebrew Apps Path"
-msgstr "Sciezka plikacji homebrew"
-
-msgid "Homebrew Launcher"
-msgstr ""
-
-msgid "Hour"
-msgstr "Godzina"
-
-msgid "How do you want to update?"
-msgstr "Wybierz rodzaj aktualizacji"
-
-msgid "How to Shutdown?"
-msgstr "Wybierz rodzaj zamkniecia"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "JeSli nie masz WiFi, wcisnij 1 aby otrzymac adres skad pobrac WiiTDB.zip"
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "Przychodzacy plik %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "Przychodzacy plik %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "Inicjalizacja sieci"
-
-msgid "Insert Disk"
-msgstr "Wloz plyte"
-
-msgid "Insert a Wii Disc!"
-msgstr "Wloz plyte Wii!"
-
-msgid "Insert an SD-Card to save."
-msgstr "Wloz karte SD, aby zapisac"
-
-msgid "Insert an SD-Card to use this option."
-msgstr "Wloz karte SD, aby uzyc tej opcji"
-
-msgid "Install"
-msgstr "Zainstaluj"
-
-msgid "Install Error!"
-msgstr "Blad instalacji"
-
-msgid "Install a game"
-msgstr "Zainstaluj gre"
-
-msgid "Install partitions"
-msgstr "Zainstaluj partycje"
-
-msgid "Installing content... Ok!"
-msgstr "Instalowanie zawartosci...Ok!"
-
-msgid "Installing game:"
-msgstr "Instalowanie gry:"
-
-msgid "Installing ticket... Ok!"
-msgstr "Instalowanie ticketu... Ok!"
-
-msgid "Installing title... Ok!"
-msgstr "Instalowanie tytulu... Ok!"
-
-msgid "Installing wad"
-msgstr "Instalowanie wad"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr ""
-
-msgid "Jan"
-msgstr "Styczen"
-
-msgid "July"
-msgstr "lipiec"
-
-msgid "June"
-msgstr "czerwiec"
-
-msgid "Keep"
-msgstr "Trzymaj"
-
-msgid "Keyboard"
-msgstr "Klawiatura"
-
-msgid "Language File"
-msgstr "Plik jezykowy"
-
-msgid "Language change:"
-msgstr "Zmien jezyk"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "Sciezka do plikow jezykowych zmieniona"
-
-msgid "Load"
-msgstr "Zaladuj"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "Zaladowac plik z: %s ?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "Zaladowac ten DOL jako alternatywnt?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "ladowanie standardowego jezyka."
-
-msgid "Loading standard music."
-msgstr "ladowanie standardowej muzyki"
-
-msgid "Lock Console"
-msgstr "Zablokuj konsole"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr "Marzec"
-
-msgid "Mark new games"
-msgstr "Oznacz nowe gry"
-
-msgid "May"
-msgstr "Maj"
-
-msgid "Missing files"
-msgstr "Brakuje plikow"
-
-msgid "Mount DVD drive"
-msgstr "Uruchom naped DVD"
-
-msgid "Music Loop Mode"
-msgstr ""
-
-msgid "Music Volume"
-msgstr "Poziom glosnosci"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "Wykryto nowy dysk"
-
-msgid "No"
-msgstr "Nie"
-
-msgid "No Cheatfile found"
-msgstr "Nie znaleziono plikow z kodami"
-
-msgid "No DOL file found on disc."
-msgstr "Brak plikow DOL na dysku"
-
-msgid "No SD-Card inserted!"
-msgstr "Nie wlozono karty SD!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "Nie wybrano zadnych kodow"
-
-msgid "No data could be read."
-msgstr "Blad odczytu"
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "Brak plikow do pobrania"
-
-msgid "No new updates."
-msgstr "Posiadasz aktualna wersje"
-
-msgid "No themes found on the site."
-msgstr "Nie znaleziono tematow na tej stronie"
-
-msgid "Not a WAD file."
-msgstr ""
-
-msgid "Not a Wii Disc"
-msgstr "To nie jest plyta Wii"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "Brak wystarczajacej wolnej pamieci"
-
-msgid "Not enough free space!"
-msgstr "Brak wystarczajacej wolnej pamieci"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "Nieobslugiwany format"
-
-msgid "Nov"
-msgstr "Listopad"
-
-msgid "OFF"
-msgstr "Wylacz"
-
-msgid "OK"
-msgstr ""
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "Pazdziernik"
-
-msgid "Official Site:"
-msgstr "Strona oficjalna:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "Kontrola rodzicielska"
-
-msgid "Partition"
-msgstr "Partycja"
-
-msgid "Password"
-msgstr "Haslo"
-
-msgid "Password Changed"
-msgstr "Haslo zmieniono"
-
-msgid "Password has been changed"
-msgstr "Haslo zostalo zmienione"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "Wklej adres do przegladarki, aby pobrac WiiTDB.zip"
-
-msgid "Patch Country Strings"
-msgstr ""
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "Wybierz z listy"
-
-msgid "Play Count"
-msgstr "Licznik"
-
-msgid "Play Next"
-msgstr ""
-
-msgid "Play Previous"
-msgstr ""
-
-msgid "Playing Music:"
-msgstr ""
-
-msgid "Please wait..."
-msgstr "Prosze czekac..."
-
-msgid "Power off the Wii"
-msgstr "Wylacz Wii"
-
-msgid "Prompts Buttons"
-msgstr ""
-
-msgid "Published by"
-msgstr ""
-
-msgid "Quick Boot"
-msgstr "Szybkie ladowanie"
-
-msgid "Reading WAD data... Ok!"
-msgstr "Odczyt danych WAD...Ok!"
-
-msgid "Receiving file from:"
-msgstr "Otrzymywanie pliku z:"
-
-msgid "Released"
-msgstr ""
-
-msgid "Reload SD"
-msgstr "Przeladuj SD"
-
-msgid "Remove update"
-msgstr ""
-
-msgid "Rename Game on WBFS"
-msgstr "Zmien tytul gry na WBFS"
-
-msgid "Reset BG Music"
-msgstr ""
-
-msgid "Reset Playcounter"
-msgstr "Zrestartuj licznik"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "Restartowanie..."
-
-msgid "Return"
-msgstr "Powrot"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "Powrot do Wii Menu"
-
-msgid "Rumble"
-msgstr "Wibracje"
-
-msgid "SFX Volume"
-msgstr "Poziom glosnosci SFX"
-
-msgid "Save"
-msgstr "Zapisz"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "Zapisz liste gier do"
-
-msgid "Saved"
-msgstr "Zapisano"
-
-msgid "Screensaver"
-msgstr "Wygaszacz ekranu"
-
-msgid "Select"
-msgstr "Wybierz"
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "Wybierz plik DOL"
-
-msgid "Sept"
-msgstr "Wrzesien"
-
-msgid "Set Search-Filter"
-msgstr "Ustaw filtr wyszukiwania"
-
-msgid "Settings"
-msgstr "Ustawienia"
-
-msgid "Shutdown System"
-msgstr "Wylacz"
-
-msgid "Shutdown to Idle"
-msgstr "Przelacz w stan oczekiwania"
-
-msgid "Sort alphabetically"
-msgstr "Sortuj alfabetycznie"
-
-msgid "Sort by rank"
-msgstr "Sortuj wzgledem rankingu"
-
-msgid "Sort order by most played"
-msgstr "Sortuj wg. liczby uruchomien"
-
-msgid "Sound"
-msgstr "Dzwiek"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "Specjalne podziekowania"
-
-msgid "Success"
-msgstr "Sukces"
-
-msgid "Success:"
-msgstr "Sukces:"
-
-msgid "Successfully Saved"
-msgstr "Pomyslnie zapisano"
-
-msgid "Successfully Updated"
-msgstr "Pomyslnie zaktualizowano"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr ""
-
-msgid "Successfully deleted:"
-msgstr "Pomyslnie usunieto"
-
-msgid "Successfully extracted theme."
-msgstr "Pomyslnie rozpakowano temat."
-
-msgid "Successfully installed:"
-msgstr "Pomyslnie zainstalowano:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "Sciezka kodow TXT"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "Katalog nie istnieje. Utworzyc?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr "Sciezka tematow"
-
-msgid "Theme Downloader"
-msgstr "Pobieranie tematow"
-
-msgid "Theme Path"
-msgstr "Sciezka skorek"
-
-msgid "Theme Title:"
-msgstr "Tytul:"
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "Czas pozostaly"
-
-msgid "Title Launcher"
-msgstr "Uruchom tytul"
-
-msgid "Titles from WiiTDB"
-msgstr "Tytuly z pliku WiiTDB"
-
-msgid "Tooltips"
-msgstr "Chmurki z podpowiedziami"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr "Niepowodzenie."
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "Nie znaleziono urzadzenia USB"
-
-msgid "USB Loader GX is protected"
-msgstr "USB Loader GX zabezpieczony"
-
-msgid "Uninstall"
-msgstr "Odinstaluj"
-
-msgid "Uninstall Game"
-msgstr "Odinstaluj gre"
-
-msgid "Uninstall Menu"
-msgstr "Odinstaluj Menu"
-
-msgid "Uninstalling wad"
-msgstr "Odinstalowywanie wad"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "Odblokuj konsole, aby uzyc tej opcji"
-
-msgid "Unsupported format, try to extract manually."
-msgstr "Niewspierany format, sprobuj rozpakowac recznie"
-
-msgid "Update"
-msgstr "Aktualizacja"
-
-msgid "Update All"
-msgstr "Zaktualizuj wszystko"
-
-msgid "Update DOL"
-msgstr "Zaktualizuj Dol"
-
-msgid "Update Files"
-msgstr "Zaktualizuj pliki"
-
-msgid "Update Path"
-msgstr "Sciezka aktualizacji"
-
-msgid "Update all Language Files"
-msgstr "Zaktualizuj wszystkie pliki jezykowe"
-
-msgid "Update failed"
-msgstr "Nie udalo sie zaktualizowac"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "Aktualizacja plikow jezykowych:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "Wyslany plik ZIP zainstalowano w katalogu homebrew"
-
-msgid "VIDTV Patch"
-msgstr ""
-
-#, c-format
-msgid "Version: %s"
-msgstr "Wersja: %s"
-
-msgid "Video Mode"
-msgstr "Tryb video"
-
-msgid "WIP Patches Path"
-msgstr "Sciezka patchy WIP"
-
-msgid "Waiting for USB Device"
-msgstr "Oczekiwanie na urzadzenie USB"
-
-msgid "Waiting..."
-msgstr "Oczekiwanie..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "Rodzaj aktualizacji"
-
-msgid "WiFi Features"
-msgstr "Opcje WiFi"
-
-msgid "Wii Menu"
-msgstr ""
-
-msgid "Wii Settings"
-msgstr "Opcje Wii"
-
-msgid "WiiTDB Files"
-msgstr "WiiTDB"
-
-msgid "WiiTDB Path"
-msgstr "Sciezka WiiTDBPath"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr "Dioda Wii"
-
-msgid "Wrong Password"
-msgstr "Bledne haslo"
-
-msgid "Yes"
-msgstr "Tak"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr "Musisz wybrac, lub sformatowac partycje"
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "Adres zostal zapisany w pliku %sWiiTDB_URL.txt."
-
-msgid "and translaters for language files updates"
-msgstr "i tlumaczon za aktualizacjie plikow jezykowych"
-
-msgid "available"
-msgstr "dostepne"
-
-msgid "does not exist!"
-msgstr "nie istnieje!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "nie istnieje! ladowanie gry bez kodow."
-
-msgid "files left"
-msgstr "pozostalo"
-
-msgid "files not found on the server!"
-msgstr "nie znaleziono na serwerze"
-
-msgid "for FAT/NTFS support"
-msgstr "za pomoc przy FAT/NTFS"
-
-msgid "for Ocarina"
-msgstr "dla Ocarina"
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "za WiiTDB i hostowanie okladek/obrazkow plyt"
-
-msgid "for diverse patches"
-msgstr "za rozne poprawki"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "za jego niesamowite narzedzie LibWiiGui"
-
-msgid "for hosting the themes"
-msgstr "za hosting tematow"
-
-msgid "for hosting the update files"
-msgstr "za hostowanie plikow aktualizacji"
-
-msgid "for the USB Loader source"
-msgstr "za zrodla USB Loader"
-
-msgid "formatted!"
-msgstr "sformatowano"
-
-msgid "free"
-msgstr "wolnego"
-
-msgid "not set"
-msgstr "nie ustawiono"
-
-msgid "of"
-msgstr "z"
-
-msgid "seconds left"
-msgstr "sekund pozostalo"
-
-#~ msgid "Install 1:1 Copy"
-#~ msgstr "Zainstaluj kopie 1:1"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (dla kazdego)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (dziecko 7+)"
-
-#~ msgid "1 hour"
-#~ msgstr "1 godzina"
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (mlodziez 12+)"
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (dojrzaly 16+)"
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (tylko dla doroslych 18+)"
-
-#~ msgid "An Error occured"
-#~ msgstr "Wystapil blad"
-
-#~ msgid "Anti"
-#~ msgstr "Anty"
-
-#~ msgid "Are you sure you want to enable Parent Control?"
-#~ msgstr "Czy na pewno wlaczyc kontrole rodzicielska?"
-
-#~ msgid "AutoPatch"
-#~ msgstr "Automatyczny patch"
-
-#~ msgid "Both"
-#~ msgstr "Oba"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "Sprawdzanie aktualizacji"
-
-#~ msgid "Console Default"
-#~ msgstr "Domyslne ustawienia konsoli"
-
-#~ msgid "Disc Default"
-#~ msgstr "Domyslny dysk"
-
-#~ msgid "DiskFlip"
-#~ msgstr "Obrot plytami"
-
-#~ msgid "Downloading"
-#~ msgstr "Trwa pobieranie"
-
-#~ msgid "Dutch"
-#~ msgstr "holenderski"
-
-#~ msgid "English"
-#~ msgstr "angielski"
-
-#~ msgid "French"
-#~ msgstr "francuski"
-
-#~ msgid "Game ID"
-#~ msgstr "ID gry"
-
-#~ msgid "Game Region"
-#~ msgstr "Region"
-
-#~ msgid "German"
-#~ msgstr "niemiecki"
-
-#~ msgid "Invalid PIN code"
-#~ msgstr "Bledny kod PIN"
-
-#~ msgid "Italian"
-#~ msgstr "wloski"
-
-#~ msgid "Japanese"
-#~ msgstr "japonski"
-
-#~ msgid "Korean"
-#~ msgstr "koreanski"
-
-#~ msgid "Left"
-#~ msgstr "Lewo"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "Podobnie do menu systemowego"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "Zaladuj z SD/USB"
-
-#~ msgid "Locked"
-#~ msgstr "Zablokowano"
-
-#~ msgid "Loop Sound"
-#~ msgstr "Zapetl dzwieki"
-
-#~ msgid "Neither"
-#~ msgstr "zadne"
-
-#~ msgid "Next"
-#~ msgstr "nastepny"
-
-#~ msgid "Normal"
-#~ msgstr "Standardowe"
-
-#~ msgid "ON"
-#~ msgstr "Wlacz"
-
-#~ msgid "Only Customs"
-#~ msgstr "Tylko nieoryginalne"
-
-#~ msgid "Only Original"
-#~ msgstr "Tylko oryginalne"
-
-#~ msgid "Only for Install"
-#~ msgstr "Tylko dla instalacji"
-
-#~ msgid "Original/Customs"
-#~ msgstr "Mieszane"
-
-#~ msgid "Parental Control disabled"
-#~ msgstr "Kontrola rodzicielska wylaczona"
-
-#~ msgid "Prev"
-#~ msgstr "Poprzedni"
-
-#~ msgid "Right"
-#~ msgstr "Prawo"
-
-#~ msgid "SChinese"
-#~ msgstr "uproszczony chinski"
-
-#~ msgid "Sound+BGM"
-#~ msgstr "Dzwieki i muzyka w tle"
-
-#~ msgid "Sound+Quiet"
-#~ msgstr "Dzwieki i cisza"
-
-#~ msgid "Spanish"
-#~ msgstr "hiszpanski"
-
-#~ msgid "System Default"
-#~ msgstr "Domyslne ustawienia systemowe"
-
-#~ msgid "TChinese"
-#~ msgstr "chinski"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "Zainstalowano plik wad, ale nie mozna go usunac z karty SD"
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "Instalacja wad zakonczona bledek %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "Nie udalo sie zainstalowac dopiero co pobranego pliku (%s)"
-
-#~ msgid "Unlock Parental Control"
-#~ msgstr "Odblokuj kontrole rodzicielska"
-
-#~ msgid "Unlocked"
-#~ msgstr "Odblokowano"
-
-#~ msgid "Update to"
-#~ msgstr "Aktualizuj do"
-
-#~ msgid "Updating"
-#~ msgstr "Aktualizowanie"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "Aktualizacja plikow jezykowych..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "Aktualizacja WiiTDB.zip"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "Popraw ekran panoramiczny"
-
-#~ msgid "You don't have Parental Control enabled. If you wish to use Parental Control, enable it in the Wii Settings."
-#~ msgstr "Nie masz wlaczonej kontroli rodzicielskiej. Jesli chcesz jej uzywac, uruchom ja w ustawieniach Wii."
-
-#~ msgid "%s : %s May not boot correctly if your System Menu is not up to date."
-#~ msgstr "%s : %s Moze nie ladowac sie poprawnie, jesli nie masz aktualnego menu systemowego"
-
-#~ msgid "BCA Codes Path changed"
-#~ msgstr "Zmieniono sciezke kodow BCA"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "Powrit do Wii Menu"
-
-#~ msgid "Channels"
-#~ msgstr "Kanaly"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "Sprawdzam istniejace prace graficzne"
-
-#~ msgid "Confirm"
-#~ msgstr "Potwierdz"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "Nie znaleziono partycji WBFS"
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "Nie udalo sie otworzyc partycji WBFS"
-
-#~ msgid "Could not read the disc."
-#~ msgstr "Nie mozna odczytac dysku"
-
-#~ msgid "Could not set USB."
-#~ msgstr "Nie mozna ustawic USB"
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "Sciezka do okladek zostala zmieniona"
-
-#~ msgid "DOL path changed"
-#~ msgstr "Zmieniono sciezke plikow .DOL"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "Sciezka do dysku zmieniona"
-
-#~ msgid "Display favorites"
-#~ msgstr "Pokaz ulubione"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "Powtorzyc za 30 sec?"
-
-#~ msgid "Enable Parental Control"
-#~ msgstr "Wlacz kontrole rodzicielska"
-
-#~ msgid "Force"
-#~ msgstr "Wymuc"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "Sciezka kodow GCT zmienona"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "Sciezka aplikacji homebrew zmieniona"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "Wloz karte SD, aby pobrac obrazki"
-
-#~ msgid "Install not possible"
-#~ msgstr "Nie mozna zainstalowac"
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "Prawdopodobnie rozdzielczosc nie jest podzielna przez 4"
-
-#~ msgid "Network init error"
-#~ msgstr "Problem inicjalizacji sieci"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr "Nie znaleziono plikow .dol ani .elf"
-
-#~ msgid "No Favorites"
-#~ msgstr "Brak ulubionych"
-
-#~ msgid "No USB Device"
-#~ msgstr "Nie wykryto urzadzenia USB"
-
-#~ msgid "No USB Device found."
-#~ msgstr "Nie wykryto urzadzenia USB"
-
-#~ msgid "No WBFS or FAT/NTFS partition found"
-#~ msgstr "Nie znaleziono partycji WBFS, ani FAT/NTFS"
-
-#~ msgid "Normal Covers"
-#~ msgstr "Standardowe okladki"
-
-#~ msgid "Not Found"
-#~ msgstr "Nie znaleziono"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "To nie jest plik DOL/ELF"
-
-#~ msgid "Save Failed"
-#~ msgstr "Nie udalo sie zapisac"
-
-#~ msgid "Selected DOL"
-#~ msgstr "Wybrano plik DOL"
-
-#~ msgid "Standard"
-#~ msgstr "Standardowe"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "Sciezka kodow TXT zmienona"
-
-#~ msgid "Theme Download Path changed"
-#~ msgstr "Zmieniono sciezke tematow"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "Zmieniono sciezke skorek"
-
-#~ msgid "USB Loader GX will only run with Hermes CIOS rev 4! Please make sure you have revision 4 installed!"
-#~ msgstr "USB Loader GX dziala tylko z Hermes CIOS rev 4! Upewnij sie czy masz zainstalowana wersje 4!"
-
-#~ msgid "Update Path changed."
-#~ msgstr "Zmieniono Sciezke aktualizacji"
-
-#~ msgid "WIP Patches Path changed"
-#~ msgstr "Zmieniono sciezke patchy WIP"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "Sciezka WiiTDBPath zmieniona"
-
-#~ msgid "You are about to delete "
-#~ msgstr "Zamierzasz usunac"
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "WybraleS wySwietlenie usubionych, ale zadnych nie wybraleS"
-
-#~ msgid "You are using NTFS filesystem. Due to possible write errors to a NTFS partition, installing a game is not possible."
-#~ msgstr "Uzywasz partycji NTFS. Instalacja gier na tej partycji nie jest mozliwa."
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "Probujesz zaladowac zly obraz"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "Nie istnieje! Cos zepsules"
-
-#~ msgid "file left"
-#~ msgstr "pozostalo"
diff --git a/Languages/portuguese_br.lang b/Languages/portuguese_br.lang
deleted file mode 100644
index b79b3d09..00000000
--- a/Languages/portuguese_br.lang
+++ /dev/null
@@ -1,1546 +0,0 @@
-# USB Loader GX language source file.
-# portuguese_br.lang - r921
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2009-10-23 18:52+0200\n"
-"Last-Translator: aniemotion\n"
-"Language-Team: boto12, aniemotion\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr " Wad salvo como:"
-
-msgid " could not be downloaded."
-msgstr " não foi baixado."
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr " foi salvo. O texto não foi verificado. Parte do código pode não funcionar corretamente. Se detectar algum problema, abra o texto com um editor de texto para mais informações."
-
-msgid " is not on the server."
-msgstr " não está no servidor."
-
-msgid "2D Cover Path"
-msgstr "Pasta Capas 2D"
-
-msgid "3D Cover Path"
-msgstr "Pasta Capas 3D"
-
-msgid "3D Covers"
-msgstr "Capas 3D"
-
-msgid ">> Deleting tickets..."
-msgstr ">> Eliminando tickets..."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> Eliminando tickets... ERRO! "
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> Eliminando tickets... Ok! "
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> Eliminando título... ERRO! "
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> Eliminando título... Ok!"
-
-msgid ">> Deleting title contents..."
-msgstr ">> Eliminando conteúdos do título..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> Eliminando conteúdos do título... ERRO! "
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> Eliminando conteúdos do título... Ok!"
-
-msgid ">> Deleting title..."
-msgstr ">> Eliminando título..."
-
-msgid ">> Finishing installation..."
-msgstr ">> Terminando instalação..."
-
-msgid ">> Installing content #"
-msgstr ">> Instalando conteúdo #"
-
-msgid ">> Installing ticket..."
-msgstr ">> Instalando ticket..."
-
-msgid ">> Installing title..."
-msgstr ">> Instalando título..."
-
-msgid ">> Reading WAD data..."
-msgstr ">> Lendo arquivo WAD..."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> Lendo arquivo WAD... ERRO!"
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> Lendo arquivo WAD... Ok!"
-
-msgid "AUTO"
-msgstr ""
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr "Todas as Partições"
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "As configurações estão desbloqueadas."
-
-msgid "Alternate DOL"
-msgstr "DOL alternativo"
-
-msgid "App Language"
-msgstr "Idioma"
-
-msgid "Apr"
-msgstr "Abr"
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "Tem certeza?"
-
-msgid "Aug"
-msgstr "Ago"
-
-msgid "Author:"
-msgstr "Autor:"
-
-msgid "AutoInit Network"
-msgstr "Auto-iniciar Rede"
-
-msgid "BCA Codes Path"
-msgstr "Caminho do BCA Codes"
-
-msgid "BETA revisions"
-msgstr "Revisões BETA"
-
-msgid "Back"
-msgstr "Voltar"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "Voltar ao Loader/Menu do Wii"
-
-msgid "Back to Loader"
-msgstr "Loader"
-
-msgid "Backgroundmusic"
-msgstr "Música de fundo"
-
-msgid "Big thanks to:"
-msgstr "Agradecimentos:"
-
-msgid "Block IOS Reload"
-msgstr "Bloquear reload do IOS"
-
-msgid "Boot/Standard"
-msgstr "Carregar/Standard"
-
-msgid "Boot?"
-msgstr "Carregar?"
-
-msgid "Can't be formatted"
-msgstr "Não pode pode ser formatado"
-
-msgid "Can't create directory"
-msgstr "Não foi possível criar a pasta"
-
-msgid "Can't create file"
-msgstr "Não foi possivel criar o arquivo"
-
-msgid "Can't delete:"
-msgstr "Não foi possível apagar:"
-
-msgid "Cancel"
-msgstr "Cancelar"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr "Alterar Caminho para Play"
-
-msgid "Cheatfile is blank"
-msgstr "arquivo de truques vazio"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "Aperte para baixar capas"
-
-msgid "Click to change game ID"
-msgstr "Alterar o ID do jogo"
-
-msgid "Clock"
-msgstr "Relógio"
-
-msgid "Close"
-msgstr "Fechar"
-
-msgid "Code Download"
-msgstr "Download de Código"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "Programado por: %s"
-
-msgid "Coding:"
-msgstr "Desenvolvimento:"
-
-msgid "Connection lost..."
-msgstr ""
-
-msgid "Console"
-msgstr "Configuração"
-
-msgid "Console Locked"
-msgstr "Configuração Bloqueada"
-
-msgid "Console should be unlocked to modify it."
-msgstr "É necessário desbloquear a configuração para poder modificar o parâmetro."
-
-msgid "Continue to install game?"
-msgstr "Continuar instalação do jogo?"
-
-msgid "Controllevel"
-msgstr "Nível de Controle"
-
-msgid "Correct Password"
-msgstr "Password Correto"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "Não foi possível criar o arquivo GCT"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "Não foi possível inicializar o módulo DIP!"
-
-msgid "Could not initialize network!"
-msgstr "Não foi possível incializar a Ligação de Rede!"
-
-msgid "Could not open Disc"
-msgstr "Não foi possível abrir o Disco"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "Não foi possível gravar."
-
-msgid "Cover Download"
-msgstr "Download de Capas"
-
-msgid "Create"
-msgstr "Criar"
-
-msgid "Credits"
-msgstr "Créditos"
-
-msgid "Custom Paths"
-msgstr "Personalização de Pastas"
-
-msgid "DOL Path"
-msgstr "Pasta DOL"
-
-msgid "Dec"
-msgstr "Dez"
-
-msgid "Default"
-msgstr "Padrão"
-
-msgid "Default Gamesettings"
-msgstr "Configuração do Jogo padrão"
-
-msgid "Default Settings"
-msgstr "Configurações padrões"
-
-msgid "Delete"
-msgstr "Eliminar"
-
-msgid "Delete ?"
-msgstr "Eliminar ?"
-
-msgid "Delete Cheat GCT"
-msgstr "Eliminar GCT Truques"
-
-msgid "Delete Cheat TXT"
-msgstr "Eliminar TXT Truques"
-
-msgid "Delete Cover Artwork"
-msgstr "Eliminar Capas"
-
-msgid "Delete Disc Artwork"
-msgstr "Eliminar Img. Disco"
-
-msgid "Design:"
-msgstr "Desenho:"
-
-msgid "Developed by"
-msgstr "Desenvolvido por"
-
-msgid "Directory does not exist!"
-msgstr "Diretorio não existe!"
-
-msgid "Disc Artwork Download"
-msgstr "Baixar Imagens Disco"
-
-msgid "Disc Artwork Path"
-msgstr "Pasta Imagens Disco"
-
-msgid "Disc Images"
-msgstr "Imagens de Disco"
-
-msgid "Display"
-msgstr "Mostrar"
-
-msgid "Display as a carousel"
-msgstr "Mostrar como carrossel"
-
-msgid "Display as a grid"
-msgstr "Mostrar como grelha"
-
-msgid "Display as a list"
-msgstr "Mostrar como lista"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "Tem a certeza que quer eliminar o jogo:"
-
-msgid "Do you want to apply it now?"
-msgstr "Deseja aplicar agora?"
-
-msgid "Do you want to change language?"
-msgstr "Deseja alterar o idioma?"
-
-msgid "Do you want to download this theme?"
-msgstr "Deseja baixar este tema?"
-
-msgid "Do you want to format:"
-msgstr "Deseja FORMATAR:"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "Deseja usar o DOL alternativo que pensa ser o correcto?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "Deseja atualizar todos os arquivos de idioma?"
-
-msgid "Done!"
-msgstr "Concluído!"
-
-msgid "Download"
-msgstr "Baixar"
-
-msgid "Download Boxart image?"
-msgstr "Baixar imagem da Caixa?"
-
-msgid "Download Discart image?"
-msgstr "Baixar imagem do Disco?"
-
-msgid "Download Now"
-msgstr "Baixar agora"
-
-msgid "Download failed."
-msgstr "Download falhou"
-
-msgid "Download finished"
-msgstr "Download Terminado"
-
-msgid "Download request failed."
-msgstr "Download requerido falhou"
-
-msgid "Downloading Page List:"
-msgstr "Baixando lista de paginas:"
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "Baixando arquivo"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr "Baixando imagem:"
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "ERRO"
-
-msgid "ERROR:"
-msgstr "ERRO:"
-
-msgid "ERROR: Can't set up theme."
-msgstr "ERRO: Impossível aplicar tema"
-
-msgid "Error"
-msgstr "Erro"
-
-msgid "Error !"
-msgstr "Erro !"
-
-msgid "Error 002 fix"
-msgstr "Correção Erro 002"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "Erro ao ler o Disco"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "Erro na transferência de dados."
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "Erro..."
-
-msgid "Error:"
-msgstr "Erro:"
-
-msgid "Extracting files..."
-msgstr "Extraindo arquivos..."
-
-msgid "FAT: Use directories"
-msgstr "FAT: Usar Diretórios"
-
-msgid "Failed formating"
-msgstr "Falha ao formatar"
-
-msgid "Failed to extract."
-msgstr "Falha ao extrair"
-
-msgid "Failed to open partition"
-msgstr "Falha ao abrir partição"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr "Fev"
-
-msgid "File not found."
-msgstr "Arquivo não encontrado."
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "Terminando instalação... Ok!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr "Paginação Horizontal"
-
-msgid "Format"
-msgstr "Formatar"
-
-msgid "Formatting, please wait..."
-msgstr "Formatando, por favor aguarde..."
-
-msgid "Free Space"
-msgstr "Espaço Livre"
-
-msgid "Full Shutdown"
-msgstr "Desligar"
-
-msgid "GCT Cheatcodes Path"
-msgstr "Pasta Truques"
-
-msgid "GCT File created"
-msgstr "Arquivo GCT criado"
-
-msgid "GUI Settings"
-msgstr "Definições de Interface"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr "GXtheme.cfg não encontrado em nenhuma subpasta"
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "Idioma"
-
-msgid "Game Load"
-msgstr "Carregando Jogos"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "Tamanho do Jogo"
-
-msgid "Game Sound Mode"
-msgstr "Modo de Som do Jogo"
-
-msgid "Game Sound Volume"
-msgstr "Volume dos Sons dos Jogos"
-
-msgid "Game is already installed:"
-msgstr "Este jogo já está instalado:"
-
-msgid "Game partition"
-msgstr "Partição de Game"
-
-msgid "Games"
-msgstr "Jogos"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr "Menu Inicial"
-
-msgid "Homebrew Apps Path"
-msgstr "Pasta Apps Homebrew"
-
-msgid "Homebrew Launcher"
-msgstr "Launcher Homebrew"
-
-msgid "Hour"
-msgstr "Horas"
-
-msgid "How do you want to update?"
-msgstr "Como pretende atualizar o programa?"
-
-msgid "How to Shutdown?"
-msgstr "Como desligar?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "Se não tem conexão sem fios, pressione 1 para ver a URL onde se pode baixar o arquivo WiiTDB.zip"
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "Recebendo arquivo %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "Recebendo arquivo %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "Inicializando a Rede"
-
-msgid "Insert Disk"
-msgstr "Insira o Disco"
-
-msgid "Insert a Wii Disc!"
-msgstr "Insira um Disco do Wii!"
-
-msgid "Insert an SD-Card to save."
-msgstr "Insira um cartão SD para salvar."
-
-msgid "Insert an SD-Card to use this option."
-msgstr "Insira um cartão SD para usar esta funcionalidade."
-
-msgid "Install"
-msgstr "Instalar"
-
-msgid "Install Error!"
-msgstr "Erro de Instalação!"
-
-msgid "Install a game"
-msgstr "Instalar um jogo"
-
-msgid "Install partitions"
-msgstr "Instalare partições"
-
-msgid "Installing content... Ok!"
-msgstr "Instalando conteúdo... Ok!"
-
-msgid "Installing game:"
-msgstr "Instalando jogo:"
-
-msgid "Installing ticket... Ok!"
-msgstr "Instalando ticket... Ok!"
-
-msgid "Installing title... Ok!"
-msgstr "Instalando título... Ok!"
-
-msgid "Installing wad"
-msgstr "Instalando wad"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "Parece que tem uma informação que pode ser útil. Por favor envie esta informação a nossa equipe de desenvolvimento."
-
-msgid "Jan"
-msgstr ""
-
-msgid "July"
-msgstr "Jul"
-
-msgid "June"
-msgstr "Jun"
-
-msgid "Keep"
-msgstr "Manter"
-
-msgid "Keyboard"
-msgstr "Teclado"
-
-msgid "Language File"
-msgstr "Idiomas"
-
-msgid "Language change:"
-msgstr "Alteração de idioma:"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "Caminho para o arquivo de Idioma alterado."
-
-msgid "Load"
-msgstr "Carregar"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "Carregar arquivo de: %s ?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "Carregar este DOL como DOL alternativo?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "Carregado idioma padrão."
-
-msgid "Loading standard music."
-msgstr "Carregando música padrão."
-
-msgid "Lock Console"
-msgstr "Bloquear Configurações"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr ""
-
-msgid "Mark new games"
-msgstr "Marcar games novos"
-
-msgid "May"
-msgstr "Mai"
-
-msgid "Missing files"
-msgstr "Faltando arquivos"
-
-msgid "Mount DVD drive"
-msgstr "Carregar leitor DVD"
-
-msgid "Music Loop Mode"
-msgstr "Modo Repetição de Música"
-
-msgid "Music Volume"
-msgstr "Volume da Música"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "Detectado Novo Disco"
-
-msgid "No"
-msgstr "Não"
-
-msgid "No Cheatfile found"
-msgstr "Arquivo de truques não encontrado"
-
-msgid "No DOL file found on disc."
-msgstr "Não foi encontrado nenhum arquivo dol no disco"
-
-msgid "No SD-Card inserted!"
-msgstr "Cartão SD não inserido!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "Nenhuma seleção de truques"
-
-msgid "No data could be read."
-msgstr "Não foi possível ler dados."
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "Faltando nenhum arquivo"
-
-msgid "No new updates."
-msgstr "Não existem novas atualizações."
-
-msgid "No themes found on the site."
-msgstr "Nenhum tema encontrado no site"
-
-msgid "Not a WAD file."
-msgstr "Não é um arquivo Wad"
-
-msgid "Not a Wii Disc"
-msgstr "Não é um Disco do Wii"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "Não há memória livre suficiente."
-
-msgid "Not enough free space!"
-msgstr "Não há espaço livre suficiente!"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "Formato não suportado!"
-
-msgid "Nov"
-msgstr ""
-
-msgid "OFF"
-msgstr "Desligado"
-
-msgid "OK"
-msgstr ""
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "Out"
-
-msgid "Official Site:"
-msgstr "Site Oficial:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "Controle de Pais"
-
-msgid "Partition"
-msgstr "Partição"
-
-msgid "Password"
-msgstr "Senha"
-
-msgid "Password Changed"
-msgstr "Senha Alterada"
-
-msgid "Password has been changed"
-msgstr "A Senha foi alterada"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "Copie para o seu browser de Internet para baixar o WiiTDB.zip"
-
-msgid "Patch Country Strings"
-msgstr "Patch Jogos Importados"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "Escolher da lista"
-
-msgid "Play Count"
-msgstr "Vezes jogadas"
-
-msgid "Play Next"
-msgstr "Tocar Próximo"
-
-msgid "Play Previous"
-msgstr "Tocar Anteior"
-
-msgid "Playing Music:"
-msgstr "Tocando a Música:"
-
-msgid "Please wait..."
-msgstr "Por favor aguarde..."
-
-msgid "Power off the Wii"
-msgstr "Desligar o Wii"
-
-msgid "Prompts Buttons"
-msgstr "Mensagens/Botões"
-
-msgid "Published by"
-msgstr "Publicado por"
-
-msgid "Quick Boot"
-msgstr "Inicialização Rápida"
-
-msgid "Reading WAD data... Ok!"
-msgstr "Lendo dados do WAD... Ok!"
-
-msgid "Receiving file from:"
-msgstr "Recebendo arquivo de:"
-
-msgid "Released"
-msgstr "Lançamento"
-
-msgid "Reload SD"
-msgstr "Atualizar do cartão SD"
-
-msgid "Remove update"
-msgstr "Remover atualização"
-
-msgid "Rename Game on WBFS"
-msgstr "Alterar nome do jogo na partição WBFS"
-
-msgid "Reset BG Music"
-msgstr "Resetar Música de Fundo"
-
-msgid "Reset Playcounter"
-msgstr "Limpar Contagem"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "O Wii irá reiniciar"
-
-msgid "Return"
-msgstr "Voltar"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "Voltar ao Menu do Wii"
-
-msgid "Rumble"
-msgstr "Vibração"
-
-msgid "SFX Volume"
-msgstr "Volume dos Efeitos"
-
-msgid "Save"
-msgstr "Gravar"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "Gravar a lista dos jogos sobre"
-
-msgid "Saved"
-msgstr "Gravado"
-
-msgid "Screensaver"
-msgstr "Proteção de tela"
-
-msgid "Select"
-msgstr "selecionar"
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "Selecionar um DOL"
-
-msgid "Sept"
-msgstr "Set"
-
-msgid "Set Search-Filter"
-msgstr "Usar filtro de busca"
-
-msgid "Settings"
-msgstr "Configurações"
-
-msgid "Shutdown System"
-msgstr "Desligar"
-
-msgid "Shutdown to Idle"
-msgstr "Standby"
-
-msgid "Sort alphabetically"
-msgstr "Ordenar por ordem alfabética"
-
-msgid "Sort by rank"
-msgstr "Ordenar por ranking"
-
-msgid "Sort order by most played"
-msgstr "Ordenar por número de vezes jogadas"
-
-msgid "Sound"
-msgstr "Audio"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "Agradecimentos especiais para:"
-
-msgid "Success"
-msgstr "Sucesso"
-
-msgid "Success:"
-msgstr "Sucesso:"
-
-msgid "Successfully Saved"
-msgstr "Gravado com Sucesso"
-
-msgid "Successfully Updated"
-msgstr "Programa atualizado com Sucesso"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr "Atualizado com sucesso graças a www.techjawa.com"
-
-msgid "Successfully deleted:"
-msgstr "Eliminado com Sucesso:"
-
-msgid "Successfully extracted theme."
-msgstr "Tema extraido com sucesso."
-
-msgid "Successfully installed:"
-msgstr "Instalado com Sucesso:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "Pasta Dicas"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "O diretorio não existe. Gostaria de cria-lo?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr "Pasta de Temas Baixados"
-
-msgid "Theme Downloader"
-msgstr "Baixador de Temas"
-
-msgid "Theme Path"
-msgstr "Pasta Temas"
-
-msgid "Theme Title:"
-msgstr "Titulo do Tema:"
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "Tempo restante:"
-
-msgid "Title Launcher"
-msgstr "Laucher de Títulos"
-
-msgid "Titles from WiiTDB"
-msgstr "Títulos do WiiTDB"
-
-msgid "Tooltips"
-msgstr "Dicas"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr "Falhou a transferencia"
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "Dispositivo USB não encontrado"
-
-msgid "USB Loader GX is protected"
-msgstr "O USB Loader GX está bloqueado"
-
-msgid "Uninstall"
-msgstr "Desinstalar"
-
-msgid "Uninstall Game"
-msgstr "Desinstalar jogo"
-
-msgid "Uninstall Menu"
-msgstr "Menu de Desinstalação"
-
-msgid "Uninstalling wad"
-msgstr "Desinstalando wad"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "Desbloquear configuração antes de usar esta opção."
-
-msgid "Unsupported format, try to extract manually."
-msgstr "Formato não suportado, tente extrair manualmente."
-
-msgid "Update"
-msgstr "Verificar Atualizações"
-
-msgid "Update All"
-msgstr "Atualizar Tudo"
-
-msgid "Update DOL"
-msgstr "Atualizar DOL"
-
-msgid "Update Files"
-msgstr "Atualizar arquivos"
-
-msgid "Update Path"
-msgstr "Pasta Atualizações"
-
-msgid "Update all Language Files"
-msgstr "Atualizar todos os arquivos de Idioma"
-
-msgid "Update failed"
-msgstr "Erro ao atualizar"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "Atualizando arquivos de Idioma:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "Arquivo ZIP enviado y instalado no diretório homebrew."
-
-msgid "VIDTV Patch"
-msgstr "Patch VIDTV"
-
-#, c-format
-msgid "Version: %s"
-msgstr "Versão: %s"
-
-msgid "Video Mode"
-msgstr "Modo de Vídeo"
-
-msgid "WIP Patches Path"
-msgstr "Caminho WIP Patches"
-
-msgid "Waiting for USB Device"
-msgstr "Aguardando pelo Dispositivo USB"
-
-msgid "Waiting..."
-msgstr "Aguardando..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "O que deseja atualizar?"
-
-msgid "WiFi Features"
-msgstr "Rede sem fios"
-
-msgid "Wii Menu"
-msgstr "Menu do Wii"
-
-msgid "Wii Settings"
-msgstr "Configuração do Wii"
-
-msgid "WiiTDB Files"
-msgstr "WiiTDB"
-
-msgid "WiiTDB Path"
-msgstr "Pasta WiiTDB"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr "Iluminação Leitor"
-
-msgid "Wrong Password"
-msgstr "Password Incorreto"
-
-msgid "Yes"
-msgstr "Sim"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr "Você precisa selecionar ou formatar uma partição"
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "Sua URL foi salva em %sWiiTDB_URL.txt."
-
-msgid "and translaters for language files updates"
-msgstr "e tradutores para atualizações de linguas"
-
-msgid "available"
-msgstr "disponível"
-
-msgid "does not exist!"
-msgstr "não existe!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "não existe! Carregando jogo sem truques."
-
-msgid "files left"
-msgstr "arquivos restantes"
-
-msgid "files not found on the server!"
-msgstr "arquivos não encontrados no servidor!"
-
-msgid "for FAT/NTFS support"
-msgstr "para suporte a FAT/NTFS"
-
-msgid "for Ocarina"
-msgstr "pelo Ocarina"
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "por WiiTDB e hospedando img. capas / discos"
-
-msgid "for diverse patches"
-msgstr "por diversos patches"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "pela sua espetacular ferramenta LibWiiGui"
-
-msgid "for hosting the themes"
-msgstr "por hospedar os temas"
-
-msgid "for hosting the update files"
-msgstr "por hospedar atualizações"
-
-msgid "for the USB Loader source"
-msgstr "pelo código do USB Loader"
-
-msgid "formatted!"
-msgstr "formatado!"
-
-msgid "free"
-msgstr "livres"
-
-msgid "not set"
-msgstr "não definido"
-
-msgid "of"
-msgstr "de"
-
-msgid "seconds left"
-msgstr "segundos restantes"
-
-#~ msgid "Install 1:1 Copy"
-#~ msgstr "Instalar 1:1 Copy"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (Todos)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (Crianças 7+)"
-
-#~ msgid "1 hour"
-#~ msgstr "1 hora"
-
-#~ msgid "10 min"
-#~ msgstr "10 minutos"
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (Adolescente 12+)"
-
-#~ msgid "20 min"
-#~ msgstr "20 minutos"
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (Adulto 16+)"
-
-#~ msgid "3 min"
-#~ msgstr "3 minutos"
-
-#~ msgid "30 min"
-#~ msgstr "30 minutos"
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (Adultos 18+)"
-
-#~ msgid "5 min"
-#~ msgstr "5 minutos"
-
-#~ msgid "An Error occured"
-#~ msgstr "Ocorreu um Erro"
-
-#~ msgid "Are you sure you want to enable Parent Control?"
-#~ msgstr "Tem certeza que você deseja ligar o Controle de Pais?"
-
-#~ msgid "AutoPatch"
-#~ msgstr "Patch automático"
-
-#~ msgid "Both"
-#~ msgstr "Ambos"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "Procurando Atualizações"
-
-#~ msgid "Console Default"
-#~ msgstr "Configurações padrões"
-
-#~ msgid "Customs/Original"
-#~ msgstr "Alternativas/Originais"
-
-#~ msgid "Disc Default"
-#~ msgstr "Disco Padrão"
-
-#~ msgid "DiskFlip"
-#~ msgstr "Voltar Disco"
-
-#~ msgid "Downloading"
-#~ msgstr "Baixando"
-
-#~ msgid "Dutch"
-#~ msgstr "Holandês"
-
-#~ msgid "English"
-#~ msgstr "Inglês"
-
-#~ msgid "French"
-#~ msgstr "Francês"
-
-#~ msgid "Game ID"
-#~ msgstr "ID do Jogo"
-
-#~ msgid "Game Region"
-#~ msgstr "Região"
-
-#~ msgid "Gamename [GAMEID]"
-#~ msgstr "Nome do Jogo [GAMEID]"
-
-#~ msgid "German"
-#~ msgstr "Alemão"
-
-#~ msgid "Invalid PIN code"
-#~ msgstr "Código PIN inválido"
-
-#~ msgid "Italian"
-#~ msgstr "Italiano"
-
-#~ msgid "Japanese"
-#~ msgstr "Japonês"
-
-#~ msgid "Korean"
-#~ msgstr "Coreano"
-
-#~ msgid "Left"
-#~ msgstr "Esquerda"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "Igual ao Menu do Wii"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "Carregar do SD/USB"
-
-#~ msgid "Locked"
-#~ msgstr "Bloqueado"
-
-#~ msgid "Loop Directory"
-#~ msgstr "Repitir Diretório"
-
-#~ msgid "Loop Music"
-#~ msgstr "Repitir Música"
-
-#~ msgid "Loop Sound"
-#~ msgstr "Repitir Som"
-
-#~ msgid "Neither"
-#~ msgstr "Nenhum"
-
-#~ msgid "Next"
-#~ msgstr "Próximo"
-
-#~ msgid "None"
-#~ msgstr "Nenhum"
-
-#~ msgid "ON"
-#~ msgstr "Ligado"
-
-#~ msgid "Only Customs"
-#~ msgstr "Apenas Alternativas"
-
-#~ msgid "Only Original"
-#~ msgstr "Apenas Originais"
-
-#~ msgid "Only for Install"
-#~ msgstr "Apenas na instalação"
-
-#~ msgid "Original/Customs"
-#~ msgstr "Originais/Alternativas"
-
-#~ msgid "Parental Control disabled"
-#~ msgstr "Controle dos Pais desligado"
-
-#~ msgid "Play Once"
-#~ msgstr "Tocar uma só vez"
-
-#~ msgid "Prev"
-#~ msgstr "Anterior"
-
-#~ msgid "Random Directory Music"
-#~ msgstr "Diretótio Aleatório de Músicas"
-
-#~ msgid "Right"
-#~ msgstr "Direita"
-
-#~ msgid "SChinese"
-#~ msgstr "Chinês Simplificado"
-
-#~ msgid "Sound+BGM"
-#~ msgstr "Som+Music de Fundo"
-
-#~ msgid "Sound+Quiet"
-#~ msgstr "Som+Quieto"
-
-#~ msgid "Spanish"
-#~ msgstr "Espanhol"
-
-#~ msgid "System Default"
-#~ msgstr "Padrão do Sistema"
-
-#~ msgid "TChinese"
-#~ msgstr "Chinês Tradicional"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "O arquivo wad foi instalado mas não foi possível eliminá-lo do cartão SD."
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "A instalação do wad falhou com o seguinte erro: %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "Não é possível abrir o arquivo wad baixado (%s)."
-
-#~ msgid "Unlock Parental Control"
-#~ msgstr "Desbloquear Controle de Pais"
-
-#~ msgid "Unlocked"
-#~ msgstr "Desbloqueado"
-
-#~ msgid "Update to"
-#~ msgstr "Atualizando para"
-
-#~ msgid "Updating"
-#~ msgstr "Atualizando"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "Atualizando arquivos de Idioma..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "Atualizando WiiTDB.zip"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "Correção 16:9"
-
-#~ msgid "You don't have Parental Control enabled. If you wish to use Parental Control, enable it in the Wii Settings."
-#~ msgstr "Você não tem o Controle de Pais ligado. Se você deseja usar o Controle de Pais, ligue-o nas Configurações do Wii."
-
-#~ msgid "%s : %s May not boot correctly if your System Menu is not up to date."
-#~ msgstr "%s : %s Pode não carregar corretamente se seu sistema não estiver atualizado."
-
-#~ msgid "BCA Codes Path changed"
-#~ msgstr "Caminho do BCA Codes alterado"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "Menu do Wii"
-
-#~ msgid "Channels"
-#~ msgstr "Canais"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "Procurando artes existentes"
-
-#~ msgid "Confirm"
-#~ msgstr "Confirmar"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "Não foi encontrada nenhuma partição WBFS."
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "Não foi possível abrir a partição WBFS"
-
-#~ msgid "Could not read the disc."
-#~ msgstr "Não foi possível ler o disco."
-
-#~ msgid "Could not set USB."
-#~ msgstr "Não foi possível configurar a porta USB."
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "Pasta das Capas alterada"
-
-#~ msgid "DOL path changed"
-#~ msgstr "Pasta do DOL alterada"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "Pasta das Imagens Disco alterada"
-
-#~ msgid "Display favorites"
-#~ msgstr "Mostrar favoritos"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "Deseja tentar novamente dentro de 30 segs?"
-
-#~ msgid "Enable Parental Control"
-#~ msgstr "Ligar Controle de Pais"
-
-#~ msgid "Force"
-#~ msgstr "Forçar"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "Pasta de Truques alterada"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "Pasta Apps Homebrew alterada"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "Insira um cartão SD para descarregar as imagens."
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "Provável que o tamanho não seja divisível por 4."
-
-#~ msgid "Network init error"
-#~ msgstr "Erro ao inicializar ligação de rede"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr "Não foram encontrados nenhuns arquivos .dol ou .elf"
-
-#~ msgid "No Favorites"
-#~ msgstr "Lista de favoritos vazia"
-
-#~ msgid "No USB Device"
-#~ msgstr "Nenhum dispositivo USB"
-
-#~ msgid "No USB Device found."
-#~ msgstr "Nenhum dispositivo USB encontrado."
-
-#~ msgid "No WBFS or FAT/NTFS partition found"
-#~ msgstr "Nenhuma partição WBFS o FAT/NTFS encontrada"
-
-#~ msgid "Normal Covers"
-#~ msgstr "Capas Normais"
-
-#~ msgid "Not Found"
-#~ msgstr "Não encontrado"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "Não é um arquivo DOL/ELF válido."
-
-#~ msgid "Reset to standard BGM?"
-#~ msgstr "Resetar para Música de Fundo padrão?"
-
-#~ msgid "Save Failed"
-#~ msgstr "Falha ao Gravar"
-
-#~ msgid "Selected DOL"
-#~ msgstr "DOL selecionado"
-
-#~ msgid "Standard"
-#~ msgstr "Standard"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "Pasta de Dicas alterada"
-
-#~ msgid "Theme Download Path changed"
-#~ msgstr "Pasta de Temas Baixados Alterado"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "Pasta dos Temas alterada"
-
-#~ msgid "USB Loader GX will only run with Hermes CIOS rev 4! Please make sure you have revision 4 installed!"
-#~ msgstr "O USB Loader GX será executado apenas com a Hermes CIOS rev 4! Por favor tenha certeza de que tem a revisão 4 instalada!"
-
-#~ msgid "Update Path changed."
-#~ msgstr "A pasta das atualizações foi alterada."
-
-#~ msgid "WIP Patches Path changed"
-#~ msgstr "Caminho WIP Patches alterado"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "Pasta WiiTDB alterada."
-
-#~ msgid "You are about to delete "
-#~ msgstr "Irá eliminar "
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "Está tentando visualizar os favoritos, mas não existe nenhum selecionado."
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "Você tentou carregar uma imagem corrompida"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "não existe! Estragou algo, idiota."
-
-#~ msgid "file left"
-#~ msgstr "arquivo restante"
diff --git a/Languages/portuguese_pt.lang b/Languages/portuguese_pt.lang
deleted file mode 100644
index c3545a66..00000000
--- a/Languages/portuguese_pt.lang
+++ /dev/null
@@ -1,1564 +0,0 @@
-# USB Loader GX language source file.
-# portuguese_pt.lang - r931
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2010-03-22 10:55-0000\n"
-"Last-Translator: Sky8000\n"
-"Language-Team: Sky8000 \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr " Wad guardado como:"
-
-msgid " could not be downloaded."
-msgstr " não foi descarregado."
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr " foi guardado. O texto não foi verificado. Parte do código pode não funcionar correctamente. Se detectares problemas abre o texto com um editor de texto para obteres mais informação."
-
-msgid " is not on the server."
-msgstr " não está no servidor."
-
-msgid "2D Cover Path"
-msgstr "Pasta Capas 2D"
-
-msgid "3D Cover Path"
-msgstr "Pasta Capas 3D"
-
-msgid "3D Covers"
-msgstr "Capas 3D"
-
-msgid ">> Deleting tickets..."
-msgstr ">> Eliminando tickets..."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> Eliminando tickets... ERRO! "
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> Eliminando tickets... Ok! "
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> Eliminando título... ERRO! "
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> Eliminando título... Ok!"
-
-msgid ">> Deleting title contents..."
-msgstr ">> Eliminando conteúdos do título..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> Eliminando conteúdos do título... ERRO! "
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> Eliminando conteúdos do título... Ok!"
-
-msgid ">> Deleting title..."
-msgstr ">> Eliminando título..."
-
-msgid ">> Finishing installation..."
-msgstr ">> Terminando instalação..."
-
-msgid ">> Installing content #"
-msgstr ">> Instalando conteúdo #"
-
-msgid ">> Installing ticket..."
-msgstr ">> Instalando ticket..."
-
-msgid ">> Installing title..."
-msgstr ">> Instalando título..."
-
-msgid ">> Reading WAD data..."
-msgstr ">> Lendo ficheiro WAD..."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> Lendo ficheiro WAD... ERRO!"
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> Lendo ficheiro WAD... Ok!"
-
-msgid "AUTO"
-msgstr ""
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr "Todas as partições"
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "As configurações estão desbloqueadas."
-
-msgid "Alternate DOL"
-msgstr "DOL alternativo"
-
-msgid "App Language"
-msgstr "Idioma"
-
-msgid "Apr"
-msgstr "Abr"
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "Tem a certeza?"
-
-msgid "Aug"
-msgstr "Ago"
-
-msgid "Author:"
-msgstr "Autor:"
-
-msgid "AutoInit Network"
-msgstr "Auto-iniciar Rede"
-
-msgid "BCA Codes Path"
-msgstr "Pasta Códigos BCA"
-
-msgid "BETA revisions"
-msgstr "Revisões BETA"
-
-msgid "Back"
-msgstr "Voltar"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "Voltar ao Loader/Menu da Wii"
-
-msgid "Back to Loader"
-msgstr "Loader"
-
-msgid "Backgroundmusic"
-msgstr "Música de fundo"
-
-msgid "Big thanks to:"
-msgstr "Agradecimentos:"
-
-msgid "Block IOS Reload"
-msgstr "Bloquear Reload do IOS"
-
-msgid "Boot/Standard"
-msgstr "Arranque/Standard"
-
-msgid "Boot?"
-msgstr "Carregar?"
-
-msgid "Can't be formatted"
-msgstr "Não pode ser formatado"
-
-msgid "Can't create directory"
-msgstr "Não foi possível criar a pasta"
-
-msgid "Can't create file"
-msgstr "Não é possível criar o ficheiro"
-
-msgid "Can't delete:"
-msgstr "Não foi possível apagar:"
-
-msgid "Cancel"
-msgstr "Cancelar"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr "Alterar Pasta de Músicas"
-
-msgid "Cheatfile is blank"
-msgstr "Ficheiro de truques vazio"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "Carregue para descarregar capas"
-
-msgid "Click to change game ID"
-msgstr "Carregue para alterar o ID do jogo"
-
-msgid "Clock"
-msgstr "Relógio"
-
-msgid "Close"
-msgstr "Fechar"
-
-msgid "Code Download"
-msgstr "Download de Código"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "Programado por: %s"
-
-msgid "Coding:"
-msgstr "Desenvolvimento:"
-
-msgid "Connection lost..."
-msgstr "Ligação perdida..."
-
-msgid "Console"
-msgstr "Configuração"
-
-msgid "Console Locked"
-msgstr "Configuração Bloqueada"
-
-msgid "Console should be unlocked to modify it."
-msgstr "É necessário desbloquear a configuração para poder modificar o parâmetro."
-
-msgid "Continue to install game?"
-msgstr "Continuar instalação do jogo?"
-
-msgid "Controllevel"
-msgstr "Nível de Controle"
-
-msgid "Correct Password"
-msgstr "Password Correcta"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "Não foi possível criar o ficheiro GCT"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "Não foi possível inicializar o módulo DIP!"
-
-msgid "Could not initialize network!"
-msgstr "Não foi possível incializar a Ligação de Rede!"
-
-msgid "Could not open Disc"
-msgstr "Não foi possível abrir o Disco"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "Não foi possível gravar."
-
-msgid "Cover Download"
-msgstr "Download de Capas"
-
-msgid "Create"
-msgstr "Criar"
-
-msgid "Credits"
-msgstr "Créditos"
-
-msgid "Custom Paths"
-msgstr "Personalização de Pastas"
-
-msgid "DOL Path"
-msgstr "Pasta DOL"
-
-msgid "Dec"
-msgstr "Dez"
-
-msgid "Default"
-msgstr "Predefinição"
-
-msgid "Default Gamesettings"
-msgstr "Repor Configuração do Jogo"
-
-msgid "Default Settings"
-msgstr "Repor Configurações"
-
-msgid "Delete"
-msgstr "Eliminar"
-
-msgid "Delete ?"
-msgstr "Eliminar ?"
-
-msgid "Delete Cheat GCT"
-msgstr "Eliminar Truques (GCT)"
-
-msgid "Delete Cheat TXT"
-msgstr "Eliminar Truques (TXT)"
-
-msgid "Delete Cover Artwork"
-msgstr "Eliminar Capas"
-
-msgid "Delete Disc Artwork"
-msgstr "Eliminar Img. Disco"
-
-msgid "Design:"
-msgstr ""
-
-msgid "Developed by"
-msgstr "Desenvolvido por"
-
-msgid "Directory does not exist!"
-msgstr "A Pasta não existe!"
-
-msgid "Disc Artwork Download"
-msgstr "Descaregar Imagens Disco"
-
-msgid "Disc Artwork Path"
-msgstr "Pasta Imagens Disco"
-
-msgid "Disc Images"
-msgstr "Imagens de Disco"
-
-msgid "Display"
-msgstr "Mostrar"
-
-msgid "Display as a carousel"
-msgstr "Mostrar como carrossel"
-
-msgid "Display as a grid"
-msgstr "Mostrar como grelha"
-
-msgid "Display as a list"
-msgstr "Mostrar como lista"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "Tem a certeza que quer eliminar o jogo:"
-
-msgid "Do you want to apply it now?"
-msgstr "Deseja aplicar agora?"
-
-msgid "Do you want to change language?"
-msgstr "Deseja alterar o idioma?"
-
-msgid "Do you want to download this theme?"
-msgstr "Deseja descarregar este tema?"
-
-msgid "Do you want to format:"
-msgstr "Deseja FORMATAR:"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "Pretende usar o DOL alternativo que se pensa ser o correcto?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "Queres actualizar todos os ficheiros de idioma?"
-
-msgid "Done!"
-msgstr "Concluído!"
-
-msgid "Download"
-msgstr "Descarregar"
-
-msgid "Download Boxart image?"
-msgstr "Descarregar imagem da Caixa?"
-
-msgid "Download Discart image?"
-msgstr "Descarregar imagem do Disco?"
-
-msgid "Download Now"
-msgstr "Descarregar Agora"
-
-msgid "Download failed."
-msgstr "O download falhou."
-
-msgid "Download finished"
-msgstr "Download Terminado"
-
-msgid "Download request failed."
-msgstr "O pedido de download falhou."
-
-msgid "Downloading Page List:"
-msgstr "Descarregando Lista de Páginas:"
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "Descarregando ficheiro:"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr "Descarregando imagem:"
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "ERRO"
-
-msgid "ERROR:"
-msgstr "ERRO:"
-
-msgid "ERROR: Can't set up theme."
-msgstr "ERRO: Impossível configurar tema."
-
-msgid "Error"
-msgstr "Erro"
-
-msgid "Error !"
-msgstr "Erro !"
-
-msgid "Error 002 fix"
-msgstr "Correcção Erro 002"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "Erro ao ler o Disco"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "Erro na transferência de dados."
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "Erro..."
-
-msgid "Error:"
-msgstr "Erro:"
-
-msgid "Extracting files..."
-msgstr "Extraindo ficheiros..."
-
-msgid "FAT: Use directories"
-msgstr "FAT: Utilizar pastas"
-
-msgid "Failed formating"
-msgstr "Falha ao formatar"
-
-msgid "Failed to extract."
-msgstr "Falha ao extrair ficheiros."
-
-msgid "Failed to open partition"
-msgstr "Falha ao abrir partição"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr "Fev"
-
-msgid "File not found."
-msgstr "Ficheiro não encontrado."
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "Terminando instalação... Ok!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr "Paginação Horizontal"
-
-msgid "Format"
-msgstr "Formatar"
-
-msgid "Formatting, please wait..."
-msgstr "Formatando, por favor aguarde..."
-
-msgid "Free Space"
-msgstr "Espaço Livre"
-
-msgid "Full Shutdown"
-msgstr "Desligar"
-
-msgid "GCT Cheatcodes Path"
-msgstr "Pasta ficheiros GCT"
-
-msgid "GCT File created"
-msgstr "Ficheiro GCT criado"
-
-msgid "GUI Settings"
-msgstr "Definições do Interface"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr "GXtheme.cfg não encontrado em nenhuma sub-pasta."
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "Idioma"
-
-msgid "Game Load"
-msgstr "Carregamento de Jogos"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "Tamanho do Jogo"
-
-msgid "Game Sound Mode"
-msgstr "Definições de Audio Jogo"
-
-msgid "Game Sound Volume"
-msgstr "Volume de Som do Jogo"
-
-msgid "Game is already installed:"
-msgstr "O jogo já está instalado:"
-
-msgid "Game partition"
-msgstr "Partição de Jogos"
-
-msgid "Games"
-msgstr "Jogos"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr "Menú Inicial"
-
-msgid "Homebrew Apps Path"
-msgstr "Pasta Apps Homebrew"
-
-msgid "Homebrew Launcher"
-msgstr "Launcher Homebrew"
-
-msgid "Hour"
-msgstr "Horas"
-
-msgid "How do you want to update?"
-msgstr "O que deseja actualizar?"
-
-msgid "How to Shutdown?"
-msgstr "Como desligar a consola?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "Pressione 1 para ver o URL de onde pode descarregar o ficheiro WiiTDB.zip"
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "A receber ficheiro %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "A receber ficheiro %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "Inicializando Ligação de Rede"
-
-msgid "Insert Disk"
-msgstr "Insira o Disco"
-
-msgid "Insert a Wii Disc!"
-msgstr "Insira um Disco da Wii!"
-
-msgid "Insert an SD-Card to save."
-msgstr "Insira um cartão SD para guardar."
-
-msgid "Insert an SD-Card to use this option."
-msgstr "Insira um cartão SD para usar esta funcionalidade."
-
-msgid "Install"
-msgstr "Instalar"
-
-msgid "Install Error!"
-msgstr "Erro de Instalação!"
-
-msgid "Install a game"
-msgstr "Instalar um jogo"
-
-msgid "Install partitions"
-msgstr "Instalar partições"
-
-msgid "Installing content... Ok!"
-msgstr "Instalando conteúdo... Ok!"
-
-msgid "Installing game:"
-msgstr "Instalando jogo:"
-
-msgid "Installing ticket... Ok!"
-msgstr "Instalando ticket... Ok!"
-
-msgid "Installing title... Ok!"
-msgstr "Instalando título... Ok!"
-
-msgid "Installing wad"
-msgstr "Instalando wad"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "Parece que tem informação que pode ser útil. Por favor envie esta informação à equipa de desenvolvimento."
-
-msgid "Jan"
-msgstr ""
-
-msgid "July"
-msgstr "Jul"
-
-msgid "June"
-msgstr "Jun"
-
-msgid "Keep"
-msgstr "Manter"
-
-msgid "Keyboard"
-msgstr "Teclado"
-
-msgid "Language File"
-msgstr "Idiomas"
-
-msgid "Language change:"
-msgstr "Alteração de idioma:"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "Pasta para o ficheiro de Idioma alterada."
-
-msgid "Load"
-msgstr "Carregar"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "Carregar ficheiro de: %s ?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "Carregar este DOL como DOL alternativo?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "Carregado idioma padrão."
-
-msgid "Loading standard music."
-msgstr "Carregando música padrão."
-
-msgid "Lock Console"
-msgstr "Bloquear Configurações"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr ""
-
-msgid "Mark new games"
-msgstr "Marcar jogos novos"
-
-msgid "May"
-msgstr "Mai"
-
-msgid "Missing files"
-msgstr "Ficheiros em falta"
-
-msgid "Mount DVD drive"
-msgstr "Montar Unidade de DVD"
-
-msgid "Music Loop Mode"
-msgstr "Modo de Repetição"
-
-msgid "Music Volume"
-msgstr "Volume Música"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "Novo Disco Detectado"
-
-msgid "No"
-msgstr "Não"
-
-msgid "No Cheatfile found"
-msgstr "Ficheiro de truques não encontrado"
-
-msgid "No DOL file found on disc."
-msgstr "Não foi encontrado nenhum ficheiro DOL no disco"
-
-msgid "No SD-Card inserted!"
-msgstr "Cartão SD não inserido!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "Não foram seleccionados truques"
-
-msgid "No data could be read."
-msgstr "Não foi possível ler dados."
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "Nenhum ficheiro em falta!"
-
-msgid "No new updates."
-msgstr "Não existem novas actualizações."
-
-msgid "No themes found on the site."
-msgstr "Nenhum tema encontrado no site."
-
-msgid "Not a WAD file."
-msgstr "Não é um ficheiro WAD."
-
-msgid "Not a Wii Disc"
-msgstr "Não é um Disco da Wii"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "Não há memória livre suficiente."
-
-msgid "Not enough free space!"
-msgstr "Não há espaço livre suficiente!"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "Formato não suportado!"
-
-msgid "Nov"
-msgstr ""
-
-msgid "OFF"
-msgstr "Desligado"
-
-msgid "OK"
-msgstr ""
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "Out"
-
-msgid "Official Site:"
-msgstr "Site Oficial:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "Controlo Parental"
-
-msgid "Partition"
-msgstr "Partição"
-
-msgid "Password"
-msgstr ""
-
-msgid "Password Changed"
-msgstr "Password Alterada"
-
-msgid "Password has been changed"
-msgstr "A Password foi alterada"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "Copie para o seu browser de Internet para descarregar o WiiTDB.zip"
-
-msgid "Patch Country Strings"
-msgstr "Patch Jogos Importados"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "Escolher da lista"
-
-msgid "Play Count"
-msgstr "Vezes jogadas"
-
-msgid "Play Next"
-msgstr "Próxima"
-
-msgid "Play Previous"
-msgstr "Anterior"
-
-msgid "Playing Music:"
-msgstr "Reproduzindo:"
-
-msgid "Please wait..."
-msgstr "Por favor aguarde..."
-
-msgid "Power off the Wii"
-msgstr "Desligar a Wii"
-
-msgid "Prompts Buttons"
-msgstr "Mensagens/Botões"
-
-msgid "Published by"
-msgstr "Publicado por"
-
-msgid "Quick Boot"
-msgstr "Arranque Rápido"
-
-msgid "Reading WAD data... Ok!"
-msgstr "Lendo dados do WAD... Ok!"
-
-msgid "Receiving file from:"
-msgstr "Recebendo ficheiro de:"
-
-msgid "Released"
-msgstr "Lançamento"
-
-msgid "Reload SD"
-msgstr "Actualizar do cartão SD"
-
-msgid "Remove update"
-msgstr "Remover actualização"
-
-msgid "Rename Game on WBFS"
-msgstr "Alterar nome do jogo (WBFS)"
-
-msgid "Reset BG Music"
-msgstr "Repor Música de Fundo"
-
-msgid "Reset Playcounter"
-msgstr "Limpar Contagem"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "A Wii irá reiniciar"
-
-msgid "Return"
-msgstr "Voltar"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "Voltar ao Menu da Wii"
-
-msgid "Rumble"
-msgstr "Vibração"
-
-msgid "SFX Volume"
-msgstr "Volume Efeitos"
-
-msgid "Save"
-msgstr "Gravar"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "Gravar lista de Jogos para"
-
-msgid "Saved"
-msgstr "Gravado"
-
-msgid "Screensaver"
-msgstr "Protecção de ecrã"
-
-msgid "Select"
-msgstr "Seleccionar"
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "Seleccionar o DOL"
-
-msgid "Sept"
-msgstr "Set"
-
-msgid "Set Search-Filter"
-msgstr "Filtro de pesquisa"
-
-msgid "Settings"
-msgstr "Configurações"
-
-msgid "Shutdown System"
-msgstr "Desligar"
-
-msgid "Shutdown to Idle"
-msgstr "Standby"
-
-msgid "Sort alphabetically"
-msgstr "Ordenar por ordem alfabética"
-
-msgid "Sort by rank"
-msgstr "Ordenar por classificação"
-
-msgid "Sort order by most played"
-msgstr "Ordenar por número de vezes jogadas"
-
-msgid "Sound"
-msgstr "Audio"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "Agradecimentos especiais para:"
-
-msgid "Success"
-msgstr "Exito"
-
-msgid "Success:"
-msgstr "Sucesso:"
-
-msgid "Successfully Saved"
-msgstr "Gravado com Sucesso"
-
-msgid "Successfully Updated"
-msgstr "Actualização Concluída"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr "Actualizado com sucesso graças a www.techjawa.com"
-
-msgid "Successfully deleted:"
-msgstr "Eliminado com Sucesso:"
-
-msgid "Successfully extracted theme."
-msgstr "Tema extraído com sucesso."
-
-msgid "Successfully installed:"
-msgstr "Instalado com Sucesso:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "Pasta Dicas"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "A pasta não existe, pretende criá-la?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr "Pasta Download Temas"
-
-msgid "Theme Downloader"
-msgstr "Descarregar de Temas"
-
-msgid "Theme Path"
-msgstr "Pasta Temas"
-
-msgid "Theme Title:"
-msgstr "Título do Tema:"
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "Tempo restante:"
-
-msgid "Title Launcher"
-msgstr "Laucher de Títulos"
-
-msgid "Titles from WiiTDB"
-msgstr "Títulos do WiiTDB"
-
-msgid "Tooltips"
-msgstr "Dicas"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr "A transferência falhou."
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "Dispositivo USB não encontrado"
-
-msgid "USB Loader GX is protected"
-msgstr "O USB Loader GX está bloqueado"
-
-msgid "Uninstall"
-msgstr "Desinstalar"
-
-msgid "Uninstall Game"
-msgstr "Desinstalar jogo"
-
-msgid "Uninstall Menu"
-msgstr "Menu de Desinstalação"
-
-msgid "Uninstalling wad"
-msgstr "Desinstalando wad"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "Desbloquear configuração antes de usar esta opção."
-
-msgid "Unsupported format, try to extract manually."
-msgstr "Formato não suportado, tente extrair manualmente."
-
-msgid "Update"
-msgstr "Verificar Actualizações"
-
-msgid "Update All"
-msgstr "Actualizar Tudo"
-
-msgid "Update DOL"
-msgstr "Actualizar DOL"
-
-msgid "Update Files"
-msgstr "Actualizar ficheiros"
-
-msgid "Update Path"
-msgstr "Pasta Actualizações"
-
-msgid "Update all Language Files"
-msgstr "Actualizar todos os ficheiros de Idioma"
-
-msgid "Update failed"
-msgstr "Erro ao actualizar"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "Actualizando ficheiros de Idioma:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "Ficheiro ZIP instalado na pasta do Homebrew."
-
-msgid "VIDTV Patch"
-msgstr "Patch VIDTV"
-
-#, c-format
-msgid "Version: %s"
-msgstr "Versão: %s"
-
-msgid "Video Mode"
-msgstr "Modo de Vídeo"
-
-msgid "WIP Patches Path"
-msgstr "Pasta Patches WIP"
-
-msgid "Waiting for USB Device"
-msgstr "Aguardando pelo Dispositivo USB"
-
-msgid "Waiting..."
-msgstr "Aguardando..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "Que componente deseja actualizar?"
-
-msgid "WiFi Features"
-msgstr "Rede sem fios"
-
-msgid "Wii Menu"
-msgstr "Menu da Wii"
-
-msgid "Wii Settings"
-msgstr "Configuração da Wii"
-
-msgid "WiiTDB Files"
-msgstr "WiiTDB"
-
-msgid "WiiTDB Path"
-msgstr "Pasta WiiTDB"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr "Iluminação Leitor"
-
-msgid "Wrong Password"
-msgstr "Password Incorrecta"
-
-msgid "Yes"
-msgstr "Sim"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr "Necessita seleccionar ou formatar uma partição"
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "O URL foi guardado em %sWiiTDB_URL.txt."
-
-msgid "and translaters for language files updates"
-msgstr "e aos tradutores pela actualização dos idiomas"
-
-msgid "available"
-msgstr "disponível"
-
-msgid "does not exist!"
-msgstr "não existe!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "não existe! Carregando jogo sem truques."
-
-msgid "files left"
-msgstr "ficheiros restantes"
-
-msgid "files not found on the server!"
-msgstr "ficheiros não encontrados no servidor!"
-
-msgid "for FAT/NTFS support"
-msgstr "pelo suporte FAT/NTFS"
-
-msgid "for Ocarina"
-msgstr "pelo Ocarina"
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "por WiiTDB e alojar img. capas / discos"
-
-msgid "for diverse patches"
-msgstr "por diversos patches"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "pela sua espectacular ferramenta LibWiiGui"
-
-msgid "for hosting the themes"
-msgstr "por alojar os temas"
-
-msgid "for hosting the update files"
-msgstr "por alojar actualizações"
-
-msgid "for the USB Loader source"
-msgstr "pelo código do USB Loader"
-
-msgid "formatted!"
-msgstr "formatado!"
-
-msgid "free"
-msgstr "livres"
-
-msgid "not set"
-msgstr "não definido"
-
-msgid "of"
-msgstr "de"
-
-msgid "seconds left"
-msgstr "segundos restantes"
-
-#~ msgid "Install 1:1 Copy"
-#~ msgstr "Instalar Cópia 1:1"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (Todos)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (Crianças 7+)"
-
-#~ msgid "1 hour"
-#~ msgstr "1 hora"
-
-#~ msgid "10 min"
-#~ msgstr "10 minutos"
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (Adolescente 12+)"
-
-#~ msgid "20 min"
-#~ msgstr "20 minutos"
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (Adulto 16+)"
-
-#~ msgid "3 min"
-#~ msgstr "3 minutos"
-
-#~ msgid "30 min"
-#~ msgstr "30 minutos"
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (Adultos 18+)"
-
-#~ msgid "5 min"
-#~ msgstr "5 minutos"
-
-#~ msgid "An Error occured"
-#~ msgstr "Ocurreu um Erro"
-
-#~ msgid "Anti"
-#~ msgstr "Anti"
-
-#~ msgid "Are you sure you want to enable Parent Control?"
-#~ msgstr "Tem a certeza que pretende activar o Controlo Parental?"
-
-#~ msgid "AutoPatch"
-#~ msgstr "Patch automático"
-
-#~ msgid "Both"
-#~ msgstr "Ambos"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "Procurando Actualizações"
-
-#~ msgid "Console Default"
-#~ msgstr "Predefinição Consola"
-
-#~ msgid "Customs/Original"
-#~ msgstr "Alternativas/Originais"
-
-#~ msgid "Disc Default"
-#~ msgstr "Predefinição Disco"
-
-#~ msgid "DiskFlip"
-#~ msgstr "Voltar Disco"
-
-#~ msgid "Downloading"
-#~ msgstr "Descarregando"
-
-#~ msgid "Dutch"
-#~ msgstr "Holandês"
-
-#~ msgid "English"
-#~ msgstr "Inglês"
-
-#~ msgid "French"
-#~ msgstr "Francês"
-
-#~ msgid "GAMEID_Gamename"
-#~ msgstr "IDJOGO_NomeJogo"
-
-#~ msgid "Game ID"
-#~ msgstr "ID do Jogo"
-
-#~ msgid "Game Region"
-#~ msgstr "Região"
-
-#~ msgid "Gamename [GAMEID]"
-#~ msgstr "NomeJogo [IDJOGO]"
-
-#~ msgid "German"
-#~ msgstr "Alemão"
-
-#~ msgid "Invalid PIN code"
-#~ msgstr "PIN inválido"
-
-#~ msgid "Italian"
-#~ msgstr "Italiano"
-
-#~ msgid "Japanese"
-#~ msgstr "Japonês"
-
-#~ msgid "Korean"
-#~ msgstr "Coreano"
-
-#~ msgid "Left"
-#~ msgstr "Esquerda"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "Igual ao Menu da Wii"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "Carregar do SD/USB"
-
-#~ msgid "Locked"
-#~ msgstr "Bloqueado"
-
-#~ msgid "Loop Directory"
-#~ msgstr "Repetir Pasta"
-
-#~ msgid "Loop Music"
-#~ msgstr "Repetir Música"
-
-#~ msgid "Loop Sound"
-#~ msgstr "Repetir Sons"
-
-#~ msgid "Neither"
-#~ msgstr "Nenhum"
-
-#~ msgid "Next"
-#~ msgstr "Próximo"
-
-#~ msgid "None"
-#~ msgstr "Nenhum"
-
-#~ msgid "Normal"
-#~ msgstr "Normal"
-
-#~ msgid "ON"
-#~ msgstr "Ligado"
-
-#~ msgid "Only Customs"
-#~ msgstr "Apenas Alternativas"
-
-#~ msgid "Only Original"
-#~ msgstr "Apenas Originais"
-
-#~ msgid "Only for Install"
-#~ msgstr "Apenas na instalação"
-
-#~ msgid "Original/Customs"
-#~ msgstr "Originais/Alternativas"
-
-#~ msgid "Parental Control disabled"
-#~ msgstr "Controlo Parental inactivo"
-
-#~ msgid "Play Once"
-#~ msgstr "Tocar uma vez"
-
-#~ msgid "Prev"
-#~ msgstr "Anterior"
-
-#~ msgid "Random Directory Music"
-#~ msgstr "Pasta de Música Aleatória"
-
-#~ msgid "Right"
-#~ msgstr "Direita"
-
-#~ msgid "SChinese"
-#~ msgstr "Chinês Simplificado"
-
-#~ msgid "Sound+BGM"
-#~ msgstr "Efeitos+Musica"
-
-#~ msgid "Sound+Quiet"
-#~ msgstr "Efeitos+Silêncio"
-
-#~ msgid "Spanish"
-#~ msgstr "Espanhol"
-
-#~ msgid "System Default"
-#~ msgstr "Predefinição Sistema"
-
-#~ msgid "TChinese"
-#~ msgstr "Chinês Tradicional"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "O ficheiro wad foi instalado mas não foi possível eliminá-lo do cartão SD."
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "A instalação do wad falhou com o seguinte erro: %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "Não é possível abrir o ficheiro wad descarregado (%s)."
-
-#~ msgid "Unlock Parental Control"
-#~ msgstr "Desbloquear Controlo Parental"
-
-#~ msgid "Unlocked"
-#~ msgstr "Desbloqueado"
-
-#~ msgid "Update to"
-#~ msgstr "Actualizando para"
-
-#~ msgid "Updating"
-#~ msgstr "Actualizando"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "Actualizando ficheiros de Idioma..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "Actualizando WiiTDB.zip"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "Correcção 16:9"
-
-#~ msgid "You don't have Parental Control enabled. If you wish to use Parental Control, enable it in the Wii Settings."
-#~ msgstr "O Controlo Parental não está activo. Se deseja utilizar o Controlo Parental active-o na configuração da Wii (Wii Settings)."
-
-#~ msgid "%s : %s May not boot correctly if your System Menu is not up to date."
-#~ msgstr "%s : %s Pode não carregar correctamente se o System Menu estiver desactualizado."
-
-#~ msgid "BCA Codes Path changed"
-#~ msgstr "Pasta de Códigos BCA alterada"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "Menu da Wii"
-
-#~ msgid "Channels"
-#~ msgstr "Canais"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "Verificando imagens existentes"
-
-#~ msgid "Confirm"
-#~ msgstr "Confirmar"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "Não foi encontrada nenhuma partição WBFS."
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "Não foi possível abrir a partição WBFS"
-
-#~ msgid "Could not read the disc."
-#~ msgstr "Não foi possível ler o disco."
-
-#~ msgid "Could not set USB."
-#~ msgstr "Não foi possível configurar a porta USB."
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "Pasta das Capas alterada"
-
-#~ msgid "DOL path changed"
-#~ msgstr "Pasta DOL alterada"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "Pasta das Imagens Disco Alterada"
-
-#~ msgid "Display favorites"
-#~ msgstr "Mostrar favoritos"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "Deseja tentar novamente dentro de 30 segs?"
-
-#~ msgid "Enable Parental Control"
-#~ msgstr "Activar Controlo Parental"
-
-#~ msgid "Force"
-#~ msgstr "Forçar"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "Pasta ficheiros GCT alterada"
-
-#~ msgid "Hermes CIOS"
-#~ msgstr "CIOS Hermes"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "Pasta Apps Homebrew alterada"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "Insira um cartão SD para descarregar as imagens."
-
-#~ msgid "Install not possible"
-#~ msgstr "Não é possível instalar"
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "O mais provável é que o tamanho não seja divisível por 4."
-
-#~ msgid "Network init error"
-#~ msgstr "Erro ao inicializar ligação de rede"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr "No não foram encontrados nenhuns ficheiros .dol ou .elf"
-
-#~ msgid "No Favorites"
-#~ msgstr "Lista de favoritos vazia"
-
-#~ msgid "No USB Device"
-#~ msgstr "Nenhum dispositivo USB encontrado"
-
-#~ msgid "No USB Device found."
-#~ msgstr "Nenhum dispositivo USB encontrado."
-
-#~ msgid "No WBFS or FAT/NTFS partition found"
-#~ msgstr "Nenhuma partição WBFS ou FAT/NTFS encontrada"
-
-#~ msgid "Normal Covers"
-#~ msgstr "Capas Normais"
-
-#~ msgid "Not Found"
-#~ msgstr "Não encontrado"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "Não é um ficheiro DOL/ELF válido."
-
-#~ msgid "Reset to standard BGM?"
-#~ msgstr "Repor Musica de Fundo predefinida?"
-
-#~ msgid "Save Failed"
-#~ msgstr "Falha ao Gravar"
-
-#~ msgid "Selected DOL"
-#~ msgstr "DOL Seleccionado"
-
-#~ msgid "Standard"
-#~ msgstr "Standard"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "Pasta de Dicas alterada"
-
-#~ msgid "Theme Download Path changed"
-#~ msgstr "Pasta para Download de Temas Alterada"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "Pasta dos Temas alterada"
-
-#~ msgid "USB Loader GX will only run with Hermes CIOS rev 4! Please make sure you have revision 4 installed!"
-#~ msgstr "O USB Loader GX só suporta o CIOS Hermes revisão 4! Verifique se esta é a revisão que tem instalada!"
-
-#~ msgid "Update Path changed."
-#~ msgstr "A pasta das actualizações foi alterada."
-
-#~ msgid "WIP Patches Path changed"
-#~ msgstr "Pasta dos Patches WIP alterada"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "Pasta WiiTDB alterada."
-
-#~ msgid "You are about to delete "
-#~ msgstr "Vais eliminar "
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "Está a tentar visualizar os favoritos mas não existe nenhum seleccionado."
-
-#~ msgid "You are using NTFS filesystem. Due to possible write errors to a NTFS partition, installing a game is not possible."
-#~ msgstr "Está a utilizar um sistema de ficheiros NTFS. Devido à possibilidade de ocorrerem erros na gravação não será possível instalar jogos."
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "Tentou carregar uma imagem corrompida"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "não existe! Estragaste algo, idiota."
-
-#~ msgid "file left"
-#~ msgstr "ficheiro restante"
diff --git a/Languages/russian.lang b/Languages/russian.lang
deleted file mode 100644
index b60178bb..00000000
--- a/Languages/russian.lang
+++ /dev/null
@@ -1,1537 +0,0 @@
-# USB Loader GX language source file.
-# russian.lang - r885
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2009-10-01 01:00+0200\n"
-"Last-Translator: nikolai_ca\n"
-"Language-Team: Kir, alendit, nikolai_ca\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr " Wad сохранен как:"
-
-msgid " could not be downloaded."
-msgstr " не мог быть загружен"
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr " был сохранен. Текст не был проверен. Некоторые части кода могут не работать успешно друг с другом. При обнаружении проблемы, загрузить текст в текстовый редактор чтобы получить дополнительную информацию."
-
-msgid " is not on the server."
-msgstr " не найден на сервере"
-
-msgid "2D Cover Path"
-msgstr "Путь к 2D обложкам"
-
-msgid "3D Cover Path"
-msgstr "Путь к 3D обложкам"
-
-msgid "3D Covers"
-msgstr "3D Обложки"
-
-msgid ">> Deleting tickets..."
-msgstr ">> Удаление тикетов...."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> Удаление тикетов...ОШИБКА! "
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> Удаление тикетов...Успешно! "
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> Удаление тайтла ...ОШИБКА! "
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> Удаление тайтла ...Успешно!"
-
-msgid ">> Deleting title contents..."
-msgstr ">> Удаление содержимого тайтла..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> Удаление содержимого тайтла...ОШИБКА!"
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> Удаление содержимого тайтла...Успешно!"
-
-msgid ">> Deleting title..."
-msgstr ">> Удаление тайтла..."
-
-msgid ">> Finishing installation..."
-msgstr ">> Заканчиваю установку..."
-
-msgid ">> Installing content #"
-msgstr ">>Установка контента №"
-
-msgid ">> Installing ticket..."
-msgstr ">>Установка тикета..."
-
-msgid ">> Installing title..."
-msgstr ">>Установка тайтла"
-
-msgid ">> Reading WAD data..."
-msgstr ">> Чтение данных WAD..."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> Чтение данных WAD...ОШИБКА!"
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> Чтение данных WAD...Успешно!"
-
-msgid "AUTO"
-msgstr "АВТО"
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr "Все разделы"
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "Все функции USB Loader GX разблокированы."
-
-msgid "Alternate DOL"
-msgstr "Альтернативный DOL"
-
-msgid "App Language"
-msgstr "Язык приложения"
-
-msgid "Apr"
-msgstr "Апр"
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "Вы уверены ?"
-
-msgid "Aug"
-msgstr "Авг"
-
-msgid "Author:"
-msgstr "Автор:"
-
-msgid "AutoInit Network"
-msgstr "АвтоИнициализация Сети"
-
-msgid "BCA Codes Path"
-msgstr "Путь к кодам BCA"
-
-msgid "BETA revisions"
-msgstr "BETA-версии"
-
-msgid "Back"
-msgstr "Назад"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "Вернуться в HBC или меню Wii"
-
-msgid "Back to Loader"
-msgstr "Вернуться в загрузчик"
-
-msgid "Backgroundmusic"
-msgstr "Фоновая музыка"
-
-msgid "Big thanks to:"
-msgstr "Большое спасибо:"
-
-msgid "Block IOS Reload"
-msgstr "Блокировать перезагрузку IOS"
-
-msgid "Boot/Standard"
-msgstr "Загрузка/Стандарт"
-
-msgid "Boot?"
-msgstr "Загрузить?"
-
-msgid "Can't be formatted"
-msgstr "Невозможно отформатировать"
-
-msgid "Can't create directory"
-msgstr "Не могу создать папку"
-
-msgid "Can't create file"
-msgstr "Не могу создать файл"
-
-msgid "Can't delete:"
-msgstr "Невозможно удалить:"
-
-msgid "Cancel"
-msgstr "Отмена"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr ""
-
-msgid "Cheatfile is blank"
-msgstr "Файл с читами пустой"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "Нажми, чтобы скачать обложки"
-
-msgid "Click to change game ID"
-msgstr "Нажмите чтобы изменить ID игры"
-
-msgid "Clock"
-msgstr "Часы"
-
-msgid "Close"
-msgstr "Закрыть"
-
-msgid "Code Download"
-msgstr "Скачивание кода"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "Создано: %s"
-
-msgid "Coding:"
-msgstr "Создание:"
-
-msgid "Connection lost..."
-msgstr "Связь потеряна..."
-
-msgid "Console"
-msgstr "Консоль"
-
-msgid "Console Locked"
-msgstr "Консоль заблокирована"
-
-msgid "Console should be unlocked to modify it."
-msgstr "Для изменения консоль должна быть разблокирована."
-
-msgid "Continue to install game?"
-msgstr "Продолжить установку игры ?"
-
-msgid "Controllevel"
-msgstr "Уровень контроля"
-
-msgid "Correct Password"
-msgstr "Правильный пароль"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "Не могу создать GCT файл"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "Не могу запустить модуль DIP!"
-
-msgid "Could not initialize network!"
-msgstr "Не могу инициализировать сеть!"
-
-msgid "Could not open Disc"
-msgstr "Не могу прочесть диск"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "Не могу сохранить."
-
-msgid "Cover Download"
-msgstr "Скачать обложку"
-
-msgid "Create"
-msgstr "Создать"
-
-msgid "Credits"
-msgstr "Об авторах"
-
-msgid "Custom Paths"
-msgstr "Изменение путей"
-
-msgid "DOL Path"
-msgstr "Путь к DOL"
-
-msgid "Dec"
-msgstr "Дек"
-
-msgid "Default"
-msgstr "По умолчанию"
-
-msgid "Default Gamesettings"
-msgstr "Установки игры по умолчанию"
-
-msgid "Default Settings"
-msgstr "Установки по умолчанию"
-
-msgid "Delete"
-msgstr "Удалить"
-
-msgid "Delete ?"
-msgstr "Удалить ?"
-
-msgid "Delete Cheat GCT"
-msgstr "Удалить чит-код GCT"
-
-msgid "Delete Cheat TXT"
-msgstr "Удалить чит-код TXT"
-
-msgid "Delete Cover Artwork"
-msgstr "Удалить обложку"
-
-msgid "Delete Disc Artwork"
-msgstr "Удалить картинку диска"
-
-msgid "Design:"
-msgstr "Дизайн:"
-
-msgid "Developed by"
-msgstr "Создано "
-
-msgid "Directory does not exist!"
-msgstr "Каталог не существует!"
-
-msgid "Disc Artwork Download"
-msgstr "Загрузка изображений диска"
-
-msgid "Disc Artwork Path"
-msgstr "Путь к изображениям дисков"
-
-msgid "Disc Images"
-msgstr "Изображения дисков"
-
-msgid "Display"
-msgstr "Отображать"
-
-msgid "Display as a carousel"
-msgstr "Покаказть в виде карусели"
-
-msgid "Display as a grid"
-msgstr "Показать в виде сетки"
-
-msgid "Display as a list"
-msgstr "Показать в виде списка"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "Вы хотите удалить:"
-
-msgid "Do you want to apply it now?"
-msgstr "Вы действительно хотите использовать это?"
-
-msgid "Do you want to change language?"
-msgstr "Вы хотите сменить язык ?"
-
-msgid "Do you want to download this theme?"
-msgstr "Вы действительно хотите загрузить эту тему?"
-
-msgid "Do you want to format:"
-msgstr "Вы хотите отформатировать:"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "Вы хотите использовать DOL, который считается правильным?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "Вы действительно хотите обновить/загрузить все языковые файлы?"
-
-msgid "Done!"
-msgstr "Готово!"
-
-msgid "Download"
-msgstr "Загрузка"
-
-msgid "Download Boxart image?"
-msgstr "Скачать обложку диска?"
-
-msgid "Download Discart image?"
-msgstr "Скачать изображение диска ?"
-
-msgid "Download Now"
-msgstr "Скачать сейчас"
-
-msgid "Download failed."
-msgstr "Загрузка завершилась с ошибкой."
-
-msgid "Download finished"
-msgstr "Скачивание завершено"
-
-msgid "Download request failed."
-msgstr "Запрос на загрузку завершился с ошибкоа."
-
-msgid "Downloading Page List:"
-msgstr "Загружается список страниц:"
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "Скачиваю файл:"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr "Загружается картинка:"
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "ОШИБКА"
-
-msgid "ERROR:"
-msgstr "ОШИБКА:"
-
-msgid "ERROR: Can't set up theme."
-msgstr "ОШИБКА: Не удалось установить тему."
-
-msgid "Error"
-msgstr "Ошибка"
-
-msgid "Error !"
-msgstr "Ошибка !"
-
-msgid "Error 002 fix"
-msgstr "Фикс ошибки 002"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "Ошибка чтения диска"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "Ошибка при передаче данных."
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "Ошибка..."
-
-msgid "Error:"
-msgstr "Ошибка:"
-
-msgid "Extracting files..."
-msgstr "Распаковка файлов..."
-
-msgid "FAT: Use directories"
-msgstr "FAT: Использовать каталоги"
-
-msgid "Failed formating"
-msgstr "Форматирование не удалось"
-
-msgid "Failed to extract."
-msgstr "Не удалось распаковать."
-
-msgid "Failed to open partition"
-msgstr "Не удалось открыть раздел"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr "Фев"
-
-msgid "File not found."
-msgstr "Файл не найден"
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "Завершение установки... ОК!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr "Flip-X"
-
-msgid "Format"
-msgstr "Форматировать"
-
-msgid "Formatting, please wait..."
-msgstr "Форматирую, пожалуйста подождите..."
-
-msgid "Free Space"
-msgstr "Свободное пространство"
-
-msgid "Full Shutdown"
-msgstr "Полное отключение"
-
-msgid "GCT Cheatcodes Path"
-msgstr "Путь к читам"
-
-msgid "GCT File created"
-msgstr "Файл GCT создан"
-
-msgid "GUI Settings"
-msgstr "Настройки интерфейса"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr "GXtheme.cfg не найден ни в одном каталоге."
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "Язык"
-
-msgid "Game Load"
-msgstr "загрузка игры"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "Размер игры"
-
-msgid "Game Sound Mode"
-msgstr "Режим звука в игре"
-
-msgid "Game Sound Volume"
-msgstr "Громкость звука в игре"
-
-msgid "Game is already installed:"
-msgstr "Игра уже установлена:"
-
-msgid "Game partition"
-msgstr "Раздел игры"
-
-msgid "Games"
-msgstr "Игры"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr "Домашнее Меню"
-
-msgid "Homebrew Apps Path"
-msgstr "Путь к хоумбрю-программам"
-
-msgid "Homebrew Launcher"
-msgstr "Загрузчик хоумбрю"
-
-msgid "Hour"
-msgstr "Час"
-
-msgid "How do you want to update?"
-msgstr "Что вы хотите обновить ?"
-
-msgid "How to Shutdown?"
-msgstr "Способ отключения?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "Если у вас нет сети WiFi, нажмите 1 чтобы получить URL для доступа к вашему WiiTDB.ZIP"
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "Входящий файл размером в %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "Входящий файл размером в %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "Инициализирую сеть"
-
-msgid "Insert Disk"
-msgstr "Вставьте диск"
-
-msgid "Insert a Wii Disc!"
-msgstr "Вставьте диск Wii!"
-
-msgid "Insert an SD-Card to save."
-msgstr "Для сохранения вставьте SD карту."
-
-msgid "Insert an SD-Card to use this option."
-msgstr "Для использования этой функции нужна SD карта"
-
-msgid "Install"
-msgstr "Установка"
-
-msgid "Install Error!"
-msgstr "Ошибка установки!"
-
-msgid "Install a game"
-msgstr "Установить игру"
-
-msgid "Install partitions"
-msgstr "Установить разделы"
-
-msgid "Installing content... Ok!"
-msgstr "Установка контента... ОК!"
-
-msgid "Installing game:"
-msgstr "Устанавливаю игру:"
-
-msgid "Installing ticket... Ok!"
-msgstr "Установка тикета... ОК!"
-
-msgid "Installing title... Ok!"
-msgstr "Установка тайтла... ОК!"
-
-msgid "Installing wad"
-msgstr "Установка WAD"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "Возможно что у Вас есть информация полезная нам. Пожалуйста передайте эту информацию команде разработчиков."
-
-msgid "Jan"
-msgstr "Янв"
-
-msgid "July"
-msgstr "Июл"
-
-msgid "June"
-msgstr "Июн"
-
-msgid "Keep"
-msgstr "Сохранить"
-
-msgid "Keyboard"
-msgstr "Клавиатура"
-
-msgid "Language File"
-msgstr "Языковой файл"
-
-msgid "Language change:"
-msgstr "Смена языка:"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "Путь к языкам изменен"
-
-msgid "Load"
-msgstr "Загрузить"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "Загрузить файл из %s ?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "Загрузить этот DOL в качестве альтернативного ?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "Загрузка языка по умолчанию"
-
-msgid "Loading standard music."
-msgstr "Загрузка стандартной музыки"
-
-msgid "Lock Console"
-msgstr "Заблокировать консоль"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr "Мар"
-
-msgid "Mark new games"
-msgstr "Отметить новые игры"
-
-msgid "May"
-msgstr "Май"
-
-msgid "Missing files"
-msgstr "Отсутствующие файлы"
-
-msgid "Mount DVD drive"
-msgstr "Монтировать DVD"
-
-msgid "Music Loop Mode"
-msgstr ""
-
-msgid "Music Volume"
-msgstr "Громкость"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "Обнаружен новый диск"
-
-msgid "No"
-msgstr "Нет"
-
-msgid "No Cheatfile found"
-msgstr "Не найден файл с читами"
-
-msgid "No DOL file found on disc."
-msgstr "DOL-файл не найден на диске."
-
-msgid "No SD-Card inserted!"
-msgstr "SD карта не вставлена!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "Не было выбрано ни одного чит-кода"
-
-msgid "No data could be read."
-msgstr "Невозможно считать данные."
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "Файл не найден!"
-
-msgid "No new updates."
-msgstr "Нет обновлений"
-
-msgid "No themes found on the site."
-msgstr "На сайте не найдено ни одной темы"
-
-msgid "Not a WAD file."
-msgstr ""
-
-msgid "Not a Wii Disc"
-msgstr "Это не диск Wii"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "Недостаточно памяти"
-
-msgid "Not enough free space!"
-msgstr "Не хватает свободного места!"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "Формат не поддерживается"
-
-msgid "Nov"
-msgstr "Ноя"
-
-msgid "OFF"
-msgstr "ВЫКЛ"
-
-msgid "OK"
-msgstr "OK"
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "Окт"
-
-msgid "Official Site:"
-msgstr "Оф. сайт:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "Родительский Контроль"
-
-msgid "Partition"
-msgstr "Раздел"
-
-msgid "Password"
-msgstr "Пароль"
-
-msgid "Password Changed"
-msgstr "Пароль изменен"
-
-msgid "Password has been changed"
-msgstr "Пароль был изменен"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "Скопируйте это в Ваш браузер чтобы получить Ваш WiiTDB.zip"
-
-msgid "Patch Country Strings"
-msgstr "Патчить строки страны"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "Выберите из списка"
-
-msgid "Play Count"
-msgstr "Запущено раз"
-
-msgid "Play Next"
-msgstr ""
-
-msgid "Play Previous"
-msgstr ""
-
-msgid "Playing Music:"
-msgstr ""
-
-msgid "Please wait..."
-msgstr "Пожалуйста подождите..."
-
-msgid "Power off the Wii"
-msgstr "Выключить Wii"
-
-msgid "Prompts Buttons"
-msgstr "Кнопки приглашения"
-
-msgid "Published by"
-msgstr "Опубликовано: "
-
-msgid "Quick Boot"
-msgstr "Быстрая загрузка"
-
-msgid "Reading WAD data... Ok!"
-msgstr "Чтение данных WAD... ОК!"
-
-msgid "Receiving file from:"
-msgstr "Получение файлы из:"
-
-msgid "Released"
-msgstr "Выпущено:"
-
-msgid "Reload SD"
-msgstr "Перечитать SD карту"
-
-msgid "Remove update"
-msgstr ""
-
-msgid "Rename Game on WBFS"
-msgstr "Переименовать игры в WBFS"
-
-msgid "Reset BG Music"
-msgstr ""
-
-msgid "Reset Playcounter"
-msgstr "Сбросить счетчик запусков"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "Перезапускаю..."
-
-msgid "Return"
-msgstr "Вернуться"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "Вернуться в меню Wii"
-
-msgid "Rumble"
-msgstr "Вибрация"
-
-msgid "SFX Volume"
-msgstr "Громкость эффектов"
-
-msgid "Save"
-msgstr "Сохранить"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "Сохранить список игр в"
-
-msgid "Saved"
-msgstr "Сохранено"
-
-msgid "Screensaver"
-msgstr "Скринсейвер"
-
-msgid "Select"
-msgstr ""
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "Выберите DOL"
-
-msgid "Sept"
-msgstr "Сен"
-
-msgid "Set Search-Filter"
-msgstr "Установить фильтр для поиска"
-
-msgid "Settings"
-msgstr "Установки"
-
-msgid "Shutdown System"
-msgstr "Выключить систему"
-
-msgid "Shutdown to Idle"
-msgstr "Перевести в режим сна"
-
-msgid "Sort alphabetically"
-msgstr "Сортировать по алфавиту"
-
-msgid "Sort by rank"
-msgstr "Сортировать по популярности"
-
-msgid "Sort order by most played"
-msgstr "Сортировать по частоте проигрывания"
-
-msgid "Sound"
-msgstr "Звук"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "Отдельные благодарности"
-
-msgid "Success"
-msgstr "Успех"
-
-msgid "Success:"
-msgstr "Успех:"
-
-msgid "Successfully Saved"
-msgstr "Успешно сохранено"
-
-msgid "Successfully Updated"
-msgstr "Успешно обновлено"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr ""
-
-msgid "Successfully deleted:"
-msgstr "Успешно удалено:"
-
-msgid "Successfully extracted theme."
-msgstr "Успешно извлечена тема."
-
-msgid "Successfully installed:"
-msgstr "Успешно установлено:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "Путь к TXT читкодам"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "Заданный каталог не существует. Хотите создать его?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr "Путь для загрузки темы"
-
-msgid "Theme Downloader"
-msgstr "Загрузчик тем"
-
-msgid "Theme Path"
-msgstr "Путь к темам"
-
-msgid "Theme Title:"
-msgstr "Заголовок темы:"
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "Осталось времени:"
-
-msgid "Title Launcher"
-msgstr "Загрузчик тайтла"
-
-msgid "Titles from WiiTDB"
-msgstr "Названия из WiiTDB"
-
-msgid "Tooltips"
-msgstr "Подсказки"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr "Передача не удалась."
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "USB устройство не найдено"
-
-msgid "USB Loader GX is protected"
-msgstr "USB Loader GX заблокирован"
-
-msgid "Uninstall"
-msgstr "Деинсталлировать"
-
-msgid "Uninstall Game"
-msgstr "Деинсталлировать игру"
-
-msgid "Uninstall Menu"
-msgstr "Деинсталлировать меню"
-
-msgid "Uninstalling wad"
-msgstr "Деинсталлируется wad"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "Для изменения параметра разблокируйте консоль."
-
-msgid "Unsupported format, try to extract manually."
-msgstr "Формат не поддерживается, попробуйте распаковать самостоятельно."
-
-msgid "Update"
-msgstr "Обновление"
-
-msgid "Update All"
-msgstr "Обновить всё"
-
-msgid "Update DOL"
-msgstr "Обновить DOL"
-
-msgid "Update Files"
-msgstr "Обновить файлы"
-
-msgid "Update Path"
-msgstr "Путь к обновлениям"
-
-msgid "Update all Language Files"
-msgstr "Обновить все языковые файлы"
-
-msgid "Update failed"
-msgstr "Обновление не удалось"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "Обновление языковых файлов:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "Загруженный ZIP-файл установлен в каталог homebrew"
-
-msgid "VIDTV Patch"
-msgstr "Патч VIDTV"
-
-#, c-format
-msgid "Version: %s"
-msgstr "Версия: %s"
-
-msgid "Video Mode"
-msgstr "Видео режим"
-
-msgid "WIP Patches Path"
-msgstr "Путь к патчам QIP"
-
-msgid "Waiting for USB Device"
-msgstr "Ожидание USB устройства"
-
-msgid "Waiting..."
-msgstr "Ожидание..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "Что Вы хотите обновить?"
-
-msgid "WiFi Features"
-msgstr "свойства WiFi"
-
-msgid "Wii Menu"
-msgstr "Меню Wii"
-
-msgid "Wii Settings"
-msgstr "Установки Wii"
-
-msgid "WiiTDB Files"
-msgstr "Файлы WiiTDB"
-
-msgid "WiiTDB Path"
-msgstr "Путь к WiiTDB"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr "Подсветка Wii"
-
-msgid "Wrong Password"
-msgstr "Неверный пароль"
-
-msgid "Yes"
-msgstr "Да"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr ""
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "Ваш URL был сохранен в %sWiiTDB_URL.txt."
-
-msgid "and translaters for language files updates"
-msgstr "и переводчики для обновлений языковых файлов"
-
-msgid "available"
-msgstr "доступно"
-
-msgid "does not exist!"
-msgstr "не существует!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "не существует! Загружаю игру без читов"
-
-msgid "files left"
-msgstr "файлов осталось"
-
-msgid "files not found on the server!"
-msgstr "файлы не найдены на сервере!"
-
-msgid "for FAT/NTFS support"
-msgstr "для поддержки FAT/NTFS"
-
-msgid "for Ocarina"
-msgstr "за Ocarina"
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "за WIITDB и хостинг изображений обложек/дисков"
-
-msgid "for diverse patches"
-msgstr "за различные патчи"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "за отличную утилиту LibWiiGui"
-
-msgid "for hosting the themes"
-msgstr "за хостинг тем"
-
-msgid "for hosting the update files"
-msgstr "за хостинг обновлений"
-
-msgid "for the USB Loader source"
-msgstr "за выпуск и публикацию исходного кода"
-
-msgid "formatted!"
-msgstr "форматирование завершено!"
-
-msgid "free"
-msgstr "свободно"
-
-msgid "not set"
-msgstr "не установлено"
-
-msgid "of"
-msgstr "из"
-
-msgid "seconds left"
-msgstr "секунд осталось"
-
-#~ msgid "Install 1:1 Copy"
-#~ msgstr "Установка копии 1:1"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (Для всех)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (Дети 7+)"
-
-#~ msgid "1 hour"
-#~ msgstr "1 час"
-
-#~ msgid "10 min"
-#~ msgstr "10 мин."
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (Подростки 12+)"
-
-#~ msgid "20 min"
-#~ msgstr "20 мин."
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (Подростки 16+)"
-
-#~ msgid "3 min"
-#~ msgstr "3 мин."
-
-#~ msgid "30 min"
-#~ msgstr "30 мин."
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (Взрослые 18+)"
-
-#~ msgid "5 min"
-#~ msgstr "5 мин."
-
-#~ msgid "An Error occured"
-#~ msgstr "Произошла ошибка"
-
-#~ msgid "Anti"
-#~ msgstr "Анти"
-
-#~ msgid "Are you sure you want to enable Parent Control?"
-#~ msgstr "Вы действительно хотите включить Родительский Контроль?"
-
-#~ msgid "AutoPatch"
-#~ msgstr "Авто Патч"
-
-#~ msgid "Both"
-#~ msgstr "Оба"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "Проверяю обновления"
-
-#~ msgid "Console Default"
-#~ msgstr "По умолчанию (консоль)"
-
-#~ msgid "Customs/Original"
-#~ msgstr "Измененный/Оригинальные"
-
-#~ msgid "Disc Default"
-#~ msgstr "По умолчанию (диск)"
-
-#~ msgid "DiskFlip"
-#~ msgstr "ДискФлип"
-
-#~ msgid "Downloading"
-#~ msgstr "Скачиваю"
-
-#~ msgid "Dutch"
-#~ msgstr "Голландский"
-
-#~ msgid "English"
-#~ msgstr "Английский"
-
-#~ msgid "French"
-#~ msgstr "Французский"
-
-#~ msgid "Game ID"
-#~ msgstr "ID игры"
-
-#~ msgid "Game Region"
-#~ msgstr "Регион игры"
-
-#~ msgid "German"
-#~ msgstr "Немецкий"
-
-#~ msgid "Invalid PIN code"
-#~ msgstr "Неправильный PIN-код"
-
-#~ msgid "Italian"
-#~ msgstr "Итальянский"
-
-#~ msgid "Japanese"
-#~ msgstr "Японский"
-
-#~ msgid "Korean"
-#~ msgstr "Корейский"
-
-#~ msgid "Left"
-#~ msgstr "Налево"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "как SysMenu"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "Загрузка с SD/USB"
-
-#~ msgid "Locked"
-#~ msgstr "Заблокировано"
-
-#~ msgid "Loop Sound"
-#~ msgstr "Зациклить звут"
-
-#~ msgid "Neither"
-#~ msgstr "Ни то, ни другое"
-
-#~ msgid "Next"
-#~ msgstr "Следующий"
-
-#~ msgid "Normal"
-#~ msgstr "Обычный"
-
-#~ msgid "ON"
-#~ msgstr "ВКЛ"
-
-#~ msgid "Only Customs"
-#~ msgstr "Только измененные"
-
-#~ msgid "Only Original"
-#~ msgstr "Только оригинальные"
-
-#~ msgid "Only for Install"
-#~ msgstr "Только при установке"
-
-#~ msgid "Original/Customs"
-#~ msgstr "Измененные/Модифицированные"
-
-#~ msgid "Parental Control disabled"
-#~ msgstr "Родительский Контроль выключен"
-
-#~ msgid "Prev"
-#~ msgstr "Предыдущий"
-
-#~ msgid "Right"
-#~ msgstr "Направо"
-
-#~ msgid "SChinese"
-#~ msgstr "Упрощенный китайский"
-
-#~ msgid "Sound+BGM"
-#~ msgstr "Звук и фоновая музыка"
-
-#~ msgid "Sound+Quiet"
-#~ msgstr "Звук и тишина"
-
-#~ msgid "Spanish"
-#~ msgstr "Испанский"
-
-#~ msgid "System Default"
-#~ msgstr "По умолчанию"
-
-#~ msgid "TChinese"
-#~ msgstr "Традиционный китайский"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "WAD файл установлен, но он не может быть удален с карты SD."
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "Установка WAD не удалась, код ошибки %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "Не могу открыть скачанный WAD (%s)"
-
-#~ msgid "Unlock Parental Control"
-#~ msgstr "Разблокировать Родительский Контроль"
-
-#~ msgid "Unlocked"
-#~ msgstr "Разблокировано"
-
-#~ msgid "Update to"
-#~ msgstr "Обновить до"
-
-#~ msgid "Updating"
-#~ msgstr "обновляю"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "Обновление языковых файлов..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "Обновление WiiTDB.zip"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "Широкоформатный фикс"
-
-#~ msgid "You don't have Parental Control enabled. If you wish to use Parental Control, enable it in the Wii Settings."
-#~ msgstr "У Вас не включен Родительский Контроль. Если вы хотите использовать Родительский Контроль, включите его в установках Wii."
-
-#~ msgid "%s : %s May not boot correctly if your System Menu is not up to date."
-#~ msgstr "%s : %s может не загрузиться правильно если ваше Системное Меню не последней версии"
-
-#~ msgid "BCA Codes Path changed"
-#~ msgstr "Путь к кодам BCA изменен"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "Вернуться в меню Wii"
-
-#~ msgid "Channels"
-#~ msgstr "Каналы"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "Проверка существующей графики"
-
-#~ msgid "Confirm"
-#~ msgstr "Подтвердить"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "Не удалось найти раздел WBFS"
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "Не могу открыть раздел WBFS"
-
-#~ msgid "Could not read the disc."
-#~ msgstr "Не могу прочесть диск"
-
-#~ msgid "Could not set USB."
-#~ msgstr "Не могу настроить USB"
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "Путь к обложкам был изменен."
-
-#~ msgid "DOL path changed"
-#~ msgstr "Путь к DOL изменен"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "Путь к изображениям дисков изменен"
-
-#~ msgid "Display favorites"
-#~ msgstr "Показать закладки"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "Хотите попробовать еще раз на 30 секунд?"
-
-#~ msgid "Enable Parental Control"
-#~ msgstr "Включить Родительский Контроль"
-
-#~ msgid "Force"
-#~ msgstr "Принудительно"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "Путь к читам изменен"
-
-#~ msgid "Hermes CIOS"
-#~ msgstr "Hermes CIOS"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "Путь к хоумбрю-программам изменен"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "Для скачивания изображений вставьте SD карту."
-
-#~ msgid "Install not possible"
-#~ msgstr "Установка невозможна"
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "Размеры картинки не делятся на 4. Поздравляю, блин."
-
-#~ msgid "Network init error"
-#~ msgstr "Ошибка инициализации сети"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr "Не найдены файлы .dol или .elf"
-
-#~ msgid "No Favorites"
-#~ msgstr "Нет избранных"
-
-#~ msgid "No USB Device"
-#~ msgstr "Нет USB устройств"
-
-#~ msgid "No USB Device found."
-#~ msgstr "USB устройств не обнаружено"
-
-#~ msgid "Normal Covers"
-#~ msgstr "Обычные обложки"
-
-#~ msgid "Not Found"
-#~ msgstr "Не найден"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "Не является файлом DOL/ELF"
-
-#~ msgid "Save Failed"
-#~ msgstr "Сохранение не удалось"
-
-#~ msgid "Selected DOL"
-#~ msgstr "Выбранный DOL"
-
-#~ msgid "Standard"
-#~ msgstr "Стандартный"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "Путь к TXT читкодам изменен"
-
-#~ msgid "Theme Download Path changed"
-#~ msgstr "Путь для загрузки темы изменен"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "путь к темам изменён"
-
-#~ msgid "USB Loader GX will only run with Hermes CIOS rev 4! Please make sure you have revision 4 installed!"
-#~ msgstr "USB Loader GX будет работать только с Hermes CIOS rev 4! Пожалуйста убедитесь что у вас установлена версия 4!"
-
-#~ msgid "Update Path changed."
-#~ msgstr "Путь к обновлениям изменен"
-
-#~ msgid "WIP Patches Path changed"
-#~ msgstr "Путь к патчам QIP изменен"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "Путь к WiiTDB изменен"
-
-#~ msgid "You are about to delete "
-#~ msgstr "Вы хотите удалить "
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "Нельзя отобразить избранные, если вы их до этого не выбрали."
-
-#~ msgid "You are using NTFS filesystem. Due to possible write errors to a NTFS partition, installing a game is not possible."
-#~ msgstr "Вы используете файловую систему NTFS. Из-за возможных ошибок записи на раздел NTFS установка игры невозможна."
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "Вы попытались загрузить плохой образ"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "не существует! Ты облажался, идиот."
-
-#~ msgid "file left"
-#~ msgstr "файл остался"
diff --git a/Languages/schinese.lang b/Languages/schinese.lang
deleted file mode 100644
index b1a28711..00000000
--- a/Languages/schinese.lang
+++ /dev/null
@@ -1,1483 +0,0 @@
-# USB Loader GX language source file.
-# schinese.lang - r799
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2009-10-01 01:00+0200\n"
-"Last-Translator: knife.hu kavid\n"
-"Language-Team: kavid\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr "WAD 保存为:"
-
-msgid " could not be downloaded."
-msgstr "不能下载."
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr "已经被保存.内容尚未验证.部分代码可能无法作用.如果你遇到问题,请用文字编辑器打开文本文件以获得更多的信息."
-
-msgid " is not on the server."
-msgstr "不在服务器上"
-
-msgid "2D Cover Path"
-msgstr "2D封面路径"
-
-msgid "3D Cover Path"
-msgstr "3D封面路径"
-
-msgid "3D Covers"
-msgstr "3D 封面"
-
-msgid ">> Deleting tickets..."
-msgstr ">> 删除 tickets..."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> 删除 tickets... 错误!"
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> 删除 tickets... 成功!"
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> 删除 title... 错误!"
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> 删除 title... 成功!"
-
-msgid ">> Deleting title contents..."
-msgstr ">> 删除 title 内容..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> 删除 title 内容... 错误!"
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> 删除 title 内容... 成功!"
-
-msgid ">> Deleting title..."
-msgstr ">> 删除 title..."
-
-msgid ">> Finishing installation..."
-msgstr ">> 完成安装..."
-
-msgid ">> Installing content #"
-msgstr ">> 安装程序主体#"
-
-msgid ">> Installing ticket..."
-msgstr ">> 安装 ticket..."
-
-msgid ">> Installing title..."
-msgstr ">> 安装 title..."
-
-msgid ">> Reading WAD data..."
-msgstr ">> 读取 WAD 数据..."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> 读取 WAD 数据... 错误!"
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> 读取 WAD 数据... 成功!"
-
-msgid "AUTO"
-msgstr "自动"
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr ""
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "USB Loader GX 功能已解锁."
-
-msgid "Alternate DOL"
-msgstr "可选择Alt DOL文件"
-
-msgid "App Language"
-msgstr "语言设定"
-
-msgid "Apr"
-msgstr "四月"
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "确定?"
-
-msgid "Aug"
-msgstr "八月"
-
-msgid "Author:"
-msgstr ""
-
-msgid "AutoInit Network"
-msgstr "自动检测网络"
-
-msgid "BCA Codes Path"
-msgstr ""
-
-msgid "BETA revisions"
-msgstr ""
-
-msgid "Back"
-msgstr "返回"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "返回 HBC 或 Wii 系统菜单"
-
-msgid "Back to Loader"
-msgstr "返回 Loader"
-
-msgid "Backgroundmusic"
-msgstr "背景音乐"
-
-msgid "Big thanks to:"
-msgstr "非常感谢:"
-
-msgid "Block IOS Reload"
-msgstr "阻止 IOS 重新载入"
-
-msgid "Boot/Standard"
-msgstr "启动/标准"
-
-msgid "Boot?"
-msgstr "启动?"
-
-msgid "Can't be formatted"
-msgstr "无法格式化"
-
-msgid "Can't create directory"
-msgstr "无法建立目录"
-
-msgid "Can't create file"
-msgstr ""
-
-msgid "Can't delete:"
-msgstr "无法删除:"
-
-msgid "Cancel"
-msgstr "取消"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr ""
-
-msgid "Cheatfile is blank"
-msgstr "作弊码文件是空的"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "点击下载封面"
-
-msgid "Click to change game ID"
-msgstr "点击变更游戏 ID"
-
-msgid "Clock"
-msgstr "时钟"
-
-msgid "Close"
-msgstr "关闭"
-
-msgid "Code Download"
-msgstr "作弊码下载"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "编程: %s"
-
-msgid "Coding:"
-msgstr "编程:"
-
-msgid "Connection lost..."
-msgstr ""
-
-msgid "Console"
-msgstr "控制台"
-
-msgid "Console Locked"
-msgstr "主机锁定"
-
-msgid "Console should be unlocked to modify it."
-msgstr "需解锁以开启设定功能."
-
-msgid "Continue to install game?"
-msgstr "继续安装游戏?"
-
-msgid "Controllevel"
-msgstr "访问级别控制"
-
-msgid "Correct Password"
-msgstr "密码正确"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "无法建立 GCT 文件"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "无法启动 DIP 模块!"
-
-msgid "Could not initialize network!"
-msgstr "无法启动网络!"
-
-msgid "Could not open Disc"
-msgstr "无法开启光盘"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "无法保存"
-
-msgid "Cover Download"
-msgstr "下载封面"
-
-msgid "Create"
-msgstr "创建"
-
-msgid "Credits"
-msgstr "作者信息"
-
-msgid "Custom Paths"
-msgstr "自定义路径"
-
-msgid "DOL Path"
-msgstr "DOL 路径"
-
-msgid "Dec"
-msgstr "十二月"
-
-msgid "Default"
-msgstr "缺省"
-
-msgid "Default Gamesettings"
-msgstr "缺省游戏设定"
-
-msgid "Default Settings"
-msgstr "缺省设置"
-
-msgid "Delete"
-msgstr "删除"
-
-msgid "Delete ?"
-msgstr "删除?"
-
-msgid "Delete Cheat GCT"
-msgstr "删除GCT金手指文件"
-
-msgid "Delete Cheat TXT"
-msgstr "删除TXT金手指文件"
-
-msgid "Delete Cover Artwork"
-msgstr "删除封面"
-
-msgid "Delete Disc Artwork"
-msgstr "删除光盘图片"
-
-msgid "Design:"
-msgstr "设计:"
-
-msgid "Developed by"
-msgstr "开发"
-
-msgid "Directory does not exist!"
-msgstr "目录不存在"
-
-msgid "Disc Artwork Download"
-msgstr "光盘图片下载"
-
-msgid "Disc Artwork Path"
-msgstr "光盘图片路径"
-
-msgid "Disc Images"
-msgstr "光盘图片"
-
-msgid "Display"
-msgstr "显示"
-
-msgid "Display as a carousel"
-msgstr "走马灯模式"
-
-msgid "Display as a grid"
-msgstr "封面墙模式"
-
-msgid "Display as a list"
-msgstr "列表模式"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "确定删除:"
-
-msgid "Do you want to apply it now?"
-msgstr ""
-
-msgid "Do you want to change language?"
-msgstr "要变更语言么?"
-
-msgid "Do you want to download this theme?"
-msgstr ""
-
-msgid "Do you want to format:"
-msgstr "是否格式化:"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "使用这个已知是正确的 Alt DOL 文件?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "升级/下载语言文件?"
-
-msgid "Done!"
-msgstr "完成"
-
-msgid "Download"
-msgstr ""
-
-msgid "Download Boxart image?"
-msgstr "下载封面图片?"
-
-msgid "Download Discart image?"
-msgstr "下载光盘图片?"
-
-msgid "Download Now"
-msgstr "现在下载"
-
-msgid "Download failed."
-msgstr ""
-
-msgid "Download finished"
-msgstr "下载完成"
-
-msgid "Download request failed."
-msgstr ""
-
-msgid "Downloading Page List:"
-msgstr ""
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "下载文件:"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr ""
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "错误"
-
-msgid "ERROR:"
-msgstr "错误:"
-
-msgid "ERROR: Can't set up theme."
-msgstr ""
-
-msgid "Error"
-msgstr "错误"
-
-msgid "Error !"
-msgstr "错误 !"
-
-msgid "Error 002 fix"
-msgstr "002 错误修正"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "读取光盘错误"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "传送数据错误."
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "错误..."
-
-msgid "Error:"
-msgstr "错误:"
-
-msgid "Extracting files..."
-msgstr ""
-
-msgid "FAT: Use directories"
-msgstr ""
-
-msgid "Failed formating"
-msgstr "格式化失败"
-
-msgid "Failed to extract."
-msgstr ""
-
-msgid "Failed to open partition"
-msgstr "打开分区失败"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr "二月"
-
-msgid "File not found."
-msgstr "找不到文件"
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "正在完成安装...完成!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr "按键规则"
-
-msgid "Format"
-msgstr "格式化"
-
-msgid "Formatting, please wait..."
-msgstr "格式化中, 请稍候..."
-
-msgid "Free Space"
-msgstr "剩余空间"
-
-msgid "Full Shutdown"
-msgstr "完全关机"
-
-msgid "GCT Cheatcodes Path"
-msgstr "作弊码路径"
-
-msgid "GCT File created"
-msgstr "GCT 文件已建立"
-
-msgid "GUI Settings"
-msgstr "界面设置"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr ""
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "游戏语言"
-
-msgid "Game Load"
-msgstr "游戏载入"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "游戏容量"
-
-msgid "Game Sound Mode"
-msgstr ""
-
-msgid "Game Sound Volume"
-msgstr ""
-
-msgid "Game is already installed:"
-msgstr "已安装的游戏:"
-
-msgid "Game partition"
-msgstr ""
-
-msgid "Games"
-msgstr "游戏"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr "主菜单"
-
-msgid "Homebrew Apps Path"
-msgstr "自制程序路径"
-
-msgid "Homebrew Launcher"
-msgstr "Homebrew 管理器"
-
-msgid "Hour"
-msgstr "小时"
-
-msgid "How do you want to update?"
-msgstr "你要升级哪些文件?"
-
-msgid "How to Shutdown?"
-msgstr "如何关机?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "如果你没有联网,请按 1 键以获取一个WiiTDB.zip的下载链接."
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "正在接收文件 %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "正在接收文件 %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "正在启动网络"
-
-msgid "Insert Disk"
-msgstr "插入光盘"
-
-msgid "Insert a Wii Disc!"
-msgstr "插入 Wii 光盘!"
-
-msgid "Insert an SD-Card to save."
-msgstr "插入 SD卡以保存."
-
-msgid "Insert an SD-Card to use this option."
-msgstr "插入 SD 卡使用此功能."
-
-msgid "Install"
-msgstr "安装"
-
-msgid "Install Error!"
-msgstr "安装错误!"
-
-msgid "Install a game"
-msgstr "安装游戏"
-
-msgid "Install partitions"
-msgstr ""
-
-msgid "Installing content... Ok!"
-msgstr "正在安装程序主体... 完成!"
-
-msgid "Installing game:"
-msgstr "正在安装游戏:"
-
-msgid "Installing ticket... Ok!"
-msgstr "安装 ticket... 完成!"
-
-msgid "Installing title... Ok!"
-msgstr "安装 title... 完成!"
-
-msgid "Installing wad"
-msgstr "安裝 WAD"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "看來你有一些能帮到我们的信息.请将这些信息发送给开发团队.%s - %i"
-
-msgid "Jan"
-msgstr "一月"
-
-msgid "July"
-msgstr "七月"
-
-msgid "June"
-msgstr "六月"
-
-msgid "Keep"
-msgstr "保持"
-
-msgid "Keyboard"
-msgstr "键盘"
-
-msgid "Language File"
-msgstr "语言文件"
-
-msgid "Language change:"
-msgstr "变更语言:"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "语言文件路径已变更"
-
-msgid "Load"
-msgstr "载入"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "从%s 载入文件?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "载入这个 DOL 作为 ALT DOL?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "载入标准语言"
-
-msgid "Loading standard music."
-msgstr "载入标准音乐."
-
-msgid "Lock Console"
-msgstr "锁定控制台"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr "三月"
-
-msgid "Mark new games"
-msgstr ""
-
-msgid "May"
-msgstr "五月"
-
-msgid "Missing files"
-msgstr "缺少的文件"
-
-msgid "Mount DVD drive"
-msgstr "挂载DVD光驱"
-
-msgid "Music Loop Mode"
-msgstr ""
-
-msgid "Music Volume"
-msgstr "音量"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "新光盘已检测"
-
-msgid "No"
-msgstr "否"
-
-msgid "No Cheatfile found"
-msgstr "作弊码文件没找到"
-
-msgid "No DOL file found on disc."
-msgstr "光盘中未找到 DOL 文件."
-
-msgid "No SD-Card inserted!"
-msgstr "未插入 SD 卡!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "没有选择作弊码"
-
-msgid "No data could be read."
-msgstr "无法读取数据"
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "没有文件缺少!"
-
-msgid "No new updates."
-msgstr "没有可用更新"
-
-msgid "No themes found on the site."
-msgstr ""
-
-msgid "Not a WAD file."
-msgstr ""
-
-msgid "Not a Wii Disc"
-msgstr "不是 Wii 的光盘"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "剩余内存不足."
-
-msgid "Not enough free space!"
-msgstr "剩余空间不足!"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "不支持的格式!"
-
-msgid "Nov"
-msgstr "十一月"
-
-msgid "OFF"
-msgstr "关闭"
-
-msgid "OK"
-msgstr "确定"
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "十月"
-
-msgid "Official Site:"
-msgstr "官方网址:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "家长控制"
-
-msgid "Partition"
-msgstr "分区"
-
-msgid "Password"
-msgstr "密码"
-
-msgid "Password Changed"
-msgstr "密码已变更"
-
-msgid "Password has been changed"
-msgstr "密码已被变更"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "粘贴这个链接到浏览器来下载 WiiTDB.zip 文件."
-
-msgid "Patch Country Strings"
-msgstr "设定区码"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "从列表中选取"
-
-msgid "Play Count"
-msgstr "游戏计数"
-
-msgid "Play Next"
-msgstr ""
-
-msgid "Play Previous"
-msgstr ""
-
-msgid "Playing Music:"
-msgstr ""
-
-msgid "Please wait..."
-msgstr "请等待..."
-
-msgid "Power off the Wii"
-msgstr "关闭 Wii 主机"
-
-msgid "Prompts Buttons"
-msgstr "显示校正"
-
-msgid "Published by"
-msgstr "发行"
-
-msgid "Quick Boot"
-msgstr "快速启动"
-
-msgid "Reading WAD data... Ok!"
-msgstr "读取 WAD 数据... 完成!"
-
-msgid "Receiving file from:"
-msgstr "接收文件:"
-
-msgid "Released"
-msgstr "放出"
-
-msgid "Reload SD"
-msgstr "重新载入 SD 卡"
-
-msgid "Remove update"
-msgstr ""
-
-msgid "Rename Game on WBFS"
-msgstr "改变 WBFS (硬盘)上的游戏名称"
-
-msgid "Reset BG Music"
-msgstr ""
-
-msgid "Reset Playcounter"
-msgstr "重置游戏计数"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "重启中..."
-
-msgid "Return"
-msgstr "返回"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "返回 Wii 主菜单"
-
-msgid "Rumble"
-msgstr "震动"
-
-msgid "SFX Volume"
-msgstr "SFX 音量"
-
-msgid "Save"
-msgstr "保存"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "保存游戏列表到"
-
-msgid "Saved"
-msgstr "已保存"
-
-msgid "Screensaver"
-msgstr "屏幕保护"
-
-msgid "Select"
-msgstr ""
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "选择一个 DOL"
-
-msgid "Sept"
-msgstr "九月"
-
-msgid "Set Search-Filter"
-msgstr "设置搜索过滤器"
-
-msgid "Settings"
-msgstr "设置"
-
-msgid "Shutdown System"
-msgstr "关闭系统"
-
-msgid "Shutdown to Idle"
-msgstr "进入待机状态"
-
-msgid "Sort alphabetically"
-msgstr "按字母排序"
-
-msgid "Sort by rank"
-msgstr "横排列"
-
-msgid "Sort order by most played"
-msgstr "按玩过次数排序"
-
-msgid "Sound"
-msgstr "声音"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "特别感谢"
-
-msgid "Success"
-msgstr "成功"
-
-msgid "Success:"
-msgstr "成功:"
-
-msgid "Successfully Saved"
-msgstr "保存成功"
-
-msgid "Successfully Updated"
-msgstr "升级成功!"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr ""
-
-msgid "Successfully deleted:"
-msgstr "成功删除:"
-
-msgid "Successfully extracted theme."
-msgstr ""
-
-msgid "Successfully installed:"
-msgstr "成功安装:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "TXT 作弊码文件路径"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "已进入的目录不存在。你想要创建一个目录吗?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr ""
-
-msgid "Theme Downloader"
-msgstr ""
-
-msgid "Theme Path"
-msgstr "主题路径"
-
-msgid "Theme Title:"
-msgstr ""
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "剩余时间:"
-
-msgid "Title Launcher"
-msgstr "系统频道"
-
-msgid "Titles from WiiTDB"
-msgstr "从 WiiTDB 中获取游戏名"
-
-msgid "Tooltips"
-msgstr "提示信息"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr ""
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "找不到 USB 设备"
-
-msgid "USB Loader GX is protected"
-msgstr "USB Loader GX 被锁定"
-
-msgid "Uninstall"
-msgstr "删除"
-
-msgid "Uninstall Game"
-msgstr "删除游戏"
-
-msgid "Uninstall Menu"
-msgstr "删除菜单"
-
-msgid "Uninstalling wad"
-msgstr "卸载 WAD"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "请解锁后使用此功能"
-
-msgid "Unsupported format, try to extract manually."
-msgstr ""
-
-msgid "Update"
-msgstr "升级"
-
-msgid "Update All"
-msgstr "全部升级"
-
-msgid "Update DOL"
-msgstr "仅升级主程序"
-
-msgid "Update Files"
-msgstr "升级文件"
-
-msgid "Update Path"
-msgstr "升级文件存放路径"
-
-msgid "Update all Language Files"
-msgstr "升级全部语言文件"
-
-msgid "Update failed"
-msgstr "升级失败"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "正在升级语言文件:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "上传已安装Zip文件到自制程序目录"
-
-msgid "VIDTV Patch"
-msgstr "VIDTV 修改"
-
-#, c-format
-msgid "Version: %s"
-msgstr "版本: %s"
-
-msgid "Video Mode"
-msgstr "视频制式"
-
-msgid "WIP Patches Path"
-msgstr ""
-
-msgid "Waiting for USB Device"
-msgstr "等待 USB 设备"
-
-msgid "Waiting..."
-msgstr "等待中..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "要升级么?"
-
-msgid "WiFi Features"
-msgstr "WiFi 功能"
-
-msgid "Wii Menu"
-msgstr "Wii 系统菜单"
-
-msgid "Wii Settings"
-msgstr "Wii 设置"
-
-msgid "WiiTDB Files"
-msgstr "WiiTDB 文件"
-
-msgid "WiiTDB Path"
-msgstr "WiiTDB 文件路径"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr "光驱灯"
-
-msgid "Wrong Password"
-msgstr "密码错误"
-
-msgid "Yes"
-msgstr "是"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr ""
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "链接已写入 %sWiiTDB_URL.txt 文件."
-
-msgid "and translaters for language files updates"
-msgstr "和所有语言包更新的翻译者"
-
-msgid "available"
-msgstr "允许"
-
-msgid "does not exist!"
-msgstr "不存在!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "不存在!游戏以无作弊码方式载入."
-
-msgid "files left"
-msgstr "剩余文件"
-
-msgid "files not found on the server!"
-msgstr "服务器中无此文件!"
-
-msgid "for FAT/NTFS support"
-msgstr ""
-
-msgid "for Ocarina"
-msgstr "的 Ocarina"
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "的 WiiTDB 和封面下载"
-
-msgid "for diverse patches"
-msgstr "的多种修正"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "的优秀工具 LibWiiGui"
-
-msgid "for hosting the themes"
-msgstr ""
-
-msgid "for hosting the update files"
-msgstr "的升级服务器"
-
-msgid "for the USB Loader source"
-msgstr "放出源代码"
-
-msgid "formatted!"
-msgstr "完成格式化!"
-
-msgid "free"
-msgstr "剩余"
-
-msgid "not set"
-msgstr "未设定"
-
-msgid "of"
-msgstr "的"
-
-msgid "seconds left"
-msgstr "剩余秒数"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (全年龄)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (7岁以上)"
-
-#~ msgid "1 hour"
-#~ msgstr "1 小时"
-
-#~ msgid "10 min"
-#~ msgstr "10 分钟"
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (12岁以上)"
-
-#~ msgid "20 min"
-#~ msgstr "20 分钟"
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (16岁以上)"
-
-#~ msgid "3 min"
-#~ msgstr "3 分钟"
-
-#~ msgid "30 min"
-#~ msgstr "30 分钟"
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (18岁以上成人)"
-
-#~ msgid "5 min"
-#~ msgstr "5 分钟"
-
-#~ msgid "An Error occured"
-#~ msgstr "发生一个错误"
-
-#~ msgid "Anti"
-#~ msgstr "防止"
-
-#~ msgid "AutoPatch"
-#~ msgstr "自动修改"
-
-#~ msgid "Both"
-#~ msgstr "全部"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "检测软件最新版本"
-
-#~ msgid "Console Default"
-#~ msgstr "主机默认"
-
-#~ msgid "Customs/Original"
-#~ msgstr "自定义/官方"
-
-#~ msgid "Disc Default"
-#~ msgstr "游戏默认"
-
-#~ msgid "DiskFlip"
-#~ msgstr "光盘滑动"
-
-#~ msgid "Downloading"
-#~ msgstr "下载"
-
-#~ msgid "Dutch"
-#~ msgstr "荷文"
-
-#~ msgid "English"
-#~ msgstr "英文"
-
-#~ msgid "French"
-#~ msgstr "法文"
-
-#~ msgid "Game ID"
-#~ msgstr "游戏 ID"
-
-#~ msgid "Game Region"
-#~ msgstr "游戏区域"
-
-#~ msgid "German"
-#~ msgstr "德文"
-
-#~ msgid "Italian"
-#~ msgstr "意大利文"
-
-#~ msgid "Japanese"
-#~ msgstr "日文"
-
-#~ msgid "Korean"
-#~ msgstr "韩文"
-
-#~ msgid "Left"
-#~ msgstr "左"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "同系统选单"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "从 SD/USB 载入"
-
-#~ msgid "Locked"
-#~ msgstr "已锁定"
-
-#~ msgid "Neither"
-#~ msgstr "全不"
-
-#~ msgid "Next"
-#~ msgstr "往后"
-
-#~ msgid "Normal"
-#~ msgstr "一般"
-
-#~ msgid "ON"
-#~ msgstr "开启"
-
-#~ msgid "Only Customs"
-#~ msgstr "仅自定义"
-
-#~ msgid "Only Original"
-#~ msgstr "仅官方"
-
-#~ msgid "Only for Install"
-#~ msgstr "仅安装"
-
-#~ msgid "Original/Customs"
-#~ msgstr "官方/自定义"
-
-#~ msgid "Prev"
-#~ msgstr "往前"
-
-#~ msgid "Right"
-#~ msgstr "右"
-
-#~ msgid "SChinese"
-#~ msgstr "简体中文"
-
-#~ msgid "Spanish"
-#~ msgstr "西班牙文"
-
-#~ msgid "System Default"
-#~ msgstr "系统默认"
-
-#~ msgid "TChinese"
-#~ msgstr "繁体中文"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "WAD 已安装,但文件无法从 SD 卡中删除."
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "WAD 安装失败,错误号 %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "不能打开刚下载的 WAD 文件 (%s)."
-
-#~ msgid "Unlocked"
-#~ msgstr "已解锁"
-
-#~ msgid "Update to"
-#~ msgstr "升级到"
-
-#~ msgid "Updating"
-#~ msgstr "升级中"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "升级语言文件..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "正在升级 WiiTDB.zip"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "宽屏校正"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "返回 Wii 系统菜单"
-
-#~ msgid "Channels"
-#~ msgstr "频道"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "检测已存在的插图"
-
-#~ msgid "Confirm"
-#~ msgstr "确定"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "找不到 WBFS 分区."
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "无法打开 WBFS 分区"
-
-#~ msgid "Could not read the disc."
-#~ msgstr "无法读取光盘."
-
-#~ msgid "Could not set USB."
-#~ msgstr "无法设置 USB."
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "封面路径已变更"
-
-#~ msgid "DOL path changed"
-#~ msgstr "DOL 路径已变更"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "光盘图片路径已变更"
-
-#~ msgid "Display favorites"
-#~ msgstr "收藏夹模式"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "是否等待 30 秒后重试?"
-
-#~ msgid "Force"
-#~ msgstr "强制"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "作弊码路径已变更"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "自制程序路径已变更"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "插入 SD 卡以下载封面."
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "图片格式错误,可能它的尺寸不是 4 的倍数."
-
-#~ msgid "Network init error"
-#~ msgstr "网络启动错误"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr "找不到 .dol 或 .elf 文件"
-
-#~ msgid "No Favorites"
-#~ msgstr "没有收藏记录"
-
-#~ msgid "No USB Device"
-#~ msgstr "没有 USB 设备"
-
-#~ msgid "No USB Device found."
-#~ msgstr "找不到 USB 设备."
-
-#~ msgid "Normal Covers"
-#~ msgstr "普通封面"
-
-#~ msgid "Not Found"
-#~ msgstr "没找到"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "不是 DOL/ELF 文件."
-
-#~ msgid "Save Failed"
-#~ msgstr "保存失败"
-
-#~ msgid "Selected DOL"
-#~ msgstr "已选择 DOL"
-
-#~ msgid "Standard"
-#~ msgstr "标准"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "TXT 作弊码文件路径已变更"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "主题路径已变更"
-
-#~ msgid "Update Path changed."
-#~ msgstr "升级文件存放路径已变更"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "WiiTDB 路径已变更"
-
-#~ msgid "You are about to delete "
-#~ msgstr "要删除"
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "你选择显示收藏夹但里面还没有任何收藏"
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "你在加载损坏的镜像"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "不存在!"
-
-#~ msgid "file left"
-#~ msgstr "剩余文件"
diff --git a/Languages/spanish.lang b/Languages/spanish.lang
deleted file mode 100644
index 4c6f3a6a..00000000
--- a/Languages/spanish.lang
+++ /dev/null
@@ -1,1558 +0,0 @@
-# USB Loader GX language source file.
-# spanish.lang - r921
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2009-10-01 01:00+0200\n"
-"Last-Translator: SirPalax\n"
-"Language-Team: Penn, SirPalax\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr " WAD guardado como:"
-
-msgid " could not be downloaded."
-msgstr " no se han podido descargar."
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr " ha sido Guardado. Algún código puede no funcionar correctamente. Si experimentas problemas, revisa el texto en un editor de texto para obtener más información."
-
-msgid " is not on the server."
-msgstr " no existe en el servidor."
-
-msgid "2D Cover Path"
-msgstr "Ruta Carátulas 2D"
-
-msgid "3D Cover Path"
-msgstr "Ruta Carátulas 3D"
-
-msgid "3D Covers"
-msgstr "3D"
-
-msgid ">> Deleting tickets..."
-msgstr ">> Borrando tickets..."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> Borrando tickets... ¡ERROR! "
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> Borrando tickets... ¡Correcto! "
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> Borrando título... ¡ERROR! "
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> Borrando título... ¡Correcto!"
-
-msgid ">> Deleting title contents..."
-msgstr ">> Borrando contenidos del título..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> Borrando contenidos del título... ¡ERROR! "
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> Borrando contenidos del título... ¡Correcto!"
-
-msgid ">> Deleting title..."
-msgstr ">> Borrando título..."
-
-msgid ">> Finishing installation..."
-msgstr ">> Finalizando instalación..."
-
-msgid ">> Installing content #"
-msgstr ">> Instalando contenido #"
-
-msgid ">> Installing ticket..."
-msgstr ">> Instalando ticket..."
-
-msgid ">> Installing title..."
-msgstr ">> Instalando título..."
-
-msgid ">> Reading WAD data..."
-msgstr ">> Leyendo datos del WAD..."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> Leyendo datos del WAD... ¡ERROR!"
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> Leyendo datos del WAD... ¡Correcto!"
-
-msgid "AUTO"
-msgstr ""
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr "Todas las particiones"
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "Todas las características del USB Loader GX desbloqueadas."
-
-msgid "Alternate DOL"
-msgstr "DOL Alternativo"
-
-msgid "App Language"
-msgstr "Idioma Aplicación"
-
-msgid "Apr"
-msgstr "Abr"
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "¿Estás seguro?"
-
-msgid "Aug"
-msgstr "Ago"
-
-msgid "Author:"
-msgstr "Autor:"
-
-msgid "AutoInit Network"
-msgstr "AutoIniciar la Red"
-
-msgid "BCA Codes Path"
-msgstr "Ruta Códigos BCA"
-
-msgid "BETA revisions"
-msgstr "Revisiones BETA"
-
-msgid "Back"
-msgstr "Atrás"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "Volver a HBC o Menú Wii"
-
-msgid "Back to Loader"
-msgstr "Volver al HBC"
-
-msgid "Backgroundmusic"
-msgstr "Música de fondo"
-
-msgid "Big thanks to:"
-msgstr "Gracias a:"
-
-msgid "Block IOS Reload"
-msgstr "Impedir recarga IOS"
-
-msgid "Boot/Standard"
-msgstr "Inicio/Estándar"
-
-msgid "Boot?"
-msgstr "¿Ejecutar?"
-
-msgid "Can't be formatted"
-msgstr "No se puede formatear"
-
-msgid "Can't create directory"
-msgstr "No se creó la carpeta"
-
-msgid "Can't create file"
-msgstr "No se creó el archivo"
-
-msgid "Can't delete:"
-msgstr "No se eliminó:"
-
-msgid "Cancel"
-msgstr "Cancelar"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr "Cambiar Ruta"
-
-msgid "Cheatfile is blank"
-msgstr "El archivo de Trucos está vacio"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "Clic para descargar Carátulas"
-
-msgid "Click to change game ID"
-msgstr "Clic para cambiar la ID del juego"
-
-msgid "Clock"
-msgstr "Reloj"
-
-msgid "Close"
-msgstr "Salir"
-
-msgid "Code Download"
-msgstr "Descargar Códigos"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "Programado por: %s"
-
-msgid "Coding:"
-msgstr "Programación:"
-
-msgid "Connection lost..."
-msgstr "Conexión perdida..."
-
-msgid "Console"
-msgstr "Consola"
-
-msgid "Console Locked"
-msgstr "Consola Bloqueada"
-
-msgid "Console should be unlocked to modify it."
-msgstr "Debes desbloquear la consola para modificar."
-
-msgid "Continue to install game?"
-msgstr "¿Continuar instalando juego?"
-
-msgid "Controllevel"
-msgstr "Control de Nivel"
-
-msgid "Correct Password"
-msgstr "Contraseña Correcta"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "¡No se pudo crear el archivo GCT!"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "¡No se pudo iniciar módulo DIP!"
-
-msgid "Could not initialize network!"
-msgstr "¡No se pudo iniciar la Red!"
-
-msgid "Could not open Disc"
-msgstr "¡No se pudo abrir el Disco!"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "¡No se pudo guardar!"
-
-msgid "Cover Download"
-msgstr "Descarga de Carátulas"
-
-msgid "Create"
-msgstr "Crear"
-
-msgid "Credits"
-msgstr "Créditos"
-
-msgid "Custom Paths"
-msgstr "Personalizar Rutas"
-
-msgid "DOL Path"
-msgstr "Ruta del DOL"
-
-msgid "Dec"
-msgstr "Dic"
-
-msgid "Default"
-msgstr "Predeterminado"
-
-msgid "Default Gamesettings"
-msgstr "Conf. Pred. de Juegos"
-
-msgid "Default Settings"
-msgstr "Configuración Predeterminada"
-
-msgid "Delete"
-msgstr "Borrar"
-
-msgid "Delete ?"
-msgstr "¿Borrar?"
-
-msgid "Delete Cheat GCT"
-msgstr "Borrar Trucos GCT"
-
-msgid "Delete Cheat TXT"
-msgstr "Borrar Trucos TXT"
-
-msgid "Delete Cover Artwork"
-msgstr "Borrar Carátula"
-
-msgid "Delete Disc Artwork"
-msgstr "Borrar Imagen Disco"
-
-msgid "Design:"
-msgstr "Diseño:"
-
-msgid "Developed by"
-msgstr "Desarrollado por"
-
-msgid "Directory does not exist!"
-msgstr "¡La carpeta no existe!"
-
-msgid "Disc Artwork Download"
-msgstr "Descarga Imagen Discos"
-
-msgid "Disc Artwork Path"
-msgstr "Ruta Imagen Discos"
-
-msgid "Disc Images"
-msgstr "Imagen Discos"
-
-msgid "Display"
-msgstr "Mostrar"
-
-msgid "Display as a carousel"
-msgstr "Mostrar como carrusel"
-
-msgid "Display as a grid"
-msgstr "Mostrar como rejilla"
-
-msgid "Display as a list"
-msgstr "Mostrar como lista"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "¿Realmente quieres borrar?:"
-
-msgid "Do you want to apply it now?"
-msgstr "¿Quieres aplicarlo ahora?"
-
-msgid "Do you want to change language?"
-msgstr "¿Quieres cambiar el idioma?"
-
-msgid "Do you want to download this theme?"
-msgstr "¿Quieres descargar este Tema?"
-
-msgid "Do you want to format:"
-msgstr "Quieres formatear:"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "¿Quieres usar el DOL Alternativo que se sabe es correcto?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "¿Quieres actualizar/descargar todos los archivos de idiomas?"
-
-msgid "Done!"
-msgstr "¡Listo!"
-
-msgid "Download"
-msgstr "Descargar"
-
-msgid "Download Boxart image?"
-msgstr "¿Descargar Imágenes?"
-
-msgid "Download Discart image?"
-msgstr "¿Descargar la imagen del disco?"
-
-msgid "Download Now"
-msgstr "Descargar ahora"
-
-msgid "Download failed."
-msgstr "Error en la descarga."
-
-msgid "Download finished"
-msgstr "Descarga completada"
-
-msgid "Download request failed."
-msgstr "Error al solicitar la descarga."
-
-msgid "Downloading Page List:"
-msgstr "Descargando Lista de Páginas:"
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "Descargando archivo"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr "Descargando imagen:"
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr ""
-
-msgid "ERROR:"
-msgstr ""
-
-msgid "ERROR: Can't set up theme."
-msgstr "ERROR: No se puede configurar el tema."
-
-msgid "Error"
-msgstr ""
-
-msgid "Error !"
-msgstr "¡Error!"
-
-msgid "Error 002 fix"
-msgstr "Parchear Error 002"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "Error leyendo Disco"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "Error durante la transferencia de datos."
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr ""
-
-msgid "Error:"
-msgstr ""
-
-msgid "Extracting files..."
-msgstr "Extrayendo archivos..."
-
-msgid "FAT: Use directories"
-msgstr "Usar carpetas FAT"
-
-msgid "Failed formating"
-msgstr "No se ha podido formatear"
-
-msgid "Failed to extract."
-msgstr "No se ha podido extraer"
-
-msgid "Failed to open partition"
-msgstr "No se ha podido abrir la partición"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr ""
-
-msgid "File not found."
-msgstr "Archivo no encontrado."
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "Finalizando instalación... ¡Correcto!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr "Desplazamiento X"
-
-msgid "Format"
-msgstr "Formateo"
-
-msgid "Formatting, please wait..."
-msgstr "Formateando, por favor espera..."
-
-msgid "Free Space"
-msgstr "Espacio Libre"
-
-msgid "Full Shutdown"
-msgstr "Apagado Total"
-
-msgid "GCT Cheatcodes Path"
-msgstr "Ruta de Trucos GCT"
-
-msgid "GCT File created"
-msgstr "Archivo GCT creado"
-
-msgid "GUI Settings"
-msgstr "Configuración de la GUI"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr "No se encuentra GXtheme.cfg en ninguna subcarpeta."
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "Idioma"
-
-msgid "Game Load"
-msgstr "Configuración de los Juegos"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "Tamaño del Juego"
-
-msgid "Game Sound Mode"
-msgstr "Modo sonido del Juego"
-
-msgid "Game Sound Volume"
-msgstr "Volumen sonido del Juego"
-
-msgid "Game is already installed:"
-msgstr "El juego ya estaba instalado:"
-
-msgid "Game partition"
-msgstr "Partición de Juegos"
-
-msgid "Games"
-msgstr "Juegos"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr "Menú HOME"
-
-msgid "Homebrew Apps Path"
-msgstr "Ruta Apps Homebrew"
-
-msgid "Homebrew Launcher"
-msgstr "Ejecutar Homebrew"
-
-msgid "Hour"
-msgstr "Horas"
-
-msgid "How do you want to update?"
-msgstr "¿Cómo quieres actualizar?"
-
-msgid "How to Shutdown?"
-msgstr "¿Cómo quieres apagar?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "Si no tienes WiFi, pulsa 1 para ver la URL donde coger tu WiiTDB.zip"
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "Archivo recibido %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "Archivo recibido %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "Iniciando la Red"
-
-msgid "Insert Disk"
-msgstr "Inserta el Disco"
-
-msgid "Insert a Wii Disc!"
-msgstr "¡Inserta un Disco Wii!"
-
-msgid "Insert an SD-Card to save."
-msgstr "Insertar SD para guardar."
-
-msgid "Insert an SD-Card to use this option."
-msgstr "Insertar SD para usar esta opción"
-
-msgid "Install"
-msgstr "Instalar"
-
-msgid "Install Error!"
-msgstr "¡Error de Instalación!"
-
-msgid "Install a game"
-msgstr "Instalar un juego"
-
-msgid "Install partitions"
-msgstr "Instalar particiones"
-
-msgid "Installing content... Ok!"
-msgstr "Instalando contenido... ¡Correcto!"
-
-msgid "Installing game:"
-msgstr "Instalando juego:"
-
-msgid "Installing ticket... Ok!"
-msgstr "Instalando ticket... ¡Correcto!"
-
-msgid "Installing title... Ok!"
-msgstr "Instalando título... ¡Correcto!"
-
-msgid "Installing wad"
-msgstr "Instalando el WAD"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "Parece que tienes alguna información que puede ser útil para nosotros. Por favor envía esta información al equipo desarrollador."
-
-msgid "Jan"
-msgstr "Ene"
-
-msgid "July"
-msgstr "Jul"
-
-msgid "June"
-msgstr "Jun"
-
-msgid "Keep"
-msgstr "Mantener"
-
-msgid "Keyboard"
-msgstr "Teclado"
-
-msgid "Language File"
-msgstr "Idiomas"
-
-msgid "Language change:"
-msgstr "Cambio de Idioma:"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "Ruta de idioma cambiada."
-
-msgid "Load"
-msgstr "Cargar"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "¿Cargar el archivo desde: %s ?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "¿Cargar este DOL como DOL Alternativo?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "Cargando idioma estándar."
-
-msgid "Loading standard music."
-msgstr "Cargando música estándar."
-
-msgid "Lock Console"
-msgstr "Bloquear consola"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr ""
-
-msgid "Mark new games"
-msgstr "Marcar juegos nuevos"
-
-msgid "May"
-msgstr ""
-
-msgid "Missing files"
-msgstr "Archivo(s) pendiente(s)"
-
-msgid "Mount DVD drive"
-msgstr "Montar unidad DVD"
-
-msgid "Music Loop Mode"
-msgstr "Modo Bucle Musical"
-
-msgid "Music Volume"
-msgstr "Volumen de la Música"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "Nuevo Disco Detectado"
-
-msgid "No"
-msgstr ""
-
-msgid "No Cheatfile found"
-msgstr "No se encontró el archivo de Trucos"
-
-msgid "No DOL file found on disc."
-msgstr "No se encontró el archivo DOL en el Disco"
-
-msgid "No SD-Card inserted!"
-msgstr "¡SD no insertada!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "No se seleccionaron trucos"
-
-msgid "No data could be read."
-msgstr "No se dispone de datos para leer."
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "¡No faltan archivos!"
-
-msgid "No new updates."
-msgstr "No hay nuevas actualizaciones."
-
-msgid "No themes found on the site."
-msgstr "No hay Temas en este sitio."
-
-msgid "Not a WAD file."
-msgstr "No es un archivo WAD."
-
-msgid "Not a Wii Disc"
-msgstr "No es un Disco Wii"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "¡No hay suficiente memoria libre!"
-
-msgid "Not enough free space!"
-msgstr "¡No hay suficiente espacio libre!"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "Formato no soportado."
-
-msgid "Nov"
-msgstr ""
-
-msgid "OFF"
-msgstr "Apagado"
-
-msgid "OK"
-msgstr "Aceptar"
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr ""
-
-msgid "Official Site:"
-msgstr "Página Oficial:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "Control Parental"
-
-msgid "Partition"
-msgstr "Partición"
-
-msgid "Password"
-msgstr "Contraseña"
-
-msgid "Password Changed"
-msgstr "Contraseña cambiada"
-
-msgid "Password has been changed"
-msgstr "La contraseña ha sido cambiada"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "Pégalo en tu navegador para obtener tu WiiTDB.zip."
-
-msgid "Patch Country Strings"
-msgstr "Parchear País"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "Elegir de una lista"
-
-msgid "Play Count"
-msgstr "Partidas"
-
-msgid "Play Next"
-msgstr "Oír Siguiente"
-
-msgid "Play Previous"
-msgstr "Oír Anterior"
-
-msgid "Playing Music:"
-msgstr "Reproducción Musical:"
-
-msgid "Please wait..."
-msgstr "Por favor, espera..."
-
-msgid "Power off the Wii"
-msgstr "Apagar la Wii"
-
-msgid "Prompts Buttons"
-msgstr "Botones"
-
-msgid "Published by"
-msgstr "Publicado por"
-
-msgid "Quick Boot"
-msgstr "Inicio Rápido"
-
-msgid "Reading WAD data... Ok!"
-msgstr "Leyendo datos del WAD... ¡Correcto!"
-
-msgid "Receiving file from:"
-msgstr "Recibir archivo desde:"
-
-msgid "Released"
-msgstr "Comercializado el"
-
-msgid "Reload SD"
-msgstr "Recargar SD"
-
-msgid "Remove update"
-msgstr "Quitar actualización"
-
-msgid "Rename Game on WBFS"
-msgstr "Renombrar juego en WBFS"
-
-msgid "Reset BG Music"
-msgstr "Reiniciar Música de Fondo"
-
-msgid "Reset Playcounter"
-msgstr "Reiniciar Partidas"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "Reiniciando..."
-
-msgid "Return"
-msgstr "Volver"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "Volver a Menú Wii"
-
-msgid "Rumble"
-msgstr "Vibración"
-
-msgid "SFX Volume"
-msgstr "Volumen de los Efectos"
-
-msgid "Save"
-msgstr "Guardar"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "¿Guardar Lista de Juegos en"
-
-msgid "Saved"
-msgstr "Guardado"
-
-msgid "Screensaver"
-msgstr "Salvapantallas"
-
-msgid "Select"
-msgstr "Seleccionar"
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "Seleccionar DOL"
-
-msgid "Sept"
-msgstr ""
-
-msgid "Set Search-Filter"
-msgstr "Usar filtro de búsqueda"
-
-msgid "Settings"
-msgstr "Configuración"
-
-msgid "Shutdown System"
-msgstr "Apagar Sistema"
-
-msgid "Shutdown to Idle"
-msgstr "WiiConnect24"
-
-msgid "Sort alphabetically"
-msgstr "Ordenar alfabéticamente"
-
-msgid "Sort by rank"
-msgstr "Ordenar por clasificación"
-
-msgid "Sort order by most played"
-msgstr "Ordenar por los más jugados"
-
-msgid "Sound"
-msgstr "Sonido"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "Agradecimientos especiales a:"
-
-msgid "Success"
-msgstr "Conseguido"
-
-msgid "Success:"
-msgstr "Conseguido:"
-
-msgid "Successfully Saved"
-msgstr "Guardado correctamente"
-
-msgid "Successfully Updated"
-msgstr "Actualización correcta"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr "Actualización correcta gracias a www.techjawa.com"
-
-msgid "Successfully deleted:"
-msgstr "Borrado correctamente:"
-
-msgid "Successfully extracted theme."
-msgstr "Tema extraido correctamente."
-
-msgid "Successfully installed:"
-msgstr "Instalado correctamente:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "Ruta de Trucos TXT"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "La carpeta especificada no existe. ¿Quieres crearla?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr "Ruta Descarga Temas"
-
-msgid "Theme Downloader"
-msgstr "Descarga de Temas"
-
-msgid "Theme Path"
-msgstr "Ruta del Tema"
-
-msgid "Theme Title:"
-msgstr "Título del Tema:"
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "Quedan:"
-
-msgid "Title Launcher"
-msgstr "Lanzador de Canales"
-
-msgid "Titles from WiiTDB"
-msgstr "Títulos WiiTDB"
-
-msgid "Tooltips"
-msgstr "InfoBurbujas"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr "Error en la transferencia."
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "USB no encontrado"
-
-msgid "USB Loader GX is protected"
-msgstr "USB Loader GX está protegido"
-
-msgid "Uninstall"
-msgstr "Desinstalar"
-
-msgid "Uninstall Game"
-msgstr "Borrar Juego"
-
-msgid "Uninstall Menu"
-msgstr "Menú de Desinstalación"
-
-msgid "Uninstalling wad"
-msgstr "Desinstalando el WAD"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "Desbloquea la consola para usar esta opción."
-
-msgid "Unsupported format, try to extract manually."
-msgstr "Formato no soportado, prueba a extraer manualmente."
-
-msgid "Update"
-msgstr "Actualizar"
-
-msgid "Update All"
-msgstr "Actualizar Todo"
-
-msgid "Update DOL"
-msgstr "Actualizar DOL"
-
-msgid "Update Files"
-msgstr "Actualizar archivos"
-
-msgid "Update Path"
-msgstr "Ruta Actualización"
-
-msgid "Update all Language Files"
-msgstr "Actualizar todos los archivos de Idiomas"
-
-msgid "Update failed"
-msgstr "Error en la Actualización"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "Actualizando archivos de Idiomas:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "Enviado archivo ZIP instalado en la carpeta homebrew."
-
-msgid "VIDTV Patch"
-msgstr "Parche VIDTV"
-
-#, c-format
-msgid "Version: %s"
-msgstr "Versión: %s"
-
-msgid "Video Mode"
-msgstr "Modo Vídeo"
-
-msgid "WIP Patches Path"
-msgstr "Ruta Parches WIP"
-
-msgid "Waiting for USB Device"
-msgstr "Esperando al Dispositivo USB"
-
-msgid "Waiting..."
-msgstr "Esperando..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "¿Qué quieres actualizar?"
-
-msgid "WiFi Features"
-msgstr "Características WiFi"
-
-msgid "Wii Menu"
-msgstr "Menú de Wii"
-
-msgid "Wii Settings"
-msgstr "Opciones de Wii"
-
-msgid "WiiTDB Files"
-msgstr "WiiTDB"
-
-msgid "WiiTDB Path"
-msgstr "Ruta WiiTDB"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr "Iluminar lector"
-
-msgid "Wrong Password"
-msgstr "Contraseña incorrecta"
-
-msgid "Yes"
-msgstr "Sí"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr "Necesitas seleccionar o formatear una partición"
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "Tu URL se ha guardado en %sWiiTDB_URL.txt."
-
-msgid "and translaters for language files updates"
-msgstr "y traductores por actualizar los idiomas"
-
-msgid "available"
-msgstr "disponible"
-
-msgid "does not exist!"
-msgstr "no existe"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "no existe. Ejecutando el juego sin trucos."
-
-msgid "files left"
-msgstr "archivos pendientes"
-
-msgid "files not found on the server!"
-msgstr "archivo(s) no encontrado(s) en el servidor."
-
-msgid "for FAT/NTFS support"
-msgstr "por el soporte FAT/NTFS"
-
-msgid "for Ocarina"
-msgstr "por Ocarina"
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "por WiiTB y alojar caráturas e imágenes"
-
-msgid "for diverse patches"
-msgstr "por diversos parches"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "por su increible herramienta LibWiiGui"
-
-msgid "for hosting the themes"
-msgstr "por alojar los Temas"
-
-msgid "for hosting the update files"
-msgstr "por alojar las actualizaciones"
-
-msgid "for the USB Loader source"
-msgstr "por el código de USB Loader"
-
-msgid "formatted!"
-msgstr "¡formateado!"
-
-msgid "free"
-msgstr "libres"
-
-msgid "not set"
-msgstr "sin contraseña"
-
-msgid "of"
-msgstr "de"
-
-msgid "seconds left"
-msgstr "segundos restantes"
-
-#~ msgid "Install 1:1 Copy"
-#~ msgstr "Instalar Copias 1:1"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (Todos)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (Niños 7+)"
-
-#~ msgid "1 hour"
-#~ msgstr "1 hora"
-
-#~ msgid "10 min"
-#~ msgstr "10 min."
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (Adolescentes 12+)"
-
-#~ msgid "20 min"
-#~ msgstr "20 min."
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (Jóvenes 16+)"
-
-#~ msgid "3 min"
-#~ msgstr "3 min."
-
-#~ msgid "30 min"
-#~ msgstr "30 min."
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (Sólo Adultos 18+)"
-
-#~ msgid "5 min"
-#~ msgstr "5 min."
-
-#~ msgid "An Error occured"
-#~ msgstr "Ocurrió un Error"
-
-#~ msgid "Are you sure you want to enable Parent Control?"
-#~ msgstr "¿Estás seguro de querer activar el Control Parental?"
-
-#~ msgid "AutoPatch"
-#~ msgstr "AutoParchear"
-
-#~ msgid "Both"
-#~ msgstr "Ambos"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "Comprobando actualizaciones"
-
-#~ msgid "Console Default"
-#~ msgstr "Pred. Consola"
-
-#~ msgid "Customs/Original"
-#~ msgstr "Artísticas/Originales"
-
-#~ msgid "Disc Default"
-#~ msgstr "Pred. Disco"
-
-#~ msgid "DiskFlip"
-#~ msgstr "GiraDiscos"
-
-#~ msgid "Downloading"
-#~ msgstr "Descargando"
-
-#~ msgid "Dutch"
-#~ msgstr "Holandés"
-
-#~ msgid "English"
-#~ msgstr "Inglés"
-
-#~ msgid "French"
-#~ msgstr "Francés"
-
-#~ msgid "GAMEID_Gamename"
-#~ msgstr "IDdelJuego_NombreDelJuego"
-
-#~ msgid "Game ID"
-#~ msgstr "ID del Juego"
-
-#~ msgid "Game Region"
-#~ msgstr "Región"
-
-#~ msgid "Gamename [GAMEID]"
-#~ msgstr "NombreDelJuego [IDdelJuego]"
-
-#~ msgid "German"
-#~ msgstr "Alemán"
-
-#~ msgid "Invalid PIN code"
-#~ msgstr "Código PIN erróneo"
-
-#~ msgid "Italian"
-#~ msgstr "Italiano"
-
-#~ msgid "Japanese"
-#~ msgstr "Japonés"
-
-#~ msgid "Korean"
-#~ msgstr "Coreano"
-
-#~ msgid "Left"
-#~ msgstr "Izquierda"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "Como Menú Sist."
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "Cargar desde SD/USB"
-
-#~ msgid "Locked"
-#~ msgstr "Bloqueada"
-
-#~ msgid "Loop Directory"
-#~ msgstr "Carpeta de bucle"
-
-#~ msgid "Loop Music"
-#~ msgstr "Bucle musical"
-
-#~ msgid "Loop Sound"
-#~ msgstr "Bucle de sonido"
-
-#~ msgid "Neither"
-#~ msgstr "Ninguno"
-
-#~ msgid "Next"
-#~ msgstr "Siguiente"
-
-#~ msgid "None"
-#~ msgstr "Ninguno"
-
-#~ msgid "ON"
-#~ msgstr "Encendido"
-
-#~ msgid "Only Customs"
-#~ msgstr "Sólo Artísticas"
-
-#~ msgid "Only Original"
-#~ msgstr "Sólo Originales"
-
-#~ msgid "Only for Install"
-#~ msgstr "Sólo al instalar"
-
-#~ msgid "Original/Customs"
-#~ msgstr "Originales/Artísticas"
-
-#~ msgid "Parental Control disabled"
-#~ msgstr "Control Parental desactivado"
-
-#~ msgid "Play Once"
-#~ msgstr "Oir una vez"
-
-#~ msgid "Prev"
-#~ msgstr "Ant."
-
-#~ msgid "Random Directory Music"
-#~ msgstr "Aleatorio de la carpeta musical"
-
-#~ msgid "Right"
-#~ msgstr "Derecha"
-
-#~ msgid "SChinese"
-#~ msgstr "Chino S."
-
-#~ msgid "Sound+BGM"
-#~ msgstr "Sonido+Música Fondo"
-
-#~ msgid "Sound+Quiet"
-#~ msgstr "Sonido+Silencio"
-
-#~ msgid "Spanish"
-#~ msgstr "Español"
-
-#~ msgid "System Default"
-#~ msgstr "Pred. Sistema"
-
-#~ msgid "TChinese"
-#~ msgstr "Chino T."
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "El archivo WAD se ha instalado. Pero no puede ser borrado de la tarjeta SD."
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "La instalación del WAD falló con el error %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "No se puede abrir el WAD que acabas de descargar (%s)."
-
-#~ msgid "Unlock Parental Control"
-#~ msgstr "Desbloquear Control Parental"
-
-#~ msgid "Unlocked"
-#~ msgstr "Desbloqueada"
-
-#~ msgid "Update to"
-#~ msgstr "Descargando la"
-
-#~ msgid "Updating"
-#~ msgstr "Actualizando"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "Actualizando archivos de Idiomas..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "Actualizando WiiTDB.zip"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "Ajuste panorámico"
-
-#~ msgid "You don't have Parental Control enabled. If you wish to use Parental Control, enable it in the Wii Settings."
-#~ msgstr "No tienes el Control Parental activado. Si quieres usar el Control Parental, actívalo en la Configuración de la Wii."
-
-#~ msgid "%s : %s May not boot correctly if your System Menu is not up to date."
-#~ msgstr "%s : %s No puede arrancar correctamente si el Menú de Sistema no está actualizado."
-
-#~ msgid "BCA Codes Path changed"
-#~ msgstr "Ruta de Códigos BCA cambiada"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "Volver a Menú Wii"
-
-#~ msgid "Channels"
-#~ msgstr "Canales"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "Comprobando los archivos existentes"
-
-#~ msgid "Confirm"
-#~ msgstr "Confirmar"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "¡No se encontró la partición WBFS!"
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "¡No se pudo abrir la partición WBFS!"
-
-#~ msgid "Could not read the disc."
-#~ msgstr "¡No se pudo leer el Disco!"
-
-#~ msgid "Could not set USB."
-#~ msgstr "¡No se pudo configurar el USB!"
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "Ruta de Carátulas cambiada"
-
-#~ msgid "DOL path changed"
-#~ msgstr "Ruta del DOL cambiada"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "Ruta Imagen Discos cambiada"
-
-#~ msgid "Display favorites"
-#~ msgstr "Mostrar favoritos"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "¿Quieres reintentar por 30 segs.?"
-
-#~ msgid "Enable Parental Control"
-#~ msgstr "Activar Control Parental"
-
-#~ msgid "Force"
-#~ msgstr "Forzar"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "Ruta de Trucos GCT cambiada"
-
-#~ msgid "Hermes CIOS"
-#~ msgstr "cIOS Hermes"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "Ruta de Apps Homebrew cambiada"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "Insertar SD para bajar imágenes."
-
-#~ msgid "Install not possible"
-#~ msgstr "Imposible instalar"
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "Probablemente, las dimensiones no sean múltiplo de 4."
-
-#~ msgid "Network init error"
-#~ msgstr "Error al iniciar la Red"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr "No se encontró archivos .dol o .elf."
-
-#~ msgid "No Favorites"
-#~ msgstr "No hay Favoritos"
-
-#~ msgid "No USB Device"
-#~ msgstr "USB no encontrado"
-
-#~ msgid "No USB Device found."
-#~ msgstr "USB no encontrado."
-
-#~ msgid "No WBFS or FAT/NTFS partition found"
-#~ msgstr "Partición WBFS o FAT/NTFS no encontrada"
-
-#~ msgid "Normal Covers"
-#~ msgstr "Normales"
-
-#~ msgid "Not Found"
-#~ msgstr "No encontrado"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "No es un archivo DOL/ELF."
-
-#~ msgid "Reset to standard BGM?"
-#~ msgstr "¿Poner la Música por defecto?"
-
-#~ msgid "Save Failed"
-#~ msgstr "Error al guardar"
-
-#~ msgid "Selected DOL"
-#~ msgstr "DOL Seleccionado"
-
-#~ msgid "Standard"
-#~ msgstr "Estándar"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "Ruta del archivo de Trucos cambiada"
-
-#~ msgid "Theme Download Path changed"
-#~ msgstr "Ruta de Descarga del Tema cambiada"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "Ruta de Tema cambiada"
-
-#~ msgid "USB Loader GX will only run with Hermes CIOS rev 4! Please make sure you have revision 4 installed!"
-#~ msgstr "¡USB Loader GX sólo funciona con cIOS Hermes rev 4!. ¡Por favor, asegúrate de que tienes instalada la versión 4!"
-
-#~ msgid "Update Path changed."
-#~ msgstr "Ruta Actualización cambiada."
-
-#~ msgid "WIP Patches Path changed"
-#~ msgstr "Ruta Parches WIP cambiada"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "Ruta WiiTDB cambiada."
-
-#~ msgid "You are about to delete "
-#~ msgstr "Estás a punto de borrar "
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "Has seleccionado la vista de favoritos pero no tienes ninguno seleccionado."
-
-#~ msgid "You are using NTFS filesystem. Due to possible write errors to a NTFS partition, installing a game is not possible."
-#~ msgstr "Estás utilizando un sistema de archivos NTFS. Debido a posibles errores de escritura en la partición NTFS, la instalación del juego es imposible."
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "Has intentado cargar una imagen corrupta"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "no existe. Cometiste algún error al poner el DOL."
-
-#~ msgid "file left"
-#~ msgstr "archivo pendiente"
diff --git a/Languages/swedish.lang b/Languages/swedish.lang
deleted file mode 100644
index 3af57706..00000000
--- a/Languages/swedish.lang
+++ /dev/null
@@ -1,1522 +0,0 @@
-# USB Loader GX language source file.
-# swedish.lang - r898
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2010-01-19 17:39+0200\n"
-"Last-Translator: Katsurou\n"
-"Language-Team: Katsurou, pirateX\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr "Wad sparad som:"
-
-msgid " could not be downloaded."
-msgstr "Kunde inte laddas ner."
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr "har sparats. Texten har inte blivit varifierad. Några av koderna kanske inte fungerar riktigt med varandra. Om du upplever problem, öppna texten i en textredigerare för mer information."
-
-msgid " is not on the server."
-msgstr "finns inte på servern."
-
-msgid "2D Cover Path"
-msgstr "2D Omslagsmapp"
-
-msgid "3D Cover Path"
-msgstr "3D Omslagsmapp"
-
-msgid "3D Covers"
-msgstr "3D-Omslag"
-
-msgid ">> Deleting tickets..."
-msgstr ">> Raderar biljetter..."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> Raderar biljetter...FEL! "
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> Raderar biljetter...Ok! "
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> Raderar titel ...FEL! "
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> Raderar titel ...Ok!"
-
-msgid ">> Deleting title contents..."
-msgstr ">> Raderar titel innehåll..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> Raderar titel innehåll...FEL! "
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> Raderar titel innehåll...Ok!"
-
-msgid ">> Deleting title..."
-msgstr ">> Raderar titel..."
-
-msgid ">> Finishing installation..."
-msgstr ">> Gör klart installation..."
-
-msgid ">> Installing content #"
-msgstr ">> Installerar innehåll #"
-
-msgid ">> Installing ticket..."
-msgstr ">> Installerar biljett..."
-
-msgid ">> Installing title..."
-msgstr ">> Installerar titel..."
-
-msgid ">> Reading WAD data..."
-msgstr ">> Läser WAD data..."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> Läser WAD data...FEL! "
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> Läser WAD data...Ok!"
-
-msgid "AUTO"
-msgstr ""
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr "Alla partitioner"
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "Alla funktioner i USB Loader GX är upplåsta."
-
-msgid "Alternate DOL"
-msgstr "Alternativ DOL"
-
-msgid "App Language"
-msgstr "Programspråk"
-
-msgid "Apr"
-msgstr "Apr"
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "Är du säker?"
-
-msgid "Aug"
-msgstr ""
-
-msgid "Author:"
-msgstr "Utgivare:"
-
-msgid "AutoInit Network"
-msgstr "Autoinitiera Nätverk"
-
-msgid "BCA Codes Path"
-msgstr "BCA kodssökväg"
-
-msgid "BETA revisions"
-msgstr "BETA version"
-
-msgid "Back"
-msgstr "Tillbaka"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "Tillbaka till HBC eller Wii-Menyn"
-
-msgid "Back to Loader"
-msgstr "Tillbaka till loader"
-
-msgid "Backgroundmusic"
-msgstr "Bakgrundsmusik"
-
-msgid "Big thanks to:"
-msgstr "Stort tack till:"
-
-msgid "Block IOS Reload"
-msgstr "Blockera IOS omladdning"
-
-msgid "Boot/Standard"
-msgstr "Boot/Standard"
-
-msgid "Boot?"
-msgstr "Starta?"
-
-msgid "Can't be formatted"
-msgstr "Kan inte formateras"
-
-msgid "Can't create directory"
-msgstr "Kan inte skapa mapp"
-
-msgid "Can't create file"
-msgstr "Kunde inte skapa fil"
-
-msgid "Can't delete:"
-msgstr "Kunde inte radera:"
-
-msgid "Cancel"
-msgstr "Avbryt"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr "Ändra spel sökväg"
-
-msgid "Cheatfile is blank"
-msgstr "Fuskfilen är blank"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "Klicka för att ladda ner omslag"
-
-msgid "Click to change game ID"
-msgstr "Klicka för att byta spel ID"
-
-msgid "Clock"
-msgstr "Klocka"
-
-msgid "Close"
-msgstr "Stäng"
-
-msgid "Code Download"
-msgstr "Fusknedladdning"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "Kodad av: %s"
-
-msgid "Coding:"
-msgstr "Kodning:"
-
-msgid "Connection lost..."
-msgstr "Uppkoppling förlorad..."
-
-msgid "Console"
-msgstr "Konsol"
-
-msgid "Console Locked"
-msgstr "Konsol låst"
-
-msgid "Console should be unlocked to modify it."
-msgstr "Konsolen måste vara upplåst för att kunna ändra det."
-
-msgid "Continue to install game?"
-msgstr "Fortsätt installera spel?"
-
-msgid "Controllevel"
-msgstr "Kontrollnivå"
-
-msgid "Correct Password"
-msgstr "Rätt lösenord"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "Kunde inte skapa GCT fil"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "Kunde inte starta DIP-modul!"
-
-msgid "Could not initialize network!"
-msgstr "Kunde inte starta nätverket!"
-
-msgid "Could not open Disc"
-msgstr "Kunde inte öppna skivan"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "Kunde inte spara."
-
-msgid "Cover Download"
-msgstr "Omslagsnedladdning"
-
-msgid "Create"
-msgstr "Skapa"
-
-msgid "Credits"
-msgstr "Medverkande"
-
-msgid "Custom Paths"
-msgstr "Anpassade sökvägar"
-
-msgid "DOL Path"
-msgstr "DOL-sökväg"
-
-msgid "Dec"
-msgstr ""
-
-msgid "Default"
-msgstr "Standard"
-
-msgid "Default Gamesettings"
-msgstr "Ställ till spelstandard"
-
-msgid "Default Settings"
-msgstr "Standardinställningar"
-
-msgid "Delete"
-msgstr "Radera"
-
-msgid "Delete ?"
-msgstr "Radera?"
-
-msgid "Delete Cheat GCT"
-msgstr "Radera fusk GCT"
-
-msgid "Delete Cheat TXT"
-msgstr "Radera fusk TXT"
-
-msgid "Delete Cover Artwork"
-msgstr "Radera omslag"
-
-msgid "Delete Disc Artwork"
-msgstr "Radera skivbilder"
-
-msgid "Design:"
-msgstr ""
-
-msgid "Developed by"
-msgstr "Utvecklat av"
-
-msgid "Directory does not exist!"
-msgstr "Katalog existerar inte!"
-
-msgid "Disc Artwork Download"
-msgstr "Skivbildsnedladdning"
-
-msgid "Disc Artwork Path"
-msgstr "Skivbildsmapp"
-
-msgid "Disc Images"
-msgstr "Skivbilder"
-
-msgid "Display"
-msgstr "Visning"
-
-msgid "Display as a carousel"
-msgstr "Visa som en karusell"
-
-msgid "Display as a grid"
-msgstr "Visa som ett rutnät"
-
-msgid "Display as a list"
-msgstr "Visa som en lista"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "Vill du verkligen radera:"
-
-msgid "Do you want to apply it now?"
-msgstr "Vill du tillämpa det nu?"
-
-msgid "Do you want to change language?"
-msgstr "Vill du byta språk?"
-
-msgid "Do you want to download this theme?"
-msgstr "Vill du ladda ner detta tema?"
-
-msgid "Do you want to format:"
-msgstr "Vill du formatera:"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "Vill du använda en alternativ DOL som är känd att fungera?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "Vill du uppdatera/ladda ner alla språkfiler?"
-
-msgid "Done!"
-msgstr "Klar!"
-
-msgid "Download"
-msgstr "Ladda ner"
-
-msgid "Download Boxart image?"
-msgstr "Ladda ner omslagsbild?"
-
-msgid "Download Discart image?"
-msgstr "Ladda ner skivbild?"
-
-msgid "Download Now"
-msgstr "Ladda ner nu"
-
-msgid "Download failed."
-msgstr "Nedladdning misslyckades."
-
-msgid "Download finished"
-msgstr "Nedladdning klar"
-
-msgid "Download request failed."
-msgstr "Nedladdnings begäran misslyckades."
-
-msgid "Downloading Page List:"
-msgstr "Laddar ner lista:"
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "Laddar ner fil:"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr "Laddar ner bild:"
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "FEL"
-
-msgid "ERROR:"
-msgstr "FEL:"
-
-msgid "ERROR: Can't set up theme."
-msgstr "FEL: Kan inte ställa in tema"
-
-msgid "Error"
-msgstr "Fel"
-
-msgid "Error !"
-msgstr "Fel!"
-
-msgid "Error 002 fix"
-msgstr "002 fel fix"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "Fel vid läsning av skiva"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "Fel vid överförning av data."
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "Fel..."
-
-msgid "Error:"
-msgstr "Fel:"
-
-msgid "Extracting files..."
-msgstr "Packar upp filer..."
-
-msgid "FAT: Use directories"
-msgstr "FAT: Använd mappar"
-
-msgid "Failed formating"
-msgstr "Formatering misslyckad"
-
-msgid "Failed to extract."
-msgstr "Uppackning misslyckades."
-
-msgid "Failed to open partition"
-msgstr "Misslyckades att öppna partition"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr ""
-
-msgid "File not found."
-msgstr "Kunde inte hitta fil"
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "Gör klart installation... Ok!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr "Vänd-X"
-
-msgid "Format"
-msgstr "Formatera"
-
-msgid "Formatting, please wait..."
-msgstr "Formaterar, Vänta..."
-
-msgid "Free Space"
-msgstr "Ledigt utrymme"
-
-msgid "Full Shutdown"
-msgstr "Stäng av helt"
-
-msgid "GCT Cheatcodes Path"
-msgstr "Fusksökväg"
-
-msgid "GCT File created"
-msgstr "GCT fil skapad"
-
-msgid "GUI Settings"
-msgstr "GUI inställningar"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr "GXtheme.cfg kunde inte hittas i några undermappar."
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "Språk"
-
-msgid "Game Load"
-msgstr "Spelinställningar"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "Spelstorlek"
-
-msgid "Game Sound Mode"
-msgstr "Spel ljuds läge"
-
-msgid "Game Sound Volume"
-msgstr "Spel ljuds volym"
-
-msgid "Game is already installed:"
-msgstr "Spelet är redan installerat:"
-
-msgid "Game partition"
-msgstr "Spel partition"
-
-msgid "Games"
-msgstr "Spel"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr "Hemmeny"
-
-msgid "Homebrew Apps Path"
-msgstr "Homebrew Apps"
-
-msgid "Homebrew Launcher"
-msgstr "Homebrew Startare"
-
-msgid "Hour"
-msgstr "Timmars"
-
-msgid "How do you want to update?"
-msgstr "Hur vill du uppdatera?"
-
-msgid "How to Shutdown?"
-msgstr "Hur vill du stänga av?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "Om du inte har WiFi, tryck 1 för att få en URL till din WiiTDB.zip"
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "Inkommande fil %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "Inkommande fil %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "Startar nätverk"
-
-msgid "Insert Disk"
-msgstr "Sätt i en skiva"
-
-msgid "Insert a Wii Disc!"
-msgstr "Sätt i en Wii-skiva!"
-
-msgid "Insert an SD-Card to save."
-msgstr "Sätt i ett SD-kort för att spara."
-
-msgid "Insert an SD-Card to use this option."
-msgstr "Sätt i ett SD-kort för att använda denna inställning"
-
-msgid "Install"
-msgstr "Installera"
-
-msgid "Install Error!"
-msgstr "Fel vid installering!"
-
-msgid "Install a game"
-msgstr "Installera ett spel"
-
-msgid "Install partitions"
-msgstr "Installera partitioner"
-
-msgid "Installing content... Ok!"
-msgstr "Installerar innehåll... Ok!"
-
-msgid "Installing game:"
-msgstr "Installerar spel:"
-
-msgid "Installing ticket... Ok!"
-msgstr "Installerar biljett... Ok!"
-
-msgid "Installing title... Ok!"
-msgstr "Installerar titel... Ok!"
-
-msgid "Installing wad"
-msgstr "Installerar wad"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "Det verkar som om du har information som kan vara till nytta för oss. Vänligen skicka informationen vidare till DEV team."
-
-msgid "Jan"
-msgstr ""
-
-msgid "July"
-msgstr "Juli"
-
-msgid "June"
-msgstr "Juni"
-
-msgid "Keep"
-msgstr "Behåll"
-
-msgid "Keyboard"
-msgstr "Tangentbord"
-
-msgid "Language File"
-msgstr "Språk fil"
-
-msgid "Language change:"
-msgstr "Språkbyte:"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "Sökväg till språk ändrad"
-
-msgid "Load"
-msgstr "Ladda"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "Ladda fil från: %s?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "Ladda denna DOL som alternativ DOL?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "Laddar standard språk."
-
-msgid "Loading standard music."
-msgstr "Laddar standard musik."
-
-msgid "Lock Console"
-msgstr "Lås konsol"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr ""
-
-msgid "Mark new games"
-msgstr "Markera nya spel"
-
-msgid "May"
-msgstr "Maj"
-
-msgid "Missing files"
-msgstr "Filer som saknas"
-
-msgid "Mount DVD drive"
-msgstr "Montera DVD läsare"
-
-msgid "Music Loop Mode"
-msgstr "Musik Återuppspelningsläge"
-
-msgid "Music Volume"
-msgstr "Volym"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "Ny skiva upptäckt"
-
-msgid "No"
-msgstr "Nej"
-
-msgid "No Cheatfile found"
-msgstr "Ingen fuskfil hittades"
-
-msgid "No DOL file found on disc."
-msgstr "Ingen DOL-fil hittades på skivan."
-
-msgid "No SD-Card inserted!"
-msgstr "Inget SD-kort isatt!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "Inga fusk har valda"
-
-msgid "No data could be read."
-msgstr "Ingen data kunde läsas."
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "Inga filer saknas!"
-
-msgid "No new updates."
-msgstr "Inga nya uppdateringar"
-
-msgid "No themes found on the site."
-msgstr "Inga teman hittades på sidan."
-
-msgid "Not a WAD file."
-msgstr ""
-
-msgid "Not a Wii Disc"
-msgstr "Inte en Wii-skiva"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "Inte tillräckligt med ledigt minne."
-
-msgid "Not enough free space!"
-msgstr "Inte tillräckligt med ledigt utrymme!"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "Formatet stöds inte!"
-
-msgid "Nov"
-msgstr ""
-
-msgid "OFF"
-msgstr "AV"
-
-msgid "OK"
-msgstr ""
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "Okt"
-
-msgid "Official Site:"
-msgstr "Officiell sida:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "Föräldrakontroll"
-
-msgid "Partition"
-msgstr ""
-
-msgid "Password"
-msgstr "Lösenord"
-
-msgid "Password Changed"
-msgstr "Lösenordet ändrat"
-
-msgid "Password has been changed"
-msgstr "Lösenordet har ändrats"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "Klistra in det i din webbläsare för att hämta din WiiTDB.zip."
-
-msgid "Patch Country Strings"
-msgstr "Ställ in landssträngar"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "Välj från en lista"
-
-msgid "Play Count"
-msgstr "Spelat"
-
-msgid "Play Next"
-msgstr "Spela nästa"
-
-msgid "Play Previous"
-msgstr "Spela förgående"
-
-msgid "Playing Music:"
-msgstr "Spela musik:"
-
-msgid "Please wait..."
-msgstr "Vänligen vänta..."
-
-msgid "Power off the Wii"
-msgstr "Stäng av Wii"
-
-msgid "Prompts Buttons"
-msgstr "Dialogknappar"
-
-msgid "Published by"
-msgstr "Publicerat av"
-
-msgid "Quick Boot"
-msgstr "Snabbstart"
-
-msgid "Reading WAD data... Ok!"
-msgstr "Läser WAD data... Ok!"
-
-msgid "Receiving file from:"
-msgstr "Tar emot filer från:"
-
-msgid "Released"
-msgstr "Släppt"
-
-msgid "Reload SD"
-msgstr "Ladda om SD"
-
-msgid "Remove update"
-msgstr ""
-
-msgid "Rename Game on WBFS"
-msgstr "Döp om spel på WBFS"
-
-msgid "Reset BG Music"
-msgstr "återställ BG musik"
-
-msgid "Reset Playcounter"
-msgstr "Återställ spelat-räknaren"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "Startar om..."
-
-msgid "Return"
-msgstr "Återvänd"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "Återvänd till Wii-menyn"
-
-msgid "Rumble"
-msgstr "Vibration"
-
-msgid "SFX Volume"
-msgstr "SFX Volym"
-
-msgid "Save"
-msgstr "Spara"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "Spara spel lista till"
-
-msgid "Saved"
-msgstr "Sparat"
-
-msgid "Screensaver"
-msgstr "Skärmsläckare"
-
-msgid "Select"
-msgstr "Välj"
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "Välj en DOL"
-
-msgid "Sept"
-msgstr ""
-
-msgid "Set Search-Filter"
-msgstr "Ställ in sök-filter"
-
-msgid "Settings"
-msgstr "Inställningar"
-
-msgid "Shutdown System"
-msgstr "Stäng av helt"
-
-msgid "Shutdown to Idle"
-msgstr "Försätt i viloläge"
-
-msgid "Sort alphabetically"
-msgstr "Sortera alfabetiskt"
-
-msgid "Sort by rank"
-msgstr "Sortera efter rank"
-
-msgid "Sort order by most played"
-msgstr "Sortera efter mest spelade"
-
-msgid "Sound"
-msgstr "Ljud"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "Speciellt tack till:"
-
-msgid "Success"
-msgstr "Lyckat"
-
-msgid "Success:"
-msgstr "Lyckat:"
-
-msgid "Successfully Saved"
-msgstr "Lyckad sparning"
-
-msgid "Successfully Updated"
-msgstr "Uppdateringen lyckades"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr ""
-
-msgid "Successfully deleted:"
-msgstr "Lyckad radering av:"
-
-msgid "Successfully extracted theme."
-msgstr "Extrahering av tema lyckades."
-
-msgid "Successfully installed:"
-msgstr "Lyckad installation av:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "Sökväg till txt koder"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "Den angivna katalogen existerar inte. Vill du skapa den?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr "Tema-mapp nedladdade"
-
-msgid "Theme Downloader"
-msgstr "Tema Nedladdare"
-
-msgid "Theme Path"
-msgstr "Tema-mapp"
-
-msgid "Theme Title:"
-msgstr "Tema titel:"
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "Tid kvar:"
-
-msgid "Title Launcher"
-msgstr "Titel startare"
-
-msgid "Titles from WiiTDB"
-msgstr "Titlar från WiiTDB"
-
-msgid "Tooltips"
-msgstr "Verktygstips"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr "Flytt misslyckades."
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "USB-enhet ej hittad"
-
-msgid "USB Loader GX is protected"
-msgstr "USB Loader GX är skyddad"
-
-msgid "Uninstall"
-msgstr "Avinstallera"
-
-msgid "Uninstall Game"
-msgstr "Avinstallera spel"
-
-msgid "Uninstall Menu"
-msgstr "Avinstallerings meny"
-
-msgid "Uninstalling wad"
-msgstr "Avinstallerar wad"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "Lås upp konsolen för denna inställning."
-
-msgid "Unsupported format, try to extract manually."
-msgstr "Format stöds inte, försök extrahera manuelt."
-
-msgid "Update"
-msgstr "Uppdatera"
-
-msgid "Update All"
-msgstr "Uppdatera alla"
-
-msgid "Update DOL"
-msgstr "Updatera DOL"
-
-msgid "Update Files"
-msgstr "Uppdatera Filer"
-
-msgid "Update Path"
-msgstr "Sökväg till uppdatering"
-
-msgid "Update all Language Files"
-msgstr "Uppdatera alla språk-filer"
-
-msgid "Update failed"
-msgstr "Uppdatering misslyckades"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "Uppdatera språk-filer:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "Uppladdad ZIP fil installerad till homebrew-mappen"
-
-msgid "VIDTV Patch"
-msgstr "VIDTV-Patch"
-
-#, c-format
-msgid "Version: %s"
-msgstr ""
-
-msgid "Video Mode"
-msgstr "Video-läge"
-
-msgid "WIP Patches Path"
-msgstr "WIP patchssökväg"
-
-msgid "Waiting for USB Device"
-msgstr "Väntar på USB-enhet"
-
-msgid "Waiting..."
-msgstr "Väntar..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "Vad vill du uppdatera?"
-
-msgid "WiFi Features"
-msgstr "WiFi funktioner"
-
-msgid "Wii Menu"
-msgstr "Wii-meny"
-
-msgid "Wii Settings"
-msgstr "Wii inställningar"
-
-msgid "WiiTDB Files"
-msgstr "WiiTDB"
-
-msgid "WiiTDB Path"
-msgstr "WiiTDB-sökväg"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr "Wii-ljus"
-
-msgid "Wrong Password"
-msgstr "Fel Lösenord"
-
-msgid "Yes"
-msgstr "Ja"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr "Du måste välja eller formatera en partition"
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "Din URL har sparats som %sWiiTDB_URL.txt."
-
-msgid "and translaters for language files updates"
-msgstr "och översättarna."
-
-msgid "available"
-msgstr "tillgänglig"
-
-msgid "does not exist!"
-msgstr "existerar inte!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "existerar inte! Laddar spel utan fusk."
-
-msgid "files left"
-msgstr "filer kvar"
-
-msgid "files not found on the server!"
-msgstr "filerna hittades inte på servern!"
-
-msgid "for FAT/NTFS support"
-msgstr "för FAT/NTFS stöd"
-
-msgid "for Ocarina"
-msgstr "för Ocarina"
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "för WiiTDB och lagring av omslag / skivbilder"
-
-msgid "for diverse patches"
-msgstr "för diverse patcher"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "för hans underbara verktyg LibWiiGui"
-
-msgid "for hosting the themes"
-msgstr "för hostning av teman"
-
-msgid "for hosting the update files"
-msgstr "för lagring av uppdateringar"
-
-msgid "for the USB Loader source"
-msgstr "och släppet av källkoden"
-
-msgid "formatted!"
-msgstr "formaterad!"
-
-msgid "free"
-msgstr "ledigt"
-
-msgid "not set"
-msgstr "Inget satt"
-
-msgid "of"
-msgstr "av"
-
-msgid "seconds left"
-msgstr "sekunder kvar"
-
-#~ msgid "Install 1:1 Copy"
-#~ msgstr "Installera 1:1 Kopia"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (Alla)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (Barn 7+)"
-
-#~ msgid "1 hour"
-#~ msgstr "1 timme"
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (Tonåringar 12+)"
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (Ungdomar 16+)"
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (Endast Vuxna 18+)"
-
-#~ msgid "An Error occured"
-#~ msgstr "Ett fel har uppstått"
-
-#~ msgid "Are you sure you want to enable Parent Control?"
-#~ msgstr "Är du säker på att du vill aktivera Föräldrakontroll?"
-
-#~ msgid "AutoPatch"
-#~ msgstr "Autopatch"
-
-#~ msgid "Both"
-#~ msgstr "Båda"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "Letar efter uppdateringar"
-
-#~ msgid "Console Default"
-#~ msgstr "Konsolestandard"
-
-#~ msgid "Customs/Original"
-#~ msgstr "Anpassade/Original"
-
-#~ msgid "Disc Default"
-#~ msgstr "Skivans standard"
-
-#~ msgid "DiskFlip"
-#~ msgstr "Vänd Skiva"
-
-#~ msgid "Downloading"
-#~ msgstr "Laddar ner"
-
-#~ msgid "Dutch"
-#~ msgstr "Nederländska"
-
-#~ msgid "English"
-#~ msgstr "Engelska"
-
-#~ msgid "French"
-#~ msgstr "Franska"
-
-#~ msgid "Game ID"
-#~ msgstr "Spel-ID"
-
-#~ msgid "Game Region"
-#~ msgstr "Spelregion"
-
-#~ msgid "German"
-#~ msgstr "Tyska"
-
-#~ msgid "Invalid PIN code"
-#~ msgstr "Ogiltig PIN-kod"
-
-#~ msgid "Italian"
-#~ msgstr "Italienska"
-
-#~ msgid "Japanese"
-#~ msgstr "Japanska"
-
-#~ msgid "Korean"
-#~ msgstr "Koreanska"
-
-#~ msgid "Left"
-#~ msgstr "Vänster"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "Som System-menyn"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "Ladda från SD/USB"
-
-#~ msgid "Locked"
-#~ msgstr "Låst"
-
-#~ msgid "Loop Sound"
-#~ msgstr "Loopa ljudet"
-
-#~ msgid "Neither"
-#~ msgstr "Inget"
-
-#~ msgid "Next"
-#~ msgstr "Nästa"
-
-#~ msgid "Normal"
-#~ msgstr "Vanlig"
-
-#~ msgid "ON"
-#~ msgstr "PÅ"
-
-#~ msgid "Only Customs"
-#~ msgstr "Endast anpassade"
-
-#~ msgid "Only Original"
-#~ msgstr "Endast original"
-
-#~ msgid "Only for Install"
-#~ msgstr "Endast för installering"
-
-#~ msgid "Original/Customs"
-#~ msgstr "Original/Anpassade"
-
-#~ msgid "Parental Control disabled"
-#~ msgstr "Föräldrakontroll avaktiverad"
-
-#~ msgid "Prev"
-#~ msgstr "Förra"
-
-#~ msgid "Right"
-#~ msgstr "Höger"
-
-#~ msgid "SChinese"
-#~ msgstr "SKinesiska"
-
-#~ msgid "Sound+BGM"
-#~ msgstr "Ljud+BGM"
-
-#~ msgid "Sound+Quiet"
-#~ msgstr "Ljud+Tyst"
-
-#~ msgid "Spanish"
-#~ msgstr "Spanska"
-
-#~ msgid "System Default"
-#~ msgstr "Systemets standard"
-
-#~ msgid "TChinese"
-#~ msgstr "TKinesiska"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "Wad filen har blivit installerad. Men kunde inte raderas från SD-kortet."
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "Wad installation misslyckades med fel %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "Kunde inte öppna den nedladdade wad filen (%s)."
-
-#~ msgid "Unlock Parental Control"
-#~ msgstr "Lås upp föräldrakontroll"
-
-#~ msgid "Unlocked"
-#~ msgstr "Upplåst"
-
-#~ msgid "Update to"
-#~ msgstr "Uppdatera till"
-
-#~ msgid "Updating"
-#~ msgstr "Uppdaterar"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "Uppdatera språk-filer..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "Uppdaterar WiiTDB.zip"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "Bredbild 16/9 Fix"
-
-#~ msgid "You don't have Parental Control enabled. If you wish to use Parental Control, enable it in the Wii Settings."
-#~ msgstr "Du har inte föräldrakontroll aktiverad. Om du vill använda föräldrakontroll, aktivera det i Wii inställningar."
-
-#~ msgid "%s : %s May not boot correctly if your System Menu is not up to date."
-#~ msgstr "%s : %s Kanske inte kan starta korrekt om din system meny inte är den nyaste versionen."
-
-#~ msgid "BCA Codes Path changed"
-#~ msgstr "BCA kodssökväg ändrad"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "Tillbaka till Wii-menyn"
-
-#~ msgid "Channels"
-#~ msgstr "Kannaler"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "Kontrollera befintliga konstverk"
-
-#~ msgid "Confirm"
-#~ msgstr "Bekräfta"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "Kunde inte hitta WBFS partition."
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "Kunde inte öppna WBFS partition"
-
-#~ msgid "Could not read the disc."
-#~ msgstr "Kunde inte läsa skiva."
-
-#~ msgid "Could not set USB."
-#~ msgstr "Kunde inte ställa in USB."
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "Omslagsmapp ändrad"
-
-#~ msgid "DOL path changed"
-#~ msgstr "DOL-sökväg ändrad"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "Skivbildsmapp ändrad"
-
-#~ msgid "Display favorites"
-#~ msgstr "Visa favoriter"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "Vill du försöka igen i 30 sekunder?"
-
-#~ msgid "Enable Parental Control"
-#~ msgstr "Aktivera Föräldrakontroll"
-
-#~ msgid "Force"
-#~ msgstr "Tvinga"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "Sökväg till fusk ändrad"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "Homebrew Apps ändrad"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "Sätt i ett SD-kort för att ladda ner bilder."
-
-#~ msgid "Install not possible"
-#~ msgstr "Installation inte möjlig"
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "Troligtvis har den mått som inte är jämnt dividerade med 4."
-
-#~ msgid "Network init error"
-#~ msgstr "Fel vid nätverksstart"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr "Ingen .dol eller .elf fil hittades."
-
-#~ msgid "No Favorites"
-#~ msgstr "Inga favoriter"
-
-#~ msgid "No USB Device"
-#~ msgstr "Ingen USB-enhet"
-
-#~ msgid "No USB Device found."
-#~ msgstr "Ingen USB-enhet hittad."
-
-#~ msgid "No WBFS or FAT/NTFS partition found"
-#~ msgstr "Ingen WBFS eller FAT/NTFS partition hittad"
-
-#~ msgid "Normal Covers"
-#~ msgstr "Vanliga omslag"
-
-#~ msgid "Not Found"
-#~ msgstr "Hittades inte"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "Inte en DOL/ELF fil."
-
-#~ msgid "Reset to standard BGM?"
-#~ msgstr "Återställ till standard BGM?"
-
-#~ msgid "Save Failed"
-#~ msgstr "Sparande misslyckat"
-
-#~ msgid "Selected DOL"
-#~ msgstr "Vald DOL"
-
-#~ msgid "Standard"
-#~ msgstr "Standard"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "TXTCheatcodes sökväg ändrad"
-
-#~ msgid "Theme Download Path changed"
-#~ msgstr "Tema-mapp nedladdade ändrad"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "Tema-mapp ändrad"
-
-#~ msgid "USB Loader GX will only run with Hermes CIOS rev 4! Please make sure you have revision 4 installed!"
-#~ msgstr "USB Loader GX kommer endast köra med Hermes CIOS ver 4! Vänligen kontrollera att du har ver 4 installerad!"
-
-#~ msgid "Update Path changed."
-#~ msgstr "Sökväg till uppdatering ändrad."
-
-#~ msgid "WIP Patches Path changed"
-#~ msgstr "WIP patchssökväg ändrad"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "WiiTDB-sökväg ändrad."
-
-#~ msgid "You are about to delete "
-#~ msgstr "Då håller på att radera "
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "Du har valt att visa favoriter men du har inga favoriter valda."
-
-#~ msgid "You are using NTFS filesystem. Due to possible write errors to a NTFS partition, installing a game is not possible."
-#~ msgstr "Du använder NTFS filsystem. Pågrund av möjliga skriv fel till en NTFS partition, så är det inte möjligt att installera spel."
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "Du har försökt ladda en dålig bild"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "existerar inte! Du har gjort något fel."
-
-#~ msgid "file left"
-#~ msgstr "fil kvar"
diff --git a/Languages/tchinese.lang b/Languages/tchinese.lang
deleted file mode 100644
index 1a7e089c..00000000
--- a/Languages/tchinese.lang
+++ /dev/null
@@ -1,1561 +0,0 @@
-# USB Loader GX language source file.
-# tchinese.lang - r929
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2010-02-15 21:00+0800\n"
-"Last-Translator: Jane.H\n"
-"Language-Team: kyogc, Miller, Mika Li, Jane.H\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr "WAD 儲存為:"
-
-msgid " could not be downloaded."
-msgstr "不能下載."
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr "已經被儲存.內容尚未驗證.部分代碼可能無法作用.如果你遇到問題,請用文字編輯器打開文本文件以獲得更多的信息."
-
-msgid " is not on the server."
-msgstr "不在伺服器上"
-
-msgid "2D Cover Path"
-msgstr "2D封面路徑"
-
-msgid "3D Cover Path"
-msgstr "3D封面路徑"
-
-msgid "3D Covers"
-msgstr "3D 封面"
-
-msgid ">> Deleting tickets..."
-msgstr ">> 刪除 tickets..."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> 刪除 tickets... 錯誤!"
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> 刪除 tickets... 成功!"
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> 刪除 title... 錯誤!"
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> 刪除 title... 成功!"
-
-msgid ">> Deleting title contents..."
-msgstr ">> 刪除 title 內容..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> 刪除 title 內容... 錯誤!"
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> 刪除 title 內容... 成功!"
-
-msgid ">> Deleting title..."
-msgstr ">> 刪除 title..."
-
-msgid ">> Finishing installation..."
-msgstr ">> 完成安裝..."
-
-msgid ">> Installing content #"
-msgstr ">> 安裝程式主體#"
-
-msgid ">> Installing ticket..."
-msgstr ">> 安裝 ticket..."
-
-msgid ">> Installing title..."
-msgstr ">> 安裝 title..."
-
-msgid ">> Reading WAD data..."
-msgstr ">> 讀取 WAD 數據..."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> 讀取 WAD 數據... 錯誤!"
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> 讀取 WAD 數據... 成功!"
-
-msgid "AUTO"
-msgstr "自動"
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr "所有磁區"
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "USB Loader GX 功能已解鎖."
-
-msgid "Alternate DOL"
-msgstr "可選擇Alt DOL文件"
-
-msgid "App Language"
-msgstr "語言設定"
-
-msgid "Apr"
-msgstr "四月"
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "確定?"
-
-msgid "Aug"
-msgstr "八月"
-
-msgid "Author:"
-msgstr "作者"
-
-msgid "AutoInit Network"
-msgstr "自動檢查網路"
-
-msgid "BCA Codes Path"
-msgstr "BAC 路徑"
-
-msgid "BETA revisions"
-msgstr "測試版本"
-
-msgid "Back"
-msgstr "返回"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "返回 HBC 或 Wii 系統目錄"
-
-msgid "Back to Loader"
-msgstr "返回 Loader"
-
-msgid "Backgroundmusic"
-msgstr "背景音樂"
-
-msgid "Big thanks to:"
-msgstr "非常感謝:"
-
-msgid "Block IOS Reload"
-msgstr "阻止 IOS 重新載入"
-
-msgid "Boot/Standard"
-msgstr "啟動/標準"
-
-msgid "Boot?"
-msgstr "啟動?"
-
-msgid "Can't be formatted"
-msgstr "無法格式化"
-
-msgid "Can't create directory"
-msgstr "無法建立目錄"
-
-msgid "Can't create file"
-msgstr "不能建立檔案"
-
-msgid "Can't delete:"
-msgstr "無法刪除:"
-
-msgid "Cancel"
-msgstr "取消"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr "變更路徑"
-
-msgid "Cheatfile is blank"
-msgstr "金手指文件是空的"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "點擊下載封面"
-
-msgid "Click to change game ID"
-msgstr "點擊變更遊戲 ID"
-
-msgid "Clock"
-msgstr "時鐘"
-
-msgid "Close"
-msgstr "關閉"
-
-msgid "Code Download"
-msgstr "金手指下載"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "程式設計者: %s"
-
-msgid "Coding:"
-msgstr "編譯:"
-
-msgid "Connection lost..."
-msgstr "遺失連接..."
-
-msgid "Console"
-msgstr "控制台"
-
-msgid "Console Locked"
-msgstr "控制台已鎖定"
-
-msgid "Console should be unlocked to modify it."
-msgstr "需解鎖以開啟設定功能."
-
-msgid "Continue to install game?"
-msgstr "繼續安裝遊戲?"
-
-msgid "Controllevel"
-msgstr "遊戲分級"
-
-msgid "Correct Password"
-msgstr "密碼正確"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "無法建立 GCT 文件"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "無法啟動 DIP 模塊!"
-
-msgid "Could not initialize network!"
-msgstr "無法啟動網路!"
-
-msgid "Could not open Disc"
-msgstr "無法開啟光碟"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "無法儲存"
-
-msgid "Cover Download"
-msgstr "下載封面"
-
-msgid "Create"
-msgstr "產生"
-
-msgid "Credits"
-msgstr "作者信息"
-
-msgid "Custom Paths"
-msgstr "自定路徑"
-
-msgid "DOL Path"
-msgstr "DOL 路徑"
-
-msgid "Dec"
-msgstr "十二月"
-
-msgid "Default"
-msgstr "預設值"
-
-msgid "Default Gamesettings"
-msgstr "初始化遊戲設定"
-
-msgid "Default Settings"
-msgstr "初始化設定"
-
-msgid "Delete"
-msgstr "刪除"
-
-msgid "Delete ?"
-msgstr "刪除?"
-
-msgid "Delete Cheat GCT"
-msgstr "刪除GCT金手指文件"
-
-msgid "Delete Cheat TXT"
-msgstr "刪除TXT金手指文件"
-
-msgid "Delete Cover Artwork"
-msgstr "刪除封面"
-
-msgid "Delete Disc Artwork"
-msgstr "刪除光碟圖片"
-
-msgid "Design:"
-msgstr "設計者:"
-
-msgid "Developed by"
-msgstr "開發者"
-
-msgid "Directory does not exist!"
-msgstr "目錄不存在"
-
-msgid "Disc Artwork Download"
-msgstr "下載光碟圖像"
-
-msgid "Disc Artwork Path"
-msgstr "光碟圖像路徑"
-
-msgid "Disc Images"
-msgstr "光碟圖像"
-
-msgid "Display"
-msgstr "顯示"
-
-msgid "Display as a carousel"
-msgstr "轉盤模式"
-
-msgid "Display as a grid"
-msgstr "封面牆模式"
-
-msgid "Display as a list"
-msgstr "表單模式"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "確定刪除:"
-
-msgid "Do you want to apply it now?"
-msgstr "要套用設定嗎?"
-
-msgid "Do you want to change language?"
-msgstr "要變更語言嗎?"
-
-msgid "Do you want to download this theme?"
-msgstr "是否要下載這個佈景主題?"
-
-msgid "Do you want to format:"
-msgstr "是否格式化:"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "使用這個已知是正確的 Alt DOL 文件?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "更新/下載語言文件?"
-
-msgid "Done!"
-msgstr "完成"
-
-msgid "Download"
-msgstr "下載"
-
-msgid "Download Boxart image?"
-msgstr "下載封面圖片?"
-
-msgid "Download Discart image?"
-msgstr "下載光碟圖片?"
-
-msgid "Download Now"
-msgstr "現在下載"
-
-msgid "Download failed."
-msgstr "下載失敗"
-
-msgid "Download finished"
-msgstr "下載完成"
-
-msgid "Download request failed."
-msgstr "下載請求失敗"
-
-msgid "Downloading Page List:"
-msgstr "下載主題預覽圖片"
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "檔案下載中"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr "下載圖片"
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "錯誤"
-
-msgid "ERROR:"
-msgstr "錯誤:"
-
-msgid "ERROR: Can't set up theme."
-msgstr "錯誤:無法設定佈景主題"
-
-msgid "Error"
-msgstr "錯誤"
-
-msgid "Error !"
-msgstr "錯誤 !"
-
-msgid "Error 002 fix"
-msgstr "修正002錯誤"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "讀取光碟錯誤"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "檔案傳輸過程錯誤"
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "錯誤..."
-
-msgid "Error:"
-msgstr "錯誤:"
-
-msgid "Extracting files..."
-msgstr "提取文件..."
-
-msgid "FAT: Use directories"
-msgstr "使用目錄"
-
-msgid "Failed formating"
-msgstr "格式化失敗"
-
-msgid "Failed to extract."
-msgstr "提取失敗"
-
-msgid "Failed to open partition"
-msgstr "磁區開啟失敗"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr "二月"
-
-msgid "File not found."
-msgstr "找不到該檔案"
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "正在完成安裝...完成!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr "按鍵規則"
-
-msgid "Format"
-msgstr "格式化"
-
-msgid "Formatting, please wait..."
-msgstr "格式化中, 請稍候..."
-
-msgid "Free Space"
-msgstr "剩餘空間"
-
-msgid "Full Shutdown"
-msgstr "關機"
-
-msgid "GCT Cheatcodes Path"
-msgstr "金手指檔案路徑"
-
-msgid "GCT File created"
-msgstr "GCT 檔案已產生"
-
-msgid "GUI Settings"
-msgstr "介面設定"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr "無法在任何子目錄找到 GXtheme.cfg 檔案"
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "遊戲語言"
-
-msgid "Game Load"
-msgstr "遊戲載入設定"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "遊戲容量"
-
-msgid "Game Sound Mode"
-msgstr "遊戲聲音模式"
-
-msgid "Game Sound Volume"
-msgstr "遊戲聲音音量"
-
-msgid "Game is already installed:"
-msgstr "已安裝過遊戲:"
-
-msgid "Game partition"
-msgstr "遊戲磁區"
-
-msgid "Games"
-msgstr "遊戲數量"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr "主選單"
-
-msgid "Homebrew Apps Path"
-msgstr "HBC 應用程式路徑"
-
-msgid "Homebrew Launcher"
-msgstr "HBC 應用程式"
-
-msgid "Hour"
-msgstr "小時制"
-
-msgid "How do you want to update?"
-msgstr "是否執行更新?"
-
-msgid "How to Shutdown?"
-msgstr "關機選項?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "若無WiFi連線,按1以取得WiiTDB.zip檔案之網址"
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "正在接收文件 %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "正在接收文件 %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "正在啟動網路"
-
-msgid "Insert Disk"
-msgstr "插入光碟"
-
-msgid "Insert a Wii Disc!"
-msgstr "插入 Wii 光碟!"
-
-msgid "Insert an SD-Card to save."
-msgstr "插入 SD 卡以儲存."
-
-msgid "Insert an SD-Card to use this option."
-msgstr "插入 SD 卡使用此功能."
-
-msgid "Install"
-msgstr "安裝"
-
-msgid "Install Error!"
-msgstr "安裝錯誤!"
-
-msgid "Install a game"
-msgstr "安裝遊戲"
-
-msgid "Install partitions"
-msgstr "安裝磁區"
-
-msgid "Installing content... Ok!"
-msgstr "正在安裝內容...完成"
-
-msgid "Installing game:"
-msgstr "正在安裝遊戲:"
-
-msgid "Installing ticket... Ok!"
-msgstr "安裝 ticket... 完成!"
-
-msgid "Installing title... Ok!"
-msgstr "安裝 title... 完成!"
-
-msgid "Installing wad"
-msgstr "安裝 WAD"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "請將這些訊息傳送至開發小組以幫助本軟體開發"
-
-msgid "Jan"
-msgstr "一月"
-
-msgid "July"
-msgstr "七月"
-
-msgid "June"
-msgstr "六月"
-
-msgid "Keep"
-msgstr "保留"
-
-msgid "Keyboard"
-msgstr "鍵盤"
-
-msgid "Language File"
-msgstr "語言檔案"
-
-msgid "Language change:"
-msgstr "變更語言為:"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "語言路徑已變更"
-
-msgid "Load"
-msgstr "載入"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "檔案載入位置: %s"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "載入這個 DOL 作為替代 DOL?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "正在載入預設語言"
-
-msgid "Loading standard music."
-msgstr "正在載入預設音樂"
-
-msgid "Lock Console"
-msgstr "鎖定控制台"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr "三月"
-
-msgid "Mark new games"
-msgstr "標示新遊戲"
-
-msgid "May"
-msgstr "五月"
-
-msgid "Missing files"
-msgstr "缺少的文件"
-
-msgid "Mount DVD drive"
-msgstr "掛載DVD光碟"
-
-msgid "Music Loop Mode"
-msgstr "音樂循環模式"
-
-msgid "Music Volume"
-msgstr "音量"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "新光碟已檢查"
-
-msgid "No"
-msgstr "否"
-
-msgid "No Cheatfile found"
-msgstr "金手指文件沒找到"
-
-msgid "No DOL file found on disc."
-msgstr "光碟中未找到 DOL 文件."
-
-msgid "No SD-Card inserted!"
-msgstr "未插入 SD 卡!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "沒有選擇金手指"
-
-msgid "No data could be read."
-msgstr "無法讀取數據"
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "沒有文件缺少!"
-
-msgid "No new updates."
-msgstr "沒有可用更新"
-
-msgid "No themes found on the site."
-msgstr "在網站上找不到主題"
-
-msgid "Not a WAD file."
-msgstr "不是 WAD 文件."
-
-msgid "Not a Wii Disc"
-msgstr "不是 Wii 的光碟"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "剩餘記憶體不足."
-
-msgid "Not enough free space!"
-msgstr "剩餘空間不足!"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "未支援的格式"
-
-msgid "Nov"
-msgstr "十一月"
-
-msgid "OFF"
-msgstr "關閉"
-
-msgid "OK"
-msgstr "確定"
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "十月"
-
-msgid "Official Site:"
-msgstr "官方網址:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "親子控制"
-
-msgid "Partition"
-msgstr "磁區"
-
-msgid "Password"
-msgstr "密碼"
-
-msgid "Password Changed"
-msgstr "密碼已變更"
-
-msgid "Password has been changed"
-msgstr "密碼已被變更"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "複製這個鏈接到瀏覽器來下載 WiiTDB.zip 文件."
-
-msgid "Patch Country Strings"
-msgstr "修改國別設定"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "從列表中選取"
-
-msgid "Play Count"
-msgstr "執行次數"
-
-msgid "Play Next"
-msgstr "執行下一個"
-
-msgid "Play Previous"
-msgstr "執行上一個"
-
-msgid "Playing Music:"
-msgstr "播放音樂"
-
-msgid "Please wait..."
-msgstr "請稍候..."
-
-msgid "Power off the Wii"
-msgstr "關閉 Wii 主機"
-
-msgid "Prompts Buttons"
-msgstr "顯示校正"
-
-msgid "Published by"
-msgstr "發布者"
-
-msgid "Quick Boot"
-msgstr "快速啟動"
-
-msgid "Reading WAD data... Ok!"
-msgstr "讀取 WAD 數據... 完成!"
-
-msgid "Receiving file from:"
-msgstr "正在接收檔案來源:"
-
-msgid "Released"
-msgstr "發表"
-
-msgid "Reload SD"
-msgstr "重新載入 SD 卡"
-
-msgid "Remove update"
-msgstr "移除更新"
-
-msgid "Rename Game on WBFS"
-msgstr "變更WBFS上的遊戲名稱"
-
-msgid "Reset BG Music"
-msgstr "重置 BG 音樂"
-
-msgid "Reset Playcounter"
-msgstr "重置執行次數"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "正在重新啟動"
-
-msgid "Return"
-msgstr "返回"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "返回 Wii 主目錄"
-
-msgid "Rumble"
-msgstr "震動"
-
-msgid "SFX Volume"
-msgstr "音效音量"
-
-msgid "Save"
-msgstr "儲存"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "儲存遊戲列表至"
-
-msgid "Saved"
-msgstr "已儲存"
-
-msgid "Screensaver"
-msgstr "螢幕保護"
-
-msgid "Select"
-msgstr "選取"
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "選擇一個 DOL"
-
-msgid "Sept"
-msgstr "九月"
-
-msgid "Set Search-Filter"
-msgstr "關鍵字篩選"
-
-msgid "Settings"
-msgstr "設定"
-
-msgid "Shutdown System"
-msgstr "關閉系統"
-
-msgid "Shutdown to Idle"
-msgstr "進入待機狀態"
-
-msgid "Sort alphabetically"
-msgstr "以字母順序排列"
-
-msgid "Sort by rank"
-msgstr "按職級排序"
-
-msgid "Sort order by most played"
-msgstr "以執行次數排列"
-
-msgid "Sound"
-msgstr "音效設定"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "特別感謝"
-
-msgid "Success"
-msgstr "成功"
-
-msgid "Success:"
-msgstr "成功:"
-
-msgid "Successfully Saved"
-msgstr "儲存成功"
-
-msgid "Successfully Updated"
-msgstr "更新已完成"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr "已更新成功,感謝 www.techjawa.com"
-
-msgid "Successfully deleted:"
-msgstr "成功的刪除:"
-
-msgid "Successfully extracted theme."
-msgstr "成功獲取主題."
-
-msgid "Successfully installed:"
-msgstr "成功安裝:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "TXT 金手指文件路徑"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "已進入的目錄不存在。你想要創建一個目錄嗎?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr "佈景主題下載路徑"
-
-msgid "Theme Downloader"
-msgstr "佈景主題下載"
-
-msgid "Theme Path"
-msgstr "佈景主題路徑"
-
-msgid "Theme Title:"
-msgstr "佈景主題標題"
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "剩餘時間:"
-
-msgid "Title Launcher"
-msgstr "系統頻道"
-
-msgid "Titles from WiiTDB"
-msgstr "從 WiiTDB 中顯示遊戲名稱"
-
-msgid "Tooltips"
-msgstr "提示信息"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr "傳輸失敗"
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "找不到 USB 設備"
-
-msgid "USB Loader GX is protected"
-msgstr "USB Loader GX 被鎖定"
-
-msgid "Uninstall"
-msgstr "移除"
-
-msgid "Uninstall Game"
-msgstr "刪除遊戲"
-
-msgid "Uninstall Menu"
-msgstr "刪除選單"
-
-msgid "Uninstalling wad"
-msgstr "移除 WAD"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "解鎖以進行設定"
-
-msgid "Unsupported format, try to extract manually."
-msgstr "不支援的格式,嘗試手動提取。"
-
-msgid "Update"
-msgstr "更新"
-
-msgid "Update All"
-msgstr "升級所有檔案"
-
-msgid "Update DOL"
-msgstr "僅更新主程式"
-
-msgid "Update Files"
-msgstr "更新檔案"
-
-msgid "Update Path"
-msgstr "更新路徑"
-
-msgid "Update all Language Files"
-msgstr "更新所有語言檔案"
-
-msgid "Update failed"
-msgstr "更新失敗"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "正在更新語言檔案:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "已更新安裝在Homebrew目錄的ZIP檔案"
-
-msgid "VIDTV Patch"
-msgstr "VIDTV 修改"
-
-#, c-format
-msgid "Version: %s"
-msgstr "版本: %s"
-
-msgid "Video Mode"
-msgstr "影像格式"
-
-msgid "WIP Patches Path"
-msgstr "WIP 補丁路徑"
-
-msgid "Waiting for USB Device"
-msgstr "等待 USB 設備"
-
-msgid "Waiting..."
-msgstr "等待中..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "更新何者?"
-
-msgid "WiFi Features"
-msgstr "WiFi功能設定"
-
-msgid "Wii Menu"
-msgstr "Wii系統選單"
-
-msgid "Wii Settings"
-msgstr "Wii主機設定"
-
-msgid "WiiTDB Files"
-msgstr "WiiTDB檔案"
-
-msgid "WiiTDB Path"
-msgstr "WiiTDB路徑"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr "光碟機藍光"
-
-msgid "Wrong Password"
-msgstr "密碼錯誤"
-
-msgid "Yes"
-msgstr "是"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr "選擇你要格式化的磁區"
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "鏈接已寫入 %sWiiTDB_URL.txt 文件."
-
-msgid "and translaters for language files updates"
-msgstr "和所有語言包更新的翻譯者"
-
-msgid "available"
-msgstr "可取得"
-
-msgid "does not exist!"
-msgstr "不存在!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "不存在!載入遊戲但不啟用金手指"
-
-msgid "files left"
-msgstr "剩下的檔案"
-
-msgid "files not found on the server!"
-msgstr "伺服器中無此檔案!"
-
-msgid "for FAT/NTFS support"
-msgstr "FAT/NTFS 支持"
-
-msgid "for Ocarina"
-msgstr "的 金手指"
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "設置 WiiTDB 與封面檔案存放空間"
-
-msgid "for diverse patches"
-msgstr "的多種修正"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "的優秀工具 LibWiiGui"
-
-msgid "for hosting the themes"
-msgstr "主要的主題"
-
-msgid "for hosting the update files"
-msgstr "設置更新檔案存放空間"
-
-msgid "for the USB Loader source"
-msgstr "與釋出的原始碼"
-
-msgid "formatted!"
-msgstr "完成格式化!"
-
-msgid "free"
-msgstr "剩餘"
-
-msgid "not set"
-msgstr "未設定"
-
-msgid "of"
-msgstr "的"
-
-msgid "seconds left"
-msgstr "剩餘秒數"
-
-#~ msgid "Install 1:1 Copy"
-#~ msgstr "安裝用 1:1 複製"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (全年齡)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (7歲以上)"
-
-#~ msgid "1 hour"
-#~ msgstr "1 小時"
-
-#~ msgid "10 min"
-#~ msgstr "10 分鐘"
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (12歲以上)"
-
-#~ msgid "20 min"
-#~ msgstr "20 分鐘"
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (16歲以上)"
-
-#~ msgid "3 min"
-#~ msgstr "3 分鐘"
-
-#~ msgid "30 min"
-#~ msgstr "30 分鐘"
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (18歲以上成人)"
-
-#~ msgid "5 min"
-#~ msgstr "5 分鐘"
-
-#~ msgid "An Error occured"
-#~ msgstr "發生一個錯誤"
-
-#~ msgid "Anti"
-#~ msgstr "防止"
-
-#~ msgid "Are you sure you want to enable Parent Control?"
-#~ msgstr "您確定要啟用家長控制?"
-
-#~ msgid "AutoPatch"
-#~ msgstr "自動修改"
-
-#~ msgid "Both"
-#~ msgstr "全部"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "檢查軟件最新版本"
-
-#~ msgid "Console Default"
-#~ msgstr "主機預設值"
-
-#~ msgid "Customs/Original"
-#~ msgstr "自製/原始"
-
-#~ msgid "Disc Default"
-#~ msgstr "光碟預設"
-
-#~ msgid "DiskFlip"
-#~ msgstr "光碟滑動"
-
-#~ msgid "Downloading"
-#~ msgstr "正在下載"
-
-#~ msgid "Dutch"
-#~ msgstr "荷蘭文"
-
-#~ msgid "English"
-#~ msgstr "英文"
-
-#~ msgid "French"
-#~ msgstr "法文"
-
-#~ msgid "GAMEID_Gamename"
-#~ msgstr "GAMEID_遊戲名稱"
-
-#~ msgid "Game ID"
-#~ msgstr "遊戲 ID"
-
-#~ msgid "Game Region"
-#~ msgstr "遊戲區碼"
-
-#~ msgid "Gamename [GAMEID]"
-#~ msgstr "遊戲名稱 [GAMEID]"
-
-#~ msgid "German"
-#~ msgstr "德文"
-
-#~ msgid "Invalid PIN code"
-#~ msgstr "無效的 PIN 碼"
-
-#~ msgid "Italian"
-#~ msgstr "意大利文"
-
-#~ msgid "Japanese"
-#~ msgstr "日文"
-
-#~ msgid "Korean"
-#~ msgstr "韓文"
-
-#~ msgid "Left"
-#~ msgstr "左"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "同系統選單"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "從 SD/USB 載入"
-
-#~ msgid "Locked"
-#~ msgstr "已鎖定"
-
-#~ msgid "Loop Directory"
-#~ msgstr "重複路徑"
-
-#~ msgid "Loop Music"
-#~ msgstr "重複音樂"
-
-#~ msgid "Loop Sound"
-#~ msgstr "重複音樂"
-
-#~ msgid "Neither"
-#~ msgstr "皆不顯示"
-
-#~ msgid "Next"
-#~ msgstr "往後"
-
-#~ msgid "None"
-#~ msgstr "沒有"
-
-#~ msgid "Normal"
-#~ msgstr "一般"
-
-#~ msgid "ON"
-#~ msgstr "開啟"
-
-#~ msgid "Only Customs"
-#~ msgstr "只顯示自製"
-
-#~ msgid "Only Original"
-#~ msgstr "只顯示原始"
-
-#~ msgid "Only for Install"
-#~ msgstr "安裝遊戲時"
-
-#~ msgid "Original/Customs"
-#~ msgstr "原始/自製"
-
-#~ msgid "Parental Control disabled"
-#~ msgstr "關閉親子控制"
-
-#~ msgid "Play Once"
-#~ msgstr "播放一次"
-
-#~ msgid "Prev"
-#~ msgstr "往前"
-
-#~ msgid "Random Directory Music"
-#~ msgstr "隨機選取音樂"
-
-#~ msgid "Right"
-#~ msgstr "右"
-
-#~ msgid "SChinese"
-#~ msgstr "簡體中文"
-
-#~ msgid "Sound+BGM"
-#~ msgstr "音樂+音效"
-
-#~ msgid "Sound+Quiet"
-#~ msgstr "音樂+靜音"
-
-#~ msgid "Spanish"
-#~ msgstr "西班牙文"
-
-#~ msgid "System Default"
-#~ msgstr "系統預設值"
-
-#~ msgid "TChinese"
-#~ msgstr "繁體中文"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "WAD 已安裝,但文件無法從 SD 卡中刪除。"
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "WAD 安裝失敗,錯誤號 %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "不能打開剛下載的 WAD 文件 (%s)."
-
-#~ msgid "Unlock Parental Control"
-#~ msgstr "解鎖家長控制"
-
-#~ msgid "Unlocked"
-#~ msgstr "已解鎖"
-
-#~ msgid "Update to"
-#~ msgstr "升級至"
-
-#~ msgid "Updating"
-#~ msgstr "正在更新"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "正在更新語言檔案..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "正在更新 WiiTDB.zip"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "寬螢幕校正"
-
-#~ msgid "You don't have Parental Control enabled. If you wish to use Parental Control, enable it in the Wii Settings."
-#~ msgstr "家長控制已鎖定。如果要解除 Wii 被鎖住的功能,您必須要先至控制台解除家長控制。"
-
-#~ msgid "%s : %s May not boot correctly if your System Menu is not up to date."
-#~ msgstr "%s : %s 可能無法正確啟動,也許您的系統目錄不是最新的。"
-
-#~ msgid "BCA Codes Path changed"
-#~ msgstr "BAC 路徑已變更"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "返回 Wii 系統目錄"
-
-#~ msgid "Channels"
-#~ msgstr "頻道"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "檢查已存在的插圖"
-
-#~ msgid "Confirm"
-#~ msgstr "確認"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "找不到 WBFS 磁區."
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "無法打開 WBFS 磁區"
-
-#~ msgid "Could not read the disc."
-#~ msgstr "無法讀取光碟."
-
-#~ msgid "Could not set USB."
-#~ msgstr "無法設置 USB."
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "封面路徑已變更"
-
-#~ msgid "DOL path changed"
-#~ msgstr "DOL 路徑已變更"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "光碟圖像路徑已變更"
-
-#~ msgid "Display favorites"
-#~ msgstr "我的最愛模式"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "是否等待 30 秒後重試?"
-
-#~ msgid "Enable Parental Control"
-#~ msgstr "啟用親子控制"
-
-#~ msgid "Force"
-#~ msgstr "強制"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "金手指檔案路徑已變更"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "HBC 應用程式路徑已變更"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "插入 SD 卡以下載封面."
-
-#~ msgid "Install not possible"
-#~ msgstr "無法安裝"
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "圖片格式錯誤,可能它的尺寸不是 4 的倍數."
-
-#~ msgid "Network init error"
-#~ msgstr "網路啟動錯誤"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr "找不到 .dol 或 .elf 文件"
-
-#~ msgid "No Favorites"
-#~ msgstr "沒有收藏記錄"
-
-#~ msgid "No USB Device"
-#~ msgstr "沒有 USB 設備"
-
-#~ msgid "No USB Device found."
-#~ msgstr "找不到 USB 設備."
-
-#~ msgid "No WBFS or FAT/NTFS partition found"
-#~ msgstr "找不到 WBFS 和 FAT/NTFS 磁區中的遊戲"
-
-#~ msgid "Normal Covers"
-#~ msgstr "普通封面"
-
-#~ msgid "Not Found"
-#~ msgstr "沒找到"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "不是 DOL/ELF 文件."
-
-#~ msgid "Reset to standard BGM?"
-#~ msgstr "重置回標準 BG 音樂"
-
-#~ msgid "Save Failed"
-#~ msgstr "儲存失敗"
-
-#~ msgid "Selected DOL"
-#~ msgstr "已選擇 DOL"
-
-#~ msgid "Standard"
-#~ msgstr "預設"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "TXT 金手指文件路徑已變更"
-
-#~ msgid "Theme Download Path changed"
-#~ msgstr "佈景主題下載路徑已變更"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "佈景主題路徑已變更"
-
-#~ msgid "USB Loader GX will only run with Hermes CIOS rev 4! Please make sure you have revision 4 installed!"
-#~ msgstr "USB Loader GX 只能執行 Hermes CIO rev4!請確認您安裝的版本是 rev4!"
-
-#~ msgid "Update Path changed."
-#~ msgstr "更新路徑已變更"
-
-#~ msgid "WIP Patches Path changed"
-#~ msgstr "WIP 補丁路徑已更新"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "WiiTDB路徑已變更"
-
-#~ msgid "You are about to delete "
-#~ msgstr "您即將刪除"
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "你選擇顯示收藏夾但裡面還沒有任何收藏"
-
-#~ msgid "You are using NTFS filesystem. Due to possible write errors to a NTFS partition, installing a game is not possible."
-#~ msgstr "您正在使用 NTFS 文件系統。由於可能一個錯誤寫入到一個 NTFS 分區,這時候是無法安裝遊戲的。"
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "載入的影像有問題"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "不存在!檔案錯誤"
-
-#~ msgid "file left"
-#~ msgstr "剩餘文件"
diff --git a/Languages/thai.lang b/Languages/thai.lang
deleted file mode 100644
index e6ed4bea..00000000
--- a/Languages/thai.lang
+++ /dev/null
@@ -1,1498 +0,0 @@
-# USB Loader GX language source file.
-# thai.lang - r826
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2009-10-01 01:00+0200\n"
-"Last-Translator: Nitro_subzero \n"
-"Language-Team: Nitro_subzero\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr " บันทึก Wad เป็น:"
-
-msgid " could not be downloaded."
-msgstr " ไม่สามารถดาวน์โหลดได้"
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr " ถูกบันทึกแล้ว ข้อความยังไม่ถูกตรวจสอบ บางส่วนของโค๊ดอาจไม่สามารถทำงานได้ ถ้าคุณพบปัญหา เปิดโปรแกรมแก้ไขข้อความ เพื่อข้อมูลเพิ่มเติม."
-
-msgid " is not on the server."
-msgstr " ไม่อยู่บนแม่ข่าย"
-
-msgid "2D Cover Path"
-msgstr "ที่เก็บ ปก 2D"
-
-msgid "3D Cover Path"
-msgstr "ที่เก็บ ปก 3D"
-
-msgid "3D Covers"
-msgstr "หน้าปก 3D"
-
-msgid ">> Deleting tickets..."
-msgstr ">> ลบ Tickets..."
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> ลบ tickets...ผิดพลาด ! "
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> ลบ tickets...สำเร็จ ! "
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> ลบ Title...ผิดพลาด ! "
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> ลบ Title...สำเร็จ ! "
-
-msgid ">> Deleting title contents..."
-msgstr ">> ลบเนื้อหา Title..."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> ลบเนื้อหา Title...ผิดพลาด ! "
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> ลบเนื้อหา Title...สำเร็จ ! "
-
-msgid ">> Deleting title..."
-msgstr ">> ลบ Title..."
-
-msgid ">> Finishing installation..."
-msgstr ">> ติดตั้งเสร็จแล้ว..."
-
-msgid ">> Installing content #"
-msgstr ">> กำลังติดตั้ง เนื้อหา #"
-
-msgid ">> Installing ticket..."
-msgstr ">> กำลังติดตั้ง ticket..."
-
-msgid ">> Installing title..."
-msgstr ">> กำลังติดตั้ง title..."
-
-msgid ">> Reading WAD data..."
-msgstr ">> กำลังอ่านข้อมูล WAD..."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> กำลังอ่านข้อมูล WAD...ผิดพลาด ! "
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> กำลังอ่านข้อมูล WAD...สำเร็จ !"
-
-msgid "AUTO"
-msgstr "อัตโนมัติ"
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr ""
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "ความสามารถทั้งหมดของ USB Loader GX ถูกเปิดให้ใช้."
-
-msgid "Alternate DOL"
-msgstr "เปลี่ยน DOL "
-
-msgid "App Language"
-msgstr "ภาษาของโปรแกรม"
-
-msgid "Apr"
-msgstr "เมษ."
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "แน่ใจหรือไม่ ?"
-
-msgid "Aug"
-msgstr "สค."
-
-msgid "Author:"
-msgstr "ผู้แต่ง:"
-
-msgid "AutoInit Network"
-msgstr "ทำการเชื่อมต่อเครือข่าย"
-
-msgid "BCA Codes Path"
-msgstr ""
-
-msgid "BETA revisions"
-msgstr ""
-
-msgid "Back"
-msgstr "ย้อนกลับ"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "กลับไป HBC หรือ เมนู Wii"
-
-msgid "Back to Loader"
-msgstr "กลับไปที่ Loader"
-
-msgid "Backgroundmusic"
-msgstr "ดนตรีเบื้องหลัง"
-
-msgid "Big thanks to:"
-msgstr "ขอขอบคุณ:"
-
-msgid "Block IOS Reload"
-msgstr "โหลดบล๊อค IOS อีกครั้ง"
-
-msgid "Boot/Standard"
-msgstr "บูต/มาตราฐาน"
-
-msgid "Boot?"
-msgstr "บูต?"
-
-msgid "Can't be formatted"
-msgstr "ไม่สามารถฟอร์แมตได้"
-
-msgid "Can't create directory"
-msgstr "ไม่สามารถสร้างไดเรคทอรี่ได้"
-
-msgid "Can't create file"
-msgstr "สร้างไฟล์ไม่ได้"
-
-msgid "Can't delete:"
-msgstr "ไม่สามารถลบได้:"
-
-msgid "Cancel"
-msgstr "ยกเลิก"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr ""
-
-msgid "Cheatfile is blank"
-msgstr "ไฟล์สูตรโกง ว่างเปล่า"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "กดเพื่อดาวน์โหลดหน้าปก"
-
-msgid "Click to change game ID"
-msgstr "กดเพื่อเปลี่ยน ID เกมส์"
-
-msgid "Clock"
-msgstr "นาฬิกา"
-
-msgid "Close"
-msgstr "ปิด"
-
-msgid "Code Download"
-msgstr "ดาวน์โหลดโค๊ด"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "โค๊ดโดย: %s"
-
-msgid "Coding:"
-msgstr "โค๊ด:"
-
-msgid "Connection lost..."
-msgstr ""
-
-msgid "Console"
-msgstr "คอนโซล"
-
-msgid "Console Locked"
-msgstr "คอนโซลถูกล๊อค"
-
-msgid "Console should be unlocked to modify it."
-msgstr "ปลดล๊อคคอนโซลก่อน ถึงจะทำการเปลี่ยนแปลงได้"
-
-msgid "Continue to install game?"
-msgstr "ทำต่อ เพื่อติดตั้งเกมส์?"
-
-msgid "Controllevel"
-msgstr "ระดับการควบคุม"
-
-msgid "Correct Password"
-msgstr "รหัสผ่านถูกต้อง"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "ไม่สามารถสร้างไฟล์ GCT"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "ไม่สามารถเปิดใช้โมดูล DIP ได้ !"
-
-msgid "Could not initialize network!"
-msgstr "ไม่สามารถเชื่อมต่อกับเครือข่ายได้ !"
-
-msgid "Could not open Disc"
-msgstr "เปิดจากแผ่นไม่ได้ !"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "บันทึกไม่ได้"
-
-msgid "Cover Download"
-msgstr "ดาวน์โหลดปก"
-
-msgid "Create"
-msgstr "สร้าง"
-
-msgid "Credits"
-msgstr "เครดิต"
-
-msgid "Custom Paths"
-msgstr "กำหนด ที่เก็บ"
-
-msgid "DOL Path"
-msgstr "ที่เก็บ DOL"
-
-msgid "Dec"
-msgstr "ธค."
-
-msgid "Default"
-msgstr "ค่าแรกกำหนด"
-
-msgid "Default Gamesettings"
-msgstr "ค่าแรกกำหนด"
-
-msgid "Default Settings"
-msgstr "ค่าแรกกำหนด"
-
-msgid "Delete"
-msgstr "ลบ"
-
-msgid "Delete ?"
-msgstr "ลบ ?"
-
-msgid "Delete Cheat GCT"
-msgstr "ลบไฟล์โกงเกมส์"
-
-msgid "Delete Cheat TXT"
-msgstr "ลบ Cheat TXT"
-
-msgid "Delete Cover Artwork"
-msgstr "ลบ ภาพกล่อง"
-
-msgid "Delete Disc Artwork"
-msgstr "ลบ ภาพแผ่น"
-
-msgid "Design:"
-msgstr "ออกแบบ:"
-
-msgid "Developed by"
-msgstr "พัฒนาโดย "
-
-msgid "Directory does not exist!"
-msgstr "ไม่พบไดเรคทอรี่นี้ !"
-
-msgid "Disc Artwork Download"
-msgstr "ดาวน์โหลดภาพแผ่น"
-
-msgid "Disc Artwork Path"
-msgstr "ที่เก็บ ภาพแผ่น"
-
-msgid "Disc Images"
-msgstr "ภาพแผ่น"
-
-msgid "Display"
-msgstr "การแสดงผล"
-
-msgid "Display as a carousel"
-msgstr "แสดงผลแบบ ม้าหมุน"
-
-msgid "Display as a grid"
-msgstr "แสดงผลแบบ ตาราง"
-
-msgid "Display as a list"
-msgstr "แสดงผลแบบ รายการ"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "ต้องการที่จะลบใช่ไหม:"
-
-msgid "Do you want to apply it now?"
-msgstr ""
-
-msgid "Do you want to change language?"
-msgstr "ต้องการจะเปลี่ยนภาษา ?"
-
-msgid "Do you want to download this theme?"
-msgstr "ต้องการดาวน์โหลดธีมนี้ ?"
-
-msgid "Do you want to format:"
-msgstr "ต้องการฟอร์แมต:"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "ต้องการจะใช้ alt DOL เฉพาะที่รู้ว่าถูกต้อง?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "ต้องการอัพเดทหรือดาวน์โหลด ไฟล์ภาษา ทั้งหมด?"
-
-msgid "Done!"
-msgstr "เสร็จ!"
-
-msgid "Download"
-msgstr "ดาวน์โหลด"
-
-msgid "Download Boxart image?"
-msgstr "ดาวน์โหลดภาพกล่อง ?"
-
-msgid "Download Discart image?"
-msgstr "ดาวน์โหลดภาพแผ่น ?"
-
-msgid "Download Now"
-msgstr "เริ่มการดาวน์โหลด"
-
-msgid "Download failed."
-msgstr "ดาวน์โหลดไม่ได้"
-
-msgid "Download finished"
-msgstr "ดาวน์โหลดเสร็จแล้ว"
-
-msgid "Download request failed."
-msgstr "ดาวน์โหลดไม่ได้"
-
-msgid "Downloading Page List:"
-msgstr "รายการที่กำลังดาวน์โหลด:"
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "กำลังดาวน์โหลดไฟล์:"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr "ภาพที่กำลังดาวน์โหลด:"
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "ผิดพลาด"
-
-msgid "ERROR:"
-msgstr "ผิดพลาด:"
-
-msgid "ERROR: Can't set up theme."
-msgstr ""
-
-msgid "Error"
-msgstr "ผิดพลาด"
-
-msgid "Error !"
-msgstr "ผิดพลาด !"
-
-msgid "Error 002 fix"
-msgstr "แก้ไข Error002"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "อ่านแผ่นไม่ได้"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "ผิดพลาดขณะรับส่งข้อมูล"
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "ผิดพลาด..."
-
-msgid "Error:"
-msgstr "ผิดพลาด:"
-
-msgid "Extracting files..."
-msgstr "กำลังขยายไฟล์..."
-
-msgid "FAT: Use directories"
-msgstr ""
-
-msgid "Failed formating"
-msgstr "ฟอร์แมตไม่ได้"
-
-msgid "Failed to extract."
-msgstr "ขยายไฟล์ไม่ได้"
-
-msgid "Failed to open partition"
-msgstr "ไม่สามารถเข้าถึงพาร์ทิชั่นได้"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr "กพ."
-
-msgid "File not found."
-msgstr "ไม่พบไฟล์"
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "การติดตั้งเสร็จแล้ว !"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr "กลับ-X"
-
-msgid "Format"
-msgstr "ฟอร์แมต"
-
-msgid "Formatting, please wait..."
-msgstr "กำลังฟอร์แมต,รอสักครู่..."
-
-msgid "Free Space"
-msgstr "พื้นที่ว่าง"
-
-msgid "Full Shutdown"
-msgstr "ปิดอย่างสมบรูณ์"
-
-msgid "GCT Cheatcodes Path"
-msgstr "ที่เก็บ สูตรโกง"
-
-msgid "GCT File created"
-msgstr "ไฟล์ GCT ถูกสร้าง"
-
-msgid "GUI Settings"
-msgstr "ปรับแต่งหน้าจอ"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr ""
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "ภาษาเกมส์"
-
-msgid "Game Load"
-msgstr "โหลดเกมส์"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "ขนาดของเกมส์"
-
-msgid "Game Sound Mode"
-msgstr "โหมดเสียงในเกมส์"
-
-msgid "Game Sound Volume"
-msgstr "ระดับเสียงในเกมส์"
-
-msgid "Game is already installed:"
-msgstr "เกมส์นี้ถูกติดตั้งอยู่แล้ว:"
-
-msgid "Game partition"
-msgstr ""
-
-msgid "Games"
-msgstr "เกมส์"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr "เมนู HOME"
-
-msgid "Homebrew Apps Path"
-msgstr "ที่เก็บโปรแกรม Homebrew"
-
-msgid "Homebrew Launcher"
-msgstr "Homebrew Launcher"
-
-msgid "Hour"
-msgstr "ชั่วโมง"
-
-msgid "How do you want to update?"
-msgstr "ต้องการอัพเดทแบบไหน ?"
-
-msgid "How to Shutdown?"
-msgstr "ต้องการปิดแบบไหน ?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "ถ้าไม่มี Wifi กด 1 เพื่อแสดง URL สำหรับดาวน์โหลด WiiTDB.zip"
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "ดาวน์โหลดไฟล์ %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "ดาวน์โหลดไฟล์ %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "เชื่อมต่อเครือข่าย"
-
-msgid "Insert Disk"
-msgstr "ใส่แผ่น"
-
-msgid "Insert a Wii Disc!"
-msgstr "ใส่แผ่น Wii !"
-
-msgid "Insert an SD-Card to save."
-msgstr "ใส่ SD card เพื่อบันทึก"
-
-msgid "Insert an SD-Card to use this option."
-msgstr "ใส่ SD card เพื่อใช้ตัวเลือกนี้ "
-
-msgid "Install"
-msgstr "ติดตั้ง"
-
-msgid "Install Error!"
-msgstr "ผิดพลาดขณะติดตั้ง!"
-
-msgid "Install a game"
-msgstr "ติดตั้งเกมส์"
-
-msgid "Install partitions"
-msgstr ""
-
-msgid "Installing content... Ok!"
-msgstr "ติดตั้งเนื้อหา... สำเร็จ!"
-
-msgid "Installing game:"
-msgstr "กำลังติดตั้งเกมส์:"
-
-msgid "Installing ticket... Ok!"
-msgstr "ติดตั้ง ticket... สำเร็จ!"
-
-msgid "Installing title... Ok!"
-msgstr "ติดตั้ง Title... สำเร็จ!"
-
-msgid "Installing wad"
-msgstr "ติดตั้ง WAD"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "ดูเหมือนว่าคุณมีข้อมูลที่จำเป็นต่อการพัฒนาโปรแกรม กรุณาส่งข้อมูลนั้นให้ทีมพัฒนาด้วย."
-
-msgid "Jan"
-msgstr "มค."
-
-msgid "July"
-msgstr "กค."
-
-msgid "June"
-msgstr "มิย."
-
-msgid "Keep"
-msgstr "เก็บ"
-
-msgid "Keyboard"
-msgstr "แป้นพิมพ์"
-
-msgid "Language File"
-msgstr "ไฟล์ภาษา"
-
-msgid "Language change:"
-msgstr "เปลี่ยนภาษา:"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "ที่เก็บไฟล์ภาษาถูกเปลี่ยนแปลง"
-
-msgid "Load"
-msgstr "โหลด"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "โหลดไฟล์จาก: %s ?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "โหลด DOL นี้เป็น alternate DOL?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "โหลดภาษามาตราฐาน."
-
-msgid "Loading standard music."
-msgstr "โหลดเพลงมาตราฐาน"
-
-msgid "Lock Console"
-msgstr "ล๊อค Console"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr "มีค."
-
-msgid "Mark new games"
-msgstr ""
-
-msgid "May"
-msgstr "พค."
-
-msgid "Missing files"
-msgstr "ไฟล์ที่หาไม่พบ"
-
-msgid "Mount DVD drive"
-msgstr "เชื่อม DVD ไดร์ฟ"
-
-msgid "Music Loop Mode"
-msgstr ""
-
-msgid "Music Volume"
-msgstr "ความดังเสียงเพลง"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "พบแผ่นเกมส์ใหม่"
-
-msgid "No"
-msgstr "ไม่"
-
-msgid "No Cheatfile found"
-msgstr "ไม่พบไฟล์โกงเกมส์"
-
-msgid "No DOL file found on disc."
-msgstr "ไม่มีไฟล์ DOL ในแผ่น"
-
-msgid "No SD-Card inserted!"
-msgstr "ไม่ได้เสียบ SD card!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "ไม่ได้เลือกการโกงเกมส์ไว้"
-
-msgid "No data could be read."
-msgstr "ไม่มีข้อมูลที่อ่านไม่ได้"
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "ไม่มีไฟล์ที่หายไป"
-
-msgid "No new updates."
-msgstr "ไม่มีไฟล์ Update ตัวใหม่"
-
-msgid "No themes found on the site."
-msgstr "ไม่พบธีมบนเวบไซต์"
-
-msgid "Not a WAD file."
-msgstr ""
-
-msgid "Not a Wii Disc"
-msgstr "ไม่ใช่แผ่นเกมส์ Wii"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "มีหน่วยความจำเหลือไม่พอ"
-
-msgid "Not enough free space!"
-msgstr "มีที่ว่างเหลือไม่พอ !"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "ไม่รองรับรูปแบบไฟล์นี้"
-
-msgid "Nov"
-msgstr "พย."
-
-msgid "OFF"
-msgstr "ปิด"
-
-msgid "OK"
-msgstr "ตกลง"
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "ตค."
-
-msgid "Official Site:"
-msgstr "เวบไซต์อย่างเป็นทางการ:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "กำหนดอายุ"
-
-msgid "Partition"
-msgstr "พาร์ติชั่น"
-
-msgid "Password"
-msgstr "รหัสผ่าน"
-
-msgid "Password Changed"
-msgstr "รหัสผ่านถูกเปลี่ยนแปลง"
-
-msgid "Password has been changed"
-msgstr "รหัสผ่านถูกเปลี่ยนแปลง"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "วางในเวบบราวเซอร์เพื่อดึงข้อมูล WiiTDB.zip"
-
-msgid "Patch Country Strings"
-msgstr "แก้อักขระประเทศ"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "เลือกจากรายการ"
-
-msgid "Play Count"
-msgstr "จำนวนที่เล่น"
-
-msgid "Play Next"
-msgstr ""
-
-msgid "Play Previous"
-msgstr ""
-
-msgid "Playing Music:"
-msgstr ""
-
-msgid "Please wait..."
-msgstr "รอสักครู่"
-
-msgid "Power off the Wii"
-msgstr "ปิดเครื่อง Wii"
-
-msgid "Prompts Buttons"
-msgstr "ปุ่มเตรียมตัว"
-
-msgid "Published by"
-msgstr "เผยแพร่โดย"
-
-msgid "Quick Boot"
-msgstr "บูตแบบเร็ว"
-
-msgid "Reading WAD data... Ok!"
-msgstr "อ่านข้อมูล WAD... สำเร็จ!"
-
-msgid "Receiving file from:"
-msgstr "ได้รับไฟล์จาก:"
-
-msgid "Released"
-msgstr "ปล่อย"
-
-msgid "Reload SD"
-msgstr "โหลด SD ใหม่"
-
-msgid "Remove update"
-msgstr ""
-
-msgid "Rename Game on WBFS"
-msgstr "เปลี่ยนชื่อเกมส์บน WBFS"
-
-msgid "Reset BG Music"
-msgstr ""
-
-msgid "Reset Playcounter"
-msgstr "เคลียร์การนับจำนวนที่เล่น"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "รีสตารท์..."
-
-msgid "Return"
-msgstr "กลับ"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "กลับไปที่เมนู Wii"
-
-msgid "Rumble"
-msgstr "สั่น"
-
-msgid "SFX Volume"
-msgstr "ความดังของ SFX"
-
-msgid "Save"
-msgstr "บันทึก"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "บันทึกรายชื่อเกมส์ไปที่"
-
-msgid "Saved"
-msgstr "บันทึกแล้ว"
-
-msgid "Screensaver"
-msgstr "รักษาหน้าจอ"
-
-msgid "Select"
-msgstr ""
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "เลือก DOL"
-
-msgid "Sept"
-msgstr "กย."
-
-msgid "Set Search-Filter"
-msgstr "กำหนดเงื่อนไขการค้นหา"
-
-msgid "Settings"
-msgstr "กำหนดค่า"
-
-msgid "Shutdown System"
-msgstr "ปิดระบบ"
-
-msgid "Shutdown to Idle"
-msgstr "เข้าโหมด Idle"
-
-msgid "Sort alphabetically"
-msgstr "เรียงตามตัวอักษร"
-
-msgid "Sort by rank"
-msgstr "เรียงตามอันดับ"
-
-msgid "Sort order by most played"
-msgstr "เรียงตามความถี่ในการเล่น"
-
-msgid "Sound"
-msgstr "เสียง"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "ขอขอบคุณอย่างสูง:"
-
-msgid "Success"
-msgstr "สำเร็จ"
-
-msgid "Success:"
-msgstr "สำเร็จ:"
-
-msgid "Successfully Saved"
-msgstr "บันทึกสำเร็จ"
-
-msgid "Successfully Updated"
-msgstr "อัพเดทสำเร็จ"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr ""
-
-msgid "Successfully deleted:"
-msgstr "ลบสำเร็จ:"
-
-msgid "Successfully extracted theme."
-msgstr "ขยายไฟล์ธีมสำเร็จ."
-
-msgid "Successfully installed:"
-msgstr "ติดตั้งสำเร็จ:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "ที่เก็บ TXTCheatcodes"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "ไม่พบไดเรคทอรี่นี้ ต้องการสร้างใหม่รึไม่ ?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr "ตำแหน่งที่ดาวน์โหลดธีม"
-
-msgid "Theme Downloader"
-msgstr "ตัวช่วยดาวน์โหลดธีม"
-
-msgid "Theme Path"
-msgstr "ที่อยู่ Theme"
-
-msgid "Theme Title:"
-msgstr "ชื่อธีม:"
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "เหลือเวลาอีก:"
-
-msgid "Title Launcher"
-msgstr "Title Launcher"
-
-msgid "Titles from WiiTDB"
-msgstr "Title จาก WiiTDB"
-
-msgid "Tooltips"
-msgstr "คำแนะนำ"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr "ถ่ายโอนไม่ได้"
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "ไม่พบอุปกรณ์ USB"
-
-msgid "USB Loader GX is protected"
-msgstr "USB Loader GX 5 ถูกป้องกัน"
-
-msgid "Uninstall"
-msgstr "ถอนการติดตั้ง"
-
-msgid "Uninstall Game"
-msgstr "ถอนการติดตั้ง"
-
-msgid "Uninstall Menu"
-msgstr "ถอนการติดตั้ง"
-
-msgid "Uninstalling wad"
-msgstr "ถอนการติดตั้ง wad"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "ปลดล๊อค Console ก่อน เพื่อใช้ตัวเลือกนี้"
-
-msgid "Unsupported format, try to extract manually."
-msgstr "ไม่สนับสนุนไฟล์นี้ ลองขยายไฟล์เอง"
-
-msgid "Update"
-msgstr "อัพเดท"
-
-msgid "Update All"
-msgstr "อัทเดททั้งหมด"
-
-msgid "Update DOL"
-msgstr "อัพเดท DOL"
-
-msgid "Update Files"
-msgstr "อัพเดทไฟล์"
-
-msgid "Update Path"
-msgstr "ที่อยู่ Update"
-
-msgid "Update all Language Files"
-msgstr "อัพเดทภาษาทั้งหมด"
-
-msgid "Update failed"
-msgstr "อัพเดทล้มเหลว"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "กำลังอัพเดทไฟล์ภาษา:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "อัพโหลดไฟล์ zip ไปที่ไดเรคทอรี่ homebrew"
-
-msgid "VIDTV Patch"
-msgstr "ปรับแก้ VIDTV"
-
-#, c-format
-msgid "Version: %s"
-msgstr "เวอร์ชั่น: %s"
-
-msgid "Video Mode"
-msgstr "โหมดการแสดงผลภาพ"
-
-msgid "WIP Patches Path"
-msgstr ""
-
-msgid "Waiting for USB Device"
-msgstr "กำลังรออุปกรณ์ USB"
-
-msgid "Waiting..."
-msgstr "กำลังรอ..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "คุณต้องการอัพเดทอะไร ?"
-
-msgid "WiFi Features"
-msgstr "ความสามารถของ Wi Fi"
-
-msgid "Wii Menu"
-msgstr "เมนู Wii"
-
-msgid "Wii Settings"
-msgstr "การปรับแต่ง Wii"
-
-msgid "WiiTDB Files"
-msgstr "ไฟล์ WiiTDB"
-
-msgid "WiiTDB Path"
-msgstr "ที่อยู่ WiiTDB"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr "ความสว่างของ Wii"
-
-msgid "Wrong Password"
-msgstr "รหัสผ่านผิดพลาด"
-
-msgid "Yes"
-msgstr "ใช่"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr ""
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "URL ของคุณถูกบันทึกใน %sWiiTDB_URL.txt."
-
-msgid "and translaters for language files updates"
-msgstr "และผู้แปลภาษาสำหรับการอัพเดท"
-
-msgid "available"
-msgstr "ว่างอยู่"
-
-msgid "does not exist!"
-msgstr "ไม่มี!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "ไม่มี! โหลดเกมส์โดยไม่ใช้การโกงเกมส์."
-
-msgid "files left"
-msgstr "ไฟล์ที่ยังเหลือ"
-
-msgid "files not found on the server!"
-msgstr "ไม่พบไฟล์/i บนเซิฟเวอร์!"
-
-msgid "for FAT/NTFS support"
-msgstr ""
-
-msgid "for Ocarina"
-msgstr "สำหรับ Ocarina"
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "สำหรับ WiiTDB และ ปก/รูปแผ่นดิสก์"
-
-msgid "for diverse patches"
-msgstr "แก้ diverse"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "สำหรับสุดยอด tool ของเค้า LibWiiGui"
-
-msgid "for hosting the themes"
-msgstr "สำหรับให้ฝากธีม"
-
-msgid "for hosting the update files"
-msgstr "สำหรับที่เก็บไฟล์อัพเดท"
-
-msgid "for the USB Loader source"
-msgstr "สำหรับรหัสโปรแกรม USB Loader"
-
-msgid "formatted!"
-msgstr "ฟอร์แมต!"
-
-msgid "free"
-msgstr "ว่างอยู่"
-
-msgid "not set"
-msgstr "ไม่ได้กำหนด"
-
-msgid "of"
-msgstr "จาก"
-
-msgid "seconds left"
-msgstr "วินาทีที่เหลือ"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (ทุกคน)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (เด็ก 7+)"
-
-#~ msgid "1 hour"
-#~ msgstr "1 ชม."
-
-#~ msgid "10 min"
-#~ msgstr "10 นาที"
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (วัยรุ่น 12+)"
-
-#~ msgid "20 min"
-#~ msgstr "20 นาที"
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (เต็มวัย 16+)"
-
-#~ msgid "3 min"
-#~ msgstr "3 นาที"
-
-#~ msgid "30 min"
-#~ msgstr "30 นาที"
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (เฉพาะผู้ใหญ่ 18+)"
-
-#~ msgid "5 min"
-#~ msgstr "5 นาที"
-
-#~ msgid "An Error occured"
-#~ msgstr "พบความผิดพลาด"
-
-#~ msgid "Anti"
-#~ msgstr "ต้าน"
-
-#~ msgid "AutoPatch"
-#~ msgstr "แก้ไขอัตโนมัติ"
-
-#~ msgid "Both"
-#~ msgstr "ทั้งคู่"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "ตรวจสอบหาอัพเดท"
-
-#~ msgid "Console Default"
-#~ msgstr "ค่าตั้งต้นของคอนโซล"
-
-#~ msgid "Customs/Original"
-#~ msgstr "กำหนดเอง/ดั้งเดิม"
-
-#~ msgid "Disc Default"
-#~ msgstr "ค่าตั้งต้นแผ่น"
-
-#~ msgid "DiskFlip"
-#~ msgstr "สลับด้านแผ่น"
-
-#~ msgid "Downloading"
-#~ msgstr "กำลังดาวน์โหลด"
-
-#~ msgid "Dutch"
-#~ msgstr "เนเธอร์แลนด์"
-
-#~ msgid "English"
-#~ msgstr "อังกฤษ"
-
-#~ msgid "French"
-#~ msgstr "ฝรั่งเศส"
-
-#~ msgid "Game ID"
-#~ msgstr "เกมส์ ID"
-
-#~ msgid "Game Region"
-#~ msgstr "โซนของเกมส์"
-
-#~ msgid "German"
-#~ msgstr "เยอรมัน"
-
-#~ msgid "Italian"
-#~ msgstr "อิตาลี"
-
-#~ msgid "Japanese"
-#~ msgstr "ญี่ปุ่น"
-
-#~ msgid "Korean"
-#~ msgstr "เกาหลี"
-
-#~ msgid "Left"
-#~ msgstr "ซ้าย"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "คล้าย SysMenu"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "โหลดจาก SD/USB"
-
-#~ msgid "Locked"
-#~ msgstr "ล๊อค"
-
-#~ msgid "Loop Sound"
-#~ msgstr "เล่นเสียงซ้ำ"
-
-#~ msgid "Neither"
-#~ msgstr "ไม่ทั้งสอง"
-
-#~ msgid "Next"
-#~ msgstr "ต่อไป"
-
-#~ msgid "Normal"
-#~ msgstr "ปกติ"
-
-#~ msgid "ON"
-#~ msgstr "เปิด"
-
-#~ msgid "Only Customs"
-#~ msgstr "เฉพาะที่ดัดแปลง"
-
-#~ msgid "Only Original"
-#~ msgstr "เฉพาะของแท้"
-
-#~ msgid "Only for Install"
-#~ msgstr "เฉพาะติดตั้งเท่านั้น"
-
-#~ msgid "Original/Customs"
-#~ msgstr "ของแท้/ดัดแปลง"
-
-#~ msgid "Prev"
-#~ msgstr "ที่ผ่านมา"
-
-#~ msgid "Right"
-#~ msgstr "ขวา"
-
-#~ msgid "SChinese"
-#~ msgstr "จีน"
-
-#~ msgid "Sound+BGM"
-#~ msgstr "เสียง+BGM"
-
-#~ msgid "Sound+Quiet"
-#~ msgstr "เสียง+เงียบ"
-
-#~ msgid "Spanish"
-#~ msgstr "สเปน"
-
-#~ msgid "System Default"
-#~ msgstr "ค่าเริ่มต้นของระบบ"
-
-#~ msgid "TChinese"
-#~ msgstr "จีนโบราณ"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "ไฟล์ Wad ถูกติดตั้งแล้ว แต่ไม่สามารถลบจาก SD card ได้"
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "การติดตั้งไฟล์ Wad ล้มเหลวด้วยข้อผิดพลาด %ld"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "ไม่สามารถเปิดไฟล์ Wad ที่เพิ่งดาวน์โหลดมาได้ (%s)."
-
-#~ msgid "Unlocked"
-#~ msgstr "ปลดล๊อค"
-
-#~ msgid "Update to"
-#~ msgstr "อัพเดทเป็น"
-
-#~ msgid "Updating"
-#~ msgstr "กำลังอัพเดท"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "กำลังอัพเดทไฟล์ภาษา..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "กำลังอัพเดทไฟล์ WiiTDB.zip"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "จอกว้าง"
-
-#~ msgid "%s : %s May not boot correctly if your System Menu is not up to date."
-#~ msgstr "%s : %s อาจทำงานผิดปกติ ถ้าระบบของคุณไม่ทันสมัย"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "กลับไป เมนู Wii"
-
-#~ msgid "Channels"
-#~ msgstr "แชนแนล"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "ตรวจหาอาร์ตเวิรค์"
-
-#~ msgid "Confirm"
-#~ msgstr "ยืนยัน"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "ไม่พบ WBFS พาร์ติชั่น"
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "ไม่สามารถเปิด WBFS พาร์ติชั่นได้"
-
-#~ msgid "Could not read the disc."
-#~ msgstr "อ่านแผ่นไม่ได้ !"
-
-#~ msgid "Could not set USB."
-#~ msgstr "ไม่สามารถตั้งค่า USB ได้"
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "ที่เก็บ ปก ถูกเปลี่ยนแปลง"
-
-#~ msgid "DOL path changed"
-#~ msgstr "ที่เก็บ DOL ถูกเปลี่ยนแปลง"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "ที่เก็บ ภาพแผ่น ถูกเปลี่ยนแปลง"
-
-#~ msgid "Display favorites"
-#~ msgstr "แสดง แบบเกมส์ที่ชอบ"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "ต้องการลองใหม่ทุก 30 วินาที?"
-
-#~ msgid "Force"
-#~ msgstr "บังคับ"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "ที่เก็บ สูตรโกง ถูกเปลี่ยนแปลง"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "ที่เก็บโปรแกรม Homebrew ถูกเปลี่ยนแปลง"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "ใส่ SD card เพื่อดาวน์โหลดภาพ"
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "ดูเหมือนว่าขนาดจะหารด้วย 4 ไม่ลงตัว"
-
-#~ msgid "Network init error"
-#~ msgstr "การเชื่อมต่อเครือข่ายผิดพลาด"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr "ไม่พบไฟล์ .dol หรือ .elf"
-
-#~ msgid "No Favorites"
-#~ msgstr "ไม่พบเกมส์ที่ชื่นชอบ"
-
-#~ msgid "No USB Device"
-#~ msgstr "ไม่ได้เสียบอุปกรณ์ USB"
-
-#~ msgid "No USB Device found."
-#~ msgstr "ไม่พบอุปกรณ์ USB"
-
-#~ msgid "Normal Covers"
-#~ msgstr "หน้าปกแบบปกติ"
-
-#~ msgid "Not Found"
-#~ msgstr "ไม่พบ"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "ไม่ใช่ไฟล์ DOL หรือ ELF"
-
-#~ msgid "Save Failed"
-#~ msgstr "การบันทึกไม่สำเร็จ"
-
-#~ msgid "Selected DOL"
-#~ msgstr "DOL ที่เลือก"
-
-#~ msgid "Standard"
-#~ msgstr "มาตราฐาน"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "ที่เก็บ TXTCheatcodes ถูกเปลี่ยนแปลง"
-
-#~ msgid "Theme Download Path changed"
-#~ msgstr "ตำแหน่งที่ดาวน์โหลดธีมเปลี่ยนแปลง"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "ที่อยู่ Theme ถูกเปลี่ยนแปลง"
-
-#~ msgid "Update Path changed."
-#~ msgstr "ที่อยู่ Update ถูกเปลี่ยน"
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "ที่อยู่ WiiTDB ถูกเปลี่ยนแปลง"
-
-#~ msgid "You are about to delete "
-#~ msgstr "คุณกำลังจะลบ "
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "คุณเลือกจะแสดงเกมส์ที่ชอบ แต่คุณไม่ได้กำหนดเกมส์ที่ชื่นชอบไว้"
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "คุณพยายามที่จะโหลดรูปภาพที่เสียหาย"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "ไม่มี! คุณทำให้มันเละไปแล้ว ไอ้โง่ อิอิ."
-
-#~ msgid "file left"
-#~ msgstr "ไฟล์ที่ยังเหลือ"
diff --git a/Languages/turkish.lang b/Languages/turkish.lang
deleted file mode 100644
index 66faabcd..00000000
--- a/Languages/turkish.lang
+++ /dev/null
@@ -1,1498 +0,0 @@
-# USB Loader GX language source file.
-# turkish.lang - r848
-# don't delete/change this line (é).
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2009-10-01 01:00+0200\n"
-"Last-Translator: omercigingelini\n"
-"Language-Team: omercigingelini\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-msgid " Wad Saved as:"
-msgstr " Kaydedilen Wad:"
-
-msgid " could not be downloaded."
-msgstr " indirilemedi."
-
-msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
-msgstr " kaydedildi. Metin doğrulanmadı. Bazı kodlar birlikteyken doğru çalışmayabilir. Herhangi bir problem yaşarsanız, daha fazla bilgi için metin dosyasını gerçek bir metin editörüyle açın"
-
-msgid " is not on the server."
-msgstr " sunucuda mevcut değil"
-
-msgid "2D Cover Path"
-msgstr "2D Kapak Yolu"
-
-msgid "3D Cover Path"
-msgstr "3D Kapak Yolu"
-
-msgid "3D Covers"
-msgstr "3B Kapaklar"
-
-msgid ">> Deleting tickets..."
-msgstr ">> Biletler siliniyor"
-
-msgid ">> Deleting tickets...ERROR! "
-msgstr ">> Biletler siliniyor..HATA!"
-
-msgid ">> Deleting tickets...Ok! "
-msgstr ">> Biletler siliniyor..OK!"
-
-msgid ">> Deleting title ...ERROR! "
-msgstr ">> Başlık siliniyor ..HATA!"
-
-msgid ">> Deleting title ...Ok!"
-msgstr ">> Başlık siliniyor ..Ok!"
-
-msgid ">> Deleting title contents..."
-msgstr ">> Başlık içeriği siliniyor.."
-
-msgid ">> Deleting title contents...ERROR! "
-msgstr ">> Başlık içeriği siliniyor..HATA!"
-
-msgid ">> Deleting title contents...Ok!"
-msgstr ">> Başlık içeriği siliniyor..Ok!"
-
-msgid ">> Deleting title..."
-msgstr ">> Başlık siliniyor.."
-
-msgid ">> Finishing installation..."
-msgstr ">> Kurulum bitiriliyor.."
-
-msgid ">> Installing content #"
-msgstr ">> Kurulan başlık # "
-
-msgid ">> Installing ticket..."
-msgstr ">> Bilet kuruluyor.."
-
-msgid ">> Installing title..."
-msgstr ">> Başlık kuruluyor.."
-
-msgid ">> Reading WAD data..."
-msgstr ">> WAD Bilgisi okunuyor.."
-
-msgid ">> Reading WAD data...ERROR! "
-msgstr ">> WAD Bilgisi okunuyor..HATA!"
-
-msgid ">> Reading WAD data...Ok!"
-msgstr ">> WAD Bilgisi okunuyor..OK!"
-
-msgid "AUTO"
-msgstr "OTOMATIK"
-
-msgid "All images downloaded successfully."
-msgstr ""
-
-msgid "All partitions"
-msgstr ""
-
-msgid "All the features of USB Loader GX are unlocked."
-msgstr "USB Loader GX'in tüm özellikleri kilitli."
-
-msgid "Alternate DOL"
-msgstr "Alternatif DOL"
-
-msgid "App Language"
-msgstr "Program Lisani"
-
-msgid "Apr"
-msgstr "Nis"
-
-msgid "Are you sure you want to lock USB Loader GX?"
-msgstr ""
-
-msgid "Are you sure you want to reset?"
-msgstr ""
-
-msgid "Are you sure?"
-msgstr "Emin misiniz?"
-
-msgid "Aug"
-msgstr "Ağu"
-
-msgid "Author:"
-msgstr "Yazar:"
-
-msgid "AutoInit Network"
-msgstr "Ağı ototanımla"
-
-msgid "BCA Codes Path"
-msgstr "BCA Kod Yolu"
-
-msgid "BETA revisions"
-msgstr ""
-
-msgid "Back"
-msgstr "Geri"
-
-msgid "Back to HBC or Wii Menu"
-msgstr "HBC veya Wii Menüye dönüş"
-
-msgid "Back to Loader"
-msgstr "Yükleyiciye dönüş"
-
-msgid "Backgroundmusic"
-msgstr "Arkaplan müziği"
-
-msgid "Big thanks to:"
-msgstr "Teşekkürler:"
-
-msgid "Block IOS Reload"
-msgstr "IOS Yüklemesini Engelle"
-
-msgid "Boot/Standard"
-msgstr "Boot/Standart"
-
-msgid "Boot?"
-msgstr "Başlat?"
-
-msgid "Can't be formatted"
-msgstr "Biçimlendirilemiyor"
-
-msgid "Can't create directory"
-msgstr "Klasör olusturulamiyor"
-
-msgid "Can't create file"
-msgstr "Dosya oluşturulamıyor"
-
-msgid "Can't delete:"
-msgstr "Silinemiyor"
-
-msgid "Cancel"
-msgstr "Iptal"
-
-msgid "Cannot write to destination."
-msgstr ""
-
-msgid "Change Play Path"
-msgstr ""
-
-msgid "Cheatfile is blank"
-msgstr "Hile dosyası boş"
-
-msgid "Clear"
-msgstr ""
-
-msgid "Click to Download Covers"
-msgstr "Kapak Indirmek için Tıklayın"
-
-msgid "Click to change game ID"
-msgstr "Oyun ID sini değiştirmek için tıklayın"
-
-msgid "Clock"
-msgstr "Saat"
-
-msgid "Close"
-msgstr "Kapat"
-
-msgid "Code Download"
-msgstr "Kod İndirme"
-
-#, c-format
-msgid "Coded by: %s"
-msgstr "%s tarafından kodlandı"
-
-msgid "Coding:"
-msgstr "Kodlama:"
-
-msgid "Connection lost..."
-msgstr ""
-
-msgid "Console"
-msgstr "Konsol"
-
-msgid "Console Locked"
-msgstr "Konsol Kilitli"
-
-msgid "Console should be unlocked to modify it."
-msgstr "Degiştirmek için konsolun kilidini açmalısın."
-
-msgid "Continue to install game?"
-msgstr "Oyunu kurmaya devam et?"
-
-msgid "Controllevel"
-msgstr "Kontrol seviyesi"
-
-msgid "Correct Password"
-msgstr "Doğru Şifre"
-
-msgid "Could not connect to the server."
-msgstr ""
-
-msgid "Could not create GCT file"
-msgstr "GCT dosyası oluşturulamadı"
-
-#, c-format
-msgid "Could not create path: %s"
-msgstr ""
-
-msgid "Could not find info for this game in the wiitdb.xml."
-msgstr ""
-
-msgid "Could not initialize DIP module!"
-msgstr "DIP modülü başlatılamadı!"
-
-msgid "Could not initialize network!"
-msgstr "Ağa bağlanılamadı!"
-
-msgid "Could not open Disc"
-msgstr "Disk açılamadı"
-
-msgid "Could not open wiitdb.xml."
-msgstr ""
-
-msgid "Could not save."
-msgstr "Kaydedilemedi"
-
-msgid "Cover Download"
-msgstr "Kapak Indirme"
-
-msgid "Create"
-msgstr "Oluştur"
-
-msgid "Credits"
-msgstr "Emekçiler"
-
-msgid "Custom Paths"
-msgstr "Kişisel Yollar"
-
-msgid "DOL Path"
-msgstr "DOL Yolu"
-
-msgid "Dec"
-msgstr "Ara"
-
-msgid "Default"
-msgstr "Varsayılan"
-
-msgid "Default Gamesettings"
-msgstr "Varsayılan Oyun ayarları"
-
-msgid "Default Settings"
-msgstr "Varsayılan Ayarlar"
-
-msgid "Delete"
-msgstr "Sil"
-
-msgid "Delete ?"
-msgstr "Silinsin mi?"
-
-msgid "Delete Cheat GCT"
-msgstr "GCT Hile sil"
-
-msgid "Delete Cheat TXT"
-msgstr "TXT Hile sil"
-
-msgid "Delete Cover Artwork"
-msgstr "Kapak Görselini Sil"
-
-msgid "Delete Disc Artwork"
-msgstr "Disk Görselini Sil"
-
-msgid "Design:"
-msgstr "Tasarım:"
-
-msgid "Developed by"
-msgstr "Geliştirme"
-
-msgid "Directory does not exist!"
-msgstr "Klasör bulunamadı!"
-
-msgid "Disc Artwork Download"
-msgstr "Disk Görseli Indirme"
-
-msgid "Disc Artwork Path"
-msgstr "Disk Görsel Yolu"
-
-msgid "Disc Images"
-msgstr "Disk Resimleri"
-
-msgid "Display"
-msgstr "Görüntü"
-
-msgid "Display as a carousel"
-msgstr "Dönel görünüm"
-
-msgid "Display as a grid"
-msgstr "Izgara görünümü"
-
-msgid "Display as a list"
-msgstr "Liste görünümü"
-
-msgid "Display favorites only"
-msgstr ""
-
-msgid "Do you really want to delete:"
-msgstr "Gerçekten silmek istiyor musunuz:"
-
-msgid "Do you want to apply it now?"
-msgstr ""
-
-msgid "Do you want to change language?"
-msgstr "Dili değiştirmek istiyor musunuz?"
-
-msgid "Do you want to download this theme?"
-msgstr "Bu temayı indirmek istiyor musunuz?"
-
-msgid "Do you want to format:"
-msgstr "Formatlamak istiyor musunuz:"
-
-msgid "Do you want to load this theme?"
-msgstr ""
-
-msgid "Do you want to use the alternate DOL that is known to be correct?"
-msgstr "Doğru olduğu bilinen alternatif DOL ü kullanmak ister misiniz?"
-
-msgid "Do you wish to update/download all language files?"
-msgstr "Tüm dil dosyalarını indirmek/güncellemek istiyor musunuz?"
-
-msgid "Done!"
-msgstr "Tamam!"
-
-msgid "Download"
-msgstr "İndir"
-
-msgid "Download Boxart image?"
-msgstr "Kutu resmi indirilsin mi?"
-
-msgid "Download Discart image?"
-msgstr "Disk resmi indirilsin mi?"
-
-msgid "Download Now"
-msgstr "Şimdi indir"
-
-msgid "Download failed."
-msgstr "İndirme başarısız"
-
-msgid "Download finished"
-msgstr "Indirme tamamlandı"
-
-msgid "Download request failed."
-msgstr "İndirme isteği başarısız"
-
-msgid "Downloading Page List:"
-msgstr "İndirilen Sayfa Listesi:"
-
-msgid "Downloading covers"
-msgstr ""
-
-msgid "Downloading custom Discarts"
-msgstr ""
-
-msgid "Downloading file"
-msgstr "Indirilen dosya"
-
-msgid "Downloading file..."
-msgstr ""
-
-msgid "Downloading image:"
-msgstr "İndirilen resim:"
-
-msgid "Downloading original Discarts"
-msgstr ""
-
-msgid "ERROR"
-msgstr "HATA"
-
-msgid "ERROR:"
-msgstr "HATA:"
-
-msgid "ERROR: Can't set up theme."
-msgstr ""
-
-msgid "Error"
-msgstr "Hata"
-
-msgid "Error !"
-msgstr "Hata !"
-
-msgid "Error 002 fix"
-msgstr "Error 002 düzeltmesi"
-
-msgid "Error opening downloaded file"
-msgstr ""
-
-msgid "Error reading Disc"
-msgstr "Disk Okuma Hatası"
-
-msgid "Error while downloding file"
-msgstr ""
-
-msgid "Error while opening the zip."
-msgstr ""
-
-msgid "Error while transfering data."
-msgstr "Veri iletiminde hata."
-
-msgid "Error while updating USB Loader GX."
-msgstr ""
-
-msgid "Error writing the data."
-msgstr ""
-
-msgid "Error..."
-msgstr "Hata..."
-
-msgid "Error:"
-msgstr "Hata:"
-
-msgid "Extracting files..."
-msgstr "Dosyalar çıkarılıyor..."
-
-msgid "FAT: Use directories"
-msgstr "FAT: Klasörleri kullanın"
-
-msgid "Failed formating"
-msgstr "Biçimlendirme başarısız"
-
-msgid "Failed to extract."
-msgstr "Çıkartma başarısız"
-
-msgid "Failed to open partition"
-msgstr "Bölüm açılamadı"
-
-msgid "Failed updating"
-msgstr ""
-
-msgid "Feb"
-msgstr "Şub"
-
-msgid "File not found."
-msgstr "Dosya bulunamadı"
-
-msgid "Filesize is 0 Byte."
-msgstr ""
-
-msgid "Finishing installation... Ok!"
-msgstr "Kurulum bitiriliyor.. OK!"
-
-msgid "Flat Covers"
-msgstr ""
-
-msgid "Flip-X"
-msgstr "Çevir-X"
-
-msgid "Format"
-msgstr "Biçimlendir"
-
-msgid "Formatting, please wait..."
-msgstr "Biçimlendiriliyor, bekleyiniz..."
-
-msgid "Free Space"
-msgstr "Boş Yer"
-
-msgid "Full Shutdown"
-msgstr "Tam Kapama"
-
-msgid "GCT Cheatcodes Path"
-msgstr "GCT Hile Yolu"
-
-msgid "GCT File created"
-msgstr "GCT Dosyası oluşturuldu"
-
-msgid "GUI Settings"
-msgstr "GUI Ayarları"
-
-msgid "GXtheme.cfg not found in any subfolder."
-msgstr ""
-
-msgid "Game IOS"
-msgstr ""
-
-msgid "Game Language"
-msgstr "Oyun Dili"
-
-msgid "Game Load"
-msgstr "Oyun Yükle"
-
-msgid "Game Lock"
-msgstr ""
-
-msgid "Game Size"
-msgstr "Oyun Boyutu"
-
-msgid "Game Sound Mode"
-msgstr "Oyun Ses Modu"
-
-msgid "Game Sound Volume"
-msgstr "Oyun Ses Düzeyi"
-
-msgid "Game is already installed:"
-msgstr "Oyun zaten kurulu:"
-
-msgid "Game partition"
-msgstr ""
-
-msgid "Games"
-msgstr "Oyunlar"
-
-msgid "GamesLevel"
-msgstr ""
-
-msgid "Gerne:"
-msgstr ""
-
-msgid "Global Settings"
-msgstr ""
-
-msgid "HOME Menu"
-msgstr "HOME Menü"
-
-msgid "Homebrew Apps Path"
-msgstr "Homebrew Yazılımlarının Yolu"
-
-msgid "Homebrew Launcher"
-msgstr "Homebrew Başlatıcı"
-
-msgid "Hour"
-msgstr "Saat"
-
-msgid "How do you want to update?"
-msgstr "Nasıl güncellemek istiyorsun?"
-
-msgid "How to Shutdown?"
-msgstr "Nasıl Kapansın?"
-
-msgid "If you don't have WiFi, press 1 to get an URL to get your WiiTDB.zip"
-msgstr "Eğer WiFi yoksa, WiiTDB.zip dosyasını alabileceğiniz URL için 1'e basın"
-
-#, c-format
-msgid "Incoming file %0.2fKB"
-msgstr "Gelen dosya %0.2fKB"
-
-#, c-format
-msgid "Incoming file %0.2fMB"
-msgstr "Gelen dosya %0.2fMB"
-
-msgid "Initializing Network"
-msgstr "Ağa Bağlanıyor"
-
-msgid "Insert Disk"
-msgstr "Diski Takın"
-
-msgid "Insert a Wii Disc!"
-msgstr "Bir Wii Diski Takın!"
-
-msgid "Insert an SD-Card to save."
-msgstr "Kaydedebilmek için SD takın."
-
-msgid "Insert an SD-Card to use this option."
-msgstr "Bu seçeneği kullanmak için SD takın."
-
-msgid "Install"
-msgstr "Kur"
-
-msgid "Install Error!"
-msgstr "Kurulum Hatasi!"
-
-msgid "Install a game"
-msgstr "Oyun kur"
-
-msgid "Install partitions"
-msgstr ""
-
-msgid "Installing content... Ok!"
-msgstr "İçerik kuruluyor.. OK!"
-
-msgid "Installing game:"
-msgstr "Kurulan oyun:"
-
-msgid "Installing ticket... Ok!"
-msgstr "Bilet kuruluyor.. OK!"
-
-msgid "Installing title... Ok!"
-msgstr "Başlık kuruluyor.. OK!"
-
-msgid "Installing wad"
-msgstr "Wad kuruluyor"
-
-msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
-msgstr "İşimize yarabilecek bilgilere sahip gibi gözüküyorsunuz. Lütfen bu bilgiyi Geliştirme takımına iletin."
-
-msgid "Jan"
-msgstr "Oca"
-
-msgid "July"
-msgstr "Tem"
-
-msgid "June"
-msgstr "Haz"
-
-msgid "Keep"
-msgstr "Sakla"
-
-msgid "Keyboard"
-msgstr "Klavye"
-
-msgid "Language File"
-msgstr "Dil dosyası"
-
-msgid "Language change:"
-msgstr "Dil değişimi:"
-
-msgid "Languagefiles Path"
-msgstr ""
-
-msgid "Languagepath changed."
-msgstr "Dil dosya yolu değişti."
-
-msgid "Load"
-msgstr "Yükle"
-
-#, c-format
-msgid "Load file from: %s ?"
-msgstr "Dosya %s 'ten yüklensin mi?"
-
-msgid "Load this DOL as alternate DOL?"
-msgstr "Bu DOL alternatif DOL olarak mı yüklensin?"
-
-msgid "Loading default theme."
-msgstr ""
-
-msgid "Loading standard language."
-msgstr "Standart dil yükleniyor."
-
-msgid "Loading standard music."
-msgstr "Standart müzik yükleniyor."
-
-msgid "Lock Console"
-msgstr "Konsolu Kilitle"
-
-msgid "Lock USB Loader GX"
-msgstr ""
-
-msgid "Mar"
-msgstr ""
-
-msgid "Mark new games"
-msgstr "Yeni oyunlari imle"
-
-msgid "May"
-msgstr ""
-
-msgid "Missing files"
-msgstr "Kayıp dosyalar"
-
-msgid "Mount DVD drive"
-msgstr "DVD sürücüsü bağla"
-
-msgid "Music Loop Mode"
-msgstr ""
-
-msgid "Music Volume"
-msgstr "Ses Seviyesi"
-
-msgid "Network is not initiated."
-msgstr ""
-
-msgid "New Disc Detected"
-msgstr "Yeni Disk Bulundu"
-
-msgid "No"
-msgstr "Hayır"
-
-msgid "No Cheatfile found"
-msgstr "Hile dosyası bulunamadı"
-
-msgid "No DOL file found on disc."
-msgstr "Diskte DOL dosyası bulunamadı"
-
-msgid "No SD-Card inserted!"
-msgstr "SD-Card takılı değil!"
-
-msgid "No URL or Path specified."
-msgstr ""
-
-msgid "No WBFS or FAT/NTFS/EXT partition found"
-msgstr ""
-
-msgid "No cheats were selected"
-msgstr "Hile seçilmedi"
-
-msgid "No data could be read."
-msgstr "Hiç veri okunamadı."
-
-msgid "No favorites selected."
-msgstr ""
-
-msgid "No file missing!"
-msgstr "Kayıp dosya yok!"
-
-msgid "No new updates."
-msgstr "Güncelleme yok"
-
-msgid "No themes found on the site."
-msgstr "Bu sitede tema bulunamadı"
-
-msgid "Not a WAD file."
-msgstr ""
-
-msgid "Not a Wii Disc"
-msgstr "Wii Diski Değil"
-
-msgid "Not a valid URL"
-msgstr ""
-
-msgid "Not a valid URL path"
-msgstr ""
-
-msgid "Not a valid domain"
-msgstr ""
-
-msgid "Not enough free memory."
-msgstr "Yeterli boş hafıza yok"
-
-msgid "Not enough free space!"
-msgstr "Yeterli boş yer yok!"
-
-msgid "Not enough memory."
-msgstr ""
-
-msgid "Not required"
-msgstr ""
-
-msgid "Not supported format!"
-msgstr "Desteklenmeyen format!"
-
-msgid "Nov"
-msgstr "Kas"
-
-msgid "OFF"
-msgstr "KAPALI"
-
-msgid "OK"
-msgstr ""
-
-msgid "Ocarina"
-msgstr ""
-
-msgid "Oct"
-msgstr "Eki"
-
-msgid "Official Site:"
-msgstr "Resmi Site:"
-
-msgid "Offset"
-msgstr ""
-
-msgid "Parental Control"
-msgstr "Ebeveyn kontrolü"
-
-msgid "Partition"
-msgstr "Bölüm"
-
-msgid "Password"
-msgstr "Parola"
-
-msgid "Password Changed"
-msgstr "Parola degiştirildi"
-
-msgid "Password has been changed"
-msgstr "Parola değiştirildi"
-
-msgid "Paste it into your browser to get your WiiTDB.zip."
-msgstr "WiiTDP.zip için bu adresi tarayıcıya yapıştırın"
-
-msgid "Patch Country Strings"
-msgstr "Ülke İsimlerini Yamala"
-
-msgid "Path Changed"
-msgstr ""
-
-msgid "Pick from a list"
-msgstr "Listeden seç"
-
-msgid "Play Count"
-msgstr "Oynama Sayısı"
-
-msgid "Play Next"
-msgstr ""
-
-msgid "Play Previous"
-msgstr ""
-
-msgid "Playing Music:"
-msgstr ""
-
-msgid "Please wait..."
-msgstr "Lütfen bekleyin.."
-
-msgid "Power off the Wii"
-msgstr "Wii'yi kapat"
-
-msgid "Prompts Buttons"
-msgstr "Hız ve Butonlar"
-
-msgid "Published by"
-msgstr "Yayıncı"
-
-msgid "Quick Boot"
-msgstr "Hızlı Başlatma"
-
-msgid "Reading WAD data... Ok!"
-msgstr "Wad verisi okunuyor..OK!"
-
-msgid "Receiving file from:"
-msgstr "Dosyanın alındığı yer:"
-
-msgid "Released"
-msgstr "Çıktı"
-
-msgid "Reload SD"
-msgstr "SD'yi yeniden yükle"
-
-msgid "Remove update"
-msgstr ""
-
-msgid "Rename Game on WBFS"
-msgstr "WBFS'deki oyunu yeniden isimlendir"
-
-msgid "Reset BG Music"
-msgstr ""
-
-msgid "Reset Playcounter"
-msgstr "Sayacı sıfırla"
-
-msgid "Reset to default BGM?"
-msgstr ""
-
-msgid "Restarting..."
-msgstr "Yeniden başlatılıyor"
-
-msgid "Return"
-msgstr "Dönüş"
-
-msgid "Return To"
-msgstr ""
-
-msgid "Return to Wii Menu"
-msgstr "Wii Menü ye Dön"
-
-msgid "Rumble"
-msgstr "Titreşim"
-
-msgid "SFX Volume"
-msgstr "Efekt Seviyesi"
-
-msgid "Save"
-msgstr "Kaydet"
-
-msgid "Save Failed. No device inserted?"
-msgstr ""
-
-msgid "Save Game List to"
-msgstr "Oyun Listesini kaydet"
-
-msgid "Saved"
-msgstr "Kaydedildi"
-
-msgid "Screensaver"
-msgstr "Ekran Koruyucu"
-
-msgid "Select"
-msgstr "Seç"
-
-msgid "Select DOL Offset"
-msgstr ""
-
-msgid "Select a DOL"
-msgstr "Bir DOL seç"
-
-msgid "Sept"
-msgstr "Eyl"
-
-msgid "Set Search-Filter"
-msgstr "Arama Filtresi Ayarla"
-
-msgid "Settings"
-msgstr "Ayarlar"
-
-msgid "Shutdown System"
-msgstr "Sistemi Kapat"
-
-msgid "Shutdown to Idle"
-msgstr "Sistemi Beklemeye Al"
-
-msgid "Sort alphabetically"
-msgstr "Alfabetik Diz"
-
-msgid "Sort by rank"
-msgstr "Puana göre diz"
-
-msgid "Sort order by most played"
-msgstr "En çok oynanana göre diz"
-
-msgid "Sound"
-msgstr "Ses"
-
-msgid "Sound Settings"
-msgstr ""
-
-msgid "Special thanks to:"
-msgstr "Özel tesekkürler"
-
-msgid "Success"
-msgstr "Başarılı"
-
-msgid "Success:"
-msgstr "Başarılı:"
-
-msgid "Successfully Saved"
-msgstr "Başarıyla Kaydedildi"
-
-msgid "Successfully Updated"
-msgstr "Başarıyla Güncellendi"
-
-msgid "Successfully Updated thanks to www.techjawa.com"
-msgstr ""
-
-msgid "Successfully deleted:"
-msgstr "Başarıyla silindi:"
-
-msgid "Successfully extracted theme."
-msgstr "Tema başarıyla çıkarıldı."
-
-msgid "Successfully installed:"
-msgstr "Başarıyla kuruldu:"
-
-msgid "TXT Cheatcodes Path"
-msgstr "TXT Hile Yolu"
-
-msgid "The entered directory does not exist. Would you like to create it?"
-msgstr "Girilen klasör mevcut değil. Oluşturmak ister misin?"
-
-msgid "The wad file was installed"
-msgstr ""
-
-#, c-format
-msgid "The wad installation failed with error %i"
-msgstr ""
-
-msgid "Theme Download Path"
-msgstr "Tema İndirme Yolu"
-
-msgid "Theme Downloader"
-msgstr "Tema İndirici"
-
-msgid "Theme Path"
-msgstr "Tema Yolu"
-
-msgid "Theme Title:"
-msgstr "Tema Başlığı:"
-
-msgid "Theme path is changed."
-msgstr ""
-
-msgid "This IOS is the BootMii ios. If you are sure it is not BootMii and you have something else installed there than ignore this warning."
-msgstr ""
-
-msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
-msgstr ""
-
-msgid "Time left:"
-msgstr "Kalan zaman:"
-
-msgid "Title Launcher"
-msgstr "Başlık Başlatıcı"
-
-msgid "Titles from WiiTDB"
-msgstr "WiiTDB deki Başlıklar"
-
-msgid "Tooltips"
-msgstr "Yardımlar"
-
-msgid "Transfer failed"
-msgstr ""
-
-msgid "Transfer failed."
-msgstr "Transfer başarısız"
-
-msgid "Trying custom Discarts"
-msgstr ""
-
-msgid "Trying original Discarts"
-msgstr ""
-
-msgid "USB Device not found"
-msgstr "USB Aygıtı bulunamadı"
-
-msgid "USB Loader GX is protected"
-msgstr "USB Loader GX koruma altında"
-
-msgid "Uninstall"
-msgstr "Kaldır"
-
-msgid "Uninstall Game"
-msgstr "Oyun Kaldır"
-
-msgid "Uninstall Menu"
-msgstr "Kaldırma Menüsü"
-
-msgid "Uninstalling wad"
-msgstr "Wad Kaldırılıyor"
-
-msgid "Unknown"
-msgstr ""
-
-msgid "Unlock USB Loader GX"
-msgstr ""
-
-msgid "Unlock console to use this option."
-msgstr "Bu seçeneği kullanmak için konsol kilidini açın"
-
-msgid "Unsupported format, try to extract manually."
-msgstr "Desteklenmeyen format,elle çıkartmayı deneyin"
-
-msgid "Update"
-msgstr "Güncelleme"
-
-msgid "Update All"
-msgstr "Hepsini Güncelle"
-
-msgid "Update DOL"
-msgstr "DOL Güncelle"
-
-msgid "Update Files"
-msgstr "Dosyaları Güncelle"
-
-msgid "Update Path"
-msgstr "Güncelleme Yolu"
-
-msgid "Update all Language Files"
-msgstr "Tüm Dil Dosyalarını Güncelle"
-
-msgid "Update failed"
-msgstr "Güncelleme başarısız"
-
-msgid "Update successfull"
-msgstr ""
-
-msgid "Updating Language Files:"
-msgstr "Güncellenen Dil Dosyaları:"
-
-msgid "Uploaded ZIP file installed to homebrew directory."
-msgstr "ZIp dosyası homebrew klasörüne kuruldu"
-
-msgid "VIDTV Patch"
-msgstr "VIDTV Yaması"
-
-#, c-format
-msgid "Version: %s"
-msgstr "Vesiyon: %s"
-
-msgid "Video Mode"
-msgstr "Video Modu"
-
-msgid "WIP Patches Path"
-msgstr ""
-
-msgid "Waiting for USB Device"
-msgstr "USB Aygıtı için Bekleniyor"
-
-msgid "Waiting..."
-msgstr "Beklemede..."
-
-msgid "Warning:"
-msgstr ""
-
-msgid "What do you want to update?"
-msgstr "Neyi güncelleme istiyorsun?"
-
-msgid "WiFi Features"
-msgstr "WiFi Özellikleri"
-
-msgid "Wii Menu"
-msgstr "Wii Menü"
-
-msgid "Wii Settings"
-msgstr "Wii Ayarları"
-
-msgid "WiiTDB Files"
-msgstr "WiiTDB Dosyaları"
-
-msgid "WiiTDB Path"
-msgstr "WiiTDB Yaması"
-
-msgid "WiiTDB is up to date."
-msgstr ""
-
-msgid "Wiilight"
-msgstr ""
-
-msgid "Wrong Password"
-msgstr "Yanlış Parola"
-
-msgid "Yes"
-msgstr "Evet"
-
-msgid "You are trying to select a FAT32/NTFS/EXT partition with cIOS 249 Rev < 18. This is not supported. Continue on your own risk."
-msgstr ""
-
-msgid "You need to select or format a partition"
-msgstr "Bir bölüm seçmeniz ya da formatlamanız gerekiyor"
-
-#, c-format
-msgid "Your URL has been saved in %sWiiTDB_URL.txt."
-msgstr "URL %sWiiTDB_URL.txt dosyasına kaydedildi"
-
-msgid "and translaters for language files updates"
-msgstr "ve dil dosya güncellemelerinin çevirmenleri"
-
-msgid "available"
-msgstr "mevcut"
-
-msgid "does not exist!"
-msgstr "oluşturulmamış!"
-
-msgid "does not exist! Loading game without cheats."
-msgstr "oluşturulmamış! Oyun hileler olmadan yükleniyor"
-
-msgid "files left"
-msgstr "dosyalar kaldı"
-
-msgid "files not found on the server!"
-msgstr "dosyalar sunucuda bulunamadı!"
-
-msgid "for FAT/NTFS support"
-msgstr ""
-
-msgid "for Ocarina"
-msgstr "Ocarina için"
-
-msgid "for WiiTDB and hosting covers / disc images"
-msgstr "WiiTDB ve kapak/disk resimlerini sunduğu için"
-
-msgid "for diverse patches"
-msgstr "çeşitli yamalar için"
-
-msgid "for his awesome tool LibWiiGui"
-msgstr "LibWiiGui awesome tool için"
-
-msgid "for hosting the themes"
-msgstr "tema sunucusu icin"
-
-msgid "for hosting the update files"
-msgstr "güncelleme dosyalarını sunduğu için"
-
-msgid "for the USB Loader source"
-msgstr "USB Loader kaynak kodu için"
-
-msgid "formatted!"
-msgstr "biçimlendirildi!"
-
-msgid "free"
-msgstr "boş"
-
-msgid "not set"
-msgstr "ayarlanmadı"
-
-msgid "of"
-msgstr "./"
-
-msgid "seconds left"
-msgstr "saniye kaldı"
-
-#~ msgid "0 (Everyone)"
-#~ msgstr "0 (Herkes)"
-
-#~ msgid "1 (Child 7+)"
-#~ msgstr "1 (Çocuk 7+)"
-
-#~ msgid "1 hour"
-#~ msgstr "1 saat"
-
-#~ msgid "10 min"
-#~ msgstr "10 dakika"
-
-#~ msgid "2 (Teen 12+)"
-#~ msgstr "2 (Genç 12+)"
-
-#~ msgid "20 min"
-#~ msgstr "20 dakika"
-
-#~ msgid "3 (Mature 16+)"
-#~ msgstr "3 (Yetişkin 16+)"
-
-#~ msgid "3 min"
-#~ msgstr "3 dakika"
-
-#~ msgid "30 min"
-#~ msgstr "30 dakika"
-
-#~ msgid "4 (Adults Only 18+)"
-#~ msgstr "4 (Sadece Yetişkin 18+)"
-
-#~ msgid "5 min"
-#~ msgstr "5 dakika"
-
-#~ msgid "An Error occured"
-#~ msgstr "Bir Hata oluştu"
-
-#~ msgid "AutoPatch"
-#~ msgstr "OtoYama"
-
-#~ msgid "Both"
-#~ msgstr "İkisi de"
-
-#~ msgid "Checking for Updates"
-#~ msgstr "Güncellemeler kontrol ediliyor"
-
-#~ msgid "Console Default"
-#~ msgstr "Konsol Ayari"
-
-#~ msgid "Customs/Original"
-#~ msgstr "Kişisel/Orjinal"
-
-#~ msgid "Disc Default"
-#~ msgstr "Disk Varsayılanı"
-
-#~ msgid "DiskFlip"
-#~ msgstr "DiskÇevir"
-
-#~ msgid "Downloading"
-#~ msgstr "Indiriliyor"
-
-#~ msgid "Dutch"
-#~ msgstr "Flaman"
-
-#~ msgid "English"
-#~ msgstr "Ingilizce"
-
-#~ msgid "French"
-#~ msgstr "Fransızca"
-
-#~ msgid "Game ID"
-#~ msgstr "Oyun ID"
-
-#~ msgid "Game Region"
-#~ msgstr "Oyun Bölgesi"
-
-#~ msgid "German"
-#~ msgstr "Almanca"
-
-#~ msgid "Italian"
-#~ msgstr "Italyanca"
-
-#~ msgid "Japanese"
-#~ msgstr "Japonca"
-
-#~ msgid "Korean"
-#~ msgstr "Korece"
-
-#~ msgid "Left"
-#~ msgstr "Sol"
-
-#~ msgid "Like SysMenu"
-#~ msgstr "Sistem Menüsü Gibi"
-
-#~ msgid "Load From SD/USB"
-#~ msgstr "SD/USB den yükle"
-
-#~ msgid "Locked"
-#~ msgstr "Kilitlendi"
-
-#~ msgid "Loop Sound"
-#~ msgstr "Döngüdeki Ses"
-
-#~ msgid "Neither"
-#~ msgstr "Hiçbiri"
-
-#~ msgid "Next"
-#~ msgstr "Ileri"
-
-#~ msgid "ON"
-#~ msgstr "AÇIK"
-
-#~ msgid "Only Customs"
-#~ msgstr "Sadece Kişiseller"
-
-#~ msgid "Only Original"
-#~ msgstr "Sadece Orjinal"
-
-#~ msgid "Only for Install"
-#~ msgstr "Sadece Kurulum için"
-
-#~ msgid "Original/Customs"
-#~ msgstr "Orjinal/Kişisel"
-
-#~ msgid "Prev"
-#~ msgstr "Önceki"
-
-#~ msgid "Right"
-#~ msgstr "Sağ"
-
-#~ msgid "SChinese"
-#~ msgstr "Basitleştirilmis Çince"
-
-#~ msgid "Sound+BGM"
-#~ msgstr "Ses+BGM"
-
-#~ msgid "Sound+Quiet"
-#~ msgstr "Ses+Quiet"
-
-#~ msgid "Spanish"
-#~ msgstr "Ispanyolca"
-
-#~ msgid "System Default"
-#~ msgstr "Sistem Varsayılanı"
-
-#~ msgid "TChinese"
-#~ msgstr "Geleneksel Çince"
-
-#~ msgid "The wad file was installed. But It could not be deleted from the SD card."
-#~ msgstr "Wad dosyası kuruldu. Fakat SD den silinemedi"
-
-#~ msgid "The wad installation failed with error %ld"
-#~ msgstr "Wad kurulumu %ld hatasıyla başarısız oldu"
-
-#~ msgid "Unable to open the wad that was just downloaded (%s)."
-#~ msgstr "Az önce indirilen wad açılamıyor(%s)"
-
-#~ msgid "Unlocked"
-#~ msgstr "Kilit açıldı"
-
-#~ msgid "Update to"
-#~ msgstr "Güncellenecek"
-
-#~ msgid "Updating"
-#~ msgstr "Güncelleniyor"
-
-#~ msgid "Updating Language Files..."
-#~ msgstr "Dil Dosyaları Güncelleniyor..."
-
-#~ msgid "Updating WiiTDB.zip"
-#~ msgstr "WiiTDB.zip güncelleniyor"
-
-#~ msgid "Widescreen Fix"
-#~ msgstr "Genişekran Çözümü"
-
-#~ msgid "%s : %s May not boot correctly if your System Menu is not up to date."
-#~ msgstr "%s: Sisteminiz güncel değil %s doğru şekilde başlatılamayabilir"
-
-#~ msgid "BCA Codes Path changed"
-#~ msgstr "BCA Kod Yolu değişti"
-
-#~ msgid "Back to Wii Menu"
-#~ msgstr "Wii Menüye dönüş"
-
-#~ msgid "Channels"
-#~ msgstr "Kanallar"
-
-#~ msgid "Checking existing artwork"
-#~ msgstr "Hazır görsel kontrol ediliyor"
-
-#~ msgid "Confirm"
-#~ msgstr "Onayla"
-
-#~ msgid "Could not find a WBFS partition."
-#~ msgstr "WBFS bölümü bulunamadı"
-
-#~ msgid "Could not open WBFS partition"
-#~ msgstr "WBFS bölümü açılamadı"
-
-#~ msgid "Could not read the disc."
-#~ msgstr "Disk okunamadı"
-
-#~ msgid "Could not set USB."
-#~ msgstr "USB ayarlanamadı"
-
-#~ msgid "Cover Path Changed"
-#~ msgstr "Kapak Yolu Değiştir"
-
-#~ msgid "DOL path changed"
-#~ msgstr "DOL yolu değiştirildi"
-
-#~ msgid "Disc Path Changed"
-#~ msgstr "Disk Yolu Değiştirildi"
-
-#~ msgid "Display favorites"
-#~ msgstr "Görüntü favorileri"
-
-#~ msgid "Do you want to retry for 30 secs?"
-#~ msgstr "30 saniye sonra denemek ister misiniz?"
-
-#~ msgid "Force"
-#~ msgstr "Zorla"
-
-#~ msgid "GCT Cheatcodes Path changed"
-#~ msgstr "GCT Hile Yolu değiştirildi"
-
-#~ msgid "Homebrew Appspath changed"
-#~ msgstr "Homebrew Yazılım Yolu değişti"
-
-#~ msgid "Insert an SD-Card to download images."
-#~ msgstr "Resimleri indirebilmek için SD takın."
-
-#~ msgid "Most likely it has dimensions that are not evenly divisible by 4."
-#~ msgstr "Muhtemelen 4 ile tam bölünemeyen boyutları var."
-
-#~ msgid "Network init error"
-#~ msgstr "Ag baslatma hatasi"
-
-#~ msgid "No .dol or .elf files found."
-#~ msgstr ".dol veya .elf dosyası bulunamadı"
-
-#~ msgid "No Favorites"
-#~ msgstr "Hiç Favori yok"
-
-#~ msgid "No USB Device"
-#~ msgstr "USB Aygıtı yok"
-
-#~ msgid "No USB Device found."
-#~ msgstr "USB Aygıtı bulunamadı"
-
-#~ msgid "Normal Covers"
-#~ msgstr "Normal Kapaklar"
-
-#~ msgid "Not Found"
-#~ msgstr "Bulunamadı"
-
-#~ msgid "Not a DOL/ELF file."
-#~ msgstr "DOL/ELF dosyası değil"
-
-#~ msgid "Save Failed"
-#~ msgstr "Kaydedilemedi"
-
-#~ msgid "Selected DOL"
-#~ msgstr "Seçilen DOL"
-
-#~ msgid "Standard"
-#~ msgstr "Standart"
-
-#~ msgid "TXT Cheatcodes Path changed"
-#~ msgstr "TXT Hile Yolu değiştirildi"
-
-#~ msgid "Theme Download Path changed"
-#~ msgstr "Tema İndirme Yolu değişti"
-
-#~ msgid "Theme Path Changed"
-#~ msgstr "Tema Yolu Değişti"
-
-#~ msgid "USB Loader GX will only run with Hermes CIOS rev 4! Please make sure you have revision 4 installed!"
-#~ msgstr "USB Loader GX sadece Hermes CIOS rev4 ile çalışır! Lütfen rev4 ün yüklü olduğundan emin olun!"
-
-#~ msgid "Update Path changed."
-#~ msgstr "Güncelleme yolu değiştirildi."
-
-#~ msgid "WiiTDB Path changed."
-#~ msgstr "WiiTDB Yolu değişti"
-
-#~ msgid "You are about to delete "
-#~ msgstr "Silmek üzeresiniz"
-
-#~ msgid "You are choosing to display favorites and you do not have any selected."
-#~ msgstr "Favorileri göstermeyi seçtiniz ama hiç seçili yok"
-
-#~ msgid "You have attempted to load a bad image"
-#~ msgstr "Bozuk bir resim yüklemeye çalıştın"
-
-#~ msgid "does not exist! You Messed something up, Idiot."
-#~ msgstr "oluşturulmamış! Saçmaladın, mal."
-
-#~ msgid "file left"
-#~ msgstr "dosya kaldı"
diff --git a/Make.config.default b/Make.config.default
deleted file mode 100644
index 63e7993a..00000000
--- a/Make.config.default
+++ /dev/null
@@ -1,12 +0,0 @@
-#
-# to use this file rename Make.config.default to Make.config
-# or create a new Make.config
-#
-# you can here add defines
-#
-# in example i have included a switch to diseble
-# the gecko-debug stuff. so also in source gecko.c+gecko.h
-#
-# NOTE when add, remove or change a define here then a "make clean" is needed
-#
-CFLAGS += -DNO_DEBUG DDEBUG_WBFS
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 0582bbf0..00000000
--- a/Makefile
+++ /dev/null
@@ -1,279 +0,0 @@
-#---------------------------------------------------------------------------------
-# Clear the implicit built in rules
-#---------------------------------------------------------------------------------
-.SUFFIXES:
-#---------------------------------------------------------------------------------
-ifeq ($(strip $(DEVKITPPC)),)
-$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC")
-endif
-
-include $(DEVKITPPC)/wii_rules
-#---------------------------------------------------------------------------------
-# TARGET is the name of the output
-# BUILD is the directory where object files & intermediate files will be placed
-# SOURCES is a list of directories containing source code
-# INCLUDES is a list of directories containing extra header files
-#---------------------------------------------------------------------------------
-TARGET := boot
-BUILD := build
-SOURCES := source \
- source/libwiigui \
- source/images \
- source/fonts \
- source/sounds \
- source/system \
- source/libs/libwbfs \
- source/language \
- source/mload \
- source/mload/modules \
- source/patches \
- source/usbloader \
- source/xml \
- source/network \
- source/settings \
- source/settings/menus \
- source/prompts \
- source/wad \
- source/banner \
- source/cheats \
- source/homebrewboot \
- source/themes \
- source/menu \
- source/memory \
- source/FileOperations \
- source/ImageOperations \
- source/SoundOperations \
- source/utils \
- source/utils/minizip \
- source/usbloader/wbfs
-DATA := data
-INCLUDES := source
-
-#---------------------------------------------------------------------------------
-# options for code generation
-#---------------------------------------------------------------------------------
-
-CFLAGS = -g -O3 -Wall -Wno-multichar $(MACHDEP) $(INCLUDE) -DHAVE_CONFIG_H
-CXXFLAGS = -Xassembler -aln=$@.lst $(CFLAGS)
-LDFLAGS = -g $(MACHDEP) -Wl,-Map,$(notdir $@).map,--section-start,.init=0x80B00000,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size
--include $(PROJECTDIR)/Make.config
-
-#---------------------------------------------------------------------------------
-# any extra libraries we wish to link with the project
-#---------------------------------------------------------------------------------
-LIBS := -lpngu -lpng -lgd -lm -lz -lwiiuse -lbte -lasnd -logc -lfreetype -lvorbisidec \
- -lmad -lmxml -ljpeg -lzip -lcustomfat -lcustomntfs -lcustomext2fs
-#---------------------------------------------------------------------------------
-# list of directories containing libraries, this must be the top level containing
-# include and lib
-#---------------------------------------------------------------------------------
-LIBDIRS := $(DEVKITPPC)/lib $(CURDIR)
-#---------------------------------------------------------------------------------
-# no real need to edit anything past this point unless you need to add additional
-# rules for different file extensions
-#---------------------------------------------------------------------------------
-ifneq ($(BUILD),$(notdir $(CURDIR)))
-#---------------------------------------------------------------------------------
-export PROJECTDIR := $(CURDIR)
-export OUTPUT := $(CURDIR)/$(TARGETDIR)/$(TARGET)
-export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
- $(foreach dir,$(DATA),$(CURDIR)/$(dir))
-export DEPSDIR := $(CURDIR)/$(BUILD)
-
-#---------------------------------------------------------------------------------
-# automatically build a list of object files for our project
-#---------------------------------------------------------------------------------
-SVNREV := $(shell bash ./svnrev.sh)
-export CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
-export CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
-sFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
-SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.S)))
-ELFFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.elf)))
-BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.bin)))
-TTFFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.ttf)))
-PNGFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.png)))
-OGGFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.ogg)))
-PCMFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.pcm)))
-WAVFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.wav)))
-DOLFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.dol)))
-MP3FILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.mp3)))
-
-#---------------------------------------------------------------------------------
-# use CXX for linking C++ projects, CC for standard C
-#---------------------------------------------------------------------------------
-ifeq ($(strip $(CPPFILES)),)
- export LD := $(CC)
-else
- export LD := $(CXX)
-endif
-
-export OFILES := $(addsuffix .o,$(BINFILES)) \
- $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) \
- $(sFILES:.s=.o) $(SFILES:.S=.o) \
- $(TTFFILES:.ttf=.ttf.o) $(PNGFILES:.png=.png.o) $(addsuffix .o,$(DOLFILES))\
- $(OGGFILES:.ogg=.ogg.o) $(PCMFILES:.pcm=.pcm.o) $(MP3FILES:.mp3=.mp3.o) \
- $(WAVFILES:.wav=.wav.o) $(addsuffix .o,$(ELFFILES)) $(CURDIR)/data/magic_patcher.o
-
-#---------------------------------------------------------------------------------
-# build a list of include paths
-#---------------------------------------------------------------------------------
-export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
- $(foreach dir,$(LIBDIRS),-I$(dir)/include) \
- -I$(CURDIR)/$(BUILD) \
- -I$(LIBOGC_INC)
-
-#---------------------------------------------------------------------------------
-# build a list of library paths
-#---------------------------------------------------------------------------------
-export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) -L$(CURDIR)/source/libs/libfat/ \
- -L$(CURDIR)/source/libs/libntfs/ -L$(CURDIR)/source/libs/libext2fs/ \
- -L$(LIBOGC_LIB)
-
-export OUTPUT := $(CURDIR)/$(TARGET)
-.PHONY: $(BUILD) lang all clean
-
-#---------------------------------------------------------------------------------
-$(BUILD):
- @[ -d $@ ] || mkdir -p $@
- @/bin/bash ./buildtype.sh
- @$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
-# @echo debug...
-# start geckoreader.exe
-
-channel:
- @[ -d build ] || mkdir -p build
- @/bin/bash ./buildtype.sh FULLCHANNEL
- @$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
-
-#---------------------------------------------------------------------------------
-lang:
- @[ -d build ] || mkdir -p build
- @$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile language
-
-#---------------------------------------------------------------------------------
-theme:
- @[ -d build ] || mkdir -p build
- @$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile language
-
-#---------------------------------------------------------------------------------
-all:
- @[ -d build ] || mkdir -p build
- @./buildtype.sh
- @$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
- @$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile language
-
-#---------------------------------------------------------------------------------
-clean:
- @echo clean ...
- @rm -fr $(BUILD) $(OUTPUT).elf $(OUTPUT).dol
-#---------------------------------------------------------------------------------
-run:
- $(MAKE)
- @echo Done building ...
- @echo Now Run That Shit ...
-
- wiiload $(OUTPUT).dol
-
-#---------------------------------------------------------------------------------
-reload:
- wiiload -r $(OUTPUT).dol
-
-#---------------------------------------------------------------------------------
-release:
- $(MAKE)
- cp boot.dol ./hbc/boot.dol
-
-
-#---------------------------------------------------------------------------------
-else
-
-DEPENDS := $(OFILES:.o=.d)
-
-#---------------------------------------------------------------------------------
-# main targets
-#---------------------------------------------------------------------------------
-$(OUTPUT).dol: $(OUTPUT).elf
-$(OUTPUT).elf: $(OFILES)
-
-language: $(wildcard $(PROJECTDIR)/Languages/*.lang) $(wildcard $(PROJECTDIR)/Themes/*.them)
-#---------------------------------------------------------------------------------
-# This rule links in binary data with .ttf, .png, and .mp3 extensions
-#---------------------------------------------------------------------------------
-
-%.elf.o : %.elf
- @echo $(notdir $<)
- @bin2s -a 32 $< | $(AS) -o $(@)
-
-%.dol.o : %.dol
- @echo $(notdir $<)
- @bin2s -a 32 $< | $(AS) -o $(@)
-
-%.ttf.o : %.ttf
- @echo $(notdir $<)
- @bin2s -a 32 $< | $(AS) -o $(@)
-
-%.png.o : %.png
- @echo $(notdir $<)
- @bin2s -a 32 $< | $(AS) -o $(@)
-
-%.ogg.o : %.ogg
- @echo $(notdir $<)
- @bin2s -a 32 $< | $(AS) -o $(@)
-
-%.pcm.o : %.pcm
- @echo $(notdir $<)
- @bin2s -a 32 $< | $(AS) -o $(@)
-
-%.wav.o : %.wav
- @echo $(notdir $<)
- @bin2s -a 32 $< | $(AS) -o $(@)
-
-%.mp3.o : %.mp3
- @echo $(notdir $<)
- @bin2s -a 32 $< | $(AS) -o $(@)
-
-%.certs.o : %.certs
- @echo $(notdir $<)
- @bin2s -a 32 $< | $(AS) -o $(@)
-
-%.dat.o : %.dat
- @echo $(notdir $<)
- @bin2s -a 32 $< | $(AS) -o $(@)
-
-%.bin.o : %.bin
- @echo $(notdir $<)
- @bin2s -a 32 $< | $(AS) -o $(@)
-
-%.tik.o : %.tik
- @echo $(notdir $<)
- @bin2s -a 32 $< | $(AS) -o $(@)
-
-%.tmd.o : %.tmd
- @echo $(notdir $<)
- @bin2s -a 32 $< | $(AS) -o $(@)
-
-
-
-export PATH := $(PROJECTDIR)/gettext-bin:$(PATH)
-
-%.pot: $(CFILES) $(CPPFILES)
- @echo Updating Languagefiles ...
- @touch $(PROJECTDIR)/Languages/$(TARGET).pot
- @xgettext -C -cTRANSLATORS --from-code=utf-8 --sort-output --no-wrap --no-location -ktr -o$(PROJECTDIR)/Languages/$(TARGET).pot -p $@ $^
- @echo Updating Themefiles ...
- @touch $(PROJECTDIR)/Themes/$(TARGET).pot
- @xgettext -C -cTRANSLATORS --from-code=utf-8 -F --no-wrap --add-location -kthInt -kthColor -kthAlign -o$(PROJECTDIR)/Themes/$(TARGET).pot -p $@ $^
-
-%.lang: $(PROJECTDIR)/Languages/$(TARGET).pot
- @msgmerge -U -N --no-wrap --no-location --backup=none -q $@ $<
- @touch $@
-
-%.them: $(PROJECTDIR)/Themes/$(TARGET).pot
- @msgmerge -U -N --no-wrap --no-location --backup=none -q $@ $<
- @touch $@
-
--include $(DEPENDS)
-
-#---------------------------------------------------------------------------------
-endif
-#---------------------------------------------------------------------------------
diff --git a/Themes/Default.them b/Themes/Default.them
deleted file mode 100644
index fafa6b55..00000000
--- a/Themes/Default.them
+++ /dev/null
@@ -1,405 +0,0 @@
-# USB Loader GX theme source file.
-# don't delete/change this line (é).
-# ONLY the value before the '-' char needs to be entered in msgstr ""
-# not the complete text.
-# It is important that the image folder is defined for the images to load.
-# The image folder should be in the same folder as the .them file and include the theme images.
-msgid ""
-msgstr ""
-"Project-Id-Version: USB Loader GX\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-12-26 16:16+0100\n"
-"PO-Revision-Date: 2009-10-01 01:00+0200\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Image-Folder: Example\n"
-"Last-Themer: Example\n"
-"Theme-Team: Example\n"
-
-msgid "r=0 g=0 b=0 a=255 - prompt windows text color"
-msgstr ""
-
-msgid "r=0 g=0 b=0 a=255 - settings text color"
-msgstr ""
-
-msgid "9 - game list browser page size"
-msgstr ""
-
-msgid "r=0 g=0 b=0 a=255 - game browser list text color"
-msgstr ""
-
-msgid "r=0 g=0 b=0 a=255 - game browser list text color over"
-msgstr ""
-
-msgid "r=55 g=190 b=237 a=255 - carousel game name text color"
-msgstr ""
-
-msgid "0 - game grid layout pos x"
-msgstr ""
-
-msgid "20 - game grid layout pos y"
-msgstr ""
-
-msgid "255 - tooltip alpha"
-msgstr ""
-
-msgid "r=55 g=190 b=237 a=255 - hdd info color"
-msgstr ""
-
-msgid "center - hdd info align ver"
-msgstr ""
-
-msgid "top - hdd info align hor"
-msgstr ""
-
-msgid "0 - hdd info pos x"
-msgstr ""
-
-msgid "400 - hdd info pos y"
-msgstr ""
-
-msgid "r=55 g=190 b=237 a=255 - game count color"
-msgstr ""
-
-msgid "center - game count align ver"
-msgstr ""
-
-msgid "top - game count align hor"
-msgstr ""
-
-msgid "0 - game count pos x"
-msgstr ""
-
-msgid "420 - game count pos y"
-msgstr ""
-
-msgid "16 - install btn pos x"
-msgstr ""
-
-msgid "355 - install btn pos y"
-msgstr ""
-
-msgid "371 - settings btn pos y"
-msgstr ""
-
-msgid "64 - settings btn pos x"
-msgstr ""
-
-msgid "371 - home menu btn pos x"
-msgstr ""
-
-msgid "489 - home menu btn pos x"
-msgstr ""
-
-msgid "355 - power off btn pos y"
-msgstr ""
-
-msgid "576 - power off btn pos x"
-msgstr ""
-
-msgid "160 - sd card btn pos x"
-msgstr ""
-
-msgid "395 - sd card btn pos y"
-msgstr ""
-
-msgid "405 - HBC btn pos y"
-msgstr ""
-
-msgid "410 - HBC btn pos x"
-msgstr ""
-
-msgid "26 - cover/download btn pos x"
-msgstr ""
-
-msgid "58 - cover/download btn pos y"
-msgstr ""
-
-msgid "305 - gameID btn pos y"
-msgstr ""
-
-msgid "68 - gameID btn pos x"
-msgstr ""
-
-msgid "r=138 g=138 b=138 a=240 - clock color"
-msgstr ""
-
-msgid "left - clock align ver"
-msgstr ""
-
-msgid "top - clock align hor"
-msgstr ""
-
-msgid "275 - clock pos x"
-msgstr ""
-
-msgid "275 - clock pos y"
-msgstr ""
-
-msgid "260 - list layout favorite btn pos x"
-msgstr ""
-
-msgid "288 - list layout favorite btn pos x widescreen"
-msgstr ""
-
-msgid "13 - list layout favorite btn pos y"
-msgstr ""
-
-msgid "300 - list layout search btn pos x"
-msgstr ""
-
-msgid "320 - list layout search btn pos x widescreen"
-msgstr ""
-
-msgid "13 - list layout search btn pos x"
-msgstr ""
-
-msgid "340 - list layout abc/sort btn pos x"
-msgstr ""
-
-msgid "352 - list layout abc/sort btn pos x widescreen"
-msgstr ""
-
-msgid "13 - list layout abc/sort btn pos y"
-msgstr ""
-
-msgid "380 - list layout list btn pos x"
-msgstr ""
-
-msgid "384 - list layout list btn pos x widescreen"
-msgstr ""
-
-msgid "13 - list layout list btn pos y"
-msgstr ""
-
-msgid "416 - list layout grid btn pos x widescreen"
-msgstr ""
-
-msgid "420 - list layout grid btn pos x"
-msgstr ""
-
-msgid "13 - list layout grid btn pos y"
-msgstr ""
-
-msgid "448 - list layout carousel btn pos x widescreen"
-msgstr ""
-
-msgid "460 - list layout carousel btn pos x"
-msgstr ""
-
-msgid "13 - list layout carousel btn pos y"
-msgstr ""
-
-msgid "480 - list layout lock btn pos x widescreen"
-msgstr ""
-
-msgid "500 - list layout lock btn pos x"
-msgstr ""
-
-msgid "13 - list layout lock btn pos y"
-msgstr ""
-
-msgid "512 - list layout dvd btn pos x widescreen"
-msgstr ""
-
-msgid "540 - list layout dvd btn pos x"
-msgstr ""
-
-msgid "13 - list layout dvd btn pos y"
-msgstr ""
-
-msgid "280 - game list layout height"
-msgstr ""
-
-msgid "396 - game list layout width"
-msgstr ""
-
-msgid "200 - game list layout pos x"
-msgstr ""
-
-msgid "49 - game list layout pos y"
-msgstr ""
-
-msgid "200 - grid layout favorite btn pos x"
-msgstr ""
-
-msgid "224 - grid layout favorite btn pos x widescreen"
-msgstr ""
-
-msgid "13 - grid layout favorite btn pos y"
-msgstr ""
-
-msgid "240 - grid layout search btn pos x"
-msgstr ""
-
-msgid "256 - grid layout search btn pos x widescreen"
-msgstr ""
-
-msgid "13 - grid layout search btn pos x"
-msgstr ""
-
-msgid "280 - grid layout abc/sort btn pos x"
-msgstr ""
-
-msgid "288 - grid layout abc/sort btn pos x widescreen"
-msgstr ""
-
-msgid "13 - grid layout abc/sort btn pos y"
-msgstr ""
-
-msgid "320 - grid layout list btn pos x"
-msgstr ""
-
-msgid "320 - grid layout list btn pos x widescreen"
-msgstr ""
-
-msgid "13 - grid layout list btn pos y"
-msgstr ""
-
-msgid "352 - grid layout grid btn pos x widescreen"
-msgstr ""
-
-msgid "360 - grid layout grid btn pos x"
-msgstr ""
-
-msgid "13 - grid layout grid btn pos y"
-msgstr ""
-
-msgid "384 - grid layout carousel btn pos x widescreen"
-msgstr ""
-
-msgid "400 - grid layout carousel btn pos x"
-msgstr ""
-
-msgid "13 - grid layout carousel btn pos y"
-msgstr ""
-
-msgid "416 - grid layout lock btn pos x widescreen"
-msgstr ""
-
-msgid "440 - grid layout lock btn pos x"
-msgstr ""
-
-msgid "13 - grid layout lock btn pos y"
-msgstr ""
-
-msgid "448 - grid layout dvd btn pos x widescreen"
-msgstr ""
-
-msgid "480 - grid layout dvd btn pos x"
-msgstr ""
-
-msgid "13 - grid layout dvd btn pos y"
-msgstr ""
-
-msgid "400 - game grid layout height"
-msgstr ""
-
-msgid "640 - game grid layout width"
-msgstr ""
-
-msgid "200 - carousel layout favorite btn pos x"
-msgstr ""
-
-msgid "224 - carousel layout favorite btn pos x widescreen"
-msgstr ""
-
-msgid "13 - carousel layout favorite btn pos y"
-msgstr ""
-
-msgid "240 - carousel layout search btn pos x"
-msgstr ""
-
-msgid "256 - carousel layout search btn pos x widescreen"
-msgstr ""
-
-msgid "13 - carousel layout search btn pos x"
-msgstr ""
-
-msgid "280 - carousel layout abc/sort btn pos x"
-msgstr ""
-
-msgid "288 - carousel layout abc/sort btn pos x widescreen"
-msgstr ""
-
-msgid "13 - carousel layout abc/sort btn pos y"
-msgstr ""
-
-msgid "320 - carousel layout list btn pos x"
-msgstr ""
-
-msgid "320 - carousel layout list btn pos x widescreen"
-msgstr ""
-
-msgid "13 - carousel layout list btn pos y"
-msgstr ""
-
-msgid "352 - carousel layout grid btn pos x widescreen"
-msgstr ""
-
-msgid "360 - carousel layout grid btn pos x"
-msgstr ""
-
-msgid "13 - carousel layout grid btn pos y"
-msgstr ""
-
-msgid "384 - carousel layout carousel btn pos x widescreen"
-msgstr ""
-
-msgid "400 - carousel layout carousel btn pos x"
-msgstr ""
-
-msgid "13 - carousel layout carousel btn pos y"
-msgstr ""
-
-msgid "416 - carousel layout lock btn pos x widescreen"
-msgstr ""
-
-msgid "440 - carousel layout lock btn pos x"
-msgstr ""
-
-msgid "13 - carousel layout lock btn pos y"
-msgstr ""
-
-msgid "448 - carousel layout dvd btn pos x widescreen"
-msgstr ""
-
-msgid "480 - carousel layout dvd btn pos x"
-msgstr ""
-
-msgid "13 - carousel layout dvd btn pos y"
-msgstr ""
-
-msgid "400 - game carousel layout height"
-msgstr ""
-
-msgid "640 - game carousel layout width"
-msgstr ""
-
-msgid "-20 - game carousel layout pos y"
-msgstr ""
-
-msgid "0 - game carousel layout pos x"
-msgstr ""
-
-msgid "1 - show hdd info: 1 for on and 0 for off"
-msgstr ""
-
-msgid "1 - show game count: 1 for on and 0 for off"
-msgstr ""
-
-msgid "r=55 g=190 b=237 a=255 - game id text color"
-msgstr ""
-
-msgid "r=55 g=190 b=237 a=255 - region info text color"
-msgstr ""
-
-msgid "30 - region info text pos x"
-msgstr ""
-
-msgid "68 - region info text pos x"
-msgstr ""
-
-msgid "1 - Enable tooltips: 0 for off and 1 for on"
-msgstr ""
diff --git a/buildtype.sh b/buildtype.sh
deleted file mode 100755
index 22066e27..00000000
--- a/buildtype.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-
-if [ ! -z "$1" ];
-then
- if [ ! -s source/buildtype.h ];
- then
- echo "#define $1" > source/buildtype.h
- fi
-else
- if [[ ! -f source/buildtype.h || -s source/buildtype.h ]];
- then
- cp /dev/null source/buildtype.h
- fi
-fi
diff --git a/data/app_booter.dol b/data/app_booter.dol
deleted file mode 100644
index 62c156fe..00000000
Binary files a/data/app_booter.dol and /dev/null differ
diff --git a/data/certs.dat b/data/certs.dat
deleted file mode 100644
index 2184107d..00000000
Binary files a/data/certs.dat and /dev/null differ
diff --git a/data/haxx.certs b/data/haxx.certs
deleted file mode 100644
index 32dd50ca..00000000
Binary files a/data/haxx.certs and /dev/null differ
diff --git a/data/magic_patcher.o b/data/magic_patcher.o
deleted file mode 100644
index a7de9a03..00000000
Binary files a/data/magic_patcher.o and /dev/null differ
diff --git a/data/stub.bin b/data/stub.bin
deleted file mode 100644
index 63a37a0b..00000000
Binary files a/data/stub.bin and /dev/null differ
diff --git a/gettext-bin/libexpat.dll b/gettext-bin/libexpat.dll
deleted file mode 100644
index 13bc7eec..00000000
Binary files a/gettext-bin/libexpat.dll and /dev/null differ
diff --git a/gettext-bin/libgettextlib.dll b/gettext-bin/libgettextlib.dll
deleted file mode 100644
index 6bc7525b..00000000
Binary files a/gettext-bin/libgettextlib.dll and /dev/null differ
diff --git a/gettext-bin/libgettextpo.dll b/gettext-bin/libgettextpo.dll
deleted file mode 100644
index 9a9aa3fe..00000000
Binary files a/gettext-bin/libgettextpo.dll and /dev/null differ
diff --git a/gettext-bin/libgettextsrc.dll b/gettext-bin/libgettextsrc.dll
deleted file mode 100644
index 0d5a5933..00000000
Binary files a/gettext-bin/libgettextsrc.dll and /dev/null differ
diff --git a/gettext-bin/libiconv2.dll b/gettext-bin/libiconv2.dll
deleted file mode 100644
index fb1ffba3..00000000
Binary files a/gettext-bin/libiconv2.dll and /dev/null differ
diff --git a/gettext-bin/libintl3.dll b/gettext-bin/libintl3.dll
deleted file mode 100644
index ec11e6b1..00000000
Binary files a/gettext-bin/libintl3.dll and /dev/null differ
diff --git a/gettext-bin/msgmerge.exe b/gettext-bin/msgmerge.exe
deleted file mode 100644
index dc5a3ffc..00000000
Binary files a/gettext-bin/msgmerge.exe and /dev/null differ
diff --git a/gettext-bin/xgettext.exe b/gettext-bin/xgettext.exe
deleted file mode 100644
index 590a19b0..00000000
Binary files a/gettext-bin/xgettext.exe and /dev/null differ
diff --git a/gui.pnproj b/gui.pnproj
deleted file mode 100644
index 55da86f4..00000000
--- a/gui.pnproj
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/gui.pnps b/gui.pnps
deleted file mode 100644
index ce6765fe..00000000
--- a/gui.pnps
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/libcustomext2fs/AUTHORS b/libcustomext2fs/AUTHORS
new file mode 100644
index 00000000..2291767c
--- /dev/null
+++ b/libcustomext2fs/AUTHORS
@@ -0,0 +1,11 @@
+
+Present author and main programmer of ext2fs in alphabetical order:
+
+Theodore Ts'o
+
+Many more are contributing to this project. Read it all up at http://e2fsprogs.sourceforge.net/ext2.html
+
+
+Nintendo GameCube/Wii port author:
+
+Dimok
diff --git a/libcustomext2fs/CREDITS b/libcustomext2fs/CREDITS
new file mode 100644
index 00000000..32fb026f
--- /dev/null
+++ b/libcustomext2fs/CREDITS
@@ -0,0 +1,9 @@
+First of all thanks goes to everyone who contributed to ext2fs directly or indirectly.
+Visit the site to inform yourself who was involved in it http://e2fsprogs.sourceforge.net/ext2.html
+
+The following people have contributed directly or indirectly
+to the Nintendo GameCube/Wii port of ext2fs.
+
+Michael "Chishm" Chisholm
+rodries
+Rhys "Shareese" Koedijk
\ No newline at end of file
diff --git a/libcustomext2fs/LICENSE b/libcustomext2fs/LICENSE
new file mode 100644
index 00000000..623b6258
--- /dev/null
+++ b/libcustomext2fs/LICENSE
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ , 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/libcustomext2fs/Makefile b/libcustomext2fs/Makefile
new file mode 100644
index 00000000..8745416d
--- /dev/null
+++ b/libcustomext2fs/Makefile
@@ -0,0 +1,31 @@
+
+default: cube-release wii-release
+
+all: debug release
+
+debug: cube-debug wii-debug
+
+release: cube-release wii-release
+
+cube-debug:
+ $(MAKE) -C source PLATFORM=cube BUILD=cube_debug
+
+wii-debug:
+ $(MAKE) -C source PLATFORM=wii BUILD=wii_debug
+
+cube-release:
+ $(MAKE) -C source PLATFORM=cube BUILD=cube_release
+
+wii-release:
+ $(MAKE) -C source PLATFORM=wii BUILD=wii_release
+
+clean:
+ $(MAKE) -C source clean
+
+install: cube-release wii-release
+ $(MAKE) -C source install
+
+run: install
+ $(MAKE) -C example
+ $(MAKE) -C example run
+
diff --git a/libcustomext2fs/include/ext2.h b/libcustomext2fs/include/ext2.h
new file mode 100644
index 00000000..059e18be
--- /dev/null
+++ b/libcustomext2fs/include/ext2.h
@@ -0,0 +1,99 @@
+ /**
+ * ext2.h - devoptab file routines for EXT2/3/4-based devices.
+ *
+ * Copyright (c) 2010 Dimok
+ *
+ * This program/include file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program/include file is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef __EXT2_H_
+#define __EXT2_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include
+#include
+#include
+
+/* EXT2 cache options */
+#define CACHE_DEFAULT_PAGE_COUNT 8 /* The default number of pages in the cache */
+#define CACHE_DEFAULT_PAGE_SIZE 128 /* The default number of sectors per cache page */
+
+/* EXT2 mount flags */
+#define EXT2_FLAG_RW 0x00001 /* Open the filesystem for reading and writing. Without this flag, the filesystem is opened for reading only. */
+#define EXT2_FLAG_FORCE 0x00400 /* Open the filesystem regardless of the feature sets listed in the superblock */
+#define EXT2_FLAG_JOURNAL_DEV_OK 0x01000 /* Only open external journal devices if this flag is set (e.g. ext3/ext4) */
+#define EXT2_FLAG_64BITS 0x20000 /* Use the new style 64-Bit bitmaps. For more information see gen_bitmap64.c */
+#define EXT2_FLAG_PRINT_PROGRESS 0x40000 /* If this flag is set the progress of file operations will be printed to stdout */
+#define EXT2_FLAG_DEFAULT (EXT2_FLAG_RW | EXT2_FLAG_64BITS | EXT2_FLAG_JOURNAL_DEV_OK)
+
+/**
+ * Find all EXT2/3/4 partitions on a block device.
+ *
+ * @param INTERFACE The block device to search
+ * @param PARTITIONS (out) A pointer to receive the array of partition start sectors
+ *
+ * @return The number of entries in PARTITIONS or -1 if an error occurred (see errno)
+ * @note The caller is responsible for freeing PARTITIONS when finished with it
+ */
+int ext2FindPartitions(const DISC_INTERFACE *interface, sec_t **partitions);
+
+/**
+ * Mount a EXT2/3/4 partition from a specific sector on a block device.
+ *
+ * @param NAME The name to mount the device under (can then be accessed as "NAME:/")
+ * @param INTERFACE The block device to mount
+ * @param STARTSECTOR The sector the partition begins at
+ * @param CACHEPAGECOUNT The total number of pages in the device cache
+ * @param CACHEPAGESIZE The number of sectors per cache page
+ * @param FLAGS Additional mounting flags (see above)
+ *
+ * @return True if mount was successful, false if no partition was found or an error occurred (see errno)
+ */
+bool ext2Mount(const char *name, const DISC_INTERFACE *interface, sec_t startSector, u32 cachePageCount, u32 cachePageSize, u32 flags);
+
+/**
+ * Unmount a EXT2/3/4 partition.
+ *
+ * @param NAME The name of mount used in ext2Mount()
+ */
+void ext2Unmount(const char *name);
+
+/**
+ * Get the volume name of a mounted EXT2/3/4 partition.
+ *
+ * @param NAME The name of mount
+ *
+ * @return The volumes name if successful or NULL if an error occurred (see errno)
+ */
+const char *ext2GetVolumeName (const char *name);
+
+/**
+ * Set the volume name of a mounted EXT2/3/4 partition.
+ *
+ * @param NAME The name of mount
+ * @param VOLUMENAME The new volume name
+ *
+ * @return True if mount was successful, false if an error occurred (see errno)
+ * @note The mount must be write-enabled else this will fail
+ */
+bool ext2SetVolumeName (const char *name, const char *volumeName);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/libcustomext2fs/source/Makefile b/libcustomext2fs/source/Makefile
new file mode 100644
index 00000000..c2fabaa2
--- /dev/null
+++ b/libcustomext2fs/source/Makefile
@@ -0,0 +1,132 @@
+#---------------------------------------------------------------------------------
+# Clear the implicit built in rules
+#---------------------------------------------------------------------------------
+.SUFFIXES:
+#---------------------------------------------------------------------------------
+ifeq ($(strip $(DEVKITPPC)),)
+$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC")
+endif
+
+ifeq ($(PLATFORM),wii)
+include $(DEVKITPPC)/wii_rules
+endif
+
+ifeq ($(PLATFORM),cube)
+include $(DEVKITPPC)/gamecube_rules
+endif
+
+#---------------------------------------------------------------------------------
+# BUILD is the directory where object files & intermediate files will be placed
+# SOURCES is a list of directories containing source code
+# INCLUDES is a list of directories containing extra header files
+#---------------------------------------------------------------------------------
+BUILD ?= wii_release
+SOURCES := .
+INCLUDES := ../include
+LIBDIR := ../lib
+
+#---------------------------------------------------------------------------------
+# options for code generation
+#---------------------------------------------------------------------------------
+CFLAGS = -O3 -Wall $(MACHDEP) $(INCLUDE) -DGEKKO \
+ -DHAVE_UNISTD_H -DHAVE_SYS_STAT_H -DHAVE_SYS_TYPES_H -DHAVE_UTIME_H -DWORDS_BIGENDIAN \
+ -DHAVE_ERRNO_H -DHAVE_STRDUP -DHAVE_SYS_RESOURCE_H
+CXXFLAGS = $(CFLAGS)
+ASFLAGS := -g
+export EXT2BIN := $(LIBDIR)/$(PLATFORM)/libext2fs.a
+
+ifeq ($(BUILD),cube_debug)
+CFLAGS += -DDEBUG_GEKKO
+CXXFLAGS += -DDEBUG_GEKKO
+endif
+ifeq ($(BUILD),wii_debug)
+CFLAGS += -DDEBUG_GEKKO
+CXXFLAGS += -DDEBUG_GEKKO
+endif
+
+#---------------------------------------------------------------------------------
+# any extra libraries we wish to link with the project
+#---------------------------------------------------------------------------------
+LIBS :=
+
+#---------------------------------------------------------------------------------
+# list of directories containing libraries, this must be the top level containing
+# include and lib
+#---------------------------------------------------------------------------------
+LIBDIRS :=
+
+#---------------------------------------------------------------------------------
+# no real need to edit anything past this point unless you need to add additional
+# rules for different file extensions
+#---------------------------------------------------------------------------------
+ifneq ($(BUILD),$(notdir $(CURDIR)))
+#---------------------------------------------------------------------------------
+
+export DEPSDIR := $(CURDIR)/$(BUILD)
+
+export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
+ $(foreach dir,$(DATA),$(CURDIR)/$(dir))
+
+CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
+CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
+SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
+BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))
+
+
+export OFILES := $(addsuffix .o,$(BINFILES)) \
+ $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) $(SFILES:.s=.o)
+
+export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
+ $(foreach dir,$(LIBDIRS),-I$(dir)/include) \
+ $(foreach dir,$(LIBDIRS),-I$(dir)/include) \
+ -I$(CURDIR)/$(BUILD) \
+ -I$(LIBOGC_INC)
+
+export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) \
+ -L$(LIBOGC_LIB)
+
+.PHONY: $(BUILD) clean
+
+#---------------------------------------------------------------------------------
+$(BUILD):
+ @[ -d $@ ] || mkdir -p $@
+ @$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
+
+#---------------------------------------------------------------------------------
+clean:
+ @echo clean ...
+ @rm -fr wii_debug wii_release cube_debug cube_release $(LIBDIR)
+
+all: $(EXT2BIN)
+
+install:
+ cp ../include/ext2.h $(DEVKITPRO)/libogc/include
+ cp ../lib/wii/libext2fs.a $(DEVKITPRO)/libogc/lib/wii
+ cp ../lib/cube/libext2fs.a $(DEVKITPRO)/libogc/lib/cube
+
+wii-install:
+ cp ../include/ext2.h $(DEVKITPRO)/libogc/include
+ cp ../lib/wii/libext2fs.a $(DEVKITPRO)/libogc/lib/wii
+
+#---------------------------------------------------------------------------------
+else
+
+DEPENDS := $(OFILES:.o=.d)
+
+#---------------------------------------------------------------------------------
+# main targets
+#---------------------------------------------------------------------------------
+$(EXT2BIN): $(OFILES) $(LIBDIR)/$(PLATFORM)
+ @rm -f "../$(EXT2BIN)"
+ @$(AR) rcs "../$(EXT2BIN)" $(OFILES)
+ @echo built ... $(notdir $@)
+
+$(LIBDIR)/$(PLATFORM):
+ mkdir -p ../$(LIBDIR)/$(PLATFORM)
+
+-include $(DEPENDS)
+
+#---------------------------------------------------------------------------------------
+endif
+#---------------------------------------------------------------------------------------
+
diff --git a/libcustomext2fs/source/alloc.c b/libcustomext2fs/source/alloc.c
new file mode 100644
index 00000000..3a8f3328
--- /dev/null
+++ b/libcustomext2fs/source/alloc.c
@@ -0,0 +1,308 @@
+/*
+ * alloc.c --- allocate new inodes, blocks for ext2fs
+ *
+ * Copyright (C) 1993, 1994, 1995, 1996 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+#include
+#include
+#if HAVE_SYS_STAT_H
+#include
+#endif
+#if HAVE_SYS_TYPES_H
+#include
+#endif
+
+#include "ext2_fs.h"
+#include "ext2fs.h"
+
+/*
+ * Check for uninit block bitmaps and deal with them appropriately
+ */
+static void check_block_uninit(ext2_filsys fs, ext2fs_block_bitmap map,
+ dgrp_t group)
+{
+ blk_t i;
+ blk64_t blk, super_blk, old_desc_blk, new_desc_blk;
+ int old_desc_blocks;
+
+ if (!(EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) ||
+ !(ext2fs_bg_flags_test(fs, group, EXT2_BG_BLOCK_UNINIT)))
+ return;
+
+ blk = (group * fs->super->s_blocks_per_group) +
+ fs->super->s_first_data_block;
+
+ ext2fs_super_and_bgd_loc2(fs, group, &super_blk,
+ &old_desc_blk, &new_desc_blk, 0);
+
+ if (fs->super->s_feature_incompat &
+ EXT2_FEATURE_INCOMPAT_META_BG)
+ old_desc_blocks = fs->super->s_first_meta_bg;
+ else
+ old_desc_blocks = fs->desc_blocks + fs->super->s_reserved_gdt_blocks;
+
+ for (i=0; i < fs->super->s_blocks_per_group; i++, blk++) {
+ if ((blk == super_blk) ||
+ (old_desc_blk && old_desc_blocks &&
+ (blk >= old_desc_blk) &&
+ (blk < old_desc_blk + old_desc_blocks)) ||
+ (new_desc_blk && (blk == new_desc_blk)) ||
+ (blk == ext2fs_block_bitmap_loc(fs, group)) ||
+ (blk == ext2fs_inode_bitmap_loc(fs, group)) ||
+ (blk >= ext2fs_inode_table_loc(fs, group) &&
+ (blk < ext2fs_inode_table_loc(fs, group)
+ + fs->inode_blocks_per_group)))
+ ext2fs_fast_mark_block_bitmap2(map, blk);
+ else
+ ext2fs_fast_unmark_block_bitmap2(map, blk);
+ }
+ ext2fs_bg_flags_clear(fs, group, EXT2_BG_BLOCK_UNINIT);
+ ext2fs_group_desc_csum_set(fs, group);
+}
+
+/*
+ * Check for uninit inode bitmaps and deal with them appropriately
+ */
+static void check_inode_uninit(ext2_filsys fs, ext2fs_inode_bitmap map,
+ dgrp_t group)
+{
+ ext2_ino_t i, ino;
+
+ if (!(EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) ||
+ !(ext2fs_bg_flags_test(fs, group, EXT2_BG_INODE_UNINIT)))
+ return;
+
+ ino = (group * fs->super->s_inodes_per_group) + 1;
+ for (i=0; i < fs->super->s_inodes_per_group; i++, ino++)
+ ext2fs_fast_unmark_inode_bitmap2(map, ino);
+
+ ext2fs_bg_flags_clear(fs, group, EXT2_BG_INODE_UNINIT);
+ check_block_uninit(fs, fs->block_map, group);
+}
+
+/*
+ * Right now, just search forward from the parent directory's block
+ * group to find the next free inode.
+ *
+ * Should have a special policy for directories.
+ */
+errcode_t ext2fs_new_inode(ext2_filsys fs, ext2_ino_t dir,
+ int mode EXT2FS_ATTR((unused)),
+ ext2fs_inode_bitmap map, ext2_ino_t *ret)
+{
+ ext2_ino_t dir_group = 0;
+ ext2_ino_t i;
+ ext2_ino_t start_inode;
+
+ EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+
+ if (!map)
+ map = fs->inode_map;
+ if (!map)
+ return EXT2_ET_NO_INODE_BITMAP;
+
+ if (dir > 0)
+ dir_group = (dir - 1) / EXT2_INODES_PER_GROUP(fs->super);
+
+ start_inode = (dir_group * EXT2_INODES_PER_GROUP(fs->super)) + 1;
+ if (start_inode < EXT2_FIRST_INODE(fs->super))
+ start_inode = EXT2_FIRST_INODE(fs->super);
+ if (start_inode > fs->super->s_inodes_count)
+ return EXT2_ET_INODE_ALLOC_FAIL;
+ i = start_inode;
+
+ do {
+ if (((i - 1) % EXT2_INODES_PER_GROUP(fs->super)) == 0)
+ check_inode_uninit(fs, map, (i - 1) /
+ EXT2_INODES_PER_GROUP(fs->super));
+
+ if (!ext2fs_fast_test_inode_bitmap2(map, i))
+ break;
+ i++;
+ if (i > fs->super->s_inodes_count)
+ i = EXT2_FIRST_INODE(fs->super);
+ } while (i != start_inode);
+
+ if (ext2fs_test_inode_bitmap2(map, i))
+ return EXT2_ET_INODE_ALLOC_FAIL;
+ *ret = i;
+ return 0;
+}
+
+/*
+ * Stupid algorithm --- we now just search forward starting from the
+ * goal. Should put in a smarter one someday....
+ */
+errcode_t ext2fs_new_block2(ext2_filsys fs, blk64_t goal,
+ ext2fs_block_bitmap map, blk64_t *ret)
+{
+ blk64_t i;
+
+ EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+
+ if (!map)
+ map = fs->block_map;
+ if (!map)
+ return EXT2_ET_NO_BLOCK_BITMAP;
+ if (!goal || (goal >= ext2fs_blocks_count(fs->super)))
+ goal = fs->super->s_first_data_block;
+ i = goal;
+ check_block_uninit(fs, map,
+ (i - fs->super->s_first_data_block) /
+ EXT2_BLOCKS_PER_GROUP(fs->super));
+ do {
+ if (((i - fs->super->s_first_data_block) %
+ EXT2_BLOCKS_PER_GROUP(fs->super)) == 0)
+ check_block_uninit(fs, map,
+ (i - fs->super->s_first_data_block) /
+ EXT2_BLOCKS_PER_GROUP(fs->super));
+
+ if (!ext2fs_fast_test_block_bitmap2(map, i)) {
+ *ret = i;
+ return 0;
+ }
+ i++;
+ if (i >= ext2fs_blocks_count(fs->super))
+ i = fs->super->s_first_data_block;
+ } while (i != goal);
+ return EXT2_ET_BLOCK_ALLOC_FAIL;
+}
+
+errcode_t ext2fs_new_block(ext2_filsys fs, blk_t goal,
+ ext2fs_block_bitmap map, blk_t *ret)
+{
+ errcode_t retval;
+ blk64_t val;
+ retval = ext2fs_new_block2(fs, goal, map, &val);
+ if (!retval)
+ *ret = (blk_t) val;
+ return retval;
+}
+
+/*
+ * This function zeros out the allocated block, and updates all of the
+ * appropriate filesystem records.
+ */
+errcode_t ext2fs_alloc_block2(ext2_filsys fs, blk64_t goal,
+ char *block_buf, blk64_t *ret)
+{
+ errcode_t retval;
+ blk64_t block;
+ char *buf = 0;
+
+ if (!block_buf) {
+ retval = ext2fs_get_mem(fs->blocksize, &buf);
+ if (retval)
+ return retval;
+ block_buf = buf;
+ }
+ memset(block_buf, 0, fs->blocksize);
+
+ if (fs->get_alloc_block) {
+ retval = (fs->get_alloc_block)(fs, goal, &block);
+ if (retval)
+ goto fail;
+ } else {
+ if (!fs->block_map) {
+ retval = ext2fs_read_block_bitmap(fs);
+ if (retval)
+ goto fail;
+ }
+
+ retval = ext2fs_new_block2(fs, goal, 0, &block);
+ if (retval)
+ goto fail;
+ }
+
+ retval = io_channel_write_blk64(fs->io, block, 1, block_buf);
+ if (retval)
+ goto fail;
+
+ ext2fs_block_alloc_stats2(fs, block, +1);
+ *ret = block;
+
+fail:
+ if (buf)
+ ext2fs_free_mem(&buf);
+ return retval;
+}
+
+errcode_t ext2fs_alloc_block(ext2_filsys fs, blk_t goal,
+ char *block_buf, blk_t *ret)
+{
+ errcode_t retval;
+ blk64_t val;
+ retval = ext2fs_alloc_block2(fs, goal, block_buf, &val);
+ if (!retval)
+ *ret = (blk_t) val;
+ return retval;
+}
+
+errcode_t ext2fs_get_free_blocks2(ext2_filsys fs, blk64_t start, blk64_t finish,
+ int num, ext2fs_block_bitmap map, blk64_t *ret)
+{
+ blk64_t b = start;
+
+ EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+
+ if (!map)
+ map = fs->block_map;
+ if (!map)
+ return EXT2_ET_NO_BLOCK_BITMAP;
+ if (!b)
+ b = fs->super->s_first_data_block;
+ if (!finish)
+ finish = start;
+ if (!num)
+ num = 1;
+ do {
+ if (b+num-1 > ext2fs_blocks_count(fs->super))
+ b = fs->super->s_first_data_block;
+ if (ext2fs_fast_test_block_bitmap_range2(map, b, num)) {
+ *ret = b;
+ return 0;
+ }
+ b++;
+ } while (b != finish);
+ return EXT2_ET_BLOCK_ALLOC_FAIL;
+}
+
+errcode_t ext2fs_get_free_blocks(ext2_filsys fs, blk_t start, blk_t finish,
+ int num, ext2fs_block_bitmap map, blk_t *ret)
+{
+ errcode_t retval;
+ blk64_t val;
+ retval = ext2fs_get_free_blocks2(fs, start, finish, num, map, &val);
+ if(!retval)
+ *ret = (blk_t) val;
+ return retval;
+}
+
+void ext2fs_set_alloc_block_callback(ext2_filsys fs,
+ errcode_t (*func)(ext2_filsys fs,
+ blk64_t goal,
+ blk64_t *ret),
+ errcode_t (**old)(ext2_filsys fs,
+ blk64_t goal,
+ blk64_t *ret))
+{
+ if (!fs || fs->magic != EXT2_ET_MAGIC_EXT2FS_FILSYS)
+ return;
+
+ if (old)
+ *old = fs->get_alloc_block;
+
+ fs->get_alloc_block = func;
+}
diff --git a/libcustomext2fs/source/alloc_sb.c b/libcustomext2fs/source/alloc_sb.c
new file mode 100644
index 00000000..d5fca3b2
--- /dev/null
+++ b/libcustomext2fs/source/alloc_sb.c
@@ -0,0 +1,86 @@
+/*
+ * alloc_sb.c --- Allocate the superblock and block group descriptors for a
+ * newly initialized filesystem. Used by mke2fs when initializing a filesystem
+ *
+ * Copyright (C) 1994, 1995, 1996, 2003 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+#include
+#include
+#if HAVE_SYS_STAT_H
+#include
+#endif
+#if HAVE_SYS_TYPES_H
+#include
+#endif
+
+#include "ext2_fs.h"
+#include "ext2fs.h"
+
+/*
+ * This function reserves the superblock and block group descriptors
+ * for a given block group. It currently returns the number of free
+ * blocks assuming that inode table and allocation bitmaps will be in
+ * the group. This is not necessarily the case when the flex_bg
+ * feature is enabled, so callers should take care! It was only
+ * really intended for use by mke2fs, and even there it's not that
+ * useful. In the future, when we redo this function for 64-bit block
+ * numbers, we should probably return the number of blocks used by the
+ * super block and group descriptors instead.
+ *
+ * See also the comment for ext2fs_super_and_bgd_loc()
+ */
+int ext2fs_reserve_super_and_bgd(ext2_filsys fs,
+ dgrp_t group,
+ ext2fs_block_bitmap bmap)
+{
+ blk64_t super_blk, old_desc_blk, new_desc_blk;
+ blk_t used_blks;
+ int j, old_desc_blocks, num_blocks;
+
+ ext2fs_super_and_bgd_loc2(fs, group, &super_blk,
+ &old_desc_blk, &new_desc_blk, &used_blks);
+
+ if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG)
+ old_desc_blocks = fs->super->s_first_meta_bg;
+ else
+ old_desc_blocks =
+ fs->desc_blocks + fs->super->s_reserved_gdt_blocks;
+
+ if (super_blk || (group == 0))
+ ext2fs_mark_block_bitmap2(bmap, super_blk);
+
+ if (old_desc_blk) {
+ if (fs->super->s_reserved_gdt_blocks && fs->block_map == bmap)
+ ext2fs_bg_flags_clear(fs, group, EXT2_BG_BLOCK_UNINIT);
+ for (j=0; j < old_desc_blocks; j++)
+ if (old_desc_blk + j < ext2fs_blocks_count(fs->super))
+ ext2fs_mark_block_bitmap2(bmap,
+ old_desc_blk + j);
+ }
+ if (new_desc_blk)
+ ext2fs_mark_block_bitmap2(bmap, new_desc_blk);
+
+ if (group == fs->group_desc_count-1) {
+ num_blocks = (ext2fs_blocks_count(fs->super) -
+ fs->super->s_first_data_block) %
+ fs->super->s_blocks_per_group;
+ if (!num_blocks)
+ num_blocks = fs->super->s_blocks_per_group;
+ } else
+ num_blocks = fs->super->s_blocks_per_group;
+
+ num_blocks -= 2 + fs->inode_blocks_per_group + used_blks;
+
+ return num_blocks ;
+}
diff --git a/libcustomext2fs/source/alloc_stats.c b/libcustomext2fs/source/alloc_stats.c
new file mode 100644
index 00000000..0f276659
--- /dev/null
+++ b/libcustomext2fs/source/alloc_stats.c
@@ -0,0 +1,106 @@
+/*
+ * alloc_stats.c --- Update allocation statistics for ext2fs
+ *
+ * Copyright (C) 2001 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+
+#include "ext2_fs.h"
+#include "ext2fs.h"
+
+void ext2fs_inode_alloc_stats2(ext2_filsys fs, ext2_ino_t ino,
+ int inuse, int isdir)
+{
+ int group = ext2fs_group_of_ino(fs, ino);
+
+#ifndef OMIT_COM_ERR
+ if (ino > fs->super->s_inodes_count) {
+ com_err("ext2fs_inode_alloc_stats2", 0,
+ "Illegal inode number: %lu", (unsigned long) ino);
+ return;
+ }
+#endif
+ if (inuse > 0)
+ ext2fs_mark_inode_bitmap2(fs->inode_map, ino);
+ else
+ ext2fs_unmark_inode_bitmap2(fs->inode_map, ino);
+ ext2fs_bg_free_inodes_count_set(fs, group, ext2fs_bg_free_inodes_count(fs, group) - inuse);
+ if (isdir)
+ ext2fs_bg_used_dirs_count_set(fs, group, ext2fs_bg_used_dirs_count(fs, group) + inuse);
+
+ /* We don't strictly need to be clearing the uninit flag if inuse < 0
+ * (i.e. freeing inodes) but it also means something is bad. */
+ ext2fs_bg_flags_clear(fs, group, EXT2_BG_INODE_UNINIT);
+ if (EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) {
+ ext2_ino_t first_unused_inode = fs->super->s_inodes_per_group -
+ ext2fs_bg_itable_unused(fs, group) +
+ group * fs->super->s_inodes_per_group + 1;
+
+ if (ino >= first_unused_inode)
+ ext2fs_bg_itable_unused_set(fs, group, group * fs->super->s_inodes_per_group + fs->super->s_inodes_per_group - ino);
+ ext2fs_group_desc_csum_set(fs, group);
+ }
+
+ fs->super->s_free_inodes_count -= inuse;
+ ext2fs_mark_super_dirty(fs);
+ ext2fs_mark_ib_dirty(fs);
+}
+
+void ext2fs_inode_alloc_stats(ext2_filsys fs, ext2_ino_t ino, int inuse)
+{
+ ext2fs_inode_alloc_stats2(fs, ino, inuse, 0);
+}
+
+void ext2fs_block_alloc_stats2(ext2_filsys fs, blk64_t blk, int inuse)
+{
+ int group = ext2fs_group_of_blk2(fs, blk);
+
+#ifndef OMIT_COM_ERR
+ if (blk >= ext2fs_blocks_count(fs->super)) {
+ com_err("ext2fs_block_alloc_stats", 0,
+ "Illegal block number: %lu", (unsigned long) blk);
+ return;
+ }
+#endif
+ if (inuse > 0)
+ ext2fs_mark_block_bitmap2(fs->block_map, blk);
+ else
+ ext2fs_unmark_block_bitmap2(fs->block_map, blk);
+ ext2fs_bg_free_blocks_count_set(fs, group, ext2fs_bg_free_blocks_count(fs, group) - inuse);
+ ext2fs_bg_flags_clear(fs, group, EXT2_BG_BLOCK_UNINIT);
+ ext2fs_group_desc_csum_set(fs, group);
+
+ ext2fs_free_blocks_count_add(fs->super, -inuse);
+ ext2fs_mark_super_dirty(fs);
+ ext2fs_mark_bb_dirty(fs);
+ if (fs->block_alloc_stats)
+ (fs->block_alloc_stats)(fs, (blk64_t) blk, inuse);
+}
+
+void ext2fs_block_alloc_stats(ext2_filsys fs, blk_t blk, int inuse)
+{
+ ext2fs_block_alloc_stats2(fs, blk, inuse);
+}
+
+void ext2fs_set_block_alloc_stats_callback(ext2_filsys fs,
+ void (*func)(ext2_filsys fs,
+ blk64_t blk,
+ int inuse),
+ void (**old)(ext2_filsys fs,
+ blk64_t blk,
+ int inuse))
+{
+ if (!fs || fs->magic != EXT2_ET_MAGIC_EXT2FS_FILSYS)
+ return;
+ if (old)
+ *old = fs->block_alloc_stats;
+
+ fs->block_alloc_stats = func;
+}
diff --git a/libcustomext2fs/source/alloc_tables.c b/libcustomext2fs/source/alloc_tables.c
new file mode 100644
index 00000000..1c4532b6
--- /dev/null
+++ b/libcustomext2fs/source/alloc_tables.c
@@ -0,0 +1,239 @@
+/*
+ * alloc_tables.c --- Allocate tables for a newly initialized
+ * filesystem. Used by mke2fs when initializing a filesystem
+ *
+ * Copyright (C) 1996 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+#include
+#include
+#if HAVE_SYS_STAT_H
+#include
+#endif
+#if HAVE_SYS_TYPES_H
+#include
+#endif
+
+#include "ext2_fs.h"
+#include "ext2fs.h"
+#include "ext2fsP.h"
+
+/*
+ * This routine searches for free blocks that can allocate a full
+ * group of bitmaps or inode tables for a flexbg group. Returns the
+ * block number with a correct offset were the bitmaps and inode
+ * tables can be allocated continously and in order.
+ */
+static blk64_t flexbg_offset(ext2_filsys fs, dgrp_t group, blk64_t start_blk,
+ ext2fs_block_bitmap bmap, int offset, int size,
+ int elem_size)
+{
+ int flexbg, flexbg_size;
+ blk64_t last_blk, first_free = 0;
+ dgrp_t last_grp;
+
+ flexbg_size = 1 << fs->super->s_log_groups_per_flex;
+ flexbg = group / flexbg_size;
+
+ if (size > (int) (fs->super->s_blocks_per_group / 8))
+ size = (int) fs->super->s_blocks_per_group / 8;
+
+ if (offset)
+ offset -= 1;
+
+ /*
+ * Don't do a long search if the previous block
+ * search is still valid.
+ */
+ if (start_blk && group % flexbg_size) {
+ if (ext2fs_test_block_bitmap_range2(bmap, start_blk + elem_size,
+ size))
+ return start_blk + elem_size;
+ }
+
+ start_blk = ext2fs_group_first_block2(fs, flexbg_size * flexbg);
+ last_grp = group | (flexbg_size - 1);
+ if (last_grp > fs->group_desc_count)
+ last_grp = fs->group_desc_count;
+ last_blk = ext2fs_group_last_block2(fs, last_grp);
+
+ /* Find the first available block */
+ if (ext2fs_get_free_blocks2(fs, start_blk, last_blk, 1, bmap,
+ &first_free))
+ return first_free;
+
+ if (ext2fs_get_free_blocks2(fs, first_free + offset, last_blk, size,
+ bmap, &first_free))
+ return first_free;
+
+ return first_free;
+}
+
+errcode_t ext2fs_allocate_group_table(ext2_filsys fs, dgrp_t group,
+ ext2fs_block_bitmap bmap)
+{
+ errcode_t retval;
+ blk64_t group_blk, start_blk, last_blk, new_blk, blk;
+ dgrp_t last_grp = 0;
+ int j, rem_grps = 0, flexbg_size = 0;
+
+ group_blk = ext2fs_group_first_block2(fs, group);
+ last_blk = ext2fs_group_last_block2(fs, group);
+
+ if (!bmap)
+ bmap = fs->block_map;
+
+ if (EXT2_HAS_INCOMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_INCOMPAT_FLEX_BG) &&
+ fs->super->s_log_groups_per_flex) {
+ flexbg_size = 1 << fs->super->s_log_groups_per_flex;
+ last_grp = group | (flexbg_size - 1);
+ rem_grps = last_grp - group;
+ if (last_grp > fs->group_desc_count)
+ last_grp = fs->group_desc_count;
+ }
+
+ /*
+ * Allocate the block and inode bitmaps, if necessary
+ */
+ if (fs->stride) {
+ retval = ext2fs_get_free_blocks2(fs, group_blk, last_blk,
+ 1, bmap, &start_blk);
+ if (retval)
+ return retval;
+ start_blk += fs->inode_blocks_per_group;
+ start_blk += ((fs->stride * group) %
+ (last_blk - start_blk + 1));
+ if (start_blk >= last_blk)
+ start_blk = group_blk;
+ } else
+ start_blk = group_blk;
+
+ if (flexbg_size) {
+ blk64_t prev_block = 0;
+
+ if (group && ext2fs_block_bitmap_loc(fs, group - 1))
+ prev_block = ext2fs_block_bitmap_loc(fs, group - 1);
+ start_blk = flexbg_offset(fs, group, prev_block, bmap,
+ 0, rem_grps, 1);
+ last_blk = ext2fs_group_last_block2(fs, last_grp);
+ }
+
+ if (!ext2fs_block_bitmap_loc(fs, group)) {
+ retval = ext2fs_get_free_blocks2(fs, start_blk, last_blk,
+ 1, bmap, &new_blk);
+ if (retval == EXT2_ET_BLOCK_ALLOC_FAIL)
+ retval = ext2fs_get_free_blocks2(fs, group_blk,
+ last_blk, 1, bmap, &new_blk);
+ if (retval)
+ return retval;
+ ext2fs_mark_block_bitmap2(bmap, new_blk);
+ ext2fs_block_bitmap_loc_set(fs, group, new_blk);
+ if (flexbg_size) {
+ dgrp_t gr = ext2fs_group_of_blk2(fs, new_blk);
+ ext2fs_bg_free_blocks_count_set(fs, gr, ext2fs_bg_free_blocks_count(fs, gr) - 1);
+ ext2fs_free_blocks_count_add(fs->super, -1);
+ ext2fs_bg_flags_clear(fs, gr, EXT2_BG_BLOCK_UNINIT);
+ ext2fs_group_desc_csum_set(fs, gr);
+ }
+ }
+
+ if (flexbg_size) {
+ blk64_t prev_block = 0;
+ if (group && ext2fs_inode_bitmap_loc(fs, group - 1))
+ prev_block = ext2fs_inode_bitmap_loc(fs, group - 1);
+ start_blk = flexbg_offset(fs, group, prev_block, bmap,
+ flexbg_size, rem_grps, 1);
+ last_blk = ext2fs_group_last_block2(fs, last_grp);
+ }
+
+ if (!ext2fs_inode_bitmap_loc(fs, group)) {
+ retval = ext2fs_get_free_blocks2(fs, start_blk, last_blk,
+ 1, bmap, &new_blk);
+ if (retval == EXT2_ET_BLOCK_ALLOC_FAIL)
+ retval = ext2fs_get_free_blocks2(fs, group_blk,
+ last_blk, 1, bmap, &new_blk);
+ if (retval)
+ return retval;
+ ext2fs_mark_block_bitmap2(bmap, new_blk);
+ ext2fs_inode_bitmap_loc_set(fs, group, new_blk);
+ if (flexbg_size) {
+ dgrp_t gr = ext2fs_group_of_blk2(fs, new_blk);
+ ext2fs_bg_free_blocks_count_set(fs, gr, ext2fs_bg_free_blocks_count(fs, gr) - 1);
+ ext2fs_free_blocks_count_add(fs->super, -1);
+ ext2fs_bg_flags_clear(fs, gr, EXT2_BG_BLOCK_UNINIT);
+ ext2fs_group_desc_csum_set(fs, gr);
+ }
+ }
+
+ /*
+ * Allocate the inode table
+ */
+ if (flexbg_size) {
+ blk64_t prev_block = 0;
+ if (group && ext2fs_inode_table_loc(fs, group - 1))
+ prev_block = ext2fs_inode_table_loc(fs, group - 1);
+ if (last_grp == fs->group_desc_count)
+ rem_grps = last_grp - group;
+ group_blk = flexbg_offset(fs, group, prev_block, bmap,
+ flexbg_size * 2,
+ fs->inode_blocks_per_group *
+ rem_grps,
+ fs->inode_blocks_per_group);
+ last_blk = ext2fs_group_last_block2(fs, last_grp);
+ }
+
+ if (!ext2fs_inode_table_loc(fs, group)) {
+ retval = ext2fs_get_free_blocks2(fs, group_blk, last_blk,
+ fs->inode_blocks_per_group,
+ bmap, &new_blk);
+ if (retval)
+ return retval;
+ for (j=0, blk = new_blk;
+ j < fs->inode_blocks_per_group;
+ j++, blk++) {
+ ext2fs_mark_block_bitmap2(bmap, blk);
+ if (flexbg_size) {
+ dgrp_t gr = ext2fs_group_of_blk2(fs, blk);
+ ext2fs_bg_free_blocks_count_set(fs, gr, ext2fs_bg_free_blocks_count(fs, gr) - 1);
+ ext2fs_free_blocks_count_add(fs->super, -1);
+ ext2fs_bg_flags_clear(fs, gr,
+ EXT2_BG_BLOCK_UNINIT);
+ ext2fs_group_desc_csum_set(fs, gr);
+ }
+ }
+ ext2fs_inode_table_loc_set(fs, group, new_blk);
+ }
+ ext2fs_group_desc_csum_set(fs, group);
+ return 0;
+}
+
+errcode_t ext2fs_allocate_tables(ext2_filsys fs)
+{
+ errcode_t retval;
+ dgrp_t i;
+ struct ext2fs_numeric_progress_struct progress;
+
+ ext2fs_numeric_progress_init(fs, &progress, NULL,
+ fs->group_desc_count);
+
+ for (i = 0; i < fs->group_desc_count; i++) {
+ ext2fs_numeric_progress_update(fs, &progress, i);
+ retval = ext2fs_allocate_group_table(fs, i, fs->block_map);
+ if (retval)
+ return retval;
+ }
+ ext2fs_numeric_progress_close(fs, &progress, NULL);
+ return 0;
+}
+
diff --git a/libcustomext2fs/source/badblocks.c b/libcustomext2fs/source/badblocks.c
new file mode 100644
index 00000000..5eb28b78
--- /dev/null
+++ b/libcustomext2fs/source/badblocks.c
@@ -0,0 +1,327 @@
+/*
+ * badblocks.c --- routines to manipulate the bad block structure
+ *
+ * Copyright (C) 1994, 1995, 1996 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+#include
+#include
+#if HAVE_SYS_STAT_H
+#include
+#endif
+#if HAVE_SYS_TYPES_H
+#include
+#endif
+
+#include "ext2_fs.h"
+#include "ext2fsP.h"
+
+/*
+ * Helper function for making a badblocks list
+ */
+static errcode_t make_u32_list(int size, int num, __u32 *list,
+ ext2_u32_list *ret)
+{
+ ext2_u32_list bb;
+ errcode_t retval;
+
+ retval = ext2fs_get_mem(sizeof(struct ext2_struct_u32_list), &bb);
+ if (retval)
+ return retval;
+ memset(bb, 0, sizeof(struct ext2_struct_u32_list));
+ bb->magic = EXT2_ET_MAGIC_BADBLOCKS_LIST;
+ bb->size = size ? size : 10;
+ bb->num = num;
+ retval = ext2fs_get_array(bb->size, sizeof(blk_t), &bb->list);
+ if (retval) {
+ ext2fs_free_mem(&bb);
+ return retval;
+ }
+ if (list)
+ memcpy(bb->list, list, bb->size * sizeof(blk_t));
+ else
+ memset(bb->list, 0, bb->size * sizeof(blk_t));
+ *ret = bb;
+ return 0;
+}
+
+
+/*
+ * This procedure creates an empty u32 list.
+ */
+errcode_t ext2fs_u32_list_create(ext2_u32_list *ret, int size)
+{
+ return make_u32_list(size, 0, 0, ret);
+}
+
+/*
+ * This procedure creates an empty badblocks list.
+ */
+errcode_t ext2fs_badblocks_list_create(ext2_badblocks_list *ret, int size)
+{
+ return make_u32_list(size, 0, 0, (ext2_badblocks_list *) ret);
+}
+
+
+/*
+ * This procedure copies a badblocks list
+ */
+errcode_t ext2fs_u32_copy(ext2_u32_list src, ext2_u32_list *dest)
+{
+ errcode_t retval;
+
+ retval = make_u32_list(src->size, src->num, src->list, dest);
+ if (retval)
+ return retval;
+ (*dest)->badblocks_flags = src->badblocks_flags;
+ return 0;
+}
+
+errcode_t ext2fs_badblocks_copy(ext2_badblocks_list src,
+ ext2_badblocks_list *dest)
+{
+ return ext2fs_u32_copy((ext2_u32_list) src,
+ (ext2_u32_list *) dest);
+}
+
+/*
+ * This procedure frees a badblocks list.
+ *
+ * (note: moved to closefs.c)
+ */
+
+
+/*
+ * This procedure adds a block to a badblocks list.
+ */
+errcode_t ext2fs_u32_list_add(ext2_u32_list bb, __u32 blk)
+{
+ errcode_t retval;
+ int i, j;
+ unsigned long old_size;
+
+ EXT2_CHECK_MAGIC(bb, EXT2_ET_MAGIC_BADBLOCKS_LIST);
+
+ if (bb->num >= bb->size) {
+ old_size = bb->size * sizeof(__u32);
+ bb->size += 100;
+ retval = ext2fs_resize_mem(old_size, bb->size * sizeof(__u32),
+ &bb->list);
+ if (retval) {
+ bb->size -= 100;
+ return retval;
+ }
+ }
+
+ /*
+ * Add special case code for appending to the end of the list
+ */
+ i = bb->num-1;
+ if ((bb->num != 0) && (bb->list[i] == blk))
+ return 0;
+ if ((bb->num == 0) || (bb->list[i] < blk)) {
+ bb->list[bb->num++] = blk;
+ return 0;
+ }
+
+ j = bb->num;
+ for (i=0; i < bb->num; i++) {
+ if (bb->list[i] == blk)
+ return 0;
+ if (bb->list[i] > blk) {
+ j = i;
+ break;
+ }
+ }
+ for (i=bb->num; i > j; i--)
+ bb->list[i] = bb->list[i-1];
+ bb->list[j] = blk;
+ bb->num++;
+ return 0;
+}
+
+errcode_t ext2fs_badblocks_list_add(ext2_badblocks_list bb, blk_t blk)
+{
+ return ext2fs_u32_list_add((ext2_u32_list) bb, (__u32) blk);
+}
+
+/*
+ * This procedure finds a particular block is on a badblocks
+ * list.
+ */
+int ext2fs_u32_list_find(ext2_u32_list bb, __u32 blk)
+{
+ int low, high, mid;
+
+ if (bb->magic != EXT2_ET_MAGIC_BADBLOCKS_LIST)
+ return -1;
+
+ if (bb->num == 0)
+ return -1;
+
+ low = 0;
+ high = bb->num-1;
+ if (blk == bb->list[low])
+ return low;
+ if (blk == bb->list[high])
+ return high;
+
+ while (low < high) {
+ mid = (low+high)/2;
+ if (mid == low || mid == high)
+ break;
+ if (blk == bb->list[mid])
+ return mid;
+ if (blk < bb->list[mid])
+ high = mid;
+ else
+ low = mid;
+ }
+ return -1;
+}
+
+/*
+ * This procedure tests to see if a particular block is on a badblocks
+ * list.
+ */
+int ext2fs_u32_list_test(ext2_u32_list bb, __u32 blk)
+{
+ if (ext2fs_u32_list_find(bb, blk) < 0)
+ return 0;
+ else
+ return 1;
+}
+
+int ext2fs_badblocks_list_test(ext2_badblocks_list bb, blk_t blk)
+{
+ return ext2fs_u32_list_test((ext2_u32_list) bb, (__u32) blk);
+}
+
+
+/*
+ * Remove a block from the badblock list
+ */
+int ext2fs_u32_list_del(ext2_u32_list bb, __u32 blk)
+{
+ int remloc, i;
+
+ if (bb->num == 0)
+ return -1;
+
+ remloc = ext2fs_u32_list_find(bb, blk);
+ if (remloc < 0)
+ return -1;
+
+ for (i = remloc ; i < bb->num-1; i++)
+ bb->list[i] = bb->list[i+1];
+ bb->num--;
+ return 0;
+}
+
+void ext2fs_badblocks_list_del(ext2_u32_list bb, __u32 blk)
+{
+ ext2fs_u32_list_del(bb, blk);
+}
+
+errcode_t ext2fs_u32_list_iterate_begin(ext2_u32_list bb,
+ ext2_u32_iterate *ret)
+{
+ ext2_u32_iterate iter;
+ errcode_t retval;
+
+ EXT2_CHECK_MAGIC(bb, EXT2_ET_MAGIC_BADBLOCKS_LIST);
+
+ retval = ext2fs_get_mem(sizeof(struct ext2_struct_u32_iterate), &iter);
+ if (retval)
+ return retval;
+
+ iter->magic = EXT2_ET_MAGIC_BADBLOCKS_ITERATE;
+ iter->bb = bb;
+ iter->ptr = 0;
+ *ret = iter;
+ return 0;
+}
+
+errcode_t ext2fs_badblocks_list_iterate_begin(ext2_badblocks_list bb,
+ ext2_badblocks_iterate *ret)
+{
+ return ext2fs_u32_list_iterate_begin((ext2_u32_list) bb,
+ (ext2_u32_iterate *) ret);
+}
+
+
+int ext2fs_u32_list_iterate(ext2_u32_iterate iter, __u32 *blk)
+{
+ ext2_u32_list bb;
+
+ if (iter->magic != EXT2_ET_MAGIC_BADBLOCKS_ITERATE)
+ return 0;
+
+ bb = iter->bb;
+
+ if (bb->magic != EXT2_ET_MAGIC_BADBLOCKS_LIST)
+ return 0;
+
+ if (iter->ptr < bb->num) {
+ *blk = bb->list[iter->ptr++];
+ return 1;
+ }
+ *blk = 0;
+ return 0;
+}
+
+int ext2fs_badblocks_list_iterate(ext2_badblocks_iterate iter, blk_t *blk)
+{
+ return ext2fs_u32_list_iterate((ext2_u32_iterate) iter,
+ (__u32 *) blk);
+}
+
+
+void ext2fs_u32_list_iterate_end(ext2_u32_iterate iter)
+{
+ if (!iter || (iter->magic != EXT2_ET_MAGIC_BADBLOCKS_ITERATE))
+ return;
+
+ iter->bb = 0;
+ ext2fs_free_mem(&iter);
+}
+
+void ext2fs_badblocks_list_iterate_end(ext2_badblocks_iterate iter)
+{
+ ext2fs_u32_list_iterate_end((ext2_u32_iterate) iter);
+}
+
+
+int ext2fs_u32_list_equal(ext2_u32_list bb1, ext2_u32_list bb2)
+{
+ EXT2_CHECK_MAGIC(bb1, EXT2_ET_MAGIC_BADBLOCKS_LIST);
+ EXT2_CHECK_MAGIC(bb2, EXT2_ET_MAGIC_BADBLOCKS_LIST);
+
+ if (bb1->num != bb2->num)
+ return 0;
+
+ if (memcmp(bb1->list, bb2->list, bb1->num * sizeof(blk_t)) != 0)
+ return 0;
+ return 1;
+}
+
+int ext2fs_badblocks_equal(ext2_badblocks_list bb1, ext2_badblocks_list bb2)
+{
+ return ext2fs_u32_list_equal((ext2_u32_list) bb1,
+ (ext2_u32_list) bb2);
+}
+
+int ext2fs_u32_list_count(ext2_u32_list bb)
+{
+ return bb->num;
+}
diff --git a/libcustomext2fs/source/bb_compat.c b/libcustomext2fs/source/bb_compat.c
new file mode 100644
index 00000000..a94e3e48
--- /dev/null
+++ b/libcustomext2fs/source/bb_compat.c
@@ -0,0 +1,63 @@
+/*
+ * bb_compat.c --- compatibility badblocks routines
+ *
+ * Copyright (C) 1997 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+#include
+#include
+#if HAVE_SYS_STAT_H
+#include
+#endif
+#if HAVE_SYS_TYPES_H
+#include
+#endif
+
+#include "ext2_fs.h"
+#include "ext2fsP.h"
+
+errcode_t badblocks_list_create(badblocks_list *ret, int size)
+{
+ return ext2fs_badblocks_list_create(ret, size);
+}
+
+void badblocks_list_free(badblocks_list bb)
+{
+ ext2fs_badblocks_list_free(bb);
+}
+
+errcode_t badblocks_list_add(badblocks_list bb, blk_t blk)
+{
+ return ext2fs_badblocks_list_add(bb, blk);
+}
+
+int badblocks_list_test(badblocks_list bb, blk_t blk)
+{
+ return ext2fs_badblocks_list_test(bb, blk);
+}
+
+errcode_t badblocks_list_iterate_begin(badblocks_list bb,
+ badblocks_iterate *ret)
+{
+ return ext2fs_badblocks_list_iterate_begin(bb, ret);
+}
+
+int badblocks_list_iterate(badblocks_iterate iter, blk_t *blk)
+{
+ return ext2fs_badblocks_list_iterate(iter, blk);
+}
+
+void badblocks_list_iterate_end(badblocks_iterate iter)
+{
+ ext2fs_badblocks_list_iterate_end(iter);
+}
diff --git a/libcustomext2fs/source/bb_inode.c b/libcustomext2fs/source/bb_inode.c
new file mode 100644
index 00000000..0b79b164
--- /dev/null
+++ b/libcustomext2fs/source/bb_inode.c
@@ -0,0 +1,267 @@
+/*
+ * bb_inode.c --- routines to update the bad block inode.
+ *
+ * WARNING: This routine modifies a lot of state in the filesystem; if
+ * this routine returns an error, the bad block inode may be in an
+ * inconsistent state.
+ *
+ * Copyright (C) 1994, 1995 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+#include
+#include
+#if HAVE_SYS_STAT_H
+#include
+#endif
+#if HAVE_SYS_TYPES_H
+#include
+#endif
+
+#include "ext2_fs.h"
+#include "ext2fs.h"
+
+struct set_badblock_record {
+ ext2_badblocks_iterate bb_iter;
+ int bad_block_count;
+ blk_t *ind_blocks;
+ int max_ind_blocks;
+ int ind_blocks_size;
+ int ind_blocks_ptr;
+ char *block_buf;
+ errcode_t err;
+};
+
+static int set_bad_block_proc(ext2_filsys fs, blk_t *block_nr,
+ e2_blkcnt_t blockcnt,
+ blk_t ref_block, int ref_offset,
+ void *priv_data);
+static int clear_bad_block_proc(ext2_filsys fs, blk_t *block_nr,
+ e2_blkcnt_t blockcnt,
+ blk_t ref_block, int ref_offset,
+ void *priv_data);
+
+/*
+ * Given a bad blocks bitmap, update the bad blocks inode to reflect
+ * the map.
+ */
+errcode_t ext2fs_update_bb_inode(ext2_filsys fs, ext2_badblocks_list bb_list)
+{
+ errcode_t retval;
+ struct set_badblock_record rec;
+ struct ext2_inode inode;
+
+ EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+
+ if (!fs->block_map)
+ return EXT2_ET_NO_BLOCK_BITMAP;
+
+ rec.bad_block_count = 0;
+ rec.ind_blocks_size = rec.ind_blocks_ptr = 0;
+ rec.max_ind_blocks = 10;
+ retval = ext2fs_get_array(rec.max_ind_blocks, sizeof(blk_t),
+ &rec.ind_blocks);
+ if (retval)
+ return retval;
+ memset(rec.ind_blocks, 0, rec.max_ind_blocks * sizeof(blk_t));
+ retval = ext2fs_get_mem(fs->blocksize, &rec.block_buf);
+ if (retval)
+ goto cleanup;
+ memset(rec.block_buf, 0, fs->blocksize);
+ rec.err = 0;
+
+ /*
+ * First clear the old bad blocks (while saving the indirect blocks)
+ */
+ retval = ext2fs_block_iterate2(fs, EXT2_BAD_INO,
+ BLOCK_FLAG_DEPTH_TRAVERSE, 0,
+ clear_bad_block_proc, &rec);
+ if (retval)
+ goto cleanup;
+ if (rec.err) {
+ retval = rec.err;
+ goto cleanup;
+ }
+
+ /*
+ * Now set the bad blocks!
+ *
+ * First, mark the bad blocks as used. This prevents a bad
+ * block from being used as an indirecto block for the bad
+ * block inode (!).
+ */
+ if (bb_list) {
+ retval = ext2fs_badblocks_list_iterate_begin(bb_list,
+ &rec.bb_iter);
+ if (retval)
+ goto cleanup;
+ retval = ext2fs_block_iterate2(fs, EXT2_BAD_INO,
+ BLOCK_FLAG_APPEND, 0,
+ set_bad_block_proc, &rec);
+ ext2fs_badblocks_list_iterate_end(rec.bb_iter);
+ if (retval)
+ goto cleanup;
+ if (rec.err) {
+ retval = rec.err;
+ goto cleanup;
+ }
+ }
+
+ /*
+ * Update the bad block inode's mod time and block count
+ * field.
+ */
+ retval = ext2fs_read_inode(fs, EXT2_BAD_INO, &inode);
+ if (retval)
+ goto cleanup;
+
+ inode.i_atime = inode.i_mtime = fs->now ? fs->now : time(0);
+ if (!inode.i_ctime)
+ inode.i_ctime = fs->now ? fs->now : time(0);
+ ext2fs_iblk_set(fs, &inode, rec.bad_block_count);
+ inode.i_size = rec.bad_block_count * fs->blocksize;
+
+ retval = ext2fs_write_inode(fs, EXT2_BAD_INO, &inode);
+ if (retval)
+ goto cleanup;
+
+cleanup:
+ ext2fs_free_mem(&rec.ind_blocks);
+ ext2fs_free_mem(&rec.block_buf);
+ return retval;
+}
+
+/*
+ * Helper function for update_bb_inode()
+ *
+ * Clear the bad blocks in the bad block inode, while saving the
+ * indirect blocks.
+ */
+#ifdef __TURBOC__
+ #pragma argsused
+#endif
+static int clear_bad_block_proc(ext2_filsys fs, blk_t *block_nr,
+ e2_blkcnt_t blockcnt,
+ blk_t ref_block EXT2FS_ATTR((unused)),
+ int ref_offset EXT2FS_ATTR((unused)),
+ void *priv_data)
+{
+ struct set_badblock_record *rec = (struct set_badblock_record *)
+ priv_data;
+ errcode_t retval;
+ unsigned long old_size;
+
+ if (!*block_nr)
+ return 0;
+
+ /*
+ * If the block number is outrageous, clear it and ignore it.
+ */
+ if (*block_nr >= ext2fs_blocks_count(fs->super) ||
+ *block_nr < fs->super->s_first_data_block) {
+ *block_nr = 0;
+ return BLOCK_CHANGED;
+ }
+
+ if (blockcnt < 0) {
+ if (rec->ind_blocks_size >= rec->max_ind_blocks) {
+ old_size = rec->max_ind_blocks * sizeof(blk_t);
+ rec->max_ind_blocks += 10;
+ retval = ext2fs_resize_mem(old_size,
+ rec->max_ind_blocks * sizeof(blk_t),
+ &rec->ind_blocks);
+ if (retval) {
+ rec->max_ind_blocks -= 10;
+ rec->err = retval;
+ return BLOCK_ABORT;
+ }
+ }
+ rec->ind_blocks[rec->ind_blocks_size++] = *block_nr;
+ }
+
+ /*
+ * Mark the block as unused, and update accounting information
+ */
+ ext2fs_block_alloc_stats2(fs, *block_nr, -1);
+
+ *block_nr = 0;
+ return BLOCK_CHANGED;
+}
+
+
+/*
+ * Helper function for update_bb_inode()
+ *
+ * Set the block list in the bad block inode, using the supplied bitmap.
+ */
+#ifdef __TURBOC__
+ #pragma argsused
+#endif
+static int set_bad_block_proc(ext2_filsys fs, blk_t *block_nr,
+ e2_blkcnt_t blockcnt,
+ blk_t ref_block EXT2FS_ATTR((unused)),
+ int ref_offset EXT2FS_ATTR((unused)),
+ void *priv_data)
+{
+ struct set_badblock_record *rec = (struct set_badblock_record *)
+ priv_data;
+ errcode_t retval;
+ blk_t blk;
+
+ if (blockcnt >= 0) {
+ /*
+ * Get the next bad block.
+ */
+ if (!ext2fs_badblocks_list_iterate(rec->bb_iter, &blk))
+ return BLOCK_ABORT;
+ rec->bad_block_count++;
+ } else {
+ /*
+ * An indirect block; fetch a block from the
+ * previously used indirect block list. The block
+ * most be not marked as used; if so, get another one.
+ * If we run out of reserved indirect blocks, allocate
+ * a new one.
+ */
+ retry:
+ if (rec->ind_blocks_ptr < rec->ind_blocks_size) {
+ blk = rec->ind_blocks[rec->ind_blocks_ptr++];
+ if (ext2fs_test_block_bitmap2(fs->block_map, blk))
+ goto retry;
+ } else {
+ retval = ext2fs_new_block(fs, 0, 0, &blk);
+ if (retval) {
+ rec->err = retval;
+ return BLOCK_ABORT;
+ }
+ }
+ retval = io_channel_write_blk64(fs->io, blk, 1, rec->block_buf);
+ if (retval) {
+ rec->err = retval;
+ return BLOCK_ABORT;
+ }
+ }
+
+ /*
+ * Update block counts
+ */
+ ext2fs_block_alloc_stats2(fs, blk, +1);
+
+ *block_nr = blk;
+ return BLOCK_CHANGED;
+}
+
+
+
+
+
+
diff --git a/libcustomext2fs/source/bit_ops.h b/libcustomext2fs/source/bit_ops.h
new file mode 100644
index 00000000..762be0b3
--- /dev/null
+++ b/libcustomext2fs/source/bit_ops.h
@@ -0,0 +1,57 @@
+/*
+ bit_ops.h
+ Functions for dealing with conversion of data between types
+
+ Copyright (c) 2006 Michael "Chishm" Chisholm
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ 3. The name of the author may not be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef _BIT_OPS_H
+#define _BIT_OPS_H
+
+#include
+
+/*-----------------------------------------------------------------
+Functions to deal with little endian values stored in uint8_t arrays
+-----------------------------------------------------------------*/
+static inline uint16_t u8array_to_u16 (const uint8_t* item, int offset) {
+ return ( item[offset] | (item[offset + 1] << 8));
+}
+
+static inline uint32_t u8array_to_u32 (const uint8_t* item, int offset) {
+ return ( item[offset] | (item[offset + 1] << 8) | (item[offset + 2] << 16) | (item[offset + 3] << 24));
+}
+
+static inline void u16_to_u8array (uint8_t* item, int offset, uint16_t value) {
+ item[offset] = (uint8_t) value;
+ item[offset + 1] = (uint8_t)(value >> 8);
+}
+
+static inline void u32_to_u8array (uint8_t* item, int offset, uint32_t value) {
+ item[offset] = (uint8_t) value;
+ item[offset + 1] = (uint8_t)(value >> 8);
+ item[offset + 2] = (uint8_t)(value >> 16);
+ item[offset + 3] = (uint8_t)(value >> 24);
+}
+
+#endif // _BIT_OPS_H
diff --git a/libcustomext2fs/source/bitmaps.c b/libcustomext2fs/source/bitmaps.c
new file mode 100644
index 00000000..c53d61ec
--- /dev/null
+++ b/libcustomext2fs/source/bitmaps.c
@@ -0,0 +1,256 @@
+/*
+ * bitmaps.c --- routines to read, write, and manipulate the inode and
+ * block bitmaps.
+ *
+ * Copyright (C) 1993, 1994, 1995, 1996 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+#include
+#include
+#if HAVE_SYS_STAT_H
+#include
+#endif
+#if HAVE_SYS_TYPES_H
+#include
+#endif
+
+#include "ext2_fs.h"
+#include "ext2fs.h"
+#include "ext2fsP.h"
+
+void ext2fs_free_inode_bitmap(ext2fs_inode_bitmap bitmap)
+{
+ ext2fs_free_generic_bmap(bitmap);
+}
+
+void ext2fs_free_block_bitmap(ext2fs_block_bitmap bitmap)
+{
+ ext2fs_free_generic_bmap(bitmap);
+}
+
+errcode_t ext2fs_copy_bitmap(ext2fs_generic_bitmap src,
+ ext2fs_generic_bitmap *dest)
+{
+ return (ext2fs_copy_generic_bmap(src, dest));
+}
+void ext2fs_set_bitmap_padding(ext2fs_generic_bitmap map)
+{
+ ext2fs_set_generic_bmap_padding(map);
+}
+
+errcode_t ext2fs_allocate_inode_bitmap(ext2_filsys fs,
+ const char *descr,
+ ext2fs_inode_bitmap *ret)
+{
+ __u64 start, end, real_end;
+
+ EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+
+ fs->write_bitmaps = ext2fs_write_bitmaps;
+
+ start = 1;
+ end = fs->super->s_inodes_count;
+ real_end = (EXT2_INODES_PER_GROUP(fs->super) * fs->group_desc_count);
+
+ /* Are we permitted to use new-style bitmaps? */
+ if (fs->flags & EXT2_FLAG_64BITS)
+ return (ext2fs_alloc_generic_bmap(fs,
+ EXT2_ET_MAGIC_INODE_BITMAP64,
+ EXT2FS_BMAP64_BITARRAY,
+ start, end, real_end, descr, ret));
+
+ /* Otherwise, check to see if the file system is small enough
+ * to use old-style 32-bit bitmaps */
+ if ((end > ~0U) || (real_end > ~0U))
+ return EXT2_ET_CANT_USE_LEGACY_BITMAPS;
+
+ return (ext2fs_make_generic_bitmap(EXT2_ET_MAGIC_INODE_BITMAP, fs,
+ start, end, real_end,
+ descr, 0,
+ (ext2fs_generic_bitmap *) ret));
+}
+
+errcode_t ext2fs_allocate_block_bitmap(ext2_filsys fs,
+ const char *descr,
+ ext2fs_block_bitmap *ret)
+{
+ __u64 start, end, real_end;
+
+ EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+
+ fs->write_bitmaps = ext2fs_write_bitmaps;
+
+ start = fs->super->s_first_data_block;
+ end = ext2fs_blocks_count(fs->super)-1;
+ real_end = ((__u64) EXT2_BLOCKS_PER_GROUP(fs->super)
+ * (__u64) fs->group_desc_count)-1 + start;
+
+ if (fs->flags & EXT2_FLAG_64BITS)
+ return (ext2fs_alloc_generic_bmap(fs,
+ EXT2_ET_MAGIC_BLOCK_BITMAP64,
+ EXT2FS_BMAP64_BITARRAY,
+ start, end, real_end, descr, ret));
+
+ if ((end > ~0U) || (real_end > ~0U))
+ return EXT2_ET_CANT_USE_LEGACY_BITMAPS;
+
+ return (ext2fs_make_generic_bitmap(EXT2_ET_MAGIC_BLOCK_BITMAP, fs,
+ start, end, real_end,
+ descr, 0,
+ (ext2fs_generic_bitmap *) ret));
+}
+
+errcode_t ext2fs_fudge_inode_bitmap_end(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t end, ext2_ino_t *oend)
+{
+ __u64 tmp_oend;
+ int retval;
+
+ retval = ext2fs_fudge_generic_bmap_end((ext2fs_generic_bitmap) bitmap,
+ EXT2_ET_FUDGE_INODE_BITMAP_END,
+ end, &tmp_oend);
+ if (oend)
+ *oend = tmp_oend;
+ return retval;
+}
+
+errcode_t ext2fs_fudge_block_bitmap_end(ext2fs_block_bitmap bitmap,
+ blk_t end, blk_t *oend)
+{
+ return (ext2fs_fudge_generic_bitmap_end(bitmap,
+ EXT2_ET_MAGIC_BLOCK_BITMAP,
+ EXT2_ET_FUDGE_BLOCK_BITMAP_END,
+ end, oend));
+}
+
+errcode_t ext2fs_fudge_block_bitmap_end2(ext2fs_block_bitmap bitmap,
+ blk64_t end, blk64_t *oend)
+{
+ return (ext2fs_fudge_generic_bmap_end(bitmap,
+ EXT2_ET_FUDGE_BLOCK_BITMAP_END,
+ end, oend));
+}
+
+void ext2fs_clear_inode_bitmap(ext2fs_inode_bitmap bitmap)
+{
+ ext2fs_clear_generic_bmap(bitmap);
+}
+
+void ext2fs_clear_block_bitmap(ext2fs_block_bitmap bitmap)
+{
+ ext2fs_clear_generic_bmap(bitmap);
+}
+
+errcode_t ext2fs_resize_inode_bitmap(__u32 new_end, __u32 new_real_end,
+ ext2fs_inode_bitmap bmap)
+{
+ return (ext2fs_resize_generic_bitmap(EXT2_ET_MAGIC_INODE_BITMAP,
+ new_end, new_real_end, bmap));
+}
+
+errcode_t ext2fs_resize_inode_bitmap2(__u64 new_end, __u64 new_real_end,
+ ext2fs_inode_bitmap bmap)
+{
+ return (ext2fs_resize_generic_bmap(bmap, new_end, new_real_end));
+}
+
+errcode_t ext2fs_resize_block_bitmap(__u32 new_end, __u32 new_real_end,
+ ext2fs_block_bitmap bmap)
+{
+ return (ext2fs_resize_generic_bitmap(EXT2_ET_MAGIC_BLOCK_BITMAP,
+ new_end, new_real_end, bmap));
+}
+
+errcode_t ext2fs_resize_block_bitmap2(__u64 new_end, __u64 new_real_end,
+ ext2fs_block_bitmap bmap)
+{
+ return (ext2fs_resize_generic_bmap(bmap, new_end, new_real_end));
+}
+
+errcode_t ext2fs_compare_block_bitmap(ext2fs_block_bitmap bm1,
+ ext2fs_block_bitmap bm2)
+{
+ return (ext2fs_compare_generic_bmap(EXT2_ET_NEQ_BLOCK_BITMAP,
+ bm1, bm2));
+}
+
+errcode_t ext2fs_compare_inode_bitmap(ext2fs_inode_bitmap bm1,
+ ext2fs_inode_bitmap bm2)
+{
+ return (ext2fs_compare_generic_bmap(EXT2_ET_NEQ_INODE_BITMAP,
+ bm1, bm2));
+}
+
+errcode_t ext2fs_set_inode_bitmap_range(ext2fs_inode_bitmap bmap,
+ ext2_ino_t start, unsigned int num,
+ void *in)
+{
+ return (ext2fs_set_generic_bitmap_range(bmap,
+ EXT2_ET_MAGIC_INODE_BITMAP,
+ start, num, in));
+}
+
+errcode_t ext2fs_set_inode_bitmap_range2(ext2fs_inode_bitmap bmap,
+ __u64 start, size_t num,
+ void *in)
+{
+ return (ext2fs_set_generic_bmap_range(bmap, start, num, in));
+}
+
+errcode_t ext2fs_get_inode_bitmap_range(ext2fs_inode_bitmap bmap,
+ ext2_ino_t start, unsigned int num,
+ void *out)
+{
+ return (ext2fs_get_generic_bitmap_range(bmap,
+ EXT2_ET_MAGIC_INODE_BITMAP,
+ start, num, out));
+}
+
+errcode_t ext2fs_get_inode_bitmap_range2(ext2fs_inode_bitmap bmap,
+ __u64 start, size_t num,
+ void *out)
+{
+ return (ext2fs_get_generic_bmap_range(bmap, start, num, out));
+}
+
+errcode_t ext2fs_set_block_bitmap_range(ext2fs_block_bitmap bmap,
+ blk_t start, unsigned int num,
+ void *in)
+{
+ return (ext2fs_set_generic_bitmap_range(bmap,
+ EXT2_ET_MAGIC_BLOCK_BITMAP,
+ start, num, in));
+}
+
+errcode_t ext2fs_set_block_bitmap_range2(ext2fs_block_bitmap bmap,
+ blk64_t start, size_t num,
+ void *in)
+{
+ return (ext2fs_set_generic_bmap_range(bmap, start, num, in));
+}
+
+errcode_t ext2fs_get_block_bitmap_range(ext2fs_block_bitmap bmap,
+ blk_t start, unsigned int num,
+ void *out)
+{
+ return (ext2fs_get_generic_bitmap_range(bmap,
+ EXT2_ET_MAGIC_BLOCK_BITMAP,
+ start, num, out));
+}
+
+errcode_t ext2fs_get_block_bitmap_range2(ext2fs_block_bitmap bmap,
+ blk64_t start, size_t num,
+ void *out)
+{
+ return (ext2fs_get_generic_bmap_range(bmap, start, num, out));
+}
diff --git a/libcustomext2fs/source/bitops.c b/libcustomext2fs/source/bitops.c
new file mode 100644
index 00000000..a3f72c31
--- /dev/null
+++ b/libcustomext2fs/source/bitops.c
@@ -0,0 +1,117 @@
+/*
+ * bitops.c --- Bitmap frobbing code. See bitops.h for the inlined
+ * routines.
+ *
+ * Copyright (C) 1993, 1994, 1995, 1996 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#if HAVE_SYS_TYPES_H
+#include
+#endif
+
+#include "ext2_fs.h"
+#include "ext2fs.h"
+
+#ifndef _EXT2_HAVE_ASM_BITOPS_
+
+/*
+ * For the benefit of those who are trying to port Linux to another
+ * architecture, here are some C-language equivalents. You should
+ * recode these in the native assmebly language, if at all possible.
+ *
+ * C language equivalents written by Theodore Ts'o, 9/26/92.
+ * Modified by Pete A. Zaitcev 7/14/95 to be portable to big endian
+ * systems, as well as non-32 bit systems.
+ */
+
+int ext2fs_set_bit(unsigned int nr,void * addr)
+{
+ int mask, retval;
+ unsigned char *ADDR = (unsigned char *) addr;
+
+ ADDR += nr >> 3;
+ mask = 1 << (nr & 0x07);
+ retval = mask & *ADDR;
+ *ADDR |= mask;
+ return retval;
+}
+
+int ext2fs_clear_bit(unsigned int nr, void * addr)
+{
+ int mask, retval;
+ unsigned char *ADDR = (unsigned char *) addr;
+
+ ADDR += nr >> 3;
+ mask = 1 << (nr & 0x07);
+ retval = mask & *ADDR;
+ *ADDR &= ~mask;
+ return retval;
+}
+
+int ext2fs_test_bit(unsigned int nr, const void * addr)
+{
+ int mask;
+ const unsigned char *ADDR = (const unsigned char *) addr;
+
+ ADDR += nr >> 3;
+ mask = 1 << (nr & 0x07);
+ return (mask & *ADDR);
+}
+
+#endif /* !_EXT2_HAVE_ASM_BITOPS_ */
+
+void ext2fs_warn_bitmap(errcode_t errcode, unsigned long arg,
+ const char *description)
+{
+#ifndef OMIT_COM_ERR
+ if (description)
+ com_err(0, errcode, "#%lu for %s", arg, description);
+ else
+ com_err(0, errcode, "#%lu", arg);
+#endif
+}
+
+/*
+ * C-only 64 bit ops.
+ */
+
+int ext2fs_set_bit64(__u64 nr, void * addr)
+{
+ int mask, retval;
+ unsigned char *ADDR = (unsigned char *) addr;
+
+ ADDR += nr >> 3;
+ mask = 1 << (nr & 0x07);
+ retval = mask & *ADDR;
+ *ADDR |= mask;
+ return retval;
+}
+
+int ext2fs_clear_bit64(__u64 nr, void * addr)
+{
+ int mask, retval;
+ unsigned char *ADDR = (unsigned char *) addr;
+
+ ADDR += nr >> 3;
+ mask = 1 << (nr & 0x07);
+ retval = mask & *ADDR;
+ *ADDR &= ~mask;
+ return retval;
+}
+
+int ext2fs_test_bit64(__u64 nr, const void * addr)
+{
+ int mask;
+ const unsigned char *ADDR = (const unsigned char *) addr;
+
+ ADDR += nr >> 3;
+ mask = 1 << (nr & 0x07);
+ return (mask & *ADDR);
+}
+
diff --git a/libcustomext2fs/source/bitops.h b/libcustomext2fs/source/bitops.h
new file mode 100644
index 00000000..bf6ee82a
--- /dev/null
+++ b/libcustomext2fs/source/bitops.h
@@ -0,0 +1,638 @@
+/*
+ * bitops.h --- Bitmap frobbing code. The byte swapping routines are
+ * also included here.
+ *
+ * Copyright (C) 1993, 1994, 1995, 1996 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+#ifndef _BITOPS_H_
+#define _BITOPS_H_
+
+extern int ext2fs_set_bit(unsigned int nr,void * addr);
+extern int ext2fs_clear_bit(unsigned int nr, void * addr);
+extern int ext2fs_test_bit(unsigned int nr, const void * addr);
+extern void ext2fs_fast_set_bit(unsigned int nr,void * addr);
+extern void ext2fs_fast_clear_bit(unsigned int nr, void * addr);
+extern int ext2fs_set_bit64(__u64 nr,void * addr);
+extern int ext2fs_clear_bit64(__u64 nr, void * addr);
+extern int ext2fs_test_bit64(__u64 nr, const void * addr);
+extern void ext2fs_fast_set_bit64(__u64 nr,void * addr);
+extern void ext2fs_fast_clear_bit64(__u64 nr, void * addr);
+extern __u16 ext2fs_swab16(__u16 val);
+extern __u32 ext2fs_swab32(__u32 val);
+extern __u64 ext2fs_swab64(__u64 val);
+
+#ifdef WORDS_BIGENDIAN
+#define ext2fs_cpu_to_le64(x) ext2fs_swab64((x))
+#define ext2fs_le64_to_cpu(x) ext2fs_swab64((x))
+#define ext2fs_cpu_to_le32(x) ext2fs_swab32((x))
+#define ext2fs_le32_to_cpu(x) ext2fs_swab32((x))
+#define ext2fs_cpu_to_le16(x) ext2fs_swab16((x))
+#define ext2fs_le16_to_cpu(x) ext2fs_swab16((x))
+#define ext2fs_cpu_to_be32(x) ((__u32)(x))
+#define ext2fs_be32_to_cpu(x) ((__u32)(x))
+#define ext2fs_cpu_to_be16(x) ((__u16)(x))
+#define ext2fs_be16_to_cpu(x) ((__u16)(x))
+#else
+#define ext2fs_cpu_to_le64(x) ((__u64)(x))
+#define ext2fs_le64_to_cpu(x) ((__u64)(x))
+#define ext2fs_cpu_to_le32(x) ((__u32)(x))
+#define ext2fs_le32_to_cpu(x) ((__u32)(x))
+#define ext2fs_cpu_to_le16(x) ((__u16)(x))
+#define ext2fs_le16_to_cpu(x) ((__u16)(x))
+#define ext2fs_cpu_to_be32(x) ext2fs_swab32((x))
+#define ext2fs_be32_to_cpu(x) ext2fs_swab32((x))
+#define ext2fs_cpu_to_be16(x) ext2fs_swab16((x))
+#define ext2fs_be16_to_cpu(x) ext2fs_swab16((x))
+#endif
+
+/*
+ * EXT2FS bitmap manipulation routines.
+ */
+
+/* Support for sending warning messages from the inline subroutines */
+extern const char *ext2fs_block_string;
+extern const char *ext2fs_inode_string;
+extern const char *ext2fs_mark_string;
+extern const char *ext2fs_unmark_string;
+extern const char *ext2fs_test_string;
+extern void ext2fs_warn_bitmap(errcode_t errcode, unsigned long arg,
+ const char *description);
+extern void ext2fs_warn_bitmap2(ext2fs_generic_bitmap bitmap,
+ int code, unsigned long arg);
+
+extern int ext2fs_mark_block_bitmap(ext2fs_block_bitmap bitmap, blk_t block);
+extern int ext2fs_unmark_block_bitmap(ext2fs_block_bitmap bitmap,
+ blk_t block);
+extern int ext2fs_test_block_bitmap(ext2fs_block_bitmap bitmap, blk_t block);
+
+extern int ext2fs_mark_inode_bitmap(ext2fs_inode_bitmap bitmap, ext2_ino_t inode);
+extern int ext2fs_unmark_inode_bitmap(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode);
+extern int ext2fs_test_inode_bitmap(ext2fs_inode_bitmap bitmap, ext2_ino_t inode);
+
+extern void ext2fs_fast_mark_block_bitmap(ext2fs_block_bitmap bitmap,
+ blk_t block);
+extern void ext2fs_fast_unmark_block_bitmap(ext2fs_block_bitmap bitmap,
+ blk_t block);
+extern int ext2fs_fast_test_block_bitmap(ext2fs_block_bitmap bitmap,
+ blk_t block);
+
+extern void ext2fs_fast_mark_inode_bitmap(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode);
+extern void ext2fs_fast_unmark_inode_bitmap(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode);
+extern int ext2fs_fast_test_inode_bitmap(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode);
+extern blk_t ext2fs_get_block_bitmap_start(ext2fs_block_bitmap bitmap);
+extern ext2_ino_t ext2fs_get_inode_bitmap_start(ext2fs_inode_bitmap bitmap);
+extern blk_t ext2fs_get_block_bitmap_end(ext2fs_block_bitmap bitmap);
+extern ext2_ino_t ext2fs_get_inode_bitmap_end(ext2fs_inode_bitmap bitmap);
+
+extern void ext2fs_mark_block_bitmap_range(ext2fs_block_bitmap bitmap,
+ blk_t block, int num);
+extern void ext2fs_unmark_block_bitmap_range(ext2fs_block_bitmap bitmap,
+ blk_t block, int num);
+extern int ext2fs_test_block_bitmap_range(ext2fs_block_bitmap bitmap,
+ blk_t block, int num);
+extern int ext2fs_test_inode_bitmap_range(ext2fs_inode_bitmap bitmap,
+ ino_t inode, int num);
+extern void ext2fs_fast_mark_block_bitmap_range(ext2fs_block_bitmap bitmap,
+ blk_t block, int num);
+extern void ext2fs_fast_unmark_block_bitmap_range(ext2fs_block_bitmap bitmap,
+ blk_t block, int num);
+extern int ext2fs_fast_test_block_bitmap_range(ext2fs_block_bitmap bitmap,
+ blk_t block, int num);
+extern void ext2fs_set_bitmap_padding(ext2fs_generic_bitmap map);
+
+/* These routines moved to gen_bitmap.c (actually, some of the above, too) */
+extern int ext2fs_mark_generic_bitmap(ext2fs_generic_bitmap bitmap,
+ __u32 bitno);
+extern int ext2fs_unmark_generic_bitmap(ext2fs_generic_bitmap bitmap,
+ blk_t bitno);
+extern int ext2fs_test_generic_bitmap(ext2fs_generic_bitmap bitmap,
+ blk_t bitno);
+extern int ext2fs_test_block_bitmap_range(ext2fs_block_bitmap bitmap,
+ blk_t block, int num);
+extern __u32 ext2fs_get_generic_bitmap_start(ext2fs_generic_bitmap bitmap);
+extern __u32 ext2fs_get_generic_bitmap_end(ext2fs_generic_bitmap bitmap);
+
+/* 64-bit versions */
+
+extern int ext2fs_mark_block_bitmap2(ext2fs_block_bitmap bitmap,
+ blk64_t block);
+extern int ext2fs_unmark_block_bitmap2(ext2fs_block_bitmap bitmap,
+ blk64_t block);
+extern int ext2fs_test_block_bitmap2(ext2fs_block_bitmap bitmap,
+ blk64_t block);
+
+extern int ext2fs_mark_inode_bitmap2(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode);
+extern int ext2fs_unmark_inode_bitmap2(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode);
+extern int ext2fs_test_inode_bitmap2(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode);
+
+extern void ext2fs_fast_mark_block_bitmap2(ext2fs_block_bitmap bitmap,
+ blk64_t block);
+extern void ext2fs_fast_unmark_block_bitmap2(ext2fs_block_bitmap bitmap,
+ blk64_t block);
+extern int ext2fs_fast_test_block_bitmap2(ext2fs_block_bitmap bitmap,
+ blk64_t block);
+
+extern void ext2fs_fast_mark_inode_bitmap2(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode);
+extern void ext2fs_fast_unmark_inode_bitmap2(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode);
+extern int ext2fs_fast_test_inode_bitmap2(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode);
+extern blk64_t ext2fs_get_block_bitmap_start2(ext2fs_block_bitmap bitmap);
+extern ext2_ino_t ext2fs_get_inode_bitmap_start2(ext2fs_inode_bitmap bitmap);
+extern blk64_t ext2fs_get_block_bitmap_end2(ext2fs_block_bitmap bitmap);
+extern ext2_ino_t ext2fs_get_inode_bitmap_end2(ext2fs_inode_bitmap bitmap);
+
+extern int ext2fs_fast_test_block_bitmap_range2(ext2fs_block_bitmap bitmap,
+ blk64_t block,
+ unsigned int num);
+extern void ext2fs_fast_mark_block_bitmap_range2(ext2fs_block_bitmap bitmap,
+ blk64_t block,
+ unsigned int num);
+extern void ext2fs_fast_unmark_block_bitmap_range2(ext2fs_block_bitmap bitmap,
+ blk64_t block,
+ unsigned int num);
+/* These routines moved to gen_bitmap64.c */
+extern void ext2fs_clear_generic_bmap(ext2fs_generic_bitmap bitmap);
+extern errcode_t ext2fs_compare_generic_bmap(errcode_t neq,
+ ext2fs_generic_bitmap bm1,
+ ext2fs_generic_bitmap bm2);
+extern void ext2fs_set_generic_bmap_padding(ext2fs_generic_bitmap bmap);
+extern int ext2fs_mark_generic_bmap(ext2fs_generic_bitmap bitmap,
+ blk64_t bitno);
+extern int ext2fs_unmark_generic_bmap(ext2fs_generic_bitmap bitmap,
+ blk64_t bitno);
+extern int ext2fs_test_generic_bmap(ext2fs_generic_bitmap bitmap,
+ blk64_t bitno);
+extern int ext2fs_test_block_bitmap_range2(ext2fs_block_bitmap bitmap,
+ blk64_t block, unsigned int num);
+extern __u64 ext2fs_get_generic_bmap_start(ext2fs_generic_bitmap bitmap);
+extern __u64 ext2fs_get_generic_bmap_end(ext2fs_generic_bitmap bitmap);
+extern int ext2fs_test_block_bitmap_range2(ext2fs_block_bitmap bitmap,
+ blk64_t block, unsigned int num);
+extern void ext2fs_mark_block_bitmap_range2(ext2fs_block_bitmap bitmap,
+ blk64_t block, unsigned int num);
+extern void ext2fs_unmark_block_bitmap_range2(ext2fs_block_bitmap bitmap,
+ blk64_t block, unsigned int num);
+
+/*
+ * The inline routines themselves...
+ *
+ * If NO_INLINE_FUNCS is defined, then we won't try to do inline
+ * functions at all; they will be included as normal functions in
+ * inline.c
+ */
+#ifdef NO_INLINE_FUNCS
+#if (defined(__GNUC__) && (defined(__i386__) || defined(__i486__) || \
+ defined(__i586__) || defined(__mc68000__)))
+ /* This prevents bitops.c from trying to include the C */
+ /* function version of these functions */
+#define _EXT2_HAVE_ASM_BITOPS_
+#endif
+#endif /* NO_INLINE_FUNCS */
+
+#if (defined(INCLUDE_INLINE_FUNCS) || !defined(NO_INLINE_FUNCS))
+#ifdef INCLUDE_INLINE_FUNCS
+#define _INLINE_ extern
+#else
+#ifdef __GNUC__
+#define _INLINE_ extern __inline__
+#else /* For Watcom C */
+#define _INLINE_ extern inline
+#endif
+#endif
+
+/*
+ * Fast bit set/clear functions that doesn't need to return the
+ * previous bit value.
+ */
+
+_INLINE_ void ext2fs_fast_set_bit(unsigned int nr,void * addr)
+{
+ unsigned char *ADDR = (unsigned char *) addr;
+
+ ADDR += nr >> 3;
+ *ADDR |= (1 << (nr & 0x07));
+}
+
+_INLINE_ void ext2fs_fast_clear_bit(unsigned int nr, void * addr)
+{
+ unsigned char *ADDR = (unsigned char *) addr;
+
+ ADDR += nr >> 3;
+ *ADDR &= ~(1 << (nr & 0x07));
+}
+
+
+_INLINE_ void ext2fs_fast_set_bit64(__u64 nr, void * addr)
+{
+ unsigned char *ADDR = (unsigned char *) addr;
+
+ ADDR += nr >> 3;
+ *ADDR |= (1 << (nr & 0x07));
+}
+
+_INLINE_ void ext2fs_fast_clear_bit64(__u64 nr, void * addr)
+{
+ unsigned char *ADDR = (unsigned char *) addr;
+
+ ADDR += nr >> 3;
+ *ADDR &= ~(1 << (nr & 0x07));
+}
+
+
+#if ((defined __GNUC__) && !defined(_EXT2_USE_C_VERSIONS_) && \
+ (defined(__i386__) || defined(__i486__) || defined(__i586__)))
+
+#define _EXT2_HAVE_ASM_BITOPS_
+#define _EXT2_HAVE_ASM_SWAB_
+
+/*
+ * These are done by inline assembly for speed reasons.....
+ *
+ * All bitoperations return 0 if the bit was cleared before the
+ * operation and != 0 if it was not. Bit 0 is the LSB of addr; bit 32
+ * is the LSB of (addr+1).
+ */
+
+/*
+ * Some hacks to defeat gcc over-optimizations..
+ */
+struct __dummy_h { unsigned long a[100]; };
+#define EXT2FS_ADDR (*(struct __dummy_h *) addr)
+#define EXT2FS_CONST_ADDR (*(const struct __dummy_h *) addr)
+
+_INLINE_ int ext2fs_set_bit(unsigned int nr, void * addr)
+{
+ int oldbit;
+
+ addr = (void *) (((unsigned char *) addr) + (nr >> 3));
+ __asm__ __volatile__("btsl %2,%1\n\tsbbl %0,%0"
+ :"=r" (oldbit),"+m" (EXT2FS_ADDR)
+ :"r" (nr & 7));
+ return oldbit;
+}
+
+_INLINE_ int ext2fs_clear_bit(unsigned int nr, void * addr)
+{
+ int oldbit;
+
+ addr = (void *) (((unsigned char *) addr) + (nr >> 3));
+ __asm__ __volatile__("btrl %2,%1\n\tsbbl %0,%0"
+ :"=r" (oldbit),"+m" (EXT2FS_ADDR)
+ :"r" (nr & 7));
+ return oldbit;
+}
+
+_INLINE_ int ext2fs_test_bit(unsigned int nr, const void * addr)
+{
+ int oldbit;
+
+ addr = (const void *) (((const unsigned char *) addr) + (nr >> 3));
+ __asm__ __volatile__("btl %2,%1\n\tsbbl %0,%0"
+ :"=r" (oldbit)
+ :"m" (EXT2FS_CONST_ADDR),"r" (nr & 7));
+ return oldbit;
+}
+
+_INLINE_ __u32 ext2fs_swab32(__u32 val)
+{
+#ifdef EXT2FS_REQUIRE_486
+ __asm__("bswap %0" : "=r" (val) : "0" (val));
+#else
+ __asm__("xchgb %b0,%h0\n\t" /* swap lower bytes */
+ "rorl $16,%0\n\t" /* swap words */
+ "xchgb %b0,%h0" /* swap higher bytes */
+ :"=q" (val)
+ : "0" (val));
+#endif
+ return val;
+}
+
+_INLINE_ __u16 ext2fs_swab16(__u16 val)
+{
+ __asm__("xchgb %b0,%h0" /* swap bytes */ \
+ : "=q" (val) \
+ : "0" (val)); \
+ return val;
+}
+
+#undef EXT2FS_ADDR
+
+#endif /* i386 */
+
+#if ((defined __GNUC__) && !defined(_EXT2_USE_C_VERSIONS_) && \
+ (defined(__mc68000__)))
+
+#define _EXT2_HAVE_ASM_BITOPS_
+
+_INLINE_ int ext2fs_set_bit(unsigned int nr,void * addr)
+{
+ char retval;
+
+ __asm__ __volatile__ ("bfset %2@{%1:#1}; sne %0"
+ : "=d" (retval) : "d" (nr^7), "a" (addr));
+
+ return retval;
+}
+
+_INLINE_ int ext2fs_clear_bit(unsigned int nr, void * addr)
+{
+ char retval;
+
+ __asm__ __volatile__ ("bfclr %2@{%1:#1}; sne %0"
+ : "=d" (retval) : "d" (nr^7), "a" (addr));
+
+ return retval;
+}
+
+_INLINE_ int ext2fs_test_bit(unsigned int nr, const void * addr)
+{
+ char retval;
+
+ __asm__ __volatile__ ("bftst %2@{%1:#1}; sne %0"
+ : "=d" (retval) : "d" (nr^7), "a" (addr));
+
+ return retval;
+}
+
+#endif /* __mc68000__ */
+
+
+#if !defined(_EXT2_HAVE_ASM_SWAB_)
+
+_INLINE_ __u16 ext2fs_swab16(__u16 val)
+{
+ return (val >> 8) | (val << 8);
+}
+
+_INLINE_ __u32 ext2fs_swab32(__u32 val)
+{
+ return ((val>>24) | ((val>>8)&0xFF00) |
+ ((val<<8)&0xFF0000) | (val<<24));
+}
+
+#endif /* !_EXT2_HAVE_ASM_SWAB */
+
+_INLINE_ __u64 ext2fs_swab64(__u64 val)
+{
+ return (ext2fs_swab32(val >> 32) |
+ (((__u64)ext2fs_swab32(val & 0xFFFFFFFFUL)) << 32));
+}
+
+_INLINE_ int ext2fs_mark_block_bitmap(ext2fs_block_bitmap bitmap,
+ blk_t block)
+{
+ return ext2fs_mark_generic_bitmap((ext2fs_generic_bitmap) bitmap,
+ block);
+}
+
+_INLINE_ int ext2fs_unmark_block_bitmap(ext2fs_block_bitmap bitmap,
+ blk_t block)
+{
+ return ext2fs_unmark_generic_bitmap((ext2fs_generic_bitmap) bitmap,
+ block);
+}
+
+_INLINE_ int ext2fs_test_block_bitmap(ext2fs_block_bitmap bitmap,
+ blk_t block)
+{
+ return ext2fs_test_generic_bitmap((ext2fs_generic_bitmap) bitmap,
+ block);
+}
+
+_INLINE_ int ext2fs_mark_inode_bitmap(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode)
+{
+ return ext2fs_mark_generic_bitmap((ext2fs_generic_bitmap) bitmap,
+ inode);
+}
+
+_INLINE_ int ext2fs_unmark_inode_bitmap(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode)
+{
+ return ext2fs_unmark_generic_bitmap((ext2fs_generic_bitmap) bitmap,
+ inode);
+}
+
+_INLINE_ int ext2fs_test_inode_bitmap(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode)
+{
+ return ext2fs_test_generic_bitmap((ext2fs_generic_bitmap) bitmap,
+ inode);
+}
+
+_INLINE_ void ext2fs_fast_mark_block_bitmap(ext2fs_block_bitmap bitmap,
+ blk_t block)
+{
+ ext2fs_mark_generic_bitmap((ext2fs_generic_bitmap) bitmap, block);
+}
+
+_INLINE_ void ext2fs_fast_unmark_block_bitmap(ext2fs_block_bitmap bitmap,
+ blk_t block)
+{
+ ext2fs_unmark_generic_bitmap((ext2fs_generic_bitmap) bitmap, block);
+}
+
+_INLINE_ int ext2fs_fast_test_block_bitmap(ext2fs_block_bitmap bitmap,
+ blk_t block)
+{
+ return ext2fs_test_generic_bitmap((ext2fs_generic_bitmap) bitmap,
+ block);
+}
+
+_INLINE_ void ext2fs_fast_mark_inode_bitmap(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode)
+{
+ ext2fs_mark_generic_bitmap((ext2fs_generic_bitmap) bitmap, inode);
+}
+
+_INLINE_ void ext2fs_fast_unmark_inode_bitmap(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode)
+{
+ ext2fs_unmark_generic_bitmap((ext2fs_generic_bitmap) bitmap, inode);
+}
+
+_INLINE_ int ext2fs_fast_test_inode_bitmap(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode)
+{
+ return ext2fs_test_generic_bitmap((ext2fs_generic_bitmap) bitmap,
+ inode);
+}
+
+_INLINE_ blk_t ext2fs_get_block_bitmap_start(ext2fs_block_bitmap bitmap)
+{
+ return ext2fs_get_generic_bitmap_start((ext2fs_generic_bitmap) bitmap);
+}
+
+_INLINE_ ext2_ino_t ext2fs_get_inode_bitmap_start(ext2fs_inode_bitmap bitmap)
+{
+ return ext2fs_get_generic_bitmap_start((ext2fs_generic_bitmap) bitmap);
+}
+
+_INLINE_ blk_t ext2fs_get_block_bitmap_end(ext2fs_block_bitmap bitmap)
+{
+ return ext2fs_get_generic_bitmap_end((ext2fs_generic_bitmap) bitmap);
+}
+
+_INLINE_ ext2_ino_t ext2fs_get_inode_bitmap_end(ext2fs_inode_bitmap bitmap)
+{
+ return ext2fs_get_generic_bitmap_end((ext2fs_generic_bitmap) bitmap);
+}
+
+_INLINE_ int ext2fs_fast_test_block_bitmap_range(ext2fs_block_bitmap bitmap,
+ blk_t block, int num)
+{
+ return ext2fs_test_block_bitmap_range(bitmap, block, num);
+}
+
+_INLINE_ void ext2fs_fast_mark_block_bitmap_range(ext2fs_block_bitmap bitmap,
+ blk_t block, int num)
+{
+ ext2fs_mark_block_bitmap_range(bitmap, block, num);
+}
+
+_INLINE_ void ext2fs_fast_unmark_block_bitmap_range(ext2fs_block_bitmap bitmap,
+ blk_t block, int num)
+{
+ ext2fs_unmark_block_bitmap_range(bitmap, block, num);
+}
+
+/* 64-bit versions */
+
+_INLINE_ int ext2fs_mark_block_bitmap2(ext2fs_block_bitmap bitmap,
+ blk64_t block)
+{
+ return ext2fs_mark_generic_bmap((ext2fs_generic_bitmap) bitmap,
+ block);
+}
+
+_INLINE_ int ext2fs_unmark_block_bitmap2(ext2fs_block_bitmap bitmap,
+ blk64_t block)
+{
+ return ext2fs_unmark_generic_bmap((ext2fs_generic_bitmap) bitmap, block);
+}
+
+_INLINE_ int ext2fs_test_block_bitmap2(ext2fs_block_bitmap bitmap,
+ blk64_t block)
+{
+ return ext2fs_test_generic_bmap((ext2fs_generic_bitmap) bitmap,
+ block);
+}
+
+_INLINE_ int ext2fs_mark_inode_bitmap2(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode)
+{
+ return ext2fs_mark_generic_bmap((ext2fs_generic_bitmap) bitmap,
+ inode);
+}
+
+_INLINE_ int ext2fs_unmark_inode_bitmap2(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode)
+{
+ return ext2fs_unmark_generic_bmap((ext2fs_generic_bitmap) bitmap,
+ inode);
+}
+
+_INLINE_ int ext2fs_test_inode_bitmap2(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode)
+{
+ return ext2fs_test_generic_bmap((ext2fs_generic_bitmap) bitmap,
+ inode);
+}
+
+_INLINE_ void ext2fs_fast_mark_block_bitmap2(ext2fs_block_bitmap bitmap,
+ blk64_t block)
+{
+ ext2fs_mark_generic_bmap((ext2fs_generic_bitmap) bitmap, block);
+}
+
+_INLINE_ void ext2fs_fast_unmark_block_bitmap2(ext2fs_block_bitmap bitmap,
+ blk64_t block)
+{
+ ext2fs_unmark_generic_bmap((ext2fs_generic_bitmap) bitmap, block);
+}
+
+_INLINE_ int ext2fs_fast_test_block_bitmap2(ext2fs_block_bitmap bitmap,
+ blk64_t block)
+{
+ return ext2fs_test_generic_bmap((ext2fs_generic_bitmap) bitmap,
+ block);
+}
+
+_INLINE_ void ext2fs_fast_mark_inode_bitmap2(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode)
+{
+ ext2fs_mark_generic_bmap((ext2fs_generic_bitmap) bitmap, inode);
+}
+
+_INLINE_ void ext2fs_fast_unmark_inode_bitmap2(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode)
+{
+ ext2fs_unmark_generic_bmap((ext2fs_generic_bitmap) bitmap, inode);
+}
+
+_INLINE_ int ext2fs_fast_test_inode_bitmap2(ext2fs_inode_bitmap bitmap,
+ ext2_ino_t inode)
+{
+ return ext2fs_test_generic_bmap((ext2fs_generic_bitmap) bitmap,
+ inode);
+}
+
+_INLINE_ blk64_t ext2fs_get_block_bitmap_start2(ext2fs_block_bitmap bitmap)
+{
+ return ext2fs_get_generic_bmap_start((ext2fs_generic_bitmap) bitmap);
+}
+
+_INLINE_ ext2_ino_t ext2fs_get_inode_bitmap_start2(ext2fs_inode_bitmap bitmap)
+{
+ return ext2fs_get_generic_bmap_start((ext2fs_generic_bitmap) bitmap);
+}
+
+_INLINE_ blk64_t ext2fs_get_block_bitmap_end2(ext2fs_block_bitmap bitmap)
+{
+ return ext2fs_get_generic_bmap_end((ext2fs_generic_bitmap) bitmap);
+}
+
+_INLINE_ ext2_ino_t ext2fs_get_inode_bitmap_end2(ext2fs_inode_bitmap bitmap)
+{
+ return ext2fs_get_generic_bmap_end((ext2fs_generic_bitmap) bitmap);
+}
+
+_INLINE_ int ext2fs_fast_test_block_bitmap_range2(ext2fs_block_bitmap bitmap,
+ blk64_t block,
+ unsigned int num)
+{
+ return ext2fs_test_block_bitmap_range2(bitmap, block, num);
+}
+
+_INLINE_ void ext2fs_fast_mark_block_bitmap_range2(ext2fs_block_bitmap bitmap,
+ blk64_t block,
+ unsigned int num)
+{
+ ext2fs_mark_block_bitmap_range2(bitmap, block, num);
+}
+
+_INLINE_ void ext2fs_fast_unmark_block_bitmap_range2(ext2fs_block_bitmap bitmap,
+ blk64_t block,
+ unsigned int num)
+{
+ ext2fs_unmark_block_bitmap_range2(bitmap, block, num);
+}
+
+#undef _INLINE_
+#endif
+
+#endif
diff --git a/libcustomext2fs/source/blkmap64_ba.c b/libcustomext2fs/source/blkmap64_ba.c
new file mode 100644
index 00000000..395aba97
--- /dev/null
+++ b/libcustomext2fs/source/blkmap64_ba.c
@@ -0,0 +1,327 @@
+/*
+ * blkmap64_ba.c --- Simple bitarray implementation for bitmaps
+ *
+ * Copyright (C) 2008 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Public
+ * License.
+ * %End-Header%
+ */
+
+#include
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+#include
+#include
+#if HAVE_SYS_STAT_H
+#include
+#endif
+#if HAVE_SYS_TYPES_H
+#include
+#endif
+
+#include "ext2_fs.h"
+#include "ext2fsP.h"
+#include "bmap64.h"
+
+/*
+ * Private data for bit array implementation of bitmap ops.
+ * Currently, this is just a pointer to our big flat hunk of memory,
+ * exactly equivalent to the old-skool char * bitmap member.
+ */
+
+struct ext2fs_ba_private_struct {
+ char *bitarray;
+};
+
+typedef struct ext2fs_ba_private_struct *ext2fs_ba_private;
+
+static errcode_t ba_alloc_private_data (ext2fs_generic_bitmap bitmap)
+{
+ ext2fs_ba_private bp;
+ errcode_t retval;
+ size_t size;
+
+ /*
+ * Since we only have the one pointer, we could just shove our
+ * private data in the void *private field itself, but then
+ * we'd have to do a fair bit of rewriting if we ever added a
+ * field. I'm agnostic.
+ */
+ retval = ext2fs_get_mem(sizeof (ext2fs_ba_private), &bp);
+ if (retval)
+ return retval;
+
+ size = (size_t) (((bitmap->real_end - bitmap->start) / 8) + 1);
+
+ retval = ext2fs_get_mem(size, &bp->bitarray);
+ if (retval) {
+ ext2fs_free_mem(&bp);
+ bp = 0;
+ return retval;
+ }
+ bitmap->private = (void *) bp;
+ return 0;
+}
+
+static errcode_t ba_new_bmap(ext2_filsys fs EXT2FS_ATTR((unused)),
+ ext2fs_generic_bitmap bitmap)
+{
+ ext2fs_ba_private bp;
+ errcode_t retval;
+ size_t size;
+
+ retval = ba_alloc_private_data (bitmap);
+ if (retval)
+ return retval;
+
+ bp = (ext2fs_ba_private) bitmap->private;
+ size = (size_t) (((bitmap->real_end - bitmap->start) / 8) + 1);
+ memset(bp->bitarray, 0, size);
+
+ return 0;
+}
+
+static void ba_free_bmap(ext2fs_generic_bitmap bitmap)
+{
+ ext2fs_ba_private bp = (ext2fs_ba_private) bitmap->private;
+
+ if (!bp)
+ return;
+
+ if (bp->bitarray) {
+ ext2fs_free_mem (&bp->bitarray);
+ bp->bitarray = 0;
+ }
+ ext2fs_free_mem (&bp);
+ bp = 0;
+}
+
+static errcode_t ba_copy_bmap(ext2fs_generic_bitmap src,
+ ext2fs_generic_bitmap dest)
+{
+ ext2fs_ba_private src_bp = (ext2fs_ba_private) src->private;
+ ext2fs_ba_private dest_bp;
+ errcode_t retval;
+ size_t size;
+
+ retval = ba_alloc_private_data (dest);
+ if (retval)
+ return retval;
+
+ dest_bp = (ext2fs_ba_private) dest->private;
+
+ size = (size_t) (((src->real_end - src->start) / 8) + 1);
+ memcpy (dest_bp->bitarray, src_bp->bitarray, size);
+
+ return 0;
+}
+
+static errcode_t ba_resize_bmap(ext2fs_generic_bitmap bmap,
+ __u64 new_end, __u64 new_real_end)
+{
+ ext2fs_ba_private bp = (ext2fs_ba_private) bmap->private;
+ errcode_t retval;
+ size_t size, new_size;
+ __u64 bitno;
+
+ /*
+ * If we're expanding the bitmap, make sure all of the new
+ * parts of the bitmap are zero.
+ */
+ if (new_end > bmap->end) {
+ bitno = bmap->real_end;
+ if (bitno > new_end)
+ bitno = new_end;
+ for (; bitno > bmap->end; bitno--)
+ ext2fs_clear_bit64(bitno - bmap->start, bp->bitarray);
+ }
+ if (new_real_end == bmap->real_end) {
+ bmap->end = new_end;
+ return 0;
+ }
+
+ size = ((bmap->real_end - bmap->start) / 8) + 1;
+ new_size = ((new_real_end - bmap->start) / 8) + 1;
+
+ if (size != new_size) {
+ retval = ext2fs_resize_mem(size, new_size, &bp->bitarray);
+ if (retval)
+ return retval;
+ }
+ if (new_size > size)
+ memset(bp->bitarray + size, 0, new_size - size);
+
+ bmap->end = new_end;
+ bmap->real_end = new_real_end;
+ return 0;
+
+}
+
+static int ba_mark_bmap(ext2fs_generic_bitmap bitmap, __u64 arg)
+{
+ ext2fs_ba_private bp = (ext2fs_ba_private) bitmap->private;
+ blk64_t bitno = (blk64_t) arg;
+
+ return ext2fs_set_bit64(bitno - bitmap->start, bp->bitarray);
+}
+
+static int ba_unmark_bmap(ext2fs_generic_bitmap bitmap, __u64 arg)
+{
+ ext2fs_ba_private bp = (ext2fs_ba_private) bitmap->private;
+ blk64_t bitno = (blk64_t) arg;
+
+ return ext2fs_clear_bit64(bitno - bitmap->start, bp->bitarray);
+}
+
+static int ba_test_bmap(ext2fs_generic_bitmap bitmap, __u64 arg)
+{
+ ext2fs_ba_private bp = (ext2fs_ba_private) bitmap->private;
+ blk64_t bitno = (blk64_t) arg;
+
+ return ext2fs_test_bit64(bitno - bitmap->start, bp->bitarray);
+}
+
+static void ba_mark_bmap_extent(ext2fs_generic_bitmap bitmap, __u64 arg,
+ unsigned int num)
+{
+ ext2fs_ba_private bp = (ext2fs_ba_private) bitmap->private;
+ blk64_t bitno = (blk64_t) arg;
+ unsigned int i;
+
+ for (i = 0; i < num; i++)
+ ext2fs_fast_set_bit64(bitno + i - bitmap->start, bp->bitarray);
+}
+
+static void ba_unmark_bmap_extent(ext2fs_generic_bitmap bitmap, __u64 arg,
+ unsigned int num)
+{
+ ext2fs_ba_private bp = (ext2fs_ba_private) bitmap->private;
+ blk64_t bitno = (blk64_t) arg;
+ unsigned int i;
+
+ for (i = 0; i < num; i++)
+ ext2fs_fast_clear_bit64(bitno + i - bitmap->start, bp->bitarray);
+}
+
+static int ba_test_clear_bmap_extent(ext2fs_generic_bitmap bitmap,
+ __u64 start, unsigned int len)
+{
+ ext2fs_ba_private bp = (ext2fs_ba_private) bitmap->private;
+ __u64 start_byte, len_byte = len >> 3;
+ unsigned int start_bit, len_bit = len % 8;
+ unsigned int first_bit = 0;
+ unsigned int last_bit = 0;
+ int mark_count = 0;
+ int mark_bit = 0;
+ int i;
+ const char *ADDR;
+
+ ADDR = bp->bitarray;
+ start -= bitmap->start;
+ start_byte = start >> 3;
+ start_bit = start % 8;
+
+ if (start_bit != 0) {
+ /*
+ * The compared start block number or start inode number
+ * is not the first bit in a byte.
+ */
+ mark_count = 8 - start_bit;
+ if (len < 8 - start_bit) {
+ mark_count = (int)len;
+ mark_bit = len + start_bit - 1;
+ } else
+ mark_bit = 7;
+
+ for (i = mark_count; i > 0; i--, mark_bit--)
+ first_bit |= 1 << mark_bit;
+
+ /*
+ * Compare blocks or inodes in the first byte.
+ * If there is any marked bit, this function returns 0.
+ */
+ if (first_bit & ADDR[start_byte])
+ return 0;
+ else if (len <= 8 - start_bit)
+ return 1;
+
+ start_byte++;
+ len_bit = (len - mark_count) % 8;
+ len_byte = (len - mark_count) >> 3;
+ }
+
+ /*
+ * The compared start block number or start inode number is
+ * the first bit in a byte.
+ */
+ if (len_bit != 0) {
+ /*
+ * The compared end block number or end inode number is
+ * not the last bit in a byte.
+ */
+ for (mark_bit = len_bit - 1; mark_bit >= 0; mark_bit--)
+ last_bit |= 1 << mark_bit;
+
+ /*
+ * Compare blocks or inodes in the last byte.
+ * If there is any marked bit, this function returns 0.
+ */
+ if (last_bit & ADDR[start_byte + len_byte])
+ return 0;
+ else if (len_byte == 0)
+ return 1;
+ }
+
+ /* Check whether all bytes are 0 */
+ return ext2fs_mem_is_zero(ADDR + start_byte, len_byte);
+}
+
+
+static errcode_t ba_set_bmap_range(ext2fs_generic_bitmap bitmap,
+ __u64 start, size_t num, void *in)
+{
+ ext2fs_ba_private bp = (ext2fs_ba_private) bitmap->private;
+
+ memcpy (bp->bitarray + (start >> 3), in, (num + 7) >> 3);
+
+ return 0;
+}
+
+static errcode_t ba_get_bmap_range(ext2fs_generic_bitmap bitmap,
+ __u64 start, size_t num, void *out)
+{
+ ext2fs_ba_private bp = (ext2fs_ba_private) bitmap->private;
+
+ memcpy (out, bp->bitarray + (start >> 3), (num + 7) >> 3);
+
+ return 0;
+}
+
+static void ba_clear_bmap(ext2fs_generic_bitmap bitmap)
+{
+ ext2fs_ba_private bp = (ext2fs_ba_private) bitmap->private;
+
+ memset(bp->bitarray, 0,
+ (size_t) (((bitmap->real_end - bitmap->start) / 8) + 1));
+}
+
+struct ext2_bitmap_ops ext2fs_blkmap64_bitarray = {
+ .type = EXT2FS_BMAP64_BITARRAY,
+ .new_bmap = ba_new_bmap,
+ .free_bmap = ba_free_bmap,
+ .copy_bmap = ba_copy_bmap,
+ .resize_bmap = ba_resize_bmap,
+ .mark_bmap = ba_mark_bmap,
+ .unmark_bmap = ba_unmark_bmap,
+ .test_bmap = ba_test_bmap,
+ .test_clear_bmap_extent = ba_test_clear_bmap_extent,
+ .mark_bmap_extent = ba_mark_bmap_extent,
+ .unmark_bmap_extent = ba_unmark_bmap_extent,
+ .set_bmap_range = ba_set_bmap_range,
+ .get_bmap_range = ba_get_bmap_range,
+ .clear_bmap = ba_clear_bmap,
+};
diff --git a/libcustomext2fs/source/blknum.c b/libcustomext2fs/source/blknum.c
new file mode 100644
index 00000000..b3e6dcad
--- /dev/null
+++ b/libcustomext2fs/source/blknum.c
@@ -0,0 +1,477 @@
+/*
+ * blknum.c --- Functions to handle blk64_t and high/low 64-bit block
+ * number.
+ *
+ * Copyright IBM Corporation, 2007
+ * Author Jose R. Santos
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Public
+ * License.
+ * %End-Header%
+ */
+
+#include "ext2fs.h"
+
+/*
+ * Return the group # of a block
+ */
+dgrp_t ext2fs_group_of_blk2(ext2_filsys fs, blk64_t blk)
+{
+ return (blk - fs->super->s_first_data_block) /
+ fs->super->s_blocks_per_group;
+}
+
+/*
+ * Return the first block (inclusive) in a group
+ */
+blk64_t ext2fs_group_first_block2(ext2_filsys fs, dgrp_t group)
+{
+ return fs->super->s_first_data_block +
+ ((blk64_t)group * fs->super->s_blocks_per_group);
+}
+
+/*
+ * Return the last block (inclusive) in a group
+ */
+blk64_t ext2fs_group_last_block2(ext2_filsys fs, dgrp_t group)
+{
+ return (group == fs->group_desc_count - 1 ?
+ ext2fs_blocks_count(fs->super) - 1 :
+ ext2fs_group_first_block2(fs, group) +
+ (fs->super->s_blocks_per_group - 1));
+}
+
+/*
+ * Return the inode data block count
+ */
+blk64_t ext2fs_inode_data_blocks2(ext2_filsys fs,
+ struct ext2_inode *inode)
+{
+ return (inode->i_blocks |
+ ((fs->super->s_feature_ro_compat &
+ EXT4_FEATURE_RO_COMPAT_HUGE_FILE) ?
+ (__u64) inode->osd2.linux2.l_i_blocks_hi << 32 : 0)) -
+ (inode->i_file_acl ? fs->blocksize >> 9 : 0);
+}
+
+/*
+ * Return the inode i_blocks count
+ */
+blk64_t ext2fs_inode_i_blocks(ext2_filsys fs,
+ struct ext2_inode *inode)
+{
+ return (inode->i_blocks |
+ ((fs->super->s_feature_ro_compat &
+ EXT4_FEATURE_RO_COMPAT_HUGE_FILE) ?
+ (__u64)inode->osd2.linux2.l_i_blocks_hi << 32 : 0));
+}
+
+/*
+ * Return the fs block count
+ */
+blk64_t ext2fs_blocks_count(struct ext2_super_block *super)
+{
+ return super->s_blocks_count |
+ (super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT ?
+ (__u64) super->s_blocks_count_hi << 32 : 0);
+}
+
+/*
+ * Set the fs block count
+ */
+void ext2fs_blocks_count_set(struct ext2_super_block *super, blk64_t blk)
+{
+ super->s_blocks_count = blk;
+ if (super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT)
+ super->s_blocks_count_hi = (__u64) blk >> 32;
+}
+
+/*
+ * Add to the current fs block count
+ */
+void ext2fs_blocks_count_add(struct ext2_super_block *super, blk64_t blk)
+{
+ blk64_t tmp;
+ tmp = ext2fs_blocks_count(super) + blk;
+ ext2fs_blocks_count_set(super, tmp);
+}
+
+/*
+ * Return the fs reserved block count
+ */
+blk64_t ext2fs_r_blocks_count(struct ext2_super_block *super)
+{
+ return super->s_r_blocks_count |
+ (super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT ?
+ (__u64) super->s_r_blocks_count_hi << 32 : 0);
+}
+
+/*
+ * Set the fs reserved block count
+ */
+void ext2fs_r_blocks_count_set(struct ext2_super_block *super, blk64_t blk)
+{
+ super->s_r_blocks_count = blk;
+ if (super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT)
+ super->s_r_blocks_count_hi = (__u64) blk >> 32;
+}
+
+/*
+ * Add to the current reserved fs block count
+ */
+void ext2fs_r_blocks_count_add(struct ext2_super_block *super, blk64_t blk)
+{
+ blk64_t tmp;
+ tmp = ext2fs_r_blocks_count(super) + blk;
+ ext2fs_r_blocks_count_set(super, tmp);
+}
+
+/*
+ * Return the fs free block count
+ */
+blk64_t ext2fs_free_blocks_count(struct ext2_super_block *super)
+{
+ return super->s_free_blocks_count |
+ (super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT ?
+ (__u64) super->s_free_blocks_hi << 32 : 0);
+}
+
+/*
+ * Set the fs free block count
+ */
+void ext2fs_free_blocks_count_set(struct ext2_super_block *super, blk64_t blk)
+{
+ super->s_free_blocks_count = blk;
+ if (super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT)
+ super->s_free_blocks_hi = (__u64) blk >> 32;
+}
+
+/*
+ * Add to the current free fs block count
+ */
+void ext2fs_free_blocks_count_add(struct ext2_super_block *super, blk64_t blk)
+{
+ blk64_t tmp;
+ tmp = ext2fs_free_blocks_count(super) + blk;
+ ext2fs_free_blocks_count_set(super, tmp);
+}
+
+/*
+ * Get a pointer to a block group descriptor. We need the explicit
+ * pointer to the group desc for code that swaps block group
+ * descriptors before writing them out, as it wants to make a copy and
+ * do the swap there.
+ */
+struct ext2_group_desc *ext2fs_group_desc(ext2_filsys fs,
+ struct opaque_ext2_group_desc *gdp,
+ dgrp_t group)
+{
+ if (fs->super->s_desc_size >= EXT2_MIN_DESC_SIZE_64BIT)
+ return (struct ext2_group_desc *)
+ ((struct ext4_group_desc *) gdp + group);
+ else
+ return (struct ext2_group_desc *) gdp + group;
+}
+
+/* Do the same but as an ext4 group desc for internal use here */
+static struct ext4_group_desc *ext4fs_group_desc(ext2_filsys fs,
+ struct opaque_ext2_group_desc *gdp,
+ dgrp_t group)
+{
+ return (struct ext4_group_desc *)ext2fs_group_desc(fs, gdp, group);
+}
+
+/*
+ * Return the block bitmap block of a group
+ */
+blk64_t ext2fs_block_bitmap_loc(ext2_filsys fs, dgrp_t group)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ return gdp->bg_block_bitmap |
+ (fs->super->s_feature_incompat
+ & EXT4_FEATURE_INCOMPAT_64BIT ?
+ (__u64)gdp->bg_block_bitmap_hi << 32 : 0);
+}
+
+/*
+ * Set the block bitmap block of a group
+ */
+void ext2fs_block_bitmap_loc_set(ext2_filsys fs, dgrp_t group, blk64_t blk)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ gdp->bg_block_bitmap = blk;
+ if (fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT)
+ gdp->bg_block_bitmap_hi = (__u64) blk >> 32;
+}
+
+/*
+ * Return the inode bitmap block of a group
+ */
+blk64_t ext2fs_inode_bitmap_loc(ext2_filsys fs, dgrp_t group)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ return gdp->bg_inode_bitmap |
+ (fs->super->s_feature_incompat
+ & EXT4_FEATURE_INCOMPAT_64BIT ?
+ (__u64) gdp->bg_inode_bitmap_hi << 32 : 0);
+}
+
+/*
+ * Set the inode bitmap block of a group
+ */
+void ext2fs_inode_bitmap_loc_set(ext2_filsys fs, dgrp_t group, blk64_t blk)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ gdp->bg_inode_bitmap = blk;
+ if (fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT)
+ gdp->bg_inode_bitmap_hi = (__u64) blk >> 32;
+}
+
+/*
+ * Return the inode table block of a group
+ */
+blk64_t ext2fs_inode_table_loc(ext2_filsys fs, dgrp_t group)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ return gdp->bg_inode_table |
+ (fs->super->s_feature_incompat
+ & EXT4_FEATURE_INCOMPAT_64BIT ?
+ (__u64) gdp->bg_inode_table_hi << 32 : 0);
+}
+
+/*
+ * Set the inode table block of a group
+ */
+void ext2fs_inode_table_loc_set(ext2_filsys fs, dgrp_t group, blk64_t blk)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ gdp->bg_inode_table = blk;
+ if (fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT)
+ gdp->bg_inode_table_hi = (__u64) blk >> 32;
+}
+
+/*
+ * Return the free blocks count of a group
+ */
+__u32 ext2fs_bg_free_blocks_count(ext2_filsys fs, dgrp_t group)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ return gdp->bg_free_blocks_count |
+ (fs->super->s_feature_incompat
+ & EXT4_FEATURE_INCOMPAT_64BIT ?
+ (__u32) gdp->bg_free_blocks_count_hi << 16 : 0);
+}
+
+/*
+ * Set the free blocks count of a group
+ */
+void ext2fs_bg_free_blocks_count_set(ext2_filsys fs, dgrp_t group, __u32 n)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ gdp->bg_free_blocks_count = n;
+
+ if (fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT)
+ gdp->bg_free_blocks_count_hi = (__u32) n >> 16;
+}
+
+/*
+ * Return the free inodes count of a group
+ */
+__u32 ext2fs_bg_free_inodes_count(ext2_filsys fs, dgrp_t group)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ return gdp->bg_free_inodes_count |
+ (fs->super->s_feature_incompat
+ & EXT4_FEATURE_INCOMPAT_64BIT ?
+ (__u32) gdp->bg_free_inodes_count_hi << 16 : 0);
+}
+
+/*
+ * Set the free inodes count of a group
+ */
+void ext2fs_bg_free_inodes_count_set(ext2_filsys fs, dgrp_t group, __u32 n)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ gdp->bg_free_inodes_count = n;
+ if (fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT)
+ gdp->bg_free_inodes_count_hi = (__u32) n >> 16;
+}
+
+/*
+ * Return the used dirs count of a group
+ */
+__u32 ext2fs_bg_used_dirs_count(ext2_filsys fs, dgrp_t group)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ return gdp->bg_used_dirs_count |
+ (fs->super->s_feature_incompat
+ & EXT4_FEATURE_INCOMPAT_64BIT ?
+ (__u32) gdp->bg_used_dirs_count_hi << 16 : 0);
+}
+
+/*
+ * Set the used dirs count of a group
+ */
+void ext2fs_bg_used_dirs_count_set(ext2_filsys fs, dgrp_t group, __u32 n)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ gdp->bg_used_dirs_count = n;
+ if (fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT)
+ gdp->bg_used_dirs_count_hi = (__u32) n >> 16;
+}
+
+/*
+ * Return the unused inodes count of a group
+ */
+__u32 ext2fs_bg_itable_unused(ext2_filsys fs, dgrp_t group)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ return gdp->bg_itable_unused |
+ (fs->super->s_feature_incompat
+ & EXT4_FEATURE_INCOMPAT_64BIT ?
+ (__u32) gdp->bg_itable_unused_hi << 16 : 0);
+}
+
+/*
+ * Set the unused inodes count of a group
+ */
+void ext2fs_bg_itable_unused_set(ext2_filsys fs, dgrp_t group, __u32 n)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ gdp->bg_itable_unused = n;
+ if (fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT)
+ gdp->bg_itable_unused_hi = (__u32) n >> 16;
+}
+
+/*
+ * Get the flags for this block group
+ */
+__u16 ext2fs_bg_flags(ext2_filsys fs, dgrp_t group)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ return gdp->bg_flags;
+}
+
+/*
+ * Zero out the flags for this block group
+ */
+void ext2fs_bg_flags_zap(ext2_filsys fs, dgrp_t group)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ gdp->bg_flags = 0;
+ return;
+}
+
+/*
+ * Get the value of a particular flag for this block group
+ */
+int ext2fs_bg_flags_test(ext2_filsys fs, dgrp_t group, __u16 bg_flag)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ return gdp->bg_flags & bg_flag;
+}
+
+/*
+ * Set a flag or set of flags for this block group
+ */
+void ext2fs_bg_flags_set(ext2_filsys fs, dgrp_t group, __u16 bg_flags)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ gdp->bg_flags |= bg_flags;
+ return;
+}
+
+/*
+ * Clear a flag or set of flags for this block group
+ */
+void ext2fs_bg_flags_clear(ext2_filsys fs, dgrp_t group, __u16 bg_flags)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ gdp->bg_flags &= ~bg_flags;
+ return;
+}
+
+/*
+ * Get the checksum for this block group
+ */
+__u16 ext2fs_bg_checksum(ext2_filsys fs, dgrp_t group)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ return gdp->bg_checksum;
+}
+
+/*
+ * Set the checksum for this block group to a previously calculated value
+ */
+void ext2fs_bg_checksum_set(ext2_filsys fs, dgrp_t group, __u16 checksum)
+{
+ struct ext4_group_desc *gdp;
+
+ gdp = ext4fs_group_desc(fs, fs->group_desc, group);
+ gdp->bg_checksum = checksum;
+ return;
+}
+
+/*
+ * Get the acl block of a file
+ *
+ * XXX Ignoring 64-bit file system flag - most places where this is
+ * called don't have access to the fs struct, and the high bits should
+ * be 0 in the non-64-bit case anyway.
+ */
+blk64_t ext2fs_file_acl_block(const struct ext2_inode *inode)
+{
+ return (inode->i_file_acl |
+ (__u64) inode->osd2.linux2.l_i_file_acl_high << 32);
+}
+
+/*
+ * Set the acl block of a file
+ */
+void ext2fs_file_acl_block_set(struct ext2_inode *inode, blk64_t blk)
+{
+ inode->i_file_acl = blk;
+ inode->osd2.linux2.l_i_file_acl_high = (__u64) blk >> 32;
+}
+
diff --git a/libcustomext2fs/source/block.c b/libcustomext2fs/source/block.c
new file mode 100644
index 00000000..ff0d8bd3
--- /dev/null
+++ b/libcustomext2fs/source/block.c
@@ -0,0 +1,622 @@
+/*
+ * block.c --- iterate over all blocks in an inode
+ *
+ * Copyright (C) 1993, 1994, 1995, 1996 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+
+#include "ext2_fs.h"
+#include "ext2fs.h"
+
+struct block_context {
+ ext2_filsys fs;
+ int (*func)(ext2_filsys fs,
+ blk64_t *blocknr,
+ e2_blkcnt_t bcount,
+ blk64_t ref_blk,
+ int ref_offset,
+ void *priv_data);
+ e2_blkcnt_t bcount;
+ int bsize;
+ int flags;
+ errcode_t errcode;
+ char *ind_buf;
+ char *dind_buf;
+ char *tind_buf;
+ void *priv_data;
+};
+
+#define check_for_ro_violation_return(ctx, ret) \
+ do { \
+ if (((ctx)->flags & BLOCK_FLAG_READ_ONLY) && \
+ ((ret) & BLOCK_CHANGED)) { \
+ (ctx)->errcode = EXT2_ET_RO_BLOCK_ITERATE; \
+ ret |= BLOCK_ABORT | BLOCK_ERROR; \
+ return ret; \
+ } \
+ } while (0)
+
+#define check_for_ro_violation_goto(ctx, ret, label) \
+ do { \
+ if (((ctx)->flags & BLOCK_FLAG_READ_ONLY) && \
+ ((ret) & BLOCK_CHANGED)) { \
+ (ctx)->errcode = EXT2_ET_RO_BLOCK_ITERATE; \
+ ret |= BLOCK_ABORT | BLOCK_ERROR; \
+ goto label; \
+ } \
+ } while (0)
+
+static int block_iterate_ind(blk_t *ind_block, blk_t ref_block,
+ int ref_offset, struct block_context *ctx)
+{
+ int ret = 0, changed = 0;
+ int i, flags, limit, offset;
+ blk_t *block_nr;
+ blk64_t blk64;
+
+ limit = ctx->fs->blocksize >> 2;
+ if (!(ctx->flags & BLOCK_FLAG_DEPTH_TRAVERSE) &&
+ !(ctx->flags & BLOCK_FLAG_DATA_ONLY)) {
+ blk64 = *ind_block;
+ ret = (*ctx->func)(ctx->fs, &blk64,
+ BLOCK_COUNT_IND, ref_block,
+ ref_offset, ctx->priv_data);
+ *ind_block = blk64;
+ }
+ check_for_ro_violation_return(ctx, ret);
+ if (!*ind_block || (ret & BLOCK_ABORT)) {
+ ctx->bcount += limit;
+ return ret;
+ }
+ if (*ind_block >= ext2fs_blocks_count(ctx->fs->super) ||
+ *ind_block < ctx->fs->super->s_first_data_block) {
+ ctx->errcode = EXT2_ET_BAD_IND_BLOCK;
+ ret |= BLOCK_ERROR;
+ return ret;
+ }
+ ctx->errcode = ext2fs_read_ind_block(ctx->fs, *ind_block,
+ ctx->ind_buf);
+ if (ctx->errcode) {
+ ret |= BLOCK_ERROR;
+ return ret;
+ }
+
+ block_nr = (blk_t *) ctx->ind_buf;
+ offset = 0;
+ if (ctx->flags & BLOCK_FLAG_APPEND) {
+ for (i = 0; i < limit; i++, ctx->bcount++, block_nr++) {
+ blk64 = *block_nr;
+ flags = (*ctx->func)(ctx->fs, &blk64, ctx->bcount,
+ *ind_block, offset,
+ ctx->priv_data);
+ *block_nr = blk64;
+ changed |= flags;
+ if (flags & BLOCK_ABORT) {
+ ret |= BLOCK_ABORT;
+ break;
+ }
+ offset += sizeof(blk_t);
+ }
+ } else {
+ for (i = 0; i < limit; i++, ctx->bcount++, block_nr++) {
+ if (*block_nr == 0)
+ continue;
+ blk64 = *block_nr;
+ flags = (*ctx->func)(ctx->fs, &blk64, ctx->bcount,
+ *ind_block, offset,
+ ctx->priv_data);
+ *block_nr = blk64;
+ changed |= flags;
+ if (flags & BLOCK_ABORT) {
+ ret |= BLOCK_ABORT;
+ break;
+ }
+ offset += sizeof(blk_t);
+ }
+ }
+ check_for_ro_violation_return(ctx, changed);
+ if (changed & BLOCK_CHANGED) {
+ ctx->errcode = ext2fs_write_ind_block(ctx->fs, *ind_block,
+ ctx->ind_buf);
+ if (ctx->errcode)
+ ret |= BLOCK_ERROR | BLOCK_ABORT;
+ }
+ if ((ctx->flags & BLOCK_FLAG_DEPTH_TRAVERSE) &&
+ !(ctx->flags & BLOCK_FLAG_DATA_ONLY) &&
+ !(ret & BLOCK_ABORT)) {
+ blk64 = *ind_block;
+ ret |= (*ctx->func)(ctx->fs, &blk64,
+ BLOCK_COUNT_IND, ref_block,
+ ref_offset, ctx->priv_data);
+ *ind_block = blk64;
+ }
+ check_for_ro_violation_return(ctx, ret);
+ return ret;
+}
+
+static int block_iterate_dind(blk_t *dind_block, blk_t ref_block,
+ int ref_offset, struct block_context *ctx)
+{
+ int ret = 0, changed = 0;
+ int i, flags, limit, offset;
+ blk_t *block_nr;
+ blk64_t blk64;
+
+ limit = ctx->fs->blocksize >> 2;
+ if (!(ctx->flags & (BLOCK_FLAG_DEPTH_TRAVERSE |
+ BLOCK_FLAG_DATA_ONLY))) {
+ blk64 = *dind_block;
+ ret = (*ctx->func)(ctx->fs, &blk64,
+ BLOCK_COUNT_DIND, ref_block,
+ ref_offset, ctx->priv_data);
+ *dind_block = blk64;
+ }
+ check_for_ro_violation_return(ctx, ret);
+ if (!*dind_block || (ret & BLOCK_ABORT)) {
+ ctx->bcount += limit*limit;
+ return ret;
+ }
+ if (*dind_block >= ext2fs_blocks_count(ctx->fs->super) ||
+ *dind_block < ctx->fs->super->s_first_data_block) {
+ ctx->errcode = EXT2_ET_BAD_DIND_BLOCK;
+ ret |= BLOCK_ERROR;
+ return ret;
+ }
+ ctx->errcode = ext2fs_read_ind_block(ctx->fs, *dind_block,
+ ctx->dind_buf);
+ if (ctx->errcode) {
+ ret |= BLOCK_ERROR;
+ return ret;
+ }
+
+ block_nr = (blk_t *) ctx->dind_buf;
+ offset = 0;
+ if (ctx->flags & BLOCK_FLAG_APPEND) {
+ for (i = 0; i < limit; i++, block_nr++) {
+ flags = block_iterate_ind(block_nr,
+ *dind_block, offset,
+ ctx);
+ changed |= flags;
+ if (flags & (BLOCK_ABORT | BLOCK_ERROR)) {
+ ret |= flags & (BLOCK_ABORT | BLOCK_ERROR);
+ break;
+ }
+ offset += sizeof(blk_t);
+ }
+ } else {
+ for (i = 0; i < limit; i++, block_nr++) {
+ if (*block_nr == 0) {
+ ctx->bcount += limit;
+ continue;
+ }
+ flags = block_iterate_ind(block_nr,
+ *dind_block, offset,
+ ctx);
+ changed |= flags;
+ if (flags & (BLOCK_ABORT | BLOCK_ERROR)) {
+ ret |= flags & (BLOCK_ABORT | BLOCK_ERROR);
+ break;
+ }
+ offset += sizeof(blk_t);
+ }
+ }
+ check_for_ro_violation_return(ctx, changed);
+ if (changed & BLOCK_CHANGED) {
+ ctx->errcode = ext2fs_write_ind_block(ctx->fs, *dind_block,
+ ctx->dind_buf);
+ if (ctx->errcode)
+ ret |= BLOCK_ERROR | BLOCK_ABORT;
+ }
+ if ((ctx->flags & BLOCK_FLAG_DEPTH_TRAVERSE) &&
+ !(ctx->flags & BLOCK_FLAG_DATA_ONLY) &&
+ !(ret & BLOCK_ABORT)) {
+ blk64 = *dind_block;
+ ret |= (*ctx->func)(ctx->fs, &blk64,
+ BLOCK_COUNT_DIND, ref_block,
+ ref_offset, ctx->priv_data);
+ *dind_block = blk64;
+ }
+ check_for_ro_violation_return(ctx, ret);
+ return ret;
+}
+
+static int block_iterate_tind(blk_t *tind_block, blk_t ref_block,
+ int ref_offset, struct block_context *ctx)
+{
+ int ret = 0, changed = 0;
+ int i, flags, limit, offset;
+ blk_t *block_nr;
+ blk64_t blk64;
+
+ limit = ctx->fs->blocksize >> 2;
+ if (!(ctx->flags & (BLOCK_FLAG_DEPTH_TRAVERSE |
+ BLOCK_FLAG_DATA_ONLY))) {
+ blk64 = *tind_block;
+ ret = (*ctx->func)(ctx->fs, &blk64,
+ BLOCK_COUNT_TIND, ref_block,
+ ref_offset, ctx->priv_data);
+ *tind_block = blk64;
+ }
+ check_for_ro_violation_return(ctx, ret);
+ if (!*tind_block || (ret & BLOCK_ABORT)) {
+ ctx->bcount += limit*limit*limit;
+ return ret;
+ }
+ if (*tind_block >= ext2fs_blocks_count(ctx->fs->super) ||
+ *tind_block < ctx->fs->super->s_first_data_block) {
+ ctx->errcode = EXT2_ET_BAD_TIND_BLOCK;
+ ret |= BLOCK_ERROR;
+ return ret;
+ }
+ ctx->errcode = ext2fs_read_ind_block(ctx->fs, *tind_block,
+ ctx->tind_buf);
+ if (ctx->errcode) {
+ ret |= BLOCK_ERROR;
+ return ret;
+ }
+
+ block_nr = (blk_t *) ctx->tind_buf;
+ offset = 0;
+ if (ctx->flags & BLOCK_FLAG_APPEND) {
+ for (i = 0; i < limit; i++, block_nr++) {
+ flags = block_iterate_dind(block_nr,
+ *tind_block,
+ offset, ctx);
+ changed |= flags;
+ if (flags & (BLOCK_ABORT | BLOCK_ERROR)) {
+ ret |= flags & (BLOCK_ABORT | BLOCK_ERROR);
+ break;
+ }
+ offset += sizeof(blk_t);
+ }
+ } else {
+ for (i = 0; i < limit; i++, block_nr++) {
+ if (*block_nr == 0) {
+ ctx->bcount += limit*limit;
+ continue;
+ }
+ flags = block_iterate_dind(block_nr,
+ *tind_block,
+ offset, ctx);
+ changed |= flags;
+ if (flags & (BLOCK_ABORT | BLOCK_ERROR)) {
+ ret |= flags & (BLOCK_ABORT | BLOCK_ERROR);
+ break;
+ }
+ offset += sizeof(blk_t);
+ }
+ }
+ check_for_ro_violation_return(ctx, changed);
+ if (changed & BLOCK_CHANGED) {
+ ctx->errcode = ext2fs_write_ind_block(ctx->fs, *tind_block,
+ ctx->tind_buf);
+ if (ctx->errcode)
+ ret |= BLOCK_ERROR | BLOCK_ABORT;
+ }
+ if ((ctx->flags & BLOCK_FLAG_DEPTH_TRAVERSE) &&
+ !(ctx->flags & BLOCK_FLAG_DATA_ONLY) &&
+ !(ret & BLOCK_ABORT)) {
+ blk64 = *tind_block;
+ ret |= (*ctx->func)(ctx->fs, &blk64,
+ BLOCK_COUNT_TIND, ref_block,
+ ref_offset, ctx->priv_data);
+ *tind_block = blk64;
+ }
+ check_for_ro_violation_return(ctx, ret);
+ return ret;
+}
+
+errcode_t ext2fs_block_iterate3(ext2_filsys fs,
+ ext2_ino_t ino,
+ int flags,
+ char *block_buf,
+ int (*func)(ext2_filsys fs,
+ blk64_t *blocknr,
+ e2_blkcnt_t blockcnt,
+ blk64_t ref_blk,
+ int ref_offset,
+ void *priv_data),
+ void *priv_data)
+{
+ int i;
+ int r, ret = 0;
+ struct ext2_inode inode;
+ errcode_t retval;
+ struct block_context ctx;
+ int limit;
+ blk64_t blk64;
+
+ EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+
+ ctx.errcode = ext2fs_read_inode(fs, ino, &inode);
+ if (ctx.errcode)
+ return ctx.errcode;
+
+ /*
+ * Check to see if we need to limit large files
+ */
+ if (flags & BLOCK_FLAG_NO_LARGE) {
+ if (!LINUX_S_ISDIR(inode.i_mode) &&
+ (inode.i_size_high != 0))
+ return EXT2_ET_FILE_TOO_BIG;
+ }
+
+ limit = fs->blocksize >> 2;
+
+ ctx.fs = fs;
+ ctx.func = func;
+ ctx.priv_data = priv_data;
+ ctx.flags = flags;
+ ctx.bcount = 0;
+ if (block_buf) {
+ ctx.ind_buf = block_buf;
+ } else {
+ retval = ext2fs_get_array(3, fs->blocksize, &ctx.ind_buf);
+ if (retval)
+ return retval;
+ }
+ ctx.dind_buf = ctx.ind_buf + fs->blocksize;
+ ctx.tind_buf = ctx.dind_buf + fs->blocksize;
+
+ /*
+ * Iterate over the HURD translator block (if present)
+ */
+ if ((fs->super->s_creator_os == EXT2_OS_HURD) &&
+ !(flags & BLOCK_FLAG_DATA_ONLY)) {
+ if (inode.osd1.hurd1.h_i_translator) {
+ blk64 = inode.osd1.hurd1.h_i_translator;
+ ret |= (*ctx.func)(fs, &blk64,
+ BLOCK_COUNT_TRANSLATOR,
+ 0, 0, priv_data);
+ inode.osd1.hurd1.h_i_translator = (blk_t) blk64;
+ if (ret & BLOCK_ABORT)
+ goto abort_exit;
+ check_for_ro_violation_goto(&ctx, ret, abort_exit);
+ }
+ }
+
+ if (inode.i_flags & EXT4_EXTENTS_FL) {
+ ext2_extent_handle_t handle;
+ struct ext2fs_extent extent;
+ e2_blkcnt_t blockcnt = 0;
+ blk64_t blk, new_blk;
+ int op = EXT2_EXTENT_ROOT;
+ int uninit;
+ unsigned int j;
+
+ ctx.errcode = ext2fs_extent_open2(fs, ino, &inode, &handle);
+ if (ctx.errcode)
+ goto abort_exit;
+
+ while (1) {
+ ctx.errcode = ext2fs_extent_get(handle, op, &extent);
+ if (ctx.errcode) {
+ if (ctx.errcode != EXT2_ET_EXTENT_NO_NEXT)
+ break;
+ ctx.errcode = 0;
+ if (!(flags & BLOCK_FLAG_APPEND))
+ break;
+ next_block_set:
+ blk = 0;
+ r = (*ctx.func)(fs, &blk, blockcnt,
+ 0, 0, priv_data);
+ ret |= r;
+ check_for_ro_violation_goto(&ctx, ret,
+ extent_errout);
+ if (r & BLOCK_CHANGED) {
+ ctx.errcode =
+ ext2fs_extent_set_bmap(handle,
+ (blk64_t) blockcnt++,
+ (blk64_t) blk, 0);
+ if (ctx.errcode || (ret & BLOCK_ABORT))
+ break;
+ if (blk)
+ goto next_block_set;
+ }
+ break;
+ }
+
+ op = EXT2_EXTENT_NEXT;
+ blk = extent.e_pblk;
+ if (!(extent.e_flags & EXT2_EXTENT_FLAGS_LEAF)) {
+ if (ctx.flags & BLOCK_FLAG_DATA_ONLY)
+ continue;
+ if ((!(extent.e_flags &
+ EXT2_EXTENT_FLAGS_SECOND_VISIT) &&
+ !(ctx.flags & BLOCK_FLAG_DEPTH_TRAVERSE)) ||
+ ((extent.e_flags &
+ EXT2_EXTENT_FLAGS_SECOND_VISIT) &&
+ (ctx.flags & BLOCK_FLAG_DEPTH_TRAVERSE))) {
+ ret |= (*ctx.func)(fs, &blk,
+ -1, 0, 0, priv_data);
+ if (ret & BLOCK_CHANGED) {
+ extent.e_pblk = blk;
+ ctx.errcode =
+ ext2fs_extent_replace(handle, 0, &extent);
+ if (ctx.errcode)
+ break;
+ }
+ }
+ continue;
+ }
+ uninit = 0;
+ if (extent.e_flags & EXT2_EXTENT_FLAGS_UNINIT)
+ uninit = EXT2_EXTENT_SET_BMAP_UNINIT;
+ for (blockcnt = extent.e_lblk, j = 0;
+ j < extent.e_len;
+ blk++, blockcnt++, j++) {
+ new_blk = blk;
+ r = (*ctx.func)(fs, &new_blk, blockcnt,
+ 0, 0, priv_data);
+ ret |= r;
+ check_for_ro_violation_goto(&ctx, ret,
+ extent_errout);
+ if (r & BLOCK_CHANGED) {
+ ctx.errcode =
+ ext2fs_extent_set_bmap(handle,
+ (blk64_t) blockcnt,
+ new_blk, uninit);
+ if (ctx.errcode)
+ goto extent_errout;
+ }
+ if (ret & BLOCK_ABORT)
+ break;
+ }
+ }
+
+ extent_errout:
+ ext2fs_extent_free(handle);
+ ret |= BLOCK_ERROR | BLOCK_ABORT;
+ goto errout;
+ }
+
+ /*
+ * Iterate over normal data blocks
+ */
+ for (i = 0; i < EXT2_NDIR_BLOCKS ; i++, ctx.bcount++) {
+ if (inode.i_block[i] || (flags & BLOCK_FLAG_APPEND)) {
+ blk64 = inode.i_block[i];
+ ret |= (*ctx.func)(fs, &blk64, ctx.bcount, 0, i,
+ priv_data);
+ inode.i_block[i] = (blk_t) blk64;
+ if (ret & BLOCK_ABORT)
+ goto abort_exit;
+ }
+ }
+ check_for_ro_violation_goto(&ctx, ret, abort_exit);
+ if (inode.i_block[EXT2_IND_BLOCK] || (flags & BLOCK_FLAG_APPEND)) {
+ ret |= block_iterate_ind(&inode.i_block[EXT2_IND_BLOCK],
+ 0, EXT2_IND_BLOCK, &ctx);
+ if (ret & BLOCK_ABORT)
+ goto abort_exit;
+ } else
+ ctx.bcount += limit;
+ if (inode.i_block[EXT2_DIND_BLOCK] || (flags & BLOCK_FLAG_APPEND)) {
+ ret |= block_iterate_dind(&inode.i_block[EXT2_DIND_BLOCK],
+ 0, EXT2_DIND_BLOCK, &ctx);
+ if (ret & BLOCK_ABORT)
+ goto abort_exit;
+ } else
+ ctx.bcount += limit * limit;
+ if (inode.i_block[EXT2_TIND_BLOCK] || (flags & BLOCK_FLAG_APPEND)) {
+ ret |= block_iterate_tind(&inode.i_block[EXT2_TIND_BLOCK],
+ 0, EXT2_TIND_BLOCK, &ctx);
+ if (ret & BLOCK_ABORT)
+ goto abort_exit;
+ }
+
+abort_exit:
+ if (ret & BLOCK_CHANGED) {
+ retval = ext2fs_write_inode(fs, ino, &inode);
+ if (retval) {
+ ret |= BLOCK_ERROR;
+ ctx.errcode = retval;
+ }
+ }
+errout:
+ if (!block_buf)
+ ext2fs_free_mem(&ctx.ind_buf);
+
+ return (ret & BLOCK_ERROR) ? ctx.errcode : 0;
+}
+
+/*
+ * Emulate the old ext2fs_block_iterate function!
+ */
+
+struct xlate64 {
+ int (*func)(ext2_filsys fs,
+ blk_t *blocknr,
+ e2_blkcnt_t blockcnt,
+ blk_t ref_blk,
+ int ref_offset,
+ void *priv_data);
+ void *real_private;
+};
+
+static int xlate64_func(ext2_filsys fs, blk64_t *blocknr,
+ e2_blkcnt_t blockcnt, blk64_t ref_blk,
+ int ref_offset, void *priv_data)
+{
+ struct xlate64 *xl = (struct xlate64 *) priv_data;
+ int ret;
+ blk_t block32 = *blocknr;
+
+ ret = (*xl->func)(fs, &block32, blockcnt, (blk_t) ref_blk, ref_offset,
+ xl->real_private);
+ *blocknr = block32;
+ return ret;
+}
+
+errcode_t ext2fs_block_iterate2(ext2_filsys fs,
+ ext2_ino_t ino,
+ int flags,
+ char *block_buf,
+ int (*func)(ext2_filsys fs,
+ blk_t *blocknr,
+ e2_blkcnt_t blockcnt,
+ blk_t ref_blk,
+ int ref_offset,
+ void *priv_data),
+ void *priv_data)
+{
+ struct xlate64 xl;
+
+ xl.real_private = priv_data;
+ xl.func = func;
+
+ return ext2fs_block_iterate3(fs, ino, flags, block_buf,
+ xlate64_func, &xl);
+}
+
+
+struct xlate {
+ int (*func)(ext2_filsys fs,
+ blk_t *blocknr,
+ int bcount,
+ void *priv_data);
+ void *real_private;
+};
+
+#ifdef __TURBOC__
+ #pragma argsused
+#endif
+static int xlate_func(ext2_filsys fs, blk_t *blocknr, e2_blkcnt_t blockcnt,
+ blk_t ref_block EXT2FS_ATTR((unused)),
+ int ref_offset EXT2FS_ATTR((unused)),
+ void *priv_data)
+{
+ struct xlate *xl = (struct xlate *) priv_data;
+
+ return (*xl->func)(fs, blocknr, (int) blockcnt, xl->real_private);
+}
+
+errcode_t ext2fs_block_iterate(ext2_filsys fs,
+ ext2_ino_t ino,
+ int flags,
+ char *block_buf,
+ int (*func)(ext2_filsys fs,
+ blk_t *blocknr,
+ int blockcnt,
+ void *priv_data),
+ void *priv_data)
+{
+ struct xlate xl;
+
+ xl.real_private = priv_data;
+ xl.func = func;
+
+ return ext2fs_block_iterate2(fs, ino, BLOCK_FLAG_NO_LARGE | flags,
+ block_buf, xlate_func, &xl);
+}
+
diff --git a/libcustomext2fs/source/bmap.c b/libcustomext2fs/source/bmap.c
new file mode 100644
index 00000000..fbcb3753
--- /dev/null
+++ b/libcustomext2fs/source/bmap.c
@@ -0,0 +1,335 @@
+/*
+ * bmap.c --- logical to physical block mapping
+ *
+ * Copyright (C) 1997 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+#include
+
+#include "ext2_fs.h"
+#include "ext2fs.h"
+
+#if defined(__GNUC__) && !defined(NO_INLINE_FUNCS)
+#define _BMAP_INLINE_ __inline__
+#else
+#define _BMAP_INLINE_
+#endif
+
+extern errcode_t ext2fs_bmap(ext2_filsys fs, ext2_ino_t ino,
+ struct ext2_inode *inode,
+ char *block_buf, int bmap_flags,
+ blk_t block, blk_t *phys_blk);
+
+#define inode_bmap(inode, nr) ((inode)->i_block[(nr)])
+
+static _BMAP_INLINE_ errcode_t block_ind_bmap(ext2_filsys fs, int flags,
+ blk_t ind, char *block_buf,
+ int *blocks_alloc,
+ blk_t nr, blk_t *ret_blk)
+{
+ errcode_t retval;
+ blk_t b;
+
+ if (!ind) {
+ if (flags & BMAP_SET)
+ return EXT2_ET_SET_BMAP_NO_IND;
+ *ret_blk = 0;
+ return 0;
+ }
+ retval = io_channel_read_blk(fs->io, ind, 1, block_buf);
+ if (retval)
+ return retval;
+
+ if (flags & BMAP_SET) {
+ b = *ret_blk;
+#ifdef WORDS_BIGENDIAN
+ b = ext2fs_swab32(b);
+#endif
+ ((blk_t *) block_buf)[nr] = b;
+ return io_channel_write_blk(fs->io, ind, 1, block_buf);
+ }
+
+ b = ((blk_t *) block_buf)[nr];
+
+#ifdef WORDS_BIGENDIAN
+ b = ext2fs_swab32(b);
+#endif
+
+ if (!b && (flags & BMAP_ALLOC)) {
+ b = nr ? ((blk_t *) block_buf)[nr-1] : 0;
+ retval = ext2fs_alloc_block(fs, b,
+ block_buf + fs->blocksize, &b);
+ if (retval)
+ return retval;
+
+#ifdef WORDS_BIGENDIAN
+ ((blk_t *) block_buf)[nr] = ext2fs_swab32(b);
+#else
+ ((blk_t *) block_buf)[nr] = b;
+#endif
+
+ retval = io_channel_write_blk(fs->io, ind, 1, block_buf);
+ if (retval)
+ return retval;
+
+ (*blocks_alloc)++;
+ }
+
+ *ret_blk = b;
+ return 0;
+}
+
+static _BMAP_INLINE_ errcode_t block_dind_bmap(ext2_filsys fs, int flags,
+ blk_t dind, char *block_buf,
+ int *blocks_alloc,
+ blk_t nr, blk_t *ret_blk)
+{
+ blk_t b;
+ errcode_t retval;
+ blk_t addr_per_block;
+
+ addr_per_block = (blk_t) fs->blocksize >> 2;
+
+ retval = block_ind_bmap(fs, flags & ~BMAP_SET, dind, block_buf,
+ blocks_alloc, nr / addr_per_block, &b);
+ if (retval)
+ return retval;
+ retval = block_ind_bmap(fs, flags, b, block_buf, blocks_alloc,
+ nr % addr_per_block, ret_blk);
+ return retval;
+}
+
+static _BMAP_INLINE_ errcode_t block_tind_bmap(ext2_filsys fs, int flags,
+ blk_t tind, char *block_buf,
+ int *blocks_alloc,
+ blk_t nr, blk_t *ret_blk)
+{
+ blk_t b;
+ errcode_t retval;
+ blk_t addr_per_block;
+
+ addr_per_block = (blk_t) fs->blocksize >> 2;
+
+ retval = block_dind_bmap(fs, flags & ~BMAP_SET, tind, block_buf,
+ blocks_alloc, nr / addr_per_block, &b);
+ if (retval)
+ return retval;
+ retval = block_ind_bmap(fs, flags, b, block_buf, blocks_alloc,
+ nr % addr_per_block, ret_blk);
+ return retval;
+}
+
+errcode_t ext2fs_bmap2(ext2_filsys fs, ext2_ino_t ino, struct ext2_inode *inode,
+ char *block_buf, int bmap_flags, blk64_t block,
+ int *ret_flags, blk64_t *phys_blk)
+{
+ struct ext2_inode inode_buf;
+ ext2_extent_handle_t handle = 0;
+ blk_t addr_per_block;
+ blk_t b, blk32;
+ char *buf = 0;
+ errcode_t retval = 0;
+ int blocks_alloc = 0, inode_dirty = 0;
+
+ if (!(bmap_flags & BMAP_SET))
+ *phys_blk = 0;
+
+ if (ret_flags)
+ *ret_flags = 0;
+
+ /* Read inode structure if necessary */
+ if (!inode) {
+ retval = ext2fs_read_inode(fs, ino, &inode_buf);
+ if (retval)
+ return retval;
+ inode = &inode_buf;
+ }
+ addr_per_block = (blk_t) fs->blocksize >> 2;
+
+ if (inode->i_flags & EXT4_EXTENTS_FL) {
+ struct ext2fs_extent extent;
+ unsigned int offset;
+
+ retval = ext2fs_extent_open2(fs, ino, inode, &handle);
+ if (retval)
+ goto done;
+ if (bmap_flags & BMAP_SET) {
+ retval = ext2fs_extent_set_bmap(handle, block,
+ *phys_blk, 0);
+ goto done;
+ }
+ retval = ext2fs_extent_goto(handle, block);
+ if (retval) {
+ /* If the extent is not found, return phys_blk = 0 */
+ if (retval == EXT2_ET_EXTENT_NOT_FOUND)
+ goto got_block;
+ goto done;
+ }
+ retval = ext2fs_extent_get(handle, EXT2_EXTENT_CURRENT, &extent);
+ if (retval)
+ goto done;
+ offset = block - extent.e_lblk;
+ if (block >= extent.e_lblk && (offset <= extent.e_len)) {
+ *phys_blk = extent.e_pblk + offset;
+ if (ret_flags && extent.e_flags & EXT2_EXTENT_FLAGS_UNINIT)
+ *ret_flags |= BMAP_RET_UNINIT;
+ }
+ got_block:
+ if ((*phys_blk == 0) && (bmap_flags & BMAP_ALLOC)) {
+ retval = ext2fs_alloc_block(fs, b, block_buf, &b);
+ if (retval)
+ goto done;
+ retval = ext2fs_extent_set_bmap(handle, block,
+ (blk64_t) b, 0);
+ if (retval)
+ goto done;
+ /* Update inode after setting extent */
+ retval = ext2fs_read_inode(fs, ino, inode);
+ if (retval)
+ return retval;
+ blocks_alloc++;
+ *phys_blk = b;
+ }
+ retval = 0;
+ goto done;
+ }
+
+ if (!block_buf) {
+ retval = ext2fs_get_array(2, fs->blocksize, &buf);
+ if (retval)
+ return retval;
+ block_buf = buf;
+ }
+
+ if (block < EXT2_NDIR_BLOCKS) {
+ if (bmap_flags & BMAP_SET) {
+ b = *phys_blk;
+ inode_bmap(inode, block) = b;
+ inode_dirty++;
+ goto done;
+ }
+
+ *phys_blk = inode_bmap(inode, block);
+ b = block ? inode_bmap(inode, block-1) : 0;
+
+ if ((*phys_blk == 0) && (bmap_flags & BMAP_ALLOC)) {
+ retval = ext2fs_alloc_block(fs, b, block_buf, &b);
+ if (retval)
+ goto done;
+ inode_bmap(inode, block) = b;
+ blocks_alloc++;
+ *phys_blk = b;
+ }
+ goto done;
+ }
+
+ /* Indirect block */
+ block -= EXT2_NDIR_BLOCKS;
+ blk32 = *phys_blk;
+ if (block < addr_per_block) {
+ b = inode_bmap(inode, EXT2_IND_BLOCK);
+ if (!b) {
+ if (!(bmap_flags & BMAP_ALLOC)) {
+ if (bmap_flags & BMAP_SET)
+ retval = EXT2_ET_SET_BMAP_NO_IND;
+ goto done;
+ }
+
+ b = inode_bmap(inode, EXT2_IND_BLOCK-1);
+ retval = ext2fs_alloc_block(fs, b, block_buf, &b);
+ if (retval)
+ goto done;
+ inode_bmap(inode, EXT2_IND_BLOCK) = b;
+ blocks_alloc++;
+ }
+ retval = block_ind_bmap(fs, bmap_flags, b, block_buf,
+ &blocks_alloc, block, &blk32);
+ if (retval == 0)
+ *phys_blk = blk32;
+ goto done;
+ }
+
+ /* Doubly indirect block */
+ block -= addr_per_block;
+ if (block < addr_per_block * addr_per_block) {
+ b = inode_bmap(inode, EXT2_DIND_BLOCK);
+ if (!b) {
+ if (!(bmap_flags & BMAP_ALLOC)) {
+ if (bmap_flags & BMAP_SET)
+ retval = EXT2_ET_SET_BMAP_NO_IND;
+ goto done;
+ }
+
+ b = inode_bmap(inode, EXT2_IND_BLOCK);
+ retval = ext2fs_alloc_block(fs, b, block_buf, &b);
+ if (retval)
+ goto done;
+ inode_bmap(inode, EXT2_DIND_BLOCK) = b;
+ blocks_alloc++;
+ }
+ retval = block_dind_bmap(fs, bmap_flags, b, block_buf,
+ &blocks_alloc, block, &blk32);
+ if (retval == 0)
+ *phys_blk = blk32;
+ goto done;
+ }
+
+ /* Triply indirect block */
+ block -= addr_per_block * addr_per_block;
+ b = inode_bmap(inode, EXT2_TIND_BLOCK);
+ if (!b) {
+ if (!(bmap_flags & BMAP_ALLOC)) {
+ if (bmap_flags & BMAP_SET)
+ retval = EXT2_ET_SET_BMAP_NO_IND;
+ goto done;
+ }
+
+ b = inode_bmap(inode, EXT2_DIND_BLOCK);
+ retval = ext2fs_alloc_block(fs, b, block_buf, &b);
+ if (retval)
+ goto done;
+ inode_bmap(inode, EXT2_TIND_BLOCK) = b;
+ blocks_alloc++;
+ }
+ retval = block_tind_bmap(fs, bmap_flags, b, block_buf,
+ &blocks_alloc, block, &blk32);
+ if (retval == 0)
+ *phys_blk = blk32;
+done:
+ if (buf)
+ ext2fs_free_mem(&buf);
+ if (handle)
+ ext2fs_extent_free(handle);
+ if ((retval == 0) && (blocks_alloc || inode_dirty)) {
+ ext2fs_iblk_add_blocks(fs, inode, blocks_alloc);
+ retval = ext2fs_write_inode(fs, ino, inode);
+ }
+ return retval;
+}
+
+errcode_t ext2fs_bmap(ext2_filsys fs, ext2_ino_t ino, struct ext2_inode *inode,
+ char *block_buf, int bmap_flags, blk_t block,
+ blk_t *phys_blk)
+{
+ errcode_t ret;
+ blk64_t ret_blk = *phys_blk;
+
+ ret = ext2fs_bmap2(fs, ino, inode, block_buf, bmap_flags, block,
+ 0, &ret_blk);
+ if (ret)
+ return ret;
+ if (ret_blk >= ((long long) 1 << 32))
+ return EOVERFLOW;
+ *phys_blk = ret_blk;
+ return 0;
+}
diff --git a/libcustomext2fs/source/bmap64.h b/libcustomext2fs/source/bmap64.h
new file mode 100644
index 00000000..b0aa84c1
--- /dev/null
+++ b/libcustomext2fs/source/bmap64.h
@@ -0,0 +1,61 @@
+/*
+ * bmap64.h --- 64-bit bitmap structure
+ *
+ * Copyright (C) 2007, 2008 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Public
+ * License.
+ * %End-Header%
+ */
+
+struct ext2fs_struct_generic_bitmap {
+ errcode_t magic;
+ ext2_filsys fs;
+ struct ext2_bitmap_ops *bitmap_ops;
+ int flags;
+ __u64 start, end;
+ __u64 real_end;
+ char *description;
+ void *private;
+ errcode_t base_error_code;
+};
+
+#define EXT2FS_IS_32_BITMAP(bmap) \
+ (((bmap)->magic == EXT2_ET_MAGIC_GENERIC_BITMAP) || \
+ ((bmap)->magic == EXT2_ET_MAGIC_BLOCK_BITMAP) || \
+ ((bmap)->magic == EXT2_ET_MAGIC_INODE_BITMAP))
+
+#define EXT2FS_IS_64_BITMAP(bmap) \
+ (((bmap)->magic == EXT2_ET_MAGIC_GENERIC_BITMAP64) || \
+ ((bmap)->magic == EXT2_ET_MAGIC_BLOCK_BITMAP64) || \
+ ((bmap)->magic == EXT2_ET_MAGIC_INODE_BITMAP64))
+
+struct ext2_bitmap_ops {
+ int type;
+ /* Generic bmap operators */
+ errcode_t (*new_bmap)(ext2_filsys fs, ext2fs_generic_bitmap bmap);
+ void (*free_bmap)(ext2fs_generic_bitmap bitmap);
+ errcode_t (*copy_bmap)(ext2fs_generic_bitmap src,
+ ext2fs_generic_bitmap dest);
+ errcode_t (*resize_bmap)(ext2fs_generic_bitmap bitmap,
+ __u64 new_end,
+ __u64 new_real_end);
+ /* bit set/test operators */
+ int (*mark_bmap)(ext2fs_generic_bitmap bitmap, __u64 arg);
+ int (*unmark_bmap)(ext2fs_generic_bitmap bitmap, __u64 arg);
+ int (*test_bmap)(ext2fs_generic_bitmap bitmap, __u64 arg);
+ void (*mark_bmap_extent)(ext2fs_generic_bitmap bitmap, __u64 arg,
+ unsigned int num);
+ void (*unmark_bmap_extent)(ext2fs_generic_bitmap bitmap, __u64 arg,
+ unsigned int num);
+ int (*test_clear_bmap_extent)(ext2fs_generic_bitmap bitmap,
+ __u64 arg, unsigned int num);
+ errcode_t (*set_bmap_range)(ext2fs_generic_bitmap bitmap,
+ __u64 start, size_t num, void *in);
+ errcode_t (*get_bmap_range)(ext2fs_generic_bitmap bitmap,
+ __u64 start, size_t num, void *out);
+ void (*clear_bmap)(ext2fs_generic_bitmap bitmap);
+};
+
+extern struct ext2_bitmap_ops ext2fs_blkmap64_bitarray;
diff --git a/libcustomext2fs/source/bmove.c b/libcustomext2fs/source/bmove.c
new file mode 100644
index 00000000..deabf38c
--- /dev/null
+++ b/libcustomext2fs/source/bmove.c
@@ -0,0 +1,166 @@
+/*
+ * bmove.c --- Move blocks around to make way for a particular
+ * filesystem structure.
+ *
+ * Copyright (C) 1997 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+#if HAVE_SYS_TYPES_H
+#include
+#endif
+#if HAVE_SYS_TIME_H
+#include
+#endif
+
+#include "ext2_fs.h"
+#include "ext2fsP.h"
+
+struct process_block_struct {
+ ext2_ino_t ino;
+ struct ext2_inode * inode;
+ ext2fs_block_bitmap reserve;
+ ext2fs_block_bitmap alloc_map;
+ errcode_t error;
+ char *buf;
+ int add_dir;
+ int flags;
+};
+
+static int process_block(ext2_filsys fs, blk64_t *block_nr,
+ e2_blkcnt_t blockcnt, blk64_t ref_block,
+ int ref_offset, void *priv_data)
+{
+ struct process_block_struct *pb;
+ errcode_t retval;
+ int ret;
+ blk64_t block, orig;
+
+ pb = (struct process_block_struct *) priv_data;
+ block = orig = *block_nr;
+ ret = 0;
+
+ /*
+ * Let's see if this is one which we need to relocate
+ */
+ if (ext2fs_test_block_bitmap2(pb->reserve, block)) {
+ do {
+ if (++block >= ext2fs_blocks_count(fs->super))
+ block = fs->super->s_first_data_block;
+ if (block == orig) {
+ pb->error = EXT2_ET_BLOCK_ALLOC_FAIL;
+ return BLOCK_ABORT;
+ }
+ } while (ext2fs_test_block_bitmap2(pb->reserve, block) ||
+ ext2fs_test_block_bitmap2(pb->alloc_map, block));
+
+ retval = io_channel_read_blk64(fs->io, orig, 1, pb->buf);
+ if (retval) {
+ pb->error = retval;
+ return BLOCK_ABORT;
+ }
+ retval = io_channel_write_blk64(fs->io, block, 1, pb->buf);
+ if (retval) {
+ pb->error = retval;
+ return BLOCK_ABORT;
+ }
+ *block_nr = block;
+ ext2fs_mark_block_bitmap2(pb->alloc_map, block);
+ ret = BLOCK_CHANGED;
+ if (pb->flags & EXT2_BMOVE_DEBUG)
+ printf("ino=%u, blockcnt=%lld, %llu->%llu\n",
+ (unsigned) pb->ino, blockcnt,
+ (unsigned long long) orig,
+ (unsigned long long) block);
+ }
+ if (pb->add_dir) {
+ retval = ext2fs_add_dir_block2(fs->dblist, pb->ino,
+ block, blockcnt);
+ if (retval) {
+ pb->error = retval;
+ ret |= BLOCK_ABORT;
+ }
+ }
+ return ret;
+}
+
+errcode_t ext2fs_move_blocks(ext2_filsys fs,
+ ext2fs_block_bitmap reserve,
+ ext2fs_block_bitmap alloc_map,
+ int flags)
+{
+ ext2_ino_t ino;
+ struct ext2_inode inode;
+ errcode_t retval;
+ struct process_block_struct pb;
+ ext2_inode_scan scan;
+ char *block_buf;
+
+ retval = ext2fs_open_inode_scan(fs, 0, &scan);
+ if (retval)
+ return retval;
+
+ pb.reserve = reserve;
+ pb.error = 0;
+ pb.alloc_map = alloc_map ? alloc_map : fs->block_map;
+ pb.flags = flags;
+
+ retval = ext2fs_get_array(4, fs->blocksize, &block_buf);
+ if (retval)
+ return retval;
+ pb.buf = block_buf + fs->blocksize * 3;
+
+ /*
+ * If GET_DBLIST is set in the flags field, then we should
+ * gather directory block information while we're doing the
+ * block move.
+ */
+ if (flags & EXT2_BMOVE_GET_DBLIST) {
+ if (fs->dblist) {
+ ext2fs_free_dblist(fs->dblist);
+ fs->dblist = NULL;
+ }
+ retval = ext2fs_init_dblist(fs, 0);
+ if (retval)
+ return retval;
+ }
+
+ retval = ext2fs_get_next_inode(scan, &ino, &inode);
+ if (retval)
+ return retval;
+
+ while (ino) {
+ if ((inode.i_links_count == 0) ||
+ !ext2fs_inode_has_valid_blocks(&inode))
+ goto next;
+
+ pb.ino = ino;
+ pb.inode = &inode;
+
+ pb.add_dir = (LINUX_S_ISDIR(inode.i_mode) &&
+ flags & EXT2_BMOVE_GET_DBLIST);
+
+ retval = ext2fs_block_iterate3(fs, ino, 0, block_buf,
+ process_block, &pb);
+ if (retval)
+ return retval;
+ if (pb.error)
+ return pb.error;
+
+ next:
+ retval = ext2fs_get_next_inode(scan, &ino, &inode);
+ if (retval == EXT2_ET_BAD_BLOCK_IN_INODE_TABLE)
+ goto next;
+ }
+ return 0;
+}
+
diff --git a/libcustomext2fs/source/brel.h b/libcustomext2fs/source/brel.h
new file mode 100644
index 00000000..a0dd5b9c
--- /dev/null
+++ b/libcustomext2fs/source/brel.h
@@ -0,0 +1,86 @@
+/*
+ * brel.h
+ *
+ * Copyright (C) 1996, 1997 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+struct ext2_block_relocate_entry {
+ blk_t new;
+ __s16 offset;
+ __u16 flags;
+ union {
+ blk_t block_ref;
+ ext2_ino_t inode_ref;
+ } owner;
+};
+
+#define RELOCATE_TYPE_REF 0x0007
+#define RELOCATE_BLOCK_REF 0x0001
+#define RELOCATE_INODE_REF 0x0002
+
+typedef struct ext2_block_relocation_table *ext2_brel;
+
+struct ext2_block_relocation_table {
+ __u32 magic;
+ char *name;
+ blk_t current;
+ void *priv_data;
+
+ /*
+ * Add a block relocation entry.
+ */
+ errcode_t (*put)(ext2_brel brel, blk_t old,
+ struct ext2_block_relocate_entry *ent);
+
+ /*
+ * Get a block relocation entry.
+ */
+ errcode_t (*get)(ext2_brel brel, blk_t old,
+ struct ext2_block_relocate_entry *ent);
+
+ /*
+ * Initialize for iterating over the block relocation entries.
+ */
+ errcode_t (*start_iter)(ext2_brel brel);
+
+ /*
+ * The iterator function for the inode relocation entries.
+ * Returns an inode number of 0 when out of entries.
+ */
+ errcode_t (*next)(ext2_brel brel, blk_t *old,
+ struct ext2_block_relocate_entry *ent);
+
+ /*
+ * Move the inode relocation table from one block number to
+ * another.
+ */
+ errcode_t (*move)(ext2_brel brel, blk_t old, blk_t new);
+
+ /*
+ * Remove a block relocation entry.
+ */
+ errcode_t (*delete)(ext2_brel brel, blk_t old);
+
+
+ /*
+ * Free the block relocation table.
+ */
+ errcode_t (*free)(ext2_brel brel);
+};
+
+errcode_t ext2fs_brel_memarray_create(char *name, blk_t max_block,
+ ext2_brel *brel);
+
+#define ext2fs_brel_put(brel, old, ent) ((brel)->put((brel), old, ent))
+#define ext2fs_brel_get(brel, old, ent) ((brel)->get((brel), old, ent))
+#define ext2fs_brel_start_iter(brel) ((brel)->start_iter((brel)))
+#define ext2fs_brel_next(brel, old, ent) ((brel)->next((brel), old, ent))
+#define ext2fs_brel_move(brel, old, new) ((brel)->move((brel), old, new))
+#define ext2fs_brel_delete(brel, old) ((brel)->delete((brel), old))
+#define ext2fs_brel_free(brel) ((brel)->free((brel)))
+
diff --git a/libcustomext2fs/source/brel_ma.c b/libcustomext2fs/source/brel_ma.c
new file mode 100644
index 00000000..1a55702b
--- /dev/null
+++ b/libcustomext2fs/source/brel_ma.c
@@ -0,0 +1,198 @@
+/*
+ * brel_ma.c
+ *
+ * Copyright (C) 1996, 1997 Theodore Ts'o.
+ *
+ * TODO: rewrite to not use a direct array!!! (Fortunately this
+ * module isn't really used yet.)
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+#if HAVE_ERRNO_H
+#include
+#endif
+
+#include "ext2_fs.h"
+#include "ext2fs.h"
+#include "brel.h"
+
+static errcode_t bma_put(ext2_brel brel, blk_t old,
+ struct ext2_block_relocate_entry *ent);
+static errcode_t bma_get(ext2_brel brel, blk_t old,
+ struct ext2_block_relocate_entry *ent);
+static errcode_t bma_start_iter(ext2_brel brel);
+static errcode_t bma_next(ext2_brel brel, blk_t *old,
+ struct ext2_block_relocate_entry *ent);
+static errcode_t bma_move(ext2_brel brel, blk_t old, blk_t new);
+static errcode_t bma_delete(ext2_brel brel, blk_t old);
+static errcode_t bma_free(ext2_brel brel);
+
+struct brel_ma {
+ __u32 magic;
+ blk_t max_block;
+ struct ext2_block_relocate_entry *entries;
+};
+
+errcode_t ext2fs_brel_memarray_create(char *name, blk_t max_block,
+ ext2_brel *new_brel)
+{
+ ext2_brel brel = 0;
+ errcode_t retval;
+ struct brel_ma *ma = 0;
+ size_t size;
+
+ *new_brel = 0;
+
+ /*
+ * Allocate memory structures
+ */
+ retval = ext2fs_get_mem(sizeof(struct ext2_block_relocation_table),
+ &brel);
+ if (retval)
+ goto errout;
+ memset(brel, 0, sizeof(struct ext2_block_relocation_table));
+
+ retval = ext2fs_get_mem(strlen(name)+1, &brel->name);
+ if (retval)
+ goto errout;
+ strcpy(brel->name, name);
+
+ retval = ext2fs_get_mem(sizeof(struct brel_ma), &ma);
+ if (retval)
+ goto errout;
+ memset(ma, 0, sizeof(struct brel_ma));
+ brel->priv_data = ma;
+
+ size = (size_t) (sizeof(struct ext2_block_relocate_entry) *
+ (max_block+1));
+ retval = ext2fs_get_array(max_block+1,
+ sizeof(struct ext2_block_relocate_entry), &ma->entries);
+ if (retval)
+ goto errout;
+ memset(ma->entries, 0, size);
+ ma->max_block = max_block;
+
+ /*
+ * Fill in the brel data structure
+ */
+ brel->put = bma_put;
+ brel->get = bma_get;
+ brel->start_iter = bma_start_iter;
+ brel->next = bma_next;
+ brel->move = bma_move;
+ brel->delete = bma_delete;
+ brel->free = bma_free;
+
+ *new_brel = brel;
+ return 0;
+
+errout:
+ bma_free(brel);
+ return retval;
+}
+
+static errcode_t bma_put(ext2_brel brel, blk_t old,
+ struct ext2_block_relocate_entry *ent)
+{
+ struct brel_ma *ma;
+
+ ma = brel->priv_data;
+ if (old > ma->max_block)
+ return EXT2_ET_INVALID_ARGUMENT;
+ ma->entries[(unsigned)old] = *ent;
+ return 0;
+}
+
+static errcode_t bma_get(ext2_brel brel, blk_t old,
+ struct ext2_block_relocate_entry *ent)
+{
+ struct brel_ma *ma;
+
+ ma = brel->priv_data;
+ if (old > ma->max_block)
+ return EXT2_ET_INVALID_ARGUMENT;
+ if (ma->entries[(unsigned)old].new == 0)
+ return ENOENT;
+ *ent = ma->entries[old];
+ return 0;
+}
+
+static errcode_t bma_start_iter(ext2_brel brel)
+{
+ brel->current = 0;
+ return 0;
+}
+
+static errcode_t bma_next(ext2_brel brel, blk_t *old,
+ struct ext2_block_relocate_entry *ent)
+{
+ struct brel_ma *ma;
+
+ ma = brel->priv_data;
+ while (++brel->current < ma->max_block) {
+ if (ma->entries[(unsigned)brel->current].new == 0)
+ continue;
+ *old = brel->current;
+ *ent = ma->entries[(unsigned)brel->current];
+ return 0;
+ }
+ *old = 0;
+ return 0;
+}
+
+static errcode_t bma_move(ext2_brel brel, blk_t old, blk_t new)
+{
+ struct brel_ma *ma;
+
+ ma = brel->priv_data;
+ if ((old > ma->max_block) || (new > ma->max_block))
+ return EXT2_ET_INVALID_ARGUMENT;
+ if (ma->entries[(unsigned)old].new == 0)
+ return ENOENT;
+ ma->entries[(unsigned)new] = ma->entries[old];
+ ma->entries[(unsigned)old].new = 0;
+ return 0;
+}
+
+static errcode_t bma_delete(ext2_brel brel, blk_t old)
+{
+ struct brel_ma *ma;
+
+ ma = brel->priv_data;
+ if (old > ma->max_block)
+ return EXT2_ET_INVALID_ARGUMENT;
+ if (ma->entries[(unsigned)old].new == 0)
+ return ENOENT;
+ ma->entries[(unsigned)old].new = 0;
+ return 0;
+}
+
+static errcode_t bma_free(ext2_brel brel)
+{
+ struct brel_ma *ma;
+
+ if (!brel)
+ return 0;
+
+ ma = brel->priv_data;
+
+ if (ma) {
+ if (ma->entries)
+ ext2fs_free_mem(&ma->entries);
+ ext2fs_free_mem(&ma);
+ }
+ if (brel->name)
+ ext2fs_free_mem(&brel->name);
+ ext2fs_free_mem(&brel);
+ return 0;
+}
diff --git a/libcustomext2fs/source/check_desc.c b/libcustomext2fs/source/check_desc.c
new file mode 100644
index 00000000..7929cd95
--- /dev/null
+++ b/libcustomext2fs/source/check_desc.c
@@ -0,0 +1,103 @@
+/*
+ * check_desc.c --- Check the group descriptors of an ext2 filesystem
+ *
+ * Copyright (C) 1993, 1994, 1995, 1996 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+#include
+#include
+#if HAVE_SYS_STAT_H
+#include
+#endif
+#if HAVE_SYS_TYPES_H
+#include
+#endif
+
+#include "ext2_fs.h"
+#include "ext2fs.h"
+
+/*
+ * This routine sanity checks the group descriptors
+ */
+errcode_t ext2fs_check_desc(ext2_filsys fs)
+{
+ ext2fs_block_bitmap bmap;
+ errcode_t retval;
+ dgrp_t i;
+ blk64_t first_block = fs->super->s_first_data_block;
+ blk64_t last_block = ext2fs_blocks_count(fs->super)-1;
+ blk64_t blk, b;
+ int j;
+
+ EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+
+ retval = ext2fs_allocate_block_bitmap(fs, "check_desc map", &bmap);
+ if (retval)
+ return retval;
+
+ for (i = 0; i < fs->group_desc_count; i++)
+ ext2fs_reserve_super_and_bgd(fs, i, bmap);
+
+ for (i = 0; i < fs->group_desc_count; i++) {
+ if (!EXT2_HAS_INCOMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_INCOMPAT_FLEX_BG)) {
+ first_block = ext2fs_group_first_block2(fs, i);
+ last_block = ext2fs_group_last_block2(fs, i);
+ if (i == (fs->group_desc_count - 1))
+ last_block = ext2fs_blocks_count(fs->super)-1;
+ }
+
+ /*
+ * Check to make sure the block bitmap for group is sane
+ */
+ blk = ext2fs_block_bitmap_loc(fs, i);
+ if (blk < first_block || blk > last_block ||
+ ext2fs_test_block_bitmap2(bmap, blk)) {
+ retval = EXT2_ET_GDESC_BAD_BLOCK_MAP;
+ goto errout;
+ }
+ ext2fs_mark_block_bitmap2(bmap, blk);
+
+ /*
+ * Check to make sure the inode bitmap for group is sane
+ */
+ blk = ext2fs_inode_bitmap_loc(fs, i);
+ if (blk < first_block || blk > last_block ||
+ ext2fs_test_block_bitmap2(bmap, blk)) {
+ retval = EXT2_ET_GDESC_BAD_INODE_MAP;
+ goto errout;
+ }
+ ext2fs_mark_block_bitmap2(bmap, blk);
+
+ /*
+ * Check to make sure the inode table for group is sane
+ */
+ blk = ext2fs_inode_table_loc(fs, i);
+ if (blk < first_block ||
+ ((blk + fs->inode_blocks_per_group - 1) > last_block)) {
+ retval = EXT2_ET_GDESC_BAD_INODE_TABLE;
+ goto errout;
+ }
+ for (j = 0, b = blk; j < fs->inode_blocks_per_group;
+ j++, b++) {
+ if (ext2fs_test_block_bitmap2(bmap, b)) {
+ retval = EXT2_ET_GDESC_BAD_INODE_TABLE;
+ goto errout;
+ }
+ ext2fs_mark_block_bitmap2(bmap, b);
+ }
+ }
+errout:
+ ext2fs_free_block_bitmap(bmap);
+ return retval;
+}
diff --git a/libcustomext2fs/source/closefs.c b/libcustomext2fs/source/closefs.c
new file mode 100644
index 00000000..8242622b
--- /dev/null
+++ b/libcustomext2fs/source/closefs.c
@@ -0,0 +1,461 @@
+/*
+ * closefs.c --- close an ext2 filesystem
+ *
+ * Copyright (C) 1993, 1994, 1995, 1996 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+#include
+#include
+
+#include "ext2_fs.h"
+#include "ext2fsP.h"
+
+static int test_root(int a, int b)
+{
+ if (a == 0)
+ return 1;
+ while (1) {
+ if (a == 1)
+ return 1;
+ if (a % b)
+ return 0;
+ a = a / b;
+ }
+}
+
+int ext2fs_bg_has_super(ext2_filsys fs, int group_block)
+{
+ if (!(fs->super->s_feature_ro_compat &
+ EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER))
+ return 1;
+
+ if (test_root(group_block, 3) || (test_root(group_block, 5)) ||
+ test_root(group_block, 7))
+ return 1;
+
+ return 0;
+}
+
+/*
+ * ext2fs_super_and_bgd_loc2()
+ * @fs: ext2 fs pointer
+ * @group given block group
+ * @ret_super_blk: if !NULL, returns super block location
+ * @ret_old_desc_blk: if !NULL, returns location of the old block
+ * group descriptor
+ * @ret_new_desc_blk: if !NULL, returns location of meta_bg block
+ * group descriptor
+ * @ret_used_blks: if !NULL, returns number of blocks used by
+ * super block and group_descriptors.
+ *
+ * Returns errcode_t of 0
+ */
+errcode_t ext2fs_super_and_bgd_loc2(ext2_filsys fs,
+ dgrp_t group,
+ blk64_t *ret_super_blk,
+ blk64_t *ret_old_desc_blk,
+ blk64_t *ret_new_desc_blk,
+ blk_t *ret_used_blks)
+{
+ blk64_t group_block, super_blk = 0, old_desc_blk = 0, new_desc_blk = 0;
+ unsigned int meta_bg, meta_bg_size;
+ blk_t numblocks = 0;
+ blk64_t old_desc_blocks;
+ int has_super;
+
+ group_block = ext2fs_group_first_block2(fs, group);
+
+ if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG)
+ old_desc_blocks = fs->super->s_first_meta_bg;
+ else
+ old_desc_blocks =
+ fs->desc_blocks + fs->super->s_reserved_gdt_blocks;
+
+ has_super = ext2fs_bg_has_super(fs, group);
+
+ if (has_super) {
+ super_blk = group_block;
+ numblocks++;
+ }
+ meta_bg_size = EXT2_DESC_PER_BLOCK(fs->super);
+ meta_bg = group / meta_bg_size;
+
+ if (!(fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG) ||
+ (meta_bg < fs->super->s_first_meta_bg)) {
+ if (has_super) {
+ old_desc_blk = group_block + 1;
+ numblocks += old_desc_blocks;
+ }
+ } else {
+ if (((group % meta_bg_size) == 0) ||
+ ((group % meta_bg_size) == 1) ||
+ ((group % meta_bg_size) == (meta_bg_size-1))) {
+ if (has_super)
+ has_super = 1;
+ new_desc_blk = group_block + has_super;
+ numblocks++;
+ }
+ }
+
+ if (ret_super_blk)
+ *ret_super_blk = super_blk;
+ if (ret_old_desc_blk)
+ *ret_old_desc_blk = old_desc_blk;
+ if (ret_new_desc_blk)
+ *ret_new_desc_blk = new_desc_blk;
+ if (ret_used_blks)
+ *ret_used_blks = numblocks;
+
+ return 0;
+}
+
+/*
+ * This function returns the location of the superblock, block group
+ * descriptors for a given block group. It currently returns the
+ * number of free blocks assuming that inode table and allocation
+ * bitmaps will be in the group. This is not necessarily the case
+ * when the flex_bg feature is enabled, so callers should take care!
+ * It was only really intended for use by mke2fs, and even there it's
+ * not that useful.
+ *
+ * The ext2fs_super_and_bgd_loc2() function is 64-bit block number
+ * capable and returns the number of blocks used by super block and
+ * group descriptors.
+ */
+int ext2fs_super_and_bgd_loc(ext2_filsys fs,
+ dgrp_t group,
+ blk_t *ret_super_blk,
+ blk_t *ret_old_desc_blk,
+ blk_t *ret_new_desc_blk,
+ int *ret_meta_bg)
+{
+ blk64_t ret_super_blk2;
+ blk64_t ret_old_desc_blk2;
+ blk64_t ret_new_desc_blk2;
+ blk_t ret_used_blks;
+ blk_t numblocks;
+ unsigned int meta_bg_size;
+
+ ext2fs_super_and_bgd_loc2(fs, group, &ret_super_blk2,
+ &ret_old_desc_blk2,
+ &ret_new_desc_blk2,
+ &ret_used_blks);
+
+ if (group == fs->group_desc_count-1) {
+ numblocks = (ext2fs_blocks_count(fs->super) -
+ (blk64_t) fs->super->s_first_data_block) %
+ (blk64_t) fs->super->s_blocks_per_group;
+ if (!numblocks)
+ numblocks = fs->super->s_blocks_per_group;
+ } else
+ numblocks = fs->super->s_blocks_per_group;
+
+ if (ret_super_blk)
+ *ret_super_blk = (blk_t)ret_super_blk2;
+ if (ret_old_desc_blk)
+ *ret_old_desc_blk = (blk_t)ret_old_desc_blk2;
+ if (ret_new_desc_blk)
+ *ret_new_desc_blk = (blk_t)ret_new_desc_blk2;
+ if (ret_meta_bg) {
+ meta_bg_size = EXT2_DESC_PER_BLOCK(fs->super);
+ *ret_meta_bg = group / meta_bg_size;
+ }
+
+ numblocks -= 2 + fs->inode_blocks_per_group + ret_used_blks;
+
+ return numblocks;
+}
+
+/*
+ * This function forces out the primary superblock. We need to only
+ * write out those fields which we have changed, since if the
+ * filesystem is mounted, it may have changed some of the other
+ * fields.
+ *
+ * It takes as input a superblock which has already been byte swapped
+ * (if necessary).
+ *
+ */
+static errcode_t write_primary_superblock(ext2_filsys fs,
+ struct ext2_super_block *super)
+{
+ __u16 *old_super, *new_super;
+ int check_idx, write_idx, size;
+ errcode_t retval;
+
+ if (!fs->io->manager->write_byte || !fs->orig_super) {
+ fallback:
+ io_channel_set_blksize(fs->io, SUPERBLOCK_OFFSET);
+ retval = io_channel_write_blk64(fs->io, 1, -SUPERBLOCK_SIZE,
+ super);
+ io_channel_set_blksize(fs->io, fs->blocksize);
+ return retval;
+ }
+
+ old_super = (__u16 *) fs->orig_super;
+ new_super = (__u16 *) super;
+
+ for (check_idx = 0; check_idx < SUPERBLOCK_SIZE/2; check_idx++) {
+ if (old_super[check_idx] == new_super[check_idx])
+ continue;
+ write_idx = check_idx;
+ for (check_idx++; check_idx < SUPERBLOCK_SIZE/2; check_idx++)
+ if (old_super[check_idx] == new_super[check_idx])
+ break;
+ size = 2 * (check_idx - write_idx);
+#if 0
+ printf("Writing %d bytes starting at %d\n",
+ size, write_idx*2);
+#endif
+ retval = io_channel_write_byte(fs->io,
+ SUPERBLOCK_OFFSET + (2 * write_idx), size,
+ new_super + write_idx);
+ if (retval == EXT2_ET_UNIMPLEMENTED)
+ goto fallback;
+ if (retval)
+ return retval;
+ }
+ memcpy(fs->orig_super, super, SUPERBLOCK_SIZE);
+ return 0;
+}
+
+
+/*
+ * Updates the revision to EXT2_DYNAMIC_REV
+ */
+void ext2fs_update_dynamic_rev(ext2_filsys fs)
+{
+ struct ext2_super_block *sb = fs->super;
+
+ if (sb->s_rev_level > EXT2_GOOD_OLD_REV)
+ return;
+
+ sb->s_rev_level = EXT2_DYNAMIC_REV;
+ sb->s_first_ino = EXT2_GOOD_OLD_FIRST_INO;
+ sb->s_inode_size = EXT2_GOOD_OLD_INODE_SIZE;
+ /* s_uuid is handled by e2fsck already */
+ /* other fields should be left alone */
+}
+
+static errcode_t write_backup_super(ext2_filsys fs, dgrp_t group,
+ blk_t group_block,
+ struct ext2_super_block *super_shadow)
+{
+ dgrp_t sgrp = group;
+
+ if (sgrp > ((1 << 16) - 1))
+ sgrp = (1 << 16) - 1;
+#ifdef WORDS_BIGENDIAN
+ super_shadow->s_block_group_nr = ext2fs_swab16(sgrp);
+#else
+ fs->super->s_block_group_nr = sgrp;
+#endif
+
+ return io_channel_write_blk64(fs->io, group_block, -SUPERBLOCK_SIZE,
+ super_shadow);
+}
+
+errcode_t ext2fs_flush(ext2_filsys fs)
+{
+ dgrp_t i;
+ errcode_t retval;
+ unsigned long fs_state;
+ __u32 feature_incompat;
+ struct ext2_super_block *super_shadow = 0;
+ struct ext2_group_desc *group_shadow = 0;
+#ifdef WORDS_BIGENDIAN
+ struct ext2_group_desc *gdp;
+ dgrp_t j;
+#endif
+ char *group_ptr;
+ int old_desc_blocks;
+ struct ext2fs_numeric_progress_struct progress;
+
+ EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+
+ fs_state = fs->super->s_state;
+ feature_incompat = fs->super->s_feature_incompat;
+
+ fs->super->s_wtime = fs->now ? fs->now : time(NULL);
+ fs->super->s_block_group_nr = 0;
+#ifdef WORDS_BIGENDIAN
+ retval = EXT2_ET_NO_MEMORY;
+ retval = ext2fs_get_mem(SUPERBLOCK_SIZE, &super_shadow);
+ if (retval)
+ goto errout;
+ retval = ext2fs_get_array(fs->desc_blocks, fs->blocksize,
+ &group_shadow);
+ if (retval)
+ goto errout;
+ memcpy(group_shadow, fs->group_desc, (size_t) fs->blocksize *
+ fs->desc_blocks);
+
+ /* swap the group descriptors */
+ for (j=0; j < fs->group_desc_count; j++) {
+ gdp = ext2fs_group_desc(fs, (struct opaque_ext2_group_desc *) group_shadow, j);
+ ext2fs_swap_group_desc2(fs, gdp);
+ }
+#else
+ super_shadow = fs->super;
+ group_shadow = ext2fs_group_desc(fs, fs->group_desc, 0);
+#endif
+
+ /*
+ * Set the state of the FS to be non-valid. (The state has
+ * already been backed up earlier, and will be restored after
+ * we write out the backup superblocks.)
+ */
+ fs->super->s_state &= ~EXT2_VALID_FS;
+ fs->super->s_feature_incompat &= ~EXT3_FEATURE_INCOMPAT_RECOVER;
+#ifdef WORDS_BIGENDIAN
+ *super_shadow = *fs->super;
+ ext2fs_swap_super(super_shadow);
+#endif
+
+ /*
+ * If this is an external journal device, don't write out the
+ * block group descriptors or any of the backup superblocks
+ */
+ if (fs->super->s_feature_incompat &
+ EXT3_FEATURE_INCOMPAT_JOURNAL_DEV)
+ goto write_primary_superblock_only;
+
+ /*
+ * Write out the master group descriptors, and the backup
+ * superblocks and group descriptors.
+ */
+ group_ptr = (char *) group_shadow;
+ if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG)
+ old_desc_blocks = fs->super->s_first_meta_bg;
+ else
+ old_desc_blocks = fs->desc_blocks;
+
+ ext2fs_numeric_progress_init(fs, &progress, NULL,
+ fs->group_desc_count);
+
+
+ for (i = 0; i < fs->group_desc_count; i++) {
+ blk64_t super_blk, old_desc_blk, new_desc_blk;
+
+ ext2fs_numeric_progress_update(fs, &progress, i);
+ ext2fs_super_and_bgd_loc2(fs, i, &super_blk, &old_desc_blk,
+ &new_desc_blk, 0);
+
+ if (!(fs->flags & EXT2_FLAG_MASTER_SB_ONLY) &&i && super_blk) {
+ retval = write_backup_super(fs, i, super_blk,
+ super_shadow);
+ if (retval)
+ goto errout;
+ }
+ if (fs->flags & EXT2_FLAG_SUPER_ONLY)
+ continue;
+ if ((old_desc_blk) &&
+ (!(fs->flags & EXT2_FLAG_MASTER_SB_ONLY) || (i == 0))) {
+ retval = io_channel_write_blk64(fs->io,
+ old_desc_blk, old_desc_blocks, group_ptr);
+ if (retval)
+ goto errout;
+ }
+ if (new_desc_blk) {
+ int meta_bg = i / EXT2_DESC_PER_BLOCK(fs->super);
+
+ retval = io_channel_write_blk64(fs->io, new_desc_blk,
+ 1, group_ptr + (meta_bg*fs->blocksize));
+ if (retval)
+ goto errout;
+ }
+ }
+
+ ext2fs_numeric_progress_close(fs, &progress, NULL);
+
+ /*
+ * If the write_bitmaps() function is present, call it to
+ * flush the bitmaps. This is done this way so that a simple
+ * program that doesn't mess with the bitmaps doesn't need to
+ * drag in the bitmaps.c code.
+ */
+ if (fs->write_bitmaps) {
+ retval = fs->write_bitmaps(fs);
+ if (retval)
+ goto errout;
+ }
+
+write_primary_superblock_only:
+ /*
+ * Write out master superblock. This has to be done
+ * separately, since it is located at a fixed location
+ * (SUPERBLOCK_OFFSET). We flush all other pending changes
+ * out to disk first, just to avoid a race condition with an
+ * insy-tinsy window....
+ */
+
+ fs->super->s_block_group_nr = 0;
+ fs->super->s_state = fs_state;
+ fs->super->s_feature_incompat = feature_incompat;
+#ifdef WORDS_BIGENDIAN
+ *super_shadow = *fs->super;
+ ext2fs_swap_super(super_shadow);
+#endif
+
+ retval = io_channel_flush(fs->io);
+ retval = write_primary_superblock(fs, super_shadow);
+ if (retval)
+ goto errout;
+
+ fs->flags &= ~EXT2_FLAG_DIRTY;
+
+ retval = io_channel_flush(fs->io);
+errout:
+ fs->super->s_state = fs_state;
+#ifdef WORDS_BIGENDIAN
+ if (super_shadow)
+ ext2fs_free_mem(&super_shadow);
+ if (group_shadow)
+ ext2fs_free_mem(&group_shadow);
+#endif
+ return retval;
+}
+
+errcode_t ext2fs_close(ext2_filsys fs)
+{
+ errcode_t retval;
+ int meta_blks;
+ io_stats stats = 0;
+
+ EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+
+ if (fs->write_bitmaps) {
+ retval = fs->write_bitmaps(fs);
+ if (retval)
+ return retval;
+ }
+ if (fs->super->s_kbytes_written &&
+ fs->io->manager->get_stats)
+ fs->io->manager->get_stats(fs->io, &stats);
+ if (stats && stats->bytes_written && (fs->flags & EXT2_FLAG_RW)) {
+ fs->super->s_kbytes_written += stats->bytes_written >> 10;
+ meta_blks = fs->desc_blocks + 1;
+ if (!(fs->flags & EXT2_FLAG_SUPER_ONLY))
+ fs->super->s_kbytes_written += meta_blks /
+ (fs->blocksize / 1024);
+ if ((fs->flags & EXT2_FLAG_DIRTY) == 0)
+ fs->flags |= EXT2_FLAG_SUPER_ONLY | EXT2_FLAG_DIRTY;
+ }
+ if (fs->flags & EXT2_FLAG_DIRTY) {
+ retval = ext2fs_flush(fs);
+ if (retval)
+ return retval;
+ }
+ ext2fs_free(fs);
+ return 0;
+}
+
diff --git a/libcustomext2fs/source/com_err.c b/libcustomext2fs/source/com_err.c
new file mode 100644
index 00000000..c27853e7
--- /dev/null
+++ b/libcustomext2fs/source/com_err.c
@@ -0,0 +1,35 @@
+/*
+ * Copyright 1987, 1988 by MIT Student Information Processing Board.
+ *
+ * Permission to use, copy, modify, and distribute this software and
+ * its documentation for any purpose is hereby granted, provided that
+ * the names of M.I.T. and the M.I.T. S.I.P.B. not be used in
+ * advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission. M.I.T. and the
+ * M.I.T. S.I.P.B. make no representations about the suitability of
+ * this software for any purpose. It is provided "as is" without
+ * express or implied warranty.
+ */
+
+#include
+#ifdef HAVE_UNISTD_H
+#include
+#endif
+#include "ext2_fs.h"
+#include "ext2fs.h"
+#include "ext2_internal.h"
+
+void com_err (const char *whoami,
+ errcode_t code,
+ const char *fmt, ...)
+{
+ if(whoami)
+ ext2_log_trace("%s: ", whoami);
+
+ ext2_log_trace("error code: %i ", (int) code);
+
+ if(fmt)
+ ext2_log_trace(fmt);
+
+ ext2_log_trace("\n");
+}
diff --git a/libcustomext2fs/source/com_err.h b/libcustomext2fs/source/com_err.h
new file mode 100644
index 00000000..0c31a4ec
--- /dev/null
+++ b/libcustomext2fs/source/com_err.h
@@ -0,0 +1,70 @@
+/*
+ * Header file for common error description library.
+ *
+ * Copyright 1988, Student Information Processing Board of the
+ * Massachusetts Institute of Technology.
+ *
+ * For copyright and distribution info, see the documentation supplied
+ * with this package.
+ */
+
+#if !defined(__COM_ERR_H) && !defined(__COM_ERR_H__)
+
+#ifdef __GNUC__
+#define COM_ERR_ATTR(x) __attribute__(x)
+#else
+#define COM_ERR_ATTR(x)
+#endif
+
+#ifndef DEBUG_GEKKO
+#define OMIT_COM_ERR
+#endif
+
+#include
+#include
+
+typedef long errcode_t;
+
+struct error_table {
+ char const * const * msgs;
+ long base;
+ int n_msgs;
+};
+struct et_list;
+
+extern void com_err (const char *, long, const char *, ...)
+ COM_ERR_ATTR((format(printf, 3, 4)));
+
+extern void com_err_va (const char *whoami, errcode_t code, const char *fmt,
+ va_list args)
+ COM_ERR_ATTR((format(printf, 3, 0)));
+
+extern char const *error_message (long);
+extern void (*com_err_hook) (const char *, long, const char *, va_list);
+extern void (*set_com_err_hook (void (*) (const char *, long,
+ const char *, va_list)))
+ (const char *, long, const char *, va_list);
+extern void (*reset_com_err_hook (void)) (const char *, long,
+ const char *, va_list);
+extern int init_error_table(const char * const *msgs, long base, int count);
+
+extern errcode_t add_error_table(const struct error_table * et);
+extern errcode_t remove_error_table(const struct error_table * et);
+extern void add_to_error_table(struct et_list *new_table);
+
+/* Provided for Heimdall compatibility */
+extern const char *com_right(struct et_list *list, long code);
+extern const char *com_right_r(struct et_list *list, long code, char *str, size_t len);
+extern void initialize_error_table_r(struct et_list **list,
+ const char **messages,
+ int num_errors,
+ long base);
+extern void free_error_table(struct et_list *et);
+
+/* Provided for compatibility with other com_err libraries */
+extern int et_list_lock(void);
+extern int et_list_unlock(void);
+
+#define __COM_ERR_H
+#define __COM_ERR_H__
+#endif /* !defined(__COM_ERR_H) && !defined(__COM_ERR_H__)*/
diff --git a/libcustomext2fs/source/config.h b/libcustomext2fs/source/config.h
new file mode 100644
index 00000000..be09663b
--- /dev/null
+++ b/libcustomext2fs/source/config.h
@@ -0,0 +1,10 @@
+
+#define HAVE_UNISTD_H 1
+#define HAVE_SYS_STAT_H 1
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_UTIME_H 1
+#define WORDS_BIGENDIAN 1
+#define HAVE_ERRNO_H 1
+#define EXT2_FLAT_INCLUDES 1
+#define HAVE_STRDUP 1
+#define HAVE_SYS_RESOURCE_H 1
diff --git a/libcustomext2fs/source/crc16.c b/libcustomext2fs/source/crc16.c
new file mode 100644
index 00000000..02d81e44
--- /dev/null
+++ b/libcustomext2fs/source/crc16.c
@@ -0,0 +1,73 @@
+/*
+ * crc16.c
+ *
+ * This source code is licensed under the GNU General Public License,
+ * Version 2. See the file COPYING for more details.
+ */
+
+#if HAVE_SYS_TYPES_H
+#include
+#endif
+#include "ext2_types.h"
+
+#include "crc16.h"
+
+/** CRC table for the CRC-16. The poly is 0x8005 (x16 + x15 + x2 + 1) */
+static __u16 const crc16_table[256] = {
+ 0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241,
+ 0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440,
+ 0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40,
+ 0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841,
+ 0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40,
+ 0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41,
+ 0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641,
+ 0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040,
+ 0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240,
+ 0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441,
+ 0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41,
+ 0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840,
+ 0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41,
+ 0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40,
+ 0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640,
+ 0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041,
+ 0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240,
+ 0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441,
+ 0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41,
+ 0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840,
+ 0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41,
+ 0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40,
+ 0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640,
+ 0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041,
+ 0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241,
+ 0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440,
+ 0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40,
+ 0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841,
+ 0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40,
+ 0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41,
+ 0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641,
+ 0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040
+};
+
+/**
+ * Compute the CRC-16 for the data buffer
+ *
+ * @param crc previous CRC value
+ * @param buffer data pointer
+ * @param len number of bytes in the buffer
+ * @return the updated CRC value
+ */
+crc16_t ext2fs_crc16(crc16_t crc, const void *buffer, unsigned int len)
+{
+ const unsigned char *cp = buffer;
+
+ while (len--)
+ /*
+ * for an unknown reason, PPC treats __u16 as signed
+ * and keeps doing sign extension on the value.
+ * Instead, use only the low 16 bits of an unsigned
+ * int for holding the CRC value to avoid this.
+ */
+ crc = (((crc >> 8) & 0xffU) ^
+ crc16_table[(crc ^ *cp++) & 0xffU]) & 0x0000ffffU;
+ return crc;
+}
diff --git a/libcustomext2fs/source/crc16.h b/libcustomext2fs/source/crc16.h
new file mode 100644
index 00000000..322e68dd
--- /dev/null
+++ b/libcustomext2fs/source/crc16.h
@@ -0,0 +1,26 @@
+/*
+ * crc16.h - CRC-16 routine
+ *
+ * Implements the standard CRC-16:
+ * Width 16
+ * Poly 0x8005 (x16 + x15 + x2 + 1)
+ * Init 0
+ *
+ * Copyright (c) 2005 Ben Gardner
+ *
+ * This source code is licensed under the GNU General Public License,
+ * Version 2. See the file COPYING for more details.
+ */
+
+#ifndef __CRC16_H
+#define __CRC16_H
+
+/* for an unknown reason, PPC treats __u16 as signed and keeps doing sign
+ * extension on the value. Instead, use only the low 16 bits of an
+ * unsigned int for holding the CRC value to avoid this.
+ */
+typedef unsigned int crc16_t;
+
+extern crc16_t ext2fs_crc16(crc16_t crc, const void *buffer, unsigned int len);
+
+#endif /* __CRC16_H */
diff --git a/libcustomext2fs/source/csum.c b/libcustomext2fs/source/csum.c
new file mode 100644
index 00000000..0ef9ade5
--- /dev/null
+++ b/libcustomext2fs/source/csum.c
@@ -0,0 +1,286 @@
+/*
+ * csum.c --- checksumming of ext3 structures
+ *
+ * Copyright (C) 2006 Cluster File Systems, Inc.
+ * Copyright (C) 2006, 2007 by Andreas Dilger
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#if HAVE_SYS_TYPES_H
+#include
+#endif
+
+#include "ext2_fs.h"
+#include "ext2fs.h"
+#include "crc16.h"
+#include
+
+#ifndef offsetof
+#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
+#endif
+
+#ifdef DEBUG
+#define STATIC
+#else
+#define STATIC static
+#endif
+
+STATIC __u16 ext2fs_group_desc_csum(ext2_filsys fs, dgrp_t group)
+{
+ __u16 crc = 0;
+ struct ext2_group_desc *desc;
+ size_t size;
+
+ size = fs->super->s_desc_size;
+ if (size < EXT2_MIN_DESC_SIZE)
+ size = EXT2_MIN_DESC_SIZE;
+ if (size > sizeof(struct ext4_group_desc)) {
+ printf("%s: illegal s_desc_size(%zd)\n", __func__, size);
+ size = sizeof(struct ext4_group_desc);
+ }
+
+ desc = ext2fs_group_desc(fs, fs->group_desc, group);
+
+ if (fs->super->s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_GDT_CSUM) {
+ int offset = offsetof(struct ext2_group_desc, bg_checksum);
+
+#ifdef WORDS_BIGENDIAN
+ struct ext4_group_desc swabdesc;
+
+ /* Have to swab back to little-endian to do the checksum */
+ memcpy(&swabdesc, desc, size);
+ ext2fs_swap_group_desc2(fs,
+ (struct ext2_group_desc *) &swabdesc);
+ desc = (struct ext2_group_desc *) &swabdesc;
+
+ group = ext2fs_swab32(group);
+#endif
+ crc = ext2fs_crc16(~0, fs->super->s_uuid,
+ sizeof(fs->super->s_uuid));
+ crc = ext2fs_crc16(crc, &group, sizeof(group));
+ crc = ext2fs_crc16(crc, desc, offset);
+ offset += sizeof(desc->bg_checksum); /* skip checksum */
+ /* for checksum of struct ext4_group_desc do the rest...*/
+ if (offset < size) {
+ crc = ext2fs_crc16(crc, (char *)desc + offset,
+ size - offset);
+ }
+ }
+
+ return crc;
+}
+
+int ext2fs_group_desc_csum_verify(ext2_filsys fs, dgrp_t group)
+{
+ if (EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_RO_COMPAT_GDT_CSUM) &&
+ (ext2fs_bg_checksum(fs, group) !=
+ ext2fs_group_desc_csum(fs, group)))
+ return 0;
+
+ return 1;
+}
+
+void ext2fs_group_desc_csum_set(ext2_filsys fs, dgrp_t group)
+{
+ if (!EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_RO_COMPAT_GDT_CSUM))
+ return;
+
+ /* ext2fs_bg_checksum_set() sets the actual checksum field but
+ * does not calculate the checksum itself. */
+ ext2fs_bg_checksum_set(fs, group, ext2fs_group_desc_csum(fs, group));
+}
+
+static __u32 find_last_inode_ingrp(ext2fs_inode_bitmap bitmap,
+ __u32 inodes_per_grp, dgrp_t grp_no)
+{
+ ext2_ino_t i, start_ino, end_ino;
+
+ start_ino = grp_no * inodes_per_grp + 1;
+ end_ino = start_ino + inodes_per_grp - 1;
+
+ for (i = end_ino; i >= start_ino; i--) {
+ if (ext2fs_fast_test_inode_bitmap2(bitmap, i))
+ return i - start_ino + 1;
+ }
+ return inodes_per_grp;
+}
+
+/* update the bitmap flags, set the itable high watermark, and calculate
+ * checksums for the group descriptors */
+errcode_t ext2fs_set_gdt_csum(ext2_filsys fs)
+{
+ struct ext2_super_block *sb = fs->super;
+ int dirty = 0;
+ dgrp_t i;
+
+ if (!fs->inode_map)
+ return EXT2_ET_NO_INODE_BITMAP;
+
+ if (!EXT2_HAS_RO_COMPAT_FEATURE(fs->super,
+ EXT4_FEATURE_RO_COMPAT_GDT_CSUM))
+ return 0;
+
+ for (i = 0; i < fs->group_desc_count; i++) {
+ unsigned int old_csum = ext2fs_bg_checksum(fs, i);
+ int old_unused = ext2fs_bg_itable_unused(fs, i);
+ unsigned int old_flags = ext2fs_bg_flags(fs, i);
+ int old_free_inodes_count = ext2fs_bg_free_inodes_count(fs, i);
+
+ if (old_free_inodes_count == sb->s_inodes_per_group) {
+ ext2fs_bg_flags_set(fs, i, EXT2_BG_INODE_UNINIT);
+ ext2fs_bg_itable_unused_set(fs, i, sb->s_inodes_per_group);
+ } else {
+ int unused =
+ sb->s_inodes_per_group -
+ find_last_inode_ingrp(fs->inode_map,
+ sb->s_inodes_per_group, i);
+
+ ext2fs_bg_flags_clear(fs, i, EXT2_BG_INODE_UNINIT);
+ ext2fs_bg_itable_unused_set(fs, i, unused);
+ }
+
+ ext2fs_group_desc_csum_set(fs, i);
+ if (old_flags != ext2fs_bg_flags(fs, i))
+ dirty = 1;
+ if (old_unused != ext2fs_bg_itable_unused(fs, i))
+ dirty = 1;
+ if (old_csum != ext2fs_bg_checksum(fs, i))
+ dirty = 1;
+ }
+ if (dirty)
+ ext2fs_mark_super_dirty(fs);
+ return 0;
+}
+
+#ifdef DEBUG
+void print_csum(const char *msg, ext2_filsys fs, dgrp_t group)
+{
+ __u16 crc1, crc2, crc3;
+ dgrp_t swabgroup;
+ struct ext2_group_desc *desc = ext2fs_group_desc(fs, fs->group_desc, group);
+ size_t size;
+ struct ext2_super_block *sb = fs->super;
+ int offset = offsetof(struct ext2_group_desc, bg_checksum);
+#ifdef WORDS_BIGENDIAN
+ struct ext4_group_desc swabdesc;
+#endif
+
+ size = fs->super->s_desc_size;
+ if (size < EXT2_MIN_DESC_SIZE)
+ size = EXT2_MIN_DESC_SIZE;
+ if (size > sizeof(struct ext4_group_desc))
+ size = sizeof(struct ext4_group_desc);
+#ifdef WORDS_BIGENDIAN
+ /* Have to swab back to little-endian to do the checksum */
+ memcpy(&swabdesc, desc, size);
+ ext2fs_swap_group_desc2(fs, (struct ext2_group_desc *) &swabdesc);
+ desc = (struct ext2_group_desc *) &swabdesc;
+
+ swabgroup = ext2fs_swab32(group);
+#else
+ swabgroup = group;
+#endif
+
+ crc1 = ext2fs_crc16(~0, sb->s_uuid, sizeof(fs->super->s_uuid));
+ crc2 = ext2fs_crc16(crc1, &swabgroup, sizeof(swabgroup));
+ crc3 = ext2fs_crc16(crc2, desc, offset);
+ offset += sizeof(desc->bg_checksum); /* skip checksum */
+ /* for checksum of struct ext4_group_desc do the rest...*/
+ if (offset < size)
+ crc3 = ext2fs_crc16(crc3, (char *)desc + offset, size - offset);
+
+ printf("%s: UUID %016Lx%016Lx(%04x), grp %u(%04x): %04x=%04x\n",
+ msg, *(long long *)&sb->s_uuid, *(long long *)&sb->s_uuid[8],
+ crc1, group, crc2, crc3, ext2fs_group_desc_csum(fs, group));
+}
+
+unsigned char sb_uuid[16] = { 0x4f, 0x25, 0xe8, 0xcf, 0xe7, 0x97, 0x48, 0x23,
+ 0xbe, 0xfa, 0xa7, 0x88, 0x4b, 0xae, 0xec, 0xdb };
+
+int main(int argc, char **argv)
+{
+ struct ext2_super_block param;
+ errcode_t retval;
+ ext2_filsys fs;
+ int i;
+ __u16 csum1, csum2, csum_known = 0xd3a4;
+
+ memset(¶m, 0, sizeof(param));
+ ext2fs_blocks_count_set(¶m, 32768);
+
+ retval = ext2fs_initialize("test fs", EXT2_FLAG_64BITS, ¶m,
+ test_io_manager, &fs);
+ if (retval) {
+ com_err("setup", retval,
+ "While initializing filesystem");
+ exit(1);
+ }
+ memcpy(fs->super->s_uuid, sb_uuid, 16);
+ fs->super->s_feature_ro_compat = EXT4_FEATURE_RO_COMPAT_GDT_CSUM;
+
+ for (i=0; i < fs->group_desc_count; i++) {
+ ext2fs_block_bitmap_loc_set(fs, i, 124);
+ ext2fs_inode_bitmap_loc_set(fs, i, 125);
+ ext2fs_inode_table_loc_set(fs, i, 126);
+ ext2fs_bg_free_blocks_count_set(fs, i, 31119);
+ ext2fs_bg_free_inodes_count_set(fs, i, 15701);
+ ext2fs_bg_used_dirs_count_set(fs, i, 2);
+ ext2fs_bg_flags_zap(fs, i);
+ };
+
+ csum1 = ext2fs_group_desc_csum(fs, 0);
+ print_csum("csum0000", fs, 0);
+
+ if (csum1 != csum_known) {
+ printf("checksum for group 0 should be %04x\n", csum_known);
+ exit(1);
+ }
+ csum2 = ext2fs_group_desc_csum(fs, 1);
+ print_csum("csum0001", fs, 1);
+ if (csum1 == csum2) {
+ printf("checksums for different groups shouldn't match\n");
+ exit(1);
+ }
+ csum2 = ext2fs_group_desc_csum(fs, 2);
+ print_csum("csumffff", fs, 2);
+ if (csum1 == csum2) {
+ printf("checksums for different groups shouldn't match\n");
+ exit(1);
+ }
+ ext2fs_bg_checksum_set(fs, 0, csum1);
+ csum2 = ext2fs_group_desc_csum(fs, 0);
+ print_csum("csum_set", fs, 0);
+ if (csum1 != csum2) {
+ printf("checksums should not depend on checksum field\n");
+ exit(1);
+ }
+ if (!ext2fs_group_desc_csum_verify(fs, 0)) {
+ printf("checksums should verify against gd_checksum\n");
+ exit(1);
+ }
+ memset(fs->super->s_uuid, 0x30, sizeof(fs->super->s_uuid));
+ print_csum("new_uuid", fs, 0);
+ if (ext2fs_group_desc_csum_verify(fs, 0) != 0) {
+ printf("checksums for different filesystems shouldn't match\n");
+ exit(1);
+ }
+ csum1 = ext2fs_group_desc_csum(fs, 0);
+ ext2fs_bg_checksum_set(fs, 0, csum1);
+ print_csum("csum_new", fs, 0);
+ ext2fs_bg_free_blocks_count_set(fs, 0, 1);
+ csum2 = ext2fs_group_desc_csum(fs, 0);
+ print_csum("csum_blk", fs, 0);
+ if (csum1 == csum2) {
+ printf("checksums for different data shouldn't match\n");
+ exit(1);
+ }
+
+ return 0;
+}
+#endif
diff --git a/libcustomext2fs/source/dblist.c b/libcustomext2fs/source/dblist.c
new file mode 100644
index 00000000..8ee61b4c
--- /dev/null
+++ b/libcustomext2fs/source/dblist.c
@@ -0,0 +1,414 @@
+/*
+ * dblist.c -- directory block list functions
+ *
+ * Copyright 1997 by Theodore Ts'o
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+#include
+#include
+
+#include "ext2_fs.h"
+#include "ext2fsP.h"
+
+static EXT2_QSORT_TYPE dir_block_cmp(const void *a, const void *b);
+static EXT2_QSORT_TYPE dir_block_cmp2(const void *a, const void *b);
+static EXT2_QSORT_TYPE (*sortfunc32)(const void *a, const void *b);
+
+/*
+ * Returns the number of directories in the filesystem as reported by
+ * the group descriptors. Of course, the group descriptors could be
+ * wrong!
+ */
+errcode_t ext2fs_get_num_dirs(ext2_filsys fs, ext2_ino_t *ret_num_dirs)
+{
+ dgrp_t i;
+ ext2_ino_t num_dirs, max_dirs;
+
+ EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+
+ num_dirs = 0;
+ max_dirs = fs->super->s_inodes_per_group;
+ for (i = 0; i < fs->group_desc_count; i++) {
+ if (ext2fs_bg_used_dirs_count(fs, i) > max_dirs)
+ num_dirs += max_dirs / 8;
+ else
+ num_dirs += ext2fs_bg_used_dirs_count(fs, i);
+ }
+ if (num_dirs > fs->super->s_inodes_count)
+ num_dirs = fs->super->s_inodes_count;
+
+ *ret_num_dirs = num_dirs;
+
+ return 0;
+}
+
+/*
+ * helper function for making a new directory block list (for
+ * initialize and copy).
+ */
+static errcode_t make_dblist(ext2_filsys fs, ext2_ino_t size,
+ ext2_ino_t count,
+ struct ext2_db_entry2 *list,
+ ext2_dblist *ret_dblist)
+{
+ ext2_dblist dblist;
+ errcode_t retval;
+ ext2_ino_t num_dirs;
+ size_t len;
+
+ EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+
+ if ((ret_dblist == 0) && fs->dblist &&
+ (fs->dblist->magic == EXT2_ET_MAGIC_DBLIST))
+ return 0;
+
+ retval = ext2fs_get_mem(sizeof(struct ext2_struct_dblist), &dblist);
+ if (retval)
+ return retval;
+ memset(dblist, 0, sizeof(struct ext2_struct_dblist));
+
+ dblist->magic = EXT2_ET_MAGIC_DBLIST;
+ dblist->fs = fs;
+ if (size)
+ dblist->size = size;
+ else {
+ retval = ext2fs_get_num_dirs(fs, &num_dirs);
+ if (retval)
+ goto cleanup;
+ dblist->size = (num_dirs * 2) + 12;
+ }
+ len = (size_t) sizeof(struct ext2_db_entry2) * dblist->size;
+ dblist->count = count;
+ retval = ext2fs_get_array(dblist->size, sizeof(struct ext2_db_entry2),
+ &dblist->list);
+ if (retval)
+ goto cleanup;
+
+ if (list)
+ memcpy(dblist->list, list, len);
+ else
+ memset(dblist->list, 0, len);
+ if (ret_dblist)
+ *ret_dblist = dblist;
+ else
+ fs->dblist = dblist;
+ return 0;
+cleanup:
+ if (dblist)
+ ext2fs_free_mem(&dblist);
+ return retval;
+}
+
+/*
+ * Initialize a directory block list
+ */
+errcode_t ext2fs_init_dblist(ext2_filsys fs, ext2_dblist *ret_dblist)
+{
+ ext2_dblist dblist;
+ errcode_t retval;
+
+ retval = make_dblist(fs, 0, 0, 0, &dblist);
+ if (retval)
+ return retval;
+
+ dblist->sorted = 1;
+ if (ret_dblist)
+ *ret_dblist = dblist;
+ else
+ fs->dblist = dblist;
+
+ return 0;
+}
+
+/*
+ * Copy a directory block list
+ */
+errcode_t ext2fs_copy_dblist(ext2_dblist src, ext2_dblist *dest)
+{
+ ext2_dblist dblist;
+ errcode_t retval;
+
+ retval = make_dblist(src->fs, src->size, src->count, src->list,
+ &dblist);
+ if (retval)
+ return retval;
+ dblist->sorted = src->sorted;
+ *dest = dblist;
+ return 0;
+}
+
+/*
+ * Close a directory block list
+ *
+ * (moved to closefs.c)
+ */
+
+
+/*
+ * Add a directory block to the directory block list
+ */
+errcode_t ext2fs_add_dir_block2(ext2_dblist dblist, ext2_ino_t ino,
+ blk64_t blk, e2_blkcnt_t blockcnt)
+{
+ struct ext2_db_entry2 *new_entry;
+ errcode_t retval;
+ unsigned long old_size;
+
+ EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST);
+
+ if (dblist->count >= dblist->size) {
+ old_size = dblist->size * sizeof(struct ext2_db_entry2);
+ dblist->size += dblist->size > 200 ? dblist->size / 2 : 100;
+ retval = ext2fs_resize_mem(old_size, (size_t) dblist->size *
+ sizeof(struct ext2_db_entry2),
+ &dblist->list);
+ if (retval) {
+ dblist->size -= 100;
+ return retval;
+ }
+ }
+ new_entry = dblist->list + ( dblist->count++);
+ new_entry->blk = blk;
+ new_entry->ino = ino;
+ new_entry->blockcnt = blockcnt;
+
+ dblist->sorted = 0;
+
+ return 0;
+}
+
+/*
+ * Change the directory block to the directory block list
+ */
+errcode_t ext2fs_set_dir_block2(ext2_dblist dblist, ext2_ino_t ino,
+ blk64_t blk, e2_blkcnt_t blockcnt)
+{
+ dgrp_t i;
+
+ EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST);
+
+ for (i=0; i < dblist->count; i++) {
+ if ((dblist->list[i].ino != ino) ||
+ (dblist->list[i].blockcnt != blockcnt))
+ continue;
+ dblist->list[i].blk = blk;
+ dblist->sorted = 0;
+ return 0;
+ }
+ return EXT2_ET_DB_NOT_FOUND;
+}
+
+void ext2fs_dblist_sort2(ext2_dblist dblist,
+ EXT2_QSORT_TYPE (*sortfunc)(const void *,
+ const void *))
+{
+ if (!sortfunc)
+ sortfunc = dir_block_cmp2;
+ qsort(dblist->list, (size_t) dblist->count,
+ sizeof(struct ext2_db_entry2), sortfunc);
+ dblist->sorted = 1;
+}
+
+/*
+ * This function iterates over the directory block list
+ */
+errcode_t ext2fs_dblist_iterate2(ext2_dblist dblist,
+ int (*func)(ext2_filsys fs,
+ struct ext2_db_entry2 *db_info,
+ void *priv_data),
+ void *priv_data)
+{
+ unsigned long long i;
+ int ret;
+
+ EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST);
+
+ if (!dblist->sorted)
+ ext2fs_dblist_sort2(dblist, 0);
+ for (i=0; i < dblist->count; i++) {
+ ret = (*func)(dblist->fs, &dblist->list[i], priv_data);
+ if (ret & DBLIST_ABORT)
+ return 0;
+ }
+ return 0;
+}
+
+static EXT2_QSORT_TYPE dir_block_cmp2(const void *a, const void *b)
+{
+ const struct ext2_db_entry2 *db_a =
+ (const struct ext2_db_entry2 *) a;
+ const struct ext2_db_entry2 *db_b =
+ (const struct ext2_db_entry2 *) b;
+
+ if (db_a->blk != db_b->blk)
+ return (int) (db_a->blk - db_b->blk);
+
+ if (db_a->ino != db_b->ino)
+ return (int) (db_a->ino - db_b->ino);
+
+ return (db_a->blockcnt - db_b->blockcnt);
+}
+
+blk64_t ext2fs_dblist_count2(ext2_dblist dblist)
+{
+ return dblist->count;
+}
+
+errcode_t ext2fs_dblist_get_last2(ext2_dblist dblist,
+ struct ext2_db_entry2 **entry)
+{
+ EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST);
+
+ if (dblist->count == 0)
+ return EXT2_ET_DBLIST_EMPTY;
+
+ if (entry)
+ *entry = dblist->list + ( dblist->count-1);
+ return 0;
+}
+
+errcode_t ext2fs_dblist_drop_last(ext2_dblist dblist)
+{
+ EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST);
+
+ if (dblist->count == 0)
+ return EXT2_ET_DBLIST_EMPTY;
+
+ dblist->count--;
+ return 0;
+}
+
+/*
+ * Legacy 32-bit versions
+ */
+
+/*
+ * Add a directory block to the directory block list
+ */
+errcode_t ext2fs_add_dir_block(ext2_dblist dblist, ext2_ino_t ino, blk_t blk,
+ int blockcnt)
+{
+ return ext2fs_add_dir_block2(dblist, ino, blk, blockcnt);
+}
+
+/*
+ * Change the directory block to the directory block list
+ */
+errcode_t ext2fs_set_dir_block(ext2_dblist dblist, ext2_ino_t ino, blk_t blk,
+ int blockcnt)
+{
+ return ext2fs_set_dir_block2(dblist, ino, blk, blockcnt);
+}
+
+void ext2fs_dblist_sort(ext2_dblist dblist,
+ EXT2_QSORT_TYPE (*sortfunc)(const void *,
+ const void *))
+{
+ if (sortfunc) {
+ sortfunc32 = sortfunc;
+ sortfunc = dir_block_cmp;
+ } else
+ sortfunc = dir_block_cmp2;
+ qsort(dblist->list, (size_t) dblist->count,
+ sizeof(struct ext2_db_entry2), sortfunc);
+ dblist->sorted = 1;
+}
+
+/*
+ * This function iterates over the directory block list
+ */
+struct iterate_passthrough {
+ int (*func)(ext2_filsys fs,
+ struct ext2_db_entry *db_info,
+ void *priv_data);
+ void *priv_data;
+};
+
+static int passthrough_func(ext2_filsys fs,
+ struct ext2_db_entry2 *db_info,
+ void *priv_data)
+{
+ struct iterate_passthrough *p = priv_data;
+ struct ext2_db_entry db;
+ int ret;
+
+ db.ino = db_info->ino;
+ db.blk = (blk_t) db_info->blk;
+ db.blockcnt = (int) db_info->blockcnt;
+ ret = (p->func)(fs, &db, p->priv_data);
+ db_info->ino = db.ino;
+ db_info->blk = db.blk;
+ db_info->blockcnt = db.blockcnt;
+ return ret;
+}
+
+errcode_t ext2fs_dblist_iterate(ext2_dblist dblist,
+ int (*func)(ext2_filsys fs,
+ struct ext2_db_entry *db_info,
+ void *priv_data),
+ void *priv_data)
+{
+ struct iterate_passthrough pass;
+
+ EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST);
+ pass.func = func;
+ pass.priv_data = priv_data;
+
+ return ext2fs_dblist_iterate2(dblist, passthrough_func, &pass);
+}
+
+static EXT2_QSORT_TYPE dir_block_cmp(const void *a, const void *b)
+{
+ const struct ext2_db_entry2 *db_a =
+ (const struct ext2_db_entry2 *) a;
+ const struct ext2_db_entry2 *db_b =
+ (const struct ext2_db_entry2 *) b;
+
+ struct ext2_db_entry a32, b32;
+
+ a32.ino = db_a->ino; a32.blk = db_a->blk;
+ a32.blockcnt = db_a->blockcnt;
+
+ b32.ino = db_b->ino; b32.blk = db_b->blk;
+ b32.blockcnt = db_b->blockcnt;
+
+ return sortfunc32(&a32, &b32);
+}
+
+int ext2fs_dblist_count(ext2_dblist dblist)
+{
+ return dblist->count;
+}
+
+errcode_t ext2fs_dblist_get_last(ext2_dblist dblist,
+ struct ext2_db_entry **entry)
+{
+ EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST);
+ static struct ext2_db_entry ret_entry;
+ struct ext2_db_entry2 *last;
+
+ if (dblist->count == 0)
+ return EXT2_ET_DBLIST_EMPTY;
+
+ if (!entry)
+ return 0;
+
+ last = dblist->list + dblist->count -1;
+
+ ret_entry.ino = last->ino;
+ ret_entry.blk = last->blk;
+ ret_entry.blockcnt = last->blockcnt;
+ *entry = &ret_entry;
+
+ return 0;
+}
+
diff --git a/libcustomext2fs/source/dblist_dir.c b/libcustomext2fs/source/dblist_dir.c
new file mode 100644
index 00000000..07ed8afa
--- /dev/null
+++ b/libcustomext2fs/source/dblist_dir.c
@@ -0,0 +1,79 @@
+/*
+ * dblist_dir.c --- iterate by directory entry
+ *
+ * Copyright 1997 by Theodore Ts'o
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+#include
+#include
+
+#include "ext2_fs.h"
+#include "ext2fsP.h"
+
+static int db_dir_proc(ext2_filsys fs, struct ext2_db_entry2 *db_info,
+ void *priv_data);
+
+errcode_t ext2fs_dblist_dir_iterate(ext2_dblist dblist,
+ int flags,
+ char *block_buf,
+ int (*func)(ext2_ino_t dir,
+ int entry,
+ struct ext2_dir_entry *dirent,
+ int offset,
+ int blocksize,
+ char *buf,
+ void *priv_data),
+ void *priv_data)
+{
+ errcode_t retval;
+ struct dir_context ctx;
+
+ EXT2_CHECK_MAGIC(dblist, EXT2_ET_MAGIC_DBLIST);
+
+ ctx.dir = 0;
+ ctx.flags = flags;
+ if (block_buf)
+ ctx.buf = block_buf;
+ else {
+ retval = ext2fs_get_mem(dblist->fs->blocksize, &ctx.buf);
+ if (retval)
+ return retval;
+ }
+ ctx.func = func;
+ ctx.priv_data = priv_data;
+ ctx.errcode = 0;
+
+ retval = ext2fs_dblist_iterate2(dblist, db_dir_proc, &ctx);
+
+ if (!block_buf)
+ ext2fs_free_mem(&ctx.buf);
+ if (retval)
+ return retval;
+ return ctx.errcode;
+}
+
+static int db_dir_proc(ext2_filsys fs, struct ext2_db_entry2 *db_info,
+ void *priv_data)
+{
+ struct dir_context *ctx;
+ int ret;
+
+ ctx = (struct dir_context *) priv_data;
+ ctx->dir = db_info->ino;
+ ctx->errcode = 0;
+
+ ret = ext2fs_process_dir_block(fs, &db_info->blk,
+ db_info->blockcnt, 0, 0, priv_data);
+ if ((ret & BLOCK_ABORT) && !ctx->errcode)
+ return DBLIST_ABORT;
+ return 0;
+}
diff --git a/libcustomext2fs/source/dir_iterate.c b/libcustomext2fs/source/dir_iterate.c
new file mode 100644
index 00000000..afe0f1a2
--- /dev/null
+++ b/libcustomext2fs/source/dir_iterate.c
@@ -0,0 +1,268 @@
+/*
+ * dir_iterate.c --- ext2fs directory iteration operations
+ *
+ * Copyright (C) 1993, 1994, 1994, 1995, 1996, 1997 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+#if HAVE_ERRNO_H
+#include
+#endif
+
+#include "ext2_fs.h"
+#include "ext2fsP.h"
+
+#define EXT4_MAX_REC_LEN ((1<<16)-1)
+
+errcode_t ext2fs_get_rec_len(ext2_filsys fs,
+ struct ext2_dir_entry *dirent,
+ unsigned int *rec_len)
+{
+ unsigned int len = dirent->rec_len;
+
+ if (len == EXT4_MAX_REC_LEN || len == 0)
+ *rec_len = fs->blocksize;
+ else
+ *rec_len = (len & 65532) | ((len & 3) << 16);
+ return 0;
+}
+
+errcode_t ext2fs_set_rec_len(ext2_filsys fs,
+ unsigned int len,
+ struct ext2_dir_entry *dirent)
+{
+ if ((len > fs->blocksize) || (fs->blocksize > (1 << 18)) || (len & 3))
+ return EINVAL;
+ if (len < 65536) {
+ dirent->rec_len = len;
+ return 0;
+ }
+ if (len == fs->blocksize) {
+ if (fs->blocksize == 65536)
+ dirent->rec_len = EXT4_MAX_REC_LEN;
+ else
+ dirent->rec_len = 0;
+ } else
+ dirent->rec_len = (len & 65532) | ((len >> 16) & 3);
+ return 0;
+}
+
+/*
+ * This function checks to see whether or not a potential deleted
+ * directory entry looks valid. What we do is check the deleted entry
+ * and each successive entry to make sure that they all look valid and
+ * that the last deleted entry ends at the beginning of the next
+ * undeleted entry. Returns 1 if the deleted entry looks valid, zero
+ * if not valid.
+ */
+static int ext2fs_validate_entry(ext2_filsys fs, char *buf,
+ unsigned int offset,
+ unsigned int final_offset)
+{
+ struct ext2_dir_entry *dirent;
+ unsigned int rec_len;
+#define DIRENT_MIN_LENGTH 12
+
+ while ((offset < final_offset) &&
+ (offset <= fs->blocksize - DIRENT_MIN_LENGTH)) {
+ dirent = (struct ext2_dir_entry *)(buf + offset);
+ if (ext2fs_get_rec_len(fs, dirent, &rec_len))
+ return 0;
+ offset += rec_len;
+ if ((rec_len < 8) ||
+ ((rec_len % 4) != 0) ||
+ ((((unsigned) dirent->name_len & 0xFF)+8) > rec_len))
+ return 0;
+ }
+ return (offset == final_offset);
+}
+
+errcode_t ext2fs_dir_iterate2(ext2_filsys fs,
+ ext2_ino_t dir,
+ int flags,
+ char *block_buf,
+ int (*func)(ext2_ino_t dir,
+ int entry,
+ struct ext2_dir_entry *dirent,
+ int offset,
+ int blocksize,
+ char *buf,
+ void *priv_data),
+ void *priv_data)
+{
+ struct dir_context ctx;
+ errcode_t retval;
+
+ EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+
+ retval = ext2fs_check_directory(fs, dir);
+ if (retval)
+ return retval;
+
+ ctx.dir = dir;
+ ctx.flags = flags;
+ if (block_buf)
+ ctx.buf = block_buf;
+ else {
+ retval = ext2fs_get_mem(fs->blocksize, &ctx.buf);
+ if (retval)
+ return retval;
+ }
+ ctx.func = func;
+ ctx.priv_data = priv_data;
+ ctx.errcode = 0;
+ retval = ext2fs_block_iterate3(fs, dir, BLOCK_FLAG_READ_ONLY, 0,
+ ext2fs_process_dir_block, &ctx);
+ if (!block_buf)
+ ext2fs_free_mem(&ctx.buf);
+ if (retval)
+ return retval;
+ return ctx.errcode;
+}
+
+struct xlate {
+ int (*func)(struct ext2_dir_entry *dirent,
+ int offset,
+ int blocksize,
+ char *buf,
+ void *priv_data);
+ void *real_private;
+};
+
+static int xlate_func(ext2_ino_t dir EXT2FS_ATTR((unused)),
+ int entry EXT2FS_ATTR((unused)),
+ struct ext2_dir_entry *dirent, int offset,
+ int blocksize, char *buf, void *priv_data)
+{
+ struct xlate *xl = (struct xlate *) priv_data;
+
+ return (*xl->func)(dirent, offset, blocksize, buf, xl->real_private);
+}
+
+extern errcode_t ext2fs_dir_iterate(ext2_filsys fs,
+ ext2_ino_t dir,
+ int flags,
+ char *block_buf,
+ int (*func)(struct ext2_dir_entry *dirent,
+ int offset,
+ int blocksize,
+ char *buf,
+ void *priv_data),
+ void *priv_data)
+{
+ struct xlate xl;
+
+ xl.real_private = priv_data;
+ xl.func = func;
+
+ return ext2fs_dir_iterate2(fs, dir, flags, block_buf,
+ xlate_func, &xl);
+}
+
+
+/*
+ * Helper function which is private to this module. Used by
+ * ext2fs_dir_iterate() and ext2fs_dblist_dir_iterate()
+ */
+int ext2fs_process_dir_block(ext2_filsys fs,
+ blk64_t *blocknr,
+ e2_blkcnt_t blockcnt,
+ blk64_t ref_block EXT2FS_ATTR((unused)),
+ int ref_offset EXT2FS_ATTR((unused)),
+ void *priv_data)
+{
+ struct dir_context *ctx = (struct dir_context *) priv_data;
+ unsigned int offset = 0;
+ unsigned int next_real_entry = 0;
+ int ret = 0;
+ int changed = 0;
+ int do_abort = 0;
+ unsigned int rec_len, size;
+ int entry;
+ struct ext2_dir_entry *dirent;
+
+ if (blockcnt < 0)
+ return 0;
+
+ entry = blockcnt ? DIRENT_OTHER_FILE : DIRENT_DOT_FILE;
+
+ ctx->errcode = ext2fs_read_dir_block3(fs, *blocknr, ctx->buf, 0);
+ if (ctx->errcode)
+ return BLOCK_ABORT;
+
+ while (offset < fs->blocksize) {
+ dirent = (struct ext2_dir_entry *) (ctx->buf + offset);
+ if (ext2fs_get_rec_len(fs, dirent, &rec_len))
+ return BLOCK_ABORT;
+ if (((offset + rec_len) > fs->blocksize) ||
+ (rec_len < 8) ||
+ ((rec_len % 4) != 0) ||
+ ((((unsigned) dirent->name_len & 0xFF)+8) > rec_len)) {
+ ctx->errcode = EXT2_ET_DIR_CORRUPTED;
+ return BLOCK_ABORT;
+ }
+ if (!dirent->inode &&
+ !(ctx->flags & DIRENT_FLAG_INCLUDE_EMPTY))
+ goto next;
+
+ ret = (ctx->func)(ctx->dir,
+ (next_real_entry > offset) ?
+ DIRENT_DELETED_FILE : entry,
+ dirent, offset,
+ fs->blocksize, ctx->buf,
+ ctx->priv_data);
+ if (entry < DIRENT_OTHER_FILE)
+ entry++;
+
+ if (ret & DIRENT_CHANGED) {
+ if (ext2fs_get_rec_len(fs, dirent, &rec_len))
+ return BLOCK_ABORT;
+ changed++;
+ }
+ if (ret & DIRENT_ABORT) {
+ do_abort++;
+ break;
+ }
+next:
+ if (next_real_entry == offset)
+ next_real_entry += rec_len;
+
+ if (ctx->flags & DIRENT_FLAG_INCLUDE_REMOVED) {
+ size = ((dirent->name_len & 0xFF) + 11) & ~3;
+
+ if (rec_len != size) {
+ unsigned int final_offset;
+
+ final_offset = offset + rec_len;
+ offset += size;
+ while (offset < final_offset &&
+ !ext2fs_validate_entry(fs, ctx->buf,
+ offset,
+ final_offset))
+ offset += 4;
+ continue;
+ }
+ }
+ offset += rec_len;
+ }
+
+ if (changed) {
+ ctx->errcode = ext2fs_write_dir_block3(fs, *blocknr, ctx->buf,
+ 0);
+ if (ctx->errcode)
+ return BLOCK_ABORT;
+ }
+ if (do_abort)
+ return BLOCK_ABORT;
+ return 0;
+}
+
diff --git a/libcustomext2fs/source/dirblock.c b/libcustomext2fs/source/dirblock.c
new file mode 100644
index 00000000..73e1f0ab
--- /dev/null
+++ b/libcustomext2fs/source/dirblock.c
@@ -0,0 +1,126 @@
+/*
+ * dirblock.c --- directory block routines.
+ *
+ * Copyright (C) 1995, 1996 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+#include
+#include
+
+#include "ext2_fs.h"
+#include "ext2fs.h"
+
+errcode_t ext2fs_read_dir_block3(ext2_filsys fs, blk64_t block,
+ void *buf, int flags EXT2FS_ATTR((unused)))
+{
+ errcode_t retval;
+ char *p, *end;
+ struct ext2_dir_entry *dirent;
+ unsigned int name_len, rec_len;
+
+
+ retval = io_channel_read_blk64(fs->io, block, 1, buf);
+ if (retval)
+ return retval;
+
+ p = (char *) buf;
+ end = (char *) buf + fs->blocksize;
+ while (p < end-8) {
+ dirent = (struct ext2_dir_entry *) p;
+#ifdef WORDS_BIGENDIAN
+ dirent->inode = ext2fs_swab32(dirent->inode);
+ dirent->rec_len = ext2fs_swab16(dirent->rec_len);
+ dirent->name_len = ext2fs_swab16(dirent->name_len);
+#endif
+ name_len = dirent->name_len;
+#ifdef WORDS_BIGENDIAN
+ if (flags & EXT2_DIRBLOCK_V2_STRUCT)
+ dirent->name_len = ext2fs_swab16(dirent->name_len);
+#endif
+ if ((retval = ext2fs_get_rec_len(fs, dirent, &rec_len)) != 0)
+ return retval;
+ if ((rec_len < 8) || (rec_len % 4)) {
+ rec_len = 8;
+ retval = EXT2_ET_DIR_CORRUPTED;
+ } else if (((name_len & 0xFF) + 8) > rec_len)
+ retval = EXT2_ET_DIR_CORRUPTED;
+ p += rec_len;
+ }
+ return retval;
+}
+
+errcode_t ext2fs_read_dir_block2(ext2_filsys fs, blk_t block,
+ void *buf, int flags EXT2FS_ATTR((unused)))
+{
+ return ext2fs_read_dir_block3(fs, block, buf, flags);
+}
+
+errcode_t ext2fs_read_dir_block(ext2_filsys fs, blk_t block,
+ void *buf)
+{
+ return ext2fs_read_dir_block3(fs, block, buf, 0);
+}
+
+
+errcode_t ext2fs_write_dir_block3(ext2_filsys fs, blk64_t block,
+ void *inbuf, int flags EXT2FS_ATTR((unused)))
+{
+#ifdef WORDS_BIGENDIAN
+ errcode_t retval;
+ char *p, *end;
+ char *buf = 0;
+ unsigned int rec_len;
+ struct ext2_dir_entry *dirent;
+
+ retval = ext2fs_get_mem(fs->blocksize, &buf);
+ if (retval)
+ return retval;
+ memcpy(buf, inbuf, fs->blocksize);
+ p = buf;
+ end = buf + fs->blocksize;
+ while (p < end) {
+ dirent = (struct ext2_dir_entry *) p;
+ if ((retval = ext2fs_get_rec_len(fs, dirent, &rec_len)) != 0)
+ return retval;
+ if ((rec_len < 8) ||
+ (rec_len % 4)) {
+ ext2fs_free_mem(&buf);
+ return (EXT2_ET_DIR_CORRUPTED);
+ }
+ p += rec_len;
+ dirent->inode = ext2fs_swab32(dirent->inode);
+ dirent->rec_len = ext2fs_swab16(dirent->rec_len);
+ dirent->name_len = ext2fs_swab16(dirent->name_len);
+
+ if (flags & EXT2_DIRBLOCK_V2_STRUCT)
+ dirent->name_len = ext2fs_swab16(dirent->name_len);
+ }
+ retval = io_channel_write_blk64(fs->io, block, 1, buf);
+ ext2fs_free_mem(&buf);
+ return retval;
+#else
+ return io_channel_write_blk64(fs->io, block, 1, (char *) inbuf);
+#endif
+}
+
+errcode_t ext2fs_write_dir_block2(ext2_filsys fs, blk_t block,
+ void *inbuf, int flags EXT2FS_ATTR((unused)))
+{
+ return ext2fs_write_dir_block3(fs, block, inbuf, flags);
+}
+
+errcode_t ext2fs_write_dir_block(ext2_filsys fs, blk_t block,
+ void *inbuf)
+{
+ return ext2fs_write_dir_block3(fs, block, inbuf, 0);
+}
+
diff --git a/libcustomext2fs/source/dirhash.c b/libcustomext2fs/source/dirhash.c
new file mode 100644
index 00000000..a0697069
--- /dev/null
+++ b/libcustomext2fs/source/dirhash.c
@@ -0,0 +1,257 @@
+/*
+ * dirhash.c -- Calculate the hash of a directory entry
+ *
+ * Copyright (c) 2001 Daniel Phillips
+ *
+ * Copyright (c) 2002 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+
+#include "ext2_fs.h"
+#include "ext2fs.h"
+
+/*
+ * Keyed 32-bit hash function using TEA in a Davis-Meyer function
+ * H0 = Key
+ * Hi = E Mi(Hi-1) + Hi-1
+ *
+ * (see Applied Cryptography, 2nd edition, p448).
+ *
+ * Jeremy Fitzhardinge 1998
+ *
+ * This code is made available under the terms of the GPL
+ */
+#define DELTA 0x9E3779B9
+
+static void TEA_transform(__u32 buf[4], __u32 const in[])
+{
+ __u32 sum = 0;
+ __u32 b0 = buf[0], b1 = buf[1];
+ __u32 a = in[0], b = in[1], c = in[2], d = in[3];
+ int n = 16;
+
+ do {
+ sum += DELTA;
+ b0 += ((b1 << 4)+a) ^ (b1+sum) ^ ((b1 >> 5)+b);
+ b1 += ((b0 << 4)+c) ^ (b0+sum) ^ ((b0 >> 5)+d);
+ } while(--n);
+
+ buf[0] += b0;
+ buf[1] += b1;
+}
+
+/* F, G and H are basic MD4 functions: selection, majority, parity */
+#define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z))))
+#define G(x, y, z) (((x) & (y)) + (((x) ^ (y)) & (z)))
+#define H(x, y, z) ((x) ^ (y) ^ (z))
+
+/*
+ * The generic round function. The application is so specific that
+ * we don't bother protecting all the arguments with parens, as is generally
+ * good macro practice, in favor of extra legibility.
+ * Rotation is separate from addition to prevent recomputation
+ */
+#define ROUND(f, a, b, c, d, x, s) \
+ (a += f(b, c, d) + x, a = (a << s) | (a >> (32-s)))
+#define K1 0
+#define K2 013240474631UL
+#define K3 015666365641UL
+
+/*
+ * Basic cut-down MD4 transform. Returns only 32 bits of result.
+ */
+static void halfMD4Transform (__u32 buf[4], __u32 const in[])
+{
+ __u32 a = buf[0], b = buf[1], c = buf[2], d = buf[3];
+
+ /* Round 1 */
+ ROUND(F, a, b, c, d, in[0] + K1, 3);
+ ROUND(F, d, a, b, c, in[1] + K1, 7);
+ ROUND(F, c, d, a, b, in[2] + K1, 11);
+ ROUND(F, b, c, d, a, in[3] + K1, 19);
+ ROUND(F, a, b, c, d, in[4] + K1, 3);
+ ROUND(F, d, a, b, c, in[5] + K1, 7);
+ ROUND(F, c, d, a, b, in[6] + K1, 11);
+ ROUND(F, b, c, d, a, in[7] + K1, 19);
+
+ /* Round 2 */
+ ROUND(G, a, b, c, d, in[1] + K2, 3);
+ ROUND(G, d, a, b, c, in[3] + K2, 5);
+ ROUND(G, c, d, a, b, in[5] + K2, 9);
+ ROUND(G, b, c, d, a, in[7] + K2, 13);
+ ROUND(G, a, b, c, d, in[0] + K2, 3);
+ ROUND(G, d, a, b, c, in[2] + K2, 5);
+ ROUND(G, c, d, a, b, in[4] + K2, 9);
+ ROUND(G, b, c, d, a, in[6] + K2, 13);
+
+ /* Round 3 */
+ ROUND(H, a, b, c, d, in[3] + K3, 3);
+ ROUND(H, d, a, b, c, in[7] + K3, 9);
+ ROUND(H, c, d, a, b, in[2] + K3, 11);
+ ROUND(H, b, c, d, a, in[6] + K3, 15);
+ ROUND(H, a, b, c, d, in[1] + K3, 3);
+ ROUND(H, d, a, b, c, in[5] + K3, 9);
+ ROUND(H, c, d, a, b, in[0] + K3, 11);
+ ROUND(H, b, c, d, a, in[4] + K3, 15);
+
+ buf[0] += a;
+ buf[1] += b;
+ buf[2] += c;
+ buf[3] += d;
+}
+
+#undef ROUND
+#undef F
+#undef G
+#undef H
+#undef K1
+#undef K2
+#undef K3
+
+/* The old legacy hash */
+static ext2_dirhash_t dx_hack_hash (const char *name, int len,
+ int unsigned_flag)
+{
+ __u32 hash, hash0 = 0x12a3fe2d, hash1 = 0x37abe8f9;
+ const unsigned char *ucp = (const unsigned char *) name;
+ const signed char *scp = (const signed char *) name;
+ int c;
+
+ while (len--) {
+ if (unsigned_flag)
+ c = (int) *ucp++;
+ else
+ c = (int) *scp++;
+ hash = hash1 + (hash0 ^ (c * 7152373));
+
+ if (hash & 0x80000000) hash -= 0x7fffffff;
+ hash1 = hash0;
+ hash0 = hash;
+ }
+ return (hash0 << 1);
+}
+
+static void str2hashbuf(const char *msg, int len, __u32 *buf, int num,
+ int unsigned_flag)
+{
+ __u32 pad, val;
+ int i, c;
+ const unsigned char *ucp = (const unsigned char *) msg;
+ const signed char *scp = (const signed char *) msg;
+
+ pad = (__u32)len | ((__u32)len << 8);
+ pad |= pad << 16;
+
+ val = pad;
+ if (len > num*4)
+ len = num * 4;
+ for (i=0; i < len; i++) {
+ if ((i % 4) == 0)
+ val = pad;
+ if (unsigned_flag)
+ c = (int) ucp[i];
+ else
+ c = (int) scp[i];
+
+ val = c + (val << 8);
+ if ((i % 4) == 3) {
+ *buf++ = val;
+ val = pad;
+ num--;
+ }
+ }
+ if (--num >= 0)
+ *buf++ = val;
+ while (--num >= 0)
+ *buf++ = pad;
+}
+
+/*
+ * Returns the hash of a filename. If len is 0 and name is NULL, then
+ * this function can be used to test whether or not a hash version is
+ * supported.
+ *
+ * The seed is an 4 longword (32 bits) "secret" which can be used to
+ * uniquify a hash. If the seed is all zero's, then some default seed
+ * may be used.
+ *
+ * A particular hash version specifies whether or not the seed is
+ * represented, and whether or not the returned hash is 32 bits or 64
+ * bits. 32 bit hashes will return 0 for the minor hash.
+ */
+errcode_t ext2fs_dirhash(int version, const char *name, int len,
+ const __u32 *seed,
+ ext2_dirhash_t *ret_hash,
+ ext2_dirhash_t *ret_minor_hash)
+{
+ __u32 hash;
+ __u32 minor_hash = 0;
+ const char *p;
+ int i;
+ __u32 in[8], buf[4];
+ int unsigned_flag = 0;
+
+ /* Initialize the default seed for the hash checksum functions */
+ buf[0] = 0x67452301;
+ buf[1] = 0xefcdab89;
+ buf[2] = 0x98badcfe;
+ buf[3] = 0x10325476;
+
+ /* Check to see if the seed is all zero's */
+ if (seed) {
+ for (i=0; i < 4; i++) {
+ if (seed[i])
+ break;
+ }
+ if (i < 4)
+ memcpy(buf, seed, sizeof(buf));
+ }
+
+ switch (version) {
+ case EXT2_HASH_LEGACY_UNSIGNED:
+ unsigned_flag++;
+ case EXT2_HASH_LEGACY:
+ hash = dx_hack_hash(name, len, unsigned_flag);
+ break;
+ case EXT2_HASH_HALF_MD4_UNSIGNED:
+ unsigned_flag++;
+ case EXT2_HASH_HALF_MD4:
+ p = name;
+ while (len > 0) {
+ str2hashbuf(p, len, in, 8, unsigned_flag);
+ halfMD4Transform(buf, in);
+ len -= 32;
+ p += 32;
+ }
+ minor_hash = buf[2];
+ hash = buf[1];
+ break;
+ case EXT2_HASH_TEA_UNSIGNED:
+ unsigned_flag++;
+ case EXT2_HASH_TEA:
+ p = name;
+ while (len > 0) {
+ str2hashbuf(p, len, in, 4, unsigned_flag);
+ TEA_transform(buf, in);
+ len -= 16;
+ p += 16;
+ }
+ hash = buf[0];
+ minor_hash = buf[1];
+ break;
+ default:
+ *ret_hash = 0;
+ return EXT2_ET_DIRHASH_UNSUPP;
+ }
+ *ret_hash = hash & ~1;
+ if (ret_minor_hash)
+ *ret_minor_hash = minor_hash;
+ return 0;
+}
diff --git a/libcustomext2fs/source/disc_cache.c b/libcustomext2fs/source/disc_cache.c
new file mode 100644
index 00000000..2a9ad05c
--- /dev/null
+++ b/libcustomext2fs/source/disc_cache.c
@@ -0,0 +1,374 @@
+/*
+ cache.c
+ The cache is not visible to the user. It should be flushed
+ when any file is closed or changes are made to the filesystem.
+
+ This cache implements a least-used-page replacement policy. This will
+ distribute sectors evenly over the pages, so if less than the maximum
+ pages are used at once, they should all eventually remain in the cache.
+ This also has the benefit of throwing out old sectors, so as not to keep
+ too many stale pages around.
+
+ Copyright (c) 2006 Michael "Chishm" Chisholm
+ Copyright (c) 2009 shareese, rodries
+ Copyright (c) 2010 Dimok
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ 3. The name of the author may not be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include
+#include
+#include
+
+#include "disc_cache.h"
+#include "bit_ops.h"
+#include "mem_allocate.h"
+
+#define CACHE_FREE UINT_MAX
+
+CACHE* cache_constructor (unsigned int numberOfPages, unsigned int sectorsPerPage, const DISC_INTERFACE* discInterface, sec_t endOfPartition, sec_t sectorSize) {
+ CACHE* cache;
+ unsigned int i;
+ CACHE_ENTRY* cacheEntries;
+
+ if(numberOfPages==0 || sectorsPerPage==0) return NULL;
+
+ if (numberOfPages < 4) {
+ numberOfPages = 4;
+ }
+
+ if (sectorsPerPage < 32) {
+ sectorsPerPage = 32;
+ }
+
+ cache = (CACHE*) mem_alloc (sizeof(CACHE));
+ if (cache == NULL) {
+ return NULL;
+ }
+
+ cache->disc = discInterface;
+ cache->endOfPartition = endOfPartition;
+ cache->numberOfPages = numberOfPages;
+ cache->sectorsPerPage = sectorsPerPage;
+ cache->sectorSize = sectorSize;
+
+
+ cacheEntries = (CACHE_ENTRY*) mem_alloc ( sizeof(CACHE_ENTRY) * numberOfPages);
+ if (cacheEntries == NULL) {
+ mem_free (cache);
+ return NULL;
+ }
+
+ for (i = 0; i < numberOfPages; i++) {
+ cacheEntries[i].sector = CACHE_FREE;
+ cacheEntries[i].count = 0;
+ cacheEntries[i].last_access = 0;
+ cacheEntries[i].dirty = false;
+ cacheEntries[i].cache = (uint8_t*) mem_align (32, sectorsPerPage * cache->sectorSize);
+ }
+
+ cache->cacheEntries = cacheEntries;
+
+ return cache;
+}
+
+void cache_destructor (CACHE* cache) {
+ unsigned int i;
+
+ if(cache==NULL) return;
+
+ // Clear out cache before destroying it
+ cache_flush(cache);
+
+ // Free memory in reverse allocation order
+ for (i = 0; i < cache->numberOfPages; i++) {
+ mem_free (cache->cacheEntries[i].cache);
+ }
+ mem_free (cache->cacheEntries);
+ mem_free (cache);
+}
+
+static u32 accessCounter = 0;
+
+static u32 accessTime(){
+ accessCounter++;
+ return accessCounter;
+}
+
+static CACHE_ENTRY* cache_getPage(CACHE *cache,sec_t sector)
+{
+ unsigned int i;
+ CACHE_ENTRY* cacheEntries = cache->cacheEntries;
+ unsigned int numberOfPages = cache->numberOfPages;
+ unsigned int sectorsPerPage = cache->sectorsPerPage;
+
+ bool foundFree = false;
+ unsigned int oldUsed = 0;
+ unsigned int oldAccess = UINT_MAX;
+
+ for(i=0;i=cacheEntries[i].sector && sector<(cacheEntries[i].sector + cacheEntries[i].count)) {
+ cacheEntries[i].last_access = accessTime();
+ return &(cacheEntries[i]);
+ }
+
+ if(foundFree==false && (cacheEntries[i].sector==CACHE_FREE || cacheEntries[i].last_accessdisc->writeSectors(cacheEntries[oldUsed].sector,cacheEntries[oldUsed].count,cacheEntries[oldUsed].cache)) return NULL;
+ cacheEntries[oldUsed].dirty = false;
+ }
+ sector = (sector/sectorsPerPage)*sectorsPerPage; // align base sector to page size
+ sec_t next_page = sector + sectorsPerPage;
+ if(next_page > cache->endOfPartition) next_page = cache->endOfPartition;
+
+ if(!cache->disc->readSectors(sector,next_page-sector,cacheEntries[oldUsed].cache)) return NULL;
+
+ cacheEntries[oldUsed].sector = sector;
+ cacheEntries[oldUsed].count = next_page-sector;
+ cacheEntries[oldUsed].last_access = accessTime();
+
+ return &(cacheEntries[oldUsed]);
+}
+
+static CACHE_ENTRY* cache_findPage(CACHE *cache, sec_t sector, sec_t count) {
+
+ unsigned int i;
+ CACHE_ENTRY* cacheEntries = cache->cacheEntries;
+ unsigned int numberOfPages = cache->numberOfPages;
+ CACHE_ENTRY *entry = NULL;
+ sec_t lowest = UINT_MAX;
+
+ for(i=0;i cacheEntries[i].sector) {
+ intersect = sector - cacheEntries[i].sector < cacheEntries[i].count;
+ } else {
+ intersect = cacheEntries[i].sector - sector < count;
+ }
+
+ if ( intersect && (cacheEntries[i].sector < lowest)) {
+ lowest = cacheEntries[i].sector;
+ entry = &cacheEntries[i];
+ }
+ }
+ }
+
+ return entry;
+}
+
+bool cache_readSectors(CACHE *cache,sec_t sector,sec_t numSectors,void *buffer)
+{
+ sec_t sec;
+ sec_t secs_to_read;
+ CACHE_ENTRY *entry;
+ uint8_t *dest = buffer;
+
+ while(numSectors>0) {
+ entry = cache_getPage(cache,sector);
+ if(entry==NULL) return false;
+
+ sec = sector - entry->sector;
+ secs_to_read = entry->count - sec;
+ if(secs_to_read>numSectors) secs_to_read = numSectors;
+
+ memcpy(dest,entry->cache + (sec*cache->sectorSize),(secs_to_read*cache->sectorSize));
+
+ dest += (secs_to_read*cache->sectorSize);
+ sector += secs_to_read;
+ numSectors -= secs_to_read;
+ }
+
+ return true;
+}
+
+/*
+Reads some data from a cache page, determined by the sector number
+*/
+
+bool cache_readPartialSector (CACHE* cache, void* buffer, sec_t sector, unsigned int offset, size_t size)
+{
+ sec_t sec;
+ CACHE_ENTRY *entry;
+
+ if (offset + size > cache->sectorSize) return false;
+
+ entry = cache_getPage(cache,sector);
+ if(entry==NULL) return false;
+
+ sec = sector - entry->sector;
+ memcpy(buffer,entry->cache + ((sec*cache->sectorSize) + offset),size);
+
+ return true;
+}
+
+bool cache_readLittleEndianValue (CACHE* cache, uint32_t *value, sec_t sector, unsigned int offset, int num_bytes) {
+ uint8_t buf[4];
+ if (!cache_readPartialSector(cache, buf, sector, offset, num_bytes)) return false;
+
+ switch(num_bytes) {
+ case 1: *value = buf[0]; break;
+ case 2: *value = u8array_to_u16(buf,0); break;
+ case 4: *value = u8array_to_u32(buf,0); break;
+ default: return false;
+ }
+ return true;
+}
+
+/*
+Writes some data to a cache page, making sure it is loaded into memory first.
+*/
+
+bool cache_writePartialSector (CACHE* cache, const void* buffer, sec_t sector, unsigned int offset, size_t size)
+{
+ sec_t sec;
+ CACHE_ENTRY *entry;
+
+ if (offset + size > cache->sectorSize) return false;
+
+ entry = cache_getPage(cache,sector);
+ if(entry==NULL) return false;
+
+ sec = sector - entry->sector;
+ memcpy(entry->cache + ((sec*cache->sectorSize) + offset),buffer,size);
+
+ entry->dirty = true;
+ return true;
+}
+
+bool cache_writeLittleEndianValue (CACHE* cache, const uint32_t value, sec_t sector, unsigned int offset, int size) {
+ uint8_t buf[4] = {0, 0, 0, 0};
+
+ switch(size) {
+ case 1: buf[0] = value; break;
+ case 2: u16_to_u8array(buf, 0, value); break;
+ case 4: u32_to_u8array(buf, 0, value); break;
+ default: return false;
+ }
+
+ return cache_writePartialSector(cache, buf, sector, offset, size);
+}
+
+/*
+Writes some data to a cache page, zeroing out the page first
+*/
+
+bool cache_eraseWritePartialSector (CACHE* cache, const void* buffer, sec_t sector, unsigned int offset, size_t size)
+{
+ sec_t sec;
+ CACHE_ENTRY *entry;
+
+ if (offset + size > cache->sectorSize) return false;
+
+ entry = cache_getPage(cache,sector);
+ if(entry==NULL) return false;
+
+ sec = sector - entry->sector;
+ memset(entry->cache + (sec*cache->sectorSize),0,cache->sectorSize);
+ memcpy(entry->cache + ((sec*cache->sectorSize) + offset),buffer,size);
+
+ entry->dirty = true;
+ return true;
+}
+
+bool cache_writeSectors (CACHE* cache, sec_t sector, sec_t numSectors, const void* buffer)
+{
+ sec_t sec;
+ sec_t secs_to_write;
+ CACHE_ENTRY* entry;
+ const uint8_t *src = buffer;
+
+ while(numSectors>0)
+ {
+ entry = cache_findPage(cache,sector,numSectors);
+
+ if(entry!=NULL) {
+
+ if ( entry->sector > sector) {
+
+ secs_to_write = entry->sector - sector;
+
+ cache->disc->writeSectors(sector,secs_to_write,src);
+ src += (secs_to_write*cache->sectorSize);
+ sector += secs_to_write;
+ numSectors -= secs_to_write;
+ }
+
+ sec = sector - entry->sector;
+ secs_to_write = entry->count - sec;
+
+ if(secs_to_write>numSectors) secs_to_write = numSectors;
+
+ memcpy(entry->cache + (sec*cache->sectorSize),src,(secs_to_write*cache->sectorSize));
+
+ src += (secs_to_write*cache->sectorSize);
+ sector += secs_to_write;
+ numSectors -= secs_to_write;
+
+ entry->dirty = true;
+
+ } else {
+ cache->disc->writeSectors(sector,numSectors,src);
+ numSectors=0;
+ }
+ }
+ return true;
+}
+
+/*
+Flushes all dirty pages to disc, clearing the dirty flag.
+*/
+bool cache_flush (CACHE* cache) {
+ unsigned int i;
+ if(cache==NULL) return true;
+
+ for (i = 0; i < cache->numberOfPages; i++) {
+ if (cache->cacheEntries[i].dirty) {
+ if (!cache->disc->writeSectors (cache->cacheEntries[i].sector, cache->cacheEntries[i].count, cache->cacheEntries[i].cache)) {
+ return false;
+ }
+ }
+ cache->cacheEntries[i].dirty = false;
+ }
+
+ return true;
+}
+
+void cache_invalidate (CACHE* cache) {
+ unsigned int i;
+ if(cache==NULL)
+ return;
+
+ cache_flush(cache);
+ for (i = 0; i < cache->numberOfPages; i++) {
+ cache->cacheEntries[i].sector = CACHE_FREE;
+ cache->cacheEntries[i].last_access = 0;
+ cache->cacheEntries[i].count = 0;
+ cache->cacheEntries[i].dirty = false;
+ }
+}
diff --git a/libcustomext2fs/source/disc_cache.h b/libcustomext2fs/source/disc_cache.h
new file mode 100644
index 00000000..1d34c8c0
--- /dev/null
+++ b/libcustomext2fs/source/disc_cache.h
@@ -0,0 +1,118 @@
+/*
+ CACHE.h
+ The CACHE is not visible to the user. It should be flushed
+ when any file is closed or changes are made to the filesystem.
+
+ This CACHE implements a least-used-page replacement policy. This will
+ distribute sectors evenly over the pages, so if less than the maximum
+ pages are used at once, they should all eventually remain in the CACHE.
+ This also has the benefit of throwing out old sectors, so as not to keep
+ too many stale pages around.
+
+ Copyright (c) 2006 Michael "Chishm" Chisholm
+ Copyright (c) 2009 shareese, rodries
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+ 3. The name of the author may not be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef _DISC_CACHE_H
+#define _DISC_CACHE_H
+
+#include
+#include
+#include
+#include
+#include
+
+typedef struct
+{
+ sec_t sector;
+ unsigned int count;
+ u64 last_access;
+ bool dirty;
+ u8* cache;
+} CACHE_ENTRY;
+
+typedef struct
+{
+ const DISC_INTERFACE* disc;
+ sec_t endOfPartition;
+ unsigned int numberOfPages;
+ unsigned int sectorsPerPage;
+ sec_t sectorSize;
+ CACHE_ENTRY* cacheEntries;
+} CACHE;
+
+/*
+Read data from a sector in the CACHE
+If the sector is not in the CACHE, it will be swapped in
+offset is the position to start reading from
+size is the amount of data to read
+Precondition: offset + size <= BYTES_PER_READ
+*/
+/*
+Write data to a sector in the CACHE
+If the sector is not in the CACHE, it will be swapped in.
+When the sector is swapped out, the data will be written to the disc
+offset is the position to start writing to
+size is the amount of data to write
+Precondition: offset + size <= BYTES_PER_READ
+*/
+
+/*
+Write data to a sector in the CACHE, zeroing the sector first
+If the sector is not in the CACHE, it will be swapped in.
+When the sector is swapped out, the data will be written to the disc
+offset is the position to start writing to
+size is the amount of data to write
+Precondition: offset + size <= BYTES_PER_READ
+*/
+
+/*
+Read several sectors from the CACHE
+*/
+bool cache_readSectors (CACHE* DISC_CACHE, sec_t sector, sec_t numSectors, void* buffer);
+
+/*
+Read a full sector from the CACHE
+*/
+/*
+Write a full sector to the CACHE
+*/
+bool cache_writeSectors (CACHE* DISC_CACHE, sec_t sector, sec_t numSectors, const void* buffer);
+
+/*
+Write any dirty sectors back to disc and clear out the contents of the CACHE
+*/
+bool cache_flush (CACHE* DISC_CACHE);
+
+/*
+Clear out the contents of the CACHE without writing any dirty sectors first
+*/
+void cache_invalidate (CACHE* DISC_CACHE);
+
+CACHE* cache_constructor (unsigned int numberOfPages, unsigned int sectorsPerPage, const DISC_INTERFACE* discInterface, sec_t endOfPartition, sec_t sectorSize);
+
+void cache_destructor (CACHE* DISC_CACHE);
+
+#endif // _CACHE_H
+
diff --git a/libcustomext2fs/source/dupfs.c b/libcustomext2fs/source/dupfs.c
new file mode 100644
index 00000000..a9e2a976
--- /dev/null
+++ b/libcustomext2fs/source/dupfs.c
@@ -0,0 +1,96 @@
+/*
+ * dupfs.c --- duplicate a ext2 filesystem handle
+ *
+ * Copyright (C) 1997, 1998, 2001, 2003, 2005 by Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+#include
+#include
+
+#include "ext2_fs.h"
+#include "ext2fsP.h"
+
+errcode_t ext2fs_dup_handle(ext2_filsys src, ext2_filsys *dest)
+{
+ ext2_filsys fs;
+ errcode_t retval;
+
+ EXT2_CHECK_MAGIC(src, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+
+ retval = ext2fs_get_mem(sizeof(struct struct_ext2_filsys), &fs);
+ if (retval)
+ return retval;
+
+ *fs = *src;
+ fs->device_name = 0;
+ fs->super = 0;
+ fs->orig_super = 0;
+ fs->group_desc = 0;
+ fs->inode_map = 0;
+ fs->block_map = 0;
+ fs->badblocks = 0;
+ fs->dblist = 0;
+
+ io_channel_bumpcount(fs->io);
+ if (fs->icache)
+ fs->icache->refcount++;
+
+ retval = ext2fs_get_mem(strlen(src->device_name)+1, &fs->device_name);
+ if (retval)
+ goto errout;
+ strcpy(fs->device_name, src->device_name);
+
+ retval = ext2fs_get_mem(SUPERBLOCK_SIZE, &fs->super);
+ if (retval)
+ goto errout;
+ memcpy(fs->super, src->super, SUPERBLOCK_SIZE);
+
+ retval = ext2fs_get_mem(SUPERBLOCK_SIZE, &fs->orig_super);
+ if (retval)
+ goto errout;
+ memcpy(fs->orig_super, src->orig_super, SUPERBLOCK_SIZE);
+
+ retval = ext2fs_get_array(fs->desc_blocks, fs->blocksize,
+ &fs->group_desc);
+ if (retval)
+ goto errout;
+ memcpy(fs->group_desc, src->group_desc,
+ (size_t) fs->desc_blocks * fs->blocksize);
+
+ if (src->inode_map) {
+ retval = ext2fs_copy_bitmap(src->inode_map, &fs->inode_map);
+ if (retval)
+ goto errout;
+ }
+ if (src->block_map) {
+ retval = ext2fs_copy_bitmap(src->block_map, &fs->block_map);
+ if (retval)
+ goto errout;
+ }
+ if (src->badblocks) {
+ retval = ext2fs_badblocks_copy(src->badblocks, &fs->badblocks);
+ if (retval)
+ goto errout;
+ }
+ if (src->dblist) {
+ retval = ext2fs_copy_dblist(src->dblist, &fs->dblist);
+ if (retval)
+ goto errout;
+ }
+ *dest = fs;
+ return 0;
+errout:
+ ext2fs_free(fs);
+ return retval;
+
+}
+
diff --git a/libcustomext2fs/source/e2image.h b/libcustomext2fs/source/e2image.h
new file mode 100644
index 00000000..4de2c8d9
--- /dev/null
+++ b/libcustomext2fs/source/e2image.h
@@ -0,0 +1,51 @@
+/*
+ * e2image.h --- header file describing the ext2 image format
+ *
+ * Copyright (C) 2000 Theodore Ts'o.
+ *
+ * Note: this uses the POSIX IO interfaces, unlike most of the other
+ * functions in this library. So sue me.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+
+struct ext2_image_hdr {
+ __u32 magic_number; /* This must be EXT2_ET_MAGIC_E2IMAGE */
+ char magic_descriptor[16]; /* "Ext2 Image 1.0", w/ null padding */
+ char fs_hostname[64];/* Hostname of machine of image */
+ char fs_netaddr[32]; /* Network address */
+ __u32 fs_netaddr_type;/* 0 = IPV4, 1 = IPV6, etc. */
+ __u32 fs_device; /* Device number of image */
+ char fs_device_name[64]; /* Device name */
+ char fs_uuid[16]; /* UUID of filesystem */
+ __u32 fs_blocksize; /* Block size of the filesystem */
+ __u32 fs_reserved[8];
+
+ __u32 image_device; /* Device number of image file */
+ __u32 image_inode; /* Inode number of image file */
+ __u32 image_time; /* Time of image creation */
+ __u32 image_reserved[8];
+
+ __u32 offset_super; /* Byte offset of the sb and descriptors */
+ __u32 offset_inode; /* Byte offset of the inode table */
+ __u32 offset_inodemap; /* Byte offset of the inode bitmaps */
+ __u32 offset_blockmap; /* Byte offset of the inode bitmaps */
+ __u32 offset_reserved[8];
+};
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/libcustomext2fs/source/e2p/e2p.h b/libcustomext2fs/source/e2p/e2p.h
new file mode 100644
index 00000000..319c9bcd
--- /dev/null
+++ b/libcustomext2fs/source/e2p/e2p.h
@@ -0,0 +1,74 @@
+/*
+ * e2p.h --- header file for the e2p library
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include /* Needed by dirent.h on netbsd */
+#include
+#include
+
+#include "../ext2_fs.h"
+
+#define E2P_FEATURE_COMPAT 0
+#define E2P_FEATURE_INCOMPAT 1
+#define E2P_FEATURE_RO_INCOMPAT 2
+#define E2P_FEATURE_TYPE_MASK 0x03
+
+#define E2P_FEATURE_NEGATE_FLAG 0x80
+
+#define E2P_FS_FEATURE 0
+#define E2P_JOURNAL_FEATURE 1
+
+/* `options' for print_flags() */
+
+#define PFOPT_LONG 1 /* Must be 1 for compatibility with `int long_format'. */
+
+
+int fgetflags (const char * name, unsigned long * flags);
+int fgetversion (const char * name, unsigned long * version);
+int fsetflags (const char * name, unsigned long flags);
+int fsetversion (const char * name, unsigned long version);
+int getflags (int fd, unsigned long * flags);
+int getversion (int fd, unsigned long * version);
+int iterate_on_dir (const char * dir_name,
+ int (*func) (const char *, struct dirent *, void *),
+ void * private);
+void list_super(struct ext2_super_block * s);
+void list_super2(struct ext2_super_block * s, FILE *f);
+void print_fs_errors (FILE * f, unsigned short errors);
+void print_flags (FILE * f, unsigned long flags, unsigned options);
+void print_fs_state (FILE * f, unsigned short state);
+int setflags (int fd, unsigned long flags);
+int setversion (int fd, unsigned long version);
+
+const char *e2p_feature2string(int compat, unsigned int mask);
+const char *e2p_jrnl_feature2string(int compat, unsigned int mask);
+int e2p_string2feature(char *string, int *compat, unsigned int *mask);
+int e2p_jrnl_string2feature(char *string, int *compat_type, unsigned int *mask);
+int e2p_edit_feature(const char *str, __u32 *compat_array, __u32 *ok_array);
+int e2p_edit_feature2(const char *str, __u32 *compat_array, __u32 *ok_array,
+ __u32 *clear_ok_array, int *type_err,
+ unsigned int *mask_err);
+
+int e2p_is_null_uuid(void *uu);
+void e2p_uuid_to_str(void *uu, char *out);
+const char *e2p_uuid2str(void *uu);
+
+const char *e2p_hash2string(int num);
+int e2p_string2hash(char *string);
+
+const char *e2p_mntopt2string(unsigned int mask);
+int e2p_string2mntopt(char *string, unsigned int *mask);
+int e2p_edit_mntopts(const char *str, __u32 *mntopts, __u32 ok);
+
+unsigned long parse_num_blocks(const char *arg, int log_block_size);
+unsigned long long parse_num_blocks2(const char *arg, int log_block_size);
+
+char *e2p_os2string(int os_type);
+int e2p_string2os(char *str);
+
+unsigned int e2p_percent(int percent, unsigned int base);
diff --git a/libcustomext2fs/source/e2p/feature.c b/libcustomext2fs/source/e2p/feature.c
new file mode 100644
index 00000000..4806be50
--- /dev/null
+++ b/libcustomext2fs/source/e2p/feature.c
@@ -0,0 +1,385 @@
+/*
+ * feature.c --- convert between features and strings
+ *
+ * Copyright (C) 1999 Theodore Ts'o
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+#include
+#include
+#include
+
+#include "e2p.h"
+#include
+#include
+
+struct feature {
+ int compat;
+ unsigned int mask;
+ const char *string;
+};
+
+static struct feature feature_list[] = {
+ { E2P_FEATURE_COMPAT, EXT2_FEATURE_COMPAT_DIR_PREALLOC,
+ "dir_prealloc" },
+ { E2P_FEATURE_COMPAT, EXT3_FEATURE_COMPAT_HAS_JOURNAL,
+ "has_journal" },
+ { E2P_FEATURE_COMPAT, EXT2_FEATURE_COMPAT_IMAGIC_INODES,
+ "imagic_inodes" },
+ { E2P_FEATURE_COMPAT, EXT2_FEATURE_COMPAT_EXT_ATTR,
+ "ext_attr" },
+ { E2P_FEATURE_COMPAT, EXT2_FEATURE_COMPAT_DIR_INDEX,
+ "dir_index" },
+ { E2P_FEATURE_COMPAT, EXT2_FEATURE_COMPAT_RESIZE_INODE,
+ "resize_inode" },
+ { E2P_FEATURE_COMPAT, EXT2_FEATURE_COMPAT_LAZY_BG,
+ "lazy_bg" },
+
+ { E2P_FEATURE_RO_INCOMPAT, EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER,
+ "sparse_super" },
+ { E2P_FEATURE_RO_INCOMPAT, EXT2_FEATURE_RO_COMPAT_LARGE_FILE,
+ "large_file" },
+ { E2P_FEATURE_RO_INCOMPAT, EXT4_FEATURE_RO_COMPAT_HUGE_FILE,
+ "huge_file" },
+ { E2P_FEATURE_RO_INCOMPAT, EXT4_FEATURE_RO_COMPAT_GDT_CSUM,
+ "uninit_bg" },
+ { E2P_FEATURE_RO_INCOMPAT, EXT4_FEATURE_RO_COMPAT_GDT_CSUM,
+ "uninit_groups" },
+ { E2P_FEATURE_RO_INCOMPAT, EXT4_FEATURE_RO_COMPAT_DIR_NLINK,
+ "dir_nlink" },
+ { E2P_FEATURE_RO_INCOMPAT, EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE,
+ "extra_isize" },
+
+ { E2P_FEATURE_INCOMPAT, EXT2_FEATURE_INCOMPAT_COMPRESSION,
+ "compression" },
+ { E2P_FEATURE_INCOMPAT, EXT2_FEATURE_INCOMPAT_FILETYPE,
+ "filetype" },
+ { E2P_FEATURE_INCOMPAT, EXT3_FEATURE_INCOMPAT_RECOVER,
+ "needs_recovery" },
+ { E2P_FEATURE_INCOMPAT, EXT3_FEATURE_INCOMPAT_JOURNAL_DEV,
+ "journal_dev" },
+ { E2P_FEATURE_INCOMPAT, EXT3_FEATURE_INCOMPAT_EXTENTS,
+ "extent" },
+ { E2P_FEATURE_INCOMPAT, EXT3_FEATURE_INCOMPAT_EXTENTS,
+ "extents" },
+ { E2P_FEATURE_INCOMPAT, EXT2_FEATURE_INCOMPAT_META_BG,
+ "meta_bg" },
+ { E2P_FEATURE_INCOMPAT, EXT4_FEATURE_INCOMPAT_64BIT,
+ "64bit" },
+ { E2P_FEATURE_INCOMPAT, EXT4_FEATURE_INCOMPAT_FLEX_BG,
+ "flex_bg"},
+ { 0, 0, 0 },
+};
+
+static struct feature jrnl_feature_list[] = {
+ { E2P_FEATURE_COMPAT, JFS_FEATURE_COMPAT_CHECKSUM,
+ "journal_checksum" },
+
+ { E2P_FEATURE_INCOMPAT, JFS_FEATURE_INCOMPAT_REVOKE,
+ "journal_incompat_revoke" },
+ { E2P_FEATURE_INCOMPAT, JFS_FEATURE_INCOMPAT_ASYNC_COMMIT,
+ "journal_async_commit" },
+ { 0, 0, 0 },
+};
+
+const char *e2p_feature2string(int compat, unsigned int mask)
+{
+ struct feature *f;
+ static char buf[20];
+ char fchar;
+ int fnum;
+
+ for (f = feature_list; f->string; f++) {
+ if ((compat == f->compat) &&
+ (mask == f->mask))
+ return f->string;
+ }
+ switch (compat) {
+ case E2P_FEATURE_COMPAT:
+ fchar = 'C';
+ break;
+ case E2P_FEATURE_INCOMPAT:
+ fchar = 'I';
+ break;
+ case E2P_FEATURE_RO_INCOMPAT:
+ fchar = 'R';
+ break;
+ default:
+ fchar = '?';
+ break;
+ }
+ for (fnum = 0; mask >>= 1; fnum++);
+ sprintf(buf, "FEATURE_%c%d", fchar, fnum);
+ return buf;
+}
+
+int e2p_string2feature(char *string, int *compat_type, unsigned int *mask)
+{
+ struct feature *f;
+ char *eptr;
+ int num;
+
+ for (f = feature_list; f->string; f++) {
+ if (!strcasecmp(string, f->string)) {
+ *compat_type = f->compat;
+ *mask = f->mask;
+ return 0;
+ }
+ }
+ if (strncasecmp(string, "FEATURE_", 8))
+ return 1;
+
+ switch (string[8]) {
+ case 'c':
+ case 'C':
+ *compat_type = E2P_FEATURE_COMPAT;
+ break;
+ case 'i':
+ case 'I':
+ *compat_type = E2P_FEATURE_INCOMPAT;
+ break;
+ case 'r':
+ case 'R':
+ *compat_type = E2P_FEATURE_RO_INCOMPAT;
+ break;
+ default:
+ return 1;
+ }
+ if (string[9] == 0)
+ return 1;
+ num = strtol(string+9, &eptr, 10);
+ if (num > 32 || num < 0)
+ return 1;
+ if (*eptr)
+ return 1;
+ *mask = 1 << num;
+ return 0;
+}
+
+const char *e2p_jrnl_feature2string(int compat, unsigned int mask)
+{
+ struct feature *f;
+ static char buf[20];
+ char fchar;
+ int fnum;
+
+ for (f = jrnl_feature_list; f->string; f++) {
+ if ((compat == f->compat) &&
+ (mask == f->mask))
+ return f->string;
+ }
+ switch (compat) {
+ case E2P_FEATURE_COMPAT:
+ fchar = 'C';
+ break;
+ case E2P_FEATURE_INCOMPAT:
+ fchar = 'I';
+ break;
+ case E2P_FEATURE_RO_INCOMPAT:
+ fchar = 'R';
+ break;
+ default:
+ fchar = '?';
+ break;
+ }
+ for (fnum = 0; mask >>= 1; fnum++);
+ sprintf(buf, "FEATURE_%c%d", fchar, fnum);
+ return buf;
+}
+
+int e2p_jrnl_string2feature(char *string, int *compat_type, unsigned int *mask)
+{
+ struct feature *f;
+ char *eptr;
+ int num;
+
+ for (f = jrnl_feature_list; f->string; f++) {
+ if (!strcasecmp(string, f->string)) {
+ *compat_type = f->compat;
+ *mask = f->mask;
+ return 0;
+ }
+ }
+ if (strncasecmp(string, "FEATURE_", 8))
+ return 1;
+
+ switch (string[8]) {
+ case 'c':
+ case 'C':
+ *compat_type = E2P_FEATURE_COMPAT;
+ break;
+ case 'i':
+ case 'I':
+ *compat_type = E2P_FEATURE_INCOMPAT;
+ break;
+ case 'r':
+ case 'R':
+ *compat_type = E2P_FEATURE_RO_INCOMPAT;
+ break;
+ default:
+ return 1;
+ }
+ if (string[9] == 0)
+ return 1;
+ num = strtol(string+9, &eptr, 10);
+ if (num > 32 || num < 0)
+ return 1;
+ if (*eptr)
+ return 1;
+ *mask = 1 << num;
+ return 0;
+}
+static char *skip_over_blanks(char *cp)
+{
+ while (*cp && isspace((int)*cp))
+ cp++;
+ return cp;
+}
+
+static char *skip_over_word(char *cp)
+{
+ while (*cp && !isspace((int)*cp) && *cp != ',')
+ cp++;
+ return cp;
+}
+
+/*
+ * Edit a feature set array as requested by the user. The ok_array,
+ * if set, allows the application to limit what features the user is
+ * allowed to set or clear using this function. If clear_ok_array is set,
+ * then use it tell whether or not it is OK to clear a filesystem feature.
+ */
+int e2p_edit_feature2(const char *str, __u32 *compat_array, __u32 *ok_array,
+ __u32 *clear_ok_array, int *type_err,
+ unsigned int *mask_err)
+{
+ char *cp, *buf, *next;
+ int neg;
+ unsigned int mask;
+ int compat_type;
+ int rc = 0;
+
+ if (!clear_ok_array)
+ clear_ok_array = ok_array;
+
+ if (type_err)
+ *type_err = 0;
+ if (mask_err)
+ *mask_err = 0;
+
+ buf = malloc(strlen(str)+1);
+ if (!buf)
+ return 1;
+ strcpy(buf, str);
+ for (cp = buf; cp && *cp; cp = next ? next+1 : 0) {
+ neg = 0;
+ cp = skip_over_blanks(cp);
+ next = skip_over_word(cp);
+
+ if (*next == 0)
+ next = 0;
+ else
+ *next = 0;
+
+ if ((strcasecmp(cp, "none") == 0) ||
+ (strcasecmp(cp, "clear") == 0)) {
+ compat_array[0] = 0;
+ compat_array[1] = 0;
+ compat_array[2] = 0;
+ continue;
+ }
+
+ switch (*cp) {
+ case '-':
+ case '^':
+ neg++;
+ case '+':
+ cp++;
+ break;
+ }
+ if (e2p_string2feature(cp, &compat_type, &mask)) {
+ rc = 1;
+ break;
+ }
+ if (neg) {
+ if (clear_ok_array &&
+ !(clear_ok_array[compat_type] & mask)) {
+ rc = 1;
+ if (type_err)
+ *type_err = (compat_type |
+ E2P_FEATURE_NEGATE_FLAG);
+ if (mask_err)
+ *mask_err = mask;
+ break;
+ }
+ compat_array[compat_type] &= ~mask;
+ } else {
+ if (ok_array && !(ok_array[compat_type] & mask)) {
+ rc = 1;
+ if (type_err)
+ *type_err = compat_type;
+ if (mask_err)
+ *mask_err = mask;
+ break;
+ }
+ compat_array[compat_type] |= mask;
+ }
+ }
+ free(buf);
+ return rc;
+}
+
+int e2p_edit_feature(const char *str, __u32 *compat_array, __u32 *ok_array)
+{
+ return e2p_edit_feature2(str, compat_array, ok_array, 0, 0, 0);
+}
+
+#ifdef TEST_PROGRAM
+int main(int argc, char **argv)
+{
+ int compat, compat2, i;
+ unsigned int mask, mask2;
+ const char *str;
+ struct feature *f;
+
+ for (i = 0; i < 2; i++) {
+ if (i == 0) {
+ f = feature_list;
+ printf("Feature list:\n");
+ } else {
+ printf("\nJournal feature list:\n");
+ f = jrnl_feature_list;
+ }
+ for (; f->string; f++) {
+ if (i == 0) {
+ e2p_string2feature((char *)f->string, &compat,
+ &mask);
+ str = e2p_feature2string(compat, mask);
+ } else {
+ e2p_jrnl_string2feature((char *)f->string,
+ &compat, &mask);
+ str = e2p_jrnl_feature2string(compat, mask);
+ }
+
+ printf("\tCompat = %d, Mask = %u, %s\n",
+ compat, mask, f->string);
+ if (strcmp(f->string, str)) {
+ if (e2p_string2feature((char *) str, &compat2,
+ &mask2) ||
+ (compat2 != compat) ||
+ (mask2 != mask)) {
+ fprintf(stderr, "Failure!\n");
+ exit(1);
+ }
+ }
+ }
+ }
+ exit(0);
+}
+#endif
diff --git a/libcustomext2fs/source/e2p/fgetflags.c b/libcustomext2fs/source/e2p/fgetflags.c
new file mode 100644
index 00000000..282be320
--- /dev/null
+++ b/libcustomext2fs/source/e2p/fgetflags.c
@@ -0,0 +1,95 @@
+/*
+ * fgetflags.c - Get a file flags on an ext2 file system
+ *
+ * Copyright (C) 1993, 1994 Remy Card
+ * Laboratoire MASI, Institut Blaise Pascal
+ * Universite Pierre et Marie Curie (Paris VI)
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+/*
+ * History:
+ * 93/10/30 - Creation
+ */
+
+#define _LARGEFILE_SOURCE
+#define _LARGEFILE64_SOURCE
+
+#if HAVE_ERRNO_H
+#include
+#endif
+#if HAVE_UNISTD_H
+#include
+#endif
+#include
+#include
+#if HAVE_EXT2_IOCTLS
+#include
+#include
+#endif
+
+#include "e2p.h"
+
+#ifdef O_LARGEFILE
+#define OPEN_FLAGS (O_RDONLY|O_NONBLOCK|O_LARGEFILE)
+#else
+#define OPEN_FLAGS (O_RDONLY|O_NONBLOCK)
+#endif
+
+int fgetflags (const char * name, unsigned long * flags)
+{
+#if HAVE_STAT_FLAGS && !(APPLE_DARWIN && HAVE_EXT2_IOCTLS)
+ struct stat buf;
+ if (stat (name, &buf) == -1)
+ return -1;
+
+ *flags = 0;
+#ifdef UF_IMMUTABLE
+ if (buf.st_flags & UF_IMMUTABLE)
+ *flags |= EXT2_IMMUTABLE_FL;
+#endif
+#ifdef UF_APPEND
+ if (buf.st_flags & UF_APPEND)
+ *flags |= EXT2_APPEND_FL;
+#endif
+#ifdef UF_NODUMP
+ if (buf.st_flags & UF_NODUMP)
+ *flags |= EXT2_NODUMP_FL;
+#endif
+
+ return 0;
+#else
+#if HAVE_EXT2_IOCTLS
+ int fd, r, f, save_errno = 0;
+
+ if (!lstat(name, &buf) &&
+ !S_ISREG(buf.st_mode) && !S_ISDIR(buf.st_mode)) {
+ goto notsupp;
+ }
+#if !APPLE_DARWIN
+ fd = open (name, OPEN_FLAGS);
+ if (fd == -1)
+ return -1;
+ r = ioctl (fd, EXT2_IOC_GETFLAGS, &f);
+ if (r == -1)
+ save_errno = errno;
+ *flags = f;
+ close (fd);
+ if (save_errno)
+ errno = save_errno;
+ return r;
+#else
+ f = -1;
+ save_errno = syscall(SYS_fsctl, name, EXT2_IOC_GETFLAGS, &f, 0);
+ *flags = f;
+ return (save_errno);
+#endif
+#endif /* HAVE_EXT2_IOCTLS */
+#endif
+ errno = EOPNOTSUPP;
+ return -1;
+}
diff --git a/libcustomext2fs/source/e2p/fgetversion.c b/libcustomext2fs/source/e2p/fgetversion.c
new file mode 100644
index 00000000..97519d77
--- /dev/null
+++ b/libcustomext2fs/source/e2p/fgetversion.c
@@ -0,0 +1,69 @@
+/*
+ * fgetversion.c - Get a file version on an ext2 file system
+ *
+ * Copyright (C) 1993, 1994 Remy Card
+ * Laboratoire MASI, Institut Blaise Pascal
+ * Universite Pierre et Marie Curie (Paris VI)
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+/*
+ * History:
+ * 93/10/30 - Creation
+ */
+
+#define _LARGEFILE_SOURCE
+#define _LARGEFILE64_SOURCE
+
+#if HAVE_ERRNO_H
+#include
+#endif
+#if HAVE_UNISTD_H
+#include
+#endif
+#if HAVE_EXT2_IOCTLS
+#include
+#include
+#endif
+
+#include "e2p.h"
+
+#ifdef O_LARGEFILE
+#define OPEN_FLAGS (O_RDONLY|O_NONBLOCK|O_LARGEFILE)
+#else
+#define OPEN_FLAGS (O_RDONLY|O_NONBLOCK)
+#endif
+
+int fgetversion (const char * name, unsigned long * version)
+{
+#if HAVE_EXT2_IOCTLS
+#if !APPLE_DARWIN
+ int fd, r, ver, save_errno = 0;
+
+ fd = open (name, OPEN_FLAGS);
+ if (fd == -1)
+ return -1;
+ r = ioctl (fd, EXT2_IOC_GETVERSION, &ver);
+ if (r == -1)
+ save_errno = errno;
+ *version = ver;
+ close (fd);
+ if (save_errno)
+ errno = save_errno;
+ return r;
+#else
+ int ver=-1, err;
+ err = syscall(SYS_fsctl, name, EXT2_IOC_GETVERSION, &ver, 0);
+ *version = ver;
+ return(err);
+#endif
+#else /* ! HAVE_EXT2_IOCTLS */
+ extern int errno;
+ errno = EOPNOTSUPP;
+ return -1;
+#endif /* ! HAVE_EXT2_IOCTLS */
+}
diff --git a/libcustomext2fs/source/e2p/fsetflags.c b/libcustomext2fs/source/e2p/fsetflags.c
new file mode 100644
index 00000000..0f39ee9c
--- /dev/null
+++ b/libcustomext2fs/source/e2p/fsetflags.c
@@ -0,0 +1,100 @@
+/*
+ * fsetflags.c - Set a file flags on an ext2 file system
+ *
+ * Copyright (C) 1993, 1994 Remy Card
+ * Laboratoire MASI, Institut Blaise Pascal
+ * Universite Pierre et Marie Curie (Paris VI)
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+/*
+ * History:
+ * 93/10/30 - Creation
+ */
+
+#define _LARGEFILE_SOURCE
+#define _LARGEFILE64_SOURCE
+
+#if HAVE_ERRNO_H
+#include
+#endif
+#if HAVE_UNISTD_H
+#include
+#endif
+#include
+#include
+#if HAVE_EXT2_IOCTLS
+#include
+#include
+#endif
+
+#include "e2p.h"
+
+/*
+ * Deal with lame glibc's that define this function without actually
+ * implementing it. Can you say "attractive nuisance", boys and girls?
+ * I knew you could!
+ */
+#ifdef __linux__
+#undef HAVE_CHFLAGS
+#endif
+
+#ifdef O_LARGEFILE
+#define OPEN_FLAGS (O_RDONLY|O_NONBLOCK|O_LARGEFILE)
+#else
+#define OPEN_FLAGS (O_RDONLY|O_NONBLOCK)
+#endif
+
+int fsetflags (const char * name, unsigned long flags)
+{
+#if HAVE_CHFLAGS && !(APPLE_DARWIN && HAVE_EXT2_IOCTLS)
+ struct stat buf;
+ unsigned long bsd_flags = 0;
+
+#ifdef UF_IMMUTABLE
+ if (flags & EXT2_IMMUTABLE_FL)
+ bsd_flags |= UF_IMMUTABLE;
+#endif
+#ifdef UF_APPEND
+ if (flags & EXT2_APPEND_FL)
+ bsd_flags |= UF_APPEND;
+#endif
+#ifdef UF_NODUMP
+ if (flags & EXT2_NODUMP_FL)
+ bsd_flags |= UF_NODUMP;
+#endif
+
+ return chflags (name, bsd_flags);
+#else
+#if HAVE_EXT2_IOCTLS
+ int fd, r, f, save_errno = 0;
+
+ if (!lstat(name, &buf) &&
+ !S_ISREG(buf.st_mode) && !S_ISDIR(buf.st_mode)) {
+ goto notsupp;
+ }
+#if !APPLE_DARWIN
+ fd = open (name, OPEN_FLAGS);
+ if (fd == -1)
+ return -1;
+ f = (int) flags;
+ r = ioctl (fd, EXT2_IOC_SETFLAGS, &f);
+ if (r == -1)
+ save_errno = errno;
+ close (fd);
+ if (save_errno)
+ errno = save_errno;
+#else
+ f = (int) flags;
+ return syscall(SYS_fsctl, name, EXT2_IOC_SETFLAGS, &f, 0);
+#endif
+ return r;
+#endif /* HAVE_EXT2_IOCTLS */
+#endif
+ errno = EOPNOTSUPP;
+ return -1;
+}
diff --git a/libcustomext2fs/source/e2p/fsetversion.c b/libcustomext2fs/source/e2p/fsetversion.c
new file mode 100644
index 00000000..ee26f91e
--- /dev/null
+++ b/libcustomext2fs/source/e2p/fsetversion.c
@@ -0,0 +1,67 @@
+/*
+ * fsetversion.c - Set a file version on an ext2 file system
+ *
+ * Copyright (C) 1993, 1994 Remy Card
+ * Laboratoire MASI, Institut Blaise Pascal
+ * Universite Pierre et Marie Curie (Paris VI)
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+/*
+ * History:
+ * 93/10/30 - Creation
+ */
+
+#define _LARGEFILE_SOURCE
+#define _LARGEFILE64_SOURCE
+
+#if HAVE_ERRNO_H
+#include
+#endif
+#if HAVE_UNISTD_H
+#include
+#endif
+#if HAVE_EXT2_IOCTLS
+#include
+#include
+#endif
+
+#include "e2p.h"
+
+#ifdef O_LARGEFILE
+#define OPEN_FLAGS (O_RDONLY|O_NONBLOCK|O_LARGEFILE)
+#else
+#define OPEN_FLAGS (O_RDONLY|O_NONBLOCK)
+#endif
+
+int fsetversion (const char * name, unsigned long version)
+{
+#if HAVE_EXT2_IOCTLS
+#if !APPLE_DARWIN
+ int fd, r, ver, save_errno = 0;
+
+ fd = open (name, OPEN_FLAGS);
+ if (fd == -1)
+ return -1;
+ ver = (int) version;
+ r = ioctl (fd, EXT2_IOC_SETVERSION, &ver);
+ if (r == -1)
+ save_errno = errno;
+ close (fd);
+ if (save_errno)
+ errno = save_errno;
+ return r;
+#else
+ int ver = (int)version;
+ return syscall(SYS_fsctl, name, EXT2_IOC_SETVERSION, &ver, 0);
+#endif
+#else /* ! HAVE_EXT2_IOCTLS */
+ extern int errno;
+ errno = EOPNOTSUPP;
+ return -1;
+#endif /* ! HAVE_EXT2_IOCTLS */
+}
diff --git a/libcustomext2fs/source/e2p/getflags.c b/libcustomext2fs/source/e2p/getflags.c
new file mode 100644
index 00000000..0cc768a8
--- /dev/null
+++ b/libcustomext2fs/source/e2p/getflags.c
@@ -0,0 +1,66 @@
+/*
+ * getflags.c - Get a file flags on an ext2 file system
+ *
+ * Copyright (C) 1993, 1994 Remy Card
+ * Laboratoire MASI, Institut Blaise Pascal
+ * Universite Pierre et Marie Curie (Paris VI)
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+/*
+ * History:
+ * 93/10/30 - Creation
+ */
+
+#if HAVE_ERRNO_H
+#include
+#endif
+#include
+#include
+#if HAVE_EXT2_IOCTLS
+#include
+#endif
+
+#include "e2p.h"
+
+int getflags (int fd, unsigned long * flags)
+{
+#if HAVE_STAT_FLAGS
+ struct stat buf;
+ if (fstat (fd, &buf) == -1)
+ return -1;
+
+ *flags = 0;
+#ifdef UF_IMMUTABLE
+ if (buf.st_flags & UF_IMMUTABLE)
+ *flags |= EXT2_IMMUTABLE_FL;
+#endif
+#ifdef UF_APPEND
+ if (buf.st_flags & UF_APPEND)
+ *flags |= EXT2_APPEND_FL;
+#endif
+#ifdef UF_NODUMP
+ if (buf.st_flags & UF_NODUMP)
+ *flags |= EXT2_NODUMP_FL;
+#endif
+
+ return 0;
+#else
+#if HAVE_EXT2_IOCTLS
+ int r, f;
+
+ if (!fstat(fd, &buf) &&
+ !S_ISREG(buf.st_mode) && !S_ISDIR(buf.st_mode))
+ goto notsupp;
+ r = ioctl (fd, EXT2_IOC_GETFLAGS, &f);
+ *flags = f;
+ return r;
+#endif /* HAVE_EXT2_IOCTLS */
+#endif
+ errno = EOPNOTSUPP;
+ return -1;
+}
diff --git a/libcustomext2fs/source/e2p/getversion.c b/libcustomext2fs/source/e2p/getversion.c
new file mode 100644
index 00000000..06adf6df
--- /dev/null
+++ b/libcustomext2fs/source/e2p/getversion.c
@@ -0,0 +1,41 @@
+/*
+ * getversion.c - Get a file version on an ext2 file system
+ *
+ * Copyright (C) 1993, 1994 Remy Card
+ * Laboratoire MASI, Institut Blaise Pascal
+ * Universite Pierre et Marie Curie (Paris VI)
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+/*
+ * History:
+ * 93/10/30 - Creation
+ */
+
+#if HAVE_ERRNO_H
+#include
+#endif
+#if HAVE_EXT2_IOCTLS
+#include
+#endif
+
+#include "e2p.h"
+
+int getversion (int fd, unsigned long * version)
+{
+#if HAVE_EXT2_IOCTLS
+ int r, ver;
+
+ r = ioctl (fd, EXT2_IOC_GETVERSION, &ver);
+ *version = ver;
+ return 0;
+#else /* ! HAVE_EXT2_IOCTLS */
+ extern int errno;
+ errno = EOPNOTSUPP;
+ return -1;
+#endif /* ! HAVE_EXT2_IOCTLS */
+}
diff --git a/libcustomext2fs/source/e2p/hashstr.c b/libcustomext2fs/source/e2p/hashstr.c
new file mode 100644
index 00000000..5ee62370
--- /dev/null
+++ b/libcustomext2fs/source/e2p/hashstr.c
@@ -0,0 +1,71 @@
+/*
+ * feature.c --- convert between features and strings
+ *
+ * Copyright (C) 1999 Theodore Ts'o
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+#include
+#include
+#include
+
+#include "e2p.h"
+
+struct hash {
+ int num;
+ const char *string;
+};
+
+static struct hash hash_list[] = {
+ { EXT2_HASH_LEGACY, "legacy" },
+ { EXT2_HASH_HALF_MD4, "half_md4" },
+ { EXT2_HASH_TEA, "tea" },
+ { 0, 0 },
+};
+
+const char *e2p_hash2string(int num)
+{
+ struct hash *p;
+ static char buf[20];
+
+ for (p = hash_list; p->string; p++) {
+ if (num == p->num)
+ return p->string;
+ }
+ sprintf(buf, "HASHALG_%d", num);
+ return buf;
+}
+
+/*
+ * Returns the hash algorithm, or -1 on error
+ */
+int e2p_string2hash(char *string)
+{
+ struct hash *p;
+ char *eptr;
+ int num;
+
+ for (p = hash_list; p->string; p++) {
+ if (!strcasecmp(string, p->string)) {
+ return p->num;
+ }
+ }
+ if (strncasecmp(string, "HASHALG_", 8))
+ return -1;
+
+ if (string[8] == 0)
+ return -1;
+ num = strtol(string+8, &eptr, 10);
+ if (num > 255 || num < 0)
+ return -1;
+ if (*eptr)
+ return -1;
+ return num;
+}
+
diff --git a/libcustomext2fs/source/e2p/iod.c b/libcustomext2fs/source/e2p/iod.c
new file mode 100644
index 00000000..c53aafeb
--- /dev/null
+++ b/libcustomext2fs/source/e2p/iod.c
@@ -0,0 +1,75 @@
+/*
+ * iod.c - Iterate a function on each entry of a directory
+ *
+ * Copyright (C) 1993, 1994 Remy Card
+ * Laboratoire MASI, Institut Blaise Pascal
+ * Universite Pierre et Marie Curie (Paris VI)
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+/*
+ * History:
+ * 93/10/30 - Creation
+ */
+
+#include "e2p.h"
+#if HAVE_UNISTD_H
+#include
+#endif
+#include
+#include
+
+int iterate_on_dir (const char * dir_name,
+ int (*func) (const char *, struct dirent *, void *),
+ void * private)
+{
+ DIR * dir;
+ struct dirent *de, *dep;
+ int max_len = -1, len, ret = 0;
+
+#if HAVE_PATHCONF && defined(_PC_NAME_MAX)
+ max_len = pathconf(dir_name, _PC_NAME_MAX);
+#endif
+ if (max_len == -1) {
+#ifdef _POSIX_NAME_MAX
+ max_len = _POSIX_NAME_MAX;
+#else
+#ifdef NAME_MAX
+ max_len = NAME_MAX;
+#else
+ max_len = 256;
+#endif /* NAME_MAX */
+#endif /* _POSIX_NAME_MAX */
+ }
+ max_len += sizeof(struct dirent);
+
+ de = malloc(max_len+1);
+ if (!de)
+ return -1;
+ memset(de, 0, max_len+1);
+
+ dir = opendir (dir_name);
+ if (dir == NULL) {
+ free(de);
+ return -1;
+ }
+ while ((dep = readdir (dir))) {
+#ifdef HAVE_RECLEN_DIRENT
+ len = dep->d_reclen;
+ if (len > max_len)
+ len = max_len;
+#else
+ len = sizeof(struct dirent);
+#endif
+ memcpy(de, dep, len);
+ if ((*func)(dir_name, de, private))
+ ret++;
+ }
+ free(de);
+ closedir(dir);
+ return ret;
+}
diff --git a/libcustomext2fs/source/e2p/ls.c b/libcustomext2fs/source/e2p/ls.c
new file mode 100644
index 00000000..20908a66
--- /dev/null
+++ b/libcustomext2fs/source/e2p/ls.c
@@ -0,0 +1,403 @@
+/*
+ * ls.c - List the contents of an ext2fs superblock
+ *
+ * Copyright (C) 1992, 1993, 1994 Remy Card
+ * Laboratoire MASI, Institut Blaise Pascal
+ * Universite Pierre et Marie Curie (Paris VI)
+ *
+ * Copyright (C) 1995, 1996, 1997 Theodore Ts'o
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include "e2p.h"
+
+static void print_user (unsigned short uid, FILE *f)
+{
+ struct passwd *pw;
+
+ fprintf(f, "%u ", uid);
+ pw = getpwuid (uid);
+ if (pw == NULL)
+ fprintf(f, "(user unknown)\n");
+ else
+ fprintf(f, "(user %s)\n", pw->pw_name);
+}
+
+static void print_group (unsigned short gid, FILE *f)
+{
+ struct group *gr;
+
+ fprintf(f, "%u ", gid);
+ gr = getgrgid (gid);
+ if (gr == NULL)
+ fprintf(f, "(group unknown)\n");
+ else
+ fprintf(f, "(group %s)\n", gr->gr_name);
+}
+
+#define MONTH_INT (86400 * 30)
+#define WEEK_INT (86400 * 7)
+#define DAY_INT (86400)
+#define HOUR_INT (60 * 60)
+#define MINUTE_INT (60)
+
+static const char *interval_string(unsigned int secs)
+{
+ static char buf[256], tmp[80];
+ int hr, min, num;
+
+ buf[0] = 0;
+
+ if (secs == 0)
+ return "";
+
+ if (secs >= MONTH_INT) {
+ num = secs / MONTH_INT;
+ secs -= num*MONTH_INT;
+ sprintf(buf, "%d month%s", num, (num>1) ? "s" : "");
+ }
+ if (secs >= WEEK_INT) {
+ num = secs / WEEK_INT;
+ secs -= num*WEEK_INT;
+ sprintf(tmp, "%s%d week%s", buf[0] ? ", " : "",
+ num, (num>1) ? "s" : "");
+ strcat(buf, tmp);
+ }
+ if (secs >= DAY_INT) {
+ num = secs / DAY_INT;
+ secs -= num*DAY_INT;
+ sprintf(tmp, "%s%d day%s", buf[0] ? ", " : "",
+ num, (num>1) ? "s" : "");
+ strcat(buf, tmp);
+ }
+ if (secs > 0) {
+ hr = secs / HOUR_INT;
+ secs -= hr*HOUR_INT;
+ min = secs / MINUTE_INT;
+ secs -= min*MINUTE_INT;
+ sprintf(tmp, "%s%d:%02d:%02d", buf[0] ? ", " : "",
+ hr, min, secs);
+ strcat(buf, tmp);
+ }
+ return buf;
+}
+
+static void print_features(struct ext2_super_block * s, FILE *f)
+{
+#ifdef EXT2_DYNAMIC_REV
+ int i, j, printed=0;
+ __u32 *mask = &s->s_feature_compat, m;
+
+ fprintf(f, "Filesystem features: ");
+ for (i=0; i <3; i++,mask++) {
+ for (j=0,m=1; j < 32; j++, m<<=1) {
+ if (*mask & m) {
+ fprintf(f, " %s", e2p_feature2string(i, m));
+ printed++;
+ }
+ }
+ }
+ if (printed == 0)
+ fprintf(f, " (none)");
+ fprintf(f, "\n");
+#endif
+}
+
+static void print_mntopts(struct ext2_super_block * s, FILE *f)
+{
+#ifdef EXT2_DYNAMIC_REV
+ int i, printed=0;
+ __u32 mask = s->s_default_mount_opts, m;
+
+ fprintf(f, "Default mount options: ");
+ if (mask & EXT3_DEFM_JMODE) {
+ fprintf(f, " %s", e2p_mntopt2string(mask & EXT3_DEFM_JMODE));
+ printed++;
+ }
+ for (i=0,m=1; i < 32; i++, m<<=1) {
+ if (m & EXT3_DEFM_JMODE)
+ continue;
+ if (mask & m) {
+ fprintf(f, " %s", e2p_mntopt2string(m));
+ printed++;
+ }
+ }
+ if (printed == 0)
+ fprintf(f, " (none)");
+ fprintf(f, "\n");
+#endif
+}
+
+static void print_super_flags(struct ext2_super_block * s, FILE *f)
+{
+ int flags_found = 0;
+
+ if (s->s_flags == 0)
+ return;
+
+ fputs("Filesystem flags: ", f);
+ if (s->s_flags & EXT2_FLAGS_SIGNED_HASH) {
+ fputs("signed_directory_hash ", f);
+ flags_found++;
+ }
+ if (s->s_flags & EXT2_FLAGS_UNSIGNED_HASH) {
+ fputs("unsigned_directory_hash ", f);
+ flags_found++;
+ }
+ if (s->s_flags & EXT2_FLAGS_TEST_FILESYS) {
+ fputs("test_filesystem ", f);
+ flags_found++;
+ }
+ if (flags_found)
+ fputs("\n", f);
+ else
+ fputs("(none)\n", f);
+}
+
+static __u64 e2p_blocks_count(struct ext2_super_block *super)
+{
+ return super->s_blocks_count |
+ (super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT ?
+ (__u64) super->s_blocks_count_hi << 32 : 0);
+}
+
+static __u64 e2p_r_blocks_count(struct ext2_super_block *super)
+{
+ return super->s_r_blocks_count |
+ (super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT ?
+ (__u64) super->s_r_blocks_count_hi << 32 : 0);
+}
+
+static __u64 e2p_free_blocks_count(struct ext2_super_block *super)
+{
+ return super->s_free_blocks_count |
+ (super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT ?
+ (__u64) super->s_free_blocks_hi << 32 : 0);
+}
+
+#ifndef EXT2_INODE_SIZE
+#define EXT2_INODE_SIZE(s) sizeof(struct ext2_inode)
+#endif
+
+#ifndef EXT2_GOOD_OLD_REV
+#define EXT2_GOOD_OLD_REV 0
+#endif
+
+void list_super2(struct ext2_super_block * sb, FILE *f)
+{
+ int inode_blocks_per_group;
+ char buf[80], *str;
+ time_t tm;
+
+ inode_blocks_per_group = (((sb->s_inodes_per_group *
+ EXT2_INODE_SIZE(sb)) +
+ EXT2_BLOCK_SIZE(sb) - 1) /
+ EXT2_BLOCK_SIZE(sb));
+ if (sb->s_volume_name[0]) {
+ memset(buf, 0, sizeof(buf));
+ strncpy(buf, sb->s_volume_name, sizeof(sb->s_volume_name));
+ } else
+ strcpy(buf, "");
+ fprintf(f, "Filesystem volume name: %s\n", buf);
+ if (sb->s_last_mounted[0]) {
+ memset(buf, 0, sizeof(buf));
+ strncpy(buf, sb->s_last_mounted, sizeof(sb->s_last_mounted));
+ } else
+ strcpy(buf, "");
+ fprintf(f, "Last mounted on: %s\n", buf);
+ fprintf(f, "Filesystem UUID: %s\n", e2p_uuid2str(sb->s_uuid));
+ fprintf(f, "Filesystem magic number: 0x%04X\n", sb->s_magic);
+ fprintf(f, "Filesystem revision #: %d", sb->s_rev_level);
+ if (sb->s_rev_level == EXT2_GOOD_OLD_REV) {
+ fprintf(f, " (original)\n");
+#ifdef EXT2_DYNAMIC_REV
+ } else if (sb->s_rev_level == EXT2_DYNAMIC_REV) {
+ fprintf(f, " (dynamic)\n");
+#endif
+ } else
+ fprintf(f, " (unknown)\n");
+ print_features(sb, f);
+ print_super_flags(sb, f);
+ print_mntopts(sb, f);
+ if (sb->s_mount_opts[0])
+ fprintf(f, "Mount options: %s\n", sb->s_mount_opts);
+ fprintf(f, "Filesystem state: ");
+ print_fs_state (f, sb->s_state);
+ fprintf(f, "\n");
+ fprintf(f, "Errors behavior: ");
+ print_fs_errors(f, sb->s_errors);
+ fprintf(f, "\n");
+ str = e2p_os2string(sb->s_creator_os);
+ fprintf(f, "Filesystem OS type: %s\n", str);
+ free(str);
+ fprintf(f, "Inode count: %u\n", sb->s_inodes_count);
+ fprintf(f, "Block count: %llu\n", e2p_blocks_count(sb));
+ fprintf(f, "Reserved block count: %llu\n", e2p_r_blocks_count(sb));
+ fprintf(f, "Free blocks: %llu\n", e2p_free_blocks_count(sb));
+ fprintf(f, "Free inodes: %u\n", sb->s_free_inodes_count);
+ fprintf(f, "First block: %u\n", sb->s_first_data_block);
+ fprintf(f, "Block size: %u\n", EXT2_BLOCK_SIZE(sb));
+ fprintf(f, "Fragment size: %u\n", EXT2_FRAG_SIZE(sb));
+ if (sb->s_reserved_gdt_blocks)
+ fprintf(f, "Reserved GDT blocks: %u\n",
+ sb->s_reserved_gdt_blocks);
+ fprintf(f, "Blocks per group: %u\n", sb->s_blocks_per_group);
+ fprintf(f, "Fragments per group: %u\n", sb->s_frags_per_group);
+ fprintf(f, "Inodes per group: %u\n", sb->s_inodes_per_group);
+ fprintf(f, "Inode blocks per group: %u\n", inode_blocks_per_group);
+ if (sb->s_raid_stride)
+ fprintf(f, "RAID stride: %u\n",
+ sb->s_raid_stride);
+ if (sb->s_raid_stripe_width)
+ fprintf(f, "RAID stripe width: %u\n",
+ sb->s_raid_stripe_width);
+ if (sb->s_first_meta_bg)
+ fprintf(f, "First meta block group: %u\n",
+ sb->s_first_meta_bg);
+ if (sb->s_log_groups_per_flex)
+ fprintf(f, "Flex block group size: %u\n",
+ 1 << sb->s_log_groups_per_flex);
+ if (sb->s_mkfs_time) {
+ tm = sb->s_mkfs_time;
+ fprintf(f, "Filesystem created: %s", ctime(&tm));
+ }
+ tm = sb->s_mtime;
+ fprintf(f, "Last mount time: %s",
+ sb->s_mtime ? ctime(&tm) : "n/a\n");
+ tm = sb->s_wtime;
+ fprintf(f, "Last write time: %s", ctime(&tm));
+ fprintf(f, "Mount count: %u\n", sb->s_mnt_count);
+ fprintf(f, "Maximum mount count: %d\n", sb->s_max_mnt_count);
+ tm = sb->s_lastcheck;
+ fprintf(f, "Last checked: %s", ctime(&tm));
+ fprintf(f, "Check interval: %u (%s)\n", sb->s_checkinterval,
+ interval_string(sb->s_checkinterval));
+ if (sb->s_checkinterval)
+ {
+ time_t next;
+
+ next = sb->s_lastcheck + sb->s_checkinterval;
+ fprintf(f, "Next check after: %s", ctime(&next));
+ }
+#define POW2(x) ((__u64) 1 << (x))
+ if (sb->s_kbytes_written) {
+ fprintf(f, "Lifetime writes: ");
+ if (sb->s_kbytes_written < POW2(13))
+ fprintf(f, "%llu kB\n", sb->s_kbytes_written);
+ else if (sb->s_kbytes_written < POW2(23))
+ fprintf(f, "%llu MB\n",
+ (sb->s_kbytes_written + POW2(9)) >> 10);
+ else if (sb->s_kbytes_written < POW2(33))
+ fprintf(f, "%llu GB\n",
+ (sb->s_kbytes_written + POW2(19)) >> 20);
+ else if (sb->s_kbytes_written < POW2(43))
+ fprintf(f, "%llu TB\n",
+ (sb->s_kbytes_written + POW2(29)) >> 30);
+ else
+ fprintf(f, "%llu PB\n",
+ (sb->s_kbytes_written + POW2(39)) >> 40);
+ }
+ fprintf(f, "Reserved blocks uid: ");
+ print_user(sb->s_def_resuid, f);
+ fprintf(f, "Reserved blocks gid: ");
+ print_group(sb->s_def_resgid, f);
+ if (sb->s_rev_level >= EXT2_DYNAMIC_REV) {
+ fprintf(f, "First inode: %d\n", sb->s_first_ino);
+ fprintf(f, "Inode size: %d\n", sb->s_inode_size);
+ if (sb->s_min_extra_isize)
+ fprintf(f, "Required extra isize: %d\n",
+ sb->s_min_extra_isize);
+ if (sb->s_want_extra_isize)
+ fprintf(f, "Desired extra isize: %d\n",
+ sb->s_want_extra_isize);
+ }
+ if (!e2p_is_null_uuid(sb->s_journal_uuid))
+ fprintf(f, "Journal UUID: %s\n",
+ e2p_uuid2str(sb->s_journal_uuid));
+ if (sb->s_journal_inum)
+ fprintf(f, "Journal inode: %u\n",
+ sb->s_journal_inum);
+ if (sb->s_journal_dev)
+ fprintf(f, "Journal device: 0x%04x\n",
+ sb->s_journal_dev);
+ if (sb->s_last_orphan)
+ fprintf(f, "First orphan inode: %u\n",
+ sb->s_last_orphan);
+ if ((sb->s_feature_compat & EXT2_FEATURE_COMPAT_DIR_INDEX) ||
+ sb->s_def_hash_version)
+ fprintf(f, "Default directory hash: %s\n",
+ e2p_hash2string(sb->s_def_hash_version));
+ if (!e2p_is_null_uuid(sb->s_hash_seed))
+ fprintf(f, "Directory Hash Seed: %s\n",
+ e2p_uuid2str(sb->s_hash_seed));
+ if (sb->s_jnl_backup_type) {
+ fprintf(f, "Journal backup: ");
+ switch (sb->s_jnl_backup_type) {
+ case 1:
+ fprintf(f, "inode blocks\n");
+ break;
+ default:
+ fprintf(f, "type %u\n", sb->s_jnl_backup_type);
+ }
+ }
+ if (sb->s_snapshot_inum) {
+ fprintf(f, "Snapshot inode: %u\n",
+ sb->s_snapshot_inum);
+ fprintf(f, "Snapshot ID: %u\n",
+ sb->s_snapshot_id);
+ fprintf(f, "Snapshot reserved blocks: %llu\n",
+ sb->s_snapshot_r_blocks_count);
+ }
+ if (sb->s_snapshot_list)
+ fprintf(f, "Snapshot list head: %u\n",
+ sb->s_snapshot_list);
+ if (sb->s_error_count)
+ fprintf(f, "FS Error count: %u\n",
+ sb->s_error_count);
+ if (sb->s_first_error_time) {
+ tm = sb->s_first_error_time;
+ fprintf(f, "First error time: %s", ctime(&tm));
+ memset(buf, 0, sizeof(buf));
+ strncpy(buf, (char *)sb->s_first_error_func,
+ sizeof(sb->s_first_error_func));
+ fprintf(f, "First error function: %s\n", buf);
+ fprintf(f, "First error line #: %u\n",
+ sb->s_first_error_line);
+ fprintf(f, "First error inode #: %u\n",
+ sb->s_first_error_ino);
+ fprintf(f, "First error block #: %llu\n",
+ sb->s_first_error_block);
+ }
+ if (sb->s_last_error_time) {
+ tm = sb->s_last_error_time;
+ fprintf(f, "Last error time: %s", ctime(&tm));
+ memset(buf, 0, sizeof(buf));
+ strncpy(buf, (char *) sb->s_last_error_func,
+ sizeof(sb->s_last_error_func));
+ fprintf(f, "Last error function: %s\n", buf);
+ fprintf(f, "Last error line #: %u\n",
+ sb->s_last_error_line);
+ fprintf(f, "Last error inode #: %u\n",
+ sb->s_last_error_ino);
+ fprintf(f, "Last error block #: %llu\n",
+ sb->s_last_error_block);
+ }
+}
+
+void list_super (struct ext2_super_block * s)
+{
+ list_super2(s, stdout);
+}
+
diff --git a/libcustomext2fs/source/e2p/mntopts.c b/libcustomext2fs/source/e2p/mntopts.c
new file mode 100644
index 00000000..0903ad54
--- /dev/null
+++ b/libcustomext2fs/source/e2p/mntopts.c
@@ -0,0 +1,147 @@
+/*
+ * mountopts.c --- convert between default mount options and strings
+ *
+ * Copyright (C) 2002 Theodore Ts'o
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+#include
+#include
+#include
+
+#include "e2p.h"
+
+struct mntopt {
+ unsigned int mask;
+ const char *string;
+};
+
+static struct mntopt mntopt_list[] = {
+ { EXT2_DEFM_DEBUG, "debug" },
+ { EXT2_DEFM_BSDGROUPS, "bsdgroups" },
+ { EXT2_DEFM_XATTR_USER, "user_xattr" },
+ { EXT2_DEFM_ACL, "acl" },
+ { EXT2_DEFM_UID16, "uid16" },
+ { EXT3_DEFM_JMODE_DATA, "journal_data" },
+ { EXT3_DEFM_JMODE_ORDERED, "journal_data_ordered" },
+ { EXT3_DEFM_JMODE_WBACK, "journal_data_writeback" },
+ { EXT4_DEFM_NOBARRIER, "nobarrier" },
+ { EXT4_DEFM_BLOCK_VALIDITY, "block_validity" },
+ { EXT4_DEFM_DISCARD, "discard"},
+ { EXT4_DEFM_NODELALLOC, "nodelalloc"},
+ { 0, 0 },
+};
+
+const char *e2p_mntopt2string(unsigned int mask)
+{
+ struct mntopt *f;
+ static char buf[20];
+ int fnum;
+
+ for (f = mntopt_list; f->string; f++) {
+ if (mask == f->mask)
+ return f->string;
+ }
+ for (fnum = 0; mask >>= 1; fnum++);
+ sprintf(buf, "MNTOPT_%d", fnum);
+ return buf;
+}
+
+int e2p_string2mntopt(char *string, unsigned int *mask)
+{
+ struct mntopt *f;
+ char *eptr;
+ int num;
+
+ for (f = mntopt_list; f->string; f++) {
+ if (!strcasecmp(string, f->string)) {
+ *mask = f->mask;
+ return 0;
+ }
+ }
+ if (strncasecmp(string, "MNTOPT_", 8))
+ return 1;
+
+ if (string[8] == 0)
+ return 1;
+ num = strtol(string+8, &eptr, 10);
+ if (num > 32 || num < 0)
+ return 1;
+ if (*eptr)
+ return 1;
+ *mask = 1 << num;
+ return 0;
+}
+
+static char *skip_over_blanks(char *cp)
+{
+ while (*cp && isspace((int) *cp))
+ cp++;
+ return cp;
+}
+
+static char *skip_over_word(char *cp)
+{
+ while (*cp && !isspace((int) *cp) && *cp != ',')
+ cp++;
+ return cp;
+}
+
+/*
+ * Edit a mntopt set array as requested by the user. The ok
+ * parameter, if non-zero, allows the application to limit what
+ * mntopts the user is allowed to set or clear using this function.
+ */
+int e2p_edit_mntopts(const char *str, __u32 *mntopts, __u32 ok)
+{
+ char *cp, *buf, *next;
+ int neg;
+ unsigned int mask;
+ int rc = 0;
+
+ buf = malloc(strlen(str)+1);
+ if (!buf)
+ return 1;
+ strcpy(buf, str);
+ cp = buf;
+ while (cp && *cp) {
+ neg = 0;
+ cp = skip_over_blanks(cp);
+ next = skip_over_word(cp);
+ if (*next == 0)
+ next = 0;
+ else
+ *next = 0;
+ switch (*cp) {
+ case '-':
+ case '^':
+ neg++;
+ case '+':
+ cp++;
+ break;
+ }
+ if (e2p_string2mntopt(cp, &mask)) {
+ rc = 1;
+ break;
+ }
+ if (ok && !(ok & mask)) {
+ rc = 1;
+ break;
+ }
+ if (mask & EXT3_DEFM_JMODE)
+ *mntopts &= ~EXT3_DEFM_JMODE;
+ if (neg)
+ *mntopts &= ~mask;
+ else
+ *mntopts |= mask;
+ cp = next ? next+1 : 0;
+ }
+ free(buf);
+ return rc;
+}
diff --git a/libcustomext2fs/source/e2p/ostype.c b/libcustomext2fs/source/e2p/ostype.c
new file mode 100644
index 00000000..978315b8
--- /dev/null
+++ b/libcustomext2fs/source/e2p/ostype.c
@@ -0,0 +1,77 @@
+/*
+ * getostype.c - Get the Filesystem OS type
+ *
+ * Copyright (C) 2004,2005 Theodore Ts'o
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include "e2p.h"
+#include
+#include
+
+static const char *os_tab[] =
+ { "Linux",
+ "Hurd",
+ "Masix",
+ "FreeBSD",
+ "Lites",
+ 0 };
+
+/*
+ * Convert an os_type to a string
+ */
+char *e2p_os2string(int os_type)
+{
+ const char *os;
+ char *ret;
+
+ if (os_type <= EXT2_OS_LITES)
+ os = os_tab[os_type];
+ else
+ os = "(unknown os)";
+
+ ret = malloc(strlen(os)+1);
+ if (ret)
+ strcpy(ret, os);
+ return ret;
+}
+
+/*
+ * Convert an os_type to a string
+ */
+int e2p_string2os(char *str)
+{
+ const char **cpp;
+ int i = 0;
+
+ for (cpp = os_tab; *cpp; cpp++, i++) {
+ if (!strcasecmp(str, *cpp))
+ return i;
+ }
+ return -1;
+}
+
+#ifdef TEST_PROGRAM
+int main(int argc, char **argv)
+{
+ char *s;
+ int i, os;
+
+ for (i=0; i <= EXT2_OS_LITES; i++) {
+ s = e2p_os2string(i);
+ os = e2p_string2os(s);
+ printf("%d: %s (%d)\n", i, s, os);
+ if (i != os) {
+ fprintf(stderr, "Failure!\n");
+ exit(1);
+ }
+ }
+ exit(0);
+}
+#endif
+
+
diff --git a/libcustomext2fs/source/e2p/parse_num.c b/libcustomext2fs/source/e2p/parse_num.c
new file mode 100644
index 00000000..83a329ae
--- /dev/null
+++ b/libcustomext2fs/source/e2p/parse_num.c
@@ -0,0 +1,71 @@
+/*
+ * parse_num.c - Parse the number of blocks
+ *
+ * Copyright (C) 2004,2005 Theodore Ts'o
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include "e2p.h"
+
+#include
+
+unsigned long long parse_num_blocks2(const char *arg, int log_block_size)
+{
+ char *p;
+ unsigned long long num;
+
+ num = strtoull(arg, &p, 0);
+
+ if (p[0] && p[1])
+ return 0;
+
+ switch (*p) { /* Using fall-through logic */
+ case 'T': case 't':
+ num <<= 10;
+ case 'G': case 'g':
+ num <<= 10;
+ case 'M': case 'm':
+ num <<= 10;
+ case 'K': case 'k':
+ num >>= log_block_size;
+ break;
+ case 's':
+ num >>= (1+log_block_size);
+ break;
+ case '\0':
+ break;
+ default:
+ return 0;
+ }
+ return num;
+}
+
+unsigned long parse_num_blocks(const char *arg, int log_block_size)
+{
+ return parse_num_blocks2(arg, log_block_size);
+}
+
+#ifdef DEBUG
+#include
+#include
+
+main(int argc, char **argv)
+{
+ unsigned long num;
+ int log_block_size = 0;
+
+ if (argc != 2) {
+ fprintf(stderr, "Usage: %s arg\n", argv[0]);
+ exit(1);
+ }
+
+ num = parse_num_blocks(argv[1], log_block_size);
+
+ printf("Parsed number: %lu\n", num);
+ exit(0);
+}
+#endif
diff --git a/libcustomext2fs/source/e2p/pe.c b/libcustomext2fs/source/e2p/pe.c
new file mode 100644
index 00000000..78c80993
--- /dev/null
+++ b/libcustomext2fs/source/e2p/pe.c
@@ -0,0 +1,39 @@
+/*
+ * pe.c - Print a second extended filesystem errors behavior
+ *
+ * Copyright (C) 1992, 1993, 1994 Remy Card
+ * Laboratoire MASI, Institut Blaise Pascal
+ * Universite Pierre et Marie Curie (Paris VI)
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+/*
+ * History:
+ * 94/01/09 - Creation
+ */
+
+#include
+
+#include "e2p.h"
+
+void print_fs_errors (FILE * f, unsigned short errors)
+{
+ switch (errors)
+ {
+ case EXT2_ERRORS_CONTINUE:
+ fprintf (f, "Continue");
+ break;
+ case EXT2_ERRORS_RO:
+ fprintf (f, "Remount read-only");
+ break;
+ case EXT2_ERRORS_PANIC:
+ fprintf (f, "Panic");
+ break;
+ default:
+ fprintf (f, "Unknown (continue)");
+ }
+}
diff --git a/libcustomext2fs/source/e2p/percent.c b/libcustomext2fs/source/e2p/percent.c
new file mode 100644
index 00000000..cfa7046e
--- /dev/null
+++ b/libcustomext2fs/source/e2p/percent.c
@@ -0,0 +1,66 @@
+/*
+ * percent.c - Take percentage of a number
+ *
+ * Copyright (C) 2006 Theodore Ts'o
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include "e2p.h"
+
+#include
+
+/*
+ * We work really hard to calculate this accurately, while avoiding
+ * an overflow. "Is there a hyphen in anal-retentive?" :-)
+ */
+unsigned int e2p_percent(int percent, unsigned int base)
+{
+ unsigned int mask = ~((1 << (sizeof(unsigned int) - 1) * 8) - 1);
+
+ if (!percent)
+ return 0;
+ if (100 % percent == 0)
+ return base / (100 / percent);
+ if (mask & base)
+ return (base / 100) * percent;
+ return base * percent / 100;
+}
+
+#ifdef DEBUG
+#include
+#include
+
+main(int argc, char **argv)
+{
+ unsigned int base;
+ int percent;
+ char *p;
+ int log_block_size = 0;
+
+ if (argc != 3) {
+ fprintf(stderr, "Usage: %s percent base\n", argv[0]);
+ exit(1);
+ }
+
+ percent = strtoul(argv[1], &p, 0);
+ if (p[0] && p[1]) {
+ fprintf(stderr, "Bad percent: %s\n", argv[1]);
+ exit(1);
+ }
+
+ base = strtoul(argv[2], &p, 0);
+ if (p[0] && p[1]) {
+ fprintf(stderr, "Bad base: %s\n", argv[2]);
+ exit(1);
+ }
+
+ printf("%d percent of %u is %u.\n", percent, base,
+ e2p_percent(percent, base));
+
+ exit(0);
+}
+#endif
diff --git a/libcustomext2fs/source/e2p/pf.c b/libcustomext2fs/source/e2p/pf.c
new file mode 100644
index 00000000..f34a5cc3
--- /dev/null
+++ b/libcustomext2fs/source/e2p/pf.c
@@ -0,0 +1,78 @@
+/*
+ * pf.c - Print file attributes on an ext2 file system
+ *
+ * Copyright (C) 1993, 1994 Remy Card
+ * Laboratoire MASI, Institut Blaise Pascal
+ * Universite Pierre et Marie Curie (Paris VI)
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+/*
+ * History:
+ * 93/10/30 - Creation
+ */
+
+#include
+
+#include "e2p.h"
+
+struct flags_name {
+ unsigned long flag;
+ const char *short_name;
+ const char *long_name;
+};
+
+static struct flags_name flags_array[] = {
+ { EXT2_SECRM_FL, "s", "Secure_Deletion" },
+ { EXT2_UNRM_FL, "u" , "Undelete" },
+ { EXT2_SYNC_FL, "S", "Synchronous_Updates" },
+ { EXT2_DIRSYNC_FL, "D", "Synchronous_Directory_Updates" },
+ { EXT2_IMMUTABLE_FL, "i", "Immutable" },
+ { EXT2_APPEND_FL, "a", "Append_Only" },
+ { EXT2_NODUMP_FL, "d", "No_Dump" },
+ { EXT2_NOATIME_FL, "A", "No_Atime" },
+ { EXT2_COMPR_FL, "c", "Compression_Requested" },
+#ifdef ENABLE_COMPRESSION
+ { EXT2_COMPRBLK_FL, "B", "Compressed_File" },
+ { EXT2_DIRTY_FL, "Z", "Compressed_Dirty_File" },
+ { EXT2_NOCOMPR_FL, "X", "Compression_Raw_Access" },
+ { EXT2_ECOMPR_FL, "E", "Compression_Error" },
+#endif
+ { EXT3_JOURNAL_DATA_FL, "j", "Journaled_Data" },
+ { EXT2_INDEX_FL, "I", "Indexed_directory" },
+ { EXT2_NOTAIL_FL, "t", "No_Tailmerging" },
+ { EXT2_TOPDIR_FL, "T", "Top_of_Directory_Hierarchies" },
+ { EXT4_EXTENTS_FL, "e", "Extents" },
+ { EXT4_HUGE_FILE_FL, "h", "Huge_file" },
+ { 0, NULL, NULL }
+};
+
+void print_flags (FILE * f, unsigned long flags, unsigned options)
+{
+ int long_opt = (options & PFOPT_LONG);
+ struct flags_name *fp;
+ int first = 1;
+
+ for (fp = flags_array; fp->flag != 0; fp++) {
+ if (flags & fp->flag) {
+ if (long_opt) {
+ if (first)
+ first = 0;
+ else
+ fputs(", ", f);
+ fputs(fp->long_name, f);
+ } else
+ fputs(fp->short_name, f);
+ } else {
+ if (!long_opt)
+ fputs("-", f);
+ }
+ }
+ if (long_opt && first)
+ fputs("---", f);
+}
+
diff --git a/libcustomext2fs/source/e2p/ps.c b/libcustomext2fs/source/e2p/ps.c
new file mode 100644
index 00000000..e6ad60ab
--- /dev/null
+++ b/libcustomext2fs/source/e2p/ps.c
@@ -0,0 +1,31 @@
+/*
+ * ps.c - Print filesystem state
+ *
+ * Copyright (C) 1993, 1994 Remy Card
+ * Laboratoire MASI, Institut Blaise Pascal
+ * Universite Pierre et Marie Curie (Paris VI)
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+/*
+ * History:
+ * 93/12/22 - Creation
+ */
+
+#include
+
+#include "e2p.h"
+
+void print_fs_state (FILE * f, unsigned short state)
+{
+ if (state & EXT2_VALID_FS)
+ fprintf (f, " clean");
+ else
+ fprintf (f, " not clean");
+ if (state & EXT2_ERROR_FS)
+ fprintf (f, " with errors");
+}
diff --git a/libcustomext2fs/source/e2p/setflags.c b/libcustomext2fs/source/e2p/setflags.c
new file mode 100644
index 00000000..776300d3
--- /dev/null
+++ b/libcustomext2fs/source/e2p/setflags.c
@@ -0,0 +1,74 @@
+/*
+ * setflags.c - Set a file flags on an ext2 file system
+ *
+ * Copyright (C) 1993, 1994 Remy Card
+ * Laboratoire MASI, Institut Blaise Pascal
+ * Universite Pierre et Marie Curie (Paris VI)
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+/*
+ * History:
+ * 93/10/30 - Creation
+ */
+
+#if HAVE_ERRNO_H
+#include
+#endif
+#include
+#include
+#if HAVE_EXT2_IOCTLS
+#include
+#endif
+
+#include "e2p.h"
+
+/*
+ * Deal with lame glibc's that define this function without actually
+ * implementing it. Can you say "attractive nuisance", boys and girls?
+ * I knew you could!
+ */
+#ifdef __linux__
+#undef HAVE_CHFLAGS
+#endif
+
+int setflags (int fd, unsigned long flags)
+{
+#if HAVE_CHFLAGS
+ struct stat buf;
+ unsigned long bsd_flags = 0;
+
+#ifdef UF_IMMUTABLE
+ if (flags & EXT2_IMMUTABLE_FL)
+ bsd_flags |= UF_IMMUTABLE;
+#endif
+#ifdef UF_APPEND
+ if (flags & EXT2_APPEND_FL)
+ bsd_flags |= UF_APPEND;
+#endif
+#ifdef UF_NODUMP
+ if (flags & EXT2_NODUMP_FL)
+ bsd_flags |= UF_NODUMP;
+#endif
+
+ return fchflags (fd, bsd_flags);
+#else
+#if HAVE_EXT2_IOCTLS
+ int f;
+
+ if (!fstat(fd, &buf) &&
+ !S_ISREG(buf.st_mode) && !S_ISDIR(buf.st_mode)) {
+ errno = EOPNOTSUPP;
+ return -1;
+ }
+ f = (int) flags;
+ return ioctl (fd, EXT2_IOC_SETFLAGS, &f);
+#endif /* HAVE_EXT2_IOCTLS */
+#endif
+ errno = EOPNOTSUPP;
+ return -1;
+}
diff --git a/libcustomext2fs/source/e2p/setversion.c b/libcustomext2fs/source/e2p/setversion.c
new file mode 100644
index 00000000..d7d41289
--- /dev/null
+++ b/libcustomext2fs/source/e2p/setversion.c
@@ -0,0 +1,40 @@
+/*
+ * setversion.c - Set a file version on an ext2 file system
+ *
+ * Copyright (C) 1993, 1994 Remy Card
+ * Laboratoire MASI, Institut Blaise Pascal
+ * Universite Pierre et Marie Curie (Paris VI)
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+/*
+ * History:
+ * 93/10/30 - Creation
+ */
+
+#if HAVE_ERRNO_H
+#include
+#endif
+#if HAVE_EXT2_IOCTLS
+#include
+#endif
+
+#include "e2p.h"
+
+int setversion (int fd, unsigned long version)
+{
+#if HAVE_EXT2_IOCTLS
+ int ver;
+
+ ver = (int) version;
+ return ioctl (fd, EXT2_IOC_SETVERSION, &ver);
+#else /* ! HAVE_EXT2_IOCTLS */
+ extern int errno;
+ errno = EOPNOTSUPP;
+ return -1;
+#endif /* ! HAVE_EXT2_IOCTLS */
+}
diff --git a/libcustomext2fs/source/e2p/uuid.c b/libcustomext2fs/source/e2p/uuid.c
new file mode 100644
index 00000000..310b01de
--- /dev/null
+++ b/libcustomext2fs/source/e2p/uuid.c
@@ -0,0 +1,84 @@
+/*
+ * uuid.c -- utility routines for manipulating UUID's.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+#include
+
+#include "e2p.h"
+
+struct uuid {
+ __u32 time_low;
+ __u16 time_mid;
+ __u16 time_hi_and_version;
+ __u16 clock_seq;
+ __u8 node[6];
+};
+
+/* Returns 1 if the uuid is the NULL uuid */
+int e2p_is_null_uuid(void *uu)
+{
+ __u8 *cp;
+ int i;
+
+ for (i=0, cp = uu; i < 16; i++)
+ if (*cp++)
+ return 0;
+ return 1;
+}
+
+static void e2p_unpack_uuid(void *in, struct uuid *uu)
+{
+ __u8 *ptr = in;
+ __u32 tmp;
+
+ tmp = *ptr++;
+ tmp = (tmp << 8) | *ptr++;
+ tmp = (tmp << 8) | *ptr++;
+ tmp = (tmp << 8) | *ptr++;
+ uu->time_low = tmp;
+
+ tmp = *ptr++;
+ tmp = (tmp << 8) | *ptr++;
+ uu->time_mid = tmp;
+
+ tmp = *ptr++;
+ tmp = (tmp << 8) | *ptr++;
+ uu->time_hi_and_version = tmp;
+
+ tmp = *ptr++;
+ tmp = (tmp << 8) | *ptr++;
+ uu->clock_seq = tmp;
+
+ memcpy(uu->node, ptr, 6);
+}
+
+void e2p_uuid_to_str(void *uu, char *out)
+{
+ struct uuid uuid;
+
+ e2p_unpack_uuid(uu, &uuid);
+ sprintf(out,
+ "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
+ uuid.time_low, uuid.time_mid, uuid.time_hi_and_version,
+ uuid.clock_seq >> 8, uuid.clock_seq & 0xFF,
+ uuid.node[0], uuid.node[1], uuid.node[2],
+ uuid.node[3], uuid.node[4], uuid.node[5]);
+}
+
+const char *e2p_uuid2str(void *uu)
+{
+ static char buf[80];
+
+ if (e2p_is_null_uuid(uu))
+ return "";
+ e2p_uuid_to_str(uu, buf);
+ return buf;
+}
+
diff --git a/libcustomext2fs/source/expanddir.c b/libcustomext2fs/source/expanddir.c
new file mode 100644
index 00000000..7673a3bd
--- /dev/null
+++ b/libcustomext2fs/source/expanddir.c
@@ -0,0 +1,126 @@
+/*
+ * expand.c --- expand an ext2fs directory
+ *
+ * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#include
+#include
+#if HAVE_UNISTD_H
+#include
+#endif
+
+#include "ext2_fs.h"
+#include "ext2fs.h"
+
+struct expand_dir_struct {
+ int done;
+ int newblocks;
+ errcode_t err;
+};
+
+static int expand_dir_proc(ext2_filsys fs,
+ blk64_t *blocknr,
+ e2_blkcnt_t blockcnt,
+ blk64_t ref_block EXT2FS_ATTR((unused)),
+ int ref_offset EXT2FS_ATTR((unused)),
+ void *priv_data)
+{
+ struct expand_dir_struct *es = (struct expand_dir_struct *) priv_data;
+ blk64_t new_blk;
+ static blk64_t last_blk = 0;
+ char *block;
+ errcode_t retval;
+
+ if (*blocknr) {
+ last_blk = *blocknr;
+ return 0;
+ }
+ retval = ext2fs_new_block2(fs, last_blk, 0, &new_blk);
+ if (retval) {
+ es->err = retval;
+ return BLOCK_ABORT;
+ }
+ if (blockcnt > 0) {
+ retval = ext2fs_new_dir_block(fs, 0, 0, &block);
+ if (retval) {
+ es->err = retval;
+ return BLOCK_ABORT;
+ }
+ es->done = 1;
+ retval = ext2fs_write_dir_block(fs, new_blk, block);
+ } else {
+ retval = ext2fs_get_mem(fs->blocksize, &block);
+ if (retval) {
+ es->err = retval;
+ return BLOCK_ABORT;
+ }
+ memset(block, 0, fs->blocksize);
+ retval = io_channel_write_blk64(fs->io, new_blk, 1, block);
+ }
+ if (retval) {
+ es->err = retval;
+ return BLOCK_ABORT;
+ }
+ ext2fs_free_mem(&block);
+ *blocknr = new_blk;
+ ext2fs_block_alloc_stats2(fs, new_blk, +1);
+ es->newblocks++;
+
+ if (es->done)
+ return (BLOCK_CHANGED | BLOCK_ABORT);
+ else
+ return BLOCK_CHANGED;
+}
+
+errcode_t ext2fs_expand_dir(ext2_filsys fs, ext2_ino_t dir)
+{
+ errcode_t retval;
+ struct expand_dir_struct es;
+ struct ext2_inode inode;
+
+ EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
+
+ if (!(fs->flags & EXT2_FLAG_RW))
+ return EXT2_ET_RO_FILSYS;
+
+ if (!fs->block_map)
+ return EXT2_ET_NO_BLOCK_BITMAP;
+
+ retval = ext2fs_check_directory(fs, dir);
+ if (retval)
+ return retval;
+
+ es.done = 0;
+ es.err = 0;
+ es.newblocks = 0;
+
+ retval = ext2fs_block_iterate3(fs, dir, BLOCK_FLAG_APPEND,
+ 0, expand_dir_proc, &es);
+
+ if (es.err)
+ return es.err;
+ if (!es.done)
+ return EXT2_ET_EXPAND_DIR_ERR;
+
+ /*
+ * Update the size and block count fields in the inode.
+ */
+ retval = ext2fs_read_inode(fs, dir, &inode);
+ if (retval)
+ return retval;
+
+ inode.i_size += fs->blocksize;
+ ext2fs_iblk_add_blocks(fs, &inode, es.newblocks);
+
+ retval = ext2fs_write_inode(fs, dir, &inode);
+ if (retval)
+ return retval;
+
+ return 0;
+}
diff --git a/libcustomext2fs/source/ext2.c b/libcustomext2fs/source/ext2.c
new file mode 100644
index 00000000..7cff7f3c
--- /dev/null
+++ b/libcustomext2fs/source/ext2.c
@@ -0,0 +1,420 @@
+/**
+ * ext2file.c - devoptab file routines for EXT2-based devices.
+ *
+ * Copyright (c) 2006 Michael "Chishm" Chisholm
+ * Copyright (c) 2009 Rhys "Shareese" Koedijk
+ * Copyright (c) 2010 Dimok
+ *
+ * This program/include file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program/include file is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#include
+#include
+#include "ext2_fs.h"
+#include "ext2fs.h"
+#include "ext2_internal.h"
+#include "gekko_io.h"
+#include "mem_allocate.h"
+#include "partitions.h"
+
+bool ext2Mount(const char *name, const DISC_INTERFACE *interface, sec_t startSector, u32 cachePageCount, u32 cachePageSize, u32 flags)
+{
+ errcode_t retval = -1;
+ ext2_filsys fs = NULL;
+ io_channel io_chan = NULL;
+ gekko_fd *fd = NULL;
+ ext2_vd * vd = NULL;
+
+ // Sanity check
+ if (!name || !interface)
+ {
+ errno = EINVAL;
+ return false;
+ }
+
+ // Allocate the device driver descriptor
+ fd = (gekko_fd*) mem_alloc(sizeof(gekko_fd));
+ if (!fd)
+ goto cleanup;
+
+ memset(fd, 0, sizeof(gekko_fd));
+
+ // Setup the device driver descriptor
+ fd->interface = interface;
+ fd->startSector = startSector;
+ fd->sectorSize = 0;
+ fd->sectorCount = 0;
+ fd->cachePageCount = cachePageCount;
+ fd->cachePageSize = cachePageSize;
+
+ fs = mem_alloc(sizeof(struct struct_ext2_filsys));
+ if (!fs)
+ {
+ ext2_log_trace("no memory for fs\n");
+ errno = ENOMEM;
+ goto cleanup;
+ }
+
+ memset(fs, 0, sizeof(struct struct_ext2_filsys));
+
+ io_chan = mem_alloc(sizeof(struct struct_io_channel));
+ if (!io_chan)
+ {
+ ext2_log_trace("no memory for io_chan\n");
+ errno = ENOMEM;
+ goto cleanup;
+ }
+
+ memset(io_chan, 0, sizeof(struct struct_io_channel));
+
+ io_chan->magic = EXT2_ET_MAGIC_IO_CHANNEL;
+ io_chan->manager = gekko_io_manager;
+ io_chan->name = strdup(name);
+ if(!io_chan->name) goto cleanup;
+ io_chan->block_size = 1024;
+ io_chan->read_error = 0;
+ io_chan->write_error = 0;
+ io_chan->refcount = 1;
+ io_chan->private_data = fd;
+ io_chan->flags = flags;
+
+ retval = ext2fs_open2(io_chan->name, 0, io_chan->flags, 0, 0, &io_chan, &fs);
+ if(retval)
+ {
+ ext2_log_trace("error mounting %i\n", (int) retval);
+ goto cleanup;
+ }
+
+ vd = mem_alloc(sizeof(ext2_vd));
+ if(!vd)
+ {
+ ext2_log_trace("no memory for vd\n");
+ goto cleanup;
+ }
+
+ // Initialise the volume descriptor
+ ext2InitVolume(vd);
+ vd->fs = fs;
+ vd->io = io_chan;
+ vd->root = EXT2_ROOT_INO;
+
+ // Add the device to the devoptab table
+ if (ext2AddDevice(name, vd)) {
+ ext2DeinitVolume(vd);
+ goto cleanup;
+ }
+
+ return true;
+
+cleanup:
+ if(fd)
+ mem_free(fd);
+ if(io_chan)
+ mem_free(io_chan);
+ if(vd)
+ mem_free(vd);
+ if(fs)
+ {
+ ext2fs_close(fs);
+ ext2fs_free(fs);
+ }
+
+ return false;
+}
+
+void ext2Unmount(const char *name)
+{
+ ext2_vd *vd = NULL;
+
+ // Get the devices volume descriptor
+ vd = ext2GetVolume(name);
+ if (!vd)
+ return;
+
+ // Remove the device from the devoptab table
+ ext2RemoveDevice(name);
+
+ // Deinitialise the volume descriptor
+ ext2DeinitVolume(vd);
+
+ // Unmount the volume
+ ext2fs_close(vd->fs);
+ ext2fs_free(vd->fs);
+
+ //Free the io manager
+ mem_free(vd->io->private_data);
+ mem_free(vd->io);
+
+ // Free the volume descriptor
+ mem_free(vd);
+
+ return;
+}
+
+
+const char *ext2GetVolumeName (const char *name)
+{
+ if (!name) {
+ errno = EINVAL;
+ return NULL;
+ }
+
+ // Get the devices volume descriptor
+ ext2_vd *vd = ext2GetVolume(name);
+ if (!vd) {
+ errno = ENODEV;
+ return NULL;
+ }
+
+ return vd->fs->super->s_volume_name;
+}
+
+bool ext2SetVolumeName (const char *name, const char *volumeName)
+{
+ // Sanity check
+ if (!name || !volumeName) {
+ errno = EINVAL;
+ return false;
+ }
+
+ // Get the devices volume descriptor
+ ext2_vd *vd = ext2GetVolume(name);
+ if (!vd) {
+ errno = ENODEV;
+ return false;
+ }
+
+ // Lock
+ ext2Lock(vd);
+ int i;
+ for(i = 0; i < 15 && *volumeName != 0; ++i, volumeName++)
+ vd->fs->super->s_volume_name[i] = *volumeName;
+
+ vd->fs->super->s_volume_name[i] = '\0';
+
+ ext2fs_mark_super_dirty(vd->fs);
+
+ ext2Sync(vd, NULL);
+
+ // Unlock
+ ext2Unlock(vd);
+
+ return true;
+}
+
+int ext2FindPartitions (const DISC_INTERFACE *interface, sec_t **out_partitions)
+{
+ MASTER_BOOT_RECORD mbr;
+ PARTITION_RECORD *partition = NULL;
+ int partition_count = 0, ret = -1;
+ sec_t part_lba = 0;
+ sec_t * partitions = NULL;
+ int i;
+
+ union {
+ u8 buffer[512];
+ MASTER_BOOT_RECORD mbr;
+ EXTENDED_BOOT_RECORD ebr;
+ } sector;
+
+ // Sanity check
+ if (!interface) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ if(!out_partitions) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ // Start the device and check that it is inserted
+ if (!interface->startup()) {
+ errno = EIO;
+ return -1;
+ }
+ if (!interface->isInserted()) {
+ errno = EIO;
+ return 0;
+ }
+
+ struct ext2_super_block * super = (struct ext2_super_block *) malloc(SUPERBLOCK_SIZE); //1024 bytes
+ if(!super)
+ {
+ ext2_log_trace("no memory for superblock");
+ errno = ENOMEM;
+ return -1;
+ }
+
+ partitions = (sec_t *) malloc(sizeof(sec_t));
+ if(!partitions)
+ {
+ ext2_log_trace("no memory for partitions");
+ errno = ENOMEM;
+ mem_free(super);
+ return -1;
+ }
+ // Read the first sector on the device
+ if (!interface->readSectors(0, 1, §or.buffer)) {
+ errno = EIO;
+ mem_free(partitions);
+ mem_free(super);
+ return -1;
+ }
+
+ // If this is the devices master boot record
+ if (sector.mbr.signature == MBR_SIGNATURE)
+ {
+ memcpy(&mbr, §or, sizeof(MASTER_BOOT_RECORD));
+
+ // Search the partition table for all EXT2/3/4 partitions (max. 4 primary partitions)
+ for (i = 0; i < 4; i++)
+ {
+ partition = &mbr.partitions[i];
+ part_lba = ext2fs_le32_to_cpu(mbr.partitions[i].lba_start);
+
+ // Figure out what type of partition this is
+ switch (partition->type)
+ {
+ // Ignore empty partitions
+ case PARTITION_TYPE_EMPTY:
+ continue;
+
+ // EXT2/3/4 partition
+ case PARTITION_TYPE_LINUX:
+
+ // Read and validate the EXT partition
+ if (interface->readSectors(part_lba+SUPERBLOCK_OFFSET/BYTES_PER_SECTOR, SUPERBLOCK_SIZE/BYTES_PER_SECTOR, super))
+ {
+ if (ext2fs_le16_to_cpu(super->s_magic) == EXT2_SUPER_MAGIC)
+ {
+ partition_count++;
+ sec_t * tmp = (sec_t *) realloc(partitions, partition_count*sizeof(sec_t));
+ if(!tmp) goto cleanup;
+ partitions = tmp;
+ partitions[partition_count-1] = part_lba;
+ }
+ }
+
+ break;
+
+ // DOS 3.3+ or Windows 95 extended partition
+ case PARTITION_TYPE_DOS33_EXTENDED:
+ case PARTITION_TYPE_WIN95_EXTENDED:
+ {
+ ext2_log_trace("Partition %i: Claims to be Extended\n", i + 1);
+
+ // Walk the extended partition chain, finding all EXT partitions within it
+ sec_t ebr_lba = part_lba;
+ sec_t next_erb_lba = 0;
+ do {
+ // Read and validate the extended boot record
+ if (interface->readSectors(ebr_lba + next_erb_lba, 1, §or))
+ {
+ if (sector.ebr.signature == EBR_SIGNATURE)
+ {
+ ext2_log_trace("Logical Partition @ %d: %s type 0x%x\n", ebr_lba + next_erb_lba,
+ sector.ebr.partition.status == PARTITION_STATUS_BOOTABLE ? "bootable (active)" : "non-bootable",
+ sector.ebr.partition.type);
+
+ // Get the start sector of the current partition
+ // and the next extended boot record in the chain
+ part_lba = ebr_lba + next_erb_lba + ext2fs_le32_to_cpu(sector.ebr.partition.lba_start);
+ next_erb_lba = ext2fs_le32_to_cpu(sector.ebr.next_ebr.lba_start);
+
+ // Check if this partition has a valid EXT boot record
+ if (interface->readSectors(part_lba+SUPERBLOCK_OFFSET/BYTES_PER_SECTOR, SUPERBLOCK_SIZE/BYTES_PER_SECTOR, super))
+ {
+ if (ext2fs_le16_to_cpu(super->s_magic) == EXT2_SUPER_MAGIC)
+ {
+ partition_count++;
+ sec_t * tmp = (sec_t *) realloc(partitions, partition_count*sizeof(sec_t));
+ if(!tmp) goto cleanup;
+ partitions = tmp;
+ partitions[partition_count-1] = part_lba;
+ }
+ }
+ }
+ else
+ next_erb_lba = 0;
+ }
+
+ } while (next_erb_lba);
+
+ break;
+
+ }
+
+ // Unknown or unsupported partition type
+ default:
+ {
+ // Check if this partition has a valid EXT boot record anyway,
+ // it might be misrepresented due to a lazy partition editor
+ if (interface->readSectors(part_lba+SUPERBLOCK_OFFSET/BYTES_PER_SECTOR, SUPERBLOCK_SIZE/BYTES_PER_SECTOR, super))
+ {
+ if (ext2fs_le16_to_cpu(super->s_magic) == EXT2_SUPER_MAGIC)
+ {
+ partition_count++;
+ sec_t * tmp = (sec_t *) realloc(partitions, partition_count*sizeof(sec_t));
+ if(!tmp) goto cleanup;
+ partitions = tmp;
+ partitions[partition_count-1] = part_lba;
+ }
+ }
+ break;
+ }
+ }
+ }
+
+ // Else it is assumed this device has no master boot record
+ }
+ else
+ {
+ ext2_log_trace("No Master Boot Record was found!\n");
+
+ // As a last-ditched effort, search the first 64 sectors of the device for stray EXT partitions
+ for (i = 1; i < 64; i++)
+ {
+ if (interface->readSectors(i+SUPERBLOCK_OFFSET/BYTES_PER_SECTOR, SUPERBLOCK_SIZE/BYTES_PER_SECTOR, super))
+ {
+ if (ext2fs_le16_to_cpu(super->s_magic) == EXT2_SUPER_MAGIC)
+ {
+ partition_count++;
+ sec_t * tmp = (sec_t *) realloc(partitions, partition_count*sizeof(sec_t));
+ if(!tmp) goto cleanup;
+ partitions = tmp;
+ partitions[partition_count-1] = i;
+ }
+ }
+ }
+
+ }
+
+ // Return the found partitions (if any)
+ if (partition_count > 0)
+ {
+ *out_partitions = partitions;
+ ret = partition_count;
+ }
+
+cleanup:
+
+ if(partitions && partition_count == 0)
+ mem_free(partitions);
+ if(super)
+ mem_free(super);
+
+ return ret;
+}
+
diff --git a/libcustomext2fs/source/ext2_err.h b/libcustomext2fs/source/ext2_err.h
new file mode 100644
index 00000000..4f127443
--- /dev/null
+++ b/libcustomext2fs/source/ext2_err.h
@@ -0,0 +1,152 @@
+//
+// Copyright (C) 1993, 1994, 1995, 1996 Theodore Ts'o.
+//
+// This file may be redistributed under the terms of the GNU Public
+// License.
+#ifndef EXT2_ERR_H_
+#define EXT2_ERR_H_
+
+#define EXT2_ET_OK 0
+#define EXT2_ET_BASE -1
+#define EXT2_ET_MAGIC_EXT2FS_FILSYS -2
+#define EXT2_ET_MAGIC_BADBLOCKS_LIST -3
+#define EXT2_ET_MAGIC_BADBLOCKS_ITERATE -4
+#define EXT2_ET_MAGIC_INODE_SCAN -5
+#define EXT2_ET_MAGIC_IO_CHANNEL -6
+#define EXT2_ET_MAGIC_UNIX_IO_CHANNEL -7
+#define EXT2_ET_MAGIC_IO_MANAGER -8
+#define EXT2_ET_MAGIC_BLOCK_BITMAP -9
+#define EXT2_ET_MAGIC_INODE_BITMAP -10
+#define EXT2_ET_MAGIC_GENERIC_BITMAP -11
+#define EXT2_ET_MAGIC_TEST_IO_CHANNEL -12
+#define EXT2_ET_MAGIC_DBLIST -13
+#define EXT2_ET_MAGIC_ICOUNT -14
+#define EXT2_ET_MAGIC_PQ_IO_CHANNEL -15
+#define EXT2_ET_MAGIC_EXT2_FILE -16
+#define EXT2_ET_MAGIC_E2IMAGE -17
+#define EXT2_ET_MAGIC_INODE_IO_CHANNEL -18
+#define EXT2_ET_MAGIC_EXTENT_HANDLE -19
+#define EXT2_ET_BAD_MAGIC -20
+#define EXT2_ET_REV_TOO_HIGH -21
+#define EXT2_ET_RO_FILSYS -22
+#define EXT2_ET_GDESC_READ -23
+#define EXT2_ET_GDESC_WRITE -24
+#define EXT2_ET_GDESC_BAD_BLOCK_MAP -25
+#define EXT2_ET_GDESC_BAD_INODE_MAP -26
+#define EXT2_ET_GDESC_BAD_INODE_TABLE -27
+#define EXT2_ET_INODE_BITMAP_WRITE -28
+#define EXT2_ET_INODE_BITMAP_READ -29
+#define EXT2_ET_BLOCK_BITMAP_WRITE -30
+#define EXT2_ET_BLOCK_BITMAP_READ -31
+#define EXT2_ET_INODE_TABLE_WRITE -32
+#define EXT2_ET_INODE_TABLE_READ -33
+#define EXT2_ET_NEXT_INODE_READ -34
+#define EXT2_ET_UNEXPECTED_BLOCK_SIZE -35
+#define EXT2_ET_DIR_CORRUPTED -36
+#define EXT2_ET_SHORT_READ -37
+#define EXT2_ET_SHORT_WRITE -38
+#define EXT2_ET_DIR_NO_SPACE -39
+#define EXT2_ET_NO_INODE_BITMAP -40
+#define EXT2_ET_NO_BLOCK_BITMAP -41
+#define EXT2_ET_BAD_INODE_NUM -42
+#define EXT2_ET_BAD_BLOCK_NUM -45
+#define EXT2_ET_EXPAND_DIR_ERR -46
+#define EXT2_ET_TOOSMALL -47
+#define EXT2_ET_BAD_BLOCK_MARK -48
+#define EXT2_ET_BAD_BLOCK_UNMARK -49
+#define EXT2_ET_BAD_BLOCK_TEST -50
+#define EXT2_ET_BAD_INODE_MARK -51
+#define EXT2_ET_BAD_INODE_UNMARK -52
+#define EXT2_ET_BAD_INODE_TEST -53
+#define EXT2_ET_FUDGE_BLOCK_BITMAP_END -54
+#define EXT2_ET_FUDGE_INODE_BITMAP_END -55
+#define EXT2_ET_BAD_IND_BLOCK -56
+#define EXT2_ET_BAD_DIND_BLOCK -57
+#define EXT2_ET_BAD_TIND_BLOCK -58
+#define EXT2_ET_NEQ_BLOCK_BITMAP -59
+#define EXT2_ET_NEQ_INODE_BITMAP -60
+#define EXT2_ET_BAD_DEVICE_NAME -61
+#define EXT2_ET_MISSING_INODE_TABLE -62
+#define EXT2_ET_CORRUPT_SUPERBLOCK -63
+#define EXT2_ET_BAD_GENERIC_MARK -64
+#define EXT2_ET_BAD_GENERIC_UNMARK -65
+#define EXT2_ET_BAD_GENERIC_TEST -66
+#define EXT2_ET_SYMLINK_LOOP -67
+#define EXT2_ET_CALLBACK_NOTHANDLED -68
+#define EXT2_ET_BAD_BLOCK_IN_INODE_TABLE -69
+#define EXT2_ET_UNSUPP_FEATURE -70
+#define EXT2_ET_RO_UNSUPP_FEATURE -71
+#define EXT2_ET_LLSEEK_FAILED -72
+#define EXT2_ET_NO_MEMORY -73
+#define EXT2_ET_INVALID_ARGUMENT -74
+#define EXT2_ET_BLOCK_ALLOC_FAIL -75
+#define EXT2_ET_INODE_ALLOC_FAIL -76
+#define EXT2_ET_NO_DIRECTORY -77
+#define EXT2_ET_TOO_MANY_REFS -78
+#define EXT2_ET_FILE_NOT_FOUND -79
+#define EXT2_ET_FILE_RO -80
+#define EXT2_ET_DB_NOT_FOUND -81
+#define EXT2_ET_DIR_EXISTS -82
+#define EXT2_ET_UNIMPLEMENTED -83
+#define EXT2_ET_CANCEL_REQUESTED -84
+#define EXT2_ET_FILE_TOO_BIG -85
+#define EXT2_ET_JOURNAL_NOT_BLOCK -86
+#define EXT2_ET_NO_JOURNAL_SB -87
+#define EXT2_ET_JOURNAL_TOO_SMALL -88
+#define EXT2_ET_JOURNAL_UNSUPP_VERSION -89
+#define EXT2_ET_LOAD_EXT_JOURNAL -90
+#define EXT2_ET_NO_JOURNAL -91
+#define EXT2_ET_DIRHASH_UNSUPP -92
+#define EXT2_ET_BAD_EA_BLOCK_NUM -93
+#define EXT2_ET_TOO_MANY_INODES -94
+#define EXT2_ET_NOT_IMAGE_FILE -95
+#define EXT2_ET_RES_GDT_BLOCKS -96
+#define EXT2_ET_RESIZE_INODE_CORRUPT -97
+#define EXT2_ET_SET_BMAP_NO_IND -98
+#define EXT2_ET_TDB_SUCCESS -99
+#define EXT2_ET_TDB_ERR_CORRUPT -100
+#define EXT2_ET_TDB_ERR_IO -101
+#define EXT2_ET_TDB_ERR_LOCK -102
+#define EXT2_ET_TDB_ERR_OOM -103
+#define EXT2_ET_TDB_ERR_EXISTS -104
+#define EXT2_ET_TDB_ERR_NOLOCK -105
+#define EXT2_ET_TDB_ERR_EINVAL -106
+#define EXT2_ET_TDB_ERR_NOEXIST -107
+#define EXT2_ET_TDB_ERR_RDONLY -108
+#define EXT2_ET_DBLIST_EMPTY -109
+#define EXT2_ET_RO_BLOCK_ITERATE -110
+#define EXT2_ET_MAGIC_EXTENT_PATH -111
+#define EXT2_ET_MAGIC_RESERVED_10 -112
+#define EXT2_ET_MAGIC_RESERVED_11 -113
+#define EXT2_ET_MAGIC_RESERVED_12 -114
+#define EXT2_ET_MAGIC_RESERVED_13 -115
+#define EXT2_ET_MAGIC_RESERVED_14 -116
+#define EXT2_ET_MAGIC_RESERVED_15 -117
+#define EXT2_ET_MAGIC_RESERVED_16 -118
+#define EXT2_ET_MAGIC_RESERVED_17 -119
+#define EXT2_ET_MAGIC_RESERVED_18 -120
+#define EXT2_ET_MAGIC_RESERVED_19 -121
+#define EXT2_ET_EXTENT_HEADER_BAD -122
+#define EXT2_ET_EXTENT_INDEX_BAD -123
+#define EXT2_ET_EXTENT_LEAF_BAD -124
+#define EXT2_ET_EXTENT_NO_SPACE -125
+#define EXT2_ET_INODE_NOT_EXTENT -126
+#define EXT2_ET_EXTENT_NO_NEXT -127
+#define EXT2_ET_EXTENT_NO_PREV -128
+#define EXT2_ET_EXTENT_NO_UP -129
+#define EXT2_ET_EXTENT_NO_DOWN -130
+#define EXT2_ET_NO_CURRENT_NODE -131
+#define EXT2_ET_OP_NOT_SUPPORTED -132
+#define EXT2_ET_CANT_INSERT_EXTENT -133
+#define EXT2_ET_CANT_SPLIT_EXTENT -134
+#define EXT2_ET_EXTENT_NOT_FOUND -135
+#define EXT2_ET_EXTENT_NOT_SUPPORTED -136
+#define EXT2_ET_EXTENT_INVALID_LENGTH -137
+#define EXT2_ET_IO_CHANNEL_NO_SUPPORT_64 -138
+#define EXT2_NO_MTAB_FILE -139
+#define EXT2_ET_MAGIC_GENERIC_BITMAP64 -140
+#define EXT2_ET_MAGIC_BLOCK_BITMAP64 -141
+#define EXT2_ET_MAGIC_INODE_BITMAP64 -142
+#define EXT2_ET_CANT_USE_LEGACY_BITMAPS -143
+
+#endif
diff --git a/libcustomext2fs/source/ext2_ext_attr.h b/libcustomext2fs/source/ext2_ext_attr.h
new file mode 100644
index 00000000..ed548d12
--- /dev/null
+++ b/libcustomext2fs/source/ext2_ext_attr.h
@@ -0,0 +1,71 @@
+/*
+ File: linux/ext2_ext_attr.h
+
+ On-disk format of extended attributes for the ext2 filesystem.
+
+ (C) 2000 Andreas Gruenbacher,
+*/
+
+#ifndef _EXT2_EXT_ATTR_H
+#define _EXT2_EXT_ATTR_H
+/* Magic value in attribute blocks */
+#define EXT2_EXT_ATTR_MAGIC_v1 0xEA010000
+#define EXT2_EXT_ATTR_MAGIC 0xEA020000
+
+/* Maximum number of references to one attribute block */
+#define EXT2_EXT_ATTR_REFCOUNT_MAX 1024
+
+struct ext2_ext_attr_header {
+ __u32 h_magic; /* magic number for identification */
+ __u32 h_refcount; /* reference count */
+ __u32 h_blocks; /* number of disk blocks used */
+ __u32 h_hash; /* hash value of all attributes */
+ __u32 h_reserved[4]; /* zero right now */
+};
+
+struct ext2_ext_attr_entry {
+ __u8 e_name_len; /* length of name */
+ __u8 e_name_index; /* attribute name index */
+ __u16 e_value_offs; /* offset in disk block of value */
+ __u32 e_value_block; /* disk block attribute is stored on (n/i) */
+ __u32 e_value_size; /* size of attribute value */
+ __u32 e_hash; /* hash value of name and value */
+#if 0
+ char e_name[0]; /* attribute name */
+#endif
+};
+
+#define EXT2_EXT_ATTR_PAD_BITS 2
+#define EXT2_EXT_ATTR_PAD ((unsigned) 1<e_name_len)) )
+#define EXT2_EXT_ATTR_SIZE(size) \
+ (((size) + EXT2_EXT_ATTR_ROUND) & ~EXT2_EXT_ATTR_ROUND)
+#define EXT2_EXT_IS_LAST_ENTRY(entry) (*((__u32 *)(entry)) == 0UL)
+#define EXT2_EXT_ATTR_NAME(entry) \
+ (((char *) (entry)) + sizeof(struct ext2_ext_attr_entry))
+#define EXT2_XATTR_LEN(name_len) \
+ (((name_len) + EXT2_EXT_ATTR_ROUND + \
+ sizeof(struct ext2_xattr_entry)) & ~EXT2_EXT_ATTR_ROUND)
+#define EXT2_XATTR_SIZE(size) \
+ (((size) + EXT2_EXT_ATTR_ROUND) & ~EXT2_EXT_ATTR_ROUND)
+
+#ifdef __KERNEL__
+# ifdef CONFIG_EXT2_FS_EXT_ATTR
+extern int ext2_get_ext_attr(struct inode *, const char *, char *, size_t, int);
+extern int ext2_set_ext_attr(struct inode *, const char *, char *, size_t, int);
+extern void ext2_ext_attr_free_inode(struct inode *inode);
+extern void ext2_ext_attr_put_super(struct super_block *sb);
+extern int ext2_ext_attr_init(void);
+extern void ext2_ext_attr_done(void);
+# else
+# define ext2_get_ext_attr NULL
+# define ext2_set_ext_attr NULL
+# endif
+#endif /* __KERNEL__ */
+#endif /* _EXT2_EXT_ATTR_H */
diff --git a/libcustomext2fs/source/ext2_frag.c b/libcustomext2fs/source/ext2_frag.c
new file mode 100644
index 00000000..e05a4bc7
--- /dev/null
+++ b/libcustomext2fs/source/ext2_frag.c
@@ -0,0 +1,60 @@
+#include "ext2_internal.h"
+#include "ext2_frag.h"
+
+typedef struct _PrivData
+{
+ _ext2_frag_append_t append_fragment;
+ void * callback_data;
+} PrivDataST;
+
+static int block_iter_callback(ext2_filsys fs, blk64_t *blocknr, e2_blkcnt_t blockcnt, blk64_t ref_block, int ref_offset, void *privateData)
+{
+ PrivDataST *priv = (PrivDataST *) privateData;
+ blk64_t block;
+ block = *blocknr;
+
+ return priv->append_fragment(priv->callback_data, blockcnt*fs->io->block_size/512, block*fs->io->block_size/512, fs->io->block_size/512);
+}
+
+int _EXT2_get_fragments(const char *in_path, _ext2_frag_append_t append_fragment, void *callback_data)
+{
+ ext2_inode_t *ni = NULL;
+ ext2_vd *vd;
+
+ vd = ext2GetVolume(in_path);
+
+ if(!vd)
+ {
+ errno = EXDEV;
+ return -1;
+ }
+
+ // Get the actual path of the entry
+ const char * path = ext2RealPath(in_path);
+ if (!path) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ // Find the entry
+ ni = ext2OpenEntry(vd, path);
+ if (!ni) {
+ errno = ENOENT;
+ return -1;
+ }
+
+ PrivDataST priv;
+ priv.callback_data = callback_data;
+ priv.append_fragment = append_fragment;
+
+ int ret = ext2fs_block_iterate3(vd->fs, ni->ino, BLOCK_FLAG_DATA_ONLY, NULL, block_iter_callback, &priv);
+
+ if(ret == 0)
+ ret = priv.append_fragment(callback_data, EXT2_I_SIZE(&ni->ni) >> 9, 0, 0);
+
+ ext2UpdateTimes(vd, ni, EXT2_UPDATE_ATIME);
+
+ ext2CloseEntry(vd, ni);
+
+ return ret;
+}
diff --git a/source/libs/libext2fs/ext2_frag.h b/libcustomext2fs/source/ext2_frag.h
similarity index 100%
rename from source/libs/libext2fs/ext2_frag.h
rename to libcustomext2fs/source/ext2_frag.h
diff --git a/libcustomext2fs/source/ext2_fs.h b/libcustomext2fs/source/ext2_fs.h
new file mode 100644
index 00000000..132663d3
--- /dev/null
+++ b/libcustomext2fs/source/ext2_fs.h
@@ -0,0 +1,798 @@
+/*
+ * linux/include/linux/ext2_fs.h
+ *
+ * Copyright (C) 1992, 1993, 1994, 1995
+ * Remy Card (card@masi.ibp.fr)
+ * Laboratoire MASI - Institut Blaise Pascal
+ * Universite Pierre et Marie Curie (Paris VI)
+ *
+ * from
+ *
+ * linux/include/linux/minix_fs.h
+ *
+ * Copyright (C) 1991, 1992 Linus Torvalds
+ */
+
+#ifndef _LINUX_EXT2_FS_H
+#define _LINUX_EXT2_FS_H
+
+#include "ext2_types.h" /* Changed from linux/types.h */
+
+/*
+ * The second extended filesystem constants/structures
+ */
+
+/*
+ * Define EXT2FS_DEBUG to produce debug messages
+ */
+#undef EXT2FS_DEBUG
+
+/*
+ * Define EXT2_PREALLOCATE to preallocate data blocks for expanding files
+ */
+#define EXT2_PREALLOCATE
+#define EXT2_DEFAULT_PREALLOC_BLOCKS 8
+
+/*
+ * The second extended file system version
+ */
+#define EXT2FS_DATE "95/08/09"
+#define EXT2FS_VERSION "0.5b"
+
+/*
+ * Special inode numbers
+ */
+#define EXT2_BAD_INO 1 /* Bad blocks inode */
+#define EXT2_ROOT_INO 2 /* Root inode */
+#define EXT2_ACL_IDX_INO 3 /* ACL inode */
+#define EXT2_ACL_DATA_INO 4 /* ACL inode */
+#define EXT2_BOOT_LOADER_INO 5 /* Boot loader inode */
+#define EXT2_UNDEL_DIR_INO 6 /* Undelete directory inode */
+#define EXT2_RESIZE_INO 7 /* Reserved group descriptors inode */
+#define EXT2_JOURNAL_INO 8 /* Journal inode */
+#define EXT2_EXCLUDE_INO 9 /* The "exclude" inode, for snapshots */
+
+/* First non-reserved inode for old ext2 filesystems */
+#define EXT2_GOOD_OLD_FIRST_INO 11
+
+/*
+ * The second extended file system magic number
+ */
+#define EXT2_SUPER_MAGIC 0xEF53
+
+#ifdef __KERNEL__
+#define EXT2_SB(sb) (&((sb)->u.ext2_sb))
+#else
+/* Assume that user mode programs are passing in an ext2fs superblock, not
+ * a kernel struct super_block. This will allow us to call the feature-test
+ * macros from user land. */
+#define EXT2_SB(sb) (sb)
+#endif
+
+/*
+ * Maximal count of links to a file
+ */
+#define EXT2_LINK_MAX 65000
+
+/*
+ * Macro-instructions used to manage several block sizes
+ */
+#define EXT2_MIN_BLOCK_LOG_SIZE 10 /* 1024 */
+#define EXT2_MAX_BLOCK_LOG_SIZE 16 /* 65536 */
+#define EXT2_MIN_BLOCK_SIZE (1 << EXT2_MIN_BLOCK_LOG_SIZE)
+#define EXT2_MAX_BLOCK_SIZE (1 << EXT2_MAX_BLOCK_LOG_SIZE)
+#ifdef __KERNEL__
+#define EXT2_BLOCK_SIZE(s) ((s)->s_blocksize)
+#define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_blocksize_bits)
+#define EXT2_ADDR_PER_BLOCK_BITS(s) (EXT2_SB(s)->addr_per_block_bits)
+#define EXT2_INODE_SIZE(s) (EXT2_SB(s)->s_inode_size)
+#define EXT2_FIRST_INO(s) (EXT2_SB(s)->s_first_ino)
+#else
+#define EXT2_BLOCK_SIZE(s) (EXT2_MIN_BLOCK_SIZE << (s)->s_log_block_size)
+#define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_log_block_size + 10)
+#define EXT2_INODE_SIZE(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \
+ EXT2_GOOD_OLD_INODE_SIZE : (s)->s_inode_size)
+#define EXT2_FIRST_INO(s) (((s)->s_rev_level == EXT2_GOOD_OLD_REV) ? \
+ EXT2_GOOD_OLD_FIRST_INO : (s)->s_first_ino)
+#endif
+#define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof(__u32))
+
+/*
+ * Macro-instructions used to manage fragments
+ */
+#define EXT2_MIN_FRAG_SIZE EXT2_MIN_BLOCK_SIZE
+#define EXT2_MAX_FRAG_SIZE EXT2_MAX_BLOCK_SIZE
+#define EXT2_MIN_FRAG_LOG_SIZE EXT2_MIN_BLOCK_LOG_SIZE
+#ifdef __KERNEL__
+# define EXT2_FRAG_SIZE(s) (EXT2_SB(s)->s_frag_size)
+# define EXT2_FRAGS_PER_BLOCK(s) (EXT2_SB(s)->s_frags_per_block)
+#else
+# define EXT2_FRAG_SIZE(s) (EXT2_MIN_FRAG_SIZE << (s)->s_log_frag_size)
+# define EXT2_FRAGS_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / EXT2_FRAG_SIZE(s))
+#endif
+
+/*
+ * ACL structures
+ */
+struct ext2_acl_header /* Header of Access Control Lists */
+{
+ __u32 aclh_size;
+ __u32 aclh_file_count;
+ __u32 aclh_acle_count;
+ __u32 aclh_first_acle;
+};
+
+struct ext2_acl_entry /* Access Control List Entry */
+{
+ __u32 acle_size;
+ __u16 acle_perms; /* Access permissions */
+ __u16 acle_type; /* Type of entry */
+ __u16 acle_tag; /* User or group identity */
+ __u16 acle_pad1;
+ __u32 acle_next; /* Pointer on next entry for the */
+ /* same inode or on next free entry */
+};
+
+/*
+ * Structure of a blocks group descriptor
+ */
+struct ext2_group_desc
+{
+ __u32 bg_block_bitmap; /* Blocks bitmap block */
+ __u32 bg_inode_bitmap; /* Inodes bitmap block */
+ __u32 bg_inode_table; /* Inodes table block */
+ __u16 bg_free_blocks_count; /* Free blocks count */
+ __u16 bg_free_inodes_count; /* Free inodes count */
+ __u16 bg_used_dirs_count; /* Directories count */
+ __u16 bg_flags;
+ __u32 bg_reserved[2];
+ __u16 bg_itable_unused; /* Unused inodes count */
+ __u16 bg_checksum; /* crc16(s_uuid+grouo_num+group_desc)*/
+};
+
+/*
+ * Structure of a blocks group descriptor
+ */
+struct ext4_group_desc
+{
+ __u32 bg_block_bitmap; /* Blocks bitmap block */
+ __u32 bg_inode_bitmap; /* Inodes bitmap block */
+ __u32 bg_inode_table; /* Inodes table block */
+ __u16 bg_free_blocks_count; /* Free blocks count */
+ __u16 bg_free_inodes_count; /* Free inodes count */
+ __u16 bg_used_dirs_count; /* Directories count */
+ __u16 bg_flags; /* EXT4_BG_flags (INODE_UNINIT, etc) */
+ __u32 bg_reserved[2]; /* Likely block/inode bitmap checksum */
+ __u16 bg_itable_unused; /* Unused inodes count */
+ __u16 bg_checksum; /* crc16(sb_uuid+group+desc) */
+ __u32 bg_block_bitmap_hi; /* Blocks bitmap block MSB */
+ __u32 bg_inode_bitmap_hi; /* Inodes bitmap block MSB */
+ __u32 bg_inode_table_hi; /* Inodes table block MSB */
+ __u16 bg_free_blocks_count_hi;/* Free blocks count MSB */
+ __u16 bg_free_inodes_count_hi;/* Free inodes count MSB */
+ __u16 bg_used_dirs_count_hi; /* Directories count MSB */
+ __u16 bg_itable_unused_hi; /* Unused inodes count MSB */
+ __u32 bg_reserved2[3];
+};
+
+#define EXT2_BG_INODE_UNINIT 0x0001 /* Inode table/bitmap not initialized */
+#define EXT2_BG_BLOCK_UNINIT 0x0002 /* Block bitmap not initialized */
+#define EXT2_BG_INODE_ZEROED 0x0004 /* On-disk itable initialized to zero */
+
+/*
+ * Data structures used by the directory indexing feature
+ *
+ * Note: all of the multibyte integer fields are little endian.
+ */
+
+/*
+ * Note: dx_root_info is laid out so that if it should somehow get
+ * overlaid by a dirent the two low bits of the hash version will be
+ * zero. Therefore, the hash version mod 4 should never be 0.
+ * Sincerely, the paranoia department.
+ */
+struct ext2_dx_root_info {
+ __u32 reserved_zero;
+ __u8 hash_version; /* 0 now, 1 at release */
+ __u8 info_length; /* 8 */
+ __u8 indirect_levels;
+ __u8 unused_flags;
+};
+
+#define EXT2_HASH_LEGACY 0
+#define EXT2_HASH_HALF_MD4 1
+#define EXT2_HASH_TEA 2
+#define EXT2_HASH_LEGACY_UNSIGNED 3 /* reserved for userspace lib */
+#define EXT2_HASH_HALF_MD4_UNSIGNED 4 /* reserved for userspace lib */
+#define EXT2_HASH_TEA_UNSIGNED 5 /* reserved for userspace lib */
+
+#define EXT2_HASH_FLAG_INCOMPAT 0x1
+
+struct ext2_dx_entry {
+ __u32 hash;
+ __u32 block;
+};
+
+struct ext2_dx_countlimit {
+ __u16 limit;
+ __u16 count;
+};
+
+
+/*
+ * Macro-instructions used to manage group descriptors
+ */
+#define EXT2_MIN_DESC_SIZE 32
+#define EXT2_MIN_DESC_SIZE_64BIT 64
+#define EXT2_MAX_DESC_SIZE EXT2_MIN_BLOCK_SIZE
+#define EXT2_DESC_SIZE(s) \
+ ((EXT2_SB(s)->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT) ? \
+ (s)->s_desc_size : EXT2_MIN_DESC_SIZE)
+
+#define EXT2_BLOCKS_PER_GROUP(s) (EXT2_SB(s)->s_blocks_per_group)
+#define EXT2_INODES_PER_GROUP(s) (EXT2_SB(s)->s_inodes_per_group)
+#define EXT2_INODES_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s)/EXT2_INODE_SIZE(s))
+/* limits imposed by 16-bit value gd_free_{blocks,inode}_count */
+#define EXT2_MAX_BLOCKS_PER_GROUP(s) ((1 << 16) - 8)
+#define EXT2_MAX_INODES_PER_GROUP(s) ((1 << 16) - EXT2_INODES_PER_BLOCK(s))
+#ifdef __KERNEL__
+#define EXT2_DESC_PER_BLOCK(s) (EXT2_SB(s)->s_desc_per_block)
+#define EXT2_DESC_PER_BLOCK_BITS(s) (EXT2_SB(s)->s_desc_per_block_bits)
+#else
+#define EXT2_DESC_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / EXT2_DESC_SIZE(s))
+#endif
+
+/*
+ * Constants relative to the data blocks
+ */
+#define EXT2_NDIR_BLOCKS 12
+#define EXT2_IND_BLOCK EXT2_NDIR_BLOCKS
+#define EXT2_DIND_BLOCK (EXT2_IND_BLOCK + 1)
+#define EXT2_TIND_BLOCK (EXT2_DIND_BLOCK + 1)
+#define EXT2_N_BLOCKS (EXT2_TIND_BLOCK + 1)
+
+/*
+ * Inode flags
+ */
+#define EXT2_SECRM_FL 0x00000001 /* Secure deletion */
+#define EXT2_UNRM_FL 0x00000002 /* Undelete */
+#define EXT2_COMPR_FL 0x00000004 /* Compress file */
+#define EXT2_SYNC_FL 0x00000008 /* Synchronous updates */
+#define EXT2_IMMUTABLE_FL 0x00000010 /* Immutable file */
+#define EXT2_APPEND_FL 0x00000020 /* writes to file may only append */
+#define EXT2_NODUMP_FL 0x00000040 /* do not dump file */
+#define EXT2_NOATIME_FL 0x00000080 /* do not update atime */
+/* Reserved for compression usage... */
+#define EXT2_DIRTY_FL 0x00000100
+#define EXT2_COMPRBLK_FL 0x00000200 /* One or more compressed clusters */
+#define EXT2_NOCOMPR_FL 0x00000400 /* Access raw compressed data */
+#define EXT2_ECOMPR_FL 0x00000800 /* Compression error */
+/* End compression flags --- maybe not all used */
+#define EXT2_BTREE_FL 0x00001000 /* btree format dir */
+#define EXT2_INDEX_FL 0x00001000 /* hash-indexed directory */
+#define EXT2_IMAGIC_FL 0x00002000
+#define EXT3_JOURNAL_DATA_FL 0x00004000 /* file data should be journaled */
+#define EXT2_NOTAIL_FL 0x00008000 /* file tail should not be merged */
+#define EXT2_DIRSYNC_FL 0x00010000 /* Synchronous directory modifications */
+#define EXT2_TOPDIR_FL 0x00020000 /* Top of directory hierarchies*/
+#define EXT4_HUGE_FILE_FL 0x00040000 /* Set to each huge file */
+#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */
+#define EXT4_EA_INODE_FL 0x00200000 /* Inode used for large EA */
+#define EXT4_EOFBLOCKS_FL 0x00400000 /* Blocks allocated beyond EOF */
+#define EXT4_SNAPFILE_FL 0x01000000 /* Inode is a snapshot */
+#define EXT4_SNAPFILE_DELETED_FL 0x04000000 /* Snapshot is being deleted */
+#define EXT4_SNAPFILE_SHRUNK_FL 0x08000000 /* Snapshot shrink has completed */
+#define EXT2_RESERVED_FL 0x80000000 /* reserved for ext2 lib */
+
+#define EXT2_FL_USER_VISIBLE 0x004BDFFF /* User visible flags */
+#define EXT2_FL_USER_MODIFIABLE 0x004B80FF /* User modifiable flags */
+
+/*
+ * ioctl commands
+ */
+
+/* Used for online resize */
+struct ext2_new_group_input {
+ __u32 group; /* Group number for this data */
+ __u32 block_bitmap; /* Absolute block number of block bitmap */
+ __u32 inode_bitmap; /* Absolute block number of inode bitmap */
+ __u32 inode_table; /* Absolute block number of inode table start */
+ __u32 blocks_count; /* Total number of blocks in this group */
+ __u16 reserved_blocks; /* Number of reserved blocks in this group */
+ __u16 unused; /* Number of reserved GDT blocks in group */
+};
+
+struct ext4_new_group_input {
+ __u32 group; /* Group number for this data */
+ __u64 block_bitmap; /* Absolute block number of block bitmap */
+ __u64 inode_bitmap; /* Absolute block number of inode bitmap */
+ __u64 inode_table; /* Absolute block number of inode table start */
+ __u32 blocks_count; /* Total number of blocks in this group */
+ __u16 reserved_blocks; /* Number of reserved blocks in this group */
+ __u16 unused;
+};
+
+#ifdef __GNU__ /* Needed for the Hurd */
+#define _IOT_ext2_new_group_input _IOT (_IOTS(__u32), 5, _IOTS(__u16), 2, 0, 0)
+#endif
+
+#define EXT2_IOC_GETFLAGS _IOR('f', 1, long)
+#define EXT2_IOC_SETFLAGS _IOW('f', 2, long)
+#define EXT2_IOC_GETVERSION _IOR('v', 1, long)
+#define EXT2_IOC_SETVERSION _IOW('v', 2, long)
+#define EXT2_IOC_GETVERSION_NEW _IOR('f', 3, long)
+#define EXT2_IOC_SETVERSION_NEW _IOW('f', 4, long)
+#define EXT2_IOC_GROUP_EXTEND _IOW('f', 7, unsigned long)
+#define EXT2_IOC_GROUP_ADD _IOW('f', 8,struct ext2_new_group_input)
+#define EXT4_IOC_GROUP_ADD _IOW('f', 8,struct ext4_new_group_input)
+
+/*
+ * Structure of an inode on the disk
+ */
+struct ext2_inode {
+ __u16 i_mode; /* File mode */
+ __u16 i_uid; /* Low 16 bits of Owner Uid */
+ __u32 i_size; /* Size in bytes */
+ __u32 i_atime; /* Access time */
+ __u32 i_ctime; /* Inode change time */
+ __u32 i_mtime; /* Modification time */
+ __u32 i_dtime; /* Deletion Time */
+ __u16 i_gid; /* Low 16 bits of Group Id */
+ __u16 i_links_count; /* Links count */
+ __u32 i_blocks; /* Blocks count */
+ __u32 i_flags; /* File flags */
+ union {
+ struct {
+ __u32 l_i_version; /* was l_i_reserved1 */
+ } linux1;
+ struct {
+ __u32 h_i_translator;
+ } hurd1;
+ } osd1; /* OS dependent 1 */
+ __u32 i_block[EXT2_N_BLOCKS];/* Pointers to blocks */
+ __u32 i_generation; /* File version (for NFS) */
+ __u32 i_file_acl; /* File ACL */
+ __u32 i_size_high; /* Formerly i_dir_acl, directory ACL */
+ __u32 i_faddr; /* Fragment address */
+ union {
+ struct {
+ __u16 l_i_blocks_hi;
+ __u16 l_i_file_acl_high;
+ __u16 l_i_uid_high; /* these 2 fields */
+ __u16 l_i_gid_high; /* were reserved2[0] */
+ __u32 l_i_reserved2;
+ } linux2;
+ struct {
+ __u8 h_i_frag; /* Fragment number */
+ __u8 h_i_fsize; /* Fragment size */
+ __u16 h_i_mode_high;
+ __u16 h_i_uid_high;
+ __u16 h_i_gid_high;
+ __u32 h_i_author;
+ } hurd2;
+ } osd2; /* OS dependent 2 */
+};
+
+/*
+ * Permanent part of an large inode on the disk
+ */
+struct ext2_inode_large {
+ __u16 i_mode; /* File mode */
+ __u16 i_uid; /* Low 16 bits of Owner Uid */
+ __u32 i_size; /* Size in bytes */
+ __u32 i_atime; /* Access time */
+ __u32 i_ctime; /* Inode Change time */
+ __u32 i_mtime; /* Modification time */
+ __u32 i_dtime; /* Deletion Time */
+ __u16 i_gid; /* Low 16 bits of Group Id */
+ __u16 i_links_count; /* Links count */
+ __u32 i_blocks; /* Blocks count */
+ __u32 i_flags; /* File flags */
+ union {
+ struct {
+ __u32 l_i_version; /* was l_i_reserved1 */
+ } linux1;
+ struct {
+ __u32 h_i_translator;
+ } hurd1;
+ } osd1; /* OS dependent 1 */
+ __u32 i_block[EXT2_N_BLOCKS];/* Pointers to blocks */
+ __u32 i_generation; /* File version (for NFS) */
+ __u32 i_file_acl; /* File ACL */
+ __u32 i_size_high; /* Formerly i_dir_acl, directory ACL */
+ __u32 i_faddr; /* Fragment address */
+ union {
+ struct {
+ __u16 l_i_blocks_hi;
+ __u16 l_i_file_acl_high;
+ __u16 l_i_uid_high; /* these 2 fields */
+ __u16 l_i_gid_high; /* were reserved2[0] */
+ __u32 l_i_reserved2;
+ } linux2;
+ struct {
+ __u8 h_i_frag; /* Fragment number */
+ __u8 h_i_fsize; /* Fragment size */
+ __u16 h_i_mode_high;
+ __u16 h_i_uid_high;
+ __u16 h_i_gid_high;
+ __u32 h_i_author;
+ } hurd2;
+ } osd2; /* OS dependent 2 */
+ __u16 i_extra_isize;
+ __u16 i_pad1;
+ __u32 i_ctime_extra; /* extra Change time (nsec << 2 | epoch) */
+ __u32 i_mtime_extra; /* extra Modification time (nsec << 2 | epoch) */
+ __u32 i_atime_extra; /* extra Access time (nsec << 2 | epoch) */
+ __u32 i_crtime; /* File creation time */
+ __u32 i_crtime_extra; /* extra File creation time (nsec << 2 | epoch)*/
+ __u32 i_version_hi; /* high 32 bits for 64-bit version */
+};
+
+#define i_dir_acl i_size_high
+
+#if defined(__KERNEL__) || defined(__linux__)
+#define i_reserved1 osd1.linux1.l_i_reserved1
+#define i_frag osd2.linux2.l_i_frag
+#define i_fsize osd2.linux2.l_i_fsize
+#define i_uid_low i_uid
+#define i_gid_low i_gid
+#define i_uid_high osd2.linux2.l_i_uid_high
+#define i_gid_high osd2.linux2.l_i_gid_high
+#define i_reserved2 osd2.linux2.l_i_reserved2
+#else
+#if defined(__GNU__)
+
+#define i_translator osd1.hurd1.h_i_translator
+#define i_frag osd2.hurd2.h_i_frag;
+#define i_fsize osd2.hurd2.h_i_fsize;
+#define i_uid_high osd2.hurd2.h_i_uid_high
+#define i_gid_high osd2.hurd2.h_i_gid_high
+#define i_author osd2.hurd2.h_i_author
+
+#endif /* __GNU__ */
+#endif /* defined(__KERNEL__) || defined(__linux__) */
+
+#define inode_uid(inode) ((inode).i_uid | (inode).osd2.linux2.l_i_uid_high << 16)
+#define inode_gid(inode) ((inode).i_gid | (inode).osd2.linux2.l_i_gid_high << 16)
+#define ext2fs_set_i_uid_high(inode,x) ((inode).osd2.linux2.l_i_uid_high = (x))
+#define ext2fs_set_i_gid_high(inode,x) ((inode).osd2.linux2.l_i_gid_high = (x))
+
+/*
+ * File system states
+ */
+#define EXT2_VALID_FS 0x0001 /* Unmounted cleanly */
+#define EXT2_ERROR_FS 0x0002 /* Errors detected */
+#define EXT3_ORPHAN_FS 0x0004 /* Orphans being recovered */
+
+/*
+ * Misc. filesystem flags
+ */
+#define EXT2_FLAGS_SIGNED_HASH 0x0001 /* Signed dirhash in use */
+#define EXT2_FLAGS_UNSIGNED_HASH 0x0002 /* Unsigned dirhash in use */
+#define EXT2_FLAGS_TEST_FILESYS 0x0004 /* OK for use on development code */
+#define EXT2_FLAGS_IS_SNAPSHOT 0x0010 /* This is a snapshot image */
+#define EXT2_FLAGS_FIX_SNAPSHOT 0x0020 /* Snapshot inodes corrupted */
+#define EXT2_FLAGS_FIX_EXCLUDE 0x0040 /* Exclude bitmaps corrupted */
+
+/*
+ * Mount flags
+ */
+#define EXT2_MOUNT_CHECK 0x0001 /* Do mount-time checks */
+#define EXT2_MOUNT_GRPID 0x0004 /* Create files with directory's group */
+#define EXT2_MOUNT_DEBUG 0x0008 /* Some debugging messages */
+#define EXT2_MOUNT_ERRORS_CONT 0x0010 /* Continue on errors */
+#define EXT2_MOUNT_ERRORS_RO 0x0020 /* Remount fs ro on errors */
+#define EXT2_MOUNT_ERRORS_PANIC 0x0040 /* Panic on errors */
+#define EXT2_MOUNT_MINIX_DF 0x0080 /* Mimics the Minix statfs */
+#define EXT2_MOUNT_NO_UID32 0x0200 /* Disable 32-bit UIDs */
+
+#define clear_opt(o, opt) o &= ~EXT2_MOUNT_##opt
+#define set_opt(o, opt) o |= EXT2_MOUNT_##opt
+#define test_opt(sb, opt) (EXT2_SB(sb)->s_mount_opt & \
+ EXT2_MOUNT_##opt)
+/*
+ * Maximal mount counts between two filesystem checks
+ */
+#define EXT2_DFL_MAX_MNT_COUNT 20 /* Allow 20 mounts */
+#define EXT2_DFL_CHECKINTERVAL 0 /* Don't use interval check */
+
+/*
+ * Behaviour when detecting errors
+ */
+#define EXT2_ERRORS_CONTINUE 1 /* Continue execution */
+#define EXT2_ERRORS_RO 2 /* Remount fs read-only */
+#define EXT2_ERRORS_PANIC 3 /* Panic */
+#define EXT2_ERRORS_DEFAULT EXT2_ERRORS_CONTINUE
+
+#if (__GNUC__ >= 4)
+#define ext4_offsetof(TYPE,MEMBER) __builtin_offsetof(TYPE,MEMBER)
+#else
+#define ext4_offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
+#endif
+
+/*
+ * Structure of the super block
+ */
+struct ext2_super_block {
+ __u32 s_inodes_count; /* Inodes count */
+ __u32 s_blocks_count; /* Blocks count */
+ __u32 s_r_blocks_count; /* Reserved blocks count */
+ __u32 s_free_blocks_count; /* Free blocks count */
+ __u32 s_free_inodes_count; /* Free inodes count */
+ __u32 s_first_data_block; /* First Data Block */
+ __u32 s_log_block_size; /* Block size */
+ __s32 s_log_frag_size; /* Fragment size */
+ __u32 s_blocks_per_group; /* # Blocks per group */
+ __u32 s_frags_per_group; /* # Fragments per group */
+ __u32 s_inodes_per_group; /* # Inodes per group */
+ __u32 s_mtime; /* Mount time */
+ __u32 s_wtime; /* Write time */
+ __u16 s_mnt_count; /* Mount count */
+ __s16 s_max_mnt_count; /* Maximal mount count */
+ __u16 s_magic; /* Magic signature */
+ __u16 s_state; /* File system state */
+ __u16 s_errors; /* Behaviour when detecting errors */
+ __u16 s_minor_rev_level; /* minor revision level */
+ __u32 s_lastcheck; /* time of last check */
+ __u32 s_checkinterval; /* max. time between checks */
+ __u32 s_creator_os; /* OS */
+ __u32 s_rev_level; /* Revision level */
+ __u16 s_def_resuid; /* Default uid for reserved blocks */
+ __u16 s_def_resgid; /* Default gid for reserved blocks */
+ /*
+ * These fields are for EXT2_DYNAMIC_REV superblocks only.
+ *
+ * Note: the difference between the compatible feature set and
+ * the incompatible feature set is that if there is a bit set
+ * in the incompatible feature set that the kernel doesn't
+ * know about, it should refuse to mount the filesystem.
+ *
+ * e2fsck's requirements are more strict; if it doesn't know
+ * about a feature in either the compatible or incompatible
+ * feature set, it must abort and not try to meddle with
+ * things it doesn't understand...
+ */
+ __u32 s_first_ino; /* First non-reserved inode */
+ __u16 s_inode_size; /* size of inode structure */
+ __u16 s_block_group_nr; /* block group # of this superblock */
+ __u32 s_feature_compat; /* compatible feature set */
+ __u32 s_feature_incompat; /* incompatible feature set */
+ __u32 s_feature_ro_compat; /* readonly-compatible feature set */
+ __u8 s_uuid[16]; /* 128-bit uuid for volume */
+ char s_volume_name[16]; /* volume name */
+ char s_last_mounted[64]; /* directory where last mounted */
+ __u32 s_algorithm_usage_bitmap; /* For compression */
+ /*
+ * Performance hints. Directory preallocation should only
+ * happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on.
+ */
+ __u8 s_prealloc_blocks; /* Nr of blocks to try to preallocate*/
+ __u8 s_prealloc_dir_blocks; /* Nr to preallocate for dirs */
+ __u16 s_reserved_gdt_blocks; /* Per group table for online growth */
+ /*
+ * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set.
+ */
+ __u8 s_journal_uuid[16]; /* uuid of journal superblock */
+ __u32 s_journal_inum; /* inode number of journal file */
+ __u32 s_journal_dev; /* device number of journal file */
+ __u32 s_last_orphan; /* start of list of inodes to delete */
+ __u32 s_hash_seed[4]; /* HTREE hash seed */
+ __u8 s_def_hash_version; /* Default hash version to use */
+ __u8 s_jnl_backup_type; /* Default type of journal backup */
+ __u16 s_desc_size; /* Group desc. size: INCOMPAT_64BIT */
+ __u32 s_default_mount_opts;
+ __u32 s_first_meta_bg; /* First metablock group */
+ __u32 s_mkfs_time; /* When the filesystem was created */
+ __u32 s_jnl_blocks[17]; /* Backup of the journal inode */
+ __u32 s_blocks_count_hi; /* Blocks count high 32bits */
+ __u32 s_r_blocks_count_hi; /* Reserved blocks count high 32 bits*/
+ __u32 s_free_blocks_hi; /* Free blocks count */
+ __u16 s_min_extra_isize; /* All inodes have at least # bytes */
+ __u16 s_want_extra_isize; /* New inodes should reserve # bytes */
+ __u32 s_flags; /* Miscellaneous flags */
+ __u16 s_raid_stride; /* RAID stride */
+ __u16 s_mmp_interval; /* # seconds to wait in MMP checking */
+ __u64 s_mmp_block; /* Block for multi-mount protection */
+ __u32 s_raid_stripe_width; /* blocks on all data disks (N*stride)*/
+ __u8 s_log_groups_per_flex; /* FLEX_BG group size */
+ __u8 s_reserved_char_pad;
+ __u16 s_reserved_pad; /* Padding to next 32bits */
+ __u64 s_kbytes_written; /* nr of lifetime kilobytes written */
+ __u32 s_snapshot_inum; /* Inode number of active snapshot */
+ __u32 s_snapshot_id; /* sequential ID of active snapshot */
+ __u64 s_snapshot_r_blocks_count; /* reserved blocks for active
+ snapshot's future use */
+ __u32 s_snapshot_list; /* inode number of the head of the on-disk snapshot list */
+#define EXT4_S_ERR_START ext4_offsetof(struct ext2_super_block, s_error_count)
+ __u32 s_error_count; /* number of fs errors */
+ __u32 s_first_error_time; /* first time an error happened */
+ __u32 s_first_error_ino; /* inode involved in first error */
+ __u64 s_first_error_block; /* block involved of first error */
+ __u8 s_first_error_func[32]; /* function where the error happened */
+ __u32 s_first_error_line; /* line number where error happened */
+ __u32 s_last_error_time; /* most recent time of an error */
+ __u32 s_last_error_ino; /* inode involved in last error */
+ __u32 s_last_error_line; /* line number where error happened */
+ __u64 s_last_error_block; /* block involved of last error */
+ __u8 s_last_error_func[32]; /* function where the error happened */
+#define EXT4_S_ERR_END ext4_offsetof(struct ext2_super_block, s_mount_opts)
+ __u8 s_mount_opts[64];
+ __u32 s_reserved[112]; /* Padding to the end of the block */
+};
+
+#define EXT4_S_ERR_LEN (EXT4_S_ERR_END - EXT4_S_ERR_START)
+
+/*
+ * Codes for operating systems
+ */
+#define EXT2_OS_LINUX 0
+#define EXT2_OS_HURD 1
+#define EXT2_OBSO_OS_MASIX 2
+#define EXT2_OS_FREEBSD 3
+#define EXT2_OS_LITES 4
+
+/*
+ * Revision levels
+ */
+#define EXT2_GOOD_OLD_REV 0 /* The good old (original) format */
+#define EXT2_DYNAMIC_REV 1 /* V2 format w/ dynamic inode sizes */
+
+#define EXT2_CURRENT_REV EXT2_GOOD_OLD_REV
+#define EXT2_MAX_SUPP_REV EXT2_DYNAMIC_REV
+
+#define EXT2_GOOD_OLD_INODE_SIZE 128
+
+/*
+ * Journal inode backup types
+ */
+#define EXT3_JNL_BACKUP_BLOCKS 1
+
+/*
+ * Feature set definitions
+ */
+
+#define EXT2_HAS_COMPAT_FEATURE(sb,mask) \
+ ( EXT2_SB(sb)->s_feature_compat & (mask) )
+#define EXT2_HAS_RO_COMPAT_FEATURE(sb,mask) \
+ ( EXT2_SB(sb)->s_feature_ro_compat & (mask) )
+#define EXT2_HAS_INCOMPAT_FEATURE(sb,mask) \
+ ( EXT2_SB(sb)->s_feature_incompat & (mask) )
+
+#define EXT2_FEATURE_COMPAT_DIR_PREALLOC 0x0001
+#define EXT2_FEATURE_COMPAT_IMAGIC_INODES 0x0002
+#define EXT3_FEATURE_COMPAT_HAS_JOURNAL 0x0004
+#define EXT2_FEATURE_COMPAT_EXT_ATTR 0x0008
+#define EXT2_FEATURE_COMPAT_RESIZE_INODE 0x0010
+#define EXT2_FEATURE_COMPAT_DIR_INDEX 0x0020
+#define EXT2_FEATURE_COMPAT_LAZY_BG 0x0040
+#define EXT2_FEATURE_COMPAT_EXCLUDE_INODE 0x0080
+
+#define EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER 0x0001
+#define EXT2_FEATURE_RO_COMPAT_LARGE_FILE 0x0002
+/* #define EXT2_FEATURE_RO_COMPAT_BTREE_DIR 0x0004 not used */
+#define EXT4_FEATURE_RO_COMPAT_HUGE_FILE 0x0008
+#define EXT4_FEATURE_RO_COMPAT_GDT_CSUM 0x0010
+#define EXT4_FEATURE_RO_COMPAT_DIR_NLINK 0x0020
+#define EXT4_FEATURE_RO_COMPAT_EXTRA_ISIZE 0x0040
+#define EXT4_FEATURE_RO_COMPAT_HAS_SNAPSHOT 0x0080
+
+#define EXT2_FEATURE_INCOMPAT_COMPRESSION 0x0001
+#define EXT2_FEATURE_INCOMPAT_FILETYPE 0x0002
+#define EXT3_FEATURE_INCOMPAT_RECOVER 0x0004 /* Needs recovery */
+#define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV 0x0008 /* Journal device */
+#define EXT2_FEATURE_INCOMPAT_META_BG 0x0010
+#define EXT3_FEATURE_INCOMPAT_EXTENTS 0x0040
+#define EXT4_FEATURE_INCOMPAT_64BIT 0x0080
+#define EXT4_FEATURE_INCOMPAT_MMP 0x0100
+#define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
+#define EXT4_FEATURE_INCOMPAT_EA_INODE 0x0400
+#define EXT4_FEATURE_INCOMPAT_DIRDATA 0x1000
+
+
+#define EXT2_FEATURE_COMPAT_SUPP 0
+#define EXT2_FEATURE_INCOMPAT_SUPP (EXT2_FEATURE_INCOMPAT_FILETYPE)
+#define EXT2_FEATURE_RO_COMPAT_SUPP (EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER| \
+ EXT2_FEATURE_RO_COMPAT_LARGE_FILE| \
+ EXT4_FEATURE_RO_COMPAT_DIR_NLINK| \
+ EXT2_FEATURE_RO_COMPAT_BTREE_DIR)
+
+/*
+ * Default values for user and/or group using reserved blocks
+ */
+#define EXT2_DEF_RESUID 0
+#define EXT2_DEF_RESGID 0
+
+/*
+ * Default mount options
+ */
+#define EXT2_DEFM_DEBUG 0x0001
+#define EXT2_DEFM_BSDGROUPS 0x0002
+#define EXT2_DEFM_XATTR_USER 0x0004
+#define EXT2_DEFM_ACL 0x0008
+#define EXT2_DEFM_UID16 0x0010
+#define EXT3_DEFM_JMODE 0x0060
+#define EXT3_DEFM_JMODE_DATA 0x0020
+#define EXT3_DEFM_JMODE_ORDERED 0x0040
+#define EXT3_DEFM_JMODE_WBACK 0x0060
+#define EXT4_DEFM_NOBARRIER 0x0100
+#define EXT4_DEFM_BLOCK_VALIDITY 0x0200
+#define EXT4_DEFM_DISCARD 0x0400
+#define EXT4_DEFM_NODELALLOC 0x0800
+
+/*
+ * Structure of a directory entry
+ */
+#define EXT2_NAME_LEN 255
+
+struct ext2_dir_entry {
+ __u32 inode; /* Inode number */
+ __u16 rec_len; /* Directory entry length */
+ __u16 name_len; /* Name length */
+ char name[EXT2_NAME_LEN]; /* File name */
+};
+
+/*
+ * The new version of the directory entry. Since EXT2 structures are
+ * stored in intel byte order, and the name_len field could never be
+ * bigger than 255 chars, it's safe to reclaim the extra byte for the
+ * file_type field.
+ */
+struct ext2_dir_entry_2 {
+ __u32 inode; /* Inode number */
+ __u16 rec_len; /* Directory entry length */
+ __u8 name_len; /* Name length */
+ __u8 file_type;
+ char name[EXT2_NAME_LEN]; /* File name */
+};
+
+/*
+ * Ext2 directory file types. Only the low 3 bits are used. The
+ * other bits are reserved for now.
+ */
+#define EXT2_FT_UNKNOWN 0
+#define EXT2_FT_REG_FILE 1
+#define EXT2_FT_DIR 2
+#define EXT2_FT_CHRDEV 3
+#define EXT2_FT_BLKDEV 4
+#define EXT2_FT_FIFO 5
+#define EXT2_FT_SOCK 6
+#define EXT2_FT_SYMLINK 7
+
+#define EXT2_FT_MAX 8
+
+/*
+ * EXT2_DIR_PAD defines the directory entries boundaries
+ *
+ * NOTE: It must be a multiple of 4
+ */
+#define EXT2_DIR_PAD 4
+#define EXT2_DIR_ROUND (EXT2_DIR_PAD - 1)
+#define EXT2_DIR_REC_LEN(name_len) (((name_len) + 8 + EXT2_DIR_ROUND) & \
+ ~EXT2_DIR_ROUND)
+
+/*
+ * This structure will be used for multiple mount protection. It will be
+ * written into the block number saved in the s_mmp_block field in the
+ * superblock.
+ */
+#define EXT2_MMP_MAGIC 0x004D4D50 /* ASCII for MMP */
+#define EXT2_MMP_CLEAN 0xFF4D4D50 /* Value of mmp_seq for clean unmount */
+#define EXT2_MMP_FSCK_ON 0xE24D4D50 /* Value of mmp_seq when being fscked */
+
+struct mmp_struct {
+ __u32 mmp_magic;
+ __u32 mmp_seq;
+ __u64 mmp_time;
+ char mmp_nodename[64];
+ char mmp_bdevname[32];
+ __u16 mmp_interval;
+ __u16 mmp_pad1;
+ __u32 mmp_pad2;
+};
+
+/*
+ * Interval in number of seconds to update the MMP sequence number.
+ */
+#define EXT2_MMP_DEF_INTERVAL 5
+
+#endif /* _LINUX_EXT2_FS_H */
diff --git a/libcustomext2fs/source/ext2_internal.c b/libcustomext2fs/source/ext2_internal.c
new file mode 100644
index 00000000..d75133a7
--- /dev/null
+++ b/libcustomext2fs/source/ext2_internal.c
@@ -0,0 +1,1076 @@
+/**
+ * ext2_internal.c - Internal support routines for EXT2-based devices.
+ *
+ * Copyright (c) 2006 Michael "Chishm" Chisholm
+ * Copyright (c) 2009 Rhys "Shareese" Koedijk
+ * Copyright (c) 2010 Dimok
+ *
+ * This program/include file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program/include file is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include
+#include
+#include
+#include "ext2_internal.h"
+#include "ext2dir.h"
+#include "ext2file.h"
+#include "gekko_io.h"
+
+// EXT2 device driver devoptab
+static const devoptab_t devops_ext2 =
+{
+ NULL, /* Device name */
+ sizeof(ext2_file_state),
+ ext2_open_r,
+ ext2_close_r,
+ ext2_write_r,
+ ext2_read_r,
+ ext2_seek_r,
+ ext2_fstat_r,
+ ext2_stat_r,
+ ext2_link_r,
+ ext2_unlink_r,
+ ext2_chdir_r,
+ ext2_rename_r,
+ ext2_mkdir_r,
+ sizeof(ext2_dir_state),
+ ext2_diropen_r,
+ ext2_dirreset_r,
+ ext2_dirnext_r,
+ ext2_dirclose_r,
+ ext2_statvfs_r,
+ ext2_ftruncate_r,
+ ext2_fsync_r,
+ NULL /* Device data */
+};
+
+
+const devoptab_t *ext2GetDevOpTab()
+{
+ return &devops_ext2;
+}
+
+int ext2AddDevice (const char *name, void *deviceData)
+{
+ const devoptab_t *devoptab_ext2 = ext2GetDevOpTab();
+ devoptab_t *dev = NULL;
+ char *devname = NULL;
+ int i;
+
+ // Sanity check
+ if (!name || !deviceData || !devoptab_ext2) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ // Allocate a devoptab for this device
+ dev = (devoptab_t *) mem_alloc(sizeof(devoptab_t) + strlen(name) + 1);
+ if (!dev) {
+ errno = ENOMEM;
+ return -1;
+ }
+
+ // Use the space allocated at the end of the devoptab for storing the device name
+ devname = (char*)(dev + 1);
+ strcpy(devname, name);
+
+ // Setup the devoptab
+ memcpy(dev, devoptab_ext2, sizeof(devoptab_t));
+ dev->name = devname;
+ dev->deviceData = deviceData;
+
+ // Add the device to the devoptab table (if there is a free slot)
+ for (i = 0; i < STD_MAX; i++) {
+ if (devoptab_list[i] == devoptab_list[0] && i != 0) {
+ devoptab_list[i] = dev;
+ return 0;
+ }
+ }
+
+ // If we reach here then there are no free slots in the devoptab table for this device
+ errno = EADDRNOTAVAIL;
+ return -1;
+}
+
+void ext2RemoveDevice (const char *path)
+{
+ const devoptab_t *devoptab = NULL;
+ char name[128] = {0};
+ int i;
+
+ // Get the device name from the path
+ strncpy(name, path, 127);
+ strtok(name, ":/");
+
+ // Find and remove the specified device from the devoptab table
+ // NOTE: We do this manually due to a 'bug' in RemoveDevice
+ // which ignores names with suffixes
+ for (i = 0; i < STD_MAX; i++) {
+ devoptab = devoptab_list[i];
+ if (devoptab && devoptab->name) {
+ if (strcmp(name, devoptab->name) == 0) {
+ devoptab_list[i] = devoptab_list[0];
+ mem_free((devoptab_t*)devoptab);
+ break;
+ }
+ }
+ }
+
+ return;
+}
+
+const devoptab_t *ext2GetDevice (const char *path)
+{
+ const devoptab_t *devoptab = NULL;
+ char name[128] = {0};
+ int i;
+
+ // Get the device name from the path
+ strncpy(name, path, 127);
+ strtok(name, ":/");
+
+ // Search the devoptab table for the specified device name
+ // NOTE: We do this manually due to a 'bug' in GetDeviceOpTab
+ // which ignores names with suffixes
+ for (i = 0; i < STD_MAX; i++) {
+ devoptab = devoptab_list[i];
+ if (devoptab && devoptab->name) {
+ if (strcmp(name, devoptab->name) == 0) {
+ return devoptab;
+ }
+ }
+ }
+
+ return NULL;
+}
+
+ext2_vd *ext2GetVolume (const char *path)
+{
+ // Get the volume descriptor from the paths associated devoptab (if found)
+ const devoptab_t *devoptab_ext2 = ext2GetDevOpTab();
+ const devoptab_t *devoptab = ext2GetDevice(path);
+ if (devoptab && devoptab_ext2 && (devoptab->open_r == devoptab_ext2->open_r))
+ return (ext2_vd*)devoptab->deviceData;
+
+ return NULL;
+}
+
+int ext2InitVolume (ext2_vd *vd)
+{
+ // Sanity check
+ if (!vd) {
+ errno = ENODEV;
+ return -1;
+ }
+
+ // Reset the volumes data
+ memset(vd, 0, sizeof(ext2_vd));
+
+ // Initialise the volume lock
+ LWP_MutexInit(&vd->lock, false);
+
+ return 0;
+}
+
+void ext2DeinitVolume (ext2_vd *vd)
+{
+ // Sanity check
+ if (!vd) {
+ errno = ENODEV;
+ return;
+ }
+
+ // Lock
+ ext2Lock(vd);
+
+ // Close any directories which are still open (lazy programmers!)
+ ext2_dir_state *nextDir = vd->firstOpenDir;
+ while (nextDir) {
+ ext2CloseDir(nextDir);
+ nextDir = nextDir->nextOpenDir;
+ }
+
+ // Close any files which are still open (lazy programmers!)
+ ext2_file_state *nextFile = vd->firstOpenFile;
+ while (nextFile) {
+ ext2CloseFile(nextFile);
+ nextFile = nextFile->nextOpenFile;
+ }
+
+ // Reset open directory and file stats
+ vd->openDirCount = 0;
+ vd->openFileCount = 0;
+ vd->firstOpenDir = NULL;
+ vd->firstOpenFile = NULL;
+
+ // Force the underlying device to sync
+ ext2Sync(vd, NULL);
+
+ // Unlock
+ ext2Unlock(vd);
+
+ // Deinitialise the volume lock
+ LWP_MutexDestroy(vd->lock);
+}
+
+static ext2_ino_t ext2PathToInode(ext2_vd *vd, const char * path)
+{
+ //Sanity check
+ if(!vd || !path)
+ return 0;
+
+ char filename[EXT2_NAME_LEN];
+ errcode_t errorcode = 0;
+ ext2_ino_t ino = 0, parent = vd->cwd_ni && *path != '/' && *path != '\0' ? vd->cwd_ni->ino : vd->root;
+ const char * ptr = path;
+ int i;
+
+ while(*ptr == '/') ++ptr;
+
+ if(*ptr == '\0')
+ return parent;
+
+ while(*ptr != '\0')
+ {
+ for(i = 0; *ptr != '\0' && *ptr != '/' && (i < EXT2_NAME_LEN-1); ++ptr, ++i)
+ filename[i] = *ptr;
+
+ filename[i] = '\0';
+
+ errorcode = ext2fs_namei(vd->fs, vd->root, parent, filename, &ino);
+ if(errorcode != EXT2_ET_OK)
+ return 0;
+
+ parent = ino;
+
+ while(*ptr == '/') ++ptr;
+
+ }
+
+
+ return ino;
+}
+
+ext2_inode_t *ext2OpenEntry (ext2_vd *vd, const char *path)
+{
+ errcode_t errorcode = 0;
+ ext2_inode_t * ni = 0;
+
+ // Sanity check
+ if (!vd) {
+ errno = ENODEV;
+ return NULL;
+ }
+
+ // Get the actual path of the entry
+ path = ext2RealPath(path);
+ if (!path)
+ {
+ errno = EINVAL;
+ return NULL;
+ }
+
+ ni = mem_alloc(sizeof(ext2_inode_t));
+ if(!ni)
+ {
+ errno = ENOMEM;
+ return NULL;
+ }
+
+ memset(ni, 0, sizeof(ext2_inode_t));
+
+ // Find the entry, taking into account our current directory (if any)
+ ni->ino = ext2PathToInode(vd, path);
+ if(ni->ino == 0)
+ {
+ mem_free(ni);
+ return NULL;
+ }
+
+ errorcode = ext2fs_read_inode(vd->fs, ni->ino, &ni->ni);
+ if(errorcode)
+ {
+ mem_free(ni);
+ return NULL;
+ }
+
+ return ni;
+}
+
+void ext2CloseEntry(ext2_vd *vd, ext2_inode_t * ni)
+{
+ // Sanity check
+ if (!vd || !ni) {
+ errno = ENODEV;
+ return;
+ }
+
+ // Lock
+ ext2Lock(vd);
+
+ // Sync the entry (if it is dirty)
+ if(ni && ni->dirty)
+ ext2fs_write_inode(vd->fs, ni->ino, &ni->ni);
+
+ // Close the entry
+ if(ni)
+ mem_free(ni);
+
+ // Unlock
+ ext2Unlock(vd);
+
+ return;
+}
+
+static ext2_ino_t ext2CreateSymlink(ext2_vd *vd, const char *path, const char * targetdir, const char * name, mode_t type)
+{
+ ext2_inode_t *target_ni = NULL;
+ ext2_ino_t newentry = 0;
+ ext2_ino_t ino = 0;
+
+ // Check if it does exist
+ target_ni = ext2OpenEntry(vd, targetdir);
+ if (!target_ni)
+ goto cleanup;
+
+ int err = ext2fs_new_inode(vd->fs, target_ni->ino, type, 0, &ino);
+ if (err)
+ goto cleanup;
+
+ do
+ {
+ err = ext2fs_link(vd->fs, target_ni->ino, name, ino, EXT2_FT_SYMLINK);
+ if (err == EXT2_ET_DIR_NO_SPACE)
+ {
+ err = ext2fs_expand_dir(vd->fs, target_ni->ino);
+ if (err)
+ goto cleanup;
+ }
+ }
+ while(err == EXT2_ET_DIR_NO_SPACE);
+
+ ext2fs_inode_alloc_stats2(vd->fs, ino, +1, 0);
+
+ struct ext2_inode inode;
+ memset(&inode, 0, sizeof(inode));
+ inode.i_mode = type;
+ inode.i_atime = inode.i_ctime = inode.i_mtime = time(NULL);
+ inode.i_links_count = 1;
+ inode.i_size = strlen(path); //initial size of file
+ inode.i_uid = target_ni->ni.i_uid;
+ inode.i_gid = target_ni->ni.i_gid;
+
+ if (strlen(path) <= sizeof(inode.i_block))
+ {
+ /* fast symlink */
+ strncpy((char *)&(inode.i_block[0]),path,sizeof(inode.i_blocks));
+ }
+ else
+ {
+ /* slow symlink */
+ char * buffer = mem_alloc(vd->fs->blocksize);
+ if (buffer)
+ {
+ blk_t blk;
+ strncpy(buffer, path, vd->fs->blocksize);
+ err = ext2fs_new_block(vd->fs, 0, 0, &blk);
+ if (!err)
+ {
+ inode.i_block[0] = blk;
+ inode.i_blocks = vd->fs->blocksize / BYTES_PER_SECTOR;
+ vd->fs->io->manager->write_blk(vd->fs->io, blk, 1, buffer);
+ ext2fs_block_alloc_stats(vd->fs, blk, +1);
+ }
+ mem_free(buffer);
+ }
+ }
+
+ if(ext2fs_write_new_inode(vd->fs, ino, &inode) != 0)
+ newentry = ino;
+
+cleanup:
+
+ if(target_ni)
+ ext2CloseEntry(vd, target_ni);
+
+ return newentry;
+}
+
+static ext2_ino_t ext2CreateMkDir(ext2_vd *vd, ext2_inode_t * parent, int type, const char * name)
+{
+ ext2_ino_t newentry = 0;
+ ext2_ino_t existing;
+
+ if(ext2fs_namei(vd->fs, vd->root, parent->ino, name, &existing) == 0)
+ return 0;
+
+ errcode_t err = ext2fs_new_inode(vd->fs, parent->ino, type, 0, &newentry);
+ if(err != EXT2_ET_OK)
+ return 0;
+
+ do
+ {
+ err = ext2fs_mkdir(vd->fs, parent->ino, newentry, name);
+ if(err == EXT2_ET_DIR_NO_SPACE)
+ {
+ if(ext2fs_expand_dir(vd->fs, parent->ino) != 0)
+ return 0;
+ }
+ }
+ while(err == EXT2_ET_DIR_NO_SPACE);
+
+ if(err != EXT2_ET_OK)
+ return 0;
+
+ struct ext2_inode inode;
+ if(ext2fs_read_inode(vd->fs, newentry, &inode) == EXT2_ET_OK)
+ {
+ inode.i_mode = type;
+ inode.i_uid = parent->ni.i_uid;
+ inode.i_gid = parent->ni.i_gid;
+ ext2fs_write_new_inode(vd->fs, newentry, &inode);
+ }
+
+ return newentry;
+}
+
+
+static ext2_ino_t ext2CreateFile(ext2_vd *vd, ext2_inode_t * parent, int type, const char * name)
+{
+ errcode_t retval = -1;
+ ext2_ino_t newfile = 0;
+ ext2_ino_t existing;
+
+ if(ext2fs_namei(vd->fs, vd->root, parent->ino, name, &existing) == 0)
+ return 0;
+
+ retval = ext2fs_new_inode(vd->fs, parent->ino, type, 0, &newfile);
+ if (retval)
+ return 0;
+
+ do
+ {
+ retval = ext2fs_link(vd->fs, parent->ino, name, newfile, EXT2_FT_REG_FILE);
+ if (retval == EXT2_ET_DIR_NO_SPACE)
+ {
+ if (ext2fs_expand_dir(vd->fs, parent->ino) != 0)
+ return 0;
+ }
+ }
+ while(retval == EXT2_ET_DIR_NO_SPACE);
+
+ if (retval)
+ return 0;
+
+ ext2fs_inode_alloc_stats2(vd->fs, newfile, +1, 0);
+
+ struct ext2_inode inode;
+ memset(&inode, 0, sizeof(inode));
+ inode.i_mode = type;
+ inode.i_atime = inode.i_ctime = inode.i_mtime = time(0);
+ inode.i_links_count = 1;
+ inode.i_size = 0;
+ inode.i_uid = parent->ni.i_uid;
+ inode.i_gid = parent->ni.i_gid;
+
+ if (ext2fs_write_new_inode(vd->fs, newfile, &inode) != 0)
+ return 0;
+
+ return newfile;
+}
+
+ext2_inode_t *ext2Create(ext2_vd *vd, const char *path, mode_t type, const char *target)
+{
+ ext2_inode_t *dir_ni = NULL, *ni = NULL;
+ char *dir = NULL;
+ char *targetdir = NULL;
+ char *name = NULL;
+ ext2_ino_t newentry = 0;
+
+ // Sanity check
+ if (!vd || !vd->fs) {
+ errno = ENODEV;
+ return NULL;
+ }
+
+ if(!(vd->fs->flags & EXT2_FLAG_RW))
+ return NULL;
+
+ // You cannot link between devices
+ if(target) {
+ if(vd != ext2GetVolume(target)) {
+ errno = EXDEV;
+ return NULL;
+ }
+ // Check if existing
+ dir_ni = ext2OpenEntry(vd, target);
+ if (dir_ni) {
+ goto cleanup;
+ }
+ ext2CloseEntry(vd, dir_ni);
+ dir_ni = NULL;
+ targetdir = strdup(target);
+ if (!targetdir) {
+ errno = EINVAL;
+ goto cleanup;
+ }
+ }
+
+ // Get the actual paths of the entry
+ path = ext2RealPath(path);
+ target = ext2RealPath(target);
+ if (!path) {
+ errno = EINVAL;
+ return NULL;
+ }
+
+ // Lock
+ ext2Lock(vd);
+
+ // Clean me
+ // NOTE: this looks horrible right now and need a cleanup
+ dir = strdup(path);
+ if (!dir) {
+ errno = EINVAL;
+ goto cleanup;
+ }
+
+ char * tmp_path = (targetdir && (type == S_IFLNK)) ? targetdir : dir;
+ if (strrchr(tmp_path, '/') != NULL)
+ {
+ char * ptr = strrchr(tmp_path, '/');
+ name = strdup(ptr+1);
+ *ptr = '\0';
+ }
+ else
+ name = strdup(tmp_path);
+
+ // Open the entries parent directory
+ dir_ni = ext2OpenEntry(vd, dir);
+ if (!dir_ni) {
+ goto cleanup;
+ }
+
+ // If not yet read, read the inode and block bitmap
+ if(!vd->fs->inode_map || !vd->fs->block_map)
+ ext2fs_read_bitmaps(vd->fs);
+
+ // Symbolic link
+ if(type == S_IFLNK)
+ {
+ if (!target) {
+ errno = EINVAL;
+ goto cleanup;
+ }
+
+ newentry = ext2CreateSymlink(vd, path, targetdir, name, type);
+ }
+ // Directory
+ else if(type == S_IFDIR)
+ {
+ newentry = ext2CreateMkDir(vd, dir_ni, LINUX_S_IFDIR | (0755 & ~vd->fs->umask), name);
+ }
+ // File
+ else if(type == S_IFREG)
+ {
+ newentry = ext2CreateFile(vd, dir_ni, LINUX_S_IFREG | (0755 & ~vd->fs->umask), name);
+ }
+
+ // If the entry was created
+ if (newentry != 0)
+ {
+ // Sync the entry to disc
+ ext2Sync(vd, NULL);
+
+ ni = ext2OpenEntry(vd, target ? target : path);
+ }
+
+cleanup:
+
+ if(dir_ni)
+ ext2CloseEntry(vd, dir_ni);
+
+ if(name)
+ mem_free(name);
+
+ if(dir)
+ mem_free(dir);
+
+ if(targetdir)
+ mem_free(targetdir);
+
+ // Unlock
+ ext2Unlock(vd);
+
+ return ni;
+}
+
+/*
+ * Given a mode, return the ext2 file type
+ */
+static int ext2_file_type(unsigned int mode)
+{
+ if (LINUX_S_ISREG(mode))
+ return EXT2_FT_REG_FILE;
+
+ if (LINUX_S_ISDIR(mode))
+ return EXT2_FT_DIR;
+
+ if (LINUX_S_ISCHR(mode))
+ return EXT2_FT_CHRDEV;
+
+ if (LINUX_S_ISBLK(mode))
+ return EXT2_FT_BLKDEV;
+
+ if (LINUX_S_ISLNK(mode))
+ return EXT2_FT_SYMLINK;
+
+ if (LINUX_S_ISFIFO(mode))
+ return EXT2_FT_FIFO;
+
+ if (LINUX_S_ISSOCK(mode))
+ return EXT2_FT_SOCK;
+
+ return 0;
+}
+
+int ext2Link(ext2_vd *vd, const char *old_path, const char *new_path)
+{
+ ext2_inode_t *dir_ni = NULL, *ni = NULL;
+ char *dir = NULL;
+ char *name = NULL;
+ errcode_t err = 0;
+
+ // Sanity check
+ if (!vd || !vd->fs) {
+ errno = ENODEV;
+ return -1;
+ }
+
+ if(!(vd->fs->flags & EXT2_FLAG_RW))
+ return -1;
+
+ // You cannot link between devices
+ if(vd != ext2GetVolume(new_path)) {
+ errno = EXDEV;
+ return -1;
+ }
+
+ // Get the actual paths of the entry
+ old_path = ext2RealPath(old_path);
+ new_path = ext2RealPath(new_path);
+ if (!old_path || !new_path) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ // Lock
+ ext2Lock(vd);
+
+ //check for existing in new path
+ ni = ext2OpenEntry(vd, new_path);
+ if (ni) {
+ ext2CloseEntry(vd, ni);
+ ni = NULL;
+ errno = EINVAL;
+ return -1;
+ }
+
+ dir = strdup(new_path);
+ if (!dir) {
+ errno = EINVAL;
+ err = -1;
+ goto cleanup;
+ }
+ char * ptr = strrchr(dir, '/');
+ if (ptr)
+ {
+ name = strdup(ptr+1);
+ *ptr = 0;
+ }
+ else
+ name = strdup(dir);
+
+ // Find the entry
+ ni = ext2OpenEntry(vd, old_path);
+ if (!ni) {
+ errno = ENOENT;
+ err = -1;
+ goto cleanup;
+ }
+
+ // Open the entries new parent directory
+ dir_ni = ext2OpenEntry(vd, dir);
+ if (!dir_ni) {
+ errno = ENOENT;
+ err = -1;
+ goto cleanup;
+ }
+
+ do
+ {
+ // Link the entry to its new parent
+ err = ext2fs_link(vd->fs, dir_ni->ino, name, ni->ino, ext2_file_type(ni->ni.i_mode));
+ if (err == EXT2_ET_DIR_NO_SPACE)
+ {
+ if (ext2fs_expand_dir(vd->fs, dir_ni->ino) != 0)
+ goto cleanup;
+ }
+ else if(err != 0)
+ {
+ errno = ENOMEM;
+ goto cleanup;
+ }
+ }
+ while(err == EXT2_ET_DIR_NO_SPACE);
+
+ ni->ni.i_links_count++;
+
+ // Update entry times
+ ext2UpdateTimes(vd, ni, EXT2_UPDATE_MCTIME);
+
+ // Sync the entry to disc
+ ext2Sync(vd, ni);
+
+cleanup:
+
+ if(dir_ni)
+ ext2CloseEntry(vd, dir_ni);
+
+ if(ni)
+ ext2CloseEntry(vd, ni);
+
+ if(dir)
+ mem_free(dir);
+
+ if(name)
+ mem_free(name);
+
+ // Unlock
+ ext2Unlock(vd);
+
+ return err;
+}
+
+typedef struct _rd_struct
+{
+ ext2_ino_t parent;
+ int empty;
+} rd_struct;
+
+static int release_blocks_proc(ext2_filsys fs, blk_t *blocknr, int blockcnt EXT2FS_ATTR((unused)), void *private EXT2FS_ATTR((unused)))
+{
+ blk_t block;
+
+ block = *blocknr;
+ ext2fs_block_alloc_stats(fs, block, -1);
+ *blocknr = 0;
+ return 0;
+}
+
+static int unlink_proc(ext2_ino_t dir EXT2FS_ATTR((unused)), int entry EXT2FS_ATTR((unused)),
+ struct ext2_dir_entry *dirent, int offset EXT2FS_ATTR((unused)),
+ int blocksize EXT2FS_ATTR((unused)), char *buf EXT2FS_ATTR((unused)),
+ void *private_data)
+{
+ rd_struct *rds = (rd_struct *) private_data;
+
+ if (dirent->inode == 0)
+ return 0;
+ if (((dirent->name_len & 0xFF) == 1) && (dirent->name[0] == '.'))
+ return 0;
+ if (((dirent->name_len & 0xFF) == 2) && (dirent->name[0] == '.') &&
+ (dirent->name[1] == '.')) {
+ rds->parent = dirent->inode;
+ return 0;
+ }
+
+ rds->empty = 0;
+ return 0;
+}
+
+int ext2Unlink (ext2_vd *vd, const char *path)
+{
+ ext2_inode_t *dir_ni = NULL, *ni = NULL;
+ char *dir = NULL;
+ char *name = NULL;
+ errcode_t err = -1;
+
+ // Sanity check
+ if (!vd || !vd->fs) {
+ errno = ENODEV;
+ return -1;
+ }
+
+ if(!(vd->fs->flags & EXT2_FLAG_RW))
+ return -1;
+
+ // Get the actual path of the entry
+ path = ext2RealPath(path);
+ if (!path) {
+ errno = EINVAL;
+ return -1;
+ }
+
+ // Lock
+ ext2Lock(vd);
+
+ dir = strdup(path);
+ if (!dir) {
+ errno = EINVAL;
+ goto cleanup;
+ }
+ char * ptr = strrchr(dir, '/');
+ if (ptr)
+ {
+ name = strdup(ptr+1);
+ *ptr = 0;
+ }
+ else
+ name = dir;
+
+ // Find the entry
+ ni = ext2OpenEntry(vd, path);
+ if (!ni) {
+ errno = ENOENT;
+ goto cleanup;
+ }
+
+ // Open the entries parent directory
+ dir_ni = ext2OpenEntry(vd, dir);
+ if (!dir_ni) {
+ errno = ENOENT;
+ goto cleanup;
+ }
+
+ // Directory
+ if(LINUX_S_ISDIR(ni->ni.i_mode))
+ {
+ rd_struct rds;
+ rds.parent = 0;
+ rds.empty = 1;
+
+ if (ext2fs_dir_iterate2(vd->fs, ni->ino, 0, 0, unlink_proc, &rds) != 0)
+ goto cleanup;
+
+ if(!rds.empty)
+ goto cleanup;
+
+ if (rds.parent)
+ {
+ struct ext2_inode inode;
+ if (ext2fs_read_inode(vd->fs, rds.parent, &inode) == 0)
+ {
+ if(inode.i_links_count > 1)
+ inode.i_links_count--;
+ ext2fs_write_inode(vd->fs, rds.parent, &inode);
+ }
+ }
+
+ // set link count 0
+ ni->ni.i_links_count = 0;
+ }
+ // File
+ else
+ {
+ ni->ni.i_links_count--;
+ }
+
+ if(ni->ni.i_links_count <= 0)
+ {
+ ni->ni.i_size = 0;
+ ni->ni.i_size_high = 0;
+ ni->ni.i_links_count = 0;
+ ni->ni.i_dtime = (u32) time(0);
+ }
+
+ ext2fs_write_inode(vd->fs, ni->ino, &ni->ni);
+
+ // Unlink the entry from its parent
+ if(ext2fs_unlink(vd->fs, dir_ni->ino, name, 0, 0) != 0)
+ goto cleanup;
+
+ if (ext2fs_inode_has_valid_blocks(&ni->ni))
+ {
+ ext2fs_block_iterate(vd->fs, ni->ino, 0, NULL, release_blocks_proc, NULL);
+ ext2fs_inode_alloc_stats2(vd->fs, ni->ino, -1, LINUX_S_ISDIR(ni->ni.i_mode));
+ }
+
+ if(ni->ni.i_links_count == 0)
+ {
+ // It's odd that i have to do this on my own and the lib is not doing that for me
+ blk64_t truncate_block = ((vd->fs->blocksize - 1) >> EXT2_BLOCK_SIZE_BITS(vd->fs->super)) + 1;
+ ext2fs_punch(vd->fs, ni->ino, &ni->ni, 0, truncate_block, ~0ULL);
+ }
+
+ // Sync the entry to disc
+ ext2Sync(vd, NULL);
+
+ err = 0;
+
+cleanup:
+
+ if(dir_ni)
+ ext2CloseEntry(vd, dir_ni);
+
+ if(ni)
+ ext2CloseEntry(vd, ni);
+
+ if(name)
+ mem_free(name);
+
+ if(dir)
+ mem_free(dir);
+
+ // Unlock
+ ext2Unlock(vd);
+
+ return err;
+}
+
+
+int ext2Sync(ext2_vd *vd, ext2_inode_t *ni)
+{
+ errcode_t res = 0;
+
+ // Sanity check
+ if (!vd || !vd->fs) {
+ errno = ENODEV;
+ return -1;
+ }
+
+ if(!(vd->fs->flags & EXT2_FLAG_RW))
+ return -1;
+
+ // Lock
+ ext2Lock(vd);
+
+ if(ni && ni->dirty)
+ {
+ ext2fs_write_inode(vd->fs, ni->ino, &ni->ni);
+ ni->dirty = false;
+ }
+
+ // Sync the entry
+ res = ext2fs_flush(vd->fs);
+
+ // Force the underlying device to sync
+ vd->io->manager->flush(vd->io);
+
+ // Unlock
+ ext2Unlock(vd);
+
+ return res;
+
+}
+
+int ext2Stat (ext2_vd *vd, ext2_inode_t *ni_main, struct stat *st)
+{
+ int res = 0;
+
+ // Sanity check
+ if (!vd) {
+ errno = ENODEV;
+ return -1;
+ }
+
+ struct ext2_inode * ni = ni_main ? &ni_main->ni : 0;
+
+ // Sanity check
+ if (!ni) {
+ errno = ENOENT;
+ return -1;
+ }
+
+ // Short circuit cases were we don't actually have to do anything
+ if (!st)
+ return 0;
+
+ // Lock
+ ext2Lock(vd);
+
+ // Zero out the stat buffer
+ memset(st, 0, sizeof(struct stat));
+
+ if(LINUX_S_ISDIR(ni->i_mode))
+ {
+ st->st_nlink = 1;
+ st->st_size = ni->i_size;
+ }
+ else
+ {
+ st->st_nlink = ni->i_links_count;
+ st->st_size = EXT2_I_SIZE(ni);
+ }
+
+ st->st_mode = ni->i_mode;
+ st->st_blocks = ni->i_blocks;
+ st->st_blksize = vd->fs->blocksize;
+
+ // Fill in the generic entry stats
+ st->st_dev = (dev_t) ((long) vd->fs);
+ st->st_uid = ni->i_uid | (((u32) ni->osd2.linux2.l_i_uid_high) << 16);
+ st->st_gid = ni->i_gid | (((u32) ni->osd2.linux2.l_i_gid_high) << 16);
+ st->st_ino = ni_main->ino;
+ st->st_atime = ni->i_atime;
+ st->st_ctime = ni->i_ctime;
+ st->st_mtime = ni->i_mtime;
+
+ // Update entry times
+ ext2UpdateTimes(vd, ni_main, EXT2_UPDATE_ATIME);
+
+ // Unlock
+ ext2Unlock(vd);
+
+ return res;
+}
+
+void ext2UpdateTimes(ext2_vd *vd, ext2_inode_t *ni, ext2_time_update_flags mask)
+{
+ // Sanity check
+ if(!ni || !mask)
+ return;
+
+ if(!(vd->fs->flags & EXT2_FLAG_RW))
+ return;
+
+ u32 now = (u32) time(0);
+
+ if(mask & EXT2_UPDATE_ATIME)
+ ni->ni.i_atime = now;
+ if(mask & EXT2_UPDATE_MTIME)
+ ni->ni.i_mtime = now;
+ if(mask & EXT2_UPDATE_CTIME)
+ ni->ni.i_ctime = now;
+
+ ni->dirty = true;
+}
+
+const char *ext2RealPath (const char *path)
+{
+ // Sanity check
+ if (!path)
+ return NULL;
+
+ // Move the path pointer to the start of the actual path
+ if (strchr(path, ':') != NULL) {
+ path = strchr(path, ':')+1;
+ }
+ if (strchr(path, ':') != NULL) {
+ return NULL;
+ }
+
+ return path;
+}
diff --git a/libcustomext2fs/source/ext2_internal.h b/libcustomext2fs/source/ext2_internal.h
new file mode 100644
index 00000000..24dd4a52
--- /dev/null
+++ b/libcustomext2fs/source/ext2_internal.h
@@ -0,0 +1,102 @@
+/**
+ * ext2_internal.h
+ *
+ * Copyright (c) 2009 Rhys "Shareese" Koedijk
+ * Copyright (c) 2010 Dimok
+ *
+ * This program/include file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program/include file is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef EXT2_INTERNAL_H_
+#define EXT2_INTERNAL_H_
+
+#include
+#include
+#include
+#include "ext2fs.h"
+#include "ext2_fs.h"
+#include "mem_allocate.h"
+
+#ifdef DEBUG_GEKKO
+#define ext2_log_trace printf
+#else
+#define ext2_log_trace(...)
+#endif
+
+typedef struct _ext2_inode_t
+{
+ struct ext2_inode ni;
+ ext2_ino_t ino;
+ bool dirty;
+} ext2_inode_t;
+
+/**
+ * ext2_vd - EXT2 volume descriptor
+ */
+typedef struct _ext2_vd
+{
+ io_channel io; /* EXT device handle */
+ ext2_filsys fs; /* EXT volume handle */
+ mutex_t lock; /* Volume lock mutex */
+ ext2_inode_t *cwd_ni; /* Current directory */
+ struct _ext2_dir_state *firstOpenDir; /* The start of a FILO linked list of currently opened directories */
+ struct _ext2_file_state *firstOpenFile; /* The start of a FILO linked list of currently opened files */
+ u16 openDirCount; /* The total number of directories currently open in this volume */
+ u16 openFileCount; /* The total number of files currently open in this volume */
+ ext2_ino_t root; /* Root node */
+} ext2_vd;
+
+typedef enum {
+ EXT2_UPDATE_ATIME = 0x01,
+ EXT2_UPDATE_MTIME = 0x02,
+ EXT2_UPDATE_CTIME = 0x04,
+ EXT2_UPDATE_AMTIME = EXT2_UPDATE_ATIME | EXT2_UPDATE_MTIME,
+ EXT2_UPDATE_ACTIME = EXT2_UPDATE_ATIME | EXT2_UPDATE_CTIME,
+ EXT2_UPDATE_MCTIME = EXT2_UPDATE_MTIME | EXT2_UPDATE_CTIME,
+ EXT2_UPDATE_AMCTIME = EXT2_UPDATE_ATIME | EXT2_UPDATE_MTIME | EXT2_UPDATE_CTIME,
+} ext2_time_update_flags;
+
+/* Lock volume */
+static inline void ext2Lock (ext2_vd *vd)
+{
+ LWP_MutexLock(vd->lock);
+}
+
+/* Unlock volume */
+static inline void ext2Unlock (ext2_vd *vd)
+{
+ LWP_MutexUnlock(vd->lock);
+}
+
+const char *ext2RealPath (const char *path);
+int ext2InitVolume (ext2_vd *vd);
+void ext2DeinitVolume (ext2_vd *vd);
+ext2_vd *ext2GetVolume (const char *path);
+
+int ext2AddDevice (const char *name, void *deviceData);
+void ext2RemoveDevice (const char *path);
+const devoptab_t *ext2GetDevice (const char *path);
+
+ext2_inode_t *ext2OpenEntry (ext2_vd *vd, const char *path);
+void ext2CloseEntry (ext2_vd *vd, ext2_inode_t * ni);
+int ext2Stat (ext2_vd *vd, ext2_inode_t * ni, struct stat *st);
+int ext2Sync (ext2_vd *vd, ext2_inode_t * ni);
+
+ext2_inode_t *ext2Create (ext2_vd *vd, const char *path, mode_t type, const char *target);
+int ext2Link (ext2_vd *vd, const char *old_path, const char *new_path);
+int ext2Unlink (ext2_vd *vd, const char *path);
+
+void ext2UpdateTimes(ext2_vd *vd, ext2_inode_t *ni, ext2_time_update_flags mask);
+
+#endif
diff --git a/libcustomext2fs/source/ext2_io.h b/libcustomext2fs/source/ext2_io.h
new file mode 100644
index 00000000..10be1100
--- /dev/null
+++ b/libcustomext2fs/source/ext2_io.h
@@ -0,0 +1,141 @@
+/*
+ * io.h --- the I/O manager abstraction
+ *
+ * Copyright (C) 1993, 1994, 1995, 1996 Theodore Ts'o.
+ *
+ * %Begin-Header%
+ * This file may be redistributed under the terms of the GNU Library
+ * General Public License, version 2.
+ * %End-Header%
+ */
+
+#ifndef _EXT2FS_EXT2_IO_H
+#define _EXT2FS_EXT2_IO_H
+
+#include "ext2fs.h"
+
+/*
+ * ext2_loff_t is defined here since unix_io.c needs it.
+ */
+typedef long long ext2_loff_t;
+
+/* llseek.c */
+ext2_loff_t ext2fs_llseek (int, ext2_loff_t, int);
+
+typedef struct struct_io_manager *io_manager;
+typedef struct struct_io_channel *io_channel;
+typedef struct struct_io_stats *io_stats;
+
+#define CHANNEL_FLAGS_WRITETHROUGH 0x01
+#define CHANNEL_FLAGS_DISCARD_ZEROES 0x02
+
+#define io_channel_discard_zeroes_data(i) (i->flags & CHANNEL_FLAGS_DISCARD_ZEROES)
+
+struct struct_io_channel {
+ errcode_t magic;
+ io_manager manager;
+ char *name;
+ int block_size;
+ errcode_t (*read_error)(io_channel channel,
+ unsigned long block,
+ int count,
+ void *data,
+ size_t size,
+ int actual_bytes_read,
+ errcode_t error);
+ errcode_t (*write_error)(io_channel channel,
+ unsigned long block,
+ int count,
+ const void *data,
+ size_t size,
+ int actual_bytes_written,
+ errcode_t error);
+ int refcount;
+ int flags;
+ long reserved[14];
+ void *private_data;
+ void *app_data;
+};
+
+struct struct_io_stats {
+ int num_fields;
+ int reserved;
+ unsigned long long bytes_read;
+ unsigned long long bytes_written;
+};
+
+struct struct_io_manager {
+ errcode_t magic;
+ const char *name;
+ errcode_t (*open)(const char *name, int flags, io_channel *channel);
+ errcode_t (*close)(io_channel channel);
+ errcode_t (*set_blksize)(io_channel channel, int blksize);
+ errcode_t (*read_blk)(io_channel channel, unsigned long block,
+ int count, void *data);
+ errcode_t (*write_blk)(io_channel channel, unsigned long block,
+ int count, const void *data);
+ errcode_t (*flush)(io_channel channel);
+ errcode_t (*write_byte)(io_channel channel, unsigned long offset,
+ int count, const void *data);
+ errcode_t (*set_option)(io_channel channel, const char *option,
+ const char *arg);
+ errcode_t (*get_stats)(io_channel channel, io_stats *io_stats);
+ errcode_t (*read_blk64)(io_channel channel, unsigned long long block,
+ int count, void *data);
+ errcode_t (*write_blk64)(io_channel channel, unsigned long long block,
+ int count, const void *data);
+ errcode_t (*discard)(io_channel channel, unsigned long long block,
+ unsigned long long count);
+ long reserved[16];
+};
+
+#define IO_FLAG_RW 0x0001
+#define IO_FLAG_EXCLUSIVE 0x0002
+#define IO_FLAG_DIRECT_IO 0x0004
+
+/*
+ * Convenience functions....
+ */
+#define io_channel_close(c) ((c)->manager->close((c)))
+#define io_channel_set_blksize(c,s) ((c)->manager->set_blksize((c),s))
+#define io_channel_read_blk(c,b,n,d) ((c)->manager->read_blk((c),b,n,d))
+#define io_channel_write_blk(c,b,n,d) ((c)->manager->write_blk((c),b,n,d))
+#define io_channel_flush(c) ((c)->manager->flush((c)))
+#define io_channel_bumpcount(c) ((c)->refcount++)
+
+/* io_manager.c */
+extern errcode_t io_channel_set_options(io_channel channel,
+ const char *options);
+extern errcode_t io_channel_write_byte(io_channel channel,
+ unsigned long offset,
+ int count, const void *data);
+extern errcode_t io_channel_read_blk64(io_channel channel,
+ unsigned long long block,
+ int count, void *data);
+extern errcode_t io_channel_write_blk64(io_channel channel,
+ unsigned long long block,
+ int count, const void *data);
+
+/* unix_io.c */
+extern io_manager unix_io_manager;
+
+/* undo_io.c */
+extern io_manager undo_io_manager;
+extern errcode_t set_undo_io_backing_manager(io_manager manager);
+extern errcode_t set_undo_io_backup_file(char *file_name);
+
+/* test_io.c */
+extern io_manager test_io_manager, test_io_backing_manager;
+extern void (*test_io_cb_read_blk)
+ (unsigned long block, int count, errcode_t err);
+extern void (*test_io_cb_write_blk)
+ (unsigned long block, int count, errcode_t err);
+extern void (*test_io_cb_read_blk64)
+ (unsigned long long block, int count, errcode_t err);
+extern void (*test_io_cb_write_blk64)
+ (unsigned long long block, int count, errcode_t err);
+extern void (*test_io_cb_set_blksize)
+ (int blksize, errcode_t err);
+
+#endif /* _EXT2FS_EXT2_IO_H */
+
diff --git a/libcustomext2fs/source/ext2_types.h b/libcustomext2fs/source/ext2_types.h
new file mode 100644
index 00000000..5f5f7a57
--- /dev/null
+++ b/libcustomext2fs/source/ext2_types.h
@@ -0,0 +1,18 @@
+/*
+ * If linux/types.h is already been included, assume it has defined
+ * everything we need. (cross fingers) Other header files may have
+ * also defined the types that we need.
+ */
+#ifndef _EXT2_TYPES_H
+#define _EXT2_TYPES_H
+
+typedef unsigned char __u8;
+typedef signed char __s8;
+typedef unsigned short __u16;
+typedef short __s16;
+typedef unsigned int __u32;
+typedef int __s32;
+typedef unsigned long long __u64;
+typedef signed long long __s64;
+
+#endif /* _EXT2_TYPES_H */
diff --git a/libcustomext2fs/source/ext2dir.c b/libcustomext2fs/source/ext2dir.c
new file mode 100644
index 00000000..ee7ce3c3
--- /dev/null
+++ b/libcustomext2fs/source/ext2dir.c
@@ -0,0 +1,657 @@
+/**
+ * ext2_dir.c - devoptab directory routines for EXT2-based devices.
+ *
+ * Copyright (c) 2006 Michael "Chishm" Chisholm
+ * Copyright (c) 2009 Rhys "Shareese" Koedijk
+ * Copyright (c) 2010 Dimok
+ *
+ * This program/include file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as published
+ * by the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program/include file is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include