World Library  
Flag as Inappropriate
Email this Article

List of football clubs in Germany

 

List of football clubs in Germany

Name Division Level City State German champions Cup wins International
Trophies
TSV 1860 München 2. Bundesliga 2 Munich Bavaria 1 2 0
Aalen, VfRVfR Aalen 2. Bundesliga 2 Aalen Baden-Württemberg 0 0 0
Alemannia Aachen Regionalliga West 4 Aachen North Rhine-Westphalia 0 0 0
BFC Alemannia 90 Wacker Landesliga Berlin Staffel 2 7 Berlin Berlin 0 0 0
Altona 93, FCFC Altona 93 Oberliga Hamburg 5 Hamburg Hamburg 0 0 0
Anker Wismar, FCFC Anker Wismar NOFV-Oberliga Nord 5 Wismar Mecklenburg-Vorpommern 0 0 0
Arminia Bielefeld 2. Bundesliga 2 Bielefeld North Rhine-Westphalia 0 0 0
Arminia Hannover Oberliga Niedersachsen-West 5 Hannover Niedersachsen 0 0 0
Augsburg, FCFC Augsburg Bundesliga 1 Augsburg Bavaria 0 0 0
Babelsberg 03, SVSV Babelsberg 03 Regionalliga Nordost 4 Potsdam Brandenburg 0 0 0
Baunatal, KSVKSV Baunatal Hessenliga 5 Baunatal Hessen 0 0 0
Bayer 04 Leverkusen Bundesliga 1 Leverkusen North Rhine-Westphalia 0 1 1
Bayern Alzenau, FCFC Bayern Alzenau Regionalliga Südwest 4 Alzenau Bavaria 0 0 0
Bayern Hof, SpVggSpVgg Bayern Hof Regionalliga Bayern 4 Hof Bavaria 0 0 0
Bayern Munich, FCFC Bayern Munich Bundesliga 1 Munich Bavaria 23 16 10
Bayreuth, SpVggSpVgg Bayreuth Oberliga Bayern 5 Bayreuth Bavaria 0 0 0
Berliner SV Bezirksliga Berlin 8 Berlin Berlin 0 0 0
Bischofswerdaer FV 08 Bezirksklasse Dresden 8 Bischofswerda Saxony 0 0 0
Blau-Weiß Berlin Berlin Berlin 1 0 0
Bocholt, 1. FC1. FC Bocholt Landesliga Mittelrhein 7 Bocholt North Rhine-Westphalia 0 0 0
Bochum, VfLVfL Bochum 2. Bundesliga 2 Bochum North Rhine-Westphalia 0 0 0
Bonner SC Mittelrheinliga 5 Bonn North Rhine-Westphalia 0 0 0
Borussia Dortmund Bundesliga 1 Dortmund North Rhine-Westphalia 8 2 3
Borussia Mönchengladbach Bundesliga 1 Mönchengladbach North Rhine-Westphalia 5 3 2
Borussia Neunkirchen Oberliga Rheinland-Pfalz/Saar 5 Neunkirchen Saarland 0 0 0
Bremerhaven, OSCOSC Bremerhaven Oberliga Bremen 5 Bremerhaven Bremen 0 0 0
Bürstadt, VfRVfR Bürstadt Bezirksliga Süd 7 Bürstadt Hessen 0 0 0
Carl Zeiss Jena Regionalliga Nordost 4 Jena Thuringia 0 0 0
SCC Berlin Berlin-Liga 6 Berlin Berlin 0 0 0
Chemie Böhlen Bezirksklasse Leipzig 8 Böhlen Saxony 0 0 0
Chemnitzer FC 3. Liga 3 Chemnitz Saxony 0 0 0
Cloppenburg, BVBV Cloppenburg Oberliga Niedersachsen-West 5 Cloppenburg Niedersachsen 0 0 0
Darmstadt 98, SVSV Darmstadt 98 3. Liga 3 Darmstadt Hessen 0 0 0
Dessau 05, SVSV Dessau 05 Verbandsliga Sachsen-Anhalt 6 Dessau Sachsen-Anhalt 0 0 0
Dresdner SC Bezirksklasse Dresden 8 Dresden Saxony 2 2 0
Duisburg, MSVMSV Duisburg 3. Liga 3 Duisburg North Rhine-Westphalia 0 0 0
Dynamo, Berliner FCBerliner FC Dynamo NOFV-Oberliga Nord 5 Berlin Berlin 0 0 0
Dynamo Dresden 2. Bundesliga 2 Dresden Saxony 0 0 0
Einheit zu Pankow, VfBVfB Einheit zu Pankow Bezirksliga Berlin 8 Berlin Berlin 0 0 0
Eintracht Bad Kreuznach Verbandsliga Südwest 6 Bad Kreuznach Rhineland Palatinate 0 0 0
Eintracht Bamberg Regionalliga Bayern 4 Bamberg Bavaria 0 0 0
Eintracht Braunschweig Bundesliga 1 Braunschweig Niedersachsen 1 0 0
Eintracht Frankfurt Bundesliga 1 Frankfurt Hessen 1 4 1
Eintracht Schwerin Verbandsliga Mecklenburg-Vorpommern 6 Schwerin Mecklenburg-Vorpommern 0 0 0
Eintracht Trier Regionalliga Südwest 4 Trier Rhineland Palatinate 0 0 0
Elversberg, SVSV Elversberg 3. Liga 3 Spiesen-Elversberg Saarland 0 0 0
Energie Cottbus 2. Bundesliga 2 Cottbus Brandenburg 0 0 0
Eppingen, VfBVfB Eppingen Landesliga Rhein-Neckar 7 Eppingen Baden-Württemberg 0 0 0
Erkenschwick, SpVggSpVgg Erkenschwick Verbandsliga Westfalen 6 Oer-Erkenschwick North Rhine-Westphalia 0 0 0
Erzgebirge Aue 2. Bundesliga 2 Aue Saxony 0 0 0
Fortuna Babelsberg Landesliga Brandenburg/Nord 7 Potsdam Brandenburg 0 0 0
Fortuna Köln Regionalliga West 4 Köln North Rhine-Westphalia 0 0 0
Fortuna Düsseldorf 2. Bundesliga 2 Düsseldorf North Rhine-Westphalia 1 2 0
Frankfurt, FSVFSV Frankfurt 2. Bundesliga 2 Frankfurt Hessen 0 0 0
Frankfurter FC Viktoria Brandenburg 6 Frankfurt (Oder) Brandenburg 0 0 0
Freiburger FC Verbandsliga Südbaden 6 Freiburg Baden-Württemberg 1 0 0
Freiburg, SCSC Freiburg Bundesliga 1 Freiburg Baden-Württemberg 0 0 0
FV Gera Süd Landesliga Thüringen 6 Gera Thuringia 0 0 0
Glückauf Brieske-Senftenberg, FSVFSV Glückauf Brieske-Senftenberg Brandenburg-Liga 6 Senftenberg Brandenburg 0 0 0
Goslarer SC 08 Regionalliga Nord 4 Goslar Niedersachsen 0 0 0
Göttingen 05 Bezirksoberliga Braunschweig 6 Göttingen Niedersachsen 0 0 0
Greuther Fürth, SpVggSpVgg Greuther Fürth Bundesliga 1 Fürth Bavaria 3 0 0
SonnenhofGroßaspach, SGSG SonnenhofGroßaspach Regionalliga Südwest 4 Aspach Baden-Württemberg 0 0 0
Großbardorf, TSVTSV Großbardorf Oberliga Bayern 5 Großbardorf Bavaria 0 0 0
FC Gütersloh 2000 Westfalenliga 6 Gütersloh North Rhine-Westphalia 0 0 0
Hallescher FC 3. Liga 3 Halle Sachsen-Anhalt 0 0 0
Hamburger SV Bundesliga 1 Hamburg Hamburg 7 3 2
Hanau 93, FCFC Hanau 93 Gruppenliga Frankfurt Ost 7 Hanau Hessen 0 0 0
Hannover 96 Bundesliga 1 Hannover Niedersachsen 2 1 0
F.C. Hansa Rostock 3. Liga 3 Rostock Mecklenburg-Vorpommern 0 0 0
Havelse, TSVTSV Havelse Oberliga Niedersachsen-West 5 Garbsen Niedersachsen 0 0 0
Heidenheim, 1. FC1. FC Heidenheim 3. Liga 3 Heidenheim Baden-Württemberg 0 0 0
Heilbronn, FCFC Heilbronn Landesliga Württemberg 7 Heilbronn Baden-Württemberg 0 0 0
Herford, SCSC Herford Landesliga Westfalen 7 Herford North Rhine-Westphalia 0 0 0
Hessen Kassel, KSVKSV Hessen Kassel Regionalliga Südwest 4 Kassel Hessen 0 0 0
Hertha BSC Bundesliga 1 Berlin Berlin 2 0 0
Hoffenheim, TSG 1899TSG 1899 Hoffenheim Bundesliga 1 Sinsheim Baden-Württemberg 0 0 0
Holstein Kiel Regionalliga Nord 4 Kiel Schleswig-Holstein 1 0 0
Homburg, FC 08FC 08 Homburg Regionalliga West 4 Homburg Saarland 0 0 0
HSV Barmbek-Uhlenhorst Oberliga Hamburg 5 Hamburg Hamburg 0 0 0
Ingolstadt 04, FCFC Ingolstadt 04 2. Bundesliga 2 Ingolstadt Bavaria 0 0 0
SSV Jahn Regensburg 3. Liga 3 Regensburg Bavaria 0 0 0
Kaiserslautern, 1. FC1. FC Kaiserslautern 2. Bundesliga 2 Kaiserslautern Rhineland Palatinate 4 2 0
Karlsruher FV Kreisklasse Karlsruhe 11 Karlsruhe Baden-Württemberg 1 0 0
Karlsruher SC 3. Liga 3 Karlsruhe Baden-Württemberg 1 2 0
Kickers Emden Oberliga Niedersachsen-West 5 Emden Niedersachsen 0 0 0
Kickers Offenbach 3. Liga 3 Offenbach Hessen 0 1 0
Kickers Würzburg Landesliga Bayern-Nord 6 Würzburg Bavaria 0 0 0
KFC Uerdingen 05 Regionalliga West 4 Krefeld North Rhine-Westphalia 0 1 0
Kleve, 1. FC1. FC Kleve Oberliga Nordrhein-Westfalen 5 Kleve North Rhine-Westphalia 0 0 0
Koblenz, TuSTuS Koblenz Regionalliga Südwest 4 Koblenz Rhineland Palatinate 0 0 0
Köln, 1. FC1. FC Köln 2. Bundesliga 2 Köln North Rhine-Westphalia 3 4 0
Lichtenberg 47, SVSV Lichtenberg 47 Landesliga Berlin 6 Berlin Berlin 0 0 0
Lotte, SportfreundeSportfreunde Lotte Regionalliga West 4 Lotte North Rhine-Westphalia 0 0 0
1. FC Lokomotive Leipzig Regionalliga Nordost 4 Leipzig Saxony 0 0 0
Lokomotive Stendal Verbandsliga Sachsen-Anhalt 6 Stendal Sachsen-Anhalt 0 0 0
Lübeck, VfBVfB Lübeck Regionalliga Nord 4 Lübeck Schleswig-Holstein 0 0 0
Magdeburg, 1. FC1. FC Magdeburg Regionalliga Nordost 4 Magdeburg Sachsen-Anhalt 0 0 1
Mannheim, VfRVfR Mannheim Oberliga Baden-Württemberg 5 Mannheim Baden-Württemberg 1 0 0
Mainz 05, FSVFSV Mainz 05 Bundesliga 1 Mainz Rhineland Palatinate 0 0 0
Meeraner SV Kreisliga Chemnitz 8 Meerane Saxony 0 0 0
Meppen, SVSV Meppen Regionalliga Nord 4 Meppen Niedersachsen 0 0 0
Merseburg, SVSV Merseburg Landesliga Sachsen-Anhalt/Süd 8 Merseburg Sachsen-Anhalt 0 0 0
Meuselwitz, ZFCZFC Meuselwitz Regionalliga Nordost 4 Meuselwitz Thuringia 0 0 0
Motor Altenburg, SVSV Motor Altenburg Landesklasse Thüringen 8 Altenburg Thuringia 0 0 0
Mülheim, 1. FC1. FC Mülheim Bezirksliga Niederrhein 8 Mülheim an der Ruhr North Rhine-Westphalia 0 0 0
Neubrandenburg, 1. FC1. FC Neubrandenburg Verbandsliga Mecklenburg-Vorpommern 6 Neubrandenburg Mecklenburg-Vorpommern 0 0 0
Nuremberg, 1. FC1. FC Nuremberg Bundesliga 1 Nuremberg Bavaria 9 4 0
Oberneuland, FCFC Oberneuland Regionalliga Nord 4 Bremen Bremen 0 0 0
Oggersheim, FSVFSV Oggersheim 1. Kreisklasse Rheinpfalz Süd 11 Ludwigshafen Rhineland Palatinate 0 0 0
Oldenburg, VfBVfB Oldenburg Oberliga Niedersachsen-West 5 Oldenburg Niedersachsen 0 0 0
Olympia Wilhelmshaven, TSRTSR Olympia Wilhelmshaven Kreisliga Wesermarsch 8 Wilhelmshaven Niedersachsen 0 0 0
Osnabrück, VfLVfL Osnabrück 3. Liga 3 Osnabrück North Rhine-Westphalia 0 0 0
OSV Hannover Bezirksliga Hannover 7 Hannover Niedersachsen 0 0 0
Paderborn 07, SCSC Paderborn 07 2. Bundesliga 2 Paderborn North Rhine-Westphalia 0 0 0
Pforzheim, 1. FC1. FC Pforzheim Pforzheim 6 Pforzheim Baden-Württemberg 0 0 0
Pfullendorf, SCSC Pfullendorf Regionalliga Südwest 4 Pfullendorf Baden-Württemberg 0 0 0
Pirmasens, FKFK Pirmasens Oberliga Rheinland-Pfalz/Saar 5 Pirmasens Rhineland Palatinate 0 0 0
Plauen, VFCVFC Plauen Regionalliga Nordost 4 Plauen Saxony 0 0 0
Pommern Stralsund, FCFC Pommern Stralsund Landesliga Mecklenburg-Vorpommern 7 Stralsund Mecklenburg-Vorpommern 0 0 0
Preußen Münster 3. Liga 3 Münster North Rhine-Westphalia 0 0 0
Remscheid, FCFC Remscheid Landesliga Niederrhein-Gruppe 1 7 Remscheid North Rhine-Westphalia 0 0 0
Reutlingen, SSVSSV Reutlingen Oberliga Baden-Württemberg 5 Reutlingen Baden-Württemberg 0 0 0
Röchling Völklingen Verbandsliga Saarland 6 Völklingen Saarland 0 0 0
Rot-Weiss Ahlen Westfalenliga 5 Ahlen North Rhine-Westphalia 0 0 0
Rot-Weiss Essen Regionalliga West 4 Essen North Rhine-Westphalia 0 0 0
Rot-Weiß Erfurt, FCFC Rot-Weiß Erfurt 3. Liga 3 Erfurt Thuringia 0 0 0
Rot-Weiß Oberhausen Regionalliga West 4 Oberhausen North Rhine-Westphalia 0 0 0
Saarbrücken, 1. FC1. FC Saarbrücken 3. Liga 3 Saarbrücken Saarland 0 0 0
Chemie Leipzig NOFV-Oberliga Süd 5 Leipzig Saxony 0 0 0
Salmrohr, FSVFSV Salmrohr Oberliga Rheinland-Pfalz/Saar 5 Salmrohr Rhineland-Palatinate 0 0 0
Sandhausen, SVSV Sandhausen 2. Bundesliga 2 Sandhausen Baden-Württemberg 0 0 0
Schalke 04, FCFC Schalke 04 Bundesliga 1 Gelsenkirchen North Rhine-Westphalia 7 5 1
Schwarz-Weiß Essen Oberliga Niederrhein 5 Essen North Rhine-Westphalia 0 1 0
Schweinfurt 05, FCFC Schweinfurt 05 Regionalliga Bayern 4 Schweinfurt Bavaria 0 0 0
BSV 07 Schwenningen Bezirksliga Schwarzwald 8 Schwenningen Baden-Württemberg 0 0 0
Spandauer SV Landesliga Berlin Staffel 2 7 Berlin Berlin 0 0 0
Sportfreunde Siegen Regionalliga West 4 Siegen North Rhine-Westphalia 0 0 0
St. Pauli, FCFC St. Pauli 2. Bundesliga 2 Hamburg Hamburg 0 0 0
FC Stahl Brandenburg Landesliga Brandenburg-Nord 7 Brandenburg an der Havel Brandenburg 0 0 0
Eisenhüttenstädter FC Stahl Brandenburg-Liga 6 Eisenhüttenstadt Brandenburg 0 0 0
TSV Stahl Riesa Bezirksklasse Dresden 8 Riesa Saxony 0 0 0
Stahl Thale, SVSV Stahl Thale Landesliga Sachsen-Anhalt 7 Thale Sachsen-Anhalt 0 0 0
Stuttgarter Kickers 3. Liga 3 Stuttgart Baden-Württemberg 0 0 0
Stuttgart, VfBVfB Stuttgart Bundesliga 1 Stuttgart Baden-Württemberg 5 3 0
Suhler SV, 1.1. Suhler SV Landesklasse Thuringen 7 Suhl Thuringen 0 0 0
SC Tasmania 1900 Berlin Berlin Berlin 0 0 0
Tennis Borussia Berlin Verbandsliga Berlin 5 Berlin Berlin 0 0 0
Türkiyemspor Berlin Verbandsliga Berlin 5 Berlin Berlin 0 0 0
Ulm 1846, SSVSSV Ulm 1846 Regionalliga Südwest 4 Ulm Baden-Württemberg 0 0 0
Union Berlin, 1. FC1. FC Union Berlin 2. Bundesliga 2 Berlin Berlin 0 0 0
1. FC Union Solingen Verbandsliga Niederrhein 6 Solingen North Rhine-Westphalia 0 0 0
Unterhaching, SpVggSpVgg Unterhaching 3. Liga 3 Munich Bavaria 0 0 0
Verl, SCSC Verl Regionalliga West 4 Verl North Rhine-Westphalia 0 0 0
Viktoria Aschaffenburg Regionaliga Bayern 4 Aschaffenburg Bavaria 0 0 0
BFC Viktoria 1889 Berlin-Liga 6 Berlin Berlin 3 0 0
Viktoria Köln 1904, FCFC Viktoria Köln 1904 Regionalliga West 4 Köln North Rhine-Westphalia 0 0 0
Wattenscheid 09, SGSG Wattenscheid 09 Regionalliga West 4 Wattenscheid North Rhine-Westphalia 0 0 0
Wacker Burghausen 3. Liga 3 Burghausen Bavaria 0 0 0
Waldhof Mannheim, SVSV Waldhof Mannheim Regionalliga Südwest 4 Mannheim Baden-Württemberg 0 0 0
Wanne-Eickel, DSCDSC Wanne-Eickel Verbandsliga Westfalen 2 6 Wanne-Eickel North Rhine-Westphalia 0 0 0
Wehen Wiesbaden, SVSV Wehen Wiesbaden 3. Liga 3 Taunusstein (Wiesbaden) Hessen 0 0 0
Weiden, SpVggSpVgg Weiden Bayernliga Nord 5 Weiden Bavaria 0 0 0
Weimar, SC 1903SC 1903 Weimar Landesliga Thuringen 6 Weimar Thuringen 0 0 0
Weißenfels, 1. FC1. FC Weißenfels Landesklasse Sachsen-Anhalt 8 Weißenfels Sachsen-Anhalt 0 0 0
Werder Bremen, SVSV Werder Bremen Bundesliga 1 Bremen Bremen 4 5 1
SC Westfalia Herne NRW-Liga 5 Herne North Rhine-Westphalia 0 0 0
Wilhelmshaven, SVSV Wilhelmshaven Regionalliga Nord 4 Wilhelmshaven Niedersachsen 0 0 0
Wolfsburg, VfLVfL Wolfsburg Bundesliga 1 Wolfsburg Niedersachsen 1 0 0
Wormatia Worms Regionalliga West 4 Worms Rhineland Palatinate 0 0 0
Wuppertaler SV Regionalliga West 5 Wuppertal Oberliga Niederrhein 0 0 0
Zeitz, 1. FC1. FC Zeitz Landesliga Sachsen-Anhalt 6 Zwickau Sachsen-Anhalt 0 0 0
Zwickau, FSVFSV Zwickau Regionalliga Nordost 4 Zwickau Saxony 0 0 0

List of clubs by major honours won

Rank Club Bundesliga German champion before 1963 DFB-Pokal DFB-Ligapokal DFB-Supercup Total Domestic Champions League / European Cup UEFA Cup Winners' Cup UEFA Cup UEFA Intertoto Cup UEFA Super Cup Total European Club World Cup / Intercontinental Cup Total
1 FC Bayern Munich 23 1 17 6 5 52 5 1 1 - 1 8 3 63
2 Borussia Dortmund 5 3 3 - 5 16 1 1 - - - 2 1 19
3 Werder Bremen 4 - 6 1 4 15 - 1 - 1 - 2 - 17
4 FC Schalke 04 - 7 5 1 1 14 - - 1 2 - 3 - 17
5 Hamburger SV 3 3 3 2 - 11 1 1 - 2 - 4 - 15
6 1. FC Nuremberg 1 8 4 - - 13 - - - - - - - 13
7 Borussia Mönchengladbach 5 - 3 - 1 9 - - 2 - - 2 - 11
8 VFB Stuttgart 3 2 3 - 1 9 - - - 2 - 2 - 11
9 1. FC Köln 2 1 4 - - 7 - - - - - - - 7
10 1. FC Kaiserslautern 2 2 2 - 1 7 - - - - - - - 7
11 Eintracht Frankfurt - 1 4 - - 5 - - 1 - - 1 - 6
12 Hertha BSC - 2 - 2 - 4 - - - - - - - 4
13 Dresdner SC - 2 2 - - 4 - - - - - - - 4
14 Karlsruher SC - 1 2 - - 3 - - - 1 - 1 - 4
15 1860 München 1 - 2 - - 3 - - - - - - - 3
16 SpVgg Greuther Fürth - 3 - - - 3 - - - - - - - 3
17 BFC Viktoria 1889 - 3 - - - 3 - - - - - - - 3
18 Hannover 96 - 2 1 - - 3 - - - - - - - 3
19 Fortuna Düsseldorf - 1 2 - - 3 - - - - - - - 3
20 Bayer Leverkusen - - 1 - - 1 - - 1 - - 1 - 2
21 Rapid Wien - 1 1 - - 2 - - - - - - - 2
22 RW Essen - 1 1 - - 2 - - - - - - - 2
23 Eintracht Braunschweig 1 - - - - 1 - - - - - - - 1
24 VFL Wolfsburg 1 - - - - 1 - - - - - - - 1
25 SpVgg Blau-Weiß 1890 Berlin - 1 - - - 1 - - - - - - - 1
26 Freiburger FC - 1 - - - 1 - - - - - - - 1
- 1 - - - 1 - - - - - - - 1
28 Karlsruher FV - 1 - - - 1 - - - - - - - 1
29 VfR Mannheim - 1 - - - 1 - - - - - - - 1
30 First Vienna - - 1 - - 1 - - - - - - - 1
31 Kickers Offenbach - - 1 - - 1 - - - - - - - 1
32 KFC Uerdingen 05 - - 1 - - 1 - - - - - - - 1
33 Schwarz-Weiß Essen - - 1 - - 1 - - - - - - - 1

See also

References

  • require('Module:No globals')

local function getCatForId( id )

   local title = mw.title.getCurrentTitle()
   local namespace = title.namespace
   if namespace == 0 then

return ''

   elseif namespace == 2 and not title.isSubpage then

return ''

   else

return ''

   end

end

local function viafLink( id )

   if not string.match( id, '^%d+$' ) then
       return false
   end
   return '.. id .. ' ' .. id .. '' .. getCatForId( 'VIAF' )

end

local function kulturnavLink( id )

   return '.. id .. ' id' 

end

local function sikartLink( id )

   return '.. id .. '&lng=en ' .. id .. '' 

end

local function tlsLink( id ) local id2 = mw.ustring.gsub(id, '%s', function(s) return mw.uri.encode(s, 'WIKI') end)

   return '.. id2 .. ' ' .. id .. '' 

end


local function ciniiLink( id )

   return '.. id .. '?l=en ' .. id .. '' 

end

local function bneLink( id )

   return '.. id .. ' ' .. id .. '' 

end


local function uscongressLink( id )

   return '.. id .. ' ' .. id .. '' 

end

local function narapersonLink( id )

   return '.. id .. ' ' .. id .. '' 

end

local function naraorganizationLink( id )

   return '.. id .. ' ' .. id .. '' 

end

local function botanistLink( id ) local id2 = mw.ustring.gsub(id, '%s', function(s) return mw.uri.encode(s, 'PATH') end)

   return '.. id2 .. ' ' .. id .. '' 

end

local function mgpLink( id )

   -- TODO Implement some sanity checking regex
   return '.. id .. ' ' .. id .. '' 

end

local function rslLink( id )

   -- TODO Implement some sanity checking regex
   return '.. id .. '&CON_LNG=ENG ' .. id .. ''

end

local function leonoreLink( id ) -- Identifiants allant de LH/1/1 à LH/2794/54 (légionnaires) -- Identifiants allant de C/0/1 à C/0/84 (84 légionnaires célèbres) -- Identifiants allant de 19800035/1/1 à 19800035/385/51670 (légionnaires décédés entre 1954 et 1977, et quelques dossiers de légionnaires décédés avant 1954)

   if not string.match( id, '^LH/%d%d?%d?%d?/%d%d?%d?$' ) and
      not string.match( id, '^C/0/%d%d?$' ) and
           not string.match( id, '^19800035/%d%d?%d?%d?/%d%d?%d?%d?%d?$' ) then
       return false
   end
   return '.. id .. ' ' .. id .. '' 

end

local function sbnLink( id )

   if not string.match( id, '^IT\\ICCU\\%d%d%d%d%d%d%d%d%d%d$' ) and not string.match( id, '^IT\\ICCU\\%u%u[%d%u]%u\\%d%d%d%d%d%d$' ) then
       return false
   end
   return '.. id .. ' ' .. id .. '' .. getCatForId( 'SBN' )

end

local function nkcLink( id ) return '.. id .. '&CON_LNG=ENG ' .. id .. '' end

local function nclLink( id )

   if not string.match( id, '^%d+$' ) then
       return false
   end
   return '.. id .. '&CON_LNG=ENG ' .. id .. '' 

end

local function ndlLink( id ) return '.. id .. ' ' .. id .. '' end

local function sudocLink( id )

   if not string.match( id, '^%d%d%d%d%d%d%d%d[%dxX]$' ) then
       return false
   end
   return '.. id .. ' ' .. id .. '' 

end

local function hlsLink( id )

   if not string.match( id, '^%d+$' ) then
       return false
   end
   return '.. id .. '.php ' .. id .. ''

end

local function lirLink( id )

   if not string.match( id, '^%d+$' ) then
       return false
   end
   return '.. id .. '.450.0.html ' .. id .. ''

end

local function splitLccn( id )

   if id:match( '^%l%l?%l?%d%d%d%d%d%d%d%d%d?%d?$' ) then
       id = id:gsub( '^(%l+)(%d+)(%d%d%d%d%d%d)$', '%1/%2/%3' )
   end
   if id:match( '^%l%l?%l?/%d%d%d?%d?/%d+$' ) then
        return mw.text.split( id, '/' )
   end
   return false

end

local function append(str, c, length)

   while str:len() < length do
       str = c .. str
   end
   return str

end

local function lccnLink( id )

   local parts = splitLccn( id )
   if not parts then
       return false
   end
   local lccnType = parts[1] ~= 'sh' and 'names' or 'subjects'
   id = parts[1] .. parts[2] .. append( parts[3], '0', 6 )
   return '.. lccnType .. '/' .. id .. ' ' .. id .. '' .. getCatForId( 'LCCN' )

end

local function mbLink( id )

   -- TODO Implement some sanity checking regex
   return '.. id .. ' ' .. id .. '' .. getCatForId( 'MusicBrainz' )

end

--Returns the ISNI check digit isni must be a string where the 15 first elements are digits local function getIsniCheckDigit( isni )

   local total = 0
   for i = 1, 15 do
       local digit = isni:byte( i ) - 48 --Get integer value
       total = (total + digit) * 2
   end
   local remainder = total % 11
   local result = (12 - remainder) % 11
   if result == 10 then
       return "X"
   end
   return tostring( result )

end

--Validate ISNI (and ORCID) and retuns it as a 16 characters string or returns false if it's invalid --See http://support.orcid.org/knowledgebase/articles/116780-structure-of-the-orcid-identifier local function validateIsni( id )

   id = id:gsub( '[ %-]', ):upper()
   if not id:match( '^%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d[%dX]$' ) then
       return false
   end
   if getIsniCheckDigit( id ) ~= string.char( id:byte( 16 ) ) then
       return false
   end
   return id

end

local function isniLink( id )

   id = validateIsni( id )
   if not id then
       return false
   end
   return '.. id .. ' ' .. id:sub( 1, 4 ) .. ' ' .. id:sub( 5, 8 ) .. ' '  .. id:sub( 9, 12 ) .. ' '  .. id:sub( 13, 16 ) .. '' .. getCatForId( 'ISNI' )

end

local function orcidLink( id )

   id = validateIsni( id )
   if not id then
       return false
   end
   id = id:sub( 1, 4 ) .. '-' .. id:sub( 5, 8 ) .. '-'  .. id:sub( 9, 12 ) .. '-'  .. id:sub( 13, 16 )
   return '.. id .. ' ' .. id .. '' .. getCatForId( 'ORCID' )

end

local function gndLink( id )

   return '.. id .. ' ' .. id .. '' .. getCatForId( 'GND' )

end

local function selibrLink( id ) if not string.match( id, '^%d+$' ) then

       return false
   end
   return '.. id .. ' ' .. id .. '' .. getCatForId( 'SELIBR' )

end

local function bnfLink( id )

   --Add cb prefix if it has been removed
   if not string.match( id, '^cb.+$' ) then
       id = 'cb' .. id
   end
   return '.. id .. ' ' .. id .. ' .. id .. ' (data)' .. getCatForId( 'BNF' )

end

local function bpnLink( id )

   if not string.match( id, '^%d+$' ) then
       return false
   end
   return '.. id .. ' ' .. id .. '' .. getCatForId( 'BPN' )

end

local function ridLink( id )

   return '.. id .. ' ' .. id .. '' .. getCatForId( 'RID' )

end

local function bibsysLink( id )

   return '.. id .. '&feltselect=bs.autid ' .. id .. '' .. getCatForId( 'BIBSYS' )

end

local function ulanLink( id )

   return '.. id .. ' ' .. id .. '' .. getCatForId( 'ULAN' )

end

local function nlaLink( id ) return '.. id .. ' ' .. id .. '' .. getCatForId( 'NLA' ) end

local function rkdartistsLink( id ) return '.. id .. ' ' .. id .. '' .. getCatForId( 'RKDartists' ) end

local function getIdsFromWikidata( item, property )

   local ids = {}
   if not item.claims[property] then
       return ids
   end
   for _, statement in pairs( item.claims[property] ) do
         if statement.mainsnak.datavalue then
          table.insert( ids, statement.mainsnak.datavalue.value )
         end
   end
   return ids

end

local function matchesWikidataRequirements( item, reqs )

   for _, group in pairs( reqs ) do
       local property = 'p' .. group[1]
       local qid = group[2]
       if item.claims[property] ~= nil then
           for _, statement in pairs ( item.claims[property] ) do
                if statement.mainsnak.datavalue ~= nil then
                        if statement.mainsnak.datavalue.value['numeric-id'] == qid then
                        return true
                end
            end
           end
       end
   end
   return false

end

local function createRow( id, label, rawValue, link, withUid )

   if link then
       if withUid then
           return '* ' .. label .. ' ' .. link .. '\n'
       else
           return '* ' .. label .. ' ' .. link .. '\n'
       end
   else

return '* \n'

   end

end

--In this order: name of the parameter, label, propertyId in Wikidata, formatting function local conf = {

   { 'VIAF', 'VIAF', 214, viafLink },
   { 'LCCN', 'LCCN', 244, lccnLink },
   { 'ISNI', 'ISNI', 213, isniLink },
   { 'ORCID', 'ORCID', 496, orcidLink },
   { 'GND', 'GND', 227, gndLink },
   { 'SELIBR', 'SELIBR', 906, selibrLink },
   { 'SUDOC', 'SUDOC', 269, sudocLink },    
   { 'BNF', 'BNF', 268, bnfLink },
   { 'BPN', 'BPN', 651, bpnLink },
   { 'RID', 'ResearcherID', 1053, ridLink },
   { 'BIBSYS', 'BIBSYS', 1015, bibsysLink },
   { 'ULAN', 'ULAN', 245, ulanLink },
   { 'HDS', 'HDS', 902, hlsLink },
   { 'LIR', 'LIR', 886, lirLink },
   { 'MBA', 'MusicBrainz', 434, mbLink },
   { 'MGP', 'MGP', 549, mgpLink },    
   { 'NLA', 'NLA', 409, nlaLink },
   { 'NDL', 'NDL', 349, ndlLink },
   { 'NCL', 'NCL', 1048, nclLink },
   { 'NKC', 'NKC', 691, nkcLink },
   { 'Léonore', 'Léonore', 640, leonoreLink }, 
   { 'SBN', 'ICCU', 396, sbnLink },     
   { 'RLS', 'RLS', 947, rslLink },
   { 'Botanist', '[[Author ci 


This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.
 



Copyright © World Library Foundation. All rights reserved. eBooks from World Library are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.