The pfUI-toolbox includes some ugly scripts to automatically generate and extract locale related content and other data from the client and databases. It is recommended to clone this repository side by side to your pfUI installation.
$ ls -1
pfUI/
pfUI-toolbox/
Hint: If you only want to update the translation tables, you won't need to follow the dependency and database server setup.
You'll need an up to date linux system with wine
, php
, mariadb-clients
and lxc
installed.
Make sure you have lxc
installed on your host and /etc/lxc/default.conf includes lxc.net.0.type = none
.
Select apache2
as webserver when asked and use mangos
as password for your database connections.
lxc-create -n pfUI -t ubuntu
lxc-start -n pfUI
lxc-attach -n pfUI
echo "nameserver 8.8.8.8" > /etc/resolv.conf
apt-get update && apt-get upgrade
apt-get install phpmyadmin mariadb-server wget p7zip
Grab and install the latest database from elysium's github page. Also install aowow's sql tables for additional informations and correlation tables.
wget https://github.com/elysium-project/database/raw/master/full_db/world_1.12_AUG08_2017.7z.7z
p7zip -d world_*.7z
mysql -u root
> CREATE DATABASE mangos DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
> CREATE USER 'mangos'@'localhost' IDENTIFIED BY 'mangos';
> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, LOCK TABLES ON mangos.* TO 'mangos'@'localhost';
> flush privileges;
> quit;
mysql -u mangos -p mangos < world_*.sql
wget https://github.com/shagu/ShaguQuest/raw/master/database/aowow.sql
mysql -u mangos -p mangos < aowow.sql
Make sure to have gameclients of all languages you wish to build for available. The file Data/dbc.MPQ
aswell as all Data/patch-*.MPQ
inside the World of Warcraft directory have to be copied to a new folder with the name of the corresponding locale (e.g ruRU). Now follow the install instructions of MPQExtractor to install the actual DBC extractor. Make sure it is installed correctly by typing MPQExtractor
into a shell. Now have a look inside the ./tools/load_dbcs.sh
script and adjust the PATH_MPQ
to the directory where your MPQ's are. Once done, type ./tools/load_dbcs.sh
to extract the required gamedata. The required structure now gets patched, renamed and moved to the DBC
folder inside this repo.
You're now ready to generate the locale dependent content. At the beginning you should instruct make
to prepare everything. This has to be done to parse all DBC files into CSV and also generate SQL files which will be installed to your database.
make prepare
The SQL-Update might take a while, depending on your DBCs. Finally you're ready to run the makefile without any parameters to generate everything. You can also only generate files seperately.
make # will run "critters", "debuffs", "spells" and "interrupts"
make prepare # Clean old files, convert dbc into csv and sql files and updates the database
make critters # Build out/critter_$loc.lua. A list of all critters ingame.
make debuffs # Build out/debuffs_$loc.lua. A list of all debuffs and their duration.
make spells # Build out/spells_$loc.lua. A list of all spells, their casttime and icon.
make interrupts # Build out/interrupts_$loc.lua. A list of all known interrupts, generated by the ./lists/interrupts.txt
make translations # Update all pfUI translation tables, sort them and add missing T[""] values.