Template:Expand language/howto/newtopic
This template doc helper page is closely interconnected with other templates or pages.
This template may be closely connected to other templates, subtemplates, or modules; or have dependencies on config files, data files, or have dynamic documentation, or otherwise be closely interconnected with other pages. You are encouraged to familiarize yourself with its setup, and with related files, in particular, Expand language/howto, Expand language/doc, and about 200 language expand templates. If your edit causes unexpected problems, please undo it quickly, as this template may appear on a large number of pages. |
This section provides information about categorization in the {{Expand language}} suite of templates, and explains how to make a new subcategory available for use in a particular language template by use of a topic code. Editors may then employ the topic code in an {{Expand LanguageName}} template as shorthand for categorizing the article in which it appears into a subcategory associated with that topic code. If you've done this before, and just need a refresher, see Quickstart. Otherwise, skip to the gory details below.
Quickstart
Here is a summary of the steps to add a new subcategory and a new topic code to the table for a given {{Expand LanguageName}} (details follow):
- determine which missing topic code you wish to add (e.g., 'bio'; see col 1 of the topic table)
- find the topic name for the topic (e.g., 'Biography'; see col. 2 of the Topics table)
- derive the subcategory name from the topic name and the language name (e.g.,
Biography articles needing translation from LanguageName Wikipedia
(click the topic name in col. 2 of the table for an example; e.g., w:Category:Biography articles needing translation from LanguageName Wikipedia) - create the Category page for LanguageName using that name, and categorize it under
Category:Articles needing translation from LanguageName Wikipedia
- Adjust the #switch statement in the {{Expand LanguageName}} template to include:
| topic code = Topic name
; for example:| bio = Biography
(model after the #switch in Template:Expand French if needed)
- To use the new code, go to an article needing categorization into the new subcat, and add:
{{Expand |topic=topic code|date=December 2024}}
to the top of the article.
Background
A topic code is just an abbreviation or word, like bio for "Biography", or sport for "Sports". Associating a topic code with a subcategory name, and enabling its use to categorize articles on which the {{Expand LanguageName}}
appears has two main requirements:
- Creation of a category page with the appropriate subcategory name for the topic code
- Ensuring that the wikicode of the particular
{{Expand LanguageName}}
template associates the topic code with the right subcategory name.
The {{Expand language}} suite of templates automatically categorizes pages on which it appears into Category:Articles needing translation from LanguageName Wikipedia
. For many languages, this category may grow too large, and subcategorization is needed. The suite of Expand language templates supports subcategorization into a number of pre-defined subcategories, and provides an easy way of indicating subcategorization by using the |topic=
param in the template, instead of having to know about a complex set of category naming or remember the category names. This page explains how to do that.
Categorizing articles needing translation
Adding a new topic goes hand in hand with creating a new subcategory in which to categorize articles needing expansion. The top level (and sometimes only) category for articles needing expansion for a given language follows this pattern:
Category:Articles needing translation from LanguageName Wikipedia
But the top level category can often grow to many hundreds or thousands of articles and that's too much for one category. In order to facilitate a better and more useful categorization, the {{Expand language}} suite of templates supports subcategorization into a number of subcategories using the |topic=
parameter of the language-specific templates, such as {{Expand French}} or {{Expand German}}. Ten topic codes are defined, such as bio (for 'Biography') and mil (for 'Military'): when used as the value of the |topic=
parameter, they imply (but do not automatically create) a subcategory of a specific name. For example:
{{Expand French|topic=bio}}
would categorize the article in which it appears into subcategory ⟶ w:Category:Biography articles needing translation from French Wikipedia .
Topic codes and topic names
The rows in the topic code table show what subcategories already exist under the top level category for a given language; for example, for French, the topic code table is here. The existing subcategories can be found by clicking (or mousing over) the topic names in column two of the table.
There are ten predefined topic codes that are conventionally available for addition to, and use by, any of the Expand LanguageName templates. They are: bio, cult, geo, gov, hist, mil, sci, sport, struct, and transp. Each code is recognized by param |topic=
in the Expand LanguageName template, which will categorize the page on which it appears into a subcategory based on the associated topic name, e.g.,bio ⟶ Biography, and so forth).
Creating a new subcategory
- choose a topic code from the topic code table and determine the topic name from column 2 of the table (e.g.,
bio
⟶ Biography) - define the subcategory name as a function of topic name and language name, using this pattern:
Topic name articles needing translation from Language name Wikipedia
- Example: for topic name
Biography
and French we have: Biography articles needing translation from French Wikipedia
- create the category, e.g., w:Category:Biography articles needing translation from French Wikipedia
- Add the following text, and save the page:
{{Transcat|language=French|topic=bio}}
{{CatAutoTOC}}
Enable subcategorization in the Expand LanguageName template
Creating a new subcategory is independent of the Expand language template, and one could always categorize an article into the subcategory the way any article is categorized, simply by adding the category between brackets to the end of the article. But to make subcategorization easier, the specific Expand language template for a given language will categorize the article into a subcategory automatically, if the correct association between topic code and topic name appears in the wikicode of the template.
Edit the specific Expand language template for the given language; for example, for French: edit Template:Expand French
The association between topic code and topic name for a given language, and by extension between the topic code and the subcategory name, occurs in the wikicode of the specific language name templates, in particular, in the assignment of |topic=
, which usually occurs within a #switch statement which picks one of a number of topic codes and assigns it to the topic name. Some languages have no support for topic codes, for example, {{Expand Chinese}}; others have full support, like {{Expand French}}, and others have something in between. To enable |topic=
to be used to categorize the article on which it appears into the associated subcategory requires this code to be set up correctly; if the wikicode does not already have it, you can copy the #switch statement that assigns the value of |topic=
from Template:Expand French.
Classify articles into the new subcategory
To classify articles into the new subcategory, use a specific Expand language template with the |topic=
param.
- Edit the article and find the {{Expand French}} template
- Paste
|topic=bio
into the template call; it can go anywhere, but after the name is good, e.g.:{{Expand French|John Doe|topic=bio|date=December 2024}}
- Add an edit summary e.g., "Added topic=bio to Expand template."; Preview as needed, and Publish.
Creating non-standard subcategories and topic codes
Topic codes that are not among the standard ten may be created for specific languages and associated with new subcategories as needed. Define a topic code, a topic name corresponding to the variable part of the subcategory name, and add it to the template #switch statement.
This is a more advanced type of operation which requires some basic knowledge of template writing, so it may be easier to do this by adding an Edit request on the Talk page of the template concerned. In the Edit request, specify the topic code and subcategory name you wish to add. For example, you could say, "Please add new topic code mtn to {{Expand Nepali}} which should categorize articles containing {{Expand Nepali|topic=mtn}}
into subcategory 'Mountain articles needing translation from Nepali Wikipedia' using the topic code mtn." You can create the subcategory yourself, following the instructions above.