FANDOM


South Africa is a former country that was once one of the most diverse nations on the planet. Today, the area is divided between numerous states and union. The New Union of South Africa (NUSA), a loose confederation of states, has come the closest to re-establishing a South African Union between nations, while the African Economic Community - a movement led by New Britain has grown to become its rival.

HistoryEdit

Pre-DoomsdayEdit

South Africa was first settled by white colonists in the late 16th century. South Africa was concentrated around the Cape of Good Hope until Boers, Afrikaners of Dutch descent spread out across the southern Africa and set up two nations, Transvaal and the Orange Free State. In the 1880s, Britain attempted to seize the diamond mines of South Africa so they annexed Transvaal. And when they attempted to take the Orange Free State which was met by resistance. By the end of the 1st Boer War, it had ended with the freeing of Transvaal. From 1899-1902 Britain and the Boers fought the Second Boer War. This conflict was more controversial as it was Britain fighting against white Europeans and not black savages.

By 1902 the Boers had surrendered and in 1910 Britain led the foundation of the Union of South Africa with the former Boer leader Louis Botha being elected the first president. By the time of WWI in 1914 it was Botha and his war minister Jan Smuts decision to take South Africa to war in support of Britain. South African troops invaded the German colony of Southwest Africa. The colony was quickly overrun and Botha annexed it into the union. South African troops also fought elsewhere like against Paul von Lettow-Vorbeck's troops in German East Africa. South African cavalry was used against rebels in Libya and Egypt in early 1916, and the remainder of South Africa's army was sent to the Western Front. After WWI Prime Minister Botha died in 1919 and Jan Smuts became Prime Minister until 1924.

In 1931 the Union was fully sovereign from the British Empire with the Westminster Act.

Post-DoomsdayEdit

While not directly attacked, the climate changes and other damage done to the Earth by Doomsday had a horrible effect on South Africa. Meanwhile, the lost foreign trade also caused the South African economy to collapse. The resulting refugees begin organizing into militias to secure control of the area using harsh forms of punishment to maintain order. Despite martial law being declared in 1985, rioting ran rampant and the government was forced to abandon several cities to anarchy. As it becomes apparent that the white minority was shunting food and fuel rations to primarily whites, black South Africans exploded into open rebellion.

Meanwhile, a convoy of ships had been organized for Europe to save as many people as they could from the United Kingdom.

In 1986, the few people evacuated from Britain by the RAF and Navy gathered around Port Elizabeth after the city was secured by remnants of the British military. The refugees founded the new Anglo-African state of New Britain after promising elements of the ANC working with them that they would have equal representation in the new state. Prince Andrew was transported by the Royal Navy and crowned King in Port Elizabeth. Many headed for New Britain but others tried other places in the area.

This led many of the new refugees to go seek other nations where they could set up their homes. Many of the refugees headed to what is now German South West Africa, while others headed to other countries like the Orange Free State. But by the mid-1990s, many began to stay in New Britain and emigration from the country into others parts of South Africa dropped significantly.

In 2004 negotiations between the Republic of the Cape, German South West Africa, Volkstaat, and Waterboersland had succeeded in creating the New Union of South Africa that united the nations into one political entity, internationally. However, things did not go well between the Republic of the Cape and the rest of the Union, leading to many heated arguments and political tensions between the leaders of the member states.

However, in 2006, a joint ANZC and SAC military force occupied Cape Town in order to depose the horrifying warlord regime that ruled the city. A new RZA Provisional Government was set up but was only able to secure a small region around Capetown with the support of a small joint SAC/ANZC garrison. Still, the mission was the first multinational peacekeeping mission to occur since Doomsday. Gradually, however, the RZA is expanding into the de facto lawless warlord-ruled territory inland.

The Republic of the Cape, although now not an official member, is still considered a relapsed member of NUSA. However, the RZA have shown minimal intention of re-joining NUSA and continued to work with New Britain more closely than it ever with with the New Union. This gave a clear message to the other member states of NUSA that it would be fruitless to attempt to ask the RZA to rejoin.

Fearing correctly that they had united all of former South Africa against them due to their aggressive policies, in 2009, New Britain proposed the “African Economic Community” in an effort to unite the economies of all the states in the region. So far, however, only the RZA and KwaXhosa have become members.

The Orange Free State continues to work closely with the New Union, but is still wary of joining. This is mainly seen by critics due to the softer policies of the member states of NUSA on the issues of apartheid. In the Orange Free State, apartheid still runs amok but it has all but disappeared in the Union of South Africa as survival forced the white and black populace to work more closely with each other. There is a booming mixed population now growing.

In early 2012, talks began about making an official currency to ease the transaction problems of the member states. After heavy discussions, it was decided that the plan to make a new currency would, indeed, go ahead. The name given to the new currency was the Union Rand. It would be used alongside many of the "regional" currencies in the member nations.

Successor StatesEdit

The area which was former South Africa has broken down into multiple successor states. Two rival economic blocks dominate the former South Africa.

African Economic CommunityEdit

The African Economic Community was formed after the creation of the New Union of South Africa, when New Britain felt that the states in the area had been united against it. It currently consists of four members which share economic policies. The aim was to unite all of the economies of the region into one to allow for easier and smoother trading.

Capital: Port Elizabeth
Capital: Bisho
Capital: Cape Town
Capital: Francistown

New Union of South AfricaEdit

The New Union of South Africa was formed from much of the remnant states in the area to better their prospects of economic development and survival. Currently, it has five members in union and a united currency. It has also recently formed a united armed forces to look out for its united interests. The following states are a part of the nation:

CurrentEdit

Capital: Walwis Bay (German: Neu Berlin)
Capital: Springbok
Capital: Griqua Town (Afrikaans: Griekwastad)
Capital: Ulundi
Capital: Maseru

FormerEdit

Capital: Cape Town (Afrikaans: Kaapstad)

Azanian LeagueEdit

The Azanian League is 

See alsoEdit

-- -- This module will implement Template loop detected: Template:Navbox --

local p = {}

local HtmlBuilder = require('Module:HtmlBuilder') local navbar = require('Module:Navbar')._navbar local getArgs -- lazily initialized

local args local tableRowAdded = false local border local listnums = {}

local function trim(s)

   return (mw.ustring.gsub(s, "^%s*(.-)%s*$", "%1"))

end

local function addNewline(s)

   if s:match('^[*:;#]') or s:match('^{|') then
       return '\n' .. s ..'\n'
   else
       return s
   end

end

local function addTableRow(tbl)

   -- If any other rows have already been added, then we add a 2px gutter row.
   if tableRowAdded then
       tbl
           .tag('tr')
               .css('height', '2px')
               .tag('td')
               	.attr('colspan',2)
   end

   tableRowAdded = true

   return tbl.tag('tr')

end

local function renderNavBar(titleCell)

   -- Depending on the presence of the navbar and/or show/hide link, we may need to add a spacer div on the left
   -- or right to keep the title centered.
   local spacerSide = nil

   if args.navbar == 'off' then
       -- No navbar, and client wants no spacer, i.e. wants the title to be shifted to the left. If there's
       -- also no show/hide link, then we need a spacer on the right to achieve the left shift.
       if args.state == 'plain' then spacerSide = 'right' end
   elseif args.navbar == 'plain' or (not args.name and mw.getCurrentFrame():getParent():getTitle() == 'Template:Navbox' and (border == 'subgroup' or border == 'child' or border == 'none')) then
       -- No navbar. Need a spacer on the left to balance out the width of the show/hide link.
       if args.state ~= 'plain' then spacerSide = 'left' end
   else
       -- Will render navbar (or error message). If there's no show/hide link, need a spacer on the right
       -- to balance out the width of the navbar.
       if args.state == 'plain' then spacerSide = 'right' end

       titleCell.wikitext(navbar{ 
           args.name, 
           mini = 1, 
           fontstyle = (args.basestyle or ) .. ';' .. (args.titlestyle or ) ..  ';background:none transparent;border:none;'
       })
   end

   -- Render the spacer div.
   if spacerSide then
       titleCell
           .tag('span')
               .css('float', spacerSide)
               .css('width', '6em')
               .wikitext(' ')
   end

end

-- -- Title row -- local function renderTitleRow(tbl)

   if not args.title then return end

   local titleRow = addTableRow(tbl)

   if args.titlegroup then
       titleRow
           .tag('th')
               .attr('scope', 'row')
               .addClass('navbox-group')
               .addClass(args.titlegroupclass)
               .cssText(args.basestyle)
               .cssText(args.groupstyle)
               .cssText(args.titlegroupstyle)
               .wikitext(args.titlegroup)
   end

   local titleCell = titleRow.tag('th').attr('scope', 'col')

   if args.titlegroup then
       titleCell
           .css('border-left', '2px solid #fdfdfd')
           .css('width', '100%')
   end

   local titleColspan = 2
   if args.imageleft then titleColspan = titleColspan + 1 end
   if args.image then titleColspan = titleColspan + 1 end
   if args.titlegroup then titleColspan = titleColspan - 1 end

   titleCell
       .cssText(args.basestyle)
       .cssText(args.titlestyle)
       .addClass('navbox-title')
       .attr('colspan', titleColspan)

   renderNavBar(titleCell)

   titleCell
        .tag('div')
            .addClass(args.titleclass)
            .css('font-size', '110%')
            .wikitext(addNewline(args.title))

end

-- -- Above/Below rows --

local function getAboveBelowColspan()

   local ret = 2
   if args.imageleft then ret = ret + 1 end
   if args.image then ret = ret + 1 end
   return ret

end

local function renderAboveRow(tbl)

   if not args.above then return end

   addTableRow(tbl)
       .tag('td')
           .addClass('navbox-abovebelow')
           .addClass(args.aboveclass)
           .cssText(args.basestyle)
           .cssText(args.abovestyle)
           .attr('colspan', getAboveBelowColspan())
           .tag('div')
               .wikitext(addNewline(args.above))

end

local function renderBelowRow(tbl)

   if not args.below then return end

   addTableRow(tbl)
       .tag('td')
           .addClass('navbox-abovebelow')
           .addClass(args.belowclass)
           .cssText(args.basestyle)
           .cssText(args.belowstyle)
           .attr('colspan', getAboveBelowColspan())
           .tag('div')
               .wikitext(addNewline(args.below))

end

-- -- List rows -- local function renderListRow(tbl, listnum)

   local row = addTableRow(tbl)

   if listnum == 1 and args.imageleft then
       row
           .tag('td')
               .addClass('navbox-image')
               .addClass(args.imageclass)
               .css('width', '0%')
               .css('padding', '0px 2px 0px 0px')
               .cssText(args.imageleftstyle)
               .attr('rowspan', 2 * #listnums - 1)
               .tag('div')
                   .wikitext(addNewline(args.imageleft))
   end

   if args['group' .. listnum] then
       local groupCell = row.tag('th')

       groupCell
              .attr('scope', 'row')
              .addClass('navbox-group')
              .addClass(args.groupclass)
              .cssText(args.basestyle)

       if args.groupwidth then
           groupCell.css('width', args.groupwidth)
       end

       groupCell
           .cssText(args.groupstyle)
           .cssText(args['group' .. listnum .. 'style'])
           .wikitext(args['group' .. listnum])
   end

   local listCell = row.tag('td')

   if args['group' .. listnum] then
       listCell
           .css('text-align', 'left')
           .css('border-left-width', '2px')
           .css('border-left-style', 'solid')
   else
       listCell.attr('colspan', 2)
   end

   if not args.groupwidth then 
       listCell.css('width', '100%')
   end

   local isOdd = (listnum % 2) == 1
   local rowstyle = args.evenstyle
   if isOdd then rowstyle = args.oddstyle end

   local evenOdd
   if args.evenodd == 'swap' then
       if isOdd then evenOdd = 'even' else evenOdd = 'odd' end
   else
       if isOdd then evenOdd = args.evenodd or 'odd' else evenOdd = args.evenodd or 'even' end
   end

   listCell
       .css('padding', '0px')
       .cssText(args.liststyle)
       .cssText(rowstyle)
       .cssText(args['list' .. listnum .. 'style'])
       .addClass('navbox-list')
       .addClass('navbox-' .. evenOdd)
       .addClass(args.listclass)
       .tag('div')
           .css('padding', (listnum == 1 and args.list1padding) or args.listpadding or '0em 0.25em')
           .wikitext(addNewline(args['list' .. listnum]))

   if listnum == 1 and args.image then
       row
           .tag('td')
               .addClass('navbox-image')
               .addClass(args.imageclass)
               .css('width', '0%')
               .css('padding', '0px 0px 0px 2px')
               .cssText(args.imagestyle)
               .attr('rowspan', 2 * #listnums - 1)
               .tag('div')
                   .wikitext(addNewline(args.image))
   end

end


-- -- Tracking categories --

local function needsHorizontalLists()

   if border == 'child' or border == 'subgroup'  or args.tracking == 'no' then return false end

   local listClasses = {'plainlist', 'hlist', 'hlist hnum', 'hlist hwrap', 'hlist vcard', 'vcard hlist', 'hlist vevent'}
   for i, cls in ipairs(listClasses) do
       if args.listclass == cls or args.bodyclass == cls then
           return false
       end
   end

   return true

end

local function hasBackgroundColors()

   return mw.ustring.match(args.titlestyle or ,'background') or mw.ustring.match(args.groupstyle or ,'background') or mw.ustring.match(args.basestyle or ,'background')

end

local function getTrackingCategories()

   local cats = {}
   if needsHorizontalLists() then table.insert(cats, 'Navigational boxes without horizontal lists') end
   if hasBackgroundColors() then table.insert(cats, 'Navboxes using background colours') end
   return cats

end

local function renderTrackingCategories(builder)

   local title = mw.title.getCurrentTitle()
   if title.namespace ~= 10 then return end -- not in template space
   local subpage = title.subpageText
   if subpage == 'doc' or subpage == 'sandbox' or subpage == 'testcases' then return end

   for i, cat in ipairs(getTrackingCategories()) do
       builder.wikitext() 
   end

end

-- -- Main navbox tables -- local function renderMainTable()

   local tbl = HtmlBuilder.create('table')
       .attr('cellspacing', 0)
       .addClass('nowraplinks')
       .addClass(args.bodyclass)

   if args.title and (args.state ~= 'plain' and args.state ~= 'off') then
       tbl
           .addClass('collapsible')
           .addClass(args.state or 'autocollapse')
   end

   tbl.css('border-spacing', 0)
   if border == 'subgroup' or border == 'child' or border == 'none' then
       tbl
           .addClass('navbox-subgroup')
           .cssText(args.bodystyle)
           .cssText(args.style)
   else -- regular navobx - bodystyle and style will be applied to the wrapper table
       tbl
           .addClass('navbox-inner')
           .css('background', 'transparent')
           .css('color', 'inherit')
   end
   tbl.cssText(args.innerstyle)

   renderTitleRow(tbl)
   renderAboveRow(tbl)
   for i, listnum in ipairs(listnums) do
       renderListRow(tbl, listnum) 
   end
   renderBelowRow(tbl)

   return tbl

end

function p._navbox(navboxArgs)

   args = navboxArgs

   for k, v in pairs(args) do
       local listnum = ( .. k):match('^list(%d+)$')
       if listnum then table.insert(listnums, tonumber(listnum)) end
   end
   table.sort(listnums)

   border = trim(args.border or args[1] or )

   -- render the main body of the navbox
   local tbl = renderMainTable()

   -- render the appropriate wrapper around the navbox, depending on the border param
   local res = HtmlBuilder.create()
   if border == 'none' then
       res.node(tbl)
   elseif border == 'subgroup' or border == 'child' then
       -- We assume that this navbox is being rendered in a list cell of a parent navbox, and is
       -- therefore inside a div with padding:0em 0.25em. We start with a </div> to avoid the
-- padding being applied, and at the end add a
to balance out the parent's
       res
           .tag('/div', {unclosed = true})
               .done()
           .node(tbl)
           .tag('div', {unclosed = true})
   else
       res
           .tag('table')
               .attr('cellspacing', 0)
               .addClass('navbox')
               .css('border-spacing', 0)
               .cssText(args.bodystyle)
               .cssText(args.style)
               .tag('tr')
                   .tag('td')
                       .css('padding', '2px')
                       .node(tbl)
   end

   renderTrackingCategories(res)

   return tostring(res)

end

function p.navbox(frame)

   if not getArgs then
   	getArgs = require('Module:Arguments').getArgs
   end
   args = getArgs(frame)

   -- Read the arguments in the order they'll be output in, to make references number in the right order.
   local _
   _ = args.title
   _ = args.above
   for i = 1, 20 do
       _ = args["group" .. tostring(i)]
       _ = args["list" .. tostring(i)]
   end    
   _ = args.below

   return p._navbox(args)

end

return p

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.