Jump to content

英文维基 | 中文维基 | 日文维基 | 草榴社区

Wikipedia:WikiProject Flag Template

From Wikipedia, the free encyclopedia

This WikiProject is responsible for the template system used to create flag icons, with or without associated wikilinks. This project is only concerned with the implementation of these templates.

Main templates

[edit]

Produces a small image of the named flag. The image has a link to the article about the country associated with the flag.

Example: {{flag icon|Japan}}Japan
Example: {{flag icon|JPN}}Japan

Produces a small image of the named flag, plus a wikilink to the associated article. The icon image does not have a link (unlike flag icon) so that screen readers do not render the name twice.

Example: {{flag|United Kingdom}} United Kingdom

Similar to flag, but the associated country name is unlinked. This template should be used in articles with WP:OVERLINK concerns (e.g. when the same flag is used many times in a single table).

Example: {{flagu|United States}} United States

Similar to flag, but always uses the preferred display text for the wikilinked article. Useful when the input parameter can be a country code, or is a long-form country name because it links to a different article, such as for a historical country.

Examples:{{flag country|Kingdom of Italy}} Italy
{{flag country|BRA}} Brazil

Compare with flag, which always uses the first parameter as display name (unless when overridden with name):

Displays a flag of the named parameter in "icon" size, currently 23×15 pixels plus a one pixel border. This template is very similar to Template:Flag icon, except the image is not linked to an article, i.e. it is "purely decorative" per World Wide Web Consortium (W3C) Web Content Accessibility Guidelines (WCAG). This template can be used when the article text immediately adjacent to the icon provides the associated link for the flag.

Comparison example
Usage examples

"Shortcut" flag templates

[edit]

Many countries also have individual flag templates, named using standard three letter country codes so as to offer "shortcut" alternatives to the standard templates. This is a mixed blessing; some country codes (like "USA") are widely known and the corresponding shortcut templates (i.e. {{USA}}) offer convenience, but some country codes are relatively obscure, so wiki markup would likely be clearer if the country names were spelled out in full. Also, the shortcut templates do not offer the ability to use historical flag variants (described below), and are therefore less flexible.

Example: {{BEL}} Belgium (equivalent to {{flag|Belgium}})

See Wikipedia:Inline templates linking country articles for a complete list.

List

[edit]

Besides the ones mentioned above, many other flag templates exist. This (probably incomplete) list excludes the military (see #Military flag templates) and sports templates (see #National sport team flag templates). See each template's documentation for more details.

Template Description Example
{{flag}} Unlinked icon with country link {{flag|Monaco}} Monaco
{{flagbig}} Large flag icon; name and icon separated by line break {{flagbig|Monaco}}
Monaco
{{flagc}} Icon links to file description page (for attribution) {{flagc|Monaco}}flag Monaco
{{flag country}} Displays default country name instead of first parameter {{flag country|MON}} Monaco
{{flag decoration}} Unlinked flag icon only {{flag decoration|Monaco}}
{{flag icon}} Icon only, linked to country page {{flag icon|Monaco}}Monaco
{{flagg}} The most general flag template; many different output formats are possible depending on first parameter {{flagg|isb|Monaco}} Flag of Monaco
{{flag link}} Changes the link to one with text after the country name {{flag link|Monaco|in the Eurovision Song Contest}} Monaco
{{flag+link}} Changes the link to one with text before the country name, with existence check {{flag+link|History of|Monaco}} Monaco
{{flaglist}} Aligns country names correctly in vertical lists {{flaglist|Monaco}} Monaco
{{flagof}} Links to the article on the country's flag {{flagof|Monaco}} Monaco
{{flagright}} Icon after name {{flagright|Monaco}}Monaco 
{{flagu}} Unlinked country name {{flagu|Monaco}} Monaco
Extracts one or more data field values from a template {{getalias|Monaco|flag}} → Flag of Monaco.svg

The following templates do not technically use the flag template system, but are used similarly:

Template Description Example
{{flagicon image}} Formats a flag with specified filename similarly to {{flag decoration}} (for use if no data template exists). {{flagicon image|Lozenge flag of Monaco.svg}}
{{noflag}} Returns the first parameter with whitespace to its left, if one entry in a vertical list doesn't/shouldn't have an icon {{noflag|[[Monaco]]}} Monaco

Flag names

[edit]

The first (positional) parameter for these templates specifies the country (or other entity) to be used for the flag image. These actually identify additional templates that individually store information specific to that country. For example, the image name and main article name used by {{flag|Norway}} (to produce  Norway) is stored in Template:Country data Norway. The complete set of these "country data" templates is found in Category:Country data templates.

Note that there are country data templates for many entities that are not considered countries, such as international organizations or sub-national entities. The use of "country" in these template names is only because the original implementation of the flag template system was built upon Template:Country – a better name might have been "flag data", but it is likely too late for that change now.

Some examples of non-country flag templates are:


Many country data templates also exist for historical nations, and these can be used to produce the historical flags with wikilinks to the appropriate articles. Some examples are:

Alias names

[edit]

For added convenience, many flags can be identified by an alias name, typically a three-letter country code. For example, instead of {{flag icon|France}}, you could simply use {{flag icon|FRA}} to produce France.

Alias names are available for almost every nation listed in ISO 3166-1 alpha-3, the list of IOC country codes, and the list of FIFA country codes. For example, {{flag icon|DEU}} (ISO) and {{flag icon|GER}} (IOC and FIFA) both produce Germany. A small handful of other well-known abbreviations are also available (such as UK, EU, and USSR).

Alias names are implemented as redirects in the template namespace. For example, Template:Country data VEN is a redirect to Template:Country data Venezuela. The complete set of these redirects is listed in Category:Country data redirects, and the available alias redirect(s) for a given country data template (if any) are also documented on that template's page.

When using country code aliases, template flag will display this value for the wikilink's display text. For example:

  • {{flag|USA}} USA
  • {{flag|UK}} UK
  • {{flag|CHN}} CHN

Note that in each case, the target wikilink points to the correct article name (i.e. United States, United Kingdom, and People's Republic of China, respectively) but the display text matches the input parameter to template flag. This may be the desired effect, such as in column headings of a large table, but if the full name is wanted, then use Template:Flag country instead:

Alias names have a second purpose, which is to provide alternative display text for target wikilinks. For example, the main article linked by Template:Country data East Germany is East Germany, but Template:Country data German Democratic Republic is a redirect alias. Therefore, you can use {{flag|German Democratic Republic}} for  German Democratic Republic. Again, note that the target article name for the generated wikilink is still East Germany.

Flag variants

[edit]

Many countries have had different flag variations at various periods in their history. The flag template system can accommodate this by storing multiple flag variants inside country data templates. A specific flag variant is selected by specifying an additional parameter to any of the standard flag templates. This parameter is usually given as the second positional parameter to the template, but may also be given as the variant named parameter.

Examples

  • {{flag|Germany|empire}} Germany
  • {{flag|Germany|variant=empire}} Germany
  • {{flag country|Bangladesh|1971}} Bangladesh
  • {{flag icon|Bangladesh|1971}}Bangladesh
  • {{flag country|CAN|1921}} Canada
  • {{flag icon|CAN|1921}}Canada

The set of available flag variants (if any) for a specific country data template are documented on the country data template page itself. Each variant is identified by a short text label, such as empire or 1921 in the examples above. Usually, the label identifies the year in which the flag was introduced, but this is not a mandatory style convention.

Other common parameters

[edit]

Size

[edit]

The default size for all flag icons created by these templates is 23x15px, with a one pixel border. That is, the icon will be no more than 23 pixels wide, and no more than 15 pixels tall. These dimensions were carefully chosen to generate the best results when flag icons are used in a bulleted list with the default browser text size. Some countries (mostly those with square or near-square flags) have different default sizes.

In certain situations, it might be desirable to use a larger (or smaller) size, and this is enabled with the size named parameter, available with all standard templates.

Examples
  • {{flag|MON|size=100px}} MON
  • {{flag icon|BGD|size=40px}}Bangladesh
  • {{small|{{flag|Belgium|size=15px}}}} Belgium

Name

[edit]

The display text of the target wikilink is usually automatically generated, but can always be over-ridden with the name parameter.

Examples
  • {{flag|South Korea|name=Korea}} Korea (this name is used in several sports)
  • {{flag|ROC|name=China}} China (China from 1912 to 1949)


Military flag templates

[edit]

Displays the naval ensign of the named country (identified as the naval variant in the corresponding country data template) plus a wikilink to the main article for the country's navy. Note that the naval ensign for many countries is the same as the national flag. Also note that the WP:SHIPS and WP:MILHIST conventions are to use naval ensigns, not naval jacks when identifying ships with flag icons.

Examples

Displays the navy's flag of the named country (identified as the navy variant in the corresponding country data template) plus a wikilink to the main article for the country's navy. Note that this is the navy flag, which differs from the naval ensign, which for many countries is the same as the national flag. If the navy does not have a flag, the jack is used instead. Also note that the WP:SHIPS and WP:MILHIST conventions are to use naval ensigns, not navy flags when identifying ships with flag icons.

Examples

Displays a country's coast guard flag (the coast guard variant), or alternatively their racing stripe, and a wikilink to the country's coast guard.

Examples

Displays a country's army or war flag (the army variant) and a wikilink to the country's army.

Examples

Displays a country's air force flag (the air force variant) and a wikilink to the country's air force.

Examples

National sport team flag templates

[edit]

One of the most common instances of flag icon usage on Wikipedia is for national sport teams. Several sets of sport-specific templates have been developed to also use this flag template system and some have variant forms (see individual templates' documentation):

These templates have intentionally been given terse names because they tend to be used many, many times on individual pages for match results. They completely supersede a set of previously used national team-specific templates. For example, {{fb|ITA}} replaced {{ITAf}}, {{ru|NZL}} replaced {{NZLru}} {{cr|BGD}} replaced {{BCB}}, etc.

There are often several template variations available for a given sport:

  • with a "w" suffix, links to women's national team articles instead
  • with a "-rt" suffix, renders the flag icon to the right of the nation's name instead of to the left. This formatting style is often used in match results
  • with a -big" suffix, renders the flag icon in larger size and the team name underneath the flag. This formatting style is often used in tables of tournament results.

For example, for football, the following templates are used:

Team Standard Right flag Big flag
Men's national teams {{fb}} {{fb-rt}} {{fb-big}}
Examples  Spain Netherlands 
Germany
Women's national teams {{fbw}} {{fbw-rt}} {{fbw-big}}
Examples  Spain Netherlands 
Germany

User preference to disable display of flag icons

[edit]

Users that do not like flag icons can disable them with a preference setting. A CSS class is used within the internal formatting template, and the class setting can be changed from a user's personal CSS file (skin-specific, cross-skin, or global).

Flag icon image rendering is disabled by:

.flagicon { display: none; }

Implementation

[edit]

Three types of templates are used by the flag template system, each with a different function:

  1. User-transcluded templates
  2. Country data templates (internal)
  3. Formatting templates (internal)

For example, {{flag|Spain}}, uses:

  1. Template:Flag, to accept input parameters, such as the country name (mandatory) and the optional flag variant, size, and wikilink display name.
  2. Template:Country data Spain, to supply the image name and article name
  3. Template:Flag/core, to actually render the image icon and wikilink

This system architecture means that:

  • all country-specific data is contained within individual country data templates, improving maintainability
  • the formatting wikicode is centralized in a very small number of templates, ensuring consistency

How it works

[edit]

There are three steps in each flag template invocation. In the previous example of {{flag|Spain}}, the templates expand as follows:

First, Template:Flag expands to invoke Template:Country data Spain, and ensure that all user-specified parameters are set. The first parameter to the country data template is actually the name of the formatting template. This is the mechanism by which the same country data template can be used with multiple different formatting templates. Therefore, the first step of expansion results in:

{{country data Spain | flag/core | variant = | size = | name = Spain}}

If the variant (or second positional parameter), the size, and/or name parameters were specified in the user invocation, these would be set to the desired value. For example, {{flag|Spain|1939|name=España}} would expand to:

{{country data Spain | flag/core | variant = 1939 | size = | name = España}}

Next, the country data template expands to invoke the formatting template, plus add all the country-specific parameters. Going back to the simpler example of {{flag|Spain}}, the second expansion results in:

{{flag/core | alias = Spain | flag alias = Flag of Spain.svg | name = Spain}}

Lastly, the formatting template is expanded to produce:

<span class="flagicon">[[File:Flag of Spain.svg|23x15px|border |alt=|link=]]&nbsp;</span>[[Spain]]

Basic country data template structure

[edit]

The structure of all country data templates follows a standard pattern, which is extended to include additional parameters only when necessary. The empty boilerplate for all country data templates is as follows:

{{ {{{1<noinclude>|country showdata</noinclude>}}}
| alias =
| flag alias =
| size = {{{size|}}}
| name = {{{name|}}}
}}

There are two essential values that must be specified:

  1. The alias value identifies the name of the main article associated with the flag.
  2. The flag alias value identifies the image name of the default flag.

The invocation of country showdata on the first line is used to automatically generate the template documentation, as described below. The size = {{{size|}}} and name = {{{name|}}} statements ensure that any user-specified size and/or name values are passed through from the outer template (flag, flag icon, etc.) to the inner formatting template. Omission of these lines from the country data template would cause the size and name functionality to be disabled.

Adding flag variants

[edit]

Additional flag variants are specified by individual flag alias statements. The unique label for the variant is the suffix of the parameter name, as flag alias-label (don't forget the hyphen). For example, Template:Country data Mexico has several flag variants, one of which is specified by:

| flag alias-1934 = Flag of Mexico (1934-1968).png

Therefore, when {{flag|Mexico|1934}} is transcluded, Image:Flag of Mexico (1934-1968).png is rendered. The selection of the flag variant is coded in the formatting templates.

Country data templates with at least one flag variant (in addition to the default) must also have the following line:

| variant = {{{variant|}}}

Similar to the size and name parameters as described above, this statement is required to pass the variant value (e.g. 1934) from the outer flag template to the inner formatting template. Omission of this line will cause the flag variant selection to fail.

Disabling image border

[edit]

If some flags are non-standard in shape and a 1px border is undesirable (for example for Nepal), then the border for the main flag may be defeated by adding the parameter

|border =

To remove the border for certain variant flags only, use the pattern |border-variant=, replacing variant with the respective variant label. For example:

|border-1976 = 
|border-colonial =

Nothing should be added after the equal sign(s). See Template:Country data Poland for examples of this usage.

Due to the coding of the flag templates, disabling the border for the main flag also automatically disables it for all flag variants. If the main flag should not have a border but any of the variants should, the respective |border-variant= parameters must be explicitly set to "border" to re-enable the 1px border:

|border-1976 = border
[edit]

The best results are obtained when the template name matches the article wikilink (as specified by the alias value). For example, Template:Country data Russia contains alias = Russia, which results in a target wikilink to Russia.

However, there are instances where the main article name contains a disambiguation string. For example, Template:Country data Georgia contains alias = Georgia (country). Therefore, {{flag|Georgia}} results in  Georgia. Note that the wikilink is Georgia (country), but the display string is "Georgia", as expected.

In these instances, an additional statement is needed to support Template:Flag country properly. The shortname alias parameter should be set to the desired text string, such as shortname alias = Georgia. In effect, the resultant wikilink will be generated as [[alias|shortname alias]], or [[Georgia (country)|Georgia]] in this specific example.

Changing the page being linked to

[edit]

The templates {{flaglink}} and {{flag+link}} append and prepend text to the link target, respectively. For example, to link to the education system in a table comparing different countries' educational outcomes, use

{{flag+link|Education in|Finland}}

Which results in  Finland.

For link targets that do not start or end with the country name, use the {{flagdeco}} template (which returns an unlinked flag icon without text) followed by a standard wikilink:

{{flagdeco|Finland}} [[Example page|Finland]]

Which would look like this: Finland.

National sport team template parameters

[edit]

Any country data template that will be used with a national team template must include an additional "pass-through" parameter:

| altlink = {{{altlink|}}}

This parameter is used to form the suffix of the associated wikilink. For example, Template:cr appends "national cricket team" to the country name (alias value), and this process is enabled by the altlink parameter.

In most cases, the flag and display name for national teams corresponds to the same flag and display name normally used for the nation. However, in some instances these can be over-ridden by additional parameters within the country data template. The default wikilink can also be changed in cases where the common naming convention is not used.

Some examples:

In each of these examples, the over-ride parameter (name alias-football, flag alias-field hockey, or link alias-netball) is identified by a unique per-sport variable that is passed from the appropriate sport team template. For example, Template:fb includes altvar = football. Therefore, any country data template that utilizes one or more team sport over-ride parameters must also include:

| altvar = {{{altvar|}}}

Template documentation

[edit]

Country data templates "self-document" themselves through Template:Country showdata. Recall that the first line of each country data template is an invocation to a formatting template, defaulting to country showdata if that parameter is missing:


For simple country data templates, nothing further needs to be done to document them. If any flag variants, redirect aliases, etc. are used with the template, they are documented by adding parameters specifically for use by country showdata. These extra parameters are enclosed in a <noinclude>....</noinclude> section as they should not be present for any other invocation of the country data template.

See Template:Country showdata/doc for more information about how to document country data templates.

Alternatives to avoid Wikipedia's Post-expand include size limit

[edit]

Pages with many flag icons may come close to or exceed Wikipedia's post-expand include size limit. In these cases consider using modules or module-wrapper templates instead:[

  • Module:Flagg is a Scribunto module that reads existing country data templates and can produce a wide variety of outputs to replicate most existing flag templates. It can be invoked directly or used via {{Flagg}} (although the latter doubles the post-expand include size). See the documentation at Template:Flagg/doc for usage.
  • Module:Flag is a wrapper for Module:Flagg that provides shortcuts to replace several common flag templates:
Template Module
Code Output PEIS Code Output PEIS
{{flag|CHN}}  CHN 443b {{#invoke:flag||CHN}}  CHN 128b
{{flag country|CHN}}  China 577b {{#invoke:flag|country|CHN}}  China 128b
{{flag decoration|CHN}}/{{flag deco|CHN}} 452b {{#invoke:flag|decoration|CHN}}/{{#invoke:flag|deco|CHN}} 107b
{{flag icon|CHN}} China 548b {{#invoke:flag|icon|CHN}} China 117b
{{flag link|CHN|at the 2004 Summer Olympics}}  China 497b {{#invoke:flag|link|CHN|at the 2004 Summer Olympics}}  China 198b
{{flag+link|History of|CHN}}  China 663b {{#invoke:flag|+link|History of|CHN}}  China 139b
{{flag team|GBR}}  Great Britain (GBR) 804b {{#invoke:flag|team|GBR}}  Great Britain (GBR) 193b
{{flag athlete|Andy Murray|GBR}}  Andy Murray (GBR) 617b {{#invoke:flag|athlete|Andy Murray|GBR}}  Andy Murray (GBR) 210b
{{flag medalist|Andy Murray|GBR}} Andy Murray
 Great Britain
469b {{#invoke:flag|medalist|Andy Murray|GBR}} Andy Murray
 Great Britain
129b
{{flag IOC|CAN|1924 Winter|1}}  Canada (1) 326b {{#invoke:flag|IOC|CAN|1924 Winter|1}}  Canada (1) 163b
{{flag IOC 2|HKG|1954 Asian Games|1}}  Hong Kong (1) 368b {{#invoke:flag|IOC 2|HKG|1954 Asian Games|1}}  Hong Kong (1) 184b
{{flag IOC athlete|Mark Spitz|USA|1972 Summer}}  Mark Spitz (USA) 346b {{#invoke:flag|IOC athlete|Mark Spitz|USA|1972 Summer}}  Mark Spitz (USA) 178b
{{fb|CHN}}  China 560b {{#invoke:flag|fb|CHN}}  China 151b
{{fb-rt|CHN}} China  482b {{#invoke:flag|fb-rt|CHN}} China  151b
{{fbicon|CHN}} China 444b {{#invoke:flag|fbicon|CHN}} China national football team 163b
{{ru|CHN}}  China 646b {{#invoke:flag|ru|CHN}}  China 210b

See also

[edit]

Internal project templates

[edit]

Archives

[edit]