If you apply changes to our city database please follow these steps:

As a translator please just edit cities.txt! If you edit the KML file directly your changes will get overwritten on the next change!
All other steps are optional and can be done by one of our programmers:

1. Build marble with -DBUILD_MARBLE_TOOLS=ON passed to cmake

2. Prepare cities.txt as follows:

If you're interested only in the n cities with the highest population, you can generate a modified cities.txt like this (here n=1000):

$ sort -t"$(echo -e "\t")" -n -k 15 cities.txt | tail -n 1000 > cities_largest_1000.txt

Then use cities_largest_1000.txt instead of cities.txt.

Be sure data is sorted alphabetically, otherwise there is a big perfomance hit when loading the files at startup.
For that, run:

$ sort -t"$(echo -e "\t")" -k 2 cities.txt > cities_sorted.txt

2. Execute the two tools:

$ marble/tools/asc2kml/asc2kml -o ~/marble/data/placemarks/cityplacemarks.kml ~/marble/data/placemarks/cities_sorted.txt  ~/marble/data/placemarks/statecodes.txt ~/marble/data/placemarks/timeZones.txt
$ marble/tools/kml2cache/kml2cache -i ~/marble/data/placemarks/cityplacemarks.kml -o ~/marble/data/placemarks/cityplacemarks.cache

3. Create the placemark-directory in your home directory if it doesn't exist already.

$ mkdir ~/.local/share/marble/placemarks

4. Copy the new KML cache file over

$ cp ~/marble/data/placemarks/cityplacemarks.cache ~/.local/share/marble/placemarks/cityplacemarks.cache

5. Delete the cityplacemarks cache file in the system directory:

$ sudo rm /usr/local/share/apps/marble/data/placemarks/cityplacemarks.cache

6. Run Marble. Check that the cache file is correctly loaded

7. Commit the new version of cityplacemarks.kml & cityplacemarks.cache to git
